summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/MAKEDEV7
-rw-r--r--etc/etc.i386/MAKEDEV7
-rw-r--r--sys/conf/majors3
-rw-r--r--sys/dev/usb/ulpt.c41
-rw-r--r--sys/i386/conf/majors.i3863
5 files changed, 55 insertions, 6 deletions
diff --git a/etc/MAKEDEV b/etc/MAKEDEV
index 5797055..0affad3 100644
--- a/etc/MAKEDEV
+++ b/etc/MAKEDEV
@@ -121,7 +121,7 @@
# ipl ipfilter control devices (ipl, ipnat, ipstate, ipauth)
# kbd keyboard devices
#
-# $Id: MAKEDEV,v 1.180 1999/01/06 16:18:05 yokota Exp $
+# $Id: MAKEDEV,v 1.181 1999/01/08 16:03:57 hm Exp $
#
PATH=/sbin:/bin/:/usr/bin:/usr/sbin:$PATH
@@ -775,6 +775,11 @@ ums*)
mknod ums$unit c 111 $unit
;;
+ulpt*)
+ unit=`expr $i : 'ulpt\(.*\)'`
+ mknod ulpt$unit c 113 $unit
+ ;;
+
lpt*)
unit=`expr $i : 'lpt\(.*\)'`
mknod lpt$unit c 16 $unit
diff --git a/etc/etc.i386/MAKEDEV b/etc/etc.i386/MAKEDEV
index 5797055..0affad3 100644
--- a/etc/etc.i386/MAKEDEV
+++ b/etc/etc.i386/MAKEDEV
@@ -121,7 +121,7 @@
# ipl ipfilter control devices (ipl, ipnat, ipstate, ipauth)
# kbd keyboard devices
#
-# $Id: MAKEDEV,v 1.180 1999/01/06 16:18:05 yokota Exp $
+# $Id: MAKEDEV,v 1.181 1999/01/08 16:03:57 hm Exp $
#
PATH=/sbin:/bin/:/usr/bin:/usr/sbin:$PATH
@@ -775,6 +775,11 @@ ums*)
mknod ums$unit c 111 $unit
;;
+ulpt*)
+ unit=`expr $i : 'ulpt\(.*\)'`
+ mknod ulpt$unit c 113 $unit
+ ;;
+
lpt*)
unit=`expr $i : 'lpt\(.*\)'`
mknod lpt$unit c 16 $unit
diff --git a/sys/conf/majors b/sys/conf/majors
index d44e2a1..ff4c5be 100644
--- a/sys/conf/majors
+++ b/sys/conf/majors
@@ -1,4 +1,4 @@
-$Id: majors.i386,v 1.59 1999/01/03 16:48:02 n_hibma Exp $
+$Id: majors.i386,v 1.60 1999/01/06 05:35:39 yokota Exp $
Hopefully, this list will one day be obsoleted by DEVFS, but for now
this is the current allocation of device major numbers.
@@ -157,5 +157,6 @@ chrdev name comments
110 ses SCSI Environmental Services driver (mjacob@feral.com)
111 ums USB Mouse (nick.hibma@jrc.it)
112 kbd keyboard
+113 ulpt USB Printer (nick.hibma@jrc.it)
200 ?? entries from 200-255 are reserved for local use
255 ?? entries from 200-255 are reserved for local use
diff --git a/sys/dev/usb/ulpt.c b/sys/dev/usb/ulpt.c
index 75a8e38..bbd6521 100644
--- a/sys/dev/usb/ulpt.c
+++ b/sys/dev/usb/ulpt.c
@@ -1,5 +1,5 @@
/* $NetBSD: ulpt.c,v 1.10 1999/01/08 11:58:25 augustss Exp $ */
-/* FreeBSD $Id: ulpt.c,v 1.4 1999/01/07 23:31:35 n_hibma Exp $ */
+/* FreeBSD $Id: ulpt.c,v 1.5 1999/01/10 18:42:52 n_hibma Exp $ */
/*
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -99,22 +99,53 @@ struct ulpt_softc {
#define ULPT_OBUSY 0x02 /* printer is busy doing output */
#define ULPT_INIT 0x04 /* waiting to initialize for open */
u_char sc_flags;
+#if defined(__NetBSD__)
#define ULPT_NOPRIME 0x40 /* don't prime on open */
+#elif defined(__FreeBSD__)
+/* values taken from i386/isa/lpt.c */
+#define ULPT_POS_INIT 0x04 /* if we are a postive init signal */
+#define ULPT_POS_ACK 0x08 /* if we are a positive going ack */
+#define ULPT_NOPRIME 0x10 /* don't prime the printer at all */
+#define ULPT_PRIMEOPEN 0x20 /* prime on every open */
+#define ULPT_AUTOLF 0x40 /* tell printer to do an automatic lf */
+#define ULPT_BYPASS 0x80 /* bypass printer ready checks */
+#endif
u_char sc_laststatus;
};
+#if defined(__NetBSD__)
int ulptopen __P((dev_t, int, int, struct proc *));
int ulptclose __P((dev_t, int, int, struct proc *p));
int ulptwrite __P((dev_t, struct uio *uio, int));
int ulptioctl __P((dev_t, u_long, caddr_t, int, struct proc *));
-void ulpt_disco __P((void *));
+#elif defined(__FreeBSD__)
+static d_open_t ulptopen;
+static d_close_t ulptclose;
+static d_write_t ulptwrite;
+static d_ioctl_t ulptioctl;
+
+#define ULPT_CDEV_MAJOR 113
+
+static struct cdevsw ulpt_cdevsw = {
+ ulptopen, ulptclose, noread, ulptwrite,
+ ulptioctl, nostop, nullreset, nodevtotty,
+ seltrue, nommap, nostrat,
+ "ulpt", NULL, -1
+};
+#endif
int ulpt_status __P((struct ulpt_softc *));
void ulpt_reset __P((struct ulpt_softc *));
int ulpt_statusmsg __P((u_char, struct ulpt_softc *));
+#if defined(__NetBSD__)
#define ULPTUNIT(s) (minor(s) & 0x1f)
#define ULPTFLAGS(s) (minor(s) & 0xe0)
+#elif defined(__FreeBSD__)
+/* defines taken from i386/isa/lpt.c */
+#define ULPTUNIT(s) (minor(s) & 0x03)
+#define ULPTFLAGS(s) (minor(s) & 0xfc)
+#endif
USB_DECLARE_DRIVER(ulpt);
@@ -269,6 +300,12 @@ ulptopen(dev, flag, mode, p)
sc->sc_flags = flags;
DPRINTF(("ulptopen: flags=0x%x\n", (unsigned)flags));
+#if USB_DEBUG && defined(__FreeBSD__)
+ /* Ignoring these flags might not be a good idea */
+ if ((flags ^ ULPT_NOPRIME) != 0)
+ DPRINTF(("flags ignored: %b\n", flags,
+ "\20\3POS_INIT\4POS_ACK\6PRIME_OPEN\7AUTOLF\10BYPASS"));
+#endif
if ((flags & ULPT_NOPRIME) == 0)
ulpt_reset(sc);
diff --git a/sys/i386/conf/majors.i386 b/sys/i386/conf/majors.i386
index d44e2a1..ff4c5be 100644
--- a/sys/i386/conf/majors.i386
+++ b/sys/i386/conf/majors.i386
@@ -1,4 +1,4 @@
-$Id: majors.i386,v 1.59 1999/01/03 16:48:02 n_hibma Exp $
+$Id: majors.i386,v 1.60 1999/01/06 05:35:39 yokota Exp $
Hopefully, this list will one day be obsoleted by DEVFS, but for now
this is the current allocation of device major numbers.
@@ -157,5 +157,6 @@ chrdev name comments
110 ses SCSI Environmental Services driver (mjacob@feral.com)
111 ums USB Mouse (nick.hibma@jrc.it)
112 kbd keyboard
+113 ulpt USB Printer (nick.hibma@jrc.it)
200 ?? entries from 200-255 are reserved for local use
255 ?? entries from 200-255 are reserved for local use
OpenPOWER on IntegriCloud