blob: 54355bee61f94cffe14a75f71130eb65b879d8a9 [file] [log] [blame]
Grigory Batalovad7a5d42010-05-23 23:22:10 +02001/* vi: set sw=4 ts=4: */
2/*
3 * Mini fgconsole implementation for busybox
4 *
5 * Copyright (C) 2010 by Grigory Batalov <bga@altlinux.org>
6 *
Denys Vlasenko0ef64bd2010-08-16 20:14:46 +02007 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
Grigory Batalovad7a5d42010-05-23 23:22:10 +02008 */
9
Pere Orga55068c42011-03-27 23:42:28 +020010//usage:#define fgconsole_trivial_usage
11//usage: ""
12//usage:#define fgconsole_full_usage "\n\n"
13//usage: "Get active console"
14
Grigory Batalovad7a5d42010-05-23 23:22:10 +020015#include "libbb.h"
16
17/* From <linux/vt.h> */
18struct vt_stat {
19 unsigned short v_active; /* active vt */
20 unsigned short v_signal; /* signal to send */
21 unsigned short v_state; /* vt bitmask */
22};
23enum { VT_GETSTATE = 0x5603 }; /* get global vt state info */
24
25int fgconsole_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
26int fgconsole_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
27{
28 struct vt_stat vtstat;
29
30 vtstat.v_active = 0;
31 xioctl(get_console_fd_or_die(), VT_GETSTATE, &vtstat);
32 printf("%d\n", vtstat.v_active);
33
34 return EXIT_SUCCESS;
35}