diff options
Diffstat (limited to 'sys/isa')
-rw-r--r-- | sys/isa/joy.c | 37 | ||||
-rw-r--r-- | sys/isa/sio.c | 37 |
2 files changed, 46 insertions, 28 deletions
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 */ |