X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=libbb%2Fget_console.c;h=9b6407bd022b0699d48368a2417c430650edf6b1;hb=0bfb9c2cf0e8b711634014e06d39b5f47c5a95c2;hp=0da27b1e226d7e4128e3825f92420702dbd25fb1;hpb=aa7a888e423fc85daa8af0ac3aabe8fc7af86312;p=oweals%2Fbusybox.git diff --git a/libbb/get_console.c b/libbb/get_console.c index 0da27b1e2..9b6407bd0 100644 --- a/libbb/get_console.c +++ b/libbb/get_console.c @@ -5,17 +5,14 @@ * Copyright (C) many different people. If you wrote this, please * acknowledge your work. * - * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. + * Licensed under GPLv2 or later, see file LICENSE in this source tree. */ -//#include #include "libbb.h" - /* From */ enum { KDGKBTYPE = 0x4B33 }; /* get keyboard type */ - static int open_a_console(const char *fnam) { int fd; @@ -39,8 +36,7 @@ static int open_a_console(const char *fnam) * We try several things because opening /dev/console will fail * if someone else used X (which does a chown on /dev/console). */ - -int get_console_fd(void) +int FAST_FUNC get_console_fd_or_die(void) { static const char *const console_names[] = { DEV_CONSOLE, CURRENT_VC, CURRENT_TTY @@ -67,6 +63,18 @@ int get_console_fd(void) } } - bb_error_msg("can't open console"); - return fd; /* total failure */ + bb_error_msg_and_die("can't open console"); + /*return fd; - total failure */ +} + +/* From */ +enum { + VT_ACTIVATE = 0x5606, /* make vt active */ + VT_WAITACTIVE = 0x5607 /* wait for vt active */ +}; + +void FAST_FUNC console_make_active(int fd, const int vt_num) +{ + xioctl(fd, VT_ACTIVATE, (void *)(ptrdiff_t)vt_num); + xioctl(fd, VT_WAITACTIVE, (void *)(ptrdiff_t)vt_num); }