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?]
This commit is contained in:
Nicolas Souchu 1999-02-14 12:23:49 +00:00
parent 9576e3690f
commit 3876b69238
2 changed files with 26 additions and 34 deletions

View File

@ -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

View File

@ -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 <ctype.h>
@ -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 <unit no.>]\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);
}