diff options
Diffstat (limited to 'console-tools/chvt.c')
-rw-r--r-- | console-tools/chvt.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/console-tools/chvt.c b/console-tools/chvt.c new file mode 100644 index 000000000..bbc5a9c31 --- /dev/null +++ b/console-tools/chvt.c | |||
@@ -0,0 +1,33 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * Mini chvt implementation for busybox | ||
4 | * | ||
5 | * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> | ||
6 | * | ||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
8 | */ | ||
9 | |||
10 | #include "busybox.h" | ||
11 | |||
12 | /* From <linux/vt.h> */ | ||
13 | enum { | ||
14 | VT_ACTIVATE = 0x5606, /* make vt active */ | ||
15 | VT_WAITACTIVE = 0x5607 /* wait for vt active */ | ||
16 | }; | ||
17 | |||
18 | int chvt_main(int argc, char **argv) | ||
19 | { | ||
20 | int fd, num; | ||
21 | |||
22 | if (argc != 2) { | ||
23 | bb_show_usage(); | ||
24 | } | ||
25 | |||
26 | fd = get_console_fd(); | ||
27 | num = xatoul_range(argv[1], 1, 63); | ||
28 | if ((-1 == ioctl(fd, VT_ACTIVATE, num)) | ||
29 | || (-1 == ioctl(fd, VT_WAITACTIVE, num))) { | ||
30 | bb_perror_msg_and_die("ioctl"); | ||
31 | } | ||
32 | return EXIT_SUCCESS; | ||
33 | } | ||