From 3876b6923827c24ccfb5b306da6555e12a1ba6b7 Mon Sep 17 00:00:00 2001 From: Nicolas Souchu Date: Sun, 14 Feb 1999 12:23:49 +0000 Subject: [PATCH] Add -e option and change unit to device access in lptcontrol.8 Change unit to device access in lptcontrol.c. Now usage is lptcontrol -i | -p | -e [-d /dev/lpt?] --- usr.sbin/lptcontrol/lptcontrol.8 | 31 +++++++++++++++++++------------ usr.sbin/lptcontrol/lptcontrol.c | 29 +++++++---------------------- 2 files changed, 26 insertions(+), 34 deletions(-) diff --git a/usr.sbin/lptcontrol/lptcontrol.8 b/usr.sbin/lptcontrol/lptcontrol.8 index dc6e6ffdaab7..9162a990027b 100644 --- a/usr.sbin/lptcontrol/lptcontrol.8 +++ b/usr.sbin/lptcontrol/lptcontrol.8 @@ -11,7 +11,7 @@ .\" documentation and/or other materials provided with the distribution. .\" .\" -.\" $Id: lptcontrol.8,v 1.6 1997/09/25 06:36:28 charnier Exp $ +.\" $Id: lptcontrol.8,v 1.7 1998/03/23 08:23:49 charnier Exp $ .Dd September 3, 1994 .Dt LPTCONTROL 8 .Os FreeBSD 2 @@ -23,16 +23,21 @@ .Cm -i | .Cm -p -.Op Fl u Ar unit no +| +.Cm -e +.Op Fl d Ar device .Sh DESCRIPTION The .Nm -command is used to set either the interrupt-driven or polling mode +command is used to set either the interrupt-driven, extended or polling mode of individual .Xr lpt 4 -devices. When a printer is switched between -interrupt-driven and polled mode, this change will only take effect +devices. When a printer is switched from +a mode to another, this change will only take effect the next time the device is opened. +.Pp +Extended mode is anything the parallel port interface can support. For an +ECP/ISA parallel port, it may be FIFO+DMA or ECP. .Sh OPTIONS .TP The following command line options are supported: @@ -41,21 +46,23 @@ The following command line options are supported: Turn on interrupt-driven mode. .It Fl p Turn on polled mode. -.It Fl u Ar n +.It Fl e +Turn on extended mode. +.It Fl d Ar dev Set the mode of the printer device specified by -.Em n . +.Em dev . The default value for -.Em n +.Em dev is -.Em 0 -(ie. -.Pa /dev/lpt0 ) +.Em /dev/lpt0 .El .Pp One of .Fl i -or +, .Fl p +or +.Fl e must be specified. .Pp .Sh FILES diff --git a/usr.sbin/lptcontrol/lptcontrol.c b/usr.sbin/lptcontrol/lptcontrol.c index afd234ee5ba6..d3856d0bb96d 100644 --- a/usr.sbin/lptcontrol/lptcontrol.c +++ b/usr.sbin/lptcontrol/lptcontrol.c @@ -30,7 +30,7 @@ #ifndef lint static const char rcsid[] = - "$Id: lptcontrol.c,v 1.6 1997/09/25 06:36:29 charnier Exp $"; + "$Id: lptcontrol.c,v 1.7 1999/01/10 12:04:56 nsouch Exp $"; #endif /* not lint */ #include @@ -49,7 +49,7 @@ static const char rcsid[] = #define PATH_LPCTL _PATH_DEV "lpctl" -#define DEFAULT_UNIT "0" +#define DEFAULT_DEVICE "/dev/lpt0" #define IRQ_INVALID -1 #define DO_POLL 0 #define USE_IRQ 1 @@ -58,7 +58,7 @@ static const char rcsid[] = static void usage() { - fprintf(stderr, "usage: lptcontrol -i | -p | -s | -e [-u ]\n"); + fprintf(stderr, "usage: lptcontrol -i | -p | -s | -e [-d device]\n"); exit(1); } @@ -73,40 +73,25 @@ static void set_interrupt_status(int irq_status, const char * file) close(fd); } -static char * dev_file(char unit_no) -{ - static char devname[_POSIX_PATH_MAX+1]; - int len; - - strncpy(devname, PATH_LPCTL, _POSIX_PATH_MAX); - devname[len = strlen(devname)] = unit_no; - devname[++len] = '\0'; - - return(devname); -} - int main (int argc, char * argv[]) { int opt; int irq_status = IRQ_INVALID; - char * unit = DEFAULT_UNIT; + char *device = DEFAULT_DEVICE; - while((opt = getopt(argc, argv, "ipesu:")) != -1) + while((opt = getopt(argc, argv, "ipesd:")) != -1) switch(opt) { case 'i': irq_status = USE_IRQ; break; case 'p': irq_status = DO_POLL; break; case 'e': irq_status = USE_EXT_MODE; break; case 's': irq_status = USE_STD_MODE; break; - case 'u': unit = optarg; - if(!isdigit(*unit)) - usage(); - break; + case 'd': device = optarg; break; default : usage(); } if(irq_status == IRQ_INVALID) usage(); - set_interrupt_status(irq_status, dev_file(*unit)); + set_interrupt_status(irq_status, device); exit(0); }