summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/cy/cy.c34
-rw-r--r--sys/dev/cy/cy_isa.c34
-rw-r--r--sys/dev/fdc/fdc.c37
-rw-r--r--sys/dev/joy/joy.c33
-rw-r--r--sys/dev/mcd/mcd.c39
-rw-r--r--sys/dev/mse/mse.c34
-rw-r--r--sys/dev/rc/rc.c33
-rw-r--r--sys/dev/scd/scd.c39
-rw-r--r--sys/dev/si/si.c36
-rw-r--r--sys/dev/sio/sio.c34
-rw-r--r--sys/dev/speaker/spkr.c43
-rw-r--r--sys/i386/isa/asc.c34
-rw-r--r--sys/i386/isa/b004.c32
-rw-r--r--sys/i386/isa/ctx.c39
-rw-r--r--sys/i386/isa/cx.c27
-rw-r--r--sys/i386/isa/cy.c34
-rw-r--r--sys/i386/isa/fd.c37
-rw-r--r--sys/i386/isa/gpib.c31
-rw-r--r--sys/i386/isa/gsc.c32
-rw-r--r--sys/i386/isa/if_cx.c5
-rw-r--r--sys/i386/isa/joy.c33
-rw-r--r--sys/i386/isa/labpc.c34
-rw-r--r--sys/i386/isa/lpt.c34
-rw-r--r--sys/i386/isa/mcd.c39
-rw-r--r--sys/i386/isa/mse.c34
-rw-r--r--sys/i386/isa/pcaudio.c34
-rw-r--r--sys/i386/isa/psm.c36
-rw-r--r--sys/i386/isa/rc.c33
-rw-r--r--sys/i386/isa/scd.c39
-rw-r--r--sys/i386/isa/si.c36
-rw-r--r--sys/i386/isa/sio.c34
-rw-r--r--sys/i386/isa/spigot.c33
-rw-r--r--sys/i386/isa/spkr.c43
-rw-r--r--sys/i386/isa/tw.c33
-rw-r--r--sys/i386/isa/wcd.c38
-rw-r--r--sys/i386/isa/wd.c38
-rw-r--r--sys/i386/isa/wt.c41
-rw-r--r--sys/isa/fd.c37
-rw-r--r--sys/isa/joy.c33
-rw-r--r--sys/isa/sio.c34
40 files changed, 1351 insertions, 32 deletions
diff --git a/sys/dev/cy/cy.c b/sys/dev/cy/cy.c
index ce0816c..c2f3725 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.18 1995/11/04 17:07:14 bde Exp $
+ * $Id: cy.c,v 1.19 1995/11/26 17:13:23 bde Exp $
*/
#include "cy.h"
@@ -397,6 +397,11 @@ static int cy_nr_cd1400s[NCY];
#undef RxFifoThreshold
static int volatile RxFifoThreshold = (CD1400_RX_FIFO_SIZE / 2);
+#ifdef JREMOD
+#define CDEV_MAJOR 48
+static void cy_devsw_install();
+#endif /*JREMOD*/
+
static struct kern_devconf kdc_sio[NCY] = { {
0, 0, 0, /* filled in by dev_attach */
"cyc", 0, { MDDT_ISA, 0, "tty" },
@@ -437,6 +442,10 @@ 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) */
cy_inb(iobase, CY16_RESET); /* XXX? */
@@ -2511,4 +2520,27 @@ cystatus(unit)
}
#endif /* CyDebug */
+
+#ifdef JREMOD
+struct cdevsw cy_cdevsw =
+ { cyopen, cyclose, cyread, cywrite, /*48*/
+ cyioctl, cystop, nxreset, cydevtotty,/*cyclades*/
+ ttselect, nxmmap, NULL };
+
+static cy_devsw_installed = 0;
+
+static void cy_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ cy_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NCY > 0 */
diff --git a/sys/dev/cy/cy_isa.c b/sys/dev/cy/cy_isa.c
index ce0816c..c2f3725 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.18 1995/11/04 17:07:14 bde Exp $
+ * $Id: cy.c,v 1.19 1995/11/26 17:13:23 bde Exp $
*/
#include "cy.h"
@@ -397,6 +397,11 @@ static int cy_nr_cd1400s[NCY];
#undef RxFifoThreshold
static int volatile RxFifoThreshold = (CD1400_RX_FIFO_SIZE / 2);
+#ifdef JREMOD
+#define CDEV_MAJOR 48
+static void cy_devsw_install();
+#endif /*JREMOD*/
+
static struct kern_devconf kdc_sio[NCY] = { {
0, 0, 0, /* filled in by dev_attach */
"cyc", 0, { MDDT_ISA, 0, "tty" },
@@ -437,6 +442,10 @@ 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) */
cy_inb(iobase, CY16_RESET); /* XXX? */
@@ -2511,4 +2520,27 @@ cystatus(unit)
}
#endif /* CyDebug */
+
+#ifdef JREMOD
+struct cdevsw cy_cdevsw =
+ { cyopen, cyclose, cyread, cywrite, /*48*/
+ cyioctl, cystop, nxreset, cydevtotty,/*cyclades*/
+ ttselect, nxmmap, NULL };
+
+static cy_devsw_installed = 0;
+
+static void cy_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ cy_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NCY > 0 */
diff --git a/sys/dev/fdc/fdc.c b/sys/dev/fdc/fdc.c
index 4601645..1af2cbf 100644
--- a/sys/dev/fdc/fdc.c
+++ b/sys/dev/fdc/fdc.c
@@ -43,7 +43,7 @@
* SUCH DAMAGE.
*
* from: @(#)fd.c 7.4 (Berkeley) 5/25/91
- * $Id: fd.c,v 1.70 1995/11/18 07:48:11 bde Exp $
+ * $Id: fd.c,v 1.71 1995/11/20 12:41:38 phk Exp $
*
*/
@@ -87,6 +87,11 @@
#include <sys/devfsext.h>
#endif
+#ifdef JREMOD
+#define CDEV_MAJOR 9
+#define BDEV_MAJOR 2
+static void fd_devsw_install();
+#endif /*JREMOD */
static int fd_goaway(struct kern_devconf *, int);
static int fdc_goaway(struct kern_devconf *, int);
static int fd_externalize(struct kern_devconf *, struct sysctl_req *);
@@ -513,6 +518,9 @@ fdprobe(struct isa_device *dev)
#ifndef DEV_LKM
fdc_registerdev(dev);
#endif
+#ifdef JREMOD
+ fd_devsw_install();
+#endif /*JREMOD*/
/* First - lets reset the floppy controller */
outb(dev->id_iobase+FDOUT, 0);
@@ -1884,6 +1892,33 @@ fdioctl(dev, cmd, addr, flag, p)
return (error);
}
+
+#ifdef JREMOD
+struct bdevsw fd_bdevsw =
+ { Fdopen, fdclose, fdstrategy, fdioctl, /*2*/
+ nxdump, zerosize, 0 };
+
+struct cdevsw fd_cdevsw =
+ { Fdopen, fdclose, rawread, rawwrite, /*9*/
+ fdioctl, nostop, nullreset, nodevtotty,/* Fd (!=fd) */
+ seltrue, nommap, fdstrategy };
+
+static fd_devsw_installed = 0;
+
+static void fd_devsw_install()
+{
+ dev_t descript;
+ if( ! fd_devsw_installed ) {
+ descript = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&descript,&fd_cdevsw,NULL);
+#if defined(BDEV_MAJOR)
+ descript = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&descript,&fd_bdevsw,NULL);
+#endif /*BDEV_MAJOR*/
+ fd_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif
/*
* Hello emacs, these are the
diff --git a/sys/dev/joy/joy.c b/sys/dev/joy/joy.c
index 8d0dc25..5870e62 100644
--- a/sys/dev/joy/joy.c
+++ b/sys/dev/joy/joy.c
@@ -41,6 +41,12 @@
#include <i386/isa/isa_device.h>
#include <i386/isa/timerreg.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 51
+static void joy_devsw_install();
+#endif /*JREMOD*/
+
/* The game port can manage 4 buttons and 4 variable resistors (usually 2
* joysticks, each with 2 buttons and 2 pots.) via the port at address 0x201.
* Getting the state of the buttons is done by reading the game port:
@@ -99,6 +105,10 @@ 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;
}
@@ -205,4 +215,27 @@ get_tick ()
return (high << 8) | low;
}
+
+#ifdef JREMOD
+struct cdevsw joy_cdevsw =
+ { joyopen, joyclose, joyread, nowrite, /*51*/
+ joyioctl, nostop, nullreset, nodevtotty,/*joystick */
+ seltrue, nommap, NULL};
+
+static joy_devsw_installed = 0;
+
+static void joy_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ joy_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NJOY > 0 */
diff --git a/sys/dev/mcd/mcd.c b/sys/dev/mcd/mcd.c
index 2b6b036..0571a93 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.47 1995/10/28 15:39:15 phk Exp $
+ * $Id: mcd.c,v 1.48 1995/11/04 13:23:35 bde Exp $
*/
static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
@@ -70,6 +70,12 @@ static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
#include <i386/isa/isa_device.h>
#include <i386/isa/mcdreg.h>
+#ifdef JREMOD
+#define CDEV_MAJOR 29
+#define BDEV_MAJOR 7
+static void mcd_devsw_install();
+#endif /*JREMOD */
+
#define MCD_TRACE(format, args...) \
{ \
if (mcd_data[unit].debug) { \
@@ -256,6 +262,10 @@ 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;
}
@@ -1659,4 +1669,31 @@ mcd_resume(int unit)
return EINVAL;
return mcd_play(unit, &cd->lastpb);
}
+
+#ifdef JREMOD
+struct bdevsw mcd_bdevsw =
+ { mcdopen, mcdclose, mcdstrategy, mcdioctl, /*7*/
+ nxdump, mcdsize, 0 };
+
+struct cdevsw mcd_cdevsw =
+ { mcdopen, mcdclose, rawread, nowrite, /*29*/
+ mcdioctl, nostop, nullreset, nodevtotty,/* mitsumi cd */
+ seltrue, nommap, mcdstrategy };
+
+static mcd_devsw_installed = 0;
+
+static void mcd_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ mcd_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NMCD > 0 */
diff --git a/sys/dev/mse/mse.c b/sys/dev/mse/mse.c
index b1484d1..5499a2a 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.14 1995/09/08 11:07:50 bde Exp $
+ * $Id: mse.c,v 1.15 1995/11/04 17:07:37 bde Exp $
*/
/*
* Driver for the Logitech and ATI Inport Bus mice for use with 386bsd and
@@ -61,6 +61,12 @@
#include <i386/isa/isa_device.h>
#include <i386/isa/icu.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 27
+static void mse_devsw_install();
+#endif /*JREMOD*/
+
static int mseprobe(struct isa_device *);
static int mseattach(struct isa_device *);
@@ -233,6 +239,9 @@ 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);
}
@@ -565,4 +574,27 @@ mse_getati(port, dx, dy, but)
outb(port + MSE_PORTA, MSE_INPORT_MODE);
outb(port + MSE_PORTB, MSE_INPORT_INTREN);
}
+
+#ifdef JREMOD
+struct cdevsw mse_cdevsw =
+ { mseopen, mseclose, mseread, nowrite, /*27*/
+ noioc, nostop, nullreset, nodevtotty,/* mse */
+ mseselect, nommap, NULL };
+
+static mse_devsw_installed = 0;
+
+static void mse_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ mse_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NMSE */
diff --git a/sys/dev/rc/rc.c b/sys/dev/rc/rc.c
index 0feabf0..6203aff 100644
--- a/sys/dev/rc/rc.c
+++ b/sys/dev/rc/rc.c
@@ -58,6 +58,12 @@
#include <i386/isa/ic/cd180.h>
#include <i386/isa/rcreg.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 63
+static void rc_devsw_install();
+#endif /*JREMOD*/
+
/* Prototypes */
int rcprobe __P((struct isa_device *));
int rcattach __P((struct isa_device *));
@@ -277,6 +283,10 @@ int rcattach(dvp)
rc_wakeup((void *)NULL);
rc_wakeup_started = 0;
}
+#ifdef JREMOD
+ rc_devsw_install();
+#endif /*JREMOD*/
+
return 1;
}
@@ -1492,4 +1502,27 @@ rc_wait0(nec, unit, chan, line)
printf("rc%d/%d: channel command timeout, rc.c line: %d\n",
unit, chan, line);
}
+
+#ifdef JREMOD
+struct cdevsw rc_cdevsw =
+ { rcopen, rcclose, rcread, rcwrite, /*63*/
+ rcioctl, rcstop, nxreset, rcdevtotty,/* rc */
+ ttselect, nommap, NULL };
+
+static rc_devsw_installed = 0;
+
+static void rc_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ rc_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NRC */
diff --git a/sys/dev/scd/scd.c b/sys/dev/scd/scd.c
index c7bbe07..7d4fdec 100644
--- a/sys/dev/scd/scd.c
+++ b/sys/dev/scd/scd.c
@@ -41,7 +41,7 @@
*/
-/* $Id: scd.c,v 1.8 1995/10/28 15:39:17 phk Exp $ */
+/* $Id: scd.c,v 1.9 1995/11/04 13:23:39 bde Exp $ */
/* Please send any comments to micke@dynas.se */
@@ -72,6 +72,12 @@
#include <i386/isa/isa_device.h>
#include <i386/isa/scdreg.h>
+#ifdef JREMOD
+#define CDEV_MAJOR 45
+#define BDEV_MAJOR 16
+static void scd_devsw_install();
+#endif /*JREMOD */
+
#define scd_part(dev) ((minor(dev)) & 7)
#define scd_unit(dev) (((minor(dev)) & 0x38) >> 3)
#define scd_phys(dev) (((minor(dev)) & 0x40) >> 6)
@@ -218,6 +224,10 @@ 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;
}
@@ -1519,4 +1529,31 @@ scd_toc_entrys (int unit, struct ioc_read_toc_entry *te)
return 0;
}
+#ifdef JREMOD
+struct bdevsw scd_bdevsw =
+ { scdopen, scdclose, scdstrategy, scdioctl, /*16*/
+ nxdump, scdsize, 0 };
+
+struct cdevsw scd_cdevsw =
+ { scdopen, scdclose, rawread, nowrite, /*45*/
+ scdioctl, nostop, nullreset, nodevtotty,/* sony cd */
+ seltrue, nommap, scdstrategy };
+
+static scd_devsw_installed = 0;
+
+static void scd_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ scd_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
+
#endif /* NSCD > 0 */
diff --git a/sys/dev/si/si.c b/sys/dev/si/si.c
index c022248..93accc2 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.15 1995/11/28 02:07:34 peter Exp $
+ * $Id: si.c,v 1.16 1995/11/28 07:29:29 bde Exp $
*/
#ifndef lint
@@ -81,6 +81,12 @@ static char si_copyright1[] = "@(#) (C) Specialix International, 1990,1992",
enum si_mctl { GET, SET, BIS, BIC };
+#ifdef JREMOD
+#define CDEV_MAJOR 68
+static void si_devsw_install();
+#endif /*JREMOD*/
+
+
static void si_command __P((struct si_port *, int, int));
static int si_modem __P((struct si_port *, enum si_mctl, int));
static void si_write_enable __P((struct si_port *, int));
@@ -651,6 +657,10 @@ mem_fail:
}
done_chartimes = 1;
}
+#ifdef JREMOD
+ si_devsw_install();
+#endif /*JREMOD*/
+
return (1);
}
@@ -2289,4 +2299,28 @@ si_mctl2str(cmd)
}
return("BAD");
}
+
+
+#ifdef JREMOD
+struct cdevsw si_cdevsw =
+ { siopen, siclose, siread, siwrite, /*68*/
+ siioctl, sistop, nxreset, sidevtotty,/* si */
+ ttselect, nxmmap, NULL };
+
+static si_devsw_installed = 0;
+
+static void si_devsw_install()
+{
+ dev_t descript;
+ if( ! si_devsw_installed ) {
+ descript = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&descript,&si_cdevsw,NULL);
+#if defined(BDEV_MAJOR)
+ descript = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&descript,&si_bdevsw,NULL);
+#endif /*BDEV_MAJOR*/
+ si_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif
diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c
index cf18650..b8aa9e2 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.118 1995/11/20 12:13:27 phk Exp $
+ * $Id: sio.c,v 1.119 1995/11/21 09:15:04 bde Exp $
*/
#include "sio.h"
@@ -96,6 +96,12 @@
#define com_scr 7 /* scratch register for 16450-16550 (R/W) */
+#ifdef JREMOD
+#define CDEV_MAJOR 28
+static void sio_devsw_install();
+#endif /*JREMOD*/
+
+
#include "crd.h"
#if NCRD > 0
#include <pccard/card.h>
@@ -877,6 +883,10 @@ determined_type: ;
s = spltty();
com_addr(unit) = com;
splx(s);
+#ifdef JREMOD
+ sio_devsw_install();
+#endif /*JREMOD*/
+
return (1);
}
@@ -2556,4 +2566,26 @@ error:
}
#endif /* DSI_SOFT_MODEM */
+#ifdef JREMOD
+struct cdevsw sio_cdevsw =
+ { sioopen, sioclose, sioread, siowrite, /*28*/
+ sioioctl, siostop, nxreset, siodevtotty,/* sio */
+ ttselect, nommap, NULL };
+
+static sio_devsw_installed = 0;
+
+static void sio_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ sio_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NSIO > 0 */
diff --git a/sys/dev/speaker/spkr.c b/sys/dev/speaker/spkr.c
index 82a7021..050ba18 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.16 1995/09/08 11:07:59 bde Exp $
+ * $Id: spkr.c,v 1.17 1995/09/09 18:09:55 davidg Exp $
*/
#include "speaker.h"
@@ -23,19 +23,34 @@
#include <machine/clock.h>
#include <machine/speaker.h>
+#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>
-#include "sys/kernel.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*/
+#endif /*DEVFS*/ /* JREMOD */
/**************** MACHINE DEPENDENT PART STARTS HERE *************************
*
@@ -572,5 +587,27 @@ struct proc *p;
return(EINVAL);
}
+#ifdef JREMOD
+struct cdevsw spkr_cdevsw =
+ { spkropen, spkrclose, noread, spkrwrite, /*26*/
+ spkrioctl, nostop, nullreset, nodevtotty,/* spkr */
+ seltrue, nommap, NULL };
+
+static spkr_devsw_installed = 0;
+
+static void spkr_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ spkr_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NSPEAKER > 0 */
/* spkr.c ends here */
diff --git a/sys/i386/isa/asc.c b/sys/i386/isa/asc.c
index 4e994d9..18a02c2 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.4 1995/09/08 18:30:33 julian Exp $
+ * $Id: asc.c,v 1.5 1995/09/08 19:01:28 julian Exp $
*/
#include "asc.h"
@@ -80,6 +80,11 @@
#include <sys/devfsext.h>
extern d_open_t ascopen;
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 71
+static void asc_devsw_install();
+#endif /*JREMOD*/
#endif
#endif /* FREEBSD_1_X */
@@ -430,6 +435,10 @@ ascprobe (struct isa_device *isdp)
scu->flags &= ~DEBUG;
scu->icnt = 0;
+#ifdef JREMOD
+ asc_devsw_install();
+#endif /*JREMOD*/
+
return PROBE_SUCCESS;
}
@@ -859,4 +868,27 @@ ascselect(dev_t dev, int rw, struct proc *p)
splx(sps);
return 0;
}
+
+#ifdef JREMOD
+struct cdevsw asc_cdevsw =
+ { ascopen, ascclose, ascread, nowrite, /*71*/
+ ascioctl, nostop, nullreset, nodevtotty, /* asc */
+ ascselect, nommap, NULL };
+
+static asc_devsw_installed = 0;
+
+static void asc_devsw_install()
+{
+ dev_t descript;
+ if( ! asc_devsw_installed ) {
+ descript = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&descript,&asc_cdevsw,NULL);
+#if defined(BDEV_MAJOR)
+ descript = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&descript,&asc_bdevsw,NULL);
+#endif /*BDEV_MAJOR*/
+ asc_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NASC > 0 */
diff --git a/sys/i386/isa/b004.c b/sys/i386/isa/b004.c
index afe48e7..fd2910d 100644
--- a/sys/i386/isa/b004.c
+++ b/sys/i386/isa/b004.c
@@ -60,6 +60,12 @@
#include <i386/isa/isa.h>
#include <i386/isa/isa_device.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 8
+static void bqu_devsw_install();
+#endif /*JREMOD*/
+
static u_char d_inb(u_int port);
static void d_outb(u_int port, u_char data);
@@ -571,6 +577,10 @@ 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++) {
if((idp->id_iobase==0)&&((!b004_base_addresses[test])||
@@ -625,4 +635,26 @@ 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*/
+ bquioctl, nostop, nullreset, nodevtotty,/* tputer */
+ bquselect, nommap, NULL };
+
+static bqu_devsw_installed = 0;
+
+static void bqu_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ bqu_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NBQU */
diff --git a/sys/i386/isa/ctx.c b/sys/i386/isa/ctx.c
index 3cec50d..c1edbf1 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.6 1995/05/30 08:01:27 rgrimes Exp $
+ * $Id: ctx.c,v 1.7 1995/09/08 11:07:34 bde Exp $
*/
/*
@@ -126,6 +126,11 @@
#include <i386/isa/ctxreg.h>
#include <machine/ioctl_ctx.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 40
+static void ctx_devsw_install();
+#endif /*JREMOD*/
int waitvb(short);
/* state flags */
@@ -184,8 +189,12 @@ ctxprobe(struct isa_device * devp)
if (inb(devp->id_iobase) == 0xff) /* 0xff only if board absent */
status = 0;
- else
- status = 1;
+ else {
+ status = 1; /*XXX uses only one port? */
+#ifdef JREMOD
+ ctx_devsw_install();
+#endif /*JREMOD*/
+ }
return (status);
}
@@ -438,4 +447,28 @@ waitvb(short port)
return (0);
}
+
+#ifdef JREMOD
+struct cdevsw ctx_cdevsw =
+ { ctxopen, ctxclose, ctxread, ctxwrite, /*40*/
+ ctxioctl, nostop, nullreset, nodevtotty,/* cortex */
+ seltrue, nommap, NULL };
+
+static ctx_devsw_installed = 0;
+
+static void ctx_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ ctx_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
+
#endif /* NCTX > 0 */
diff --git a/sys/i386/isa/cx.c b/sys/i386/isa/cx.c
index 1770061..a3f941e 100644
--- a/sys/i386/isa/cx.c
+++ b/sys/i386/isa/cx.c
@@ -39,6 +39,10 @@
# include <machine/pio.h>
# define RB_GETC(q) getc(q)
# else /* BSD 4.4 Lite */
+# ifdef JREMOD
+# define CDEV_MAJOR 42
+ void cx_devsw_install(); /* can't be static, needed in if_cx.c */
+# endif /*JREMOD*/
# include <sys/devconf.h>
# endif
#endif
@@ -961,4 +965,27 @@ void cxtimeout (void *a)
}
timeout (cxtimeout, 0, hz*5);
}
+
+#ifdef JREMOD
+struct cdevsw cx_cdevsw =
+ { cxopen, cxclose, cxread, cxwrite, /*42*/
+ cxioctl, cxstop, nullreset, cxdevtotty,/* cronyx */
+ cxselect, nommap, NULL };
+
+static cx_devsw_installed = 0;
+
+void cx_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ cx_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NCX */
diff --git a/sys/i386/isa/cy.c b/sys/i386/isa/cy.c
index ce0816c..c2f3725 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.18 1995/11/04 17:07:14 bde Exp $
+ * $Id: cy.c,v 1.19 1995/11/26 17:13:23 bde Exp $
*/
#include "cy.h"
@@ -397,6 +397,11 @@ static int cy_nr_cd1400s[NCY];
#undef RxFifoThreshold
static int volatile RxFifoThreshold = (CD1400_RX_FIFO_SIZE / 2);
+#ifdef JREMOD
+#define CDEV_MAJOR 48
+static void cy_devsw_install();
+#endif /*JREMOD*/
+
static struct kern_devconf kdc_sio[NCY] = { {
0, 0, 0, /* filled in by dev_attach */
"cyc", 0, { MDDT_ISA, 0, "tty" },
@@ -437,6 +442,10 @@ 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) */
cy_inb(iobase, CY16_RESET); /* XXX? */
@@ -2511,4 +2520,27 @@ cystatus(unit)
}
#endif /* CyDebug */
+
+#ifdef JREMOD
+struct cdevsw cy_cdevsw =
+ { cyopen, cyclose, cyread, cywrite, /*48*/
+ cyioctl, cystop, nxreset, cydevtotty,/*cyclades*/
+ ttselect, nxmmap, NULL };
+
+static cy_devsw_installed = 0;
+
+static void cy_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ cy_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NCY > 0 */
diff --git a/sys/i386/isa/fd.c b/sys/i386/isa/fd.c
index 4601645..1af2cbf 100644
--- a/sys/i386/isa/fd.c
+++ b/sys/i386/isa/fd.c
@@ -43,7 +43,7 @@
* SUCH DAMAGE.
*
* from: @(#)fd.c 7.4 (Berkeley) 5/25/91
- * $Id: fd.c,v 1.70 1995/11/18 07:48:11 bde Exp $
+ * $Id: fd.c,v 1.71 1995/11/20 12:41:38 phk Exp $
*
*/
@@ -87,6 +87,11 @@
#include <sys/devfsext.h>
#endif
+#ifdef JREMOD
+#define CDEV_MAJOR 9
+#define BDEV_MAJOR 2
+static void fd_devsw_install();
+#endif /*JREMOD */
static int fd_goaway(struct kern_devconf *, int);
static int fdc_goaway(struct kern_devconf *, int);
static int fd_externalize(struct kern_devconf *, struct sysctl_req *);
@@ -513,6 +518,9 @@ fdprobe(struct isa_device *dev)
#ifndef DEV_LKM
fdc_registerdev(dev);
#endif
+#ifdef JREMOD
+ fd_devsw_install();
+#endif /*JREMOD*/
/* First - lets reset the floppy controller */
outb(dev->id_iobase+FDOUT, 0);
@@ -1884,6 +1892,33 @@ fdioctl(dev, cmd, addr, flag, p)
return (error);
}
+
+#ifdef JREMOD
+struct bdevsw fd_bdevsw =
+ { Fdopen, fdclose, fdstrategy, fdioctl, /*2*/
+ nxdump, zerosize, 0 };
+
+struct cdevsw fd_cdevsw =
+ { Fdopen, fdclose, rawread, rawwrite, /*9*/
+ fdioctl, nostop, nullreset, nodevtotty,/* Fd (!=fd) */
+ seltrue, nommap, fdstrategy };
+
+static fd_devsw_installed = 0;
+
+static void fd_devsw_install()
+{
+ dev_t descript;
+ if( ! fd_devsw_installed ) {
+ descript = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&descript,&fd_cdevsw,NULL);
+#if defined(BDEV_MAJOR)
+ descript = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&descript,&fd_bdevsw,NULL);
+#endif /*BDEV_MAJOR*/
+ fd_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif
/*
* Hello emacs, these are the
diff --git a/sys/i386/isa/gpib.c b/sys/i386/isa/gpib.c
index 00a23f1..8cbb0b7 100644
--- a/sys/i386/isa/gpib.c
+++ b/sys/i386/isa/gpib.c
@@ -47,6 +47,12 @@
#define SLEEP_MAX 1000
#define SLEEP_MIN 4
+#ifdef JREMOD
+#include <sys/conf.h>
+#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);
@@ -123,6 +129,10 @@ 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);
}
@@ -1253,6 +1263,27 @@ outb(CDOR,95); /*untalk*/
}
+#ifdef JREMOD
+struct cdevsw gp_cdevsw =
+ { gpopen, gpclose, noread, gpwrite, /*44*/
+ gpioctl, nostop, nullreset, nodevtotty,/* GPIB */
+ seltrue, nommap, NULL };
+
+static gp_devsw_installed = 0;
+static void gp_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ gp_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NGPIB > 0 */
diff --git a/sys/i386/isa/gsc.c b/sys/i386/isa/gsc.c
index 2e565c9..7abe841 100644
--- a/sys/i386/isa/gsc.c
+++ b/sys/i386/isa/gsc.c
@@ -57,6 +57,11 @@
* CONSTANTS & DEFINES
*
***********************************************************************/
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 47
+static void gsc_devsw_install();
+#endif /*JREMOD*/ /* clean up later */
#define PROBE_FAIL 0
#define PROBE_SUCCESS 1
@@ -499,6 +504,10 @@ 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 */
}
@@ -772,4 +781,27 @@ int gscioctl (dev_t dev, int cmd, caddr_t data, int flag, struct proc *p)
}
}
+
+#ifdef JREMOD
+struct cdevsw gsc_cdevsw =
+ { gscopen, gscclose, gscread, nowrite, /*47*/
+ gscioctl, nostop, nullreset, nodevtotty,/* gsc */
+ seltrue, nommap, NULL };
+
+static gsc_devsw_installed = 0;
+
+static void gsc_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ gsc_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NGSC > 0 */
diff --git a/sys/i386/isa/if_cx.c b/sys/i386/isa/if_cx.c
index 8ab4ac4..aff2fce 100644
--- a/sys/i386/isa/if_cx.c
+++ b/sys/i386/isa/if_cx.c
@@ -220,6 +220,7 @@ 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;
@@ -265,6 +266,10 @@ 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);
}
diff --git a/sys/i386/isa/joy.c b/sys/i386/isa/joy.c
index 8d0dc25..5870e62 100644
--- a/sys/i386/isa/joy.c
+++ b/sys/i386/isa/joy.c
@@ -41,6 +41,12 @@
#include <i386/isa/isa_device.h>
#include <i386/isa/timerreg.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 51
+static void joy_devsw_install();
+#endif /*JREMOD*/
+
/* The game port can manage 4 buttons and 4 variable resistors (usually 2
* joysticks, each with 2 buttons and 2 pots.) via the port at address 0x201.
* Getting the state of the buttons is done by reading the game port:
@@ -99,6 +105,10 @@ 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;
}
@@ -205,4 +215,27 @@ get_tick ()
return (high << 8) | low;
}
+
+#ifdef JREMOD
+struct cdevsw joy_cdevsw =
+ { joyopen, joyclose, joyread, nowrite, /*51*/
+ joyioctl, nostop, nullreset, nodevtotty,/*joystick */
+ seltrue, nommap, NULL};
+
+static joy_devsw_installed = 0;
+
+static void joy_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ joy_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NJOY > 0 */
diff --git a/sys/i386/isa/labpc.c b/sys/i386/isa/labpc.c
index f173944..9d0cf7f 100644
--- a/sys/i386/isa/labpc.c
+++ b/sys/i386/isa/labpc.c
@@ -59,6 +59,12 @@
#include <i386/isa/isa_device.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 66
+static void labpc_devsw_install();
+#endif /*JREMOD*/
+
/* Miniumum timeout:
*/
@@ -495,6 +501,10 @@ 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;
}
@@ -1096,3 +1106,27 @@ labpcioctl(dev_t dev, int cmd, caddr_t arg, int mode, struct proc *p)
return ENOTTY;
}
}
+
+
+#ifdef JREMOD
+struct cdevsw labpc_cdevsw =
+ { labpcopen, labpcclose, rawread, rawwrite, /*66*/
+ labpcioctl, nostop, nullreset, nodevtotty,/* labpc */
+ seltrue, nommap, labpcstrategy };
+
+static labpc_devsw_installed = 0;
+
+static void labpc_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ labpc_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
diff --git a/sys/i386/isa/lpt.c b/sys/i386/isa/lpt.c
index 29055f8..e96a0fd 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.37 1995/11/14 09:56:43 phk Exp $
+ * $Id: lpt.c,v 1.38 1995/11/16 09:55:57 bde Exp $
*/
/*
@@ -139,6 +139,12 @@
#endif
#endif /* INET */
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 16
+static void lpt_devsw_install();
+#endif /*JREMOD*/
+
#define LPINITRDY 4 /* wait up to 4 seconds for a ready */
#define LPTOUTTIME 4 /* wait up to 4 seconds for a ready */
#define LPPRI (PZERO+8)
@@ -437,6 +443,10 @@ 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);
}
@@ -1143,4 +1153,26 @@ end:
#endif /* INET */
+#ifdef JREMOD
+struct cdevsw lpt_cdevsw =
+ { lptopen, lptclose, noread, lptwrite, /*16*/
+ lptioctl, nullstop, nullreset, nodevtotty,/* lpt */
+ seltrue, nommap, nostrat};
+
+static lpt_devsw_installed = 0;
+
+static void lpt_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ lpt_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NLPT */
diff --git a/sys/i386/isa/mcd.c b/sys/i386/isa/mcd.c
index 2b6b036..0571a93 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.47 1995/10/28 15:39:15 phk Exp $
+ * $Id: mcd.c,v 1.48 1995/11/04 13:23:35 bde Exp $
*/
static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
@@ -70,6 +70,12 @@ static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
#include <i386/isa/isa_device.h>
#include <i386/isa/mcdreg.h>
+#ifdef JREMOD
+#define CDEV_MAJOR 29
+#define BDEV_MAJOR 7
+static void mcd_devsw_install();
+#endif /*JREMOD */
+
#define MCD_TRACE(format, args...) \
{ \
if (mcd_data[unit].debug) { \
@@ -256,6 +262,10 @@ 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;
}
@@ -1659,4 +1669,31 @@ mcd_resume(int unit)
return EINVAL;
return mcd_play(unit, &cd->lastpb);
}
+
+#ifdef JREMOD
+struct bdevsw mcd_bdevsw =
+ { mcdopen, mcdclose, mcdstrategy, mcdioctl, /*7*/
+ nxdump, mcdsize, 0 };
+
+struct cdevsw mcd_cdevsw =
+ { mcdopen, mcdclose, rawread, nowrite, /*29*/
+ mcdioctl, nostop, nullreset, nodevtotty,/* mitsumi cd */
+ seltrue, nommap, mcdstrategy };
+
+static mcd_devsw_installed = 0;
+
+static void mcd_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ mcd_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NMCD > 0 */
diff --git a/sys/i386/isa/mse.c b/sys/i386/isa/mse.c
index b1484d1..5499a2a 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.14 1995/09/08 11:07:50 bde Exp $
+ * $Id: mse.c,v 1.15 1995/11/04 17:07:37 bde Exp $
*/
/*
* Driver for the Logitech and ATI Inport Bus mice for use with 386bsd and
@@ -61,6 +61,12 @@
#include <i386/isa/isa_device.h>
#include <i386/isa/icu.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 27
+static void mse_devsw_install();
+#endif /*JREMOD*/
+
static int mseprobe(struct isa_device *);
static int mseattach(struct isa_device *);
@@ -233,6 +239,9 @@ 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);
}
@@ -565,4 +574,27 @@ mse_getati(port, dx, dy, but)
outb(port + MSE_PORTA, MSE_INPORT_MODE);
outb(port + MSE_PORTB, MSE_INPORT_INTREN);
}
+
+#ifdef JREMOD
+struct cdevsw mse_cdevsw =
+ { mseopen, mseclose, mseread, nowrite, /*27*/
+ noioc, nostop, nullreset, nodevtotty,/* mse */
+ mseselect, nommap, NULL };
+
+static mse_devsw_installed = 0;
+
+static void mse_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ mse_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NMSE */
diff --git a/sys/i386/isa/pcaudio.c b/sys/i386/isa/pcaudio.c
index d30e106..a6f006a 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.16 1995/11/04 13:23:36 bde Exp $
+ * $Id: pcaudio.c,v 1.17 1995/11/16 09:56:02 bde Exp $
*/
#include "pca.h"
@@ -49,6 +49,11 @@
#include <i386/isa/sound/ulaw.h>
+#ifdef JREMOD
+#define CDEV_MAJOR 24
+static void pca_devsw_install();
+#endif /*JREMOD*/
+
#define BUF_SIZE 8192
#define SAMPLE_RATE 8000
#define INTERRUPT_RATE 16000
@@ -260,9 +265,13 @@ 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);
#endif /*DEVFS*/
+
return 1;
}
@@ -477,4 +486,27 @@ pcaselect(dev_t dev, int rw, struct proc *p)
return(0);
}
}
+
+#ifdef JREMOD
+struct cdevsw pca_cdevsw =
+ { pcaopen, pcaclose, noread, pcawrite, /*24*/
+ pcaioctl, nostop, nullreset, nodevtotty,/* pcaudio */
+ pcaselect, nommap, NULL };
+
+static pca_devsw_installed = 0;
+
+static void pca_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ pca_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif
diff --git a/sys/i386/isa/psm.c b/sys/i386/isa/psm.c
index 047e6a3..14b35e4 100644
--- a/sys/i386/isa/psm.c
+++ b/sys/i386/isa/psm.c
@@ -66,6 +66,12 @@
#include <i386/isa/isa_device.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 21
+static void psm_devsw_install();
+#endif /*JREMOD*/
+
#define DATA 0 /* Offset for data port, read-write */
#define CNTRL 4 /* Offset for control port, write-only */
#define STATUS 4 /* Offset for status port, read-only */
@@ -198,9 +204,13 @@ int psmattach(struct isa_device *dvp)
sc->state = 0;
+#ifdef JREMOD
+ psm_devsw_install();
+#endif /*JREMOD*/
+
/* Done */
- return(0);
+ return(0); /* XXX eh? usually 1 indicates success */
}
int psmopen(dev_t dev, int flag, int fmt, struct proc *p)
@@ -457,6 +467,30 @@ int psmselect(dev_t dev, int rw, struct proc *p)
return(ret);
}
+
+#ifdef JREMOD
+struct cdevsw psm_cdevsw =
+ { psmopen, psmclose, psmread, nowrite, /*21*/
+ psmioctl, nostop, nullreset, nodevtotty,/* psm mice */
+ psmselect, nommap, NULL };
+
+static psm_devsw_installed = 0;
+
+static void psm_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ psm_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
+
#endif
diff --git a/sys/i386/isa/rc.c b/sys/i386/isa/rc.c
index 0feabf0..6203aff 100644
--- a/sys/i386/isa/rc.c
+++ b/sys/i386/isa/rc.c
@@ -58,6 +58,12 @@
#include <i386/isa/ic/cd180.h>
#include <i386/isa/rcreg.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 63
+static void rc_devsw_install();
+#endif /*JREMOD*/
+
/* Prototypes */
int rcprobe __P((struct isa_device *));
int rcattach __P((struct isa_device *));
@@ -277,6 +283,10 @@ int rcattach(dvp)
rc_wakeup((void *)NULL);
rc_wakeup_started = 0;
}
+#ifdef JREMOD
+ rc_devsw_install();
+#endif /*JREMOD*/
+
return 1;
}
@@ -1492,4 +1502,27 @@ rc_wait0(nec, unit, chan, line)
printf("rc%d/%d: channel command timeout, rc.c line: %d\n",
unit, chan, line);
}
+
+#ifdef JREMOD
+struct cdevsw rc_cdevsw =
+ { rcopen, rcclose, rcread, rcwrite, /*63*/
+ rcioctl, rcstop, nxreset, rcdevtotty,/* rc */
+ ttselect, nommap, NULL };
+
+static rc_devsw_installed = 0;
+
+static void rc_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ rc_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NRC */
diff --git a/sys/i386/isa/scd.c b/sys/i386/isa/scd.c
index c7bbe07..7d4fdec 100644
--- a/sys/i386/isa/scd.c
+++ b/sys/i386/isa/scd.c
@@ -41,7 +41,7 @@
*/
-/* $Id: scd.c,v 1.8 1995/10/28 15:39:17 phk Exp $ */
+/* $Id: scd.c,v 1.9 1995/11/04 13:23:39 bde Exp $ */
/* Please send any comments to micke@dynas.se */
@@ -72,6 +72,12 @@
#include <i386/isa/isa_device.h>
#include <i386/isa/scdreg.h>
+#ifdef JREMOD
+#define CDEV_MAJOR 45
+#define BDEV_MAJOR 16
+static void scd_devsw_install();
+#endif /*JREMOD */
+
#define scd_part(dev) ((minor(dev)) & 7)
#define scd_unit(dev) (((minor(dev)) & 0x38) >> 3)
#define scd_phys(dev) (((minor(dev)) & 0x40) >> 6)
@@ -218,6 +224,10 @@ 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;
}
@@ -1519,4 +1529,31 @@ scd_toc_entrys (int unit, struct ioc_read_toc_entry *te)
return 0;
}
+#ifdef JREMOD
+struct bdevsw scd_bdevsw =
+ { scdopen, scdclose, scdstrategy, scdioctl, /*16*/
+ nxdump, scdsize, 0 };
+
+struct cdevsw scd_cdevsw =
+ { scdopen, scdclose, rawread, nowrite, /*45*/
+ scdioctl, nostop, nullreset, nodevtotty,/* sony cd */
+ seltrue, nommap, scdstrategy };
+
+static scd_devsw_installed = 0;
+
+static void scd_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ scd_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
+
#endif /* NSCD > 0 */
diff --git a/sys/i386/isa/si.c b/sys/i386/isa/si.c
index c022248..93accc2 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.15 1995/11/28 02:07:34 peter Exp $
+ * $Id: si.c,v 1.16 1995/11/28 07:29:29 bde Exp $
*/
#ifndef lint
@@ -81,6 +81,12 @@ static char si_copyright1[] = "@(#) (C) Specialix International, 1990,1992",
enum si_mctl { GET, SET, BIS, BIC };
+#ifdef JREMOD
+#define CDEV_MAJOR 68
+static void si_devsw_install();
+#endif /*JREMOD*/
+
+
static void si_command __P((struct si_port *, int, int));
static int si_modem __P((struct si_port *, enum si_mctl, int));
static void si_write_enable __P((struct si_port *, int));
@@ -651,6 +657,10 @@ mem_fail:
}
done_chartimes = 1;
}
+#ifdef JREMOD
+ si_devsw_install();
+#endif /*JREMOD*/
+
return (1);
}
@@ -2289,4 +2299,28 @@ si_mctl2str(cmd)
}
return("BAD");
}
+
+
+#ifdef JREMOD
+struct cdevsw si_cdevsw =
+ { siopen, siclose, siread, siwrite, /*68*/
+ siioctl, sistop, nxreset, sidevtotty,/* si */
+ ttselect, nxmmap, NULL };
+
+static si_devsw_installed = 0;
+
+static void si_devsw_install()
+{
+ dev_t descript;
+ if( ! si_devsw_installed ) {
+ descript = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&descript,&si_cdevsw,NULL);
+#if defined(BDEV_MAJOR)
+ descript = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&descript,&si_bdevsw,NULL);
+#endif /*BDEV_MAJOR*/
+ si_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif
diff --git a/sys/i386/isa/sio.c b/sys/i386/isa/sio.c
index cf18650..b8aa9e2 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.118 1995/11/20 12:13:27 phk Exp $
+ * $Id: sio.c,v 1.119 1995/11/21 09:15:04 bde Exp $
*/
#include "sio.h"
@@ -96,6 +96,12 @@
#define com_scr 7 /* scratch register for 16450-16550 (R/W) */
+#ifdef JREMOD
+#define CDEV_MAJOR 28
+static void sio_devsw_install();
+#endif /*JREMOD*/
+
+
#include "crd.h"
#if NCRD > 0
#include <pccard/card.h>
@@ -877,6 +883,10 @@ determined_type: ;
s = spltty();
com_addr(unit) = com;
splx(s);
+#ifdef JREMOD
+ sio_devsw_install();
+#endif /*JREMOD*/
+
return (1);
}
@@ -2556,4 +2566,26 @@ error:
}
#endif /* DSI_SOFT_MODEM */
+#ifdef JREMOD
+struct cdevsw sio_cdevsw =
+ { sioopen, sioclose, sioread, siowrite, /*28*/
+ sioioctl, siostop, nxreset, siodevtotty,/* sio */
+ ttselect, nommap, NULL };
+
+static sio_devsw_installed = 0;
+
+static void sio_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ sio_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NSIO > 0 */
diff --git a/sys/i386/isa/spigot.c b/sys/i386/isa/spigot.c
index 05d231c..d8c8ff1 100644
--- a/sys/i386/isa/spigot.c
+++ b/sys/i386/isa/spigot.c
@@ -70,6 +70,12 @@ error "Can only have 1 spigot configured."
#include <i386/isa/isa.h>
#include <i386/isa/isa_device.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 11
+static void spigot_devsw_install();
+#endif /*JREMOD*/
+
struct spigot_softc {
u_long flags;
u_long maddr;
@@ -152,6 +158,10 @@ 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;
}
@@ -273,4 +283,27 @@ 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*/
+ spigot_ioctl, nostop, nullreset, nodevtotty,/* Spigot */
+ spigot_select, spigot_mmap, NULL };
+
+static spigot_devsw_installed = 0;
+
+static void spigot_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ spigot_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
+
#endif /* NSPIGOT */
diff --git a/sys/i386/isa/spkr.c b/sys/i386/isa/spkr.c
index 82a7021..050ba18 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.16 1995/09/08 11:07:59 bde Exp $
+ * $Id: spkr.c,v 1.17 1995/09/09 18:09:55 davidg Exp $
*/
#include "speaker.h"
@@ -23,19 +23,34 @@
#include <machine/clock.h>
#include <machine/speaker.h>
+#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>
-#include "sys/kernel.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*/
+#endif /*DEVFS*/ /* JREMOD */
/**************** MACHINE DEPENDENT PART STARTS HERE *************************
*
@@ -572,5 +587,27 @@ struct proc *p;
return(EINVAL);
}
+#ifdef JREMOD
+struct cdevsw spkr_cdevsw =
+ { spkropen, spkrclose, noread, spkrwrite, /*26*/
+ spkrioctl, nostop, nullreset, nodevtotty,/* spkr */
+ seltrue, nommap, NULL };
+
+static spkr_devsw_installed = 0;
+
+static void spkr_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ spkr_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NSPEAKER > 0 */
/* spkr.c ends here */
diff --git a/sys/i386/isa/tw.c b/sys/i386/isa/tw.c
index faaf0e9..7b5dbcc 100644
--- a/sys/i386/isa/tw.c
+++ b/sys/i386/isa/tw.c
@@ -147,6 +147,12 @@
#include "i386/isa/isa_device.h"
+#ifdef JREMOD
+#include <sys/conf.h>
+#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).
@@ -342,6 +348,10 @@ 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);
}
@@ -981,4 +991,27 @@ static int twchecktime(int target, int tol)
}
#endif /* HIRESTIME */
+#ifdef JREMOD
+struct cdevsw tw_cdevsw =
+ { twopen, twclose, twread, twwrite, /*19*/
+ noioc, nullstop, nullreset, nodevtotty,/* tw */
+ twselect, nommap, nostrat };
+
+static tw_devsw_installed = 0;
+
+static void tw_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ tw_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
+
#endif NTW
diff --git a/sys/i386/isa/wcd.c b/sys/i386/isa/wcd.c
index 868e3be..527d14a 100644
--- a/sys/i386/isa/wcd.c
+++ b/sys/i386/isa/wcd.c
@@ -32,6 +32,13 @@
#include <i386/include/cpufunc.h>
#include <i386/isa/atapi.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#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*);
#define NUNIT (NWDC*2) /* Max. number of devices */
@@ -315,6 +322,10 @@ 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);
}
@@ -1159,4 +1170,31 @@ int wcd_mod (struct lkm_table *lkmtp, int cmd, int ver)
}
#endif /* WCD_MODULE */
+#ifdef JREMOD
+struct bdevsw wcd_bdevsw =
+ { wcdbopen, wcdbclose, wcdstrategy, wcdioctl, /*19*/
+ nxdump, zerosize, 0 };
+
+struct cdevsw wcd_cdevsw =
+ { wcdropen, wcdrclose, rawread, nowrite, /*69*/
+ wcdioctl, nostop, nullreset, nodevtotty,/* atapi */
+ seltrue, nommap, wcdstrategy };
+
+static wcd_devsw_installed = 0;
+
+static void wcd_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ wcd_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
+
#endif /* NWCD && NWDC && ATAPI */
diff --git a/sys/i386/isa/wd.c b/sys/i386/isa/wd.c
index 49ab5ce..1b00118 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.91 1995/11/20 12:41:53 phk Exp $
+ * $Id: wd.c,v 1.92 1995/11/23 07:24:41 dyson Exp $
*/
/* TODO:
@@ -105,6 +105,12 @@ extern void wdstart(int ctrlr);
#define WDOPT_SLEEPHACK 0x4000
#define WDOPT_MULTIMASK 0x00ff
+#ifdef JREMOD
+#define CDEV_MAJOR 3
+#define BDEV_MAJOR 0
+static void wd_devsw_install();
+#endif /*JREMOD */
+
static int wd_goaway(struct kern_devconf *, int);
static int wdc_goaway(struct kern_devconf *, int);
static int wd_externalize(struct kern_devconf *, struct sysctl_req *);
@@ -314,6 +320,10 @@ 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 */
@@ -2116,4 +2126,30 @@ wdwait(struct disk *du, u_char bits_wanted, int timeout)
return (-1);
}
+#ifdef JREMOD
+struct bdevsw wd_bdevsw =
+ { wdopen, wdclose, wdstrategy, wdioctl, /*0*/
+ wddump, wdsize, 0 };
+
+struct cdevsw wd_cdevsw =
+ { wdopen, wdclose, rawread, rawwrite, /*3*/
+ wdioctl, nostop, nullreset, nodevtotty,/* wd */
+ seltrue, nommap, wdstrategy };
+
+static wd_devsw_installed = 0;
+
+static void wd_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ wd_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NWDC > 0 */
diff --git a/sys/i386/isa/wt.c b/sys/i386/isa/wt.c
index 8ace33e..8a4e609d 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.19 1995/09/08 11:08:03 bde Exp $
+ * $Id: wt.c,v 1.20 1995/10/28 15:39:31 phk Exp $
*
*/
@@ -76,6 +76,13 @@
#include <i386/isa/isa_device.h>
#include <i386/isa/wtreg.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 10
+#define BDEV_MAJOR 3
+static void wt_devsw_install();
+#endif /*JREMOD */
+
/*
* Uncomment this to enable internal device tracing.
*/
@@ -261,6 +268,10 @@ 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);
}
@@ -963,4 +974,32 @@ static int wtstatus (wtinfo_t *t)
splx(x);
return (1);
}
+
+#ifdef JREMOD
+struct bdevsw wt_bdevsw =
+ { wtopen, wtclose, wtstrategy, wtioctl, /*3*/
+ wtdump, wtsize, B_TAPE };
+
+struct cdevsw wt_cdevsw =
+ { wtopen, wtclose, rawread, rawwrite, /*10*/
+ wtioctl, nostop, nullreset, nodevtotty,/* wt */
+ seltrue, nommap, wtstrategy };
+
+static wt_devsw_installed = 0;
+
+static void wt_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ wt_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
+
#endif /* NWT */
diff --git a/sys/isa/fd.c b/sys/isa/fd.c
index 4601645..1af2cbf 100644
--- a/sys/isa/fd.c
+++ b/sys/isa/fd.c
@@ -43,7 +43,7 @@
* SUCH DAMAGE.
*
* from: @(#)fd.c 7.4 (Berkeley) 5/25/91
- * $Id: fd.c,v 1.70 1995/11/18 07:48:11 bde Exp $
+ * $Id: fd.c,v 1.71 1995/11/20 12:41:38 phk Exp $
*
*/
@@ -87,6 +87,11 @@
#include <sys/devfsext.h>
#endif
+#ifdef JREMOD
+#define CDEV_MAJOR 9
+#define BDEV_MAJOR 2
+static void fd_devsw_install();
+#endif /*JREMOD */
static int fd_goaway(struct kern_devconf *, int);
static int fdc_goaway(struct kern_devconf *, int);
static int fd_externalize(struct kern_devconf *, struct sysctl_req *);
@@ -513,6 +518,9 @@ fdprobe(struct isa_device *dev)
#ifndef DEV_LKM
fdc_registerdev(dev);
#endif
+#ifdef JREMOD
+ fd_devsw_install();
+#endif /*JREMOD*/
/* First - lets reset the floppy controller */
outb(dev->id_iobase+FDOUT, 0);
@@ -1884,6 +1892,33 @@ fdioctl(dev, cmd, addr, flag, p)
return (error);
}
+
+#ifdef JREMOD
+struct bdevsw fd_bdevsw =
+ { Fdopen, fdclose, fdstrategy, fdioctl, /*2*/
+ nxdump, zerosize, 0 };
+
+struct cdevsw fd_cdevsw =
+ { Fdopen, fdclose, rawread, rawwrite, /*9*/
+ fdioctl, nostop, nullreset, nodevtotty,/* Fd (!=fd) */
+ seltrue, nommap, fdstrategy };
+
+static fd_devsw_installed = 0;
+
+static void fd_devsw_install()
+{
+ dev_t descript;
+ if( ! fd_devsw_installed ) {
+ descript = makedev(CDEV_MAJOR,0);
+ cdevsw_add(&descript,&fd_cdevsw,NULL);
+#if defined(BDEV_MAJOR)
+ descript = makedev(BDEV_MAJOR,0);
+ bdevsw_add(&descript,&fd_bdevsw,NULL);
+#endif /*BDEV_MAJOR*/
+ fd_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif
/*
* Hello emacs, these are the
diff --git a/sys/isa/joy.c b/sys/isa/joy.c
index 8d0dc25..5870e62 100644
--- a/sys/isa/joy.c
+++ b/sys/isa/joy.c
@@ -41,6 +41,12 @@
#include <i386/isa/isa_device.h>
#include <i386/isa/timerreg.h>
+#ifdef JREMOD
+#include <sys/conf.h>
+#define CDEV_MAJOR 51
+static void joy_devsw_install();
+#endif /*JREMOD*/
+
/* The game port can manage 4 buttons and 4 variable resistors (usually 2
* joysticks, each with 2 buttons and 2 pots.) via the port at address 0x201.
* Getting the state of the buttons is done by reading the game port:
@@ -99,6 +105,10 @@ 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;
}
@@ -205,4 +215,27 @@ get_tick ()
return (high << 8) | low;
}
+
+#ifdef JREMOD
+struct cdevsw joy_cdevsw =
+ { joyopen, joyclose, joyread, nowrite, /*51*/
+ joyioctl, nostop, nullreset, nodevtotty,/*joystick */
+ seltrue, nommap, NULL};
+
+static joy_devsw_installed = 0;
+
+static void joy_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ joy_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NJOY > 0 */
diff --git a/sys/isa/sio.c b/sys/isa/sio.c
index cf18650..b8aa9e2 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.118 1995/11/20 12:13:27 phk Exp $
+ * $Id: sio.c,v 1.119 1995/11/21 09:15:04 bde Exp $
*/
#include "sio.h"
@@ -96,6 +96,12 @@
#define com_scr 7 /* scratch register for 16450-16550 (R/W) */
+#ifdef JREMOD
+#define CDEV_MAJOR 28
+static void sio_devsw_install();
+#endif /*JREMOD*/
+
+
#include "crd.h"
#if NCRD > 0
#include <pccard/card.h>
@@ -877,6 +883,10 @@ determined_type: ;
s = spltty();
com_addr(unit) = com;
splx(s);
+#ifdef JREMOD
+ sio_devsw_install();
+#endif /*JREMOD*/
+
return (1);
}
@@ -2556,4 +2566,26 @@ error:
}
#endif /* DSI_SOFT_MODEM */
+#ifdef JREMOD
+struct cdevsw sio_cdevsw =
+ { sioopen, sioclose, sioread, siowrite, /*28*/
+ sioioctl, siostop, nxreset, siodevtotty,/* sio */
+ ttselect, nommap, NULL };
+
+static sio_devsw_installed = 0;
+
+static void sio_devsw_install()
+{
+ dev_t descript;
+ 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*/
+ sio_devsw_installed = 1;
+ }
+}
+#endif /* JREMOD */
#endif /* NSIO > 0 */
OpenPOWER on IntegriCloud