aboutsummaryrefslogtreecommitdiff
path: root/console-tools/chvt.c
diff options
context:
space:
mode:
Diffstat (limited to 'console-tools/chvt.c')
-rw-r--r--console-tools/chvt.c33
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> */
13enum {
14 VT_ACTIVATE = 0x5606, /* make vt active */
15 VT_WAITACTIVE = 0x5607 /* wait for vt active */
16};
17
18int 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}