7 |
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 |
*/ |
*/ |
9 |
|
|
10 |
#include "busybox.h" |
#include "libbb.h" |
|
|
|
|
/* From <linux/vt.h> */ |
|
|
enum { |
|
|
VT_ACTIVATE = 0x5606, /* make vt active */ |
|
|
VT_WAITACTIVE = 0x5607 /* wait for vt active */ |
|
|
}; |
|
11 |
|
|
12 |
|
int chvt_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
13 |
int chvt_main(int argc, char **argv) |
int chvt_main(int argc, char **argv) |
14 |
{ |
{ |
15 |
int fd, num; |
int num; |
16 |
|
|
17 |
if (argc != 2) { |
if (argc != 2) { |
18 |
bb_show_usage(); |
bb_show_usage(); |
19 |
} |
} |
20 |
|
|
21 |
fd = get_console_fd(); |
num = xatou_range(argv[1], 1, 63); |
22 |
num = xatoul_range(argv[1], 1, 63); |
console_make_active(get_console_fd_or_die(), num); |
|
if ((-1 == ioctl(fd, VT_ACTIVATE, num)) |
|
|
|| (-1 == ioctl(fd, VT_WAITACTIVE, num))) { |
|
|
bb_perror_msg_and_die("ioctl"); |
|
|
} |
|
23 |
return EXIT_SUCCESS; |
return EXIT_SUCCESS; |
24 |
} |
} |