Introduction
Introduction Statistics Contact Development Disclaimer Help
Add vtallow(1) to enable or disable VT switch - ubase - suckless linux base uti…
git clone git://git.suckless.org/ubase
Log
Files
Refs
README
LICENSE
---
commit 4269d523e2c5cc65c89e5340a55febe72c3d3f49
parent 74c0abb6a2f9b8cac0653f1b96646aaf74b91a68
Author: sin <[email protected]>
Date: Fri, 5 Dec 2014 15:04:37 +0000
Add vtallow(1) to enable or disable VT switch
Diffstat:
M Makefile | 1 +
A vtallow.c | 52 +++++++++++++++++++++++++++++…
2 files changed, 53 insertions(+), 0 deletions(-)
---
diff --git a/Makefile b/Makefile
@@ -82,6 +82,7 @@ BIN = \
umount \
unshare \
uptime \
+ vtallow \
watch \
who
diff --git a/vtallow.c b/vtallow.c
@@ -0,0 +1,52 @@
+/* See LICENSE file for copyright and license details. */
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+
+#include <fcntl.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "util.h"
+
+#define CONSOLE "/dev/console"
+
+#define VT_LOCKSWITCH 0x560B /* disallow vt switching */
+#define VT_UNLOCKSWITCH 0x560C /* allow vt switching */
+
+static void
+usage(void)
+{
+ eprintf("usage: vtallow n|y\n");
+}
+
+int
+main(int argc, char *argv[])
+{
+ int fd;
+ int allow;
+
+ ARGBEGIN {
+ default:
+ usage();
+ } ARGEND;
+
+ if (argc != 1)
+ usage();
+
+ if (!strcmp(argv[0], "y"))
+ allow = 1;
+ else if (!strcmp(argv[0], "n"))
+ allow = 0;
+ else
+ usage();
+
+ if ((fd = open(CONSOLE, O_WRONLY)) < 0)
+ eprintf("open %s:", CONSOLE);
+ if (ioctl(fd, allow ? VT_UNLOCKSWITCH : VT_LOCKSWITCH) < 0)
+ eprintf("cannot %s VT switch:",
+ allow ? "enable" : "disable");
+ close(fd);
+ return 0;
+}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.