summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Downs <downsj@cvs.openbsd.org>1997-03-03 11:59:13 +0000
committerJason Downs <downsj@cvs.openbsd.org>1997-03-03 11:59:13 +0000
commitbee45b6272f7d1fee8afd7de1703512c128927f0 (patch)
treed0912a37e14896453cbd812c29056ebe4e19bd6f
parent90e3b076ebe35e7e6b18f33b236c7b67dfb8076b (diff)
pc console ioctl interface.
-rw-r--r--usr.sbin/Makefile6
-rw-r--r--usr.sbin/pccon/Makefile6
-rw-r--r--usr.sbin/pccon/pccon.c81
3 files changed, 90 insertions, 3 deletions
diff --git a/usr.sbin/Makefile b/usr.sbin/Makefile
index f4734c94eea..72122aa95ff 100644
--- a/usr.sbin/Makefile
+++ b/usr.sbin/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.24 1997/02/03 04:22:03 downsj Exp $
+# $OpenBSD: Makefile,v 1.25 1997/03/03 11:59:10 downsj Exp $
# not yet done: catman
@@ -22,7 +22,7 @@ SUBDIR+=ypbind yppoll ypset ypserv
.if make(clean) || make(cleandir) || make(obj)
SUBDIR+=apm apmd bad144 dbsym eeprom fdformat grfconfig grfinfo \
- hilinfo iteconfig pcmciad screenblank videomode
+ hilinfo iteconfig pccon pcmciad screenblank videomode
.elif ${MACHINE} == "amiga"
SUBDIR+=grfconfig iteconfig screenblank videomode
.elif ${MACHINE} == "atari"
@@ -30,7 +30,7 @@ SUBDIR+=iteconfig
.elif ${MACHINE} == "hp300"
SUBDIR+=grfinfo hilinfo
.elif ${MACHINE} == "i386"
-SUBDIR+=bad144 apm apmd fdformat pcmciad
+SUBDIR+=bad144 apm apmd fdformat pccon pcmciad
.elif ${MACHINE} == "pmax"
SUBDIR+=
.elif ${MACHINE} == "sun3"
diff --git a/usr.sbin/pccon/Makefile b/usr.sbin/pccon/Makefile
new file mode 100644
index 00000000000..6d07b58fcf3
--- /dev/null
+++ b/usr.sbin/pccon/Makefile
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile,v 1.1 1997/03/03 11:59:11 downsj Exp $
+
+PROG= pccon
+NOMAN= yes
+
+.include <bsd.prog.mk>
diff --git a/usr.sbin/pccon/pccon.c b/usr.sbin/pccon/pccon.c
new file mode 100644
index 00000000000..382b9a8f995
--- /dev/null
+++ b/usr.sbin/pccon/pccon.c
@@ -0,0 +1,81 @@
+/* $OpenBSD: pccon.c,v 1.1 1997/03/03 11:59:12 downsj Exp $ */
+
+/*
+ * Copyright (c) 1997, Jason Downs. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/types.h>
+#include <fcntl.h>
+#include <paths.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <err.h>
+
+#include <i386/pccons.h>
+
+extern char *__progname;
+
+int main(argc, argv)
+ int argc;
+ char *argv[];
+{
+ int ch, fd, blank;
+ char *ep, *dev = _PATH_CONSOLE;
+
+ blank = -1;
+ while ((ch = getopt(argc, argv, "b:f:")) != -1) {
+ switch (ch) {
+ case 'b':
+ blank = strtol(optarg, &ep, 10);
+ if (ep == optarg)
+ errx (1, "numeric argument expected");
+ if (blank < 0)
+ errx (1, "illegal blank value");
+ break;
+
+ case 'f':
+ dev = optarg;
+ break;
+
+ default:
+ fprintf (stderr,
+ "usage: %s [-f device] [-b interval]\n",
+ __progname);
+ exit (1);
+ }
+ }
+
+ fd = open (dev, O_RDWR);
+ if (fd < 0)
+ err (1, dev);
+
+ if (blank >= 0) {
+ if (ioctl(fd, CONSOLE_SET_BLANK, &blank) < 0)
+ err (1, "ioctl");
+ }
+
+ close (fd);
+ exit (0);
+}