summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa
diff options
context:
space:
mode:
Diffstat (limited to 'sys/i386/isa')
-rw-r--r--sys/i386/isa/asc.c105
-rw-r--r--sys/i386/isa/b004.c112
-rw-r--r--sys/i386/isa/b004.h1
-rw-r--r--sys/i386/isa/ctx.c64
-rw-r--r--sys/i386/isa/cx.c41
-rw-r--r--sys/i386/isa/cy.c68
-rw-r--r--sys/i386/isa/fd.c75
-rw-r--r--sys/i386/isa/gpib.c64
-rw-r--r--sys/i386/isa/gsc.c95
-rw-r--r--sys/i386/isa/if_cx.c7
-rw-r--r--sys/i386/isa/joy.c72
-rw-r--r--sys/i386/isa/labpc.c60
-rw-r--r--sys/i386/isa/lpt.c77
-rw-r--r--sys/i386/isa/matcd/matcd.c115
-rw-r--r--sys/i386/isa/mcd.c97
-rw-r--r--sys/i386/isa/mse.c76
-rw-r--r--sys/i386/isa/pcaudio.c58
-rw-r--r--sys/i386/isa/pcvt/pcvt_drv.c2
-rw-r--r--sys/i386/isa/psm.c76
-rw-r--r--sys/i386/isa/rc.c76
-rw-r--r--sys/i386/isa/scd.c111
-rw-r--r--sys/i386/isa/si.c113
-rw-r--r--sys/i386/isa/sio.c106
-rw-r--r--sys/i386/isa/sound/soundcard.c115
-rw-r--r--sys/i386/isa/spigot.c76
-rw-r--r--sys/i386/isa/spkr.c38
-rw-r--r--sys/i386/isa/syscons.c21
-rw-r--r--sys/i386/isa/tw.c57
-rw-r--r--sys/i386/isa/wcd.c108
-rw-r--r--sys/i386/isa/wd.c57
-rw-r--r--sys/i386/isa/wt.c83
31 files changed, 1293 insertions, 933 deletions
diff --git a/sys/i386/isa/asc.c b/sys/i386/isa/asc.c
index 2050c76..b072c5f 100644
--- a/sys/i386/isa/asc.c
+++ b/sys/i386/isa/asc.c
@@ -34,7 +34,7 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
- * $Id: asc.c,v 1.8 1995/11/29 14:39:31 julian Exp $
+ * $Id: asc.c,v 1.9 1995/12/06 23:42:22 bde Exp $
*/
#include "asc.h"
@@ -68,6 +68,11 @@
#include <sys/tty.h>
#include <sys/uio.h>
#include <sys/syslog.h>
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/asc_ioctl.h>
@@ -76,15 +81,6 @@
#include <i386/isa/isa_device.h>
#include <i386/isa/ascreg.h>
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 71
-#endif /*JREMOD*/
-
#endif /* FREEBSD_1_X */
/***
@@ -184,6 +180,12 @@ struct asc_unit {
#endif
int height; /* height, for pnm modes */
size_t bcount; /* bytes to read, for pnm modes */
+#ifdef DEVFS
+ void *devfs_asc; /* storage for devfs tokens (handles) */
+ void *devfs_ascp;
+ void *devfs_ascd;
+ void *devfs_ascpd;
+#endif
} unittab[NASC];
/*** I could not find a reasonable buffer size limit other than by
@@ -202,6 +204,20 @@ int ascattach(struct isa_device *isdp);
struct isa_driver ascdriver = { ascprobe, ascattach, "asc" };
#ifndef FREEBSD_1_X
+
+static d_open_t ascopen;
+static d_close_t ascclose;
+static d_read_t ascread;
+static d_ioctl_t ascioctl;
+static d_select_t ascselect;
+
+#define CDEV_MAJOR 71
+
+static struct cdevsw asc_cdevsw =
+ { ascopen, ascclose, ascread, nowrite, /*71*/
+ ascioctl, nostop, nullreset, nodevtotty, /* asc */
+ ascselect, nommap, NULL, "asc", NULL, -1 };
+
struct asc_softc {
struct isa_device *dev;
} asc_softc[NASC];
@@ -226,6 +242,9 @@ asc_registerdev(struct isa_device *id)
kdc_asc[id->id_unit].kdc_isa = id;
dev_attach(&kdc_asc[id->id_unit]);
}
+#define STATIC static
+#else
+#define STATIC
#endif /* ! FREEBSD_1_X */
/***
@@ -447,8 +466,7 @@ ascattach(struct isa_device *isdp)
int unit = isdp->id_unit;
struct asc_unit *scu = unittab + unit;
#ifdef DEVFS
- char buf[32];
- void *x;
+ char name[32];
#endif
scu->flags |= DEBUG;
@@ -472,18 +490,24 @@ ascattach(struct isa_device *isdp)
asc_registerdev(isdp);
#endif
#ifdef DEVFS
- sprintf(buf,"asc%d",unit);
+#define ASC_UID 0
+#define ASC_GID 13
+ sprintf(name,"asc%d",unit);
/* path name devsw minor type uid gid perm*/
- x=dev_add("/misc", buf, ascopen, unit<<6, DV_CHR, 0, 0, 0666);
- sprintf(buf,"asc%dp",unit);
- x=dev_add("/misc", buf, ascopen, ((unit<<6) + FRMT_PBM),
- DV_CHR, 0, 0, 0666);
- sprintf(buf,"asc%dd",unit);
- x=dev_add("/misc", buf, ascopen, ((unit<<6) + DBUG_MASK),
- DV_CHR, 0, 0, 0666);
- sprintf(buf,"asc%dpd",unit);
- x=dev_add("/misc", buf, ascopen, ((unit<<6) + DBUG_MASK + FRMT_PBM),
- DV_CHR, 0, 0, 0666);
+ scu->devfs_asc = devfs_add_devsw("/", name, &asc_cdevsw, unit<<6,
+ DV_CHR, ASC_UID, ASC_GID, 0666);
+ sprintf(name,"asc%dp",unit);
+ scu->devfs_ascp = devfs_add_devsw("/", name, &asc_cdevsw,
+ ((unit<<6) + FRMT_PBM),
+ DV_CHR, ASC_UID, ASC_GID, 0666);
+ sprintf(name,"asc%dd",unit);
+ scu->devfs_ascd = devfs_add_devsw("/", name, &asc_cdevsw,
+ ((unit<<6) + DBUG_MASK),
+ DV_CHR, ASC_UID, ASC_GID, 0666);
+ sprintf(name,"asc%dpd",unit);
+ scu->devfs_ascpd = devfs_add_devsw("/", name, &asc_cdevsw,
+ ((unit<<6) + DBUG_MASK + FRMT_PBM),
+ DV_CHR, ASC_UID, ASC_GID, 0666);
#endif /*DEVFS*/
return 1; /* attach must not fail */
}
@@ -546,7 +570,7 @@ ascintr(int unit)
*** don't switch scanner on, wait until first read or ioctls go before
***/
-int
+STATIC int
ascopen(dev_t dev, int flags, int fmt, struct proc *p)
{
int unit = UNIT(minor(dev)) & UNIT_MASK;
@@ -620,7 +644,7 @@ asc_startread(struct asc_unit *scu)
*** should probably terminate dma ops, release int and dma. lr 12mar95
***/
-int
+STATIC int
ascclose(dev_t dev, int flags, int fmt, struct proc *p)
{
int unit = UNIT(minor(dev));
@@ -678,7 +702,7 @@ pbm_init(struct asc_unit *scu)
*** ascread
***/
-int
+STATIC int
ascread(dev_t dev, struct uio *uio, int ioflag)
{
int unit = UNIT(minor(dev));
@@ -766,7 +790,7 @@ ascread(dev_t dev, struct uio *uio, int ioflag)
*** ascioctl
***/
-int
+STATIC int
ascioctl(dev_t dev, int cmd, caddr_t data, int flags, struct proc *p)
{
int unit = UNIT(minor(dev));
@@ -831,7 +855,7 @@ ascioctl(dev_t dev, int cmd, caddr_t data, int flags, struct proc *p)
return SUCCESS;
}
-int
+STATIC int
ascselect(dev_t dev, int rw, struct proc *p)
{
int unit = UNIT(minor(dev));
@@ -863,42 +887,21 @@ ascselect(dev_t dev, int rw, struct proc *p)
}
-#ifdef JREMOD
-struct cdevsw asc_cdevsw =
- { ascopen, ascclose, ascread, nowrite, /*71*/
- ascioctl, nostop, nullreset, nodevtotty, /* asc */
- ascselect, nommap, NULL };
-
static asc_devsw_installed = 0;
-static void asc_drvinit(void *unused)
+static void
+asc_drvinit(void *unused)
{
dev_t dev;
- dev_t dev_chr;
if( ! asc_devsw_installed ) {
dev = makedev(CDEV_MAJOR,0);
cdevsw_add(&dev,&asc_cdevsw,NULL);
- dev_chr = dev;
-#if defined(BDEV_MAJOR)
- dev = makedev(BDEV_MAJOR,0);
- bdevsw_add(&dev,&asc_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
asc_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "asc", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(ascdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,asc_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NASC > 0 */
diff --git a/sys/i386/isa/b004.c b/sys/i386/isa/b004.c
index 59a25dd..d39231a 100644
--- a/sys/i386/isa/b004.c
+++ b/sys/i386/isa/b004.c
@@ -53,6 +53,11 @@
#include <sys/proc.h>
#include <sys/uio.h>
#include <sys/devconf.h>
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/clock.h>
@@ -60,14 +65,6 @@
#include <i386/isa/isa.h>
#include <i386/isa/isa_device.h>
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 8
-#endif /*JREMOD*/
static u_char d_inb(u_int port);
static void d_outb(u_int port, u_char data);
@@ -125,6 +122,19 @@ struct isa_driver bqudriver = {
bquprobe, bquattach, "bqu"
};
+static d_open_t bquopen;
+static d_close_t bquclose;
+static d_read_t bquread;
+static d_write_t bquwrite;
+static d_ioctl_t bquioctl;
+static d_select_t bquselect;
+
+#define CDEV_MAJOR 8
+struct cdevsw bqu_cdevsw =
+ { bquopen, bquclose, bquread, bquwrite, /*8*/
+ bquioctl, nostop, nullreset, nodevtotty,/* tputer */
+ bquselect, nommap, NULL, "bqu", NULL, -1 };
+
static int b004_sleep; /* wait address */
static struct b004_struct b004_table[NBQU];
@@ -239,7 +249,7 @@ bquanalyse( const int dev_min )
*
*****************************************************************************/
-int
+static int
bquread(dev_t dev, struct uio *uio, int flag)
{
unsigned int dev_min = minor(dev) & 7;
@@ -330,7 +340,7 @@ bquread(dev_t dev, struct uio *uio, int flag)
* int bquwrite() - write to the link interface.
*/
-int
+static int
bquwrite(dev_t dev, struct uio *uio, int flag)
{
unsigned int dev_min = minor(dev) & 7;
@@ -427,7 +437,7 @@ bquwrite(dev_t dev, struct uio *uio, int flag)
*
*/
-int
+static int
bquopen(dev_t dev, int flags, int fmt, struct proc *p)
{
unsigned int dev_min = minor(dev) & 7;
@@ -456,7 +466,7 @@ bquopen(dev_t dev, int flags, int fmt, struct proc *p)
* int b004close() -- close the link device.
*/
-int
+static int
bquclose(dev_t dev, int flags, int fmt, struct proc *p)
{
unsigned int dev_min = minor(dev) & 7;
@@ -471,7 +481,7 @@ bquclose(dev_t dev, int flags, int fmt, struct proc *p)
return 0;
}
-int
+static int
bquselect(dev_t dev, int rw, struct proc *p)
{
/* still unimplemented */
@@ -488,7 +498,7 @@ bquselect(dev_t dev, int rw, struct proc *p)
* - set timeout
*/
-int
+static int
bquioctl(dev_t dev, int cmd, caddr_t addr, int flag, struct proc *p)
{
unsigned int dev_min = minor(dev) & 7;
@@ -535,17 +545,51 @@ bquioctl(dev_t dev, int cmd, caddr_t addr, int flag, struct proc *p)
static inline void
bqu_registerdev(struct isa_device *id)
{
- if(id->id_unit)
- kdc_bqu[id->id_unit] = kdc_bqu[0];
- kdc_bqu[id->id_unit].kdc_unit = id->id_unit;
- kdc_bqu[id->id_unit].kdc_parentdata = id;
- dev_attach(&kdc_bqu[id->id_unit]);
+ int unit = id->id_unit;
+
+ kdc_bqu[unit] = kdc_bqu[0]; /* XXX */ /* ??Eh?? */
+ kdc_bqu[unit].kdc_unit = unit;
+ kdc_bqu[unit].kdc_parentdata = id;
+ dev_attach(&kdc_bqu[unit]);
}
static int
bquattach(struct isa_device *idp)
{
- kdc_bqu[idp->id_unit].kdc_state = DC_IDLE;
+ int unit = idp->id_unit;
+ struct b004_struct *bp;
+ char name[32];
+ int i;
+
+ kdc_bqu[unit].kdc_state = DC_IDLE;
+
+#ifdef DEVFS
+#define BQU_UID 66
+#define BQU_GID 66
+#define BQU_PERM 0600
+ bp = &b004_table[unit];
+ for ( i = 0; i < 8; i++) {
+#ifdef NOTYET
+ /* if (we've done all the ports found) break; */
+#endif
+ sprintf(name,"ttyba%d" ,i);
+ bp->devfs_token[i][0]=devfs_add_devsw(
+ "/", name, &bqu_cdevsw, i, DV_CHR,
+ BQU_UID, BQU_GID, BQU_PERM);
+ sprintf(name,"ttybd%d" ,i);
+ bp->devfs_token[i][0]=devfs_add_devsw(
+ "/", name, &bqu_cdevsw, i+64, DV_CHR,
+ BQU_UID, BQU_GID, BQU_PERM);
+ sprintf(name,"ttybc%d" ,i);
+ bp->devfs_token[i][0]=devfs_add_devsw(
+ "/", name, &bqu_cdevsw, i+128, DV_CHR,
+ BQU_UID, BQU_GID, BQU_PERM);
+ sprintf(name,"ttybd%d" ,i);
+ bp->devfs_token[i][0]=devfs_add_devsw(
+ "/", name, &bqu_cdevsw, i+192, DV_CHR,
+ BQU_UID, BQU_GID, BQU_PERM);
+ }
+#endif
return 1;
}
@@ -567,7 +611,10 @@ bquprobe(struct isa_device *idp)
register
*/
#ifdef undef
-printf("bquprobe::\nIOBASE 0x%x\nIRQ %d\nDRQ %d\nMSIZE %d\nUNIT %d\nFLAGS x0%x\nALIVE %d\n",idp->id_iobase,idp->id_irq,idp->id_drq,idp->id_msize,idp->id_unit,idp->id_flags,idp->id_alive);
+ printf(
+ "bquprobe::\nIOBASE 0x%x\nIRQ %d\nDRQ %d\nMSIZE %d\nUNIT %d\nFLAGS"
+ "x0%x\nALIVE %d\n",idp->id_iobase,idp->id_irq,
+ idp->id_drq,idp->id_msize,idp->id_unit,idp->id_flags,idp->id_alive);
#endif
if(first_time){
for(i=0;i<NBQU;i++) B004_F(i) &= ~B004_EXIST;
@@ -636,36 +683,21 @@ printf("bquprobe::\nIOBASE 0x%x\nIRQ %d\nDRQ %d\nMSIZE %d\nUNIT %d\nFLAGS x0%x\n
} /* bquprobe() */
-#ifdef JREMOD
-struct cdevsw bqu_cdevsw =
- { bquopen, bquclose, bquread, bquwrite, /*8*/
- bquioctl, nostop, nullreset, nodevtotty,/* tputer */
- bquselect, nommap, NULL };
-
static bqu_devsw_installed = 0;
-static void bqu_drvinit(void *unused)
+static void
+bqu_drvinit(void *unused)
{
dev_t dev;
if( ! bqu_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&bqu_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&bqu_cdevsw, NULL);
bqu_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "bqu", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(bqudev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,bqu_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NBQU */
diff --git a/sys/i386/isa/b004.h b/sys/i386/isa/b004.h
index ee80d46..9c5576c 100644
--- a/sys/i386/isa/b004.h
+++ b/sys/i386/isa/b004.h
@@ -93,6 +93,7 @@ struct b004_struct {
int osr; /* address of the output status register */
unsigned int timeout; /* timeout for writing/reading the link */
int boardtype; /* what kind of board is installed */
+ void *devfs_token[8][4]; /* tokens for 4 types for 8 ports */
};
/*
diff --git a/sys/i386/isa/ctx.c b/sys/i386/isa/ctx.c
index 19b9671..817d539 100644
--- a/sys/i386/isa/ctx.c
+++ b/sys/i386/isa/ctx.c
@@ -8,7 +8,7 @@
* of this software, nor does the author assume any responsibility
* for damages incurred with its use.
*
- * $Id: ctx.c,v 1.10 1995/11/29 14:39:33 julian Exp $
+ * $Id: ctx.c,v 1.11 1995/12/06 23:42:26 bde Exp $
*/
/*
@@ -120,20 +120,17 @@
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/devconf.h>
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <i386/isa/isa.h>
#include <i386/isa/isa_device.h>
#include <i386/isa/ctxreg.h>
#include <machine/ioctl_ctx.h>
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 40
-#endif /*JREMOD*/
int waitvb(short);
@@ -145,6 +142,19 @@ int waitvb(short);
int ctxprobe(), ctxattach();
struct isa_driver ctxdriver = {ctxprobe, ctxattach, "ctx"};
+static d_open_t ctxopen;
+static d_close_t ctxclose;
+static d_read_t ctxread;
+static d_write_t ctxwrite;
+static d_ioctl_t ctxioctl;
+#define CDEV_MAJOR 40
+
+struct cdevsw ctx_cdevsw =
+ { ctxopen, ctxclose, ctxread, ctxwrite, /*40*/
+ ctxioctl, nostop, nullreset, nodevtotty,/* cortex */
+ seltrue, nommap, NULL, "ctx", NULL, -1 };
+
+
#define LUTSIZE 256 /* buffer size for Look Up Table (LUT) */
#define PAGESIZE 65536 /* size of one video page, 1/4 of the screen */
@@ -160,6 +170,7 @@ struct ctx_soft_registers {
short iobase;
caddr_t maddr;
int msize;
+ void *devfs_token;
} ctx_sr[NCTX];
@@ -203,6 +214,7 @@ int
ctxattach(struct isa_device * devp)
{
struct ctx_soft_registers *sr;
+ char name[32];
sr = &(ctx_sr[devp->id_unit]);
sr->cp0 = 0; /* zero out the shadow registers */
@@ -213,9 +225,14 @@ ctxattach(struct isa_device * devp)
sr->msize = devp->id_msize;
kdc_ctx[devp->id_unit].kdc_state = DC_IDLE;
return (1);
+#ifdef DEVFS
+ sprintf(name,"ctx%d",devp->id_unit);
+ sr->devfs_token = devfs_add_devsw( "/", name, &ctx_cdevsw, 0,
+ DV_CHR, 0, 0, 0600);
+#endif /* DEVFS */
}
-int
+static int
ctxopen(dev_t dev, int flags, int fmt, struct proc *p)
{
struct ctx_soft_registers *sr;
@@ -271,7 +288,7 @@ ctxopen(dev_t dev, int flags, int fmt, struct proc *p)
return (0); /* successful open. All ready to go. */
}
-int
+static int
ctxclose(dev_t dev, int flags, int fmt, struct proc *p)
{
int unit;
@@ -284,7 +301,7 @@ ctxclose(dev_t dev, int flags, int fmt, struct proc *p)
return (0);
}
-int
+static int
ctxwrite(dev_t dev, struct uio * uio, int ioflag)
{
int unit, status = 0;
@@ -329,7 +346,7 @@ ctxwrite(dev_t dev, struct uio * uio, int ioflag)
return (status);
}
-int
+static int
ctxread(dev_t dev, struct uio * uio, int ioflag)
{
int unit, status = 0;
@@ -372,7 +389,7 @@ ctxread(dev_t dev, struct uio * uio, int ioflag)
return (status);
}
-int
+static int
ctxioctl(dev_t dev, int cmd, caddr_t data, int flags, struct proc *p)
{
int error;
@@ -451,15 +468,10 @@ waitvb(short port)
-#ifdef JREMOD
-struct cdevsw ctx_cdevsw =
- { ctxopen, ctxclose, ctxread, ctxwrite, /*40*/
- ctxioctl, nostop, nullreset, nodevtotty,/* cortex */
- seltrue, nommap, NULL };
-
static ctx_devsw_installed = 0;
-static void ctx_drvinit(void *unused)
+static void
+ctx_drvinit(void *unused)
{
dev_t dev;
@@ -467,20 +479,10 @@ static void ctx_drvinit(void *unused)
dev = makedev(CDEV_MAJOR,0);
cdevsw_add(&dev,&ctx_cdevsw,NULL);
ctx_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "ctx", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(ctxdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,ctx_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NCTX > 0 */
diff --git a/sys/i386/isa/cx.c b/sys/i386/isa/cx.c
index 73ad274..b634db0 100644
--- a/sys/i386/isa/cx.c
+++ b/sys/i386/isa/cx.c
@@ -39,12 +39,6 @@
# include <machine/pio.h>
# define RB_GETC(q) getc(q)
# else /* BSD 4.4 Lite */
-# ifdef JREMOD
-# define CDEV_MAJOR 42
-# if defined(DEVFS)
-# include <sys/devfsext.h>
-# endif /*DEVFS*/
-# endif /*JREMOD*/
# include <sys/devconf.h>
# endif
#endif
@@ -83,6 +77,23 @@ extern cx_chan_t *cxchan [NCX*NCHAN]; /* unit to channel struct pointer */
#if __FreeBSD__ >= 2
extern struct kern_devconf kdc_cx [NCX];
struct tty cx_tty [NCX*NCHAN]; /* tty data */
+
+static d_open_t cxopen;
+static d_close_t cxclose;
+static d_read_t cxread;
+static d_write_t cxwrite;
+static d_ioctl_t cxioctl;
+static d_stop_t cxstop;
+static d_select_t cxselect;
+static d_ttycv_t cxdevtotty;
+
+# define CDEV_MAJOR 42
+
+struct cdevsw cx_cdevsw =
+ { cxopen, cxclose, cxread, cxwrite, /*42*/
+ cxioctl, cxstop, nullreset, cxdevtotty,/* cronyx */
+ cxselect, nommap, NULL, "cx", NULL, -1 };
+
#else
struct tty *cx_tty [NCX*NCHAN]; /* tty data */
#endif
@@ -968,14 +979,9 @@ void cxtimeout (void *a)
timeout (cxtimeout, 0, hz*5);
}
-#ifdef JREMOD
-struct cdevsw cx_cdevsw =
- { cxopen, cxclose, cxread, cxwrite, /*42*/
- cxioctl, cxstop, nullreset, cxdevtotty,/* cronyx */
- cxselect, nommap, NULL };
+#if defined(__FreeBSD__) && (__FreeBSD__ > 1 )
static cx_devsw_installed = 0;
-
static void cx_drvinit(void *unused)
{
dev_t dev;
@@ -984,20 +990,11 @@ static void cx_drvinit(void *unused)
dev = makedev(CDEV_MAJOR,0);
cdevsw_add(&dev,&cx_cdevsw,NULL);
cx_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "cx", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(cxdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,cx_drvinit,NULL)
-#endif /* JREMOD */
+#endif
#endif /* NCX */
diff --git a/sys/i386/isa/cy.c b/sys/i386/isa/cy.c
index ae025c0..acd4db6 100644
--- a/sys/i386/isa/cy.c
+++ b/sys/i386/isa/cy.c
@@ -27,7 +27,7 @@
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: cy.c,v 1.22 1995/11/29 14:39:37 julian Exp $
+ * $Id: cy.c,v 1.23 1995/12/06 23:42:34 bde Exp $
*/
#include "cy.h"
@@ -315,6 +315,10 @@ struct com_s {
u_char obuf1[256];
u_char obuf2[256];
+#ifdef DEVFS
+ void *devfs_token; /* one for now */
+#endif
+
struct kern_devconf kdc;
};
@@ -358,6 +362,21 @@ static struct com_s *p_com_addr[NSIO];
static struct timeval intr_timestamp;
+static d_open_t cyopen;
+static d_close_t cyclose;
+static d_read_t cyread;
+static d_write_t cywrite;
+static d_ioctl_t cyioctl;
+static d_stop_t cystop;
+static d_ttycv_t cydevtotty;
+
+#define CDEV_MAJOR 48
+struct cdevsw cy_cdevsw =
+ { cyopen, cyclose, cyread, cywrite, /*48*/
+ cyioctl, cystop, nxreset, cydevtotty,/*cyclades*/
+ ttselect, nxmmap, NULL, "cy", NULL, -1 };
+
+
struct isa_driver siodriver = {
sioprobe, sioattach, "cy"
};
@@ -396,12 +415,9 @@ static int cy_nr_cd1400s[NCY];
#undef RxFifoThreshold
static int volatile RxFifoThreshold = (CD1400_RX_FIFO_SIZE / 2);
-#ifdef JREMOD
#ifdef DEVFS
#include <sys/devfsext.h>
#endif /*DEVFS*/
-#define CDEV_MAJOR 48
-#endif /*JREMOD*/
static struct kern_devconf kdc_sio[NCY] = { {
0, 0, 0, /* filled in by dev_attach */
@@ -502,6 +518,7 @@ sioattach(isdp)
cy_addr iobase;
int ncyu;
int unit;
+ char name [32];
unit = isdp->id_unit;
if ((u_int)unit >= NCY)
@@ -575,6 +592,13 @@ sioattach(isdp)
s = spltty();
com_addr(unit) = com;
splx(s);
+#ifdef DEVFS
+/* XXX */ /* Fix this when you work out what the f*ck it looks like */
+ sprintf(name, "cy%d", unit);
+ com->devfs_token =
+ devfs_add_devsw( "/", name, &cy_cdevsw, unit,
+ DV_CHR, 0, 0, 0600);
+#endif
}
}
kdc_sio[isdp->id_unit].kdc_state = DC_BUSY; /* XXX */
@@ -585,7 +609,7 @@ sioattach(isdp)
return (1);
}
-int
+static int
sioopen(dev, flag, mode, p)
dev_t dev;
int flag;
@@ -786,7 +810,7 @@ out:
return (error);
}
-int
+static int
sioclose(dev, flag, mode, p)
dev_t dev;
int flag;
@@ -887,7 +911,7 @@ comhardclose(com)
splx(s);
}
-int
+static int
sioread(dev, uio, flag)
dev_t dev;
struct uio *uio;
@@ -903,7 +927,7 @@ sioread(dev, uio, flag)
return ((*linesw[tp->t_line].l_read)(tp, uio, flag));
}
-int
+static int
siowrite(dev, uio, flag)
dev_t dev;
struct uio *uio;
@@ -1320,7 +1344,7 @@ siointr1(com)
{
}
-int
+static int
sioioctl(dev, cmd, data, flag, p)
dev_t dev;
int cmd;
@@ -2105,7 +2129,7 @@ comstart(tp)
splx(s);
}
-void
+static void
siostop(tp, rw)
struct tty *tp;
int rw;
@@ -2520,36 +2544,20 @@ cystatus(unit)
-#ifdef JREMOD
-struct cdevsw cy_cdevsw =
- { cyopen, cyclose, cyread, cywrite, /*48*/
- cyioctl, cystop, nxreset, cydevtotty,/*cyclades*/
- ttselect, nxmmap, NULL };
-
static cy_devsw_installed = 0;
-static void cy_drvinit(void *unused)
+static void
+cy_drvinit(void *unused)
{
dev_t dev;
if( ! cy_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&cy_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&cy_cdevsw, NULL);
cy_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "cy", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(cydev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,cy_drvinit,NULL)
-#endif /* JREMOD */
-
#endif /* NCY > 0 */
diff --git a/sys/i386/isa/fd.c b/sys/i386/isa/fd.c
index 1af2cbf..e1b3436 100644
--- a/sys/i386/isa/fd.c
+++ b/sys/i386/isa/fd.c
@@ -1,4 +1,4 @@
-/*-
+/*
* Copyright (c) 1990 The Regents of the University of California.
* All rights reserved.
*
@@ -43,7 +43,7 @@
* SUCH DAMAGE.
*
* from: @(#)fd.c 7.4 (Berkeley) 5/25/91
- * $Id: fd.c,v 1.71 1995/11/20 12:41:38 phk Exp $
+ * $Id: fd.c,v 1.72 1995/11/28 09:41:00 julian Exp $
*
*/
@@ -87,11 +87,7 @@
#include <sys/devfsext.h>
#endif
-#ifdef JREMOD
-#define CDEV_MAJOR 9
-#define BDEV_MAJOR 2
-static void fd_devsw_install();
-#endif /*JREMOD */
+
static int fd_goaway(struct kern_devconf *, int);
static int fdc_goaway(struct kern_devconf *, int);
static int fd_externalize(struct kern_devconf *, struct sysctl_req *);
@@ -250,6 +246,10 @@ struct fd_data {
int track; /* where we think the head is */
int options; /* user configurable options, see ioctl_fd.h */
int dkunit; /* disk stats unit number */
+#ifdef DEVFS
+ void *rfd_devfs_token;
+ void *fd_devfs_token;
+#endif
} fd_data[NFD];
/***********************************************************************\
@@ -342,6 +342,24 @@ struct isa_driver fdcdriver = {
fdprobe, fdattach, "fdc",
};
+static d_open_t Fdopen; /* NOTE, not fdopen */
+static d_close_t fdclose;
+static d_ioctl_t fdioctl;
+static d_strategy_t fdstrategy;
+
+#define CDEV_MAJOR 9
+#define BDEV_MAJOR 2
+extern struct cdevsw fd_cdevsw;
+struct bdevsw fd_bdevsw =
+ { Fdopen, fdclose, fdstrategy, fdioctl, /*2*/
+ nxdump, zerosize, 0, "fd", &fd_cdevsw, -1 };
+
+struct cdevsw fd_cdevsw =
+ { Fdopen, fdclose, rawread, rawwrite, /*9*/
+ fdioctl, nostop, nullreset, nodevtotty,
+ seltrue, nommap, fdstrategy, "fd",
+ &fd_bdevsw, -1 };
+
struct isa_device *fdcdevs[NFDC];
/*
@@ -518,9 +536,6 @@ fdprobe(struct isa_device *dev)
#ifndef DEV_LKM
fdc_registerdev(dev);
#endif
-#ifdef JREMOD
- fd_devsw_install();
-#endif /*JREMOD*/
/* First - lets reset the floppy controller */
outb(dev->id_iobase+FDOUT, 0);
@@ -554,7 +569,6 @@ fdattach(struct isa_device *dev)
int ic_type = 0;
#ifdef DEVFS
char name[64];
- void *key;
#endif /* DEVFS */
fdc->fdcu = fdcu;
@@ -750,10 +764,12 @@ fdattach(struct isa_device *dev)
}
kdc_fd[fdu].kdc_state = DC_IDLE;
#ifdef DEVFS
- key = dev_add("/disks/rfloppy",name,(caddr_t)Fdopen,fdu * 8,
- DV_CHR,0,0,0644);
- key = dev_add("/disks/floppy",name,(caddr_t)Fdopen,fdu * 8,
- DV_BLK,0,0,0644);
+ fd->rfd_devfs_token = devfs_add_devsw(
+ "/",name,&fd_cdevsw, fdu * 8,
+ DV_CHR,0,0,0644);
+ fd->fd_devfs_token = devfs_add_devsw(
+ "/",name, &fd_bdevsw, fdu * 8,
+ DV_BLK,0,0,0644);
#endif /* DEVFS */
if (dk_ndrive < DK_NDRIVE) {
sprintf(dk_names[dk_ndrive], "fd%d", fdu);
@@ -1893,32 +1909,23 @@ fdioctl(dev, cmd, addr, flag, p)
}
-#ifdef JREMOD
-struct bdevsw fd_bdevsw =
- { Fdopen, fdclose, fdstrategy, fdioctl, /*2*/
- nxdump, zerosize, 0 };
-
-struct cdevsw fd_cdevsw =
- { Fdopen, fdclose, rawread, rawwrite, /*9*/
- fdioctl, nostop, nullreset, nodevtotty,/* Fd (!=fd) */
- seltrue, nommap, fdstrategy };
-
static fd_devsw_installed = 0;
-static void fd_devsw_install()
+static void fd_drvinit(void *notused )
{
- dev_t descript;
+ dev_t dev;
+
if( ! fd_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&fd_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&fd_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&fd_cdevsw, NULL);
+ dev = makedev(BDEV_MAJOR, 0);
+ bdevsw_add(&dev,&fd_bdevsw, NULL);
fd_devsw_installed = 1;
}
}
-#endif /* JREMOD */
+
+SYSINIT(fddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,fd_drvinit,NULL)
+
#endif
/*
* Hello emacs, these are the
diff --git a/sys/i386/isa/gpib.c b/sys/i386/isa/gpib.c
index 1d0b1ac..76e11d9 100644
--- a/sys/i386/isa/gpib.c
+++ b/sys/i386/isa/gpib.c
@@ -33,6 +33,11 @@
#include "uio.h"
#include "kernel.h"
#include "malloc.h"
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/clock.h>
@@ -47,14 +52,6 @@
#define SLEEP_MAX 1000
#define SLEEP_MIN 4
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 44
-#endif /*JREMOD*/
int initgpib(void);
@@ -79,6 +76,17 @@ int gpattach();
struct isa_driver gpdriver = {gpprobe, gpattach, "gp"};
+static d_open_t gpopen;
+static d_close_t gpclose;
+static d_write_t gpwrite;
+static d_ioctl_t gpioctl;
+
+#define CDEV_MAJOR 44
+struct cdevsw gp_cdevsw =
+ { gpopen, gpclose, noread, gpwrite, /*44*/
+ gpioctl, nostop, nullreset, nodevtotty,/* GPIB */
+ seltrue, nommap, NULL, "gp", NULL, -1 };
+
#define BUFSIZE 1024
#define ATTACHED 0x08
#define OPEN 0x04
@@ -92,7 +100,10 @@ static struct gpib_softc {
u_char sc_flags; /* flags (open and internal) */
char sc_unit; /* gpib device number */
char *sc_inbuf; /* buffer for data */
-} gpib_sc;
+#ifdef DEVFS
+ void *devfs_token; /* handle for devfs entry */
+#endif
+} gpib_sc; /* only support one of these? */
static int oldcount;
static char oldbytes[2];
/*Probe routine*/
@@ -134,6 +145,10 @@ gpattach(isdp)
printf ("gp%d: type AT-GPIB chip NAT4882A\n",sc->sc_unit);
sc->sc_flags |=ATTACHED;
+#ifdef DEVFS
+ sc->devfs_token = devfs_add_devsw( "/", "gp", &gp_cdevsw, 0,
+ DV_CHR, 0, 0, 0600);
+#endif
return (1);
}
@@ -144,7 +159,7 @@ gpattach(isdp)
* More than 1 open is not allowed on the entire device.
* i.e. even if gpib5 is open, we can't open another minor device
*/
-int
+static int
gpopen(dev, flags, fmt, p)
dev_t dev;
int flags;
@@ -222,7 +237,7 @@ enableremote(unit);
* gpclose()
* Close gpib device.
*/
-int
+static int
gpclose(dev, flags, fmt, p)
dev_t dev;
int flags;
@@ -325,7 +340,7 @@ while (!(inb(ISR1)&2)&&(status==EWOULDBLOCK));
* Copy from user's buffer, then write to GPIB device referenced
* by minor(dev).
*/
-int
+static int
gpwrite(dev, uio, ioflag)
dev_t dev;
struct uio *uio;
@@ -378,7 +393,7 @@ gpwrite(dev, uio, ioflag)
An exception would be a plotter or printer that you can just
write to using a minor device = its GPIB address */
-int
+static int
gpioctl(dev_t dev, int cmd, caddr_t data, int flags, struct proc *p)
{
struct gpibdata *gd = (struct gpibdata *)data;
@@ -1264,36 +1279,21 @@ outb(CDOR,95); /*untalk*/
}
-#ifdef JREMOD
-struct cdevsw gp_cdevsw =
- { gpopen, gpclose, noread, gpwrite, /*44*/
- gpioctl, nostop, nullreset, nodevtotty,/* GPIB */
- seltrue, nommap, NULL };
-
static gp_devsw_installed = 0;
-static void gp_drvinit(void *unused)
+static void
+gp_drvinit(void *unused)
{
dev_t dev;
if( ! gp_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&gp_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&gp_cdevsw, NULL);
gp_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "gp", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(gpdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,gp_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NGPIB > 0 */
diff --git a/sys/i386/isa/gsc.c b/sys/i386/isa/gsc.c
index e8dfade..f8369e5 100644
--- a/sys/i386/isa/gsc.c
+++ b/sys/i386/isa/gsc.c
@@ -45,6 +45,11 @@
#include <sys/ioctl.h>
#include <sys/uio.h>
#include <sys/syslog.h>
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/gsc.h>
@@ -57,14 +62,6 @@
* CONSTANTS & DEFINES
*
***********************************************************************/
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 47
-#endif /*JREMOD*/
#define PROBE_FAIL 0
#define PROBE_SUCCESS 1
@@ -159,6 +156,12 @@ struct gsc_unit {
int height; /* height, for pnm modes */
size_t bcount; /* bytes to read, for pnm modes */
struct _sbuf hbuf; /* buffer for pnm header data */
+#ifdef DEVFS
+ void *devfs_gsc; /* storage for devfs tokens (handles) */
+ void *devfs_gscp;
+ void *devfs_gscd;
+ void *devfs_gscpd;
+#endif
} unittab[NGSC];
/* I could not find a reasonable buffer size limit other than by
@@ -175,11 +178,23 @@ struct gsc_unit {
*
***********************************************************************/
-int gscprobe (struct isa_device *isdp);
-int gscattach(struct isa_device *isdp);
+static int gscprobe (struct isa_device *isdp);
+static int gscattach(struct isa_device *isdp);
struct isa_driver gscdriver = { gscprobe, gscattach, "gsc" };
+static d_open_t gscopen;
+static d_close_t gscclose;
+static d_read_t gscread;
+static d_ioctl_t gscioctl;
+
+#define CDEV_MAJOR 47
+struct cdevsw gsc_cdevsw =
+ { gscopen, gscclose, gscread, nowrite, /*47*/
+ gscioctl, nostop, nullreset, nodevtotty,/* gsc */
+ seltrue, nommap, NULL, "gsc", NULL, -1 };
+
+
/***********************************************************************
*
* LOCALLY USED SUBROUTINES
@@ -379,7 +394,7 @@ buffer_read(struct gsc_unit *scu)
* - if DMA channel matches (status byte has correct value)
*/
-int
+static int
gscprobe (struct isa_device *isdp)
{
int unit = isdp->id_unit;
@@ -476,11 +491,12 @@ gscprobe (struct isa_device *isdp)
* get geometry value
*/
-int
+static int
gscattach(struct isa_device *isdp)
{
int unit = isdp->id_unit;
struct gsc_unit *scu = unittab + unit;
+ char name[32];
scu->flags |= DEBUG;
@@ -507,6 +523,26 @@ gscattach(struct isa_device *isdp)
scu->flags |= ATTACHED;
lprintf("gsc%d.attach: ok\n", unit);
scu->flags &= ~DEBUG;
+#ifdef DEVFS
+#define GSC_UID 0
+#define GSC_GID 13
+ sprintf(name,"gsc%d",unit);
+/* path name devsw minor type uid gid perm*/
+ scu->devfs_gsc = devfs_add_devsw("/", name, &gsc_cdevsw, unit<<6,
+ DV_CHR, GSC_UID, GSC_GID, 0666);
+ sprintf(name,"gsc%dp",unit);
+ scu->devfs_gscp = devfs_add_devsw("/", name, &gsc_cdevsw,
+ ((unit<<6) + FRMT_PBM),
+ DV_CHR, GSC_UID, GSC_GID, 0666);
+ sprintf(name,"gsc%dd",unit);
+ scu->devfs_gscd = devfs_add_devsw("/", name, &gsc_cdevsw,
+ ((unit<<6) + DBUG_MASK),
+ DV_CHR, GSC_UID, GSC_GID, 0666);
+ sprintf(name,"gsc%dpd",unit);
+ scu->devfs_gscpd = devfs_add_devsw("/", name, &gsc_cdevsw,
+ ((unit<<6) + DBUG_MASK + FRMT_PBM),
+ DV_CHR, GSC_UID, GSC_GID, 0666);
+#endif /*DEVFS*/
return SUCCESS; /* attach must not fail */
}
@@ -520,7 +556,8 @@ gscattach(struct isa_device *isdp)
* don't switch scanner on, wait until first read ioctls go before
*/
-int gscopen (dev_t dev, int flags, int fmt, struct proc *p)
+static int
+gscopen (dev_t dev, int flags, int fmt, struct proc *p)
{
int unit = UNIT(minor(dev)) & UNIT_MASK;
struct gsc_unit *scu = unittab + unit;
@@ -573,7 +610,8 @@ int gscopen (dev_t dev, int flags, int fmt, struct proc *p)
* release the buffer
*/
-int gscclose (dev_t dev, int flags, int fmt, struct proc *p)
+static int
+gscclose (dev_t dev, int flags, int fmt, struct proc *p)
{
int unit = UNIT(minor(dev));
struct gsc_unit *scu = unittab + unit;
@@ -606,7 +644,8 @@ int gscclose (dev_t dev, int flags, int fmt, struct proc *p)
* gscread
*/
-int gscread (dev_t dev, struct uio *uio, int ioflag)
+static int
+gscread (dev_t dev, struct uio *uio, int ioflag)
{
int unit = UNIT(minor(dev));
struct gsc_unit *scu = unittab + unit;
@@ -695,7 +734,8 @@ int gscread (dev_t dev, struct uio *uio, int ioflag)
*
*/
-int gscioctl (dev_t dev, int cmd, caddr_t data, int flag, struct proc *p)
+static int
+gscioctl (dev_t dev, int cmd, caddr_t data, int flag, struct proc *p)
{
int unit = UNIT(minor(dev));
struct gsc_unit *scu = unittab + unit;
@@ -782,36 +822,21 @@ int gscioctl (dev_t dev, int cmd, caddr_t data, int flag, struct proc *p)
}
-#ifdef JREMOD
-struct cdevsw gsc_cdevsw =
- { gscopen, gscclose, gscread, nowrite, /*47*/
- gscioctl, nostop, nullreset, nodevtotty,/* gsc */
- seltrue, nommap, NULL };
-
static gsc_devsw_installed = 0;
-static void gsc_drvinit(void *unused)
+static void
+gsc_drvinit(void *unused)
{
dev_t dev;
if( ! gsc_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&gsc_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&gsc_cdevsw, NULL);
gsc_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "gsc", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(gscdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,gsc_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NGSC > 0 */
diff --git a/sys/i386/isa/if_cx.c b/sys/i386/isa/if_cx.c
index 1520f95..8ea6810 100644
--- a/sys/i386/isa/if_cx.c
+++ b/sys/i386/isa/if_cx.c
@@ -45,9 +45,9 @@
# include <machine/pio.h>
# else
# ifdef DEVFS
+extern struct cdevsw cx_cdevsw;
# include <sys/devfsext.h>
# endif /*DEVFS*/
-# define CDEV_MAJOR 42 /*XXX*/ /* replace with variable ASAP*/
# include <sys/devconf.h>
# endif
# define watchdog_func_t void(*)(struct ifnet *)
@@ -372,11 +372,10 @@ void cxattach (struct device *parent, struct device *self, void *aux)
printf ("cx%d: <Cronyx-%s>\n", unit, b->name);
#ifdef DEVFS
{
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
+ void *x;
x=devfs_add_devsw(
/* path name devsw minor type uid gid perm*/
- "/", "cx", major(CDEV_MAJOR), 0, DV_CHR, 0, 0, 0600);
+ "/", "cx", &cx_cdevsw, 0, DV_CHR, 0, 0, 0600);
}
#endif
return (1);
diff --git a/sys/i386/isa/joy.c b/sys/i386/isa/joy.c
index 25d2311..2955d1c 100644
--- a/sys/i386/isa/joy.c
+++ b/sys/i386/isa/joy.c
@@ -34,6 +34,11 @@
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/joystick.h>
@@ -41,15 +46,6 @@
#include <i386/isa/isa_device.h>
#include <i386/isa/timerreg.h>
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 51
-#endif /*JREMOD*/
-
/* The game port can manage 4 buttons and 4 variable resistors (usually 2
* joysticks, each with 2 buttons and 2 pots.) via the port at address 0x201.
* Getting the state of the buttons is done by reading the game port:
@@ -77,6 +73,9 @@ static struct {
int port;
int x_off[2], y_off[2];
int timeout[2];
+#ifdef DEVFS
+ void *devfs_token;
+#endif
} joy[NJOY];
@@ -86,6 +85,17 @@ int joyprobe (struct isa_device *), joyattach (struct isa_device *);
struct isa_driver joydriver = {joyprobe, joyattach, "joy"};
+#define CDEV_MAJOR 51
+static d_open_t joyopen;
+static d_close_t joyclose;
+static d_read_t joyread;
+static d_ioctl_t joyioctl;
+
+struct cdevsw joy_cdevsw =
+ { joyopen, joyclose, joyread, nowrite, /*51*/
+ joyioctl, nostop, nullreset, nodevtotty,/*joystick */
+ seltrue, nommap, NULL, "joy", NULL, -1 };
+
static int get_tick ();
@@ -104,14 +114,22 @@ joyprobe (struct isa_device *dev)
int
joyattach (struct isa_device *dev)
{
- joy[dev->id_unit].port = dev->id_iobase;
- joy[dev->id_unit].timeout[0] = joy[dev->id_unit].timeout[1] = 0;
- printf("joy%d: joystick\n", dev->id_unit);
-
+ int unit = dev->id_unit;
+ char name[32];
+
+ joy[unit].port = dev->id_iobase;
+ joy[unit].timeout[0] = joy[unit].timeout[1] = 0;
+ printf("joy%d: joystick\n", unit);
+#ifdef DEVFS
+ sprintf(name, "joy%d", unit);
+ joy[dev->id_unit].devfs_token = devfs_add_devsw( "/", "joy",
+ &joy_cdevsw, 0,
+ DV_CHR, 0, 0, 0600);
+#endif
return 1;
}
-int
+static int
joyopen (dev_t dev, int flags, int fmt, struct proc *p)
{
int unit = UNIT (dev);
@@ -123,7 +141,7 @@ joyopen (dev_t dev, int flags, int fmt, struct proc *p)
joy[unit].timeout[i] = JOY_TIMEOUT;
return 0;
}
-int
+static int
joyclose (dev_t dev, int flags, int fmt, struct proc *p)
{
int unit = UNIT (dev);
@@ -133,7 +151,7 @@ joyclose (dev_t dev, int flags, int fmt, struct proc *p)
return 0;
}
-int
+static int
joyread (dev_t dev, struct uio *uio, int flag)
{
int unit = UNIT(dev);
@@ -169,7 +187,9 @@ joyread (dev_t dev, struct uio *uio, int flag)
c.b2 = ~(state >> 1) & 1;
return uiomove ((caddr_t)&c, sizeof(struct joystick), uio);
}
-int joyioctl (dev_t dev, int cmd, caddr_t data, int flag, struct proc *p)
+
+static int
+joyioctl (dev_t dev, int cmd, caddr_t data, int flag, struct proc *p)
{
int unit = UNIT (dev);
int i = joypart (dev);
@@ -202,6 +222,7 @@ int joyioctl (dev_t dev, int cmd, caddr_t data, int flag, struct proc *p)
}
return 0;
}
+
static int
get_tick ()
{
@@ -215,12 +236,6 @@ get_tick ()
}
-#ifdef JREMOD
-struct cdevsw joy_cdevsw =
- { joyopen, joyclose, joyread, nowrite, /*51*/
- joyioctl, nostop, nullreset, nodevtotty,/*joystick */
- seltrue, nommap, NULL};
-
static joy_devsw_installed = 0;
static void joy_drvinit(void *unused)
@@ -231,20 +246,9 @@ static void joy_drvinit(void *unused)
dev = makedev(CDEV_MAJOR,0);
cdevsw_add(&dev,&joy_cdevsw,NULL);
joy_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "joy", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(joydev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,joy_drvinit,NULL)
-#endif /* JREMOD */
-
#endif /* NJOY > 0 */
diff --git a/sys/i386/isa/labpc.c b/sys/i386/isa/labpc.c
index 430be96..97984ee 100644
--- a/sys/i386/isa/labpc.c
+++ b/sys/i386/isa/labpc.c
@@ -53,20 +53,17 @@
#include <sys/errno.h>
#include <sys/buf.h>
#include <sys/dataacq.h>
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/devconf.h>
#include <machine/clock.h>
#include <i386/isa/isa_device.h>
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 66
-#endif /*JREMOD*/
/* Miniumum timeout:
@@ -151,6 +148,9 @@ struct ctlr
/* Device configuration structure:
*/
struct kern_devconf kdc;
+#ifdef DEVFS
+ void *devfs_token;
+#endif
};
#ifdef LOUTB
@@ -283,6 +283,17 @@ extern int labpcprobe(struct isa_device *dev);
struct isa_driver labpcdriver =
{ labpcprobe, labpcattach, "labpc", 0 /* , labpcdetach */ };
+static d_open_t labpcopen;
+static d_close_t labpcclose;
+static d_ioctl_t labpcioctl;
+static d_strategy_t labpcstrategy;
+
+#define CDEV_MAJOR 66
+struct cdevsw labpc_cdevsw =
+ { labpcopen, labpcclose, rawread, rawwrite, /*66*/
+ labpcioctl, nostop, nullreset, nodevtotty,/* labpc */
+ seltrue, nommap, labpcstrategy, "labpc", NULL, -1 };
+
static void start(struct ctlr *ctlr);
static void
@@ -495,6 +506,8 @@ int labpcprobe(struct isa_device *dev)
int labpcattach(struct isa_device *dev)
{
struct ctlr *ctlr = labpcs[dev->id_unit];
+ char name[32];
+
ctlr->sample_us = (1000000.0 / (double)LABPC_DEFAULT_HERZ) + .50;
reset(ctlr);
labpc_registerdev(dev);
@@ -505,6 +518,13 @@ int labpcattach(struct isa_device *dev)
ctlr->dcr_is = 0x80;
loutb(DCR(ctlr), ctlr->dcr_val);
+#ifdef DEVFS
+ sprintf(name, "labpc%d",dev->id_unit);
+ /* path name devsw minor */
+ ctlr->devfs_token = devfs_add_devsw( "/", name, &labpc_cdevsw, 0,
+ /* what UID GID PERM */
+ DV_CHR, 0, 0, 0600);
+#endif
return 1;
}
@@ -734,7 +754,7 @@ lockout_multiple_open(dev_t current, dev_t next)
return ! (DIGITAL(current) && DIGITAL(next));
}
-int
+static int
labpcopen(dev_t dev, int flags, int fmt, struct proc *p)
{
u_short unit = UNIT(dev);
@@ -772,7 +792,7 @@ labpcopen(dev_t dev, int flags, int fmt, struct proc *p)
return 0;
}
-int
+static int
labpcclose(dev_t dev, int flags, int fmt, struct proc *p)
{
struct ctlr *ctlr = labpcs[UNIT(dev)];
@@ -1007,7 +1027,7 @@ digital_in_strategy(struct buf *bp, struct ctlr *ctlr)
}
-void
+static void
labpcstrategy(struct buf *bp)
{
struct ctlr *ctlr = labpcs[UNIT(bp->b_dev)];
@@ -1045,7 +1065,7 @@ labpcstrategy(struct buf *bp)
}
}
-int
+static int
labpcioctl(dev_t dev, int cmd, caddr_t arg, int mode, struct proc *p)
{
struct ctlr *ctlr = labpcs[UNIT(dev)];
@@ -1107,12 +1127,6 @@ labpcioctl(dev_t dev, int cmd, caddr_t arg, int mode, struct proc *p)
}
-#ifdef JREMOD
-struct cdevsw labpc_cdevsw =
- { labpcopen, labpcclose, rawread, rawwrite, /*66*/
- labpcioctl, nostop, nullreset, nodevtotty,/* labpc */
- seltrue, nommap, labpcstrategy };
-
static labpc_devsw_installed = 0;
static void labpc_drvinit(void *unused)
@@ -1123,19 +1137,9 @@ static void labpc_drvinit(void *unused)
dev = makedev(CDEV_MAJOR,0);
cdevsw_add(&dev,&labpc_cdevsw,NULL);
labpc_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "labpc", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(labpcdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,labpc_drvinit,NULL)
-#endif /* JREMOD */
diff --git a/sys/i386/isa/lpt.c b/sys/i386/isa/lpt.c
index 3c0b4b4..81d503b 100644
--- a/sys/i386/isa/lpt.c
+++ b/sys/i386/isa/lpt.c
@@ -46,7 +46,7 @@
* SUCH DAMAGE.
*
* from: unknown origin, 386BSD 0.1
- * $Id: lpt.c,v 1.44 1995/12/06 23:50:14 bde Exp $
+ * $Id: lpt.c,v 1.45 1995/12/07 12:46:03 davidg Exp $
*/
/*
@@ -113,6 +113,9 @@
#include <sys/uio.h>
#include <sys/syslog.h>
#include <sys/devconf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/clock.h>
#include <machine/lpt.h>
@@ -144,14 +147,6 @@
#endif
#endif /* INET */
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 16
-#endif /*JREMOD*/
#define LPINITRDY 4 /* wait up to 4 seconds for a ready */
#define LPTOUTTIME 4 /* wait up to 4 seconds for a ready */
@@ -232,7 +227,9 @@ struct lpt_softc {
u_char *sc_ifbuf;
int sc_iferrs;
#endif /* ENDIF */
-
+#ifdef DEVFS
+ void *devfs_token;
+#endif
} lpt_sc[NLPT] ;
/* bits for state */
@@ -289,6 +286,18 @@ struct isa_driver lptdriver = {
lptprobe, lptattach, "lpt"
};
+static d_open_t lptopen;
+static d_close_t lptclose;
+static d_write_t lptwrite;
+static d_ioctl_t lptioctl;
+
+#define CDEV_MAJOR 16
+struct cdevsw lpt_cdevsw =
+ { lptopen, lptclose, noread, lptwrite, /*16*/
+ lptioctl, nullstop, nullreset, nodevtotty,/* lpt */
+ seltrue, nommap, nostrat, "lpt", NULL, -1 };
+
+
static struct kern_devconf kdc_lpt[NLPT] = { {
0, 0, 0, /* filled in by dev_attach */
"lpt", 0, { MDDT_ISA, 0, "tty" },
@@ -443,8 +452,11 @@ int
lptattach(struct isa_device *isdp)
{
struct lpt_softc *sc;
+ int unit;
+ char name[32];
- sc = lpt_sc + isdp->id_unit;
+ unit = isdp->id_unit;
+ sc = lpt_sc + unit;
sc->sc_port = isdp->id_iobase;
sc->sc_primed = 0; /* not primed yet */
outb(sc->sc_port+lpt_control, LPC_NINIT);
@@ -453,18 +465,25 @@ lptattach(struct isa_device *isdp)
lprintf("oldirq %x\n", sc->sc_irq);
if (isdp->id_irq) {
sc->sc_irq = LP_HAS_IRQ | LP_USE_IRQ | LP_ENABLE_IRQ;
- printf("lpt%d: Interrupt-driven port\n", isdp->id_unit);
+ printf("lpt%d: Interrupt-driven port\n", unit);
#ifdef INET
- lpattach(sc, isdp->id_unit);
+ lpattach(sc, unit);
#endif
} else {
sc->sc_irq = 0;
- lprintf("lpt%d: Polled port\n", isdp->id_unit);
+ lprintf("lpt%d: Polled port\n", unit);
}
lprintf("irq %x\n", sc->sc_irq);
- kdc_lpt[isdp->id_unit].kdc_state = DC_IDLE;
+ kdc_lpt[unit].kdc_state = DC_IDLE;
+#ifdef DEVFS
+/* XXX */ /* what to do about the flags in the minor number? */
+ sprintf(name,"lpt%d",unit);
+ /* path name devsw minor type uid gid perm*/
+ sc->devfs_token = devfs_add_devsw( "/", name, &lpt_cdevsw, unit,
+ DV_CHR, 0, 0, 0600);
+#endif
return (1);
}
@@ -474,7 +493,7 @@ lptattach(struct isa_device *isdp)
* printer -- this is just used for passing ioctls.
*/
-int
+static int
lptopen (dev_t dev, int flags, int fmt, struct proc *p)
{
struct lpt_softc *sc;
@@ -608,7 +627,7 @@ lptout (struct lpt_softc * sc)
* Check for interrupted write call added.
*/
-int
+static int
lptclose(dev_t dev, int flags, int fmt, struct proc *p)
{
struct lpt_softc *sc = lpt_sc + LPTUNIT(minor(dev));
@@ -707,7 +726,7 @@ pushbytes(struct lpt_softc * sc)
* Flagging of interrupted write added.
*/
-int
+static int
lptwrite(dev_t dev, struct uio * uio, int ioflag)
{
register unsigned n;
@@ -805,7 +824,7 @@ lptintr(int unit)
lprintf("sts %x ", sts);
}
-int
+static int
lptioctl(dev_t dev, int cmd, caddr_t data, int flags, struct proc *p)
{
int error = 0;
@@ -1355,12 +1374,6 @@ lpoutput (struct ifnet *ifp, struct mbuf *m,
#endif /* INET */
-#ifdef JREMOD
-struct cdevsw lpt_cdevsw =
- { lptopen, lptclose, noread, lptwrite, /*16*/
- lptioctl, nullstop, nullreset, nodevtotty,/* lpt */
- seltrue, nommap, nostrat};
-
static lpt_devsw_installed = 0;
static void lpt_drvinit(void *unused)
@@ -1368,21 +1381,11 @@ static void lpt_drvinit(void *unused)
dev_t dev;
if( ! lpt_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&lpt_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&lpt_cdevsw, NULL);
lpt_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "lpt", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(lptdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,lpt_drvinit,NULL)
-#endif /* JREMOD */
diff --git a/sys/i386/isa/matcd/matcd.c b/sys/i386/isa/matcd/matcd.c
index f4e29fa..20f5116 100644
--- a/sys/i386/isa/matcd/matcd.c
+++ b/sys/i386/isa/matcd/matcd.c
@@ -323,6 +323,11 @@ Edit number code marking begins here - earlier edits were during development.
Also, disable the audio-related ioctls based on the BOOTMFS
conditional to help make the boot floppy kernel smaller.
18-Oct-95 Frank Durda IV bsdmail@nemesis.lonestar.org
+
+<27> Incorporated changes needed to move the cdevsw and bdevsw
+ entries into the drivers (including this one). Also
+ include a quick first pass cut at DEVFS suppport.
+
---------------------------------------------------------------------------*/
/*Match this format: Version_dc(d)__dd-mmm-yy */
@@ -332,6 +337,7 @@ static char MATCDVERSION[]="Version 1(26) 18-Oct-95";
static char MATCDCOPYRIGHT[] = "Matsushita CD-ROM driver, Copr. 1994,1995 Frank Durda IV";
/* The proceeding strings may not be changed*/
+/* $Id:$ */
/*---------------------------------------------------------------------------
Include declarations
@@ -356,9 +362,14 @@ static char MATCDCOPYRIGHT[] = "Matsushita CD-ROM driver, Copr. 1994,1995 Frank
#ifdef FREE2
#include <sys/devconf.h> /*<16>*/
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#else /*FREE2*/
-#include "i386/isa/isa.h" /*<16>*/
-#include "i386/isa/isa_device.h" /*<16>*/
+#include <i386/isa/isa.h> /*<16>*/
+#include <i386/isa/isa_device.h> /*<16>*/
#endif /*FREE2*/
/*---------------------------------------------------------------------------
@@ -433,6 +444,12 @@ static struct matcd_data { /*<18>*/
struct matcd_mbx mbx;
u_char patch[2]; /*<12>Last known audio routing*/
u_char volume[2]; /*<12>Last known volume setting*/
+#ifdef DEVFS
+ void *ra_devfs_token; /* handle for devfs entry */
+ void *rc_devfs_token;
+ void *a_devfs_token;
+ void *c_devfs_token;
+#endif DEVFS
} matcd_data[TOTALDRIVES];
@@ -491,15 +508,6 @@ static struct kern_devconf kdc_matcd[TOTALDRIVES] = { { /*<12>*/
"Matsushita CD-ROM Controller" /*<12>This is the description*/
} }; /*<12>*/
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 46
-#define BDEV_MAJOR 17
-#endif /*JREMOD */
#endif /*FREE2*/
@@ -535,19 +543,48 @@ static struct kern_devconf kdc_matcd[TOTALDRIVES] = { { /*<12>*/
/*---------------------------------------------------------------------------
Entry points and other connections to/from kernel - see also conf.h
+ --- not any more :)
---------------------------------------------------------------------------*/
-extern int hz;
extern int matcd_probe(struct isa_device *dev);
extern int matcd_attach(struct isa_device *dev);
struct isa_driver matcddriver={matcd_probe, matcd_attach, /*<16>*/
"matcdc"}; /*<20>*/
+#ifdef FREE2
+
+static d_open_t matcdopen;
+static d_close_t matcdclose;
+static d_ioctl_t matcdioctl;
+static d_dump_t matcddump;
+static d_psize_t matcdsize;
+static d_strategy_t matcdstrategy;
+
+#define CDEV_MAJOR 46
+#define BDEV_MAJOR 17
+
+extern struct cdevsw matcd_cdevsw;
+static struct bdevsw matcd_bdevsw =
+ { matcdopen, matcdclose, matcdstrategy, matcdioctl, /*17*/
+ nxdump, matcdsize, 0, "matcd",
+ &matcd_cdevsw, -1 };
+
+static struct cdevsw matcd_cdevsw =
+ { matcdopen, matcdclose, rawread, nowrite, /*46*/
+ matcdioctl, nostop, nullreset, nodevtotty,/* SB cd */
+ seltrue, nommap, matcdstrategy, "matcd",
+ &matcd_bdevsw, -1};
+
+#else
+extern int hz;
+#endif /* FREE2 */
+
/*---------------------------------------------------------------------------
Internal function declarations
---------------------------------------------------------------------------*/
+static void matcd_drvinit(void *unused);
static void matcd_start(struct buf *dp);
static void zero_cmd(char *);
static void matcd_pread(int port, int count, unsigned char * data);
@@ -1421,6 +1458,9 @@ int matcd_attach(struct isa_device *dev)
unsigned char data[12];
struct matcd_data *cd;
int port = dev->id_iobase; /*Take port ID selected in probe()*/
+#ifdef DEVFS
+ char name[32];
+#endif
#ifdef DIAGPORT
DIAGOUT(DIAGPORT,0x70); /*Show where we are*/
@@ -1471,6 +1511,29 @@ int matcd_attach(struct isa_device *dev)
for (i=0; i<MAXPARTITIONS; i++) {
cd->partflags[i]=0;
}
+#ifdef DEVFS
+#define MATCD_UID 0
+#define MATCD_GID 13
+ sprintf(name, "rmatcd%da",i);
+ cd->ra_devfs_token = devfs_add_devsw(
+ "/", name, &matcd_cdevsw, 0,
+ DV_CHR, MATCD_UID, MATCD_GID, 0600);
+
+ sprintf(name, "rmatcd%dc",i);
+ cd->rc_devfs_token = devfs_add_devsw(
+ "/", name, &matcd_cdevsw, RAW_PART,
+ DV_CHR, MATCD_UID, MATCD_GID, 0600);
+
+ sprintf(name, "matcd%da",i);
+ cd->a_devfs_token = devfs_add_devsw(
+ "/", name, &matcd_bdevsw, 0,
+ DV_BLK, MATCD_UID, MATCD_GID, 0600);
+
+ sprintf(name, "matcd%dc",i);
+ cd->c_devfs_token = devfs_add_devsw(
+ "/", name, &matcd_bdevsw, RAW_PART,
+ DV_BLK, MATCD_UID, MATCD_GID, 0600);
+#endif
}
}
nextcontroller++; /*Bump ctlr assign to next number*/
@@ -2749,47 +2812,27 @@ static int matcd_igot(struct ioc_capability * sqp)
audio are here*/
#endif /*FULLDRIVER*/
-#ifdef JREMOD
-struct bdevsw matcd_bdevsw =
- { matcdopen, matcdclose, matcdstrategy, matcdioctl, /*17*/
- nxdump, matcdsize, 0 };
-
-struct cdevsw matcd_cdevsw =
- { matcdopen, matcdclose, rawread, nowrite, /*46*/
- matcdioctl, nostop, nullreset, nodevtotty,/* SB cd */
- seltrue, nommap, matcdstrategy };
+#ifdef FREE2
static matcd_devsw_installed = 0;
-static void matcd_drvinit(void *unused)
+static void
+matcd_drvinit(void *unused)
{
dev_t dev;
- dev_t dev_chr;
if( ! matcd_devsw_installed ) {
dev = makedev(CDEV_MAJOR,0);
cdevsw_add(&dev,&matcd_cdevsw,NULL);
- dev_chr = dev;
dev = makedev(BDEV_MAJOR,0);
bdevsw_add(&dev,&matcd_bdevsw,NULL);
matcd_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "rmatcd", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
- x=devfs_add_devsw(
- "/", "matcd", major(dev), 0, DV_BLK, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(matcddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,matcd_drvinit,NULL)
-#endif /* JREMOD */
+#endif /* FREE2 */
/*End of matcd.c*/
diff --git a/sys/i386/isa/mcd.c b/sys/i386/isa/mcd.c
index 5f7f68b..ee2e03a 100644
--- a/sys/i386/isa/mcd.c
+++ b/sys/i386/isa/mcd.c
@@ -40,7 +40,7 @@
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: mcd.c,v 1.50 1995/11/29 10:47:44 julian Exp $
+ * $Id: mcd.c,v 1.51 1995/11/29 14:39:46 julian Exp $
*/
static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
@@ -61,6 +61,10 @@ static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
#include <sys/dkbad.h>
#include <sys/disklabel.h>
#include <sys/devconf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/clock.h>
@@ -70,15 +74,6 @@ static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
#include <i386/isa/isa_device.h>
#include <i386/isa/mcdreg.h>
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 29
-#define BDEV_MAJOR 7
-#endif /*JREMOD */
#define MCD_TRACE(format, args...) \
{ \
@@ -164,6 +159,12 @@ struct mcd_data {
short debug;
struct buf head; /* head of buf queue */
struct mcd_mbx mbx;
+#ifdef DEVFS
+ void *ra_devfs_token; /* store the devfs handle here */
+ void *rc_devfs_token; /* store the devfs handle here */
+ void *a_devfs_token; /* store the devfs handle here */
+ void *c_devfs_token; /* store the devfs handle here */
+#endif
} mcd_data[NMCD];
/* reader state machine */
@@ -208,11 +209,29 @@ static int mcd_resume(int unit);
static int mcd_lock_door(int unit, int lock);
static int mcd_close_tray(int unit);
-extern int hz;
static int mcd_probe(struct isa_device *dev);
static int mcd_attach(struct isa_device *dev);
struct isa_driver mcddriver = { mcd_probe, mcd_attach, "mcd" };
+static d_open_t mcdopen;
+static d_close_t mcdclose;
+static d_ioctl_t mcdioctl;
+static d_psize_t mcdsize;
+static d_strategy_t mcdstrategy;
+
+#define CDEV_MAJOR 29
+#define BDEV_MAJOR 7
+extern struct cdevsw mcd_cdevsw;
+struct bdevsw mcd_bdevsw =
+ { mcdopen, mcdclose, mcdstrategy, mcdioctl, /*7*/
+ nxdump, mcdsize, 0, "mcd", &mcd_cdevsw, -1 };
+
+struct cdevsw mcd_cdevsw =
+ { mcdopen, mcdclose, rawread, nowrite, /*29*/
+ mcdioctl, nostop, nullreset, nodevtotty,
+ seltrue, nommap, mcdstrategy, "mcd",
+ &mcd_bdevsw, -1 };
+
#define mcd_put(port,byte) outb(port,byte)
#define MCD_RETRYS 5
@@ -253,20 +272,44 @@ mcd_registerdev(struct isa_device *id)
int mcd_attach(struct isa_device *dev)
{
- struct mcd_data *cd = mcd_data + dev->id_unit;
+ int unit = dev->id_unit;
+ struct mcd_data *cd = mcd_data + unit;
+ char name[32];
cd->iobase = dev->id_iobase;
cd->flags |= MCDINIT;
- mcd_soft_reset(dev->id_unit);
+ mcd_soft_reset(unit);
#ifdef NOTYET
/* wire controller for interrupts and dma */
mcd_configure(cd);
#endif
- kdc_mcd[dev->id_unit].kdc_state = DC_IDLE;
+ kdc_mcd[unit].kdc_state = DC_IDLE;
/* name filled in probe */
- kdc_mcd[dev->id_unit].kdc_description = mcd_data[dev->id_unit].name;
-
+ kdc_mcd[unit].kdc_description = mcd_data[unit].name;
+#ifdef DEVFS
+#define MCD_UID 0
+#define MCD_GID 13
+ sprintf(name, "rmcd%da",unit);
+ cd->ra_devfs_token = devfs_add_devsw(
+ "/", name, &mcd_cdevsw, (unit * 8 ) + 0,
+ DV_CHR, MCD_UID, MCD_GID, 0600);
+
+ sprintf(name, "rmcd%dc",unit);
+ cd->rc_devfs_token = devfs_add_devsw(
+ "/", name, &mcd_cdevsw, (unit * 8 ) + RAW_PART,
+ DV_CHR, MCD_UID, MCD_GID, 0600);
+
+ sprintf(name, "mcd%da",unit);
+ cd->a_devfs_token = devfs_add_devsw(
+ "/", name, &mcd_bdevsw, (unit * 8 ) + 0,
+ DV_BLK, MCD_UID, MCD_GID, 0600);
+
+ sprintf(name, "mcd%dc",unit);
+ cd->c_devfs_token = devfs_add_devsw(
+ "/", name, &mcd_bdevsw, (unit * 8 ) + RAW_PART,
+ DV_BLK, MCD_UID, MCD_GID, 0600);
+#endif
return 1;
}
@@ -1670,45 +1713,23 @@ mcd_resume(int unit)
return mcd_play(unit, &cd->lastpb);
}
-#ifdef JREMOD
-struct bdevsw mcd_bdevsw =
- { mcdopen, mcdclose, mcdstrategy, mcdioctl, /*7*/
- nxdump, mcdsize, 0 };
-
-struct cdevsw mcd_cdevsw =
- { mcdopen, mcdclose, rawread, nowrite, /*29*/
- mcdioctl, nostop, nullreset, nodevtotty,/* mitsumi cd */
- seltrue, nommap, mcdstrategy };
static mcd_devsw_installed = 0;
static void mcd_drvinit(void *unused)
{
dev_t dev;
- dev_t dev_chr;
if( ! mcd_devsw_installed ) {
dev = makedev(CDEV_MAJOR,0);
cdevsw_add(&dev,&mcd_cdevsw,NULL);
- dev_chr = dev;
dev = makedev(BDEV_MAJOR,0);
bdevsw_add(&dev,&mcd_bdevsw,NULL);
mcd_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
-/* path name devsw minor type uid gid perm*/
- "/", "rmcd", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
- x=devfs_add_devsw(
- "/", "mcd", major(dev), 0, DV_BLK, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(mcddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,mcd_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NMCD > 0 */
diff --git a/sys/i386/isa/mse.c b/sys/i386/isa/mse.c
index 8e9fa7b..96f62e5 100644
--- a/sys/i386/isa/mse.c
+++ b/sys/i386/isa/mse.c
@@ -11,7 +11,7 @@
* this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
- * $Id: mse.c,v 1.18 1995/11/29 14:39:47 julian Exp $
+ * $Id: mse.c,v 1.19 1995/12/06 23:42:53 bde Exp $
*/
/*
* Driver for the Logitech and ATI Inport Bus mice for use with 386bsd and
@@ -55,20 +55,16 @@
#include <sys/ioctl.h>
#include <sys/uio.h>
#include <sys/devconf.h>
+#include <sys/conf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/clock.h>
#include <i386/isa/isa_device.h>
#include <i386/isa/icu.h>
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 27
-#endif /*JREMOD*/
static int mseprobe(struct isa_device *);
static int mseattach(struct isa_device *);
@@ -77,6 +73,18 @@ struct isa_driver msedriver = {
mseprobe, mseattach, "mse"
};
+static d_open_t mseopen;
+static d_close_t mseclose;
+static d_read_t mseread;
+static d_select_t mseselect;
+
+#define CDEV_MAJOR 27
+struct cdevsw mse_cdevsw =
+ { mseopen, mseclose, mseread, nowrite, /*27*/
+ noioc, nostop, nullreset, nodevtotty,/* mse */
+ mseselect, nommap, NULL, "mse", NULL, -1 };
+
+
/*
* Software control structure for mouse. The sc_enablemouse(),
* sc_disablemouse() and sc_getmouse() routines must be called spl'd().
@@ -96,6 +104,10 @@ struct mse_softc {
int sc_buttons;
int sc_bytesread;
u_char sc_bytes[PROTOBYTES];
+#ifdef DEVFS
+ void *devfs_token;
+ void *n_devfs_token;
+#endif
} mse_sc[NMSE];
/* Flags */
@@ -238,17 +250,31 @@ int
mseattach(idp)
struct isa_device *idp;
{
- struct mse_softc *sc = &mse_sc[idp->id_unit];
+ char name[32];
+ int unit = idp->id_unit;
+ struct mse_softc *sc = &mse_sc[unit];
sc->sc_port = idp->id_iobase;
- kdc_mse[idp->id_unit].kdc_state = DC_IDLE;
+ kdc_mse[unit].kdc_state = DC_IDLE;
+#ifdef DEVFS
+ sprintf(name,"mse%d", unit);
+ /* path name devsw minor */
+ sc->devfs_token = devfs_add_devsw( "/", name, &mse_cdevsw, unit << 1,
+ /*type uid gid perm*/
+ DV_CHR, 0, 0, 0600);
+ sprintf(name,"nmse%d", unit);
+ /* path name devsw minor */
+ sc->n_devfs_token = devfs_add_devsw("/", name, &mse_cdevsw, (unit<<1)+1,
+ /*type uid gid perm*/
+ DV_CHR, 0, 0, 0600);
+#endif
return (1);
}
/*
* Exclusive open the mouse, initialize it and enable interrupts.
*/
-int
+static int
mseopen(dev, flags, fmt, p)
dev_t dev;
int flags;
@@ -281,7 +307,7 @@ mseopen(dev, flags, fmt, p)
/*
* mseclose: just turn off mouse innterrupts.
*/
-int
+static int
mseclose(dev, flags, fmt, p)
dev_t dev;
int flags;
@@ -304,7 +330,7 @@ mseclose(dev, flags, fmt, p)
* using bytes 4 and 5.
* (Yes this is cheesy, but it makes the X386 server happy, so...)
*/
-int
+static int
mseread(dev, uio, ioflag)
dev_t dev;
struct uio *uio;
@@ -366,7 +392,7 @@ mseread(dev, uio, ioflag)
/*
* mseselect: check for mouse input to be processed.
*/
-int
+static int
mseselect(dev, rw, p)
dev_t dev;
int rw;
@@ -575,12 +601,6 @@ mse_getati(port, dx, dy, but)
outb(port + MSE_PORTB, MSE_INPORT_INTREN);
}
-#ifdef JREMOD
-struct cdevsw mse_cdevsw =
- { mseopen, mseclose, mseread, nowrite, /*27*/
- noioc, nostop, nullreset, nodevtotty,/* mse */
- mseselect, nommap, NULL };
-
static mse_devsw_installed = 0;
static void mse_drvinit(void *unused)
@@ -588,23 +608,13 @@ static void mse_drvinit(void *unused)
dev_t dev;
if( ! mse_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&mse_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&mse_cdevsw, NULL);
mse_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "mse", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(msedev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,mse_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NMSE */
diff --git a/sys/i386/isa/pcaudio.c b/sys/i386/isa/pcaudio.c
index 7a285ea1..d0bb085 100644
--- a/sys/i386/isa/pcaudio.c
+++ b/sys/i386/isa/pcaudio.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: pcaudio.c,v 1.20 1995/11/30 05:58:53 julian Exp $
+ * $Id: pcaudio.c,v 1.21 1995/12/01 23:09:20 julian Exp $
*/
#include "pca.h"
@@ -39,6 +39,7 @@
#include <sys/file.h>
#include <sys/proc.h>
#include <sys/devconf.h>
+#include <sys/kernel.h>
#include <machine/clock.h>
#include <machine/pcaudioio.h>
@@ -52,11 +53,6 @@
#ifdef DEVFS
#include <sys/devfsext.h>
#endif /* DEVFS */
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#endif /* JREMOD */
-#define CDEV_MAJOR 24
#define BUF_SIZE 8192
#define SAMPLE_RATE 8000
@@ -85,6 +81,8 @@ static char buffer1[BUF_SIZE];
static char buffer2[BUF_SIZE];
static char volume_table[256];
+static void *pca_devfs_token;
+static void *pcac_devfs_token;
static int pca_sleep = 0;
static int pca_initialized = 0;
@@ -96,6 +94,18 @@ struct isa_driver pcadriver = {
pcaprobe, pcaattach, "pca",
};
+static d_open_t pcaopen;
+static d_close_t pcaclose;
+static d_write_t pcawrite;
+static d_ioctl_t pcaioctl;
+static d_select_t pcaselect;
+
+#define CDEV_MAJOR 24
+struct cdevsw pca_cdevsw =
+ { pcaopen, pcaclose, noread, pcawrite, /*24*/
+ pcaioctl, nostop, nullreset, nodevtotty,/* pcaudio */
+ pcaselect, nommap, NULL, "pca", NULL, -1 };
+
inline void conv(const void *table, void *buff, unsigned long n)
{
@@ -250,17 +260,6 @@ pca_registerdev(struct isa_device *id)
dev_attach(&kdc_pca[id->id_unit]);
}
-#ifdef DEVFS
-
-void pcadevfs_init(caddr_t data) /* data not used */
-{
- void * x;
-/* path name devsw minor type uid gid perm*/
- x=devfs_add_devsw("/", "pcaudio", CDEV_MAJOR, 0, DV_CHR, 0, 0, 0666);
- x=devfs_add_devsw("/", "pcaudioctl", CDEV_MAJOR, 128, DV_CHR, 0, 0, 0666);
-}
-#endif /*DEVFS*/
-
int
pcaattach(struct isa_device *dvp)
@@ -269,14 +268,18 @@ pcaattach(struct isa_device *dvp)
pca_init();
pca_registerdev(dvp);
#ifdef DEVFS
- pcadevfs_init(NULL);
+/* path name devsw minor type uid gid perm*/
+ pca_devfs_token = devfs_add_devsw("/", "pcaudio", &pca_cdevsw, 0,
+ DV_CHR, 0, 0, 0666);
+ pcac_devfs_token = devfs_add_devsw("/", "pcaudioctl", &pca_cdevsw, 128,
+ DV_CHR, 0, 0, 0666);
#endif /*DEVFS*/
return 1;
}
-int
+static int
pcaopen(dev_t dev, int flags, int fmt, struct proc *p)
{
/* audioctl device can always be opened */
@@ -304,7 +307,7 @@ pcaopen(dev_t dev, int flags, int fmt, struct proc *p)
}
-int
+static int
pcaclose(dev_t dev, int flags, int fmt, struct proc *p)
{
/* audioctl device can always be closed */
@@ -320,7 +323,7 @@ pcaclose(dev_t dev, int flags, int fmt, struct proc *p)
}
-int
+static int
pcawrite(dev_t dev, struct uio *uio, int flag)
{
int count, error, which;
@@ -364,7 +367,7 @@ pcawrite(dev_t dev, struct uio *uio, int flag)
}
-int
+static int
pcaioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p)
{
audio_info_t *auptr;
@@ -487,12 +490,6 @@ pcaselect(dev_t dev, int rw, struct proc *p)
}
}
-#ifdef JREMOD
-struct cdevsw pca_cdevsw =
- { pcaopen, pcaclose, noread, pcawrite, /*24*/
- pcaioctl, nostop, nullreset, nodevtotty,/* pcaudio */
- pcaselect, nommap, NULL };
-
static pca_devsw_installed = 0;
static void pca_drvinit(void *unused)
@@ -500,14 +497,13 @@ static void pca_drvinit(void *unused)
dev_t dev;
if( ! pca_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&pca_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&pca_cdevsw, NULL);
pca_devsw_installed = 1;
}
}
SYSINIT(pcadev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,pca_drvinit,NULL)
-#endif /* JREMOD */
#endif
diff --git a/sys/i386/isa/pcvt/pcvt_drv.c b/sys/i386/isa/pcvt/pcvt_drv.c
index 4060aaa..dca8922 100644
--- a/sys/i386/isa/pcvt/pcvt_drv.c
+++ b/sys/i386/isa/pcvt/pcvt_drv.c
@@ -118,7 +118,7 @@ static d_mmap_t pcmmap;
static struct cdevsw pcdevsw = {
pcopen, pcclose, pcread, pcwrite,
pcioctl, nullstop, noreset, pcdevtotty,
- ttselect, pcmmap, nostrategy,
+ ttselect, pcmmap, nostrategy, "vt", NULL, -1
};
#if PCVT_NETBSD > 100 /* NetBSD-current Feb 20 1995 */
diff --git a/sys/i386/isa/psm.c b/sys/i386/isa/psm.c
index 0ab8355..010f9db 100644
--- a/sys/i386/isa/psm.c
+++ b/sys/i386/isa/psm.c
@@ -58,6 +58,10 @@
#include <sys/file.h>
#include <sys/proc.h>
#include <sys/vnode.h>
+#include <sys/conf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#if 0
#include <sys/syslog.h> /* For debugging */
#endif
@@ -66,14 +70,6 @@
#include <i386/isa/isa_device.h>
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 21
-#endif /*JREMOD*/
#define DATA 0 /* Offset for data port, read-write */
#define CNTRL 4 /* Offset for control port, write-only */
@@ -125,6 +121,10 @@ static struct psm_softc { /* Driver status information */
unsigned char status; /* Mouse button status */
unsigned char button; /* Previous mouse button status bits */
int x, y; /* accumulated motion in the X,Y axis */
+#ifdef DEVFS
+ void *devfs_token;
+ void *n_devfs_token;
+#endif
} psm_softc[NPSM];
#define OPEN 1 /* Device is open */
@@ -132,6 +132,18 @@ static struct psm_softc { /* Driver status information */
struct isa_driver psmdriver = { psmprobe, psmattach, "psm" };
+static d_open_t psmopen;
+static d_close_t psmclose;
+static d_read_t psmread;
+static d_ioctl_t psmioctl;
+static d_select_t psmselect;
+
+#define CDEV_MAJOR 21
+static struct cdevsw psm_cdevsw =
+ { psmopen, psmclose, psmread, nowrite, /*21*/
+ psmioctl, nostop, nullreset, nodevtotty,
+ psmselect, nommap, NULL, "psm", NULL, -1 };
+
#define AUX_PORT 0x60 /* AUX_PORT base (S.Yuen) */
static void psm_write_dev(int inport, u_char value)
@@ -212,11 +224,13 @@ int psmattach(struct isa_device *dvp)
return(0); /* XXX eh? usually 1 indicates success */
}
-int psmopen(dev_t dev, int flag, int fmt, struct proc *p)
+static int
+psmopen(dev_t dev, int flag, int fmt, struct proc *p)
{
int unit = PSMUNIT(dev);
struct psm_softc *sc;
int ioport;
+ char name[32];
/* Validate unit number */
@@ -254,11 +268,24 @@ int psmopen(dev_t dev, int flag, int fmt, struct proc *p)
/* Enable Bus Mouse interrupts */
psm_write_dev(ioport, PSM_DEV_ENABLE);
+
psm_poll_status();
outb(ioport+CNTRL, PSM_ENABLE);
psm_command(ioport, PSM_INT_ENABLE);
/* Successful open */
+#ifdef DEVFS
+ sprintf(name,"psm%d", unit);
+ /* path name devsw minor */
+ sc->devfs_token = devfs_add_devsw( "/", name, &psm_cdevsw, unit << 1,
+ /*type uid gid perm*/
+ DV_CHR, 0, 0, 0666);
+ sprintf(name,"npsm%d", unit);
+ /* path name devsw minor */
+ sc->n_devfs_token = devfs_add_devsw("/", name, &psm_cdevsw, (unit<<1)+1,
+ /*type uid gid perm*/
+ DV_CHR, 0, 0, 0666);
+#endif
return(0);
}
@@ -273,7 +300,8 @@ void psm_poll_status(void)
}
-int psmclose(dev_t dev, int flag, int fmt, struct proc *p)
+static int
+psmclose(dev_t dev, int flag, int fmt, struct proc *p)
{
int unit, ioport;
struct psm_softc *sc;
@@ -299,7 +327,8 @@ int psmclose(dev_t dev, int flag, int fmt, struct proc *p)
return(0);
}
-int psmread(dev_t dev, struct uio *uio, int flag)
+static int
+psmread(dev_t dev, struct uio *uio, int flag)
{
int s;
int error = 0; /* keep compiler quiet, even though initialisation
@@ -364,7 +393,8 @@ int psmread(dev_t dev, struct uio *uio, int flag)
return(error);
}
-int psmioctl(dev_t dev, int cmd, caddr_t addr, int flag, struct proc *p)
+static int
+psmioctl(dev_t dev, int cmd, caddr_t addr, int flag, struct proc *p)
{
struct psm_softc *sc;
struct mouseinfo info;
@@ -443,7 +473,8 @@ void psmintr(unit)
selwakeup(&sc->rsel);
}
-int psmselect(dev_t dev, int rw, struct proc *p)
+static int
+psmselect(dev_t dev, int rw, struct proc *p)
{
int s, ret;
struct psm_softc *sc = &psm_softc[PSMUNIT(dev)];
@@ -467,11 +498,6 @@ int psmselect(dev_t dev, int rw, struct proc *p)
return(ret);
}
-#ifdef JREMOD
-struct cdevsw psm_cdevsw =
- { psmopen, psmclose, psmread, nowrite, /*21*/
- psmioctl, nostop, nullreset, nodevtotty,/* psm mice */
- psmselect, nommap, NULL };
static psm_devsw_installed = 0;
@@ -480,24 +506,14 @@ static void psm_drvinit(void *unused)
dev_t dev;
if( ! psm_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&psm_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&psm_cdevsw, NULL);
psm_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "psm", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(psmdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,psm_drvinit,NULL)
-#endif /* JREMOD */
#endif
diff --git a/sys/i386/isa/rc.c b/sys/i386/isa/rc.c
index e4e3325..83db4c6 100644
--- a/sys/i386/isa/rc.c
+++ b/sys/i386/isa/rc.c
@@ -47,6 +47,9 @@
#include <sys/kernel.h>
#include <sys/syslog.h>
#include <sys/devconf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/clock.h>
@@ -57,14 +60,6 @@
#include <i386/isa/ic/cd180.h>
#include <i386/isa/rcreg.h>
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 63
-#endif /*JREMOD*/
/* Prototypes */
int rcprobe __P((struct isa_device *));
@@ -105,6 +100,20 @@ struct isa_driver rcdriver = {
rcprobe, rcattach, "rc"
};
+static d_open_t rcopen;
+static d_close_t rcclose;
+static d_read_t rcread;
+static d_write_t rcwrite;
+static d_ioctl_t rcioctl;
+static d_stop_t rcstop;
+static d_ttycv_t rcdevtotty;
+
+#define CDEV_MAJOR 63
+struct cdevsw rc_cdevsw =
+ { rcopen, rcclose, rcread, rcwrite, /*63*/
+ rcioctl, rcstop, nxreset, rcdevtotty,/* rc */
+ ttselect, nommap, NULL, "rc", NULL, -1 };
+
/* Per-board structure */
static struct rc_softc {
u_int rcb_probed; /* 1 - probed, 2 - attached */
@@ -134,6 +143,9 @@ static struct rc_chans {
u_char *rc_obufend; /* end of output buf */
u_char rc_ibuf[4 * RC_IBUFSIZE]; /* input buffer */
u_char rc_obuf[RC_OBUFSIZE]; /* output buffer */
+#ifdef DEVFS
+ void *devfs_token;
+#endif
} rc_chans[NRC * CD180_NCHAN];
static int rc_scheduled_event = 0;
@@ -249,6 +261,7 @@ int rcattach(dvp)
struct rc_chans *rc = &rc_chans[dvp->id_unit * CD180_NCHAN];
static int rc_wakeup_started = 0;
struct tty *tp;
+ char name[32];
/* Thorooughly test the device */
if (rcb->rcb_probed != RC_PROBED)
@@ -279,6 +292,13 @@ int rcattach(dvp)
tp->t_lflag = tp->t_iflag = tp->t_oflag = 0;
tp->t_cflag = TTYDEF_CFLAG;
tp->t_ispeed = tp->t_ospeed = TTYDEF_SPEED;
+#ifdef DEVFS
+/* FIX THIS to reflect real devices */
+ sprintf(name,"rc%d.%d",dvp->id_unit,chan);
+ rc->devfs_token = devfs_add_devsw( "/", name,
+ &rc_cdevsw,(dvp->id_unit * CD180_NCHAN) + chan ,
+ DV_CHR, 0, 0, 0600);
+#endif
}
rcb->rcb_probed = RC_ATTACHED;
if (!rc_wakeup_started) {
@@ -693,7 +713,8 @@ done1:
goto repeat;
}
-void rcstop(tp, rw)
+static void
+rcstop(tp, rw)
register struct tty *tp;
int rw;
{
@@ -726,7 +747,8 @@ void rcstop(tp, rw)
enable_intr();
}
-int rcopen(dev, flag, mode, p)
+static int
+rcopen(dev, flag, mode, p)
dev_t dev;
int flag, mode;
struct proc *p;
@@ -817,7 +839,8 @@ out:
return error;
}
-int rcclose(dev, flag, mode, p)
+static int
+rcclose(dev, flag, mode, p)
dev_t dev;
int flag, mode;
struct proc *p;
@@ -874,7 +897,8 @@ register struct rc_chans *rc;
}
/* Read from line */
-int rcread(dev, uio, flag)
+static int
+rcread(dev, uio, flag)
dev_t dev;
struct uio *uio;
int flag;
@@ -885,7 +909,8 @@ int rcread(dev, uio, flag)
}
/* Write to line */
-int rcwrite(dev, uio, flag)
+static int
+rcwrite(dev, uio, flag)
dev_t dev;
struct uio *uio;
int flag;
@@ -1091,7 +1116,8 @@ struct rc_softc *rcb;
(void) rc_param(rc->rc_tp, &rc->rc_tp->t_termios);
}
-int rcioctl(dev, cmd, data, flag, p)
+static int
+rcioctl(dev, cmd, data, flag, p)
dev_t dev;
int cmd, flag;
caddr_t data;
@@ -1409,7 +1435,7 @@ char *comment;
}
#endif /* RCDEBUG */
-struct tty *
+static struct tty *
rcdevtotty(dev)
dev_t dev;
{
@@ -1501,12 +1527,6 @@ rc_wait0(nec, unit, chan, line)
unit, chan, line);
}
-#ifdef JREMOD
-struct cdevsw rc_cdevsw =
- { rcopen, rcclose, rcread, rcwrite, /*63*/
- rcioctl, rcstop, nxreset, rcdevtotty,/* rc */
- ttselect, nommap, NULL };
-
static rc_devsw_installed = 0;
static void rc_drvinit(void *unused)
@@ -1514,23 +1534,13 @@ static void rc_drvinit(void *unused)
dev_t dev;
if( ! rc_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&rc_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&rc_cdevsw, NULL);
rc_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "rc", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(rcdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,rc_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NRC */
diff --git a/sys/i386/isa/scd.c b/sys/i386/isa/scd.c
index edffabf..a111bba 100644
--- a/sys/i386/isa/scd.c
+++ b/sys/i386/isa/scd.c
@@ -41,7 +41,7 @@
*/
-/* $Id: scd.c,v 1.11 1995/11/29 10:47:50 julian Exp $ */
+/* $Id: scd.c,v 1.12 1995/11/29 14:39:53 julian Exp $ */
/* Please send any comments to micke@dynas.se */
@@ -64,6 +64,10 @@
#include <sys/dkbad.h>
#include <sys/disklabel.h>
#include <sys/devconf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/clock.h>
#include <machine/stdarg.h>
@@ -72,14 +76,6 @@
#include <i386/isa/isa_device.h>
#include <i386/isa/scdreg.h>
-#ifdef JREMOD
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 45
-#define BDEV_MAJOR 16
-#endif /*JREMOD */
#define scd_part(dev) ((minor(dev)) & 7)
#define scd_unit(dev) (((minor(dev)) & 0x38) >> 3)
@@ -148,6 +144,12 @@ static struct scd_data {
short audio_status;
struct buf head; /* head of buf queue */
struct scd_mbx mbx;
+#ifdef DEVFS
+ void *ra_devfs_token;
+ void *rc_devfs_token;
+ void *a_devfs_token;
+ void *c_devfs_token;
+#endif
} scd_data[NSCD];
/* prototypes */
@@ -184,12 +186,30 @@ static int scd_toc_header(int unit, struct ioc_toc_header *th);
static int scd_toc_entrys(int unit, struct ioc_read_toc_entry *te);
#define SCD_LASTPLUS1 170 /* don't ask, xcdplayer passes this in */
-extern int hz;
-
static int scd_probe(struct isa_device *dev);
static int scd_attach(struct isa_device *dev);
struct isa_driver scddriver = { scd_probe, scd_attach, "scd" };
+static d_open_t scdopen;
+static d_close_t scdclose;
+static d_ioctl_t scdioctl;
+static d_psize_t scdsize;
+static d_strategy_t scdstrategy;
+
+#define CDEV_MAJOR 45
+#define BDEV_MAJOR 16
+extern struct cdevsw scd_cdevsw;
+struct bdevsw scd_bdevsw =
+ { scdopen, scdclose, scdstrategy, scdioctl, /*16*/
+ nxdump, scdsize, 0, "scd", &scd_cdevsw, -1 };
+
+struct cdevsw scd_cdevsw =
+ { scdopen, scdclose, rawread, nowrite, /*45*/
+ scdioctl, nostop, nullreset, nodevtotty,/* sony cd */
+ seltrue, nommap, scdstrategy, "scd",
+ &scd_bdevsw, -1 };
+
+
static struct kern_devconf kdc_scd[NSCD] = { {
0, 0, 0, /* filled in by dev_attach */
"scd", 0, { MDDT_ISA, 0, "bio" },
@@ -213,7 +233,9 @@ scd_registerdev(struct isa_device *id)
int scd_attach(struct isa_device *dev)
{
- struct scd_data *cd = scd_data + dev->id_unit;
+ int unit = dev->id_unit;
+ struct scd_data *cd = scd_data + unit;
+ char name[32];
cd->iobase = dev->id_iobase; /* Already set by probe, but ... */
@@ -227,10 +249,33 @@ int scd_attach(struct isa_device *dev)
cd->flags = SCDINIT;
cd->audio_status = CD_AS_AUDIO_INVALID;
+#ifdef DEVFS
+#define SCD_UID 0
+#define SCD_GID 13
+ sprintf(name, "rscd%da",unit);
+ cd->ra_devfs_token = devfs_add_devsw(
+ "/", name, &scd_cdevsw, (unit * 8 ) + 0,
+ DV_CHR, SCD_UID, SCD_GID, 0600);
+
+ sprintf(name, "rscd%dc",unit);
+ cd->rc_devfs_token = devfs_add_devsw(
+ "/", name, &scd_cdevsw, (unit * 8 ) + RAW_PART,
+ DV_CHR, SCD_UID, SCD_GID, 0600);
+
+ sprintf(name, "scd%da",unit);
+ cd->a_devfs_token = devfs_add_devsw(
+ "/", name, &scd_bdevsw, (unit * 8 ) + 0,
+ DV_BLK, SCD_UID, SCD_GID, 0600);
+
+ sprintf(name, "scd%dc",unit);
+ cd->c_devfs_token = devfs_add_devsw(
+ "/", name, &scd_bdevsw, (unit * 8 ) + RAW_PART,
+ DV_BLK, SCD_UID, SCD_GID, 0600);
+#endif
return 1;
}
-int
+static int
scdopen(dev_t dev, int flags, int fmt, struct proc *p)
{
int unit,part,phys;
@@ -283,7 +328,7 @@ scdopen(dev_t dev, int flags, int fmt, struct proc *p)
return 0;
}
-int
+static int
scdclose(dev_t dev, int flags, int fmt, struct proc *p)
{
int unit,part,phys;
@@ -313,7 +358,7 @@ scdclose(dev_t dev, int flags, int fmt, struct proc *p)
return 0;
}
-void
+static void
scdstrategy(struct buf *bp)
{
struct scd_data *cd;
@@ -416,7 +461,7 @@ scd_start(int unit)
return;
}
-int
+static int
scdioctl(dev_t dev, int cmd, caddr_t addr, int flags, struct proc *p)
{
struct scd_data *cd;
@@ -492,7 +537,7 @@ scdioctl(dev_t dev, int cmd, caddr_t addr, int flags, struct proc *p)
}
}
-int
+static int
scdsize(dev_t dev)
{
return -1;
@@ -1529,46 +1574,22 @@ scd_toc_entrys (int unit, struct ioc_read_toc_entry *te)
}
-#ifdef JREMOD
-struct bdevsw scd_bdevsw =
- { scdopen, scdclose, scdstrategy, scdioctl, /*16*/
- nxdump, scdsize, 0 };
-
-struct cdevsw scd_cdevsw =
- { scdopen, scdclose, rawread, nowrite, /*45*/
- scdioctl, nostop, nullreset, nodevtotty,/* sony cd */
- seltrue, nommap, scdstrategy };
-
static scd_devsw_installed = 0;
static void scd_drvinit(void *unused)
{
dev_t dev;
- dev_t dev_chr;
if( ! scd_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&scd_cdevsw,NULL);
- dev_chr = dev;
- dev = makedev(BDEV_MAJOR,0);
- bdevsw_add(&dev,&scd_bdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&scd_cdevsw, NULL);
+ dev = makedev(BDEV_MAJOR, 0);
+ bdevsw_add(&dev,&scd_bdevsw, NULL);
scd_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "rscd", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
- x=devfs_add_devsw(
- "/", "scd", major(dev), 0, DV_BLK, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(scddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,scd_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NSCD > 0 */
diff --git a/sys/i386/isa/si.c b/sys/i386/isa/si.c
index 1b732d9..cc1d6a7 100644
--- a/sys/i386/isa/si.c
+++ b/sys/i386/isa/si.c
@@ -30,7 +30,7 @@
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHORS BE LIABLE.
*
- * $Id: si.c,v 1.21 1995/12/06 23:50:27 bde Exp $
+ * $Id: si.c,v 1.22 1995/12/07 12:46:06 davidg Exp $
*/
#ifndef lint
@@ -53,6 +53,9 @@ static char si_copyright1[] = "@(#) (C) Specialix International, 1990,1992",
#include <sys/syslog.h>
#include <sys/malloc.h>
#include <sys/devconf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/clock.h>
@@ -84,12 +87,8 @@ static char si_copyright1[] = "@(#) (C) Specialix International, 1990,1992",
enum si_mctl { GET, SET, BIS, BIC };
-#ifdef JREMOD
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 68
-#endif /*JREMOD*/
+static const char devchar[] = "ABCDEFGHIJK";
+static const char portchar[] = "0123456789abcdefghijklmnopqrstuvwxyz";
static void si_command __P((struct si_port *, int, int));
@@ -110,6 +109,25 @@ extern int siprobe __P((struct isa_device *id));
extern int siattach __P((struct isa_device *id));
static void si_modem_state __P((struct si_port *pp, struct tty *tp, int hi_ip));
+struct isa_driver sidriver =
+ { siprobe, siattach, "si" };
+
+
+static d_open_t siopen;
+static d_close_t siclose;
+static d_read_t siread;
+static d_write_t siwrite;
+static d_ioctl_t siioctl;
+static d_stop_t sistop;
+static d_ttycv_t sidevtotty;
+
+#define CDEV_MAJOR 68
+struct cdevsw si_cdevsw =
+ { siopen, siclose, siread, siwrite, /*68*/
+ siioctl, sistop, nxreset, sidevtotty,/* si */
+ ttselect, nxmmap, NULL, "si", NULL, -1 };
+
+
#ifdef SI_DEBUG /* use: ``options "SI_DEBUG"'' in your config file */
/* XXX: should be varargs, I know.. but where's vprintf()? */
static void si_dprintf __P((/* struct si_port *pp, int flags, char *str, int a1, int a2, int a3, int a4, int a5, int a6 */));
@@ -142,6 +160,16 @@ struct si_softc {
int sc_eisa_iobase; /* EISA io port address */
int sc_eisa_irqbits;
struct kern_devconf sc_kdc;
+#ifdef DEVFS
+ struct {
+ void *ttyd;
+ void *ttyl;
+ void *ttyi;
+ void *cuaa;
+ void *cual;
+ void *cuai;
+ } devfs_token[32]; /* what is the max per card? */
+#endif
};
struct si_softc si_softc[NSI]; /* up to 4 elements */
@@ -460,6 +488,7 @@ siattach(id)
struct speedtab *spt;
int nmodule, nport, x, y;
int uart_type;
+ char name[32];
DPRINT((0, DBG_AUTOBOOT, "si%d: siattach\n", id->id_unit));
@@ -663,14 +692,39 @@ mem_fail:
done_chartimes = 1;
}
+#ifdef DEVFS
+/* path name devsw minor type uid gid perm*/
+ for ( x = 0; x < nport; x++ ) {
+ sprintf(name,"tty%c%c",devchar[unit],portchar[x + 1]);
+ sc->devfs_token[x].ttyd = devfs_add_devsw(
+ "/", name, &si_cdevsw, unit,
+ DV_CHR, 0, 0, 0600);
+ sprintf(name,"ttyi%c%c",devchar[unit],portchar[x + 1]);
+ sc->devfs_token[x].ttyi = devfs_add_devsw(
+ "/", name, &si_cdevsw, unit + 32,
+ DV_CHR, 0, 0, 0600);
+ sprintf(name,"ttyl%c%c",devchar[unit],portchar[x + 1]);
+ sc->devfs_token[x].ttyl = devfs_add_devsw(
+ "/", name, &si_cdevsw, unit + 64,
+ DV_CHR, 0, 0, 0600);
+ sprintf(name,"cua%c%c",devchar[unit],portchar[x + 1]);
+ sc->devfs_token[x].cuaa = devfs_add_devsw(
+ "/", name, &si_cdevsw, unit + 128,
+ DV_CHR, 0, 0, 0600);
+ sprintf(name,"cuai%c%c",devchar[unit],portchar[x + 1]);
+ sc->devfs_token[x].cuai = devfs_add_devsw(
+ "/", name, &si_cdevsw, unit + 160,
+ DV_CHR, 0, 0, 0600);
+ sprintf(name,"cual%c%c",devchar[unit],portchar[x + 1]);
+ sc->devfs_token[x].cual = devfs_add_devsw(
+ "/", name, &si_cdevsw, unit + 192,
+ DV_CHR, 0, 0, 0600);
+ }
+#endif
return (1);
}
-struct isa_driver sidriver =
- { siprobe, siattach, "si" };
-
-
-int
+static int
siopen(dev, flag, mode, p)
dev_t dev;
int flag, mode;
@@ -841,7 +895,7 @@ out:
return(error);
}
-int
+static int
siclose(dev, flag, mode, p)
dev_t dev;
int flag, mode;
@@ -961,7 +1015,7 @@ sidtrwakeup(chan)
/*
* User level stuff - read and write
*/
-int
+static int
siread(dev, uio, flag)
register dev_t dev;
struct uio *uio;
@@ -981,7 +1035,7 @@ siread(dev, uio, flag)
}
-int
+static int
siwrite(dev, uio, flag)
dev_t dev;
struct uio *uio;
@@ -1020,7 +1074,7 @@ out:
}
-struct tty *
+static struct tty *
sidevtotty(dev_t dev)
{
struct si_port *pp;
@@ -1035,7 +1089,7 @@ sidevtotty(dev_t dev)
return (pp->sp_tty);
}
-int
+static int
siioctl(dev, cmd, data, flag, p)
dev_t dev;
int cmd;
@@ -2305,40 +2359,19 @@ si_mctl2str(cmd)
#endif /* DEBUG */
-#ifdef JREMOD
-struct cdevsw si_cdevsw =
- { siopen, siclose, siread, siwrite, /*68*/
- siioctl, sistop, nxreset, sidevtotty,/* si */
- ttselect, nxmmap, NULL };
static si_devsw_installed = 0;
static void si_drvinit(void *unused)
{
dev_t dev;
- dev_t dev_chr;
if( ! si_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&si_cdevsw,NULL);
- dev_chr = dev;
-#if defined(BDEV_MAJOR)
- dev = makedev(BDEV_MAJOR,0);
- bdevsw_add(&dev,&si_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&si_cdevsw, NULL);
si_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "si", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(sidev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,si_drvinit,NULL)
-#endif /* JREMOD */
diff --git a/sys/i386/isa/sio.c b/sys/i386/isa/sio.c
index b6b090f..d44d7bc 100644
--- a/sys/i386/isa/sio.c
+++ b/sys/i386/isa/sio.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
- * $Id: sio.c,v 1.123 1995/11/29 15:00:07 bde Exp $
+ * $Id: sio.c,v 1.124 1995/12/06 23:43:07 bde Exp $
*/
#include "sio.h"
@@ -59,6 +59,9 @@
#include <sys/malloc.h>
#include <sys/syslog.h>
#include <sys/devconf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/clock.h>
@@ -95,12 +98,6 @@
#define com_scr 7 /* scratch register for 16450-16550 (R/W) */
-#ifdef JREMOD
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 28
-#endif /*JREMOD*/
#include "crd.h"
@@ -251,6 +248,14 @@ struct com_s {
*/
u_char obuf1[256];
u_char obuf2[256];
+#ifdef DEVFS
+ void *devfs_token_ttyd;
+ void *devfs_token_ttyl;
+ void *devfs_token_ttyi;
+ void *devfs_token_cuaa;
+ void *devfs_token_cual;
+ void *devfs_token_cuai;
+#endif
};
/*
@@ -285,6 +290,8 @@ static void disc_optim __P((struct tty *tp, struct termios *t,
static int LoadSoftModem __P((int unit,int base_io, u_long size, u_char *ptr));
#endif /* DSI_SOFT_MODEM */
+static char driver_name[] = "sio";
+
/* table and macro for fast conversion from a unit number to its com struct */
static struct com_s *p_com_addr[NSIO];
#define com_addr(unit) (p_com_addr[unit])
@@ -292,9 +299,24 @@ static struct com_s *p_com_addr[NSIO];
static struct timeval intr_timestamp;
struct isa_driver siodriver = {
- sioprobe, sioattach, "sio"
+ sioprobe, sioattach, driver_name
};
+static d_open_t sioopen;
+static d_close_t sioclose;
+static d_read_t sioread;
+static d_write_t siowrite;
+static d_ioctl_t sioioctl;
+static d_stop_t siostop;
+static d_ttycv_t siodevtotty;
+
+#define CDEV_MAJOR 28
+struct cdevsw sio_cdevsw =
+ { sioopen, sioclose, sioread, siowrite, /*28*/
+ sioioctl, siostop, nxreset, siodevtotty,/* sio */
+ ttselect, nommap, NULL, driver_name, NULL, -1 };
+
+
static int comconsole = -1;
static speed_t comdefaultrate = TTYDEF_SPEED;
static u_int com_events; /* input chars + weighted output completions */
@@ -338,9 +360,10 @@ static struct speedtab comspeedtab[] = {
{ -1, -1 }
};
+static char chardev[] = "0123456789abcdefghijklmnopqrstuvwxyz";
static struct kern_devconf kdc_sio[NSIO] = { {
0, 0, 0, /* filled in by dev_attach */
- "sio", 0, { MDDT_ISA, 0, "tty" },
+ driver_name, 0, { MDDT_ISA, 0, "tty" },
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
&kdc_isa0, /* parent */
0, /* parentdata */
@@ -359,7 +382,7 @@ static int sioinit(struct pccard_dev *, int); /* init device */
static struct pccard_drv sio_info =
{
- "sio",
+ driver_name,
card_intr,
siounload,
siosuspend,
@@ -696,6 +719,7 @@ sioattach(isdp)
Port_t iobase;
int s;
int unit;
+ char name[32];
isdp->id_ri_flags |= RI_FAST;
iobase = isdp->id_iobase;
@@ -880,10 +904,37 @@ determined_type: ;
com_addr(unit) = com;
splx(s);
+#ifdef DEVFS
+/* path name devsw minor type uid gid perm*/
+ sprintf(name,"ttyd%c",chardev[unit]);
+ com->devfs_token_ttyd = devfs_add_devsw(
+ "/", name, &sio_cdevsw, unit,
+ DV_CHR, 0, 0, 0600);
+ sprintf(name,"ttyid%c",chardev[unit]);
+ com->devfs_token_ttyi = devfs_add_devsw(
+ "/", name, &sio_cdevsw, unit+32,
+ DV_CHR, 0, 0, 0600);
+ sprintf(name,"ttyld%c",chardev[unit]);
+ com->devfs_token_ttyl = devfs_add_devsw(
+ "/", name, &sio_cdevsw, unit+64,
+ DV_CHR, 0, 0, 0600);
+ sprintf(name,"cuaa%c",chardev[unit]);
+ com->devfs_token_cuaa = devfs_add_devsw(
+ "/", name, &sio_cdevsw, unit+128,
+ DV_CHR, 0, 0, 0600);
+ sprintf(name,"cuaia%c",chardev[unit]);
+ com->devfs_token_cuai = devfs_add_devsw(
+ "/", name, &sio_cdevsw, unit+160,
+ DV_CHR, 0, 0, 0600);
+ sprintf(name,"cuala%c",chardev[unit]);
+ com->devfs_token_cual = devfs_add_devsw(
+ "/", name, &sio_cdevsw, unit+192,
+ DV_CHR, 0, 0, 0600);
+#endif
return (1);
}
-int
+static int
sioopen(dev, flag, mode, p)
dev_t dev;
int flag;
@@ -1055,7 +1106,7 @@ out:
return (error);
}
-int
+static int
sioclose(dev, flag, mode, p)
dev_t dev;
int flag;
@@ -1150,7 +1201,7 @@ comhardclose(com)
splx(s);
}
-int
+static int
sioread(dev, uio, flag)
dev_t dev;
struct uio *uio;
@@ -1170,7 +1221,7 @@ sioread(dev, uio, flag)
return ((*linesw[tp->t_line].l_read)(tp, uio, flag));
}
-int
+static int
siowrite(dev, uio, flag)
dev_t dev;
struct uio *uio;
@@ -1429,7 +1480,7 @@ cont:
}
}
-int
+static int
sioioctl(dev, cmd, data, flag, p)
dev_t dev;
int cmd;
@@ -2012,7 +2063,7 @@ comstart(tp)
splx(s);
}
-void
+static void
siostop(tp, rw)
struct tty *tp;
int rw;
@@ -2041,7 +2092,7 @@ siostop(tp, rw)
/* XXX should clear h/w fifos too. */
}
-struct tty *
+static struct tty *
siodevtotty(dev)
dev_t dev;
{
@@ -2559,12 +2610,6 @@ error:
}
#endif /* DSI_SOFT_MODEM */
-#ifdef JREMOD
-struct cdevsw sio_cdevsw =
- { sioopen, sioclose, sioread, siowrite, /*28*/
- sioioctl, siostop, nxreset, siodevtotty,/* sio */
- ttselect, nommap, NULL };
-
static sio_devsw_installed = 0;
static void sio_drvinit(void *unused)
@@ -2572,23 +2617,12 @@ static void sio_drvinit(void *unused)
dev_t dev;
if( ! sio_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&sio_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&sio_cdevsw, NULL);
sio_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "sio", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(siodev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,sio_drvinit,NULL)
-#endif /* JREMOD */
-
#endif /* NSIO > 0 */
diff --git a/sys/i386/isa/sound/soundcard.c b/sys/i386/isa/sound/soundcard.c
index 1b4ee3b..ad4888f 100644
--- a/sys/i386/isa/sound/soundcard.c
+++ b/sys/i386/isa/sound/soundcard.c
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: soundcard.c,v 1.35 1995/12/01 01:38:49 julian Exp $
+ * $Id: soundcard.c,v 1.36 1995/12/06 23:51:21 bde Exp $
*/
#include "sound_config.h"
@@ -36,15 +36,11 @@
#include "dev_table.h"
#include <i386/isa/isa_device.h>
-
-#ifdef JREMOD
#include <sys/conf.h>
#include <sys/kernel.h>
#ifdef DEVFS
#include <sys/devfsext.h>
#endif /*DEVFS*/
-#define CDEV_MAJOR 30
-#endif /*JREMOD*/
u_int snd1_imask;
@@ -69,12 +65,27 @@ static int soundcards_installed = 0; /* Number of installed
static int soundcard_configured = 0;
static struct fileinfo files[SND_NDEVS];
+static void * snd_devfs_token[SND_NDEVS];
+static void * sndstat_devfs_token;
struct selinfo selinfo[SND_NDEVS >> 4];
int sndprobe (struct isa_device *dev);
int sndattach (struct isa_device *dev);
static void sound_mem_init(void);
+static d_open_t sndopen;
+static d_close_t sndclose;
+static d_read_t sndread;
+static d_write_t sndwrite;
+static d_ioctl_t sndioctl;
+static d_select_t sndselect;
+
+#define CDEV_MAJOR 30
+struct cdevsw snd_cdevsw =
+ { sndopen, sndclose, sndread, sndwrite, /*30*/
+ sndioctl, nostop, nullreset, nodevtotty,/* sound */
+ sndselect, nommap, NULL, "snd", NULL, -1 };
+
struct isa_driver opldriver = {sndprobe, sndattach, "opl"};
struct isa_driver sbdriver = {sndprobe, sndattach, "sb"};
struct isa_driver sbxvidriver = {sndprobe, sndattach, "sbxvi"};
@@ -126,7 +137,7 @@ int x;
}
-int
+static int
sndread (dev_t dev, struct uio *buf, int ioflag)
{
int count = buf->uio_resid;
@@ -136,7 +147,7 @@ sndread (dev_t dev, struct uio *buf, int ioflag)
FIX_RETURN (sound_read_sw (dev, &files[dev], buf, count));
}
-int
+static int
sndwrite (dev_t dev, struct uio *buf, int ioflag)
{
int count = buf->uio_resid;
@@ -146,7 +157,7 @@ sndwrite (dev_t dev, struct uio *buf, int ioflag)
FIX_RETURN (sound_write_sw (dev, &files[dev], buf, count));
}
-int
+static int
sndopen (dev_t dev, int flags, int fmt, struct proc *p)
{
int retval;
@@ -174,7 +185,7 @@ sndopen (dev_t dev, int flags, int fmt, struct proc *p)
FIX_RETURN(sound_open_sw (dev, &files[dev]));
}
-int
+static int
sndclose (dev_t dev, int flags, int fmt, struct proc *p)
{
@@ -184,7 +195,7 @@ sndclose (dev_t dev, int flags, int fmt, struct proc *p)
FIX_RETURN (0);
}
-int
+static int
sndioctl (dev_t dev, int cmd, caddr_t arg, int flags, struct proc *p)
{
dev = minor (dev);
@@ -192,7 +203,7 @@ sndioctl (dev_t dev, int cmd, caddr_t arg, int flags, struct proc *p)
FIX_RETURN (sound_ioctl_sw (dev, &files[dev], cmd, (unsigned int) arg));
}
-int
+static int
sndselect (dev_t dev, int rw, struct proc *p)
{
dev = minor (dev);
@@ -302,6 +313,7 @@ sndattach (struct isa_device *dev)
static int generic_midi_initialized = 0;
unsigned long mem_start = 0xefffffffUL;
struct address_info hw_config;
+ char name[32];
unit = driver_to_voxunit(dev->id_driver);
hw_config.io_base = dev->id_iobase;
@@ -356,6 +368,62 @@ sndattach (struct isa_device *dev)
}
#endif
+#ifdef DEVFS
+/* XXX */ /* find out where to store the tokens.. */
+/* XXX */ /* should only create devices if that card has them */
+#define SND_UID 0
+#define SND_GID 13
+
+
+ sprintf(name,"mixer%d",unit);
+ snd_devfs_token[unit]=devfs_add_devsw(
+ "/", name, &snd_cdevsw, (unit << 4)+SND_DEV_CTL,
+ DV_CHR, SND_UID, SND_GID, 0660);
+
+#ifndef EXCLUDE_SEQUENCER
+ sprintf(name,"sequencer%d",unit);
+ snd_devfs_token[unit]=devfs_add_devsw(
+ "/", name, &snd_cdevsw, (unit << 4)+SND_DEV_SEQ,
+ DV_CHR, SND_UID, SND_GID, 0660);
+ sprintf(name,"music%d",unit);
+ snd_devfs_token[unit]=devfs_add_devsw(
+ "/", name, &snd_cdevsw, (unit << 4)+SND_DEV_SEQ2,
+ DV_CHR, SND_UID, SND_GID, 0660);
+#endif
+
+#ifndef EXCLUDE_MIDI
+ sprintf(name,"midi%d",unit);
+ snd_devfs_token[unit]=devfs_add_devsw(
+ "/", name, &snd_cdevsw, (unit << 4)+SND_DEV_MIDIN,
+ DV_CHR, SND_UID, SND_GID, 0660);
+#endif
+
+#ifndef EXCLUDE_AUDIO
+ sprintf(name,"dsp%d",unit);
+ snd_devfs_token[unit]=devfs_add_devsw(
+ "/", name, &snd_cdevsw, (unit << 4)+SND_DEV_DSP,
+ DV_CHR, SND_UID, SND_GID, 0660);
+ sprintf(name,"audio%d",unit);
+ snd_devfs_token[unit]=devfs_add_devsw(
+ "/", name, &snd_cdevsw, (unit << 4)+SND_DEV_AUDIO,
+ DV_CHR, SND_UID, SND_GID, 0660);
+ sprintf(name,"dspW%d",unit);
+ snd_devfs_token[unit]=devfs_add_devsw(
+ "/", name, &snd_cdevsw, (unit << 4)+SND_DEV_DSP16,
+ DV_CHR, SND_UID, SND_GID, 0660);
+#endif
+
+ sprintf(name,"pss%d",unit);
+ snd_devfs_token[unit]=devfs_add_devsw(
+ "/", name, &snd_cdevsw, (unit << 4)+SND_DEV_SNDPROC,
+ DV_CHR, SND_UID, SND_GID, 0660);
+
+ if ( ! sndstat_devfs_token) {
+ sndstat_devfs_token = devfs_add_devsw(
+ "/", "sndstat", &snd_cdevsw, 6,
+ DV_CHR, SND_UID, SND_GID, 0660);
+ }
+#endif /* DEVFS */
return TRUE;
}
@@ -484,36 +552,21 @@ snd_release_irq(int vect)
{
}
-#endif
-#ifdef JREMOD
-struct cdevsw snd_cdevsw =
- { sndopen, sndclose, sndread, sndwrite, /*30*/
- sndioctl, nostop, nullreset, nodevtotty,/* sound */
- sndselect, nommap, NULL };
-
static snd_devsw_installed = 0;
-static void snd_drvinit(void *unused)
+static void
+snd_drvinit(void *unused)
{
dev_t dev;
if( ! snd_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&snd_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&snd_cdevsw, NULL);
snd_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "snd", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(snddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,snd_drvinit,NULL)
-#endif /* JREMOD */
+#endif
diff --git a/sys/i386/isa/spigot.c b/sys/i386/isa/spigot.c
index ac74e31..e542887 100644
--- a/sys/i386/isa/spigot.c
+++ b/sys/i386/isa/spigot.c
@@ -64,6 +64,10 @@ error "Can only have 1 spigot configured."
#include <sys/devconf.h>
#include <sys/errno.h>
#include <sys/mman.h>
+#include <sys/conf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /* DEVFS */
#include <machine/frame.h>
#include <machine/spigot.h>
@@ -72,13 +76,6 @@ error "Can only have 1 spigot configured."
#include <i386/isa/isa.h>
#include <i386/isa/isa_device.h>
-#ifdef JREMOD
-#include <sys/conf.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 11
-#endif /*JREMOD*/
struct spigot_softc {
u_long flags;
@@ -86,6 +83,9 @@ struct spigot_softc {
struct proc *p;
u_long signal_num;
u_short irq;
+#ifdef DEVFS
+ void *devfs_token;
+#endif
} spigot_softc[NSPIGOT];
/* flags in softc */
@@ -99,6 +99,21 @@ int spigot_attach(struct isa_device *id);
struct isa_driver spigotdriver = {spigot_probe, spigot_attach, "spigot"};
+static d_open_t spigot_open;
+static d_close_t spigot_close;
+static d_rdwr_t spigot_rw;
+static d_read_t spigot_read;
+static d_write_t spigot_write;
+static d_ioctl_t spigot_ioctl;
+static d_select_t spigot_select;
+static d_mmap_t spigot_mmap;
+
+#define CDEV_MAJOR 11
+struct cdevsw spigot_cdevsw =
+ { spigot_open, spigot_close, spigot_read, spigot_write, /*11*/
+ spigot_ioctl, nostop, nullreset, nodevtotty,/* Spigot */
+ spigot_select, spigot_mmap, NULL, "spigot", NULL, -1 };
+
static struct kern_devconf kdc_spigot[NSPIGOT] = { {
0, /* kdc_next -> filled in by dev_attach() */
0, /* kdc_rlink -> filled in by dev_attach() */
@@ -155,17 +170,26 @@ struct spigot_softc *ss=(struct spigot_softc *)&spigot_softc[devp->id_unit];
int
spigot_attach(struct isa_device *devp)
{
-struct spigot_softc *ss=(struct spigot_softc *)&spigot_softc[devp->id_unit];
+ char name[32];
+ int unit;
+ struct spigot_softc *ss= &spigot_softc[unit = devp->id_unit];
- kdc_spigot[devp->id_unit].kdc_state = DC_UNKNOWN;
+ kdc_spigot[unit].kdc_state = DC_UNKNOWN;
ss->maddr = kvtop(devp->id_maddr);
ss->irq = devp->id_irq;
+#ifdef DEVFS
+ sprintf(name,"spigot%d",unit);
+/* path name devsw minor type uid gid perm*/
+ ss->devfs_token = devfs_add_devsw( "/", name,
+ &spigot_cdevsw, unit,
+ DV_CHR, 0, 0, 0600);
+#endif
return 1;
}
-int
+static int
spigot_open(dev_t dev, int flags, int fmt, struct proc *p)
{
struct spigot_softc *ss = (struct spigot_softc *)&spigot_softc[UNIT(dev)];
@@ -183,7 +207,7 @@ struct spigot_softc *ss = (struct spigot_softc *)&spigot_softc[UNIT(dev)];
return 0;
}
-int
+static int
spigot_close(dev_t dev, int flags, int fmt, struct proc *p)
{
struct spigot_softc *ss = (struct spigot_softc *)&spigot_softc[UNIT(dev)];
@@ -197,20 +221,20 @@ struct spigot_softc *ss = (struct spigot_softc *)&spigot_softc[UNIT(dev)];
return 0;
}
-int
+static int
spigot_write(dev_t dev, struct uio *uio, int ioflag)
{
return ENXIO;
}
-int
+static int
spigot_read(dev_t dev, struct uio *uio, int ioflag)
{
return ENXIO;
}
-int
+static int
spigot_ioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p)
{
int error;
@@ -249,7 +273,7 @@ struct spigot_info *info;
return 0;
}
-int
+static int
spigot_select(dev_t dev, int rw, struct proc *p)
{
@@ -269,7 +293,7 @@ struct spigot_softc *ss = (struct spigot_softc *)&spigot_softc[unit];
psignal(ss->p, ss->signal_num);
}
-int
+static int
spigot_mmap(dev_t dev, int offset, int nprot)
{
struct spigot_softc *ss = (struct spigot_softc *)&spigot_softc[0];
@@ -286,12 +310,6 @@ struct spigot_softc *ss = (struct spigot_softc *)&spigot_softc[0];
}
-#ifdef JREMOD
-struct cdevsw spigot_cdevsw =
- { spigot_open, spigot_close, spigot_read, spigot_write, /*11*/
- spigot_ioctl, nostop, nullreset, nodevtotty,/* Spigot */
- spigot_select, spigot_mmap, NULL };
-
static spigot_devsw_installed = 0;
static void spigot_drvinit(void *unused)
@@ -299,23 +317,13 @@ static void spigot_drvinit(void *unused)
dev_t dev;
if( ! spigot_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&spigot_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&spigot_cdevsw, NULL);
spigot_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "spigot", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(spigotdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,spigot_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NSPIGOT */
diff --git a/sys/i386/isa/spkr.c b/sys/i386/isa/spkr.c
index 9d45e33..160c18b 100644
--- a/sys/i386/isa/spkr.c
+++ b/sys/i386/isa/spkr.c
@@ -4,7 +4,7 @@
* v1.4 by Eric S. Raymond (esr@snark.thyrsus.com) Aug 1993
* modified for FreeBSD by Andrew A. Chernov <ache@astral.msk.su>
*
- * $Id: spkr.c,v 1.19 1995/11/29 10:47:57 julian Exp $
+ * $Id: spkr.c,v 1.20 1995/11/29 14:39:59 julian Exp $
*/
#include "speaker.h"
@@ -18,21 +18,29 @@
#include <sys/buf.h>
#include <sys/proc.h>
#include <sys/uio.h>
+#include <sys/conf.h>
#include <i386/isa/isa.h>
#include <i386/isa/timerreg.h>
#include <machine/clock.h>
#include <machine/speaker.h>
-#ifdef JREMOD
-#include <sys/conf.h>
-#define CDEV_MAJOR 26
-#endif /*JREMOD*/
#ifdef DEVFS
#include <sys/devfsext.h>
+void *devfs_token;
#endif
+static d_open_t spkropen;
+static d_close_t spkrclose;
+static d_write_t spkrwrite;
+static d_ioctl_t spkrioctl;
+
+#define CDEV_MAJOR 26
+struct cdevsw spkr_cdevsw =
+ { spkropen, spkrclose, noread, spkrwrite, /*26*/
+ spkrioctl, nostop, nullreset, nodevtotty,/* spkr */
+ seltrue, nommap, NULL, "spkr", NULL, -1 };
/**************** MACHINE DEPENDENT PART STARTS HERE *************************
*
@@ -569,11 +577,6 @@ struct proc *p;
return(EINVAL);
}
-#ifdef JREMOD
-struct cdevsw spkr_cdevsw =
- { spkropen, spkrclose, noread, spkrwrite, /*26*/
- spkrioctl, nostop, nullreset, nodevtotty,/* spkr */
- seltrue, nommap, NULL };
static spkr_devsw_installed = 0;
@@ -582,24 +585,19 @@ static void spkr_drvinit(void *unused)
dev_t dev;
if( ! spkr_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&spkr_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&spkr_cdevsw, NULL);
spkr_devsw_installed = 1;
#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "spkr", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
+ devfs_token = devfs_add_devsw("/", "spkr",
+ &spkr_cdevsw, 0,
+ DV_CHR, 0, 0, 0600);
#endif
}
}
SYSINIT(spkrdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,spkr_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NSPEAKER > 0 */
/* spkr.c ends here */
diff --git a/sys/i386/isa/syscons.c b/sys/i386/isa/syscons.c
index 6c736ca..db7c92d 100644
--- a/sys/i386/isa/syscons.c
+++ b/sys/i386/isa/syscons.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.c,v 1.133 1995/12/06 23:50:36 bde Exp $
+ * $Id: syscons.c,v 1.134 1995/12/07 12:46:08 davidg Exp $
*/
#include "sc.h"
@@ -45,6 +45,9 @@
#include <sys/errno.h>
#include <sys/malloc.h>
#include <sys/devconf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif
#include <machine/clock.h>
#include <machine/cons.h>
@@ -69,6 +72,7 @@
#define MAXCONS 16
#endif
+
/* this may break on older VGA's but is usefull on real 32 bit systems */
#define bcopyw bcopy
@@ -84,6 +88,7 @@ static default_attr kernel_default = {
static scr_stat main_console;
static scr_stat *console[MAXCONS];
+static void *sc_devfs_token[MAXCONS];
scr_stat *cur_console;
static scr_stat *new_scp, *old_scp;
static term_stat kernel_console;
@@ -159,8 +164,7 @@ static d_mmap_t scmmap;
static struct cdevsw scdevsw = {
scopen, scclose, scread, scwrite,
scioctl, nullstop, noreset, scdevtotty,
- ttselect, scmmap, nostrategy,
-};
+ ttselect, scmmap, nostrategy, "sc", NULL, -1 };
/*
* Calculate hardware attributes word using logical attributes mask and
@@ -283,7 +287,9 @@ scresume(void *dummy)
int
scattach(struct isa_device *dev)
{
- scr_stat *scp;
+ scr_stat *scp;
+ int vc;
+ char name[32];
scinit();
configuration = dev->id_flags;
@@ -345,6 +351,13 @@ scattach(struct isa_device *dev)
apm_hook_establish(APM_HOOK_RESUME , &scp->r_hook);
#endif
+#ifdef DEVFS
+ for ( vc = 0 ; vc < MAXCONS; vc++) {
+ sprintf(name,"ttyv%x", vc);
+ sc_devfs_token[vc] = devfs_add_devsw("/" ,name, &scdevsw, vc,
+ DV_CHR, 0, 0, 0600 );
+ }
+#endif
register_cdev("sc", &scdevsw);
return 0;
diff --git a/sys/i386/isa/tw.c b/sys/i386/isa/tw.c
index 7eb75e0..f8406f0 100644
--- a/sys/i386/isa/tw.c
+++ b/sys/i386/isa/tw.c
@@ -138,23 +138,18 @@
#include "uio.h"
#include "syslog.h"
#include "select.h"
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define MIN(a,b) ((a)<(b)?(a):(b))
#ifdef HIRESTIME
-#include "time.h"
+#include <sys/time.h>
#endif /* HIRESTIME */
#include "i386/isa/isa_device.h"
-#ifdef JREMOD
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 19
-#endif /*JREMOD*/
/*
@@ -211,6 +206,17 @@ struct isa_driver twdriver = {
twprobe, twattach, "tw"
};
+static d_open_t twopen;
+static d_close_t twclose;
+static d_read_t twread;
+static d_write_t twwrite;
+static d_select_t twselect;
+
+#define CDEV_MAJOR 19
+struct cdevsw tw_cdevsw =
+ { twopen, twclose, twread, twwrite, /*19*/
+ noioc, nullstop, nullreset, nodevtotty, /* tw */
+ twselect, nommap, nostrat, "tw", NULL, -1 };
/*
* Software control structure for TW523
*/
@@ -240,6 +246,9 @@ struct tw_sc {
int sc_xtimes[22]; /* Times for bits in current xmit packet */
int sc_rtimes[22]; /* Times for bits in current rcv packet */
#endif /* HIRESTIME */
+#ifdef DEVFS
+ void *devfs_token; /* store the devfs handle */
+#endif
} tw_sc[NTW];
static void twdelay25();
@@ -348,11 +357,20 @@ int twattach(idp)
struct isa_device *idp;
{
struct tw_sc *sc;
+ char name[32];
+ int unit;
- sc = &tw_sc[idp->id_unit];
+ sc = &tw_sc[unit = idp->id_unit];
sc->sc_port = idp->id_iobase;
sc->sc_state = 0;
+#ifdef DEVFS
+/* path name devsw minor type uid gid perm*/
+ sprintf(name,"tw%d", unit);
+ sc->devfs_token = devfs_add_devsw( "/", name, &tw_cdevsw, unit,
+ DV_CHR, 0, 0, 0600);
+#endif
+
return (1);
}
@@ -992,11 +1010,6 @@ static int twchecktime(int target, int tol)
}
#endif /* HIRESTIME */
-#ifdef JREMOD
-struct cdevsw tw_cdevsw =
- { twopen, twclose, twread, twwrite, /*19*/
- noioc, nullstop, nullreset, nodevtotty,/* tw */
- twselect, nommap, nostrat };
static tw_devsw_installed = 0;
@@ -1005,23 +1018,13 @@ static void tw_drvinit(void *unused)
dev_t dev;
if( ! tw_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&tw_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&tw_cdevsw, NULL);
tw_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "tw", major(dev), 0, DV_CHR, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(twdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,tw_drvinit,NULL)
-#endif /* JREMOD */
#endif NTW
diff --git a/sys/i386/isa/wcd.c b/sys/i386/isa/wcd.c
index f56dc46..2b57f3a 100644
--- a/sys/i386/isa/wcd.c
+++ b/sys/i386/isa/wcd.c
@@ -29,17 +29,33 @@
#include <sys/devconf.h>
#include <sys/disklabel.h>
#include <sys/cdio.h>
-#include <i386/include/cpufunc.h>
-#include <i386/isa/atapi.h>
-
-#ifdef JREMOD
#include <sys/conf.h>
#ifdef DEVFS
#include <sys/devfsext.h>
#endif /*DEVFS*/
+#include <i386/include/cpufunc.h>
+#include <i386/isa/atapi.h>
+
+static d_open_t wcdropen;
+static d_open_t wcdbopen;
+static d_close_t wcdrclose;
+static d_close_t wcdbclose;
+static d_ioctl_t wcdioctl;
+static d_strategy_t wcdstrategy;
+
#define CDEV_MAJOR 69
#define BDEV_MAJOR 19
-#endif /*JREMOD */
+extern struct cdevsw wcd_cdevsw;
+struct bdevsw wcd_bdevsw =
+ { wcdbopen, wcdbclose, wcdstrategy, wcdioctl, /*19*/
+ nxdump, zerosize, 0, "wcd", &wcd_cdevsw, -1 };
+
+struct cdevsw wcd_cdevsw =
+ { wcdropen, wcdrclose, rawread, nowrite, /*69*/
+ wcdioctl, nostop, nullreset, nodevtotty,/* atapi */
+ seltrue, nommap, wcdstrategy, "wcd",
+ &wcd_bdevsw, -1 };
+
extern int wcdattach(struct atapi*, int, struct atapi_params*, int, struct kern_devconf*);
@@ -205,6 +221,12 @@ struct wcd {
struct subchan subchan; /* Subchannel info */
struct kern_devconf cf; /* Driver configuration info */
char description[80]; /* Device description */
+#ifdef DEVFS
+ void *ra_devfs_token;
+ void *rc_devfs_token;
+ void *a_devfs_token;
+ void *c_devfs_token;
+#endif
};
struct wcd *wcdtab[NUNIT]; /* Drive info by unit number */
@@ -262,6 +284,8 @@ wcdattach (struct atapi *ata, int unit, struct atapi_params *ap, int debug,
{
struct wcd *t;
struct atapires result;
+ int lun;
+ char name[32];
if (wcdnlun >= NUNIT) {
printf ("wcd: too many units\n");
@@ -281,7 +305,7 @@ wcdattach (struct atapi *ata, int unit, struct atapi_params *ap, int debug,
bzero (t, sizeof (struct wcd));
t->ata = ata;
t->unit = unit;
- t->lun = wcdnlun++;
+ lun = t->lun = wcdnlun++;
t->param = ap;
t->flags = F_MEDIA_CHANGED;
t->refcnt = 0;
@@ -325,6 +349,29 @@ wcdattach (struct atapi *ata, int unit, struct atapi_params *ap, int debug,
ap->model, sizeof(ap->model));
dev_attach (&t->cf);
+#ifdef DEVFS
+#define WDC_UID 0
+#define WDC_GID 13
+ sprintf(name, "rwcd%da",lun);
+ t->ra_devfs_token = devfs_add_devsw(
+ "/", name, &wcd_cdevsw, (lun * 8),
+ DV_CHR, WDC_UID, WDC_GID, 0600);
+
+ sprintf(name, "rwcd%dc",lun);
+ t->rc_devfs_token = devfs_add_devsw(
+ "/", name, &wcd_cdevsw, (lun * 8) + RAW_PART,
+ DV_CHR, WDC_UID, WDC_GID, 0600);
+
+ sprintf(name, "wcd%da",lun);
+ t->a_devfs_token = devfs_add_devsw(
+ "/", name, &wcd_bdevsw, (lun * 8),
+ DV_BLK, WDC_UID, WDC_GID, 0600);
+
+ sprintf(name, "wcd%dc",lun);
+ t->c_devfs_token = devfs_add_devsw(
+ "/", name, &wcd_bdevsw, (lun * 8) + RAW_PART,
+ DV_BLK, WDC_UID, WDC_GID, 0600);
+#endif
return (1);
}
@@ -1074,21 +1121,13 @@ static int wcd_eject (struct wcd *t)
#include <sys/lkm.h>
/*
- * Device table entries.
- * These get copied at modload time into the kernels
- * lkm dummy device driver entries (see sys/i386/i386/conf.c).
- */
-struct bdevsw dev_wcd = { wcdbopen, wcdbclose, wcdstrategy, wcdioctl,
- nodump, nopsize, 0 };
-struct cdevsw dev_rwcd = { wcdropen, wcdrclose, rawread, nowrite, wcdioctl,
- nostop, nullreset, nodevtotty, seltrue, nommap,
- wcdstrategy };
-/*
* Construct lkm_dev structures (see lkm.h).
* Our bdevsw/cdevsw slot numbers are 19/69.
*/
-MOD_DEV(wcd, LM_DT_BLOCK, 19, &dev_wcd);
-MOD_DEV(rwcd, LM_DT_CHAR, 69, &dev_rwcd);
+
+
+MOD_DEV(wcd, LM_DT_BLOCK, BDEV_MAJOR, &wcd_bdevsw);
+MOD_DEV(rwcd, LM_DT_CHAR, CDEV_MAJOR, &wcd_cdevsw);
/*
* Function called when loading the driver.
@@ -1169,47 +1208,22 @@ int wcd_mod (struct lkm_table *lkmtp, int cmd, int ver)
}
#endif /* WCD_MODULE */
-#ifdef JREMOD
-struct bdevsw wcd_bdevsw =
- { wcdbopen, wcdbclose, wcdstrategy, wcdioctl, /*19*/
- nxdump, zerosize, 0 };
-
-struct cdevsw wcd_cdevsw =
- { wcdropen, wcdrclose, rawread, nowrite, /*69*/
- wcdioctl, nostop, nullreset, nodevtotty,/* atapi */
- seltrue, nommap, wcdstrategy };
-
static wcd_devsw_installed = 0;
static void wcd_drvinit(void *unused)
{
dev_t dev;
- dev_t dev_chr;
if( ! wcd_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&wcd_cdevsw,NULL);
- dev_chr = dev;
- dev = makedev(BDEV_MAJOR,0);
- bdevsw_add(&dev,&wcd_bdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&wcd_cdevsw, NULL);
+ dev = makedev(BDEV_MAJOR, 0);
+ bdevsw_add(&dev,&wcd_bdevsw, NULL);
wcd_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "rwcd", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "wcd", major(dev), 0, DV_BLK, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(wcddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,wcd_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NWCD && NWDC && ATAPI */
diff --git a/sys/i386/isa/wd.c b/sys/i386/isa/wd.c
index 354b0bb..1822a8b 100644
--- a/sys/i386/isa/wd.c
+++ b/sys/i386/isa/wd.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)wd.c 7.2 (Berkeley) 5/9/91
- * $Id: wd.c,v 1.95 1995/11/29 14:40:08 julian Exp $
+ * $Id: wd.c,v 1.96 1995/12/07 12:46:12 davidg Exp $
*/
/* TODO:
@@ -78,6 +78,9 @@
#include <sys/uio.h>
#include <sys/malloc.h>
#include <sys/devconf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <machine/bootinfo.h>
#include <machine/clock.h>
#include <machine/cons.h>
@@ -108,13 +111,6 @@ extern void wdstart(int ctrlr);
#define WDOPT_SLEEPHACK 0x4000
#define WDOPT_MULTIMASK 0x00ff
-#ifdef JREMOD
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 3
-#define BDEV_MAJOR 0
-#endif /*JREMOD */
static int wd_goaway(struct kern_devconf *, int);
static int wdc_goaway(struct kern_devconf *, int);
@@ -305,6 +301,27 @@ struct isa_driver wdcdriver = {
wdprobe, wdattach, "wdc",
};
+static d_open_t wdopen;
+static d_close_t wdclose;
+static d_ioctl_t wdioctl;
+static d_dump_t wddump;
+static d_size_t wdsize;
+static d_strategy_t wdstrategy;
+
+#define CDEV_MAJOR 3
+#define BDEV_MAJOR 0
+extern struct cdevsw wd_cdevsw;
+struct bdevsw wd_bdevsw =
+ { wdopen, wdclose, wdstrategy, wdioctl, /*0*/
+ wddump, wdsize, 0, "wd", &wd_cdevsw, -1 };
+
+struct cdevsw wd_cdevsw =
+ { wdopen, wdclose, rawread, rawwrite, /*3*/
+ wdioctl, nostop, nullreset, nodevtotty,/* wd */
+ seltrue, nommap, wdstrategy, "wd",
+ &wd_bdevsw, -1 };
+
+
/*
* Probe for controller.
*/
@@ -2127,46 +2144,22 @@ wdwait(struct disk *du, u_char bits_wanted, int timeout)
return (-1);
}
-#ifdef JREMOD
-struct bdevsw wd_bdevsw =
- { wdopen, wdclose, wdstrategy, wdioctl, /*0*/
- wddump, wdsize, 0 };
-
-struct cdevsw wd_cdevsw =
- { wdopen, wdclose, rawread, rawwrite, /*3*/
- wdioctl, nostop, nullreset, nodevtotty,/* wd */
- seltrue, nommap, wdstrategy };
-
static wd_devsw_installed = 0;
static void wd_drvinit(void *unused)
{
dev_t dev;
- dev_t dev_chr;
if( ! wd_devsw_installed ) {
dev = makedev(CDEV_MAJOR,0);
cdevsw_add(&dev,&wd_cdevsw,NULL);
- dev_chr = dev;
dev = makedev(BDEV_MAJOR,0);
bdevsw_add(&dev,&wd_bdevsw,NULL);
wd_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "rwd", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
- x=devfs_add_devsw(
- "/", "wd", major(dev), 0, DV_BLK, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(wddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,wd_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NWDC > 0 */
diff --git a/sys/i386/isa/wt.c b/sys/i386/isa/wt.c
index 7e4a062..6fc75d8 100644
--- a/sys/i386/isa/wt.c
+++ b/sys/i386/isa/wt.c
@@ -19,7 +19,7 @@
* the original CMU copyright notice.
*
* Version 1.3, Thu Nov 11 12:09:13 MSK 1993
- * $Id: wt.c,v 1.22 1995/11/29 10:48:03 julian Exp $
+ * $Id: wt.c,v 1.23 1995/11/29 14:40:11 julian Exp $
*
*/
@@ -69,6 +69,10 @@
#include <sys/mtio.h>
#include <sys/proc.h>
#include <sys/devconf.h>
+#include <sys/conf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#include <vm/vm_param.h>
#include <machine/clock.h>
@@ -76,14 +80,6 @@
#include <i386/isa/isa_device.h>
#include <i386/isa/wtreg.h>
-#ifdef JREMOD
-#include <sys/conf.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-#define CDEV_MAJOR 10
-#define BDEV_MAJOR 3
-#endif /*JREMOD */
/*
* Uncomment this to enable internal device tracing.
@@ -167,6 +163,10 @@ typedef struct {
unsigned short DATAPORT, CMDPORT, STATPORT, CTLPORT, SDMAPORT, RDMAPORT;
unsigned char BUSY, NOEXCEP, RESETMASK, RESETVAL;
unsigned char ONLINE, RESET, REQUEST, IEN;
+#ifdef DEVFS
+ void *devfs_token;
+ void *devfs_token_r;
+#endif
} wtinfo_t;
wtinfo_t wttab[NWT]; /* tape info by unit number */
@@ -196,6 +196,28 @@ static struct kern_devconf kdc_wt[NWT] = { {
DC_CLS_TAPE /* class */
} };
+static d_open_t wtopen;
+static d_close_t wtclose;
+static d_ioctl_t wtioctl;
+static d_dump_t wtdump;
+static d_psize_t wtsize;
+static d_strategy_t wtstrategy;
+
+#define CDEV_MAJOR 10
+#define BDEV_MAJOR 3
+
+extern struct cdevsw wt_cdevsw;
+struct bdevsw wt_bdevsw =
+ { wtopen, wtclose, wtstrategy, wtioctl, /*3*/
+ wtdump, wtsize, B_TAPE, "wt", &wt_cdevsw, -1 };
+
+struct cdevsw wt_cdevsw =
+ { wtopen, wtclose, rawread, rawwrite, /*10*/
+ wtioctl, nostop, nullreset, nodevtotty,/* wt */
+ seltrue, nommap, wtstrategy, "wt",
+ &wt_bdevsw, -1 };
+
+
static inline void
wt_registerdev(struct isa_device *id)
{
@@ -261,6 +283,7 @@ static int
wtattach (struct isa_device *id)
{
wtinfo_t *t = wttab + id->id_unit;
+ char name[32];
if (t->type == ARCHIVE) {
printf ("wt%d: type <Archive>\n", t->unit);
@@ -271,6 +294,16 @@ wtattach (struct isa_device *id)
t->dens = -1; /* unknown density */
kdc_wt[id->id_unit].kdc_state = DC_IDLE;
+#ifdef DEVFS
+ sprintf(name,"rwt%d",id->id_unit);
+ t->devfs_token_r = devfs_add_devsw(
+ "/", name, &wt_cdevsw, id->id_unit,
+ DV_CHR, 0, 0, 0600);
+ sprintf(name,"wt%d",id->id_unit);
+ t->devfs_token = devfs_add_devsw(
+ "/", name, &wt_bdevsw, id->id_unit,
+ DV_BLK, 0, 0, 0600);
+#endif
return (1);
}
@@ -975,46 +1008,22 @@ static int wtstatus (wtinfo_t *t)
}
-#ifdef JREMOD
-struct bdevsw wt_bdevsw =
- { wtopen, wtclose, wtstrategy, wtioctl, /*3*/
- wtdump, wtsize, B_TAPE };
-
-struct cdevsw wt_cdevsw =
- { wtopen, wtclose, rawread, rawwrite, /*10*/
- wtioctl, nostop, nullreset, nodevtotty,/* wt */
- seltrue, nommap, wtstrategy };
-
static wt_devsw_installed = 0;
static void wt_drvinit(void *unused)
{
dev_t dev;
- dev_t dev_chr;
if( ! wt_devsw_installed ) {
- dev = makedev(CDEV_MAJOR,0);
- cdevsw_add(&dev,&wt_cdevsw,NULL);
- dev_chr = dev;
- dev = makedev(BDEV_MAJOR,0);
- bdevsw_add(&dev,&wt_bdevsw,NULL);
+ dev = makedev(CDEV_MAJOR, 0);
+ cdevsw_add(&dev,&wt_cdevsw, NULL);
+ dev = makedev(BDEV_MAJOR, 0);
+ bdevsw_add(&dev,&wt_bdevsw, NULL);
wt_devsw_installed = 1;
-#ifdef DEVFS
- {
- int x;
-/* default for a simple device with no probe routine (usually delete this) */
- x=devfs_add_devsw(
-/* path name devsw minor type uid gid perm*/
- "/", "rwt", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
- x=devfs_add_devsw(
- "/", "wt", major(dev), 0, DV_BLK, 0, 0, 0600);
- }
-#endif
}
}
SYSINIT(wtdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,wt_drvinit,NULL)
-#endif /* JREMOD */
#endif /* NWT */
OpenPOWER on IntegriCloud