diff options
author | Jason Downs <downsj@cvs.openbsd.org> | 1997-03-03 11:59:13 +0000 |
---|---|---|
committer | Jason Downs <downsj@cvs.openbsd.org> | 1997-03-03 11:59:13 +0000 |
commit | bee45b6272f7d1fee8afd7de1703512c128927f0 (patch) | |
tree | d0912a37e14896453cbd812c29056ebe4e19bd6f | |
parent | 90e3b076ebe35e7e6b18f33b236c7b67dfb8076b (diff) |
pc console ioctl interface.
-rw-r--r-- | usr.sbin/Makefile | 6 | ||||
-rw-r--r-- | usr.sbin/pccon/Makefile | 6 | ||||
-rw-r--r-- | usr.sbin/pccon/pccon.c | 81 |
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); +} |