accidentally applied wrong (old) patch, fixing up...
[oweals/busybox.git] / console-tools / chvt.c
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 }