summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>1995-11-29 10:49:16 +0000
committerjulian <julian@FreeBSD.org>1995-11-29 10:49:16 +0000
commitf2f63c6ece7d25485976323df6d684743fe14bb6 (patch)
tree5ed2d747156a38098db0e540f833114bc9dd1b51
parentbe48321f04abe146ffbc5091fe940b107f46c175 (diff)
downloadFreeBSD-src-f2f63c6ece7d25485976323df6d684743fe14bb6.zip
FreeBSD-src-f2f63c6ece7d25485976323df6d684743fe14bb6.tar.gz
OK, that's it..
That's EVERY SINGLE driver that has an entry in conf.c.. my next trick will be to define cdevsw[] and bdevsw[] as empty arrays and remove all those DAMNED defines as well.. Each of these drivers has a SYSINIT linker set entry that comes in very early.. and asks teh driver to add it's own entry to the two devsw[] tables. some slight reworking of the commits from yesterday (added the SYSINIT stuff and some usually wrong but token DEVFS entries to all these devices. BTW does anyone know where the 'ata' entries in conf.c actually reside? seems we don't actually have a 'ataopen() etc... If you want to add a new device in conf.c please make sure I know so I can keep it up to date too.. as before, this is all dependent on #if defined(JREMOD) (and #ifdef DEVFS in parts)
-rw-r--r--sys/amd64/amd64/mem.c59
-rw-r--r--sys/dev/cy/cy.c38
-rw-r--r--sys/dev/cy/cy_isa.c38
-rw-r--r--sys/dev/dgb/dgb.c41
-rw-r--r--sys/dev/joy/joy.c37
-rw-r--r--sys/dev/mcd/mcd.c45
-rw-r--r--sys/dev/mse/mse.c38
-rw-r--r--sys/dev/rc/rc.c37
-rw-r--r--sys/dev/scd/scd.c45
-rw-r--r--sys/dev/si/si.c39
-rw-r--r--sys/dev/sio/sio.c37
-rw-r--r--sys/dev/snp/snp.c39
-rw-r--r--sys/dev/speaker/spkr.c48
-rw-r--r--sys/dev/vn/vn.c52
-rw-r--r--sys/gnu/i386/isa/dgb.c41
-rw-r--r--sys/gnu/i386/isa/nic3008.c51
-rw-r--r--sys/gnu/i386/isa/nic3009.c60
-rw-r--r--sys/gnu/isdn/iispy.c50
-rw-r--r--sys/gnu/isdn/iitel.c74
-rw-r--r--sys/gnu/isdn/iitty.c76
-rw-r--r--sys/gnu/isdn/isdn.c68
-rw-r--r--sys/i386/apm/apm.c43
-rw-r--r--sys/i386/bios/apm.c43
-rw-r--r--sys/i386/i386/cons.c54
-rw-r--r--sys/i386/i386/mem.c59
-rw-r--r--sys/i386/isa/asc.c47
-rw-r--r--sys/i386/isa/b004.c37
-rw-r--r--sys/i386/isa/ctx.c40
-rw-r--r--sys/i386/isa/cx.c32
-rw-r--r--sys/i386/isa/cy.c38
-rw-r--r--sys/i386/isa/gpib.c36
-rw-r--r--sys/i386/isa/gsc.c38
-rw-r--r--sys/i386/isa/if_cx.c19
-rw-r--r--sys/i386/isa/joy.c37
-rw-r--r--sys/i386/isa/labpc.c37
-rw-r--r--sys/i386/isa/lpt.c38
-rw-r--r--sys/i386/isa/matcd/matcd.c42
-rw-r--r--sys/i386/isa/mcd.c45
-rw-r--r--sys/i386/isa/mse.c38
-rw-r--r--sys/i386/isa/pcaudio.c39
-rw-r--r--sys/i386/isa/psm.c36
-rw-r--r--sys/i386/isa/rc.c37
-rw-r--r--sys/i386/isa/scd.c45
-rw-r--r--sys/i386/isa/si.c39
-rw-r--r--sys/i386/isa/sio.c37
-rw-r--r--sys/i386/isa/sound/soundcard.c42
-rw-r--r--sys/i386/isa/spigot.c36
-rw-r--r--sys/i386/isa/spkr.c48
-rw-r--r--sys/i386/isa/tw.c36
-rw-r--r--sys/i386/isa/wcd.c41
-rw-r--r--sys/i386/isa/wd.c44
-rw-r--r--sys/i386/isa/wt.c43
-rw-r--r--sys/isa/joy.c37
-rw-r--r--sys/isa/sio.c37
-rw-r--r--sys/kern/kern_descrip.c47
-rw-r--r--sys/kern/kern_lkm.c42
-rw-r--r--sys/kern/subr_log.c44
-rw-r--r--sys/kern/tty_cons.c54
-rw-r--r--sys/kern/tty_pty.c64
-rw-r--r--sys/kern/tty_snoop.c39
-rw-r--r--sys/kern/tty_tty.c43
-rw-r--r--sys/miscfs/devfs/devfs_tree.c46
-rw-r--r--sys/net/bpf.c44
-rw-r--r--sys/net/if_tun.c39
-rw-r--r--sys/pccard/pccard.c41
-rw-r--r--sys/scsi/cd.c56
-rw-r--r--sys/scsi/ch.c47
-rw-r--r--sys/scsi/od.c53
-rw-r--r--sys/scsi/pt.c44
-rw-r--r--sys/scsi/sctarg.c44
-rw-r--r--sys/scsi/sd.c57
-rw-r--r--sys/scsi/ssc.c50
-rw-r--r--sys/scsi/st.c62
-rw-r--r--sys/scsi/su.c43
-rw-r--r--sys/scsi/uk.c44
-rw-r--r--sys/scsi/worm.c45
-rw-r--r--sys/sys/devfsext.h12
-rw-r--r--sys/sys/kernel.h4
-rw-r--r--sys/vm/vm_swap.c54
79 files changed, 2708 insertions, 743 deletions
diff --git a/sys/amd64/amd64/mem.c b/sys/amd64/amd64/mem.c
index 54db6cd..a0a4f07 100644
--- a/sys/amd64/amd64/mem.c
+++ b/sys/amd64/amd64/mem.c
@@ -38,7 +38,7 @@
*
* from: Utah $Hdr: mem.c 1.13 89/10/08$
* from: @(#)mem.c 7.2 (Berkeley) 5/9/91
- * $Id: mem.c,v 1.18 1995/11/04 13:52:30 bde Exp $
+ * $Id: mem.c,v 1.19 1995/11/04 16:00:25 markm Exp $
*/
/*
@@ -63,26 +63,27 @@
#include <vm/vm_prot.h>
#include <vm/pmap.h>
+#ifdef JREMOD
+#include <sys/kernel.h>
+#define CDEV_MAJOR 2
+#endif /*JREMOD*/
+
#ifdef DEVFS
#include <sys/devfsext.h>
-#include "sys/kernel.h"
-
-static void memdev_init __P((void *));
-SYSINIT(memdev,SI_SUB_DEVFS, SI_ORDER_ANY, memdev_init, NULL)
static void
-memdev_init(dummy)
- void *dummy;
+memdevfs_init(dev_t dev)
{
void * x;
-/* path name devsw minor type uid gid perm*/
- x=dev_add("/misc", "mem", mmopen, 0, DV_CHR, 0, 2, 0640);
- x=dev_add("/misc", "kmem", mmopen, 1, DV_CHR, 0, 2, 0640);
- x=dev_add("/misc", "null", mmopen, 2, DV_CHR, 0, 0, 0666);
- x=dev_add("/misc", "random", mmopen, 3, DV_CHR, 0, 0, 0666);
- x=dev_add("/misc", "urandom", mmopen, 4, DV_CHR, 0, 0, 0666);
- x=dev_add("/misc", "zero", mmopen, 12, DV_CHR, 0, 0, 0666);
- x=dev_add("/misc", "io", mmopen, 14, DV_CHR, 0, 2, 0640);
+ int maj = major(dev);
+/* path name major minor type uid gid perm*/
+ x=devfs_add_devsw("/misc", "mem", maj, 0, DV_CHR, 0, 2, 0640);
+ x=devfs_add_devsw("/misc", "kmem", maj, 1, DV_CHR, 0, 2, 0640);
+ x=devfs_add_devsw("/misc", "null", maj, 2, DV_CHR, 0, 0, 0666);
+ x=devfs_add_devsw("/misc", "random", maj, 3, DV_CHR, 0, 0, 0666);
+ x=devfs_add_devsw("/misc", "urandom", maj, 4, DV_CHR, 0, 0, 0666);
+ x=devfs_add_devsw("/misc", "zero", maj, 12, DV_CHR, 0, 0, 0666);
+ x=devfs_add_devsw("/misc", "io", maj, 14, DV_CHR, 0, 2, 0640);
}
#endif /* DEVFS */
@@ -378,3 +379,31 @@ mmioctl(dev, cmd, cmdarg, flags, p)
}
return (0);
}
+
+
+
+#ifdef JREMOD
+struct cdevsw mem_cdevsw =
+ { mmopen, mmclose, mmrw, mmrw, /*2*/
+ mmioctl, nullstop, nullreset, nodevtotty,/* memory */
+ seltrue, memmmap, NULL };
+
+static mem_devsw_installed = 0;
+
+static void mem_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! mem_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&mem_cdevsw,NULL);
+ mem_devsw_installed = 1;
+#ifdef DEVFS
+ memdevfs_init(dev);
+#endif
+}
+
+SYSINIT(memdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,mem_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/dev/cy/cy.c b/sys/dev/cy/cy.c
index c2f3725..c4739ae 100644
--- a/sys/dev/cy/cy.c
+++ b/sys/dev/cy/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.19 1995/11/26 17:13:23 bde Exp $
+ * $Id: cy.c,v 1.20 1995/11/28 09:40:56 julian Exp $
*/
#include "cy.h"
@@ -398,8 +398,10 @@ static int cy_nr_cd1400s[NCY];
static int volatile RxFifoThreshold = (CD1400_RX_FIFO_SIZE / 2);
#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 48
-static void cy_devsw_install();
#endif /*JREMOD*/
static struct kern_devconf kdc_sio[NCY] = { {
@@ -442,9 +444,6 @@ sioprobe(dev)
return (0);
cy_nr_cd1400s[unit] = 0;
sioregisterdev(dev);
-#ifdef JREMOD
- cy_devsw_install();
-#endif /*JREMOD*/
/* Cyclom-16Y hardware reset (Cyclom-8Ys don't care) */
@@ -2521,6 +2520,7 @@ cystatus(unit)
#endif /* CyDebug */
+
#ifdef JREMOD
struct cdevsw cy_cdevsw =
{ cyopen, cyclose, cyread, cywrite, /*48*/
@@ -2529,18 +2529,28 @@ struct cdevsw cy_cdevsw =
static cy_devsw_installed = 0;
-static void cy_devsw_install()
+static void cy_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! cy_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&cy_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&cy_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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/dev/cy/cy_isa.c b/sys/dev/cy/cy_isa.c
index c2f3725..c4739ae 100644
--- a/sys/dev/cy/cy_isa.c
+++ b/sys/dev/cy/cy_isa.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.19 1995/11/26 17:13:23 bde Exp $
+ * $Id: cy.c,v 1.20 1995/11/28 09:40:56 julian Exp $
*/
#include "cy.h"
@@ -398,8 +398,10 @@ static int cy_nr_cd1400s[NCY];
static int volatile RxFifoThreshold = (CD1400_RX_FIFO_SIZE / 2);
#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 48
-static void cy_devsw_install();
#endif /*JREMOD*/
static struct kern_devconf kdc_sio[NCY] = { {
@@ -442,9 +444,6 @@ sioprobe(dev)
return (0);
cy_nr_cd1400s[unit] = 0;
sioregisterdev(dev);
-#ifdef JREMOD
- cy_devsw_install();
-#endif /*JREMOD*/
/* Cyclom-16Y hardware reset (Cyclom-8Ys don't care) */
@@ -2521,6 +2520,7 @@ cystatus(unit)
#endif /* CyDebug */
+
#ifdef JREMOD
struct cdevsw cy_cdevsw =
{ cyopen, cyclose, cyread, cywrite, /*48*/
@@ -2529,18 +2529,28 @@ struct cdevsw cy_cdevsw =
static cy_devsw_installed = 0;
-static void cy_devsw_install()
+static void cy_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! cy_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&cy_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&cy_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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/dev/dgb/dgb.c b/sys/dev/dgb/dgb.c
index 1e61971..11a868a 100644
--- a/sys/dev/dgb/dgb.c
+++ b/sys/dev/dgb/dgb.c
@@ -1,5 +1,5 @@
/*-
- * dgb.c $Id: dgb.c,v 1.4 1995/10/12 23:28:31 bde Exp $
+ * dgb.c $Id: dgb.c,v 1.5 1995/11/04 13:22:59 bde Exp $
*
* Digiboard driver.
*
@@ -51,6 +51,13 @@
#include <gnu/i386/isa/dgfep.h>
#include <gnu/i386/isa/dgreg.h>
+#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 58
+#endif /*JREMOD*/
+
#define CALLOUT_MASK 0x80
#define CONTROL_MASK 0x60
#define CONTROL_INIT_STATE 0x20
@@ -1979,4 +1986,36 @@ fepcmd(port, cmd, op1, op2, ncmds, bytecmd)
port->unit, port->pnum);
}
+#ifdef JREMOD
+struct cdevsw dgb_cdevsw =
+ { dgbopen, dgbclose, dgbread, dgbwrite, /*58*/
+ dgbioctl, dgbstop, nxreset, dgbdevtotty, /* dgb */
+ ttselect, nommap, NULL };
+
+static dgb_devsw_installed = 0;
+
+static void dgb_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! dgb_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&dgb_cdevsw,NULL);
+ dgb_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 major minor type uid gid perm*/
+ "/", "dgb", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(dgbdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,dgb_drvinit,NULL)
+
+#endif /* JREMOD */
+
#endif /* NDGB > 0 */
diff --git a/sys/dev/joy/joy.c b/sys/dev/joy/joy.c
index 5870e62..e90e90f 100644
--- a/sys/dev/joy/joy.c
+++ b/sys/dev/joy/joy.c
@@ -43,8 +43,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 51
-static void joy_devsw_install();
#endif /*JREMOD*/
/* The game port can manage 4 buttons and 4 variable resistors (usually 2
@@ -105,10 +108,6 @@ joyattach (struct isa_device *dev)
joy[dev->id_unit].timeout[0] = joy[dev->id_unit].timeout[1] = 0;
printf("joy%d: joystick\n", dev->id_unit);
-#ifdef JREMOD
- joy_devsw_install();
-#endif /*JREMOD*/
-
return 1;
}
@@ -224,18 +223,28 @@ struct cdevsw joy_cdevsw =
static joy_devsw_installed = 0;
-static void joy_devsw_install()
+static void joy_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! joy_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&joy_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&joy_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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/dev/mcd/mcd.c b/sys/dev/mcd/mcd.c
index 0571a93..4ab0b9c 100644
--- a/sys/dev/mcd/mcd.c
+++ b/sys/dev/mcd/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.48 1995/11/04 13:23:35 bde Exp $
+ * $Id: mcd.c,v 1.49 1995/11/28 09:41:22 julian Exp $
*/
static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
@@ -71,9 +71,13 @@ static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
#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
-static void mcd_devsw_install();
#endif /*JREMOD */
#define MCD_TRACE(format, args...) \
@@ -262,10 +266,6 @@ int mcd_attach(struct isa_device *dev)
kdc_mcd[dev->id_unit].kdc_state = DC_IDLE;
/* name filled in probe */
kdc_mcd[dev->id_unit].kdc_description = mcd_data[dev->id_unit].name;
-#ifdef JREMOD
- mcd_devsw_install();
-#endif /*JREMOD*/
-
return 1;
}
@@ -1682,18 +1682,33 @@ struct cdevsw mcd_cdevsw =
static mcd_devsw_installed = 0;
-static void mcd_devsw_install()
+static void mcd_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+ dev_t dev_chr;
+
if( ! mcd_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&mcd_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&mcd_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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/dev/mse/mse.c b/sys/dev/mse/mse.c
index 5499a2a..52195fb 100644
--- a/sys/dev/mse/mse.c
+++ b/sys/dev/mse/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.15 1995/11/04 17:07:37 bde Exp $
+ * $Id: mse.c,v 1.16 1995/11/28 09:41:25 julian Exp $
*/
/*
* Driver for the Logitech and ATI Inport Bus mice for use with 386bsd and
@@ -63,8 +63,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 27
-static void mse_devsw_install();
#endif /*JREMOD*/
static int mseprobe(struct isa_device *);
@@ -239,9 +242,6 @@ mseattach(idp)
sc->sc_port = idp->id_iobase;
kdc_mse[idp->id_unit].kdc_state = DC_IDLE;
-#ifdef JREMOD
- mse_devsw_install();
-#endif /*JREMOD*/
return (1);
}
@@ -583,18 +583,28 @@ struct cdevsw mse_cdevsw =
static mse_devsw_installed = 0;
-static void mse_devsw_install()
+static void mse_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! mse_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&mse_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&mse_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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/dev/rc/rc.c b/sys/dev/rc/rc.c
index 6203aff..e1d80cb 100644
--- a/sys/dev/rc/rc.c
+++ b/sys/dev/rc/rc.c
@@ -60,8 +60,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 63
-static void rc_devsw_install();
#endif /*JREMOD*/
/* Prototypes */
@@ -283,10 +286,6 @@ int rcattach(dvp)
rc_wakeup((void *)NULL);
rc_wakeup_started = 0;
}
-#ifdef JREMOD
- rc_devsw_install();
-#endif /*JREMOD*/
-
return 1;
}
@@ -1511,18 +1510,28 @@ struct cdevsw rc_cdevsw =
static rc_devsw_installed = 0;
-static void rc_devsw_install()
+static void rc_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! rc_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&rc_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&rc_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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/dev/scd/scd.c b/sys/dev/scd/scd.c
index 7d4fdec..0e2a130 100644
--- a/sys/dev/scd/scd.c
+++ b/sys/dev/scd/scd.c
@@ -41,7 +41,7 @@
*/
-/* $Id: scd.c,v 1.9 1995/11/04 13:23:39 bde Exp $ */
+/* $Id: scd.c,v 1.10 1995/11/28 09:41:36 julian Exp $ */
/* Please send any comments to micke@dynas.se */
@@ -73,9 +73,12 @@
#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
-static void scd_devsw_install();
#endif /*JREMOD */
#define scd_part(dev) ((minor(dev)) & 7)
@@ -224,10 +227,6 @@ int scd_attach(struct isa_device *dev)
cd->flags = SCDINIT;
cd->audio_status = CD_AS_AUDIO_INVALID;
-#ifdef JREMOD
- scd_devsw_install();
-#endif /*JREMOD*/
-
return 1;
}
@@ -1529,6 +1528,7 @@ scd_toc_entrys (int unit, struct ioc_read_toc_entry *te)
return 0;
}
+
#ifdef JREMOD
struct bdevsw scd_bdevsw =
{ scdopen, scdclose, scdstrategy, scdioctl, /*16*/
@@ -1541,19 +1541,34 @@ struct cdevsw scd_cdevsw =
static scd_devsw_installed = 0;
-static void scd_devsw_install()
+static void scd_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+ dev_t dev_chr;
+
if( ! scd_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&scd_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&scd_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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);
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/dev/si/si.c b/sys/dev/si/si.c
index 93accc2..7b58916 100644
--- a/sys/dev/si/si.c
+++ b/sys/dev/si/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.16 1995/11/28 07:29:29 bde Exp $
+ * $Id: si.c,v 1.17 1995/11/28 09:41:39 julian Exp $
*/
#ifndef lint
@@ -82,8 +82,10 @@ 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
-static void si_devsw_install();
#endif /*JREMOD*/
@@ -657,9 +659,6 @@ mem_fail:
}
done_chartimes = 1;
}
-#ifdef JREMOD
- si_devsw_install();
-#endif /*JREMOD*/
return (1);
}
@@ -2309,18 +2308,34 @@ struct cdevsw si_cdevsw =
static si_devsw_installed = 0;
-static void si_devsw_install()
+static void si_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+ dev_t dev_chr;
+
if( ! si_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&si_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&si_cdevsw,NULL);
+ dev_chr = dev;
#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&si_bdevsw,NULL);
+ dev = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&dev,&si_bdevsw,NULL);
#endif /*BDEV_MAJOR*/
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 */
+
#endif
diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c
index b8aa9e2..7cabae4 100644
--- a/sys/dev/sio/sio.c
+++ b/sys/dev/sio/sio.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
- * $Id: sio.c,v 1.119 1995/11/21 09:15:04 bde Exp $
+ * $Id: sio.c,v 1.120 1995/11/28 09:41:47 julian Exp $
*/
#include "sio.h"
@@ -97,8 +97,10 @@
#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
-static void sio_devsw_install();
#endif /*JREMOD*/
@@ -883,9 +885,6 @@ determined_type: ;
s = spltty();
com_addr(unit) = com;
splx(s);
-#ifdef JREMOD
- sio_devsw_install();
-#endif /*JREMOD*/
return (1);
}
@@ -2574,18 +2573,28 @@ struct cdevsw sio_cdevsw =
static sio_devsw_installed = 0;
-static void sio_devsw_install()
+static void sio_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! sio_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&sio_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&sio_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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/dev/snp/snp.c b/sys/dev/snp/snp.c
index 77c1596..c89c975 100644
--- a/sys/dev/snp/snp.c
+++ b/sys/dev/snp/snp.c
@@ -33,6 +33,13 @@
#include <sys/snoop.h>
+#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 53
+#endif /*JREMOD*/
+
#ifndef MIN
#define MIN(a,b) (((a)<(b))?(a):(b))
#endif
@@ -491,4 +498,36 @@ snpselect(dev, rw, p)
return 0;
}
+#ifdef JREMOD
+struct cdevsw snp_cdevsw =
+ { snpopen, snpclose, snpread, snpwrite, /*53*/
+ snpioctl, nostop, nullreset, nodevtotty,/* snoop */
+ snpselect, nommap, NULL };
+
+static snp_devsw_installed = 0;
+
+static void snp_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! snp_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&snp_cdevsw,NULL);
+ snp_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*/
+ "/", "snp", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(snpdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,snp_drvinit,NULL)
+
+#endif /* JREMOD */
+
#endif
diff --git a/sys/dev/speaker/spkr.c b/sys/dev/speaker/spkr.c
index 050ba18..620ec9f 100644
--- a/sys/dev/speaker/spkr.c
+++ b/sys/dev/speaker/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.17 1995/09/09 18:09:55 davidg Exp $
+ * $Id: spkr.c,v 1.18 1995/11/28 09:41:55 julian Exp $
*/
#include "speaker.h"
@@ -26,31 +26,13 @@
#ifdef JREMOD
#include <sys/conf.h>
#define CDEV_MAJOR 26
-static void spkr_devsw_install();
#endif /*JREMOD*/
-#if defined(DEVFS) || defined(JREMOD)
-#include "sys/kernel.h"
#ifdef DEVFS
#include <sys/devfsext.h>
-int spkropen();
#endif
-void spkrdev_init(void *data) /* data not used */
-{
- void * x;
-#ifdef JREMOD
- spkr_devsw_install();
-#endif /*JREMOD*/
-#ifdef DEVFS
-/* path name devsw minor type uid gid perm*/
- x=dev_add("/misc", "speaker", spkropen, 0, DV_CHR, 0, 0, 0600);
-#endif
-
-}
-SYSINIT(spkrdev,SI_SUB_DEVFS, SI_ORDER_ANY, spkrdev_init, NULL)
-#endif /*DEVFS*/ /* JREMOD */
/**************** MACHINE DEPENDENT PART STARTS HERE *************************
*
@@ -595,19 +577,29 @@ struct cdevsw spkr_cdevsw =
static spkr_devsw_installed = 0;
-static void spkr_devsw_install()
+static void spkr_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! spkr_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&spkr_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&spkr_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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);
+ }
+ }
+#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/dev/vn/vn.c b/sys/dev/vn/vn.c
index 50cce3b..1062d4c 100644
--- a/sys/dev/vn/vn.c
+++ b/sys/dev/vn/vn.c
@@ -88,6 +88,16 @@
#include <sys/vnioctl.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 43
+#define BDEV_MAJOR 15
+#endif /*JREMOD */
+
+
#ifdef DEBUG
int dovncluster = 1;
int vndebug = 0x00;
@@ -586,4 +596,46 @@ vndump(dev_t dev)
{
return (ENODEV);
}
+#ifdef JREMOD
+struct bdevsw vn_bdevsw =
+ { vnopen, vnclose, vnstrategy, vnioctl, /*15*/
+ vndump, vnsize, 0 };
+
+struct cdevsw vn_cdevsw =
+ { vnopen, vnclose, rawread, rawwrite, /*43*/
+ vnioctl, nostop, nullreset, nodevtotty,/* vn */
+ seltrue, nommap, vnstrategy };
+
+static vn_devsw_installed = 0;
+
+static void vn_drvinit(void *unused)
+{
+ dev_t dev;
+ dev_t dev_chr;
+
+ if( ! vn_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&vn_cdevsw,NULL);
+ dev_chr = dev;
+ dev = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&dev,&vn_bdevsw,NULL);
+ vn_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 major minor type uid gid perm*/
+ "/", "rvn", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
+ x=devfs_add_devsw(
+ "/", "vn", major(dev), 0, DV_BLK, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(vndev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,vn_drvinit,NULL)
+
+#endif /* JREMOD */
+
#endif
diff --git a/sys/gnu/i386/isa/dgb.c b/sys/gnu/i386/isa/dgb.c
index 1e61971..11a868a 100644
--- a/sys/gnu/i386/isa/dgb.c
+++ b/sys/gnu/i386/isa/dgb.c
@@ -1,5 +1,5 @@
/*-
- * dgb.c $Id: dgb.c,v 1.4 1995/10/12 23:28:31 bde Exp $
+ * dgb.c $Id: dgb.c,v 1.5 1995/11/04 13:22:59 bde Exp $
*
* Digiboard driver.
*
@@ -51,6 +51,13 @@
#include <gnu/i386/isa/dgfep.h>
#include <gnu/i386/isa/dgreg.h>
+#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 58
+#endif /*JREMOD*/
+
#define CALLOUT_MASK 0x80
#define CONTROL_MASK 0x60
#define CONTROL_INIT_STATE 0x20
@@ -1979,4 +1986,36 @@ fepcmd(port, cmd, op1, op2, ncmds, bytecmd)
port->unit, port->pnum);
}
+#ifdef JREMOD
+struct cdevsw dgb_cdevsw =
+ { dgbopen, dgbclose, dgbread, dgbwrite, /*58*/
+ dgbioctl, dgbstop, nxreset, dgbdevtotty, /* dgb */
+ ttselect, nommap, NULL };
+
+static dgb_devsw_installed = 0;
+
+static void dgb_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! dgb_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&dgb_cdevsw,NULL);
+ dgb_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 major minor type uid gid perm*/
+ "/", "dgb", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(dgbdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,dgb_drvinit,NULL)
+
+#endif /* JREMOD */
+
#endif /* NDGB > 0 */
diff --git a/sys/gnu/i386/isa/nic3008.c b/sys/gnu/i386/isa/nic3008.c
index 5a71444..0913003 100644
--- a/sys/gnu/i386/isa/nic3008.c
+++ b/sys/gnu/i386/isa/nic3008.c
@@ -1,6 +1,6 @@
-static char nic38_id[] = "@(#)$Id: nic3008.c,v 1.8 1995/11/18 04:19:44 bde Exp $";
+static char nic38_id[] = "@(#)$Id: nic3008.c,v 1.9 1995/11/21 14:56:01 bde Exp $";
/*******************************************************************************
- * II - Version 0.1 $Revision: 1.8 $ $State: Exp $
+ * II - Version 0.1 $Revision: 1.9 $ $State: Exp $
*
* Copyright 1994 Dietmar Friede
*******************************************************************************
@@ -10,6 +10,10 @@ static char nic38_id[] = "@(#)$Id: nic3008.c,v 1.8 1995/11/18 04:19:44 bde E
*
*******************************************************************************
* $Log: nic3008.c,v $
+ * Revision 1.9 1995/11/21 14:56:01 bde
+ * Completed function declarations, added prototypes and removed redundant
+ * declarations.
+ *
* Revision 1.8 1995/11/18 04:19:44 bde
* Fixed the type of nic_listen(). A trailing arg was missing.
*
@@ -63,7 +67,7 @@ static char nic38_id[] = "@(#)$Id: nic3008.c,v 1.8 1995/11/18 04:19:44 bde E
#include "ioctl.h"
#include "kernel.h"
#include "systm.h"
-#include "conf.h"
+#include <sys/conf.h>
#include <sys/proc.h>
#include "i386/isa/isa_device.h"
@@ -71,6 +75,14 @@ static char nic38_id[] = "@(#)$Id: nic3008.c,v 1.8 1995/11/18 04:19:44 bde E
#include "gnu/i386/isa/niccyreg.h"
#include "gnu/isdn/isdn_ioctl.h"
+#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 54
+#endif /*JREMOD*/
+
+
#define OPEN 1
#define LOAD_HEAD 3
#define LOAD_DATA 5
@@ -1206,4 +1218,37 @@ nicintr(int unit)
}
}
+
+#ifdef JREMOD
+struct cdevsw nic_cdevsw =
+ { nicopen, nicclose, noread, nowrite, /*54*/
+ nicioctl, nostop, nullreset, nodevtotty,/* nic */
+ seltrue, nommap, NULL };
+
+static nic_devsw_installed = 0;
+
+static void nic_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! nic_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&nic_cdevsw,NULL);
+ nic_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*/
+ "/", "nic", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(nicdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,nic_drvinit,NULL)
+
+#endif /* JREMOD */
+
#endif /* NNIC > 0 */
diff --git a/sys/gnu/i386/isa/nic3009.c b/sys/gnu/i386/isa/nic3009.c
index 9793ebe..083d50f 100644
--- a/sys/gnu/i386/isa/nic3009.c
+++ b/sys/gnu/i386/isa/nic3009.c
@@ -1,6 +1,6 @@
-static char nic39_id[] = "@(#)$Id: nic3009.c,v 1.8 1995/09/19 18:54:42 bde Exp $";
+static char nic39_id[] = "@(#)$Id: nic3009.c,v 1.9 1995/11/21 14:56:02 bde Exp $";
/*******************************************************************************
- * II - Version 0.1 $Revision: 1.8 $ $State: Exp $
+ * II - Version 0.1 $Revision: 1.9 $ $State: Exp $
*
* Copyright 1994 Dietmar Friede
*******************************************************************************
@@ -10,6 +10,10 @@ static char nic39_id[] = "@(#)$Id: nic3009.c,v 1.8 1995/09/19 18:54:42 bde E
*
*******************************************************************************
* $Log: nic3009.c,v $
+ * Revision 1.9 1995/11/21 14:56:02 bde
+ * Completed function declarations, added prototypes and removed redundant
+ * declarations.
+ *
* Revision 1.8 1995/09/19 18:54:42 bde
* Fix benign type mismatches in isa interrupt handlers. Many returned int
* instead of void.
@@ -58,18 +62,25 @@ static char nic39_id[] = "@(#)$Id: nic3009.c,v 1.8 1995/09/19 18:54:42 bde E
#include "nnic.h"
#if NNNIC > 0
-#include "param.h"
-#include "ioctl.h"
-#include "kernel.h"
-#include "systm.h"
-#include "conf.h"
-#include "proc.h"
+#include <sys/param.h>
+#include <sys/ioctl.h>
+#include <sys/kernel.h>
+#include <sys/systm.h>
+#include <sys/conf.h>
+#include <sys/proc.h>
#include "i386/isa/isa_device.h"
#include "gnu/i386/isa/nic3009.h"
#include "gnu/i386/isa/niccyreg.h"
#include "gnu/isdn/isdn_ioctl.h"
+#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 60
+#endif /*JREMOD*/
+
#define OPEN 1
#define LOAD_HEAD 3
#define LOAD_DATA 5
@@ -1270,4 +1281,37 @@ nnicintr(int unit)
timeout(nnnicintr, (void *)unit,1);
}
+
+#ifdef JREMOD
+struct cdevsw nnic_cdevsw =
+ { nnicopen, nnicclose, noread, nowrite, /*60*/
+ nnicioctl, nostop, nullreset, nodevtotty,/* nnic */
+ seltrue, nommap, NULL };
+
+static nnic_devsw_installed = 0;
+
+static void nnic_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! nnic_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&nnic_cdevsw,NULL);
+ nnic_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*/
+ "/", "nnic", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(nnicdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,nnic_drvinit,NULL)
+
+#endif /* JREMOD */
+
#endif /* NNNIC > 0 */
diff --git a/sys/gnu/isdn/iispy.c b/sys/gnu/isdn/iispy.c
index 6acaf61..50a9a79 100644
--- a/sys/gnu/isdn/iispy.c
+++ b/sys/gnu/isdn/iispy.c
@@ -1,6 +1,6 @@
-static char _ispyid[] = "@(#)$Id: iispy.c,v 1.3 1995/03/28 07:54:40 bde Exp $";
+static char _ispyid[] = "@(#)$Id: iispy.c,v 1.4 1995/09/08 11:06:56 bde Exp $";
/*******************************************************************************
- * II - Version 0.1 $Revision: 1.3 $ $State: Exp $
+ * II - Version 0.1 $Revision: 1.4 $ $State: Exp $
*
* Copyright 1994 Dietmar Friede
*******************************************************************************
@@ -10,6 +10,10 @@ static char _ispyid[] = "@(#)$Id: iispy.c,v 1.3 1995/03/28 07:54:40 bde Exp
*
*******************************************************************************
* $Log: iispy.c,v $
+ * Revision 1.4 1995/09/08 11:06:56 bde
+ * Fix benign type mismatches in devsw functions. 82 out of 299 devsw
+ * functions were wrong.
+ *
* Revision 1.3 1995/03/28 07:54:40 bde
* Add and move declarations to fix all of the warnings from `gcc -Wimplicit'
* (except in netccitt, netiso and netns) that I didn't notice when I fixed
@@ -41,11 +45,19 @@ static char _ispyid[] = "@(#)$Id: iispy.c,v 1.3 1995/03/28 07:54:40 bde Exp
#include "proc.h"
#include "user.h"
#include "uio.h"
-#include "kernel.h"
+#include <sys/kernel.h>
/*#include "malloc.h"*/
#include "gnu/isdn/isdn_ioctl.h"
+#ifdef JREMOD
+#include <sys/conf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 59
+#endif /*JREMOD*/
+
int nispy = NISPY;
int ispy_applnr;
static int next_if =0;
@@ -180,4 +192,36 @@ ispyread(dev_t dev, struct uio * uio, int ioflag)
return error;
}
+#ifdef JREMOD
+struct cdevsw ispy_cdevsw =
+ { ispyopen, ispyclose, ispyread, nowrite, /*59*/
+ ispyioctl, nostop, nullreset, nodevtotty,/* ispy */
+ seltrue, nommap, NULL };
+
+static ispy_devsw_installed = 0;
+
+static void ispy_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! ispy_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&ispy_cdevsw,NULL);
+ ispy_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*/
+ "/", "ispy", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(ispydev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,ispy_drvinit,NULL)
+
+#endif /* JREMOD */
+
#endif
diff --git a/sys/gnu/isdn/iitel.c b/sys/gnu/isdn/iitel.c
index 5cc1d59..a714f38 100644
--- a/sys/gnu/isdn/iitel.c
+++ b/sys/gnu/isdn/iitel.c
@@ -1,6 +1,6 @@
-static char _itelid[] = "@(#)$Id: iitel.c,v 1.5 1995/09/08 11:06:57 bde Exp $";
+static char _itelid[] = "@(#)$Id: iitel.c,v 1.6 1995/11/16 10:22:29 bde Exp $";
/*******************************************************************************
- * II - Version 0.1 $Revision: 1.5 $ $State: Exp $
+ * II - Version 0.1 $Revision: 1.6 $ $State: Exp $
*
* Copyright 1994 Dietmar Friede
*******************************************************************************
@@ -10,6 +10,13 @@ static char _itelid[] = "@(#)$Id: iitel.c,v 1.5 1995/09/08 11:06:57 bde Exp
*
*******************************************************************************
* $Log: iitel.c,v $
+ * Revision 1.6 1995/11/16 10:22:29 bde
+ * Fixed the type of itel_input(). A trailing arg was missing.
+ *
+ * Included "conf.h" to get some prototypes.
+ *
+ * Removed some useless includes.
+ *
* Revision 1.5 1995/09/08 11:06:57 bde
* Fix benign type mismatches in devsw functions. 82 out of 299 devsw
* functions were wrong.
@@ -41,18 +48,25 @@ static char _itelid[] = "@(#)$Id: iitel.c,v 1.5 1995/09/08 11:06:57 bde Exp
#include "itel.h"
#if NITEL > 0
-#include "param.h"
-#include "buf.h"
-#include "systm.h"
-#include "conf.h"
-#include "ioctl.h"
-#include "proc.h"
-#include "uio.h"
-#include "kernel.h"
-#include "malloc.h"
+#include <sys/param.h>
+#include <sys/buf.h>
+#include <sys/systm.h>
+#include <sys/conf.h>
+#include <sys/ioctl.h>
+#include <sys/proc.h>
+#include <sys/uio.h>
+#include <sys/kernel.h>
+#include <sys/malloc.h>
#include "gnu/isdn/isdn_ioctl.h"
+#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 57
+#endif /*JREMOD*/
+
int nitel = NITEL;
static int applnr[NITEL];
static int next_if =0;
@@ -250,4 +264,42 @@ itelwrite(dev_t dev, struct uio * uio, int ioflag)
return error;
}
+#ifdef JREMOD
+struct cdevsw itel_cdevsw =
+ { itelopen, itelclose, itelread, itelwrite, /*57*/
+ itelioctl, nostop, nullreset, nodevtotty,/* itel */
+ seltrue, nommap, NULL };
+
+static itel_devsw_installed = 0;
+
+static void itel_drvinit(void *unused)
+{
+ dev_t dev;
+ dev_t dev_chr;
+
+ if( ! itel_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&itel_cdevsw,NULL);
+ dev_chr = dev;
+#if defined(BDEV_MAJOR)
+ dev = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&dev,&itel_bdevsw,NULL);
+#endif /*BDEV_MAJOR*/
+ itel_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*/
+ "/", "itel", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(iteldev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,itel_drvinit,NULL)
+
+#endif /* JREMOD */
+
#endif
diff --git a/sys/gnu/isdn/iitty.c b/sys/gnu/isdn/iitty.c
index 5ad2b08..bd39e83 100644
--- a/sys/gnu/isdn/iitty.c
+++ b/sys/gnu/isdn/iitty.c
@@ -1,6 +1,6 @@
-static char _ittyid[] = "@(#)$Id: iitty.c,v 1.11 1995/07/31 21:28:42 bde Exp $";
+static char _ittyid[] = "@(#)$Id: iitty.c,v 1.12 1995/11/16 10:35:29 bde Exp $";
/*******************************************************************************
- * II - Version 0.1 $Revision: 1.11 $ $State: Exp $
+ * II - Version 0.1 $Revision: 1.12 $ $State: Exp $
*
* Copyright 1994 Dietmar Friede
*******************************************************************************
@@ -10,6 +10,15 @@ static char _ittyid[] = "@(#)$Id: iitty.c,v 1.11 1995/07/31 21:28:42 bde Exp
*
*******************************************************************************
* $Log: iitty.c,v $
+ * Revision 1.12 1995/11/16 10:35:29 bde
+ * Fixed the type of ity_input(). A trailing arg was missing.
+ *
+ * Completed function declarations.
+ *
+ * Added prototypes.
+ *
+ * Removed some useless includes.
+ *
* Revision 1.11 1995/07/31 21:28:42 bde
* Use tsleep() instead of ttysleep() to wait for carrier since a generation
* change isn't an error.
@@ -141,21 +150,28 @@ static char _ittyid[] = "@(#)$Id: iitty.c,v 1.11 1995/07/31 21:28:42 bde Exp
#include "ity.h"
#if NITY > 0
-#include "param.h"
-#include "systm.h"
-#include "conf.h"
-#include "ioctl.h"
-#include "select.h"
-#include "tty.h"
-#include "proc.h"
-#include "file.h"
-#include "uio.h"
-#include "kernel.h"
-#include "syslog.h"
-#include "types.h"
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/conf.h>
+#include <sys/ioctl.h>
+#include <sys/select.h>
+#include <sys/tty.h>
+#include <sys/proc.h>
+#include <sys/file.h>
+#include <sys/uio.h>
+#include <sys/kernel.h>
+#include <sys/syslog.h>
+#include <sys/types.h>
#include "gnu/isdn/isdn_ioctl.h"
+#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 56
+#endif /*JREMOD*/
+
extern int ityparam __P((struct tty *tp, struct termios *t));
extern void itystart __P((struct tty *tp));
@@ -442,4 +458,36 @@ itydevtotty(dev_t dev)
return (&ity_tty[unit]);
}
+#ifdef JREMOD
+struct cdevsw ity_cdevsw =
+ { ityopen, ityclose, ityread, itywrite, /*56*/
+ ityioctl, nostop, nxreset, itydevtotty,/* ity */
+ ttselect, nommap, NULL };
+
+static ity_devsw_installed = 0;
+
+static void ity_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! ity_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&ity_cdevsw,NULL);
+ ity_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*/
+ "/", "ity", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(itydev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,ity_drvinit,NULL)
+
+#endif /* JREMOD */
+
#endif
diff --git a/sys/gnu/isdn/isdn.c b/sys/gnu/isdn/isdn.c
index c653627..9338a5e 100644
--- a/sys/gnu/isdn/isdn.c
+++ b/sys/gnu/isdn/isdn.c
@@ -1,6 +1,6 @@
-static char _isdnid[] = "@(#)$Id: isdn.c,v 1.5 1995/09/08 11:06:58 bde Exp $";
+static char _isdnid[] = "@(#)$Id: isdn.c,v 1.6 1995/11/16 10:47:21 bde Exp $";
/*******************************************************************************
- * II - Version 0.1 $Revision: 1.5 $ $State: Exp $
+ * II - Version 0.1 $Revision: 1.6 $ $State: Exp $
*
* Copyright 1994 Dietmar Friede
*******************************************************************************
@@ -10,6 +10,19 @@ static char _isdnid[] = "@(#)$Id: isdn.c,v 1.5 1995/09/08 11:06:58 bde Exp $
*
*******************************************************************************
* $Log: isdn.c,v $
+ * Revision 1.6 1995/11/16 10:47:21 bde
+ * Fixed a call to the listen function. A trailing arg was missing.
+ *
+ * Fixed the type of isdn_check(). A trailing arg was missing.
+ *
+ * Included "conf.h" to get some prototypes.
+ *
+ * Completed function declarations.
+ *
+ * Added prototypes.
+ *
+ * Removed some useless includes.
+ *
* Revision 1.5 1995/09/08 11:06:58 bde
* Fix benign type mismatches in devsw functions. 82 out of 299 devsw
* functions were wrong.
@@ -55,15 +68,22 @@ static char _isdnid[] = "@(#)$Id: isdn.c,v 1.5 1995/09/08 11:06:58 bde Exp $
#define TYPNR 4
#define N_ISDN_APPL (NII + NITY + NITEL + NISPY)
-#include "param.h"
-#include "ioctl.h"
-#include "kernel.h"
-#include "systm.h"
-#include "conf.h"
-#include "proc.h"
+#include <sys/param.h>
+#include <sys/ioctl.h>
+#include <sys/kernel.h>
+#include <sys/systm.h>
+#include <sys/conf.h>
+#include <sys/proc.h>
#include "gnu/isdn/isdn_ioctl.h"
+#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 55
+#endif /*JREMOD*/
+
isdn_appl_t isdn_appl[N_ISDN_APPL];
isdn_ctrl_t isdn_ctrl[N_ISDN_CTRL];
int Isdn_Appl, Isdn_Ctrl, Isdn_Typ;
@@ -647,4 +667,36 @@ passout(int unit, int l, char *buf)
splx(x);
}
+#ifdef JREMOD
+struct cdevsw isdn_cdevsw =
+ { isdnopen, isdnclose, isdnread, nowrite, /*55*/
+ isdnioctl, nostop, nullreset, nodevtotty,/* isdn */
+ seltrue, nommap, NULL };
+
+static isdn_devsw_installed = 0;
+
+static void isdn_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! isdn_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&isdn_cdevsw,NULL);
+ isdn_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*/
+ "/", "isdn", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(isdndev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,isdn_drvinit,NULL)
+
+#endif /* JREMOD */
+
#endif /* NISDN > 0 */
diff --git a/sys/i386/apm/apm.c b/sys/i386/apm/apm.c
index 8543a18..2b286b4 100644
--- a/sys/i386/apm/apm.c
+++ b/sys/i386/apm/apm.c
@@ -13,7 +13,7 @@
*
* Sep, 1994 Implemented on FreeBSD 1.1.5.1R (Toshiba AVS001WD)
*
- * $Id: apm.c,v 1.15 1995/11/18 04:37:23 bde Exp $
+ * $Id: apm.c,v 1.16 1995/11/28 09:44:42 julian Exp $
*/
#include "apm.h"
@@ -25,6 +25,10 @@
#include "conf.h"
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#endif /*JREMOD*/
#include <sys/kernel.h>
#include <sys/systm.h>
@@ -104,7 +108,6 @@ extern void fix_desc(struct fake_descriptor *, int);
static timeout_t apm_timeout;
#ifdef JREMOD
#define CDEV_MAJOR 39
-static void apm_devsw_install();
#endif /* JREMOD */
#endif /* __FreeBSD__ */
#ifdef MACH_KERNEL
@@ -690,11 +693,6 @@ int
printf("apm%d: 32-bit connection error.\n", unit);
return 0;
}
-#ifdef __FreeBSD__
-#ifdef JREMOD
- apm_devsw_install();
-#endif /*JREMOD*/
-#endif /* __FreeBSD__ */
return -1;
}
@@ -981,6 +979,8 @@ apmioctl(dev_t dev, int cmd, caddr_t addr, int flag, struct proc *p)
}
return error;
}
+
+
#ifdef JREMOD
struct cdevsw apm_cdevsw =
{ apmopen, apmclose, noread, nowrite, /*39*/
@@ -989,20 +989,31 @@ struct cdevsw apm_cdevsw =
static apm_devsw_installed = 0;
-static void apm_devsw_install()
+static void apm_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! apm_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0)
- cdevsw_add(&descript,&apm_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0)
- bdevsw_add(&descript,&apm_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&apm_cdevsw,NULL);
apm_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*/
+ "/", "apm", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
}
+
+SYSINIT(apmdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,apm_drvinit,NULL)
+
#endif /* JREMOD */
+
+
#endif /* __FreeBSD__ */
#ifdef MACH_KERNEL
diff --git a/sys/i386/bios/apm.c b/sys/i386/bios/apm.c
index 8543a18..2b286b4 100644
--- a/sys/i386/bios/apm.c
+++ b/sys/i386/bios/apm.c
@@ -13,7 +13,7 @@
*
* Sep, 1994 Implemented on FreeBSD 1.1.5.1R (Toshiba AVS001WD)
*
- * $Id: apm.c,v 1.15 1995/11/18 04:37:23 bde Exp $
+ * $Id: apm.c,v 1.16 1995/11/28 09:44:42 julian Exp $
*/
#include "apm.h"
@@ -25,6 +25,10 @@
#include "conf.h"
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#endif /*JREMOD*/
#include <sys/kernel.h>
#include <sys/systm.h>
@@ -104,7 +108,6 @@ extern void fix_desc(struct fake_descriptor *, int);
static timeout_t apm_timeout;
#ifdef JREMOD
#define CDEV_MAJOR 39
-static void apm_devsw_install();
#endif /* JREMOD */
#endif /* __FreeBSD__ */
#ifdef MACH_KERNEL
@@ -690,11 +693,6 @@ int
printf("apm%d: 32-bit connection error.\n", unit);
return 0;
}
-#ifdef __FreeBSD__
-#ifdef JREMOD
- apm_devsw_install();
-#endif /*JREMOD*/
-#endif /* __FreeBSD__ */
return -1;
}
@@ -981,6 +979,8 @@ apmioctl(dev_t dev, int cmd, caddr_t addr, int flag, struct proc *p)
}
return error;
}
+
+
#ifdef JREMOD
struct cdevsw apm_cdevsw =
{ apmopen, apmclose, noread, nowrite, /*39*/
@@ -989,20 +989,31 @@ struct cdevsw apm_cdevsw =
static apm_devsw_installed = 0;
-static void apm_devsw_install()
+static void apm_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! apm_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0)
- cdevsw_add(&descript,&apm_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0)
- bdevsw_add(&descript,&apm_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&apm_cdevsw,NULL);
apm_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*/
+ "/", "apm", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
}
+
+SYSINIT(apmdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,apm_drvinit,NULL)
+
#endif /* JREMOD */
+
+
#endif /* __FreeBSD__ */
#ifdef MACH_KERNEL
diff --git a/sys/i386/i386/cons.c b/sys/i386/i386/cons.c
index 0b509594..9b8735d 100644
--- a/sys/i386/i386/cons.c
+++ b/sys/i386/i386/cons.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)cons.c 7.2 (Berkeley) 5/9/91
- * $Id: cons.c,v 1.33 1995/09/10 18:57:25 bde Exp $
+ * $Id: cons.c,v 1.34 1995/09/10 21:34:49 bde Exp $
*/
#include <sys/param.h>
@@ -48,6 +48,14 @@
#include <machine/cons.h>
#include <machine/stdarg.h>
+#ifdef JREMOD
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 0
+#endif /*JREMOD*/
+
/* XXX this should be config(8)ed. */
#include "sc.h"
#include "vt.h"
@@ -79,23 +87,6 @@ static d_open_t *cn_phys_open; /* physical device open function */
static struct consdev *cn_tab; /* physical console device info */
static struct tty *cn_tp; /* physical console tty struct */
-#ifdef DEVFS
-#include <sys/kernel.h>
-#include <sys/devfsext.h>
-
-static void cndev_init __P((void *));
-SYSINIT(cndev, SI_SUB_DEVFS, SI_ORDER_ANY, cndev_init, NULL)
-
-static void
-cndev_init(dummy)
- void *dummy;
-{
- void * x;
-/* path name devsw minor type uid gid perm*/
- x=dev_add("/misc", "console", cnopen, 0, DV_CHR, 0, 0, 0640);
-}
-#endif /* DEVFS */
-
void
cninit()
{
@@ -322,3 +313,30 @@ pg(const char *p, ...) {
}
+#ifdef JREMOD
+struct cdevsw cn_cdevsw =
+ { cnopen, cnclose, cnread, cnwrite, /*0*/
+ cnioctl, nullstop, nullreset, nodevtotty,/* console */
+ cnselect, nommap, NULL };
+
+static cn_devsw_installed = 0;
+
+static void cn_drvinit(void *unused)
+{
+ void * x;
+ dev_t dev;
+
+ if( ! cn_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&cn_cdevsw,NULL);
+ cn_devsw_installed = 1;
+#ifdef DEVFS
+ /* path,name,major,minor,type,uid,gid,perm */
+ x=devfs_add_devsw("/","console",major(dev),0,DV_CHR,0,0,0640);
+#endif
+}
+
+SYSINIT(cndev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,cn_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/i386/i386/mem.c b/sys/i386/i386/mem.c
index 54db6cd..a0a4f07 100644
--- a/sys/i386/i386/mem.c
+++ b/sys/i386/i386/mem.c
@@ -38,7 +38,7 @@
*
* from: Utah $Hdr: mem.c 1.13 89/10/08$
* from: @(#)mem.c 7.2 (Berkeley) 5/9/91
- * $Id: mem.c,v 1.18 1995/11/04 13:52:30 bde Exp $
+ * $Id: mem.c,v 1.19 1995/11/04 16:00:25 markm Exp $
*/
/*
@@ -63,26 +63,27 @@
#include <vm/vm_prot.h>
#include <vm/pmap.h>
+#ifdef JREMOD
+#include <sys/kernel.h>
+#define CDEV_MAJOR 2
+#endif /*JREMOD*/
+
#ifdef DEVFS
#include <sys/devfsext.h>
-#include "sys/kernel.h"
-
-static void memdev_init __P((void *));
-SYSINIT(memdev,SI_SUB_DEVFS, SI_ORDER_ANY, memdev_init, NULL)
static void
-memdev_init(dummy)
- void *dummy;
+memdevfs_init(dev_t dev)
{
void * x;
-/* path name devsw minor type uid gid perm*/
- x=dev_add("/misc", "mem", mmopen, 0, DV_CHR, 0, 2, 0640);
- x=dev_add("/misc", "kmem", mmopen, 1, DV_CHR, 0, 2, 0640);
- x=dev_add("/misc", "null", mmopen, 2, DV_CHR, 0, 0, 0666);
- x=dev_add("/misc", "random", mmopen, 3, DV_CHR, 0, 0, 0666);
- x=dev_add("/misc", "urandom", mmopen, 4, DV_CHR, 0, 0, 0666);
- x=dev_add("/misc", "zero", mmopen, 12, DV_CHR, 0, 0, 0666);
- x=dev_add("/misc", "io", mmopen, 14, DV_CHR, 0, 2, 0640);
+ int maj = major(dev);
+/* path name major minor type uid gid perm*/
+ x=devfs_add_devsw("/misc", "mem", maj, 0, DV_CHR, 0, 2, 0640);
+ x=devfs_add_devsw("/misc", "kmem", maj, 1, DV_CHR, 0, 2, 0640);
+ x=devfs_add_devsw("/misc", "null", maj, 2, DV_CHR, 0, 0, 0666);
+ x=devfs_add_devsw("/misc", "random", maj, 3, DV_CHR, 0, 0, 0666);
+ x=devfs_add_devsw("/misc", "urandom", maj, 4, DV_CHR, 0, 0, 0666);
+ x=devfs_add_devsw("/misc", "zero", maj, 12, DV_CHR, 0, 0, 0666);
+ x=devfs_add_devsw("/misc", "io", maj, 14, DV_CHR, 0, 2, 0640);
}
#endif /* DEVFS */
@@ -378,3 +379,31 @@ mmioctl(dev, cmd, cmdarg, flags, p)
}
return (0);
}
+
+
+
+#ifdef JREMOD
+struct cdevsw mem_cdevsw =
+ { mmopen, mmclose, mmrw, mmrw, /*2*/
+ mmioctl, nullstop, nullreset, nodevtotty,/* memory */
+ seltrue, memmmap, NULL };
+
+static mem_devsw_installed = 0;
+
+static void mem_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! mem_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&mem_cdevsw,NULL);
+ mem_devsw_installed = 1;
+#ifdef DEVFS
+ memdevfs_init(dev);
+#endif
+}
+
+SYSINIT(memdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,mem_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/i386/isa/asc.c b/sys/i386/isa/asc.c
index 18a02c2..cd28619 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.5 1995/09/08 19:01:28 julian Exp $
+ * $Id: asc.c,v 1.6 1995/11/28 09:40:39 julian Exp $
*/
#include "asc.h"
@@ -76,16 +76,15 @@
#include <i386/isa/isa.h>
#include <i386/isa/isa_device.h>
#include <i386/isa/ascreg.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-extern d_open_t ascopen;
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 71
-static void asc_devsw_install();
#endif /*JREMOD*/
-#endif
#endif /* FREEBSD_1_X */
@@ -434,11 +433,6 @@ ascprobe (struct isa_device *isdp)
scu->flags &= ~DEBUG;
scu->icnt = 0;
-
-#ifdef JREMOD
- asc_devsw_install();
-#endif /*JREMOD*/
-
return PROBE_SUCCESS;
}
@@ -869,6 +863,7 @@ ascselect(dev_t dev, int rw, struct proc *p)
return 0;
}
+
#ifdef JREMOD
struct cdevsw asc_cdevsw =
{ ascopen, ascclose, ascread, nowrite, /*71*/
@@ -877,18 +872,34 @@ struct cdevsw asc_cdevsw =
static asc_devsw_installed = 0;
-static void asc_devsw_install()
+static void asc_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+ dev_t dev_chr;
+
if( ! asc_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&asc_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&asc_cdevsw,NULL);
+ dev_chr = dev;
#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&asc_bdevsw,NULL);
+ 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 fd2910d..b59d9d7 100644
--- a/sys/i386/isa/b004.c
+++ b/sys/i386/isa/b004.c
@@ -62,8 +62,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 8
-static void bqu_devsw_install();
#endif /*JREMOD*/
static u_char d_inb(u_int port);
@@ -577,9 +580,6 @@ printf("bquprobe::\nIOBASE 0x%x\nIRQ %d\nDRQ %d\nMSIZE %d\nUNIT %d\nFLAGS x0%x\n
#ifndef DEV_LKM
bqu_registerdev(idp);
#endif /* not DEV_LKM */
-#ifdef JREMOD
- bqu_devsw_install();
-#endif /*JREMOD*/
for (test = 0; (test < B004_CHANCE); test++) {
@@ -635,6 +635,7 @@ printf("bquprobe::\nIOBASE 0x%x\nIRQ %d\nDRQ %d\nMSIZE %d\nUNIT %d\nFLAGS x0%x\n
return(20);
} /* bquprobe() */
+
#ifdef JREMOD
struct cdevsw bqu_cdevsw =
{ bquopen, bquclose, bquread, bquwrite, /*8*/
@@ -643,18 +644,28 @@ struct cdevsw bqu_cdevsw =
static bqu_devsw_installed = 0;
-static void bqu_devsw_install()
+static void bqu_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! bqu_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&bqu_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&bqu_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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/ctx.c b/sys/i386/isa/ctx.c
index c1edbf1..0684d3d 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.7 1995/09/08 11:07:34 bde Exp $
+ * $Id: ctx.c,v 1.8 1995/11/28 09:40:48 julian Exp $
*/
/*
@@ -128,9 +128,13 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 40
-static void ctx_devsw_install();
#endif /*JREMOD*/
+
int waitvb(short);
/* state flags */
@@ -191,9 +195,6 @@ ctxprobe(struct isa_device * devp)
status = 0;
else {
status = 1; /*XXX uses only one port? */
-#ifdef JREMOD
- ctx_devsw_install();
-#endif /*JREMOD*/
}
return (status);
}
@@ -448,6 +449,8 @@ waitvb(short port)
return (0);
}
+
+
#ifdef JREMOD
struct cdevsw ctx_cdevsw =
{ ctxopen, ctxclose, ctxread, ctxwrite, /*40*/
@@ -456,19 +459,28 @@ struct cdevsw ctx_cdevsw =
static ctx_devsw_installed = 0;
-static void ctx_devsw_install()
+static void ctx_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! ctx_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&ctx_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&ctx_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 a3f941e..3a606bc 100644
--- a/sys/i386/isa/cx.c
+++ b/sys/i386/isa/cx.c
@@ -41,7 +41,9 @@
# else /* BSD 4.4 Lite */
# ifdef JREMOD
# define CDEV_MAJOR 42
- void cx_devsw_install(); /* can't be static, needed in if_cx.c */
+# if defined(DEVFS)
+# include <sys/devfsext.h>
+# endif /*DEVFS*/
# endif /*JREMOD*/
# include <sys/devconf.h>
# endif
@@ -974,18 +976,28 @@ struct cdevsw cx_cdevsw =
static cx_devsw_installed = 0;
-void cx_devsw_install()
+static void cx_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! cx_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&cx_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&cx_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 /* NCX */
diff --git a/sys/i386/isa/cy.c b/sys/i386/isa/cy.c
index c2f3725..c4739ae 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.19 1995/11/26 17:13:23 bde Exp $
+ * $Id: cy.c,v 1.20 1995/11/28 09:40:56 julian Exp $
*/
#include "cy.h"
@@ -398,8 +398,10 @@ static int cy_nr_cd1400s[NCY];
static int volatile RxFifoThreshold = (CD1400_RX_FIFO_SIZE / 2);
#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 48
-static void cy_devsw_install();
#endif /*JREMOD*/
static struct kern_devconf kdc_sio[NCY] = { {
@@ -442,9 +444,6 @@ sioprobe(dev)
return (0);
cy_nr_cd1400s[unit] = 0;
sioregisterdev(dev);
-#ifdef JREMOD
- cy_devsw_install();
-#endif /*JREMOD*/
/* Cyclom-16Y hardware reset (Cyclom-8Ys don't care) */
@@ -2521,6 +2520,7 @@ cystatus(unit)
#endif /* CyDebug */
+
#ifdef JREMOD
struct cdevsw cy_cdevsw =
{ cyopen, cyclose, cyread, cywrite, /*48*/
@@ -2529,18 +2529,28 @@ struct cdevsw cy_cdevsw =
static cy_devsw_installed = 0;
-static void cy_devsw_install()
+static void cy_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! cy_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&cy_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&cy_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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/gpib.c b/sys/i386/isa/gpib.c
index 8cbb0b7..2e511bf 100644
--- a/sys/i386/isa/gpib.c
+++ b/sys/i386/isa/gpib.c
@@ -49,10 +49,14 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 44
-static void gp_devsw_install();
#endif /*JREMOD*/
+
int initgpib(void);
void closegpib(void);
int sendgpibfifo(unsigned char device,char *data,int count);
@@ -129,9 +133,6 @@ gpattach(isdp)
if (sc->sc_type==1)
printf ("gp%d: type AT-GPIB chip NAT4882A\n",sc->sc_unit);
sc->sc_flags |=ATTACHED;
-#ifdef JREMOD
- gp_devsw_install();
-#endif /*JREMOD*/
return (1);
}
@@ -1271,19 +1272,28 @@ struct cdevsw gp_cdevsw =
static gp_devsw_installed = 0;
-static void gp_devsw_install()
+static void gp_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! gp_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&gp_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&gp_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 7abe841..84a9aa0 100644
--- a/sys/i386/isa/gsc.c
+++ b/sys/i386/isa/gsc.c
@@ -59,9 +59,12 @@
***********************************************************************/
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 47
-static void gsc_devsw_install();
-#endif /*JREMOD*/ /* clean up later */
+#endif /*JREMOD*/
#define PROBE_FAIL 0
#define PROBE_SUCCESS 1
@@ -504,9 +507,6 @@ gscattach(struct isa_device *isdp)
scu->flags |= ATTACHED;
lprintf("gsc%d.attach: ok\n", unit);
scu->flags &= ~DEBUG;
-#ifdef JREMOD
- gsc_devsw_install();
-#endif /*JREMOD*/
return SUCCESS; /* attach must not fail */
}
@@ -790,18 +790,28 @@ struct cdevsw gsc_cdevsw =
static gsc_devsw_installed = 0;
-static void gsc_devsw_install()
+static void gsc_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! gsc_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&gsc_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&gsc_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 aff2fce..59e25ed 100644
--- a/sys/i386/isa/if_cx.c
+++ b/sys/i386/isa/if_cx.c
@@ -44,6 +44,10 @@
# if __FreeBSD__ < 2
# include <machine/pio.h>
# else
+# ifdef DEVFS
+# include <sys/devfsext.h>
+# endif /*DEVFS*/
+# define CDEV_MAJOR 42 /*XXX*/ /* replace with variable ASAP*/
# include <sys/devconf.h>
# endif
# define init_func_t void(*)(int)
@@ -220,7 +224,6 @@ static struct mbuf *makembuf (void *buf, unsigned len)
* Test the presence of the adapter on the given i/o port.
*/
#ifdef __FreeBSD__
-extern void cx_devsw_install();
int cxprobe (struct isa_device *id)
{
int unit = id->id_unit;
@@ -266,9 +269,6 @@ int cxprobe (struct device *parent, struct cfdata *cf, void *aux)
}
if (! cx_probe_board (iobase))
return (0);
-#ifdef JREMOD
- cx_devsw_install();
-#endif /*JREMOD*/
return (1);
}
@@ -373,6 +373,15 @@ void cxattach (struct device *parent, struct device *self, void *aux)
#endif
#ifdef __FreeBSD__
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) */
+ x=devfs_add_devsw(
+/* path name devsw minor type uid gid perm*/
+ "/", "cx", major(CDEV_MAJOR), 0, DV_CHR, 0, 0, 0600);
+ }
+#endif
return (1);
#endif
#ifdef __bsdi__
@@ -981,3 +990,5 @@ void cxswitch (cx_chan_t *c, cx_soft_opt_t new)
c->sopt = new;
}
#endif /* NCX */
+
+
diff --git a/sys/i386/isa/joy.c b/sys/i386/isa/joy.c
index 5870e62..e90e90f 100644
--- a/sys/i386/isa/joy.c
+++ b/sys/i386/isa/joy.c
@@ -43,8 +43,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 51
-static void joy_devsw_install();
#endif /*JREMOD*/
/* The game port can manage 4 buttons and 4 variable resistors (usually 2
@@ -105,10 +108,6 @@ joyattach (struct isa_device *dev)
joy[dev->id_unit].timeout[0] = joy[dev->id_unit].timeout[1] = 0;
printf("joy%d: joystick\n", dev->id_unit);
-#ifdef JREMOD
- joy_devsw_install();
-#endif /*JREMOD*/
-
return 1;
}
@@ -224,18 +223,28 @@ struct cdevsw joy_cdevsw =
static joy_devsw_installed = 0;
-static void joy_devsw_install()
+static void joy_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! joy_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&joy_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&joy_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 9d0cf7f..38e6c62 100644
--- a/sys/i386/isa/labpc.c
+++ b/sys/i386/isa/labpc.c
@@ -61,8 +61,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 66
-static void labpc_devsw_install();
#endif /*JREMOD*/
@@ -501,10 +504,6 @@ int labpcattach(struct isa_device *dev)
ctlr->dcr_val = 0x80;
ctlr->dcr_is = 0x80;
loutb(DCR(ctlr), ctlr->dcr_val);
-#ifdef JREMOD
- labpc_devsw_install();
-#endif /*JREMOD*/
-
return 1;
}
@@ -1116,17 +1115,27 @@ struct cdevsw labpc_cdevsw =
static labpc_devsw_installed = 0;
-static void labpc_devsw_install()
+static void labpc_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! labpc_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&labpc_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&labpc_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 67cbddb..cea3df6 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.39 1995/11/28 09:41:18 julian Exp $
+ * $Id: lpt.c,v 1.40 1995/11/29 10:17:03 phk Exp $
*/
/*
@@ -140,8 +140,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 16
-static void lpt_devsw_install();
#endif /*JREMOD*/
#define LPINITRDY 4 /* wait up to 4 seconds for a ready */
@@ -442,9 +445,6 @@ lptattach(struct isa_device *isdp)
lprintf("irq %x\n", sc->sc_irq);
kdc_lpt[isdp->id_unit].kdc_state = DC_IDLE;
-#ifdef JREMOD
- lpt_devsw_install();
-#endif /*JREMOD*/
return (1);
}
@@ -1160,17 +1160,27 @@ struct cdevsw lpt_cdevsw =
static lpt_devsw_installed = 0;
-static void lpt_devsw_install()
+static void lpt_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! lpt_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&lpt_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&lpt_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 03ae212..477b9d5 100644
--- a/sys/i386/isa/matcd/matcd.c
+++ b/sys/i386/isa/matcd/matcd.c
@@ -493,9 +493,12 @@ static struct kern_devconf kdc_matcd[TOTALDRIVES] = { { /*<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
-static void matcd_devsw_install();
#endif /*JREMOD */
#endif /*FREE2*/
@@ -1472,9 +1475,6 @@ int matcd_attach(struct isa_device *dev)
}
nextcontroller++; /*Bump ctlr assign to next number*/
printf("\n"); /*End line of drive reports*/
-#ifdef JREMOD
- matcd_devsw_install();
-#endif /*JREMOD*/
return(1);
}
@@ -2761,19 +2761,35 @@ struct cdevsw matcd_cdevsw =
static matcd_devsw_installed = 0;
-static void matcd_devsw_install()
+static void matcd_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+ dev_t dev_chr;
+
if( ! matcd_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&matcd_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&matcd_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 */
+
/*End of matcd.c*/
diff --git a/sys/i386/isa/mcd.c b/sys/i386/isa/mcd.c
index 0571a93..4ab0b9c 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.48 1995/11/04 13:23:35 bde Exp $
+ * $Id: mcd.c,v 1.49 1995/11/28 09:41:22 julian Exp $
*/
static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
@@ -71,9 +71,13 @@ static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
#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
-static void mcd_devsw_install();
#endif /*JREMOD */
#define MCD_TRACE(format, args...) \
@@ -262,10 +266,6 @@ int mcd_attach(struct isa_device *dev)
kdc_mcd[dev->id_unit].kdc_state = DC_IDLE;
/* name filled in probe */
kdc_mcd[dev->id_unit].kdc_description = mcd_data[dev->id_unit].name;
-#ifdef JREMOD
- mcd_devsw_install();
-#endif /*JREMOD*/
-
return 1;
}
@@ -1682,18 +1682,33 @@ struct cdevsw mcd_cdevsw =
static mcd_devsw_installed = 0;
-static void mcd_devsw_install()
+static void mcd_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+ dev_t dev_chr;
+
if( ! mcd_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&mcd_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&mcd_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 5499a2a..52195fb 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.15 1995/11/04 17:07:37 bde Exp $
+ * $Id: mse.c,v 1.16 1995/11/28 09:41:25 julian Exp $
*/
/*
* Driver for the Logitech and ATI Inport Bus mice for use with 386bsd and
@@ -63,8 +63,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 27
-static void mse_devsw_install();
#endif /*JREMOD*/
static int mseprobe(struct isa_device *);
@@ -239,9 +242,6 @@ mseattach(idp)
sc->sc_port = idp->id_iobase;
kdc_mse[idp->id_unit].kdc_state = DC_IDLE;
-#ifdef JREMOD
- mse_devsw_install();
-#endif /*JREMOD*/
return (1);
}
@@ -583,18 +583,28 @@ struct cdevsw mse_cdevsw =
static mse_devsw_installed = 0;
-static void mse_devsw_install()
+static void mse_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! mse_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&mse_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&mse_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 a6f006a..90fb125 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.17 1995/11/16 09:56:02 bde Exp $
+ * $Id: pcaudio.c,v 1.18 1995/11/28 09:41:27 julian Exp $
*/
#include "pca.h"
@@ -50,8 +50,12 @@
#include <i386/isa/sound/ulaw.h>
#ifdef JREMOD
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 24
-static void pca_devsw_install();
#endif /*JREMOD*/
#define BUF_SIZE 8192
@@ -247,14 +251,13 @@ pca_registerdev(struct isa_device *id)
}
#ifdef DEVFS
-#include <sys/devfsext.h>
-void pcadev_init(caddr_t data) /* data not used */
+void pcadevfs_init(caddr_t data) /* data not used */
{
void * x;
/* path name devsw minor type uid gid perm*/
- x=dev_add("/misc", "pcaudio", pcaopen, 0, DV_CHR, 0, 0, 0666);
- x=dev_add("/misc", "pcaudioctl", pcaopen, 128, DV_CHR, 0, 0, 0666);
+ 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*/
@@ -265,11 +268,8 @@ pcaattach(struct isa_device *dvp)
printf("pca%d: PC speaker audio driver\n", dvp->id_unit);
pca_init();
pca_registerdev(dvp);
-#ifdef JREMOD
- pca_devsw_install();
-#endif /*JREMOD*/
#ifdef DEVFS
- pcadev_init(NULL);
+ pcadevfs_init(NULL);
#endif /*DEVFS*/
return 1;
@@ -495,18 +495,19 @@ struct cdevsw pca_cdevsw =
static pca_devsw_installed = 0;
-static void pca_devsw_install()
+static void pca_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! pca_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&pca_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&pca_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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/psm.c b/sys/i386/isa/psm.c
index 14b35e4..81d492e 100644
--- a/sys/i386/isa/psm.c
+++ b/sys/i386/isa/psm.c
@@ -68,8 +68,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 21
-static void psm_devsw_install();
#endif /*JREMOD*/
#define DATA 0 /* Offset for data port, read-write */
@@ -204,10 +207,6 @@ int psmattach(struct isa_device *dvp)
sc->state = 0;
-#ifdef JREMOD
- psm_devsw_install();
-#endif /*JREMOD*/
-
/* Done */
return(0); /* XXX eh? usually 1 indicates success */
@@ -476,19 +475,28 @@ struct cdevsw psm_cdevsw =
static psm_devsw_installed = 0;
-static void psm_devsw_install()
+static void psm_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! psm_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&psm_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&psm_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 6203aff..e1d80cb 100644
--- a/sys/i386/isa/rc.c
+++ b/sys/i386/isa/rc.c
@@ -60,8 +60,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 63
-static void rc_devsw_install();
#endif /*JREMOD*/
/* Prototypes */
@@ -283,10 +286,6 @@ int rcattach(dvp)
rc_wakeup((void *)NULL);
rc_wakeup_started = 0;
}
-#ifdef JREMOD
- rc_devsw_install();
-#endif /*JREMOD*/
-
return 1;
}
@@ -1511,18 +1510,28 @@ struct cdevsw rc_cdevsw =
static rc_devsw_installed = 0;
-static void rc_devsw_install()
+static void rc_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! rc_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&rc_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&rc_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 7d4fdec..0e2a130 100644
--- a/sys/i386/isa/scd.c
+++ b/sys/i386/isa/scd.c
@@ -41,7 +41,7 @@
*/
-/* $Id: scd.c,v 1.9 1995/11/04 13:23:39 bde Exp $ */
+/* $Id: scd.c,v 1.10 1995/11/28 09:41:36 julian Exp $ */
/* Please send any comments to micke@dynas.se */
@@ -73,9 +73,12 @@
#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
-static void scd_devsw_install();
#endif /*JREMOD */
#define scd_part(dev) ((minor(dev)) & 7)
@@ -224,10 +227,6 @@ int scd_attach(struct isa_device *dev)
cd->flags = SCDINIT;
cd->audio_status = CD_AS_AUDIO_INVALID;
-#ifdef JREMOD
- scd_devsw_install();
-#endif /*JREMOD*/
-
return 1;
}
@@ -1529,6 +1528,7 @@ scd_toc_entrys (int unit, struct ioc_read_toc_entry *te)
return 0;
}
+
#ifdef JREMOD
struct bdevsw scd_bdevsw =
{ scdopen, scdclose, scdstrategy, scdioctl, /*16*/
@@ -1541,19 +1541,34 @@ struct cdevsw scd_cdevsw =
static scd_devsw_installed = 0;
-static void scd_devsw_install()
+static void scd_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+ dev_t dev_chr;
+
if( ! scd_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&scd_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&scd_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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);
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 93accc2..7b58916 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.16 1995/11/28 07:29:29 bde Exp $
+ * $Id: si.c,v 1.17 1995/11/28 09:41:39 julian Exp $
*/
#ifndef lint
@@ -82,8 +82,10 @@ 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
-static void si_devsw_install();
#endif /*JREMOD*/
@@ -657,9 +659,6 @@ mem_fail:
}
done_chartimes = 1;
}
-#ifdef JREMOD
- si_devsw_install();
-#endif /*JREMOD*/
return (1);
}
@@ -2309,18 +2308,34 @@ struct cdevsw si_cdevsw =
static si_devsw_installed = 0;
-static void si_devsw_install()
+static void si_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+ dev_t dev_chr;
+
if( ! si_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&si_cdevsw,NULL);
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&si_cdevsw,NULL);
+ dev_chr = dev;
#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&si_bdevsw,NULL);
+ dev = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&dev,&si_bdevsw,NULL);
#endif /*BDEV_MAJOR*/
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 */
+
#endif
diff --git a/sys/i386/isa/sio.c b/sys/i386/isa/sio.c
index b8aa9e2..7cabae4 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.119 1995/11/21 09:15:04 bde Exp $
+ * $Id: sio.c,v 1.120 1995/11/28 09:41:47 julian Exp $
*/
#include "sio.h"
@@ -97,8 +97,10 @@
#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
-static void sio_devsw_install();
#endif /*JREMOD*/
@@ -883,9 +885,6 @@ determined_type: ;
s = spltty();
com_addr(unit) = com;
splx(s);
-#ifdef JREMOD
- sio_devsw_install();
-#endif /*JREMOD*/
return (1);
}
@@ -2574,18 +2573,28 @@ struct cdevsw sio_cdevsw =
static sio_devsw_installed = 0;
-static void sio_devsw_install()
+static void sio_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! sio_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&sio_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&sio_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 d417c30..dd6fe32 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.31 1995/11/28 09:43:45 julian Exp $
+ * $Id: soundcard.c,v 1.32 1995/11/29 01:07:52 jkh Exp $
*/
#include "sound_config.h"
@@ -38,8 +38,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 30
-static void snd_devsw_install();
#endif /*JREMOD*/
@@ -352,10 +355,6 @@ sndattach (struct isa_device *dev)
}
#endif
-#ifdef JREMOD
- snd_devsw_install();
-#endif /*JREMOD*/
-
return TRUE;
}
@@ -484,6 +483,7 @@ snd_release_irq(int vect)
{
}
+#endif
#ifdef JREMOD
struct cdevsw snd_cdevsw =
{ sndopen, sndclose, sndread, sndwrite, /*30*/
@@ -492,18 +492,28 @@ struct cdevsw snd_cdevsw =
static snd_devsw_installed = 0;
-static void snd_devsw_install()
+static void snd_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! snd_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&snd_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&snd_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&snd_cdevsw,NULL);
+ dev_chr = dev;
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 093c30e..610c220 100644
--- a/sys/i386/isa/spigot.c
+++ b/sys/i386/isa/spigot.c
@@ -72,8 +72,10 @@ error "Can only have 1 spigot configured."
#ifdef JREMOD
#include <sys/conf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 11
-static void spigot_devsw_install();
#endif /*JREMOD*/
struct spigot_softc {
@@ -158,10 +160,6 @@ struct spigot_softc *ss=(struct spigot_softc *)&spigot_softc[devp->id_unit];
ss->maddr = kvtop(devp->id_maddr);
ss->irq = devp->id_irq;
-#ifdef JREMOD
- spigot_devsw_install();
-#endif /*JREMOD*/
-
return 1;
}
@@ -285,6 +283,7 @@ struct spigot_softc *ss = (struct spigot_softc *)&spigot_softc[0];
return i386_btop(ss->maddr);
}
+
#ifdef JREMOD
struct cdevsw spigot_cdevsw =
{ spigot_open, spigot_close, spigot_read, spigot_write, /*11*/
@@ -293,19 +292,28 @@ struct cdevsw spigot_cdevsw =
static spigot_devsw_installed = 0;
-static void spigot_devsw_install()
+static void spigot_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! spigot_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&spigot_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&spigot_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 050ba18..620ec9f 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.17 1995/09/09 18:09:55 davidg Exp $
+ * $Id: spkr.c,v 1.18 1995/11/28 09:41:55 julian Exp $
*/
#include "speaker.h"
@@ -26,31 +26,13 @@
#ifdef JREMOD
#include <sys/conf.h>
#define CDEV_MAJOR 26
-static void spkr_devsw_install();
#endif /*JREMOD*/
-#if defined(DEVFS) || defined(JREMOD)
-#include "sys/kernel.h"
#ifdef DEVFS
#include <sys/devfsext.h>
-int spkropen();
#endif
-void spkrdev_init(void *data) /* data not used */
-{
- void * x;
-#ifdef JREMOD
- spkr_devsw_install();
-#endif /*JREMOD*/
-#ifdef DEVFS
-/* path name devsw minor type uid gid perm*/
- x=dev_add("/misc", "speaker", spkropen, 0, DV_CHR, 0, 0, 0600);
-#endif
-
-}
-SYSINIT(spkrdev,SI_SUB_DEVFS, SI_ORDER_ANY, spkrdev_init, NULL)
-#endif /*DEVFS*/ /* JREMOD */
/**************** MACHINE DEPENDENT PART STARTS HERE *************************
*
@@ -595,19 +577,29 @@ struct cdevsw spkr_cdevsw =
static spkr_devsw_installed = 0;
-static void spkr_devsw_install()
+static void spkr_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! spkr_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&spkr_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&spkr_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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);
+ }
+ }
+#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/tw.c b/sys/i386/isa/tw.c
index 7b5dbcc..c672047 100644
--- a/sys/i386/isa/tw.c
+++ b/sys/i386/isa/tw.c
@@ -149,10 +149,14 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 19
-static void tw_devsw_install();
#endif /*JREMOD*/
+
/*
* Transmission is done by calling write() to send three byte packets of data.
* The first byte contains a four bit house code (0=A to 15=P).
@@ -348,9 +352,6 @@ int twattach(idp)
sc = &tw_sc[idp->id_unit];
sc->sc_port = idp->id_iobase;
sc->sc_state = 0;
-#ifdef JREMOD
- tw_devsw_install();
-#endif /*JREMOD*/
return (1);
}
@@ -999,19 +1000,28 @@ struct cdevsw tw_cdevsw =
static tw_devsw_installed = 0;
-static void tw_devsw_install()
+static void tw_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! tw_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&tw_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&tw_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 527d14a..bb7d4db 100644
--- a/sys/i386/isa/wcd.c
+++ b/sys/i386/isa/wcd.c
@@ -34,9 +34,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 69
#define BDEV_MAJOR 19
-static void wcd_devsw_install();
#endif /*JREMOD */
extern int wcdattach(struct atapi*, int, struct atapi_params*, int, struct kern_devconf*);
@@ -322,9 +324,6 @@ wcdattach (struct atapi *ata, int unit, struct atapi_params *ap, int debug,
strncpy (t->description + strlen(t->description),
ap->model, sizeof(ap->model));
dev_attach (&t->cf);
-#ifdef JREMOD
- wcd_devsw_install();
-#endif /*JREMOD*/
return (1);
}
@@ -1182,19 +1181,35 @@ struct cdevsw wcd_cdevsw =
static wcd_devsw_installed = 0;
-static void wcd_devsw_install()
+static void wcd_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+ dev_t dev_chr;
+
if( ! wcd_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&wcd_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&wcd_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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);
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 1b00118..f55eab6 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.92 1995/11/23 07:24:41 dyson Exp $
+ * $Id: wd.c,v 1.93 1995/11/28 09:42:03 julian Exp $
*/
/* TODO:
@@ -106,9 +106,11 @@ extern void wdstart(int ctrlr);
#define WDOPT_MULTIMASK 0x00ff
#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 3
#define BDEV_MAJOR 0
-static void wd_devsw_install();
#endif /*JREMOD */
static int wd_goaway(struct kern_devconf *, int);
@@ -320,10 +322,6 @@ wdprobe(struct isa_device *dvp)
du->dk_port = dvp->id_iobase;
wdc_registerdev(dvp);
-#ifdef JREMOD
- wd_devsw_install();
-#endif /*JREMOD*/
-
/* check if we have registers that work */
outb(du->dk_port + wd_sdh, WDSD_IBM); /* set unit 0 */
@@ -2138,18 +2136,34 @@ struct cdevsw wd_cdevsw =
static wd_devsw_installed = 0;
-static void wd_devsw_install()
+static void wd_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+ dev_t dev_chr;
+
if( ! wd_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&wd_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&wd_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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 8a4e609d..6420f4c 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.20 1995/10/28 15:39:31 phk Exp $
+ * $Id: wt.c,v 1.21 1995/11/28 09:42:06 julian Exp $
*
*/
@@ -78,9 +78,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 10
#define BDEV_MAJOR 3
-static void wt_devsw_install();
#endif /*JREMOD */
/*
@@ -268,9 +270,6 @@ wtattach (struct isa_device *id)
t->flags = TPSTART; /* tape is rewound */
t->dens = -1; /* unknown density */
kdc_wt[id->id_unit].kdc_state = DC_IDLE;
-#ifdef JREMOD
- wt_devsw_install();
-#endif /*JREMOD*/
return (1);
}
@@ -975,6 +974,7 @@ static int wtstatus (wtinfo_t *t)
return (1);
}
+
#ifdef JREMOD
struct bdevsw wt_bdevsw =
{ wtopen, wtclose, wtstrategy, wtioctl, /*3*/
@@ -987,19 +987,34 @@ struct cdevsw wt_cdevsw =
static wt_devsw_installed = 0;
-static void wt_devsw_install()
+static void wt_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+ dev_t dev_chr;
+
if( ! wt_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&wt_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&wt_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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);
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 */
diff --git a/sys/isa/joy.c b/sys/isa/joy.c
index 5870e62..e90e90f 100644
--- a/sys/isa/joy.c
+++ b/sys/isa/joy.c
@@ -43,8 +43,11 @@
#ifdef JREMOD
#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
#define CDEV_MAJOR 51
-static void joy_devsw_install();
#endif /*JREMOD*/
/* The game port can manage 4 buttons and 4 variable resistors (usually 2
@@ -105,10 +108,6 @@ joyattach (struct isa_device *dev)
joy[dev->id_unit].timeout[0] = joy[dev->id_unit].timeout[1] = 0;
printf("joy%d: joystick\n", dev->id_unit);
-#ifdef JREMOD
- joy_devsw_install();
-#endif /*JREMOD*/
-
return 1;
}
@@ -224,18 +223,28 @@ struct cdevsw joy_cdevsw =
static joy_devsw_installed = 0;
-static void joy_devsw_install()
+static void joy_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! joy_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&joy_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&joy_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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/isa/sio.c b/sys/isa/sio.c
index b8aa9e2..7cabae4 100644
--- a/sys/isa/sio.c
+++ b/sys/isa/sio.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
- * $Id: sio.c,v 1.119 1995/11/21 09:15:04 bde Exp $
+ * $Id: sio.c,v 1.120 1995/11/28 09:41:47 julian Exp $
*/
#include "sio.h"
@@ -97,8 +97,10 @@
#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
-static void sio_devsw_install();
#endif /*JREMOD*/
@@ -883,9 +885,6 @@ determined_type: ;
s = spltty();
com_addr(unit) = com;
splx(s);
-#ifdef JREMOD
- sio_devsw_install();
-#endif /*JREMOD*/
return (1);
}
@@ -2574,18 +2573,28 @@ struct cdevsw sio_cdevsw =
static sio_devsw_installed = 0;
-static void sio_devsw_install()
+static void sio_drvinit(void *unused)
{
- dev_t descript;
+ dev_t dev;
+
if( ! sio_devsw_installed ) {
- descript = makedev(CDEV_MAJOR,0);
- cdevsw_add(&descript,&sio_cdevsw,NULL);
-#if defined(BDEV_MAJOR)
- descript = makedev(BDEV_MAJOR,0);
- bdevsw_add(&descript,&sio_bdevsw,NULL);
-#endif /*BDEV_MAJOR*/
+ 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/kern/kern_descrip.c b/sys/kern/kern_descrip.c
index 4912d73..f1f5557 100644
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)kern_descrip.c 8.6 (Berkeley) 4/19/94
- * $Id: kern_descrip.c,v 1.13 1995/11/12 06:42:52 bde Exp $
+ * $Id: kern_descrip.c,v 1.14 1995/11/14 08:58:35 phk Exp $
*/
#include <sys/param.h>
@@ -57,6 +57,14 @@
#include <sys/unistd.h>
#include <sys/resourcevar.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 22
+#endif /*JREMOD*/
+
int finishdup(struct filedesc *fdp, int old, int new, int *retval);
/*
* Descriptor management.
@@ -1013,6 +1021,43 @@ sysctl_kern_file SYSCTL_HANDLER_ARGS
}
return (0);
}
+#ifdef JREMOD
+struct cdevsw fildesc_cdevsw =
+ { fdopen, noclose, noread, nowrite, /*22*/
+ noioc, nostop, nullreset, nodevtotty,/*fd(!=Fd)*/
+ noselect, nommap, nostrat };
+
+static fildesc_devsw_installed = 0;
+
+static void fildesc_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! fildesc_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&fildesc_cdevsw,NULL);
+ fildesc_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*/
+ x=devfs_add_devsw("/","stdin",major(dev),0,DV_CHR,
+ 0, 0, 0600);
+ x=devfs_add_devsw("/","stdout",major(dev),1,DV_CHR,
+ 0, 0, 0600);
+ x=devfs_add_devsw("/","stderr",major(dev),2,DV_CHR,
+ 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(fildescdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,
+ fildesc_drvinit,NULL)
+
+#endif /* JREMOD */
+
SYSCTL_PROC(_kern, KERN_FILE, file, CTLTYPE_OPAQUE|CTLFLAG_RD,
0, 0, sysctl_kern_file, "");
diff --git a/sys/kern/kern_lkm.c b/sys/kern/kern_lkm.c
index ad78d28..902ed4c 100644
--- a/sys/kern/kern_lkm.c
+++ b/sys/kern/kern_lkm.c
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: kern_lkm.c,v 1.18 1995/11/09 09:43:32 bde Exp $
+ * $Id: kern_lkm.c,v 1.19 1995/11/20 12:06:21 phk Exp $
*/
/*
@@ -61,6 +61,13 @@
#include <vm/vm_param.h>
#include <vm/vm_kern.h>
+#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 32
+#endif /*JREMOD */
+
#define PAGESIZE 1024 /* kmem_alloc() allocation quantum */
#define LKM_ALLOC 0x01
@@ -993,3 +1000,36 @@ lkm_nullcmd(lkmtp, cmd)
return (0);
}
+
+#ifdef JREMOD
+struct cdevsw lkm_cdevsw =
+ { lkmcopen, lkmcclose, noread, nowrite, /*32*/
+ lkmcioctl, nostop, nullreset, nodevtotty,
+ noselect, nommap, NULL };
+
+static lkm_devsw_installed = 0;
+
+static void lkm_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! lkm_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&lkm_cdevsw,NULL);
+ lkm_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*/
+ "/", "lkm", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(lkmdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,lkm_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/kern/subr_log.c b/sys/kern/subr_log.c
index a2e2d47..0b9d5da 100644
--- a/sys/kern/subr_log.c
+++ b/sys/kern/subr_log.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)subr_log.c 8.1 (Berkeley) 6/10/93
- * $Id: subr_log.c,v 1.9 1995/08/07 07:58:17 davidg Exp $
+ * $Id: subr_log.c,v 1.10 1995/10/29 15:30:59 phk Exp $
*/
/*
@@ -47,6 +47,15 @@
#include <sys/file.h>
#include <sys/signalvar.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 7
+#endif /*JREMOD*/
+
#define LOG_RDPRI (PZERO + 1)
#define LOG_ASYNC 0x04
@@ -223,3 +232,36 @@ logioctl(dev, com, data, flag, p)
}
return (0);
}
+
+#ifdef JREMOD
+struct cdevsw log_cdevsw =
+ { logopen, logclose, logread, nowrite, /*7*/
+ logioctl, nostop, nullreset, nodevtotty,/* klog */
+ logselect, nommap, NULL };
+
+static log_devsw_installed = 0;
+
+static void log_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! log_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&log_cdevsw,NULL);
+ log_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*/
+ "/", "log", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(logdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,log_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/kern/tty_cons.c b/sys/kern/tty_cons.c
index 0b509594..9b8735d 100644
--- a/sys/kern/tty_cons.c
+++ b/sys/kern/tty_cons.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)cons.c 7.2 (Berkeley) 5/9/91
- * $Id: cons.c,v 1.33 1995/09/10 18:57:25 bde Exp $
+ * $Id: cons.c,v 1.34 1995/09/10 21:34:49 bde Exp $
*/
#include <sys/param.h>
@@ -48,6 +48,14 @@
#include <machine/cons.h>
#include <machine/stdarg.h>
+#ifdef JREMOD
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 0
+#endif /*JREMOD*/
+
/* XXX this should be config(8)ed. */
#include "sc.h"
#include "vt.h"
@@ -79,23 +87,6 @@ static d_open_t *cn_phys_open; /* physical device open function */
static struct consdev *cn_tab; /* physical console device info */
static struct tty *cn_tp; /* physical console tty struct */
-#ifdef DEVFS
-#include <sys/kernel.h>
-#include <sys/devfsext.h>
-
-static void cndev_init __P((void *));
-SYSINIT(cndev, SI_SUB_DEVFS, SI_ORDER_ANY, cndev_init, NULL)
-
-static void
-cndev_init(dummy)
- void *dummy;
-{
- void * x;
-/* path name devsw minor type uid gid perm*/
- x=dev_add("/misc", "console", cnopen, 0, DV_CHR, 0, 0, 0640);
-}
-#endif /* DEVFS */
-
void
cninit()
{
@@ -322,3 +313,30 @@ pg(const char *p, ...) {
}
+#ifdef JREMOD
+struct cdevsw cn_cdevsw =
+ { cnopen, cnclose, cnread, cnwrite, /*0*/
+ cnioctl, nullstop, nullreset, nodevtotty,/* console */
+ cnselect, nommap, NULL };
+
+static cn_devsw_installed = 0;
+
+static void cn_drvinit(void *unused)
+{
+ void * x;
+ dev_t dev;
+
+ if( ! cn_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&cn_cdevsw,NULL);
+ cn_devsw_installed = 1;
+#ifdef DEVFS
+ /* path,name,major,minor,type,uid,gid,perm */
+ x=devfs_add_devsw("/","console",major(dev),0,DV_CHR,0,0,0640);
+#endif
+}
+
+SYSINIT(cndev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,cn_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/kern/tty_pty.c b/sys/kern/tty_pty.c
index 2baaea2..ad41417 100644
--- a/sys/kern/tty_pty.c
+++ b/sys/kern/tty_pty.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)tty_pty.c 8.2 (Berkeley) 9/23/93
- * $Id: tty_pty.c,v 1.23 1995/10/30 17:16:55 bde Exp $
+ * $Id: tty_pty.c,v 1.24 1995/11/04 13:24:55 bde Exp $
*/
/*
@@ -52,6 +52,10 @@
#include <sys/vnode.h>
#include <sys/signalvar.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+
void ptyattach __P((int n));
void ptsstart __P((struct tty *tp));
void ptcwakeup __P((struct tty *tp, int flag));
@@ -733,3 +737,61 @@ ptyioctl(dev, cmd, data, flag, p)
}
return (error);
}
+
+#define CDEV_MAJOR_S 5
+#define CDEV_MAJOR_C 6
+#ifdef JREMOD
+struct cdevsw pts_cdevsw =
+ { ptsopen, ptsclose, ptsread, ptswrite, /*5*/
+ ptyioctl, ptsstop, nullreset, ptydevtotty,/* ttyp */
+ ttselect, nommap, NULL };
+
+struct cdevsw ptc_cdevsw =
+ { ptcopen, ptcclose, ptcread, ptcwrite, /*6*/
+ ptyioctl, nullstop, nullreset, ptydevtotty,/* ptyp */
+ ptcselect, nommap, NULL };
+
+static ptc_devsw_installed = 0;
+
+static void ptc_drvinit(void *unused)
+{
+#ifdef DEVFS
+ int i
+ char jnames[] = "pqrstu"
+ char knames[] = "0123456789abcdef"
+ char devname[16];
+#define MAXUNITS (6 * 16)
+#endif
+ dev_t dev;
+ dev_t dev_c;
+
+ if( ! ptc_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR_S,0);
+ cdevsw_add(&dev,&pts_cdevsw,NULL);
+ pts_devsw_installed = 1;
+ dev_c = makedev(CDEV_MAJOR_C,0);
+ cdevsw_add(&dev_c,&ptc_cdevsw,NULL);
+ ptc_devsw_installed = 1;
+#ifdef DEVFS
+/*XXX*/
+#if NPTY > MAXUNITS
+#undef NPTY
+#define NPTY MAXUNITS
+#endif
+ for ( i = 0 ; i<NPTY ; i++ ) {
+ int x;
+
+ j = i / 16;
+ k = i % 16;
+ sprintf(devname,"pty%c%c",jnames[j],knames[k]);
+ x=devfs_add_devsw("/",devname,major(dev_c),0,DV_CHR,0,0,0600);
+ sprintf(devname,"tty%c%c",jnames[j],knames[k]);
+ x=devfs_add_devsw("/",devname,major(dev),0,DV_CHR,0,0,0600);
+ }
+#endif
+}
+
+SYSINIT(ptcdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR_C,ptc_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/kern/tty_snoop.c b/sys/kern/tty_snoop.c
index 77c1596..c89c975 100644
--- a/sys/kern/tty_snoop.c
+++ b/sys/kern/tty_snoop.c
@@ -33,6 +33,13 @@
#include <sys/snoop.h>
+#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 53
+#endif /*JREMOD*/
+
#ifndef MIN
#define MIN(a,b) (((a)<(b))?(a):(b))
#endif
@@ -491,4 +498,36 @@ snpselect(dev, rw, p)
return 0;
}
+#ifdef JREMOD
+struct cdevsw snp_cdevsw =
+ { snpopen, snpclose, snpread, snpwrite, /*53*/
+ snpioctl, nostop, nullreset, nodevtotty,/* snoop */
+ snpselect, nommap, NULL };
+
+static snp_devsw_installed = 0;
+
+static void snp_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! snp_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&snp_cdevsw,NULL);
+ snp_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*/
+ "/", "snp", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(snpdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,snp_drvinit,NULL)
+
+#endif /* JREMOD */
+
#endif
diff --git a/sys/kern/tty_tty.c b/sys/kern/tty_tty.c
index 9fe7f33..d0a0c8c 100644
--- a/sys/kern/tty_tty.c
+++ b/sys/kern/tty_tty.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)tty_tty.c 8.2 (Berkeley) 9/23/93
- * $Id: tty_tty.c,v 1.4 1994/12/04 01:46:13 ache Exp $
+ * $Id: tty_tty.c,v 1.5 1995/05/30 08:06:19 rgrimes Exp $
*/
/*
@@ -46,6 +46,14 @@
#include <sys/vnode.h>
#include <sys/file.h>
+#ifdef JREMOD
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 1
+#endif /*JREMOD*/
+
#define cttyvp(p) ((p)->p_flag & P_CONTROLT ? (p)->p_session->s_ttyvp : NULL)
/*ARGSUSED*/
@@ -153,3 +161,36 @@ cttyselect(dev, flag, p)
return (1); /* try operation to get EOF/failure */
return (VOP_SELECT(ttyvp, flag, FREAD|FWRITE, NOCRED, p));
}
+
+#ifdef JREMOD
+struct cdevsw ctty_cdevsw =
+ { cttyopen, nullclose, cttyread, cttywrite, /*1*/
+ cttyioctl, nullstop, nullreset, nodevtotty,/* tty */
+ cttyselect, nommap, NULL };
+
+static ctty_devsw_installed = 0;
+
+static void ctty_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! ctty_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&ctty_cdevsw,NULL);
+ ctty_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*/
+ "/", "tty", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(cttydev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,ctty_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/miscfs/devfs/devfs_tree.c b/sys/miscfs/devfs/devfs_tree.c
index bf50492..0110f8b 100644
--- a/sys/miscfs/devfs/devfs_tree.c
+++ b/sys/miscfs/devfs/devfs_tree.c
@@ -2,7 +2,7 @@
/*
* Written by Julian Elischer (julian@DIALix.oz.au)
*
- * $Header: /home/ncvs/src/sys/miscfs/devfs/devfs_tree.c,v 1.7 1995/09/09 18:10:18 davidg Exp $
+ * $Header: /home/ncvs/src/sys/miscfs/devfs/devfs_tree.c,v 1.8 1995/10/10 07:12:25 julian Exp $
*/
#include "param.h"
@@ -906,6 +906,50 @@ int dev_add_entry(char *name, dn_p parent, int type, union typeinfo *by, devnm_p
* Add the named device entry into the given directory, and make it *
* The appropriate type... (called (sometimes indirectly) by drivers..) *
\***********************************************************************/
+void *devfs_add_devsw(char *path,
+ char *name,
+ int major,
+ int minor,
+ int chrblk,
+ uid_t uid,
+ gid_t gid,
+ int perms)
+{
+ devnm_p new_dev;
+ dn_p dnp; /* devnode for parent directory */
+ int retval;
+ union typeinfo by;
+
+ DBPRINT(("dev_add\n"));
+ retval = dev_finddir(path,NULL,1,&dnp);
+ if (retval) return 0;
+ switch(chrblk)
+ {
+ case DV_CHR:
+ by.Cdev.cdevsw = cdevsw + major;
+ by.Cdev.dev = makedev(major, minor);
+ if( dev_add_entry(name, dnp, DEV_CDEV, &by,&new_dev))
+ return NULL;
+ break;
+ case DV_BLK:
+ by.Bdev.bdevsw = bdevsw + major;
+ by.Bdev.dev = makedev(major, minor);
+ if( dev_add_entry(name, dnp, DEV_BDEV, &by, &new_dev))
+ return NULL;
+ break;
+ default:
+ return NULL;
+ }
+ new_dev->dnp->gid = gid;
+ new_dev->dnp->uid = uid;
+ new_dev->dnp->mode |= perms;
+ return new_dev;
+}
+
+/***********************************************************************\
+* Add the named device entry into the given directory, and make it *
+* The appropriate type... (called (sometimes indirectly) by drivers..) *
+\***********************************************************************/
void *dev_add(char *path,
char *name,
void *funct,
diff --git a/sys/net/bpf.c b/sys/net/bpf.c
index ce31e3e..d6393aa 100644
--- a/sys/net/bpf.c
+++ b/sys/net/bpf.c
@@ -37,7 +37,7 @@
*
* @(#)bpf.c 8.2 (Berkeley) 3/28/94
*
- * $Id: bpf.c,v 1.13 1995/09/22 17:57:45 wollman Exp $
+ * $Id: bpf.c,v 1.14 1995/11/20 12:29:05 phk Exp $
*/
#include "bpfilter.h"
@@ -80,6 +80,14 @@
#include <netinet/if_ether.h>
#include <sys/kernel.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 23
+#endif /*JREMOD*/
+
/*
* Older BSDs don't have kernel malloc.
*/
@@ -1310,4 +1318,38 @@ bpfattach(driverp, ifp, dlt, hdrlen)
if (bootverbose)
printf("bpf: %s%d attached\n", ifp->if_name, ifp->if_unit);
}
+
+
+#ifdef JREMOD
+struct cdevsw bpf_cdevsw =
+ { bpfopen, bpfclose, bpfread, bpfwrite, /*23*/
+ bpfioctl, nostop, nullreset, nodevtotty,/* bpf */
+ bpfselect, nommap, NULL };
+
+static bpf_devsw_installed = 0;
+
+static void bpf_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! bpf_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&bpf_cdevsw,NULL);
+ bpf_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*/
+ "/", "bpf", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(bpfdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,bpf_drvinit,NULL)
+
+#endif /* JREMOD */
+
#endif
diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c
index 91ffbe2..ded3d95 100644
--- a/sys/net/if_tun.c
+++ b/sys/net/if_tun.c
@@ -67,6 +67,13 @@ static void tunattach __P((void *));
PSEUDO_SET(tunattach, if_tun);
#endif
+#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 52
+#endif /*JREMOD*/
+
#define TUNDEBUG if (tundebug) printf
int tundebug = 0;
@@ -598,4 +605,36 @@ tunselect(dev_t dev, int rw, struct proc *p)
return 0;
}
+#ifdef JREMOD
+struct cdevsw tun_cdevsw =
+ { tunopen, tunclose, tunread, tunwrite, /*52*/
+ tunioctl, nostop, nullreset, nodevtotty,/* tunnel */
+ tunselect, nommap, NULL };
+
+static tun_devsw_installed = 0;
+
+static void tun_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! tun_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&tun_cdevsw,NULL);
+ tun_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*/
+ "/", "tun", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(tundev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,tun_drvinit,NULL)
+
+#endif /* JREMOD */
+
#endif /* NTUN */
diff --git a/sys/pccard/pccard.c b/sys/pccard/pccard.c
index 9dd7da7..6dae40b 100644
--- a/sys/pccard/pccard.c
+++ b/sys/pccard/pccard.c
@@ -50,6 +50,14 @@
#include <pccard/card.h>
#include <pccard/slot.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 50
+#endif /*JREMOD*/
+
extern struct kern_devconf kdc_cpu0;
@@ -896,3 +904,36 @@ find_driver(char *name)
return(dp);
return(0);
}
+
+#ifdef JREMOD
+struct cdevsw crd_cdevsw =
+ { crdopen, crdclose, crdread, crdwrite, /*50*/
+ crdioctl, nostop, nullreset, nodevtotty,/* pcmcia */
+ crdselect, nommap, NULL };
+
+static crd_devsw_installed = 0;
+
+static void crd_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! crd_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&crd_cdevsw,NULL);
+ crd_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*/
+ "/", "crd", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(crddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,crd_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/scsi/cd.c b/sys/scsi/cd.c
index f4f31d9..2418658 100644
--- a/sys/scsi/cd.c
+++ b/sys/scsi/cd.c
@@ -14,7 +14,7 @@
*
* Ported to run under 386BSD by Julian Elischer (julian@tfs.com) Sept 1992
*
- * $Id: cd.c,v 1.44 1995/11/19 22:22:18 dyson Exp $
+ * $Id: cd.c,v 1.45 1995/11/20 12:42:25 phk Exp $
*/
#define SPLCD splbio
@@ -41,6 +41,15 @@
#include <sys/devconf.h>
#include <sys/dkstat.h>
+#ifdef JREMOD
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 15
+#define BDEV_MAJOR 6
+#endif /*JREMOD */
+
/* static function prototypes */
static errval cd_get_parms __P((int, int));
static errval cd_get_mode __P((u_int32, struct cd_mode_data *, u_int32));
@@ -1296,3 +1305,48 @@ cdsize(dev_t dev)
{
return (-1);
}
+
+#ifdef JREMOD
+struct bdevsw cd_bdevsw =
+ { cdopen, cdclose, cdstrategy, cdioctl, /*6*/
+ nxdump, cdsize, 0 };
+#endif /*JREMOD*/
+
+#ifdef JREMOD
+struct cdevsw cd_cdevsw =
+ { cdopen, cdclose, rawread, nowrite, /*15*/
+ cdioctl, nostop, nullreset, nodevtotty,/* cd */
+ seltrue, nommap, cdstrategy };
+
+static cd_devsw_installed = 0;
+
+static void cd_drvinit(void *unused)
+{
+ dev_t dev;
+ dev_t dev_chr;
+
+ if( ! cd_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&cd_cdevsw,NULL);
+ dev_chr = dev;
+#if defined(BDEV_MAJOR)
+ dev = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&dev,&cd_bdevsw,NULL);
+#endif /*BDEV_MAJOR*/
+ cd_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*/
+ "/", "cd", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(cddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,cd_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/scsi/ch.c b/sys/scsi/ch.c
index 12045d9..b8edea3 100644
--- a/sys/scsi/ch.c
+++ b/sys/scsi/ch.c
@@ -1,8 +1,8 @@
/*
- * Written by grefen@?????
+ * Written by grefen@convex.com (probably moved by now)
* Based on scsi drivers by Julian Elischer (julian@tfs.com)
*
- * $Id: ch.c,v 1.21 1995/05/30 08:13:22 rgrimes Exp $
+ * $Id: ch.c,v 1.22 1995/11/20 12:42:27 phk Exp $
*/
#include <sys/types.h>
@@ -24,6 +24,16 @@
#include <scsi/scsiconf.h>
#include <sys/devconf.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 17
+#endif /*JREMOD*/
+
+
errval ch_getelem __P((u_int32 unit, short *stat, int type, u_int32 from,
void *data, u_int32 flags));
errval ch_move __P((u_int32 unit, short *stat, u_int32 chm, u_int32 from,
@@ -501,3 +511,36 @@ ch_mode_sense(unit, flags)
cd->rot ? "can" : "can't"));
return (0);
}
+
+#ifdef JREMOD
+struct cdevsw ch_cdevsw =
+ { chopen, chclose, noread, nowrite, /*17*/
+ chioctl, nostop, nullreset, nodevtotty,/* ch */
+ noselect, nommap, nostrat };
+
+static ch_devsw_installed = 0;
+
+static void ch_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! ch_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&ch_cdevsw,NULL);
+ ch_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*/
+ "/", "ch", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(chdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,ch_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/scsi/od.c b/sys/scsi/od.c
index 60a8836..dca9c67 100644
--- a/sys/scsi/od.c
+++ b/sys/scsi/od.c
@@ -28,7 +28,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: od.c,v 1.2 1995/11/19 22:22:21 dyson Exp $
+ * $Id: od.c,v 1.3 1995/11/20 12:42:28 phk Exp $
*/
/*
@@ -62,6 +62,14 @@
#include <machine/md_var.h>
#include <i386/i386/cons.h> /* XXX */
+#ifdef JREMOD
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 70
+#define BDEV_MAJOR 20
+#endif /*JREMOD */
+
u_int32 odstrats, odqueues;
#define SECSIZE 512
@@ -797,3 +805,46 @@ od_sense_handler(struct scsi_xfer *xs)
return SCSIRET_DO_RETRY;
}
+
+#ifdef JREMOD
+struct bdevsw od_bdevsw =
+ { odopen, odclose, odstrategy, odioctl, /*20*/
+ nxdump, odsize, 0 };
+
+struct cdevsw od_cdevsw =
+ { odopen, odclose, rawread, rawwrite, /*70*/
+ odioctl, nostop, nullreset, nodevtotty,/* od */
+ seltrue, nommap, odstrategy };
+
+static od_devsw_installed = 0;
+
+static void od_drvinit(void *unused)
+{
+ dev_t dev;
+ dev_t dev_chr;
+
+ if( ! od_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&od_cdevsw,NULL);
+ dev_chr = dev;
+ dev = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&dev,&od_bdevsw,NULL);
+ od_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*/
+ "/", "rod", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
+ x=devfs_add_devsw(
+ "/", "od", major(dev), 0, DV_BLK, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(oddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,od_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/scsi/pt.c b/sys/scsi/pt.c
index 6ecc795..6d34963 100644
--- a/sys/scsi/pt.c
+++ b/sys/scsi/pt.c
@@ -37,7 +37,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: pt.c,v 1.5 1995/05/30 08:13:23 rgrimes Exp $
+ * $Id: pt.c,v 1.6 1995/11/19 22:22:23 dyson Exp $
*/
/*
@@ -53,6 +53,15 @@
#include <scsi/scsi_all.h>
#include <scsi/scsiconf.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 61
+#endif /*JREMOD*/
+
struct scsi_data {
struct buf_queue_head buf_queue;
};
@@ -249,3 +258,36 @@ int pt_sense(struct scsi_xfer *xs)
return SCSIRET_CONTINUE;
}
}
+
+#ifdef JREMOD
+struct cdevsw pt_cdevsw =
+ { ptopen, ptclose, rawread, rawwrite, /*61*/
+ ptioctl, nostop, nullreset, nodevtotty,/* pt */
+ seltrue, nommap, ptstrategy };
+
+static pt_devsw_installed = 0;
+
+static void pt_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! pt_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&pt_cdevsw,NULL);
+ pt_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*/
+ "/", "pt", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(ptdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,pt_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/scsi/sctarg.c b/sys/scsi/sctarg.c
index b7498f5..65cc2f2 100644
--- a/sys/scsi/sctarg.c
+++ b/sys/scsi/sctarg.c
@@ -37,7 +37,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: sctarg.c,v 1.5 1995/11/19 22:22:25 dyson Exp $
+ * $Id: sctarg.c,v 1.6 1995/11/21 08:35:49 bde Exp $
*/
/*
@@ -53,6 +53,15 @@
#include <scsi/scsi_all.h>
#include <scsi/scsiconf.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 65
+#endif /*JREMOD*/
+
#define OPEN 0x01
struct scsi_data {
@@ -266,3 +275,36 @@ sctarg_strategy(struct buf *bp, struct scsi_link *sc_link)
splx(opri);
return;
}
+
+#ifdef JREMOD
+struct cdevsw sctarg_cdevsw =
+ { sctargopen, sctargclose, rawread, rawwrite, /*65*/
+ sctargioctl, nostop, nullreset, nodevtotty,/* sctarg */
+ seltrue, nommap, sctargstrategy };
+
+static sctarg_devsw_installed = 0;
+
+static void sctarg_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! sctarg_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&sctarg_cdevsw,NULL);
+ sctarg_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*/
+ "/", "sctarg", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(sctargdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,sctarg_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/scsi/sd.c b/sys/scsi/sd.c
index 501aff5..586812d 100644
--- a/sys/scsi/sd.c
+++ b/sys/scsi/sd.c
@@ -14,7 +14,7 @@
*
* Ported to run under 386BSD by Julian Elischer (julian@dialix.oz.au) Sept 1992
*
- * $Id: sd.c,v 1.71 1995/11/20 02:12:34 davidg Exp $
+ * $Id: sd.c,v 1.72 1995/11/20 12:42:32 phk Exp $
*/
#define SPLSD splbio
@@ -39,6 +39,16 @@
#include <machine/md_var.h>
#include <i386/i386/cons.h> /* XXX */
+#ifdef JREMOD
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 13
+#define BDEV_MAJOR 4
+#endif /*JREMOD */
+
u_int32 sdstrats, sdqueues;
#define SECSIZE 512
@@ -236,7 +246,7 @@ sd_open(dev, mode, fmt, p, sc_link)
* "unit attention" errors should occur here if the
* drive has been restarted or the pack changed.
* just ingnore the result, it's a decoy instruction
- * The error code will act on the error though
+ * The error handlers will act on the error though
* and invalidate any media information we had.
*/
scsi_test_unit_ready(sc_link, 0);
@@ -950,3 +960,46 @@ sddump(dev_t dev)
}
return (0);
}
+
+#ifdef JREMOD
+struct bdevsw sd_bdevsw =
+ { sdopen, sdclose, sdstrategy, sdioctl, /*4*/
+ sddump, sdsize, 0 };
+
+struct cdevsw sd_cdevsw =
+ { sdopen, sdclose, rawread, rawwrite, /*13*/
+ sdioctl, nostop, nullreset, nodevtotty,/* sd */
+ seltrue, nommap, sdstrategy };
+
+static sd_devsw_installed = 0;
+
+static void sd_drvinit(void *unused)
+{
+ dev_t dev;
+ dev_t dev_chr;
+
+ if( ! sd_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&sd_cdevsw,NULL);
+ dev_chr = dev;
+ dev = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&dev,&sd_bdevsw,NULL);
+ sd_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*/
+ "/", "rsd", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
+ x=devfs_add_devsw(
+ "/", "sd", major(dev), 0, DV_BLK, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(sddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,sd_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/scsi/ssc.c b/sys/scsi/ssc.c
index 442e12b..43a7adb 100644
--- a/sys/scsi/ssc.c
+++ b/sys/scsi/ssc.c
@@ -49,7 +49,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*End copyright
- * $Id: ssc.c,v 1.3 1995/05/03 18:09:18 dufault Exp $
+ * $Id: ssc.c,v 1.4 1995/11/04 11:12:41 bde Exp $
*/
#include <sys/types.h>
@@ -63,6 +63,14 @@
#include <sys/buf.h>
#include <sys/systm.h>
+#ifdef JREMOD
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 49
+#endif /*JREMOD*/
+
static dev_t sscdev = NODEV;
int sscopen(dev_t dev, int flag, int type, struct proc *p)
@@ -116,3 +124,43 @@ void sscstrategy(struct buf *bp) { }
int sscread(dev_t dev, struct uio *uio, int ioflag) { return ENXIO; }
int sscwrite(dev_t dev, struct uio *uio, int ioflag) { return ENXIO; }
int sscselect(dev_t dev, int which, struct proc *p) { return ENXIO; }
+
+
+#ifdef JREMOD
+struct cdevsw ssc_cdevsw =
+ { sscopen, sscclose, sscread, sscwrite, /*49*/
+ sscioctl, nostop, nullreset, nodevtotty,/* scsi super */
+ sscselect, nxmmap, sscstrategy };
+
+static ssc_devsw_installed = 0;
+
+static void ssc_drvinit(void *unused)
+{
+ dev_t dev;
+ dev_t dev_chr;
+
+ if( ! ssc_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&ssc_cdevsw,NULL);
+ dev_chr = dev;
+#if defined(BDEV_MAJOR)
+ dev = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&dev,&ssc_bdevsw,NULL);
+#endif /*BDEV_MAJOR*/
+ ssc_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*/
+ "/", "ssc", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(sscdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,ssc_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/scsi/st.c b/sys/scsi/st.c
index c872545..6c7db23 100644
--- a/sys/scsi/st.c
+++ b/sys/scsi/st.c
@@ -12,7 +12,7 @@
* on the understanding that TFS is not responsible for the correct
* functioning of this software in any circumstances.
*
- * $Id: st.c,v 1.43 1995/11/19 22:22:32 dyson Exp $
+ * $Id: st.c,v 1.44 1995/11/20 12:42:34 phk Exp $
*/
/*
@@ -46,7 +46,16 @@
#include <scsi/scsiconf.h>
#include <sys/devconf.h>
-u_int32 ststrats, stqueues;
+#ifdef JREMOD
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 14
+#define BDEV_MAJOR 5
+#endif /*JREMOD */
+
/* Defines for device specific stuff */
#define PAGE_0_SENSE_DATA_SIZE 12
@@ -595,7 +604,7 @@ errval
st_close(dev_t dev, int flag, int fmt, struct proc *p,
struct scsi_link *sc_link)
{
- unsigned char unit, mode;
+ u_int32 unit, mode;
struct scsi_data *st;
unit = STUNIT(dev);
@@ -897,12 +906,11 @@ done:
void
st_strategy(struct buf *bp, struct scsi_link *sc_link)
{
- unsigned char unit; /* XXX Everywhere else unit is "u_int32". Please int? */
+ u_int32 unit;
u_int32 opri;
struct scsi_data *st;
int len;
- ststrats++;
unit = STUNIT((bp->b_dev));
st = sc_link->sd;
/*
@@ -1110,7 +1118,6 @@ ststart(unit, flags)
100000,
bp,
flags) == SUCCESSFULLY_QUEUED) {
- stqueues++;
} else {
badnews:
printf("st%ld: oops not queued\n", unit);
@@ -1130,7 +1137,7 @@ st_ioctl(dev_t dev, int cmd, caddr_t arg, int flag,
struct proc *p, struct scsi_link *sc_link)
{
errval errcode = 0;
- unsigned char unit;
+ u_int32 unit;
u_int32 number, flags, dsty;
struct scsi_data *st;
u_int32 hold_blksiz;
@@ -2070,3 +2077,44 @@ bad: free(buf, M_TEMP);
free(buf, M_TEMP);
return 0;
}
+
+#ifdef JREMOD
+struct bdevsw st_bdevsw =
+ { stopen, stclose, ststrategy, stioctl, /*5*/
+ nxdump, zerosize, 0 };
+
+struct cdevsw st_cdevsw =
+ { stopen, stclose, rawread, rawwrite, /*14*/
+ stioctl, nostop, nullreset, nodevtotty,/* st */
+ seltrue, nommap, ststrategy };
+
+static st_devsw_installed = 0;
+
+static void st_drvinit(void *unused)
+{
+ dev_t dev;
+ dev_t dev_chr;
+
+ if( ! st_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&st_cdevsw,NULL);
+ dev_chr = dev;
+ dev = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&dev,&st_bdevsw,NULL);
+ st_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*/
+ "/", "rst", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(stdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,st_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/scsi/su.c b/sys/scsi/su.c
index 71f21bb..8b9d9c6 100644
--- a/sys/scsi/su.c
+++ b/sys/scsi/su.c
@@ -44,7 +44,7 @@
* SUCH DAMAGE.
*End copyright
*
- * $Id: su.c,v 1.5 1995/05/03 18:09:20 dufault Exp $
+ * $Id: su.c,v 1.6 1995/11/06 00:36:08 bde Exp $
*
* Tabstops 4
*/
@@ -58,6 +58,14 @@
#include <sys/buf.h>
#include <sys/systm.h>
+#ifdef JREMOD
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 18
+#endif /*JREMOD*/
+
/* Build an old style device number (unit encoded in the minor number)
* from a base old one (no flag bits) and a full new one
* (BUS, LUN, TARG in the minor number, and flag bits).
@@ -278,3 +286,36 @@ int suselect(dev_t dev, int which, struct proc *p)
return (*cdev->d_select)(base, which, p);
}
+
+#ifdef JREMOD
+struct cdevsw su_cdevsw =
+ { suopen, suclose, suread, suwrite, /*18*/
+ suioctl, nostop, nullreset, nodevtotty,/* scsi */
+ suselect, nxmmap, sustrategy }; /* 'generic' */
+
+static su_devsw_installed = 0;
+
+static void su_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! su_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&su_cdevsw,NULL);
+ su_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*/
+ "/", "su", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(sudev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,su_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/scsi/uk.c b/sys/scsi/uk.c
index 0518612..ab1e6e1 100644
--- a/sys/scsi/uk.c
+++ b/sys/scsi/uk.c
@@ -2,7 +2,7 @@
* Driver for a device we can't identify.
* by Julian Elischer (julian@tfs.com)
*
- * $Id: uk.c,v 1.8 1995/03/04 20:51:08 dufault Exp $
+ * $Id: uk.c,v 1.9 1995/05/30 08:13:56 rgrimes Exp $
*
* If you find that you are adding any code to this file look closely
* at putting it in "scsi_driver.c" instead.
@@ -11,6 +11,15 @@
#include <sys/param.h>
#include <scsi/scsi_all.h>
#include <scsi/scsiconf.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 31
+#endif /*JREMOD*/
+
SCSI_DEVICE_ENTRIES(uk)
@@ -36,3 +45,36 @@ struct scsi_device uk_switch =
0,
0,
};
+
+#ifdef JREMOD
+struct cdevsw uk_cdevsw =
+ { ukopen, ukclose, noread, nowrite, /*31*/
+ ukioctl, nostop, nullreset, nodevtotty,/* unknown */
+ seltrue, nommap, NULL }; /* scsi */
+
+static uk_devsw_installed = 0;
+
+static void uk_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! uk_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&uk_cdevsw,NULL);
+ uk_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*/
+ "/", "uk", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(ukdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,uk_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/scsi/worm.c b/sys/scsi/worm.c
index ef8c983..c0c0afb 100644
--- a/sys/scsi/worm.c
+++ b/sys/scsi/worm.c
@@ -37,7 +37,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: worm.c,v 1.9 1995/10/21 23:13:11 phk Exp $
+ * $Id: worm.c,v 1.10 1995/11/19 22:22:35 dyson Exp $
*/
/* XXX This is PRELIMINARY.
@@ -59,6 +59,16 @@
#include <scsi/scsiconf.h>
#include <scsi/scsi_disk.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 62
+#endif /*JREMOD*/
+
+
struct scsi_data {
struct buf_queue_head buf_queue;
u_int32 n_blks; /* Number of blocks (0 for bogus) */
@@ -359,3 +369,36 @@ worm_close(dev_t dev, int flag, int fmt, struct proc *p,
return 0;
}
+
+#ifdef JREMOD
+struct cdevsw worm_cdevsw =
+ { wormopen, wormclose, rawread, rawwrite, /*62*/
+ wormioctl, nostop, nullreset, nodevtotty,/* worm */
+ seltrue, nommap, wormstrategy };
+
+static worm_devsw_installed = 0;
+
+static void worm_drvinit(void *unused)
+{
+ dev_t dev;
+
+ if( ! worm_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&worm_cdevsw,NULL);
+ worm_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*/
+ "/", "rworm", major(dev), 0, DV_CHR, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(wormdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,worm_drvinit,NULL)
+
+#endif /* JREMOD */
+
diff --git a/sys/sys/devfsext.h b/sys/sys/devfsext.h
index 468c9f6..3e33f76 100644
--- a/sys/sys/devfsext.h
+++ b/sys/sys/devfsext.h
@@ -1,11 +1,21 @@
/* usual BSD style copyright here */
/* Written by Julian Elischer (julian@dialix.oz.au)*/
/*
- * $Id:$
+ * $Id: devfsext.h,v 1.2 1995/09/08 04:46:04 julian Exp $
*/
#ifndef _SYS_DEVFSECT_H_
#define _SYS_DEVFSECT_H_ 1
+void *devfs_add_devsw(char *path,
+ char *name,
+ int major,
+ int minor,
+ int chrblk,
+ uid_t uid,
+ gid_t gid,
+ int perms) ;
+
+/* deprecated.. don't use.. */
void *dev_add(char *path,
char *name,
void *funct,
diff --git a/sys/sys/kernel.h b/sys/sys/kernel.h
index 05e7548..71b78cb 100644
--- a/sys/sys/kernel.h
+++ b/sys/sys/kernel.h
@@ -39,7 +39,7 @@
* SUCH DAMAGE.
*
* @(#)kernel.h 8.3 (Berkeley) 1/21/94
- * $Id: kernel.h,v 1.15 1995/11/14 07:35:56 bde Exp $
+ * $Id: kernel.h,v 1.16 1995/11/20 12:08:08 phk Exp $
*/
#ifndef _SYS_KERNEL_H_
@@ -121,6 +121,7 @@ enum sysinit_sub_id {
SI_SUB_KMEM = 0x18000000, /* kernel memory*/
SI_SUB_CPU = 0x20000000, /* CPU resource(s)*/
SI_SUB_DEVFS = 0x22000000, /* get DEVFS ready */
+ SI_SUB_DRIVERS = 0x23000000, /* Let Drivers initialise */
SI_SUB_CONFIGURE = 0x24000000, /* Configure devices */
SI_SUB_INTRINSIC = 0x28000000, /* proc 0*/
SI_SUB_RUN_QUEUE = 0x30000000, /* the run queue*/
@@ -158,6 +159,7 @@ enum sysinit_elem_order {
SI_ORDER_FIRST = 0x00000000, /* first*/
SI_ORDER_SECOND = 0x00000001, /* second*/
SI_ORDER_THIRD = 0x00000002, /* third*/
+ SI_ORDER_MIDDLE = 0x10000000, /* somewhere in the middle */
SI_ORDER_ANY = 0xffffffff /* last*/
};
diff --git a/sys/vm/vm_swap.c b/sys/vm/vm_swap.c
index ea3bc9d..91c12da 100644
--- a/sys/vm/vm_swap.c
+++ b/sys/vm/vm_swap.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)vm_swap.c 8.5 (Berkeley) 2/17/94
- * $Id: vm_swap.c,v 1.24 1995/11/12 06:43:26 bde Exp $
+ * $Id: vm_swap.c,v 1.25 1995/11/20 12:19:14 phk Exp $
*/
#include <sys/param.h>
@@ -50,6 +50,15 @@
#include <miscfs/specfs/specdev.h>
+#ifdef JREMOD
+#include <sys/kernel.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /*DEVFS*/
+#define CDEV_MAJOR 4
+#define BDEV_MAJOR 1
+#endif /*JREMOD */
+
/*
* Indirect driver for multi-controller paging.
*/
@@ -252,3 +261,46 @@ swaponvp(p, vp, dev, nblks)
return (0);
}
+
+#ifdef JREMOD
+struct bdevsw sw_bdevsw =
+ { noopen, noclose, swstrategy, noioc, /*1*/
+ nodump, zerosize, 0 };
+
+struct cdevsw sw_cdevsw =
+ { nullopen, nullclose, rawread, rawwrite, /*4*/
+ noioc, nostop, noreset, nodevtotty,/* swap */
+ noselect, nommap, swstrategy };
+
+static sw_devsw_installed = 0;
+
+static void sw_drvinit(void *unused)
+{
+ dev_t dev;
+ dev_t dev_chr;
+
+ if( ! sw_devsw_installed ) {
+ dev = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&dev,&sw_cdevsw,NULL);
+ dev_chr = dev;
+ dev = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&dev,&sw_bdevsw,NULL);
+ sw_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*/
+ "/", "rsw", major(dev_chr), 0, DV_CHR, 0, 0, 0600);
+ x=devfs_add_devsw(
+ "/", "sw", major(dev), 0, DV_BLK, 0, 0, 0600);
+ }
+ }
+#endif
+}
+
+SYSINIT(swdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,sw_drvinit,NULL)
+
+#endif /* JREMOD */
+
OpenPOWER on IntegriCloud