diff --git a/sys/alpha/alpha/cons.c b/sys/alpha/alpha/cons.c index 1cb7ac2a30e..16f6933ab51 100644 --- a/sys/alpha/alpha/cons.c +++ b/sys/alpha/alpha/cons.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * from: @(#)cons.c 7.2 (Berkeley) 5/9/91 - * $Id: cons.c,v 1.7 1999/05/15 18:14:03 dfr Exp $ + * $Id: cons.c,v 1.8 1999/05/30 16:50:40 phk Exp $ */ #include "opt_devfs.h" @@ -444,23 +444,16 @@ cnputc(c) } } -static int cn_devsw_installed = 0; - static void cn_drvinit(void *unused) { dev_t dev; - if( ! cn_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&cn_cdevsw,NULL); - cn_devsw_installed = 1; + cdevsw_add(&dev); #ifdef DEVFS - cn_devfs_token = devfs_add_devswf(&cn_cdevsw, 0, DV_CHR, - UID_ROOT, GID_WHEEL, 0600, - "console"); + cn_devfs_token = devfs_add_devswf(&cn_cdevsw, 0, DV_CHR, + UID_ROOT, GID_WHEEL, 0600, "console"); #endif - } } SYSINIT(cndev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,cn_drvinit,NULL) diff --git a/sys/alpha/alpha/mem.c b/sys/alpha/alpha/mem.c index c266810ad1e..22f9d1180e0 100644 --- a/sys/alpha/alpha/mem.c +++ b/sys/alpha/alpha/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.8 1999/05/29 19:47:51 gallatin Exp $ + * $Id: mem.c,v 1.9 1999/05/30 16:50:43 phk Exp $ */ /* @@ -445,23 +445,14 @@ iszerodev(dev) && (minor(dev) == 0x02600000))); } - - -static int mem_devsw_installed; - 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; + cdevsw_add(&mem_cdevsw); #ifdef DEVFS - memdevfs_init(); + memdevfs_init(); #endif - } } SYSINIT(memdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,mem_drvinit,NULL) diff --git a/sys/amd64/amd64/autoconf.c b/sys/amd64/amd64/autoconf.c index 0dcad73fa94..9175d608e89 100644 --- a/sys/amd64/amd64/autoconf.c +++ b/sys/amd64/amd64/autoconf.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)autoconf.c 7.1 (Berkeley) 5/9/91 - * $Id: autoconf.c,v 1.122 1999/05/12 07:40:50 phk Exp $ + * $Id: autoconf.c,v 1.123 1999/05/24 00:30:49 jb Exp $ */ /* @@ -156,7 +156,7 @@ find_cdrom_root() orootdev = rootdev; for (i = 0 ; i < 2; i++) for (j = 0 ; try_cdrom[j].name ; j++) { - if (try_cdrom[j].major >= nblkdev) + if (try_cdrom[j].major >= NUMCDEVSW) continue; rootdev = makedev(try_cdrom[j].major, i * 8); bd = bdevsw(rootdev); @@ -382,7 +382,7 @@ setdumpdev(dev) return (0); } maj = major(dev); - if (maj >= nblkdev || bdevsw(dev) == NULL) + if (bdevsw(dev) == NULL) return (ENXIO); /* XXX is this right? */ if (bdevsw(dev)->d_psize == NULL) return (ENXIO); /* XXX should be ENODEV ? */ @@ -435,7 +435,7 @@ setroot() return; majdev = B_TYPE(bootdev); dev = makedev(majdev, 0); - if (majdev >= nblkdev || bdevsw(dev) == NULL) + if (bdevsw(dev) == NULL) return; unit = B_UNIT(bootdev); slice = B_SLICE(bootdev); @@ -523,7 +523,7 @@ setrootbyname(char *name) } unit = *cp - '0'; *cp++ = '\0'; - for (bd = 0; bd < nblkdev; bd++) { + for (bd = 0; bd < NUMCDEVSW; bd++) { dev = makedev(bd, 0); if (bdevsw(dev) != NULL && strcmp(bdevsw(dev)->d_name, name) == 0) @@ -566,7 +566,7 @@ setconf() return; printf("use one of:\n"); - for (i = 0; i < nblkdev; i++) { + for (i = 0; i < NUMCDEVSW; i++) { dev = makedev(i, 0); if (bdevsw(dev) != NULL) printf(" %s", bdevsw(dev)->d_name); diff --git a/sys/amd64/amd64/mem.c b/sys/amd64/amd64/mem.c index 20a7820fd9a..02827d0202f 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.61 1999/05/11 19:54:06 phk Exp $ + * $Id: mem.c,v 1.62 1999/05/30 16:52:04 phk Exp $ */ /* @@ -668,7 +668,6 @@ static int mem_devsw_installed; static void mem_drvinit(void *unused) { - dev_t dev; /* Initialise memory range handling */ if (mem_range_softc.mr_op != NULL) @@ -676,9 +675,7 @@ mem_drvinit(void *unused) /* device registration */ if( ! mem_devsw_installed ) { - - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&mem_cdevsw, NULL); + cdevsw_add(&mem_cdevsw); mem_devsw_installed = 1; #ifdef DEVFS memdevfs_init(); diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c index 2ae2b3f3b6e..be9d7171929 100644 --- a/sys/cam/cam_xpt.c +++ b/sys/cam/cam_xpt.c @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: cam_xpt.c,v 1.61 1999/05/25 20:17:29 gibbs Exp $ + * $Id: cam_xpt.c,v 1.62 1999/05/30 16:50:57 phk Exp $ */ #include #include @@ -825,10 +825,7 @@ dev_allocq_is_runnable(struct cam_devq *devq) static void xpt_periph_init() { - dev_t dev; - - dev = makedev(XPT_CDEV_MAJOR, 0); - cdevsw_add(&dev, &xpt_cdevsw, NULL); + cdevsw_add(&xpt_cdevsw); } static void diff --git a/sys/cam/scsi/scsi_cd.c b/sys/cam/scsi/scsi_cd.c index 730d97fafec..fe353e44601 100644 --- a/sys/cam/scsi/scsi_cd.c +++ b/sys/cam/scsi/scsi_cd.c @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: scsi_cd.c,v 1.21 1999/05/22 22:00:18 gibbs Exp $ + * $Id: scsi_cd.c,v 1.22 1999/05/30 16:51:00 phk Exp $ */ /* * Portions of this driver taken from the original FreeBSD cd driver. @@ -346,7 +346,7 @@ cdinit(void) "due to status 0x%x!\n", status); } else { /* If we were successfull, register our devsw */ - cdevsw_add_generic(CD_BDEV_MAJOR, CD_CDEV_MAJOR, &cd_cdevsw); + cdevsw_add(&cd_cdevsw); } } diff --git a/sys/cam/scsi/scsi_ch.c b/sys/cam/scsi/scsi_ch.c index 6fd7aeef395..146002f15ea 100644 --- a/sys/cam/scsi/scsi_ch.c +++ b/sys/cam/scsi/scsi_ch.c @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: scsi_ch.c,v 1.12 1999/05/22 22:00:19 gibbs Exp $ + * $Id: scsi_ch.c,v 1.13 1999/05/30 16:51:01 phk Exp $ */ /* * Derived from the NetBSD SCSI changer driver. @@ -277,11 +277,8 @@ chinit(void) printf("ch: Failed to attach master async callback " "due to status 0x%x!\n", status); } else { - dev_t dev; - /* If we were successfull, register our devsw */ - dev = makedev(CH_CDEV_MAJOR, 0); - cdevsw_add(&dev, &ch_cdevsw, NULL); + cdevsw_add(&ch_cdevsw); } } diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c index 598a0548600..a8b85414985 100644 --- a/sys/cam/scsi/scsi_da.c +++ b/sys/cam/scsi/scsi_da.c @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: scsi_da.c,v 1.25 1999/05/22 22:00:20 gibbs Exp $ + * $Id: scsi_da.c,v 1.26 1999/05/30 16:51:02 phk Exp $ */ #include "opt_hw_wdog.h" @@ -821,7 +821,7 @@ dainit(void) int err; /* If we were successfull, register our devsw */ - cdevsw_add_generic(DA_BDEV_MAJOR, DA_CDEV_MAJOR, &da_cdevsw); + cdevsw_add(&da_cdevsw); /* * Schedule a periodic event to occasioanly send an diff --git a/sys/cam/scsi/scsi_pass.c b/sys/cam/scsi/scsi_pass.c index a350c8e79e6..c68fb987a2a 100644 --- a/sys/cam/scsi/scsi_pass.c +++ b/sys/cam/scsi/scsi_pass.c @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: scsi_pass.c,v 1.10 1999/05/22 22:00:21 gibbs Exp $ + * $Id: scsi_pass.c,v 1.11 1999/05/30 16:51:03 phk Exp $ */ #include @@ -184,11 +184,8 @@ passinit(void) printf("pass: Failed to attach master async callback " "due to status 0x%x!\n", status); } else { - dev_t dev; - /* If we were successfull, register our devsw */ - dev = makedev(PASS_CDEV_MAJOR, 0); - cdevsw_add(&dev, &pass_cdevsw, NULL); + cdevsw_add(&pass_cdevsw); } } diff --git a/sys/cam/scsi/scsi_pt.c b/sys/cam/scsi/scsi_pt.c index 30415912850..e015c36426a 100644 --- a/sys/cam/scsi/scsi_pt.c +++ b/sys/cam/scsi/scsi_pt.c @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: scsi_pt.c,v 1.8 1999/05/22 22:00:22 gibbs Exp $ + * $Id: scsi_pt.c,v 1.9 1999/05/30 16:51:05 phk Exp $ */ #include @@ -304,10 +304,7 @@ ptinit(void) "due to status 0x%x!\n", status); } else { /* If we were successfull, register our devsw */ - dev_t dev; - - dev = makedev(PT_CDEV_MAJOR, 0); - cdevsw_add(&dev,&pt_cdevsw, NULL); + cdevsw_add(&pt_cdevsw); } } diff --git a/sys/cam/scsi/scsi_sa.c b/sys/cam/scsi/scsi_sa.c index 17610558795..5e70261db45 100644 --- a/sys/cam/scsi/scsi_sa.c +++ b/sys/cam/scsi/scsi_sa.c @@ -1,5 +1,5 @@ /* - * $Id: scsi_sa.c,v 1.26 1999/05/25 23:10:54 mjacob Exp $ + * $Id: scsi_sa.c,v 1.27 1999/05/30 16:51:07 phk Exp $ * * Implementation of SCSI Sequential Access Peripheral driver for CAM. * @@ -1148,7 +1148,7 @@ sainit(void) "due to status 0x%x!\n", status); } else { /* If we were successfull, register our devsw */ - cdevsw_add_generic(SA_BDEV_MAJOR, SA_CDEV_MAJOR, &sa_cdevsw); + cdevsw_add(&sa_cdevsw); } } diff --git a/sys/cam/scsi/scsi_target.c b/sys/cam/scsi/scsi_target.c index 302e23fd9c9..63d9519771c 100644 --- a/sys/cam/scsi/scsi_target.c +++ b/sys/cam/scsi/scsi_target.c @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: scsi_target.c,v 1.12 1999/05/22 22:00:24 gibbs Exp $ + * $Id: scsi_target.c,v 1.13 1999/05/30 16:51:07 phk Exp $ */ #include /* For offsetof */ @@ -196,7 +196,6 @@ static struct extend_array *targperiphs; static void targinit(void) { - dev_t dev; /* * Create our extend array for storing the devices we attach to. @@ -208,8 +207,7 @@ targinit(void) } /* If we were successfull, register our devsw */ - dev = makedev(TARG_CDEV_MAJOR, 0); - cdevsw_add(&dev,&targ_cdevsw, NULL); + cdevsw_add(&targ_cdevsw); } static void diff --git a/sys/coda/coda_fbsd.c b/sys/coda/coda_fbsd.c index 49bba22bc7b..9c349f84369 100644 --- a/sys/coda/coda_fbsd.c +++ b/sys/coda/coda_fbsd.c @@ -27,7 +27,7 @@ * Mellon the rights to redistribute these changes without encumbrance. * * @(#) src/sys/coda/coda_fbsd.cr,v 1.1.1.1 1998/08/29 21:14:52 rvb Exp $ - * $Id: coda_fbsd.c,v 1.13 1999/01/28 00:57:46 dillon Exp $ + * $Id: coda_fbsd.c,v 1.14 1999/05/30 16:51:10 phk Exp $ * */ @@ -101,7 +101,6 @@ int vcdebug = 1; static int codadev_modevent(module_t mod, int type, void *data) { - dev_t dev; #ifdef DEVFS int i; #endif @@ -109,8 +108,7 @@ codadev_modevent(module_t mod, int type, void *data) switch (type) { case MOD_LOAD: - dev = makedev(VC_DEV_NO, 0); - cdevsw_add(&dev,&codadevsw, &oldcdevsw); + cdevsw_add(&codadevsw); #ifdef DEVFS /* tmp */ #undef NVCODA @@ -134,7 +132,7 @@ codadev_modevent(module_t mod, int type, void *data) devfs_remove_dev(coda_devfs_token[i]); } #endif - cdevsw_add(&dev, oldcdevsw, NULL); + cdevsw_add(oldcdevsw); break; default: break; diff --git a/sys/coda/coda_vfsops.c b/sys/coda/coda_vfsops.c index dfb4e0eab03..50245d0f6c9 100644 --- a/sys/coda/coda_vfsops.c +++ b/sys/coda/coda_vfsops.c @@ -27,7 +27,7 @@ * Mellon the rights to redistribute these changes without encumbrance. * * @(#) src/sys/cfs/coda_vfsops.c,v 1.1.1.1 1998/08/29 21:14:52 rvb Exp $ - * $Id: coda_vfsops.c,v 1.12 1999/05/08 06:39:04 phk Exp $ + * $Id: coda_vfsops.c,v 1.13 1999/05/09 13:11:37 phk Exp $ * */ @@ -47,6 +47,9 @@ /* * HISTORY * $Log: coda_vfsops.c,v $ + * Revision 1.13 1999/05/09 13:11:37 phk + * remove cast from dev_t to dev_t. + * * Revision 1.12 1999/05/08 06:39:04 phk * I got tired of seeing all the cdevsw[major(foo)] all over the place. * @@ -341,10 +344,6 @@ coda_mount(vfsp, path, data, ndp, p) } dev = dvp->v_specinfo->si_rdev; vrele(dvp); - if (major(dev) >= nchrdev || major(dev) < 0) { - MARK_INT_FAIL(CODA_MOUNT_STATS); - return(ENXIO); - } /* * See if the device table matches our expectations. diff --git a/sys/dev/ata/ata-disk.c b/sys/dev/ata/ata-disk.c index b46f77096d2..bc5eeeed027 100644 --- a/sys/dev/ata/ata-disk.c +++ b/sys/dev/ata/ata-disk.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: ata-disk.c,v 1.11 1999/05/17 15:58:45 sos Exp $ + * $Id: ata-disk.c,v 1.12 1999/05/30 16:51:12 phk Exp $ */ #include "ata.h" @@ -88,6 +88,7 @@ static struct cdevsw ad_cdevsw = { /* maxio */ 0, /* bmaj */ BDEV_MAJOR, }; +static struct cdevsw fakewd_cdevsw; /* misc defines */ #define UNIT(dev) (minor(dev)>>3 & 0x1f) /* assume 8 minor # per unit */ @@ -663,8 +664,11 @@ ad_drvinit(void) static int32_t ad_devsw_installed = 0; if (!ad_devsw_installed) { - cdevsw_add_generic(BDEV_MAJOR, CDEV_MAJOR, &ad_cdevsw); - cdevsw_add_generic(0, 3, &ad_cdevsw); /* grap wd entries too */ + cdevsw_add(&ad_cdevsw); + fakewd_cdevsw = ad_cdevsw; + fakewd_cdevsw.d_maj = 3; + fakewd_cdevsw.d_bmaj = 0; + cdevsw_add(&fakewd_cdevsw); /* grap wd entries too */ ad_devsw_installed = 1; } /* register callback for when interrupts are enabled */ diff --git a/sys/dev/ata/atapi-cd.c b/sys/dev/ata/atapi-cd.c index aaec64429ed..200b64871cd 100644 --- a/sys/dev/ata/atapi-cd.c +++ b/sys/dev/ata/atapi-cd.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: atapi-cd.c,v 1.8 1999/05/17 15:58:46 sos Exp $ + * $Id: atapi-cd.c,v 1.9 1999/05/30 16:51:14 phk Exp $ */ #include "ata.h" @@ -1426,7 +1426,7 @@ acd_drvinit(void *unused) static int32_t acd_devsw_installed = 0; if (!acd_devsw_installed) { - cdevsw_add_generic(BDEV_MAJOR, CDEV_MAJOR, &acd_cdevsw); + cdevsw_add(&acd_cdevsw); acd_devsw_installed = 1; } } diff --git a/sys/dev/ata/atapi-fd.c b/sys/dev/ata/atapi-fd.c index d63a03912ba..e89d6363813 100644 --- a/sys/dev/ata/atapi-fd.c +++ b/sys/dev/ata/atapi-fd.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: atapi-fd.c,v 1.8 1999/05/20 09:12:05 sos Exp $ + * $Id: atapi-fd.c,v 1.9 1999/05/30 16:51:15 phk Exp $ */ #include "ata.h" @@ -482,7 +482,7 @@ afd_drvinit(void *unused) static int32_t afd_devsw_installed = 0; if (!afd_devsw_installed) { - cdevsw_add_generic(BDEV_MAJOR, CDEV_MAJOR, &afd_cdevsw); + cdevsw_add(&afd_cdevsw); afd_devsw_installed = 1; } } diff --git a/sys/dev/ata/atapi-tape.c b/sys/dev/ata/atapi-tape.c index 7699d899150..a4712326be2 100644 --- a/sys/dev/ata/atapi-tape.c +++ b/sys/dev/ata/atapi-tape.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: atapi-tape.c,v 1.8 1999/05/17 15:58:47 sos Exp $ + * $Id: atapi-tape.c,v 1.9 1999/05/30 16:51:16 phk Exp $ */ #include "ata.h" @@ -554,9 +554,7 @@ ast_drvinit(void *unused) static int32_t ast_devsw_installed = 0; if (!ast_devsw_installed) { - dev_t dev = makedev(CDEV_MAJOR, 0); - - cdevsw_add(&dev, &ast_cdevsw, NULL); + cdevsw_add(&ast_cdevsw); ast_devsw_installed = 1; } } diff --git a/sys/dev/bktr/bktr_core.c b/sys/dev/bktr/bktr_core.c index 70d3367dfa0..558400becdb 100644 --- a/sys/dev/bktr/bktr_core.c +++ b/sys/dev/bktr/bktr_core.c @@ -1,4 +1,4 @@ -/* $Id: brooktree848.c,v 1.81 1999/05/25 12:43:40 roger Exp $ */ +/* $Id: brooktree848.c,v 1.82 1999/05/30 16:53:32 phk Exp $ */ /* BT848 Driver for Brooktree's Bt848, Bt848A, Bt849A, Bt878, Bt879 based cards. The Brooktree BT848 Driver driver is based upon Mark Tinguely and Jim Lowe's driver for the Matrox Meteor PCI card . The @@ -668,6 +668,10 @@ bktr_probe(struct device *parent, struct cfdata *cf, void *aux) pci_devaddr_t *pa; pci_devres_t res; struct isa_attach_args *ia = aux; + static int once; + + if (!once++) + cdevsw_add(&bktr_cdevsw); if (ia->ia_bustype != BUS_PCI) return (0); @@ -7017,29 +7021,6 @@ static void msp_autodetect( bktr_ptr_t bktr ) { /* msp_write(bktr, 0x12, 0x0014, 0x7f40); */ } -/****************************************************************************** - * magic: - */ - - -#ifdef __FreeBSD__ -static int bktr_devsw_installed; - -static void -bktr_drvinit( void *unused ) -{ - dev_t dev; - - if ( ! bktr_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&bktr_cdevsw, NULL); - bktr_devsw_installed = 1; - } -} - -SYSINIT(bktrdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,bktr_drvinit,NULL) - -#endif /* __FreeBSD__ */ #endif /* !defined(__FreeBSD__) || (NBKTR > 0 && NPCI > 0) */ /* Local Variables: */ diff --git a/sys/dev/cy/cy.c b/sys/dev/cy/cy.c index 70d0466d792..dd98d7ad5da 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.88 1999/05/28 13:23:21 bde Exp $ + * $Id: cy.c,v 1.89 1999/05/30 16:52:11 phk Exp $ */ #include "opt_compat.h" @@ -541,7 +541,6 @@ cyattach_common(cy_iobase, cy_align) { int adapter; int cyu; - dev_t dev; u_char firmware_version; cy_addr iobase; int ncyu; @@ -633,8 +632,7 @@ cyattach_common(cy_iobase, cy_align) splx(s); if (!sio_registered) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &sio_cdevsw, NULL); + cdevsw_add(&sio_cdevsw); register_swi(SWI_TTY, siopoll); sio_registered = TRUE; } diff --git a/sys/dev/cy/cy_isa.c b/sys/dev/cy/cy_isa.c index 70d0466d792..dd98d7ad5da 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.88 1999/05/28 13:23:21 bde Exp $ + * $Id: cy.c,v 1.89 1999/05/30 16:52:11 phk Exp $ */ #include "opt_compat.h" @@ -541,7 +541,6 @@ cyattach_common(cy_iobase, cy_align) { int adapter; int cyu; - dev_t dev; u_char firmware_version; cy_addr iobase; int ncyu; @@ -633,8 +632,7 @@ cyattach_common(cy_iobase, cy_align) splx(s); if (!sio_registered) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &sio_cdevsw, NULL); + cdevsw_add(&sio_cdevsw); register_swi(SWI_TTY, siopoll); sio_registered = TRUE; } diff --git a/sys/dev/dgb/dgb.c b/sys/dev/dgb/dgb.c index b39c89df720..e16c979f75e 100644 --- a/sys/dev/dgb/dgb.c +++ b/sys/dev/dgb/dgb.c @@ -1,5 +1,5 @@ /*- - * dgb.c $Id: dgb.c,v 1.48 1999/05/08 07:02:24 phk Exp $ + * dgb.c $Id: dgb.c,v 1.49 1999/05/30 16:51:56 phk Exp $ * * Digiboard driver. * @@ -425,7 +425,10 @@ dgbprobe(dev) int i, v; u_long win_size; /* size of vizible memory window */ int unit=dev->id_unit; + static int once; + if (!once++) + cdevsw_add(&dgb_cdevsw); sc->unit=dev->id_unit; sc->port=dev->id_iobase; @@ -2301,21 +2304,4 @@ disc_optim(tp, t) tp->t_state &= ~TS_CAN_BYPASS_L_RINT; } - -static int dgb_devsw_installed; - -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; - } -} - -SYSINIT(dgbdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,dgb_drvinit,NULL) - #endif /* NDGB > 0 */ diff --git a/sys/dev/dgb/dgm.c b/sys/dev/dgb/dgm.c index 5f3ff63fcd9..6fa36ba12d4 100644 --- a/sys/dev/dgb/dgm.c +++ b/sys/dev/dgb/dgm.c @@ -1,5 +1,5 @@ /*- - * $Id: dgm.c,v 1.13 1999/05/08 07:02:25 phk Exp $ + * $Id: dgm.c,v 1.14 1999/05/30 16:51:58 phk Exp $ * * This driver and the associated header files support the ISA PC/Xem * Digiboards. Its evolutionary roots are described below. @@ -397,6 +397,10 @@ dgmprobe(dev) struct dgm_softc *sc= &dgm_softc[dev->id_unit]; int i, v; int unit=dev->id_unit; + static int once; + + if (!once++) + cdevsw_add(&dgm_cdevsw); sc->unit=dev->id_unit; sc->port=dev->id_iobase; @@ -2105,21 +2109,4 @@ disc_optim(tp, t) tp->t_state &= ~TS_CAN_BYPASS_L_RINT; } - -static int dgm_devsw_installed; - -static void -dgm_drvinit(void *unused) -{ - dev_t dev; - - if( ! dgm_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&dgm_cdevsw, NULL); - dgm_devsw_installed = 1; - } -} - -SYSINIT(dgmdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,dgm_drvinit,NULL) - #endif /* NDGM > 0 */ diff --git a/sys/dev/dpt/dpt_control.c b/sys/dev/dpt/dpt_control.c index 0f9eff8cb54..93a4b39b6b2 100644 --- a/sys/dev/dpt/dpt_control.c +++ b/sys/dev/dpt/dpt_control.c @@ -36,7 +36,7 @@ * future. */ -#ident "$Id: dpt_control.c,v 1.12 1999/05/13 05:24:53 jkh Exp $" +#ident "$Id: dpt_control.c,v 1.13 1999/05/30 16:51:20 phk Exp $" #include "opt_dpt.h" @@ -848,7 +848,6 @@ static dpt_devsw_installed = 0; static void dpt_drvinit(void *unused) { - dev_t dev; if (!dpt_devsw_installed) { if (bootverbose) @@ -856,11 +855,7 @@ dpt_drvinit(void *unused) DPT_CTL_RELEASE, DPT_CTL_VERSION, DPT_CTL_PATCH); /* Add the I/O (data) channel */ - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &dpt_cdevsw, NULL); - /* Add the Control (IOCTL) channel */ - dev = makedev(CDEV_MAJOR, SCSI_CONTROL_MASK); - cdevsw_add(&dev, &dpt_cdevsw, NULL); + cdevsw_add(&dpt_cdevsw); dpt_devsw_installed = 1; } diff --git a/sys/dev/fb/fb.c b/sys/dev/fb/fb.c index 0b694b80fc7..a1d5f112918 100644 --- a/sys/dev/fb/fb.c +++ b/sys/dev/fb/fb.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: fb.c,v 1.3 1999/01/19 11:31:10 yokota Exp $ + * $Id: fb.c,v 1.4 1999/05/30 16:51:23 phk Exp $ */ #include "fb.h" @@ -311,11 +311,9 @@ static void vfbattach(void *arg) { static int fb_devsw_installed = FALSE; - dev_t dev; if (!fb_devsw_installed) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &fb_cdevsw, NULL); + cdevsw_add(&fb_cdevsw); fb_devsw_installed = TRUE; } } diff --git a/sys/dev/iicbus/iic.c b/sys/dev/iicbus/iic.c index fbdcbcc35c4..4c27180c4a5 100644 --- a/sys/dev/iicbus/iic.c +++ b/sys/dev/iicbus/iic.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: iic.c,v 1.10 1999/05/09 13:00:35 phk Exp $ + * $Id: iic.c,v 1.11 1999/05/30 16:51:28 phk Exp $ * */ #include @@ -121,6 +121,10 @@ static int iic_probe(device_t dev) { struct iic_softc *sc = (struct iic_softc *)device_get_softc(dev); + static int once; + + if (!once++) + cdevsw_add(&iic_cdevsw); sc->sc_addr = iicbus_get_addr(dev); @@ -279,21 +283,5 @@ iicioctl(dev_t dev, u_long cmd, caddr_t data, int flags, struct proc *p) return (error); } -static int iic_devsw_installed = 0; - -static void -iic_drvinit(void *unused) -{ - dev_t dev; - - if( ! iic_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&iic_cdevsw,NULL); - iic_devsw_installed = 1; - } -} - DEV_DRIVER_MODULE(iic, iicbus, iic_driver, iic_devclass, CDEV_MAJOR, NOMAJ, iic_cdevsw, 0, 0); - -SYSINIT(iicdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,iic_drvinit,NULL) diff --git a/sys/dev/joy/joy.c b/sys/dev/joy/joy.c index 6847f43d412..a2edbd5f069 100644 --- a/sys/dev/joy/joy.c +++ b/sys/dev/joy/joy.c @@ -120,6 +120,10 @@ static int get_tick __P((void)); static int joyprobe (struct isa_device *dev) { + static int once; + + if (!once++) + cdevsw_add(&joy_cdevsw); #ifdef WANT_JOYSTICK_CONNECTED outb (dev->id_iobase, 0xff); DELAY (10000); /* 10 ms delay */ @@ -251,22 +255,6 @@ get_tick () return (high << 8) | low; } - -static int joy_devsw_installed; - -static void joy_drvinit(void *unused) -{ - dev_t dev; - - if( ! joy_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&joy_cdevsw,NULL); - joy_devsw_installed = 1; - } -} - -SYSINIT(joydev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,joy_drvinit,NULL) - #ifdef JOY_MODULE #include diff --git a/sys/dev/kbd/kbd.c b/sys/dev/kbd/kbd.c index 47d9d5e7120..e858975da55 100644 --- a/sys/dev/kbd/kbd.c +++ b/sys/dev/kbd/kbd.c @@ -23,7 +23,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: kbd.c,v 1.7 1999/05/30 14:55:24 phk Exp $ + * $Id: kbd.c,v 1.8 1999/05/30 16:51:31 phk Exp $ */ #include "kbd.h" @@ -431,11 +431,9 @@ static void vkbdattach(void *arg) { static int kbd_devsw_installed = FALSE; - dev_t dev; if (!kbd_devsw_installed) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &kbd_cdevsw, NULL); + cdevsw_add(&kbd_cdevsw); kbd_devsw_installed = TRUE; } } diff --git a/sys/dev/mcd/mcd.c b/sys/dev/mcd/mcd.c index c57a67566ed..17e9b0cc010 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.106 1999/05/08 07:02:30 phk Exp $ + * $Id: mcd.c,v 1.107 1999/05/30 16:52:19 phk Exp $ */ static const char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore"; @@ -756,6 +756,10 @@ mcd_probe(struct isa_device *dev) int unit = dev->id_unit; int i, j; unsigned char stbytes[3]; + static int once; + + if (!once++) + cdevsw_add(&mcd_cdevsw); mcd_data[unit].flags = MCDPROBING; @@ -1856,19 +1860,4 @@ mcd_resume(int unit) return mcd_play(unit, &cd->lastpb); } - -static int mcd_devsw_installed; - -static void mcd_drvinit(void *unused) -{ - - if( ! mcd_devsw_installed ) { - cdevsw_add_generic(BDEV_MAJOR,CDEV_MAJOR, &mcd_cdevsw); - mcd_devsw_installed = 1; - } -} - -SYSINIT(mcddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,mcd_drvinit,NULL) - - #endif /* NMCD > 0 */ diff --git a/sys/dev/mse/mse.c b/sys/dev/mse/mse.c index b70cf156ead..a8676bc152a 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.42 1999/05/06 18:44:02 peter Exp $ + * $Id: mse.c,v 1.43 1999/05/30 16:52:20 phk Exp $ */ /* * Driver for the Logitech and ATI Inport Bus mice for use with 386bsd and @@ -248,7 +248,10 @@ mseprobe(idp) { register struct mse_softc *sc = &mse_sc[idp->id_unit]; register int i; + static int once; + if (!once++) + cdevsw_add(&mse_cdevsw); /* * Check for each mouse type in the table. */ @@ -788,20 +791,4 @@ mse_getati(port, dx, dy, but) outb(port + MSE_PORTB, MSE_INPORT_INTREN); } -static int mse_devsw_installed; - -static void mse_drvinit(void *unused) -{ - dev_t dev; - - if( ! mse_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&mse_cdevsw, NULL); - mse_devsw_installed = 1; - } -} - -SYSINIT(msedev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,mse_drvinit,NULL) - - #endif /* NMSE */ diff --git a/sys/dev/pccard/if_xe.c b/sys/dev/pccard/if_xe.c index 1836f89332d..88af5769725 100644 --- a/sys/dev/pccard/if_xe.c +++ b/sys/dev/pccard/if_xe.c @@ -352,7 +352,11 @@ xe_memwrite(struct pccard_devinfo *devi, off_t offset, u_char byte) uios.uio_rw = UIO_WRITE; uios.uio_procp = 0; +#if 0 /* THIS IS BOGUS */ return cdevsw[CARD_MAJOR]->d_write(makedev(CARD_MAJOR, devi->slt->slotnum), &uios, 0); +#else + return (-1); +#endif } @@ -373,7 +377,11 @@ xe_memread(struct pccard_devinfo *devi, off_t offset, u_char *buf, int size) uios.uio_rw = UIO_READ; uios.uio_procp = 0; +#if 0 /* THIS IS BOGUS */ return cdevsw[CARD_MAJOR]->d_read(makedev(CARD_MAJOR, devi->slt->slotnum), &uios, 0); +#else + return (-1); +#endif } diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index bf5e6576190..8bc9c1df2ca 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -23,7 +23,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: pci.c,v 1.105 1999/05/30 10:54:31 dfr Exp $ + * $Id: pci.c,v 1.106 1999/05/30 16:53:36 phk Exp $ * */ @@ -875,10 +875,7 @@ static void *pci_devfs_token; static void pci_cdevinit(void *dummy) { - dev_t dev; - - dev = makedev(PCI_CDEV, 0); - cdevsw_add(&dev, &pcicdev, NULL); + cdevsw_add(&pcicdev); #ifdef DEVFS pci_devfs_token = devfs_add_devswf(&pcicdev, 0, DV_CHR, UID_ROOT, GID_WHEEL, 0644, "pci"); diff --git a/sys/dev/ppbus/lpt.c b/sys/dev/ppbus/lpt.c index ab61978305b..67f44680fc4 100644 --- a/sys/dev/ppbus/lpt.c +++ b/sys/dev/ppbus/lpt.c @@ -48,7 +48,7 @@ * from: unknown origin, 386BSD 0.1 * From Id: lpt.c,v 1.55.2.1 1996/11/12 09:08:38 phk Exp * From Id: nlpt.c,v 1.14 1999/02/08 13:55:43 des Exp - * $Id: lpt.c,v 1.3 1999/04/28 10:51:35 dt Exp $ + * $Id: lpt.c,v 1.4 1999/05/30 16:51:34 phk Exp $ */ /* @@ -363,6 +363,10 @@ static struct ppb_device * lptprobe(struct ppb_data *ppb) { struct lpt_data *sc; + static int once; + + if (!once++) + cdevsw_add(&lpt_cdevsw); sc = (struct lpt_data *) malloc(sizeof(struct lpt_data), M_TEMP, M_NOWAIT); @@ -954,19 +958,3 @@ lptioctl(dev_t dev, u_long cmd, caddr_t data, int flags, struct proc *p) return(error); } - -static int lpt_devsw_installed; - -static void -lpt_drvinit(void *unused) -{ - dev_t dev; - - if( ! lpt_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&lpt_cdevsw, NULL); - lpt_devsw_installed = 1; - } -} - -SYSINIT(lptdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,lpt_drvinit,NULL) diff --git a/sys/dev/ppbus/ppi.c b/sys/dev/ppbus/ppi.c index 315ea29dafb..e19be8c3a91 100644 --- a/sys/dev/ppbus/ppi.c +++ b/sys/dev/ppbus/ppi.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: ppi.c,v 1.13 1999/04/28 10:51:39 dt Exp $ + * $Id: ppi.c,v 1.14 1999/05/30 16:51:35 phk Exp $ * */ #include "ppi.h" @@ -146,6 +146,10 @@ static struct ppb_device * ppiprobe(struct ppb_data *ppb) { struct ppi_data *ppi; + static int once; + + if (!once++) + cdevsw_add(&ppi_cdevsw); ppi = (struct ppi_data *) malloc(sizeof(struct ppi_data), M_TEMP, M_NOWAIT); @@ -547,19 +551,4 @@ ppiioctl(dev_t dev, u_long cmd, caddr_t data, int flags, struct proc *p) return (error); } -static int ppi_devsw_installed; - -static void ppi_drvinit(void *unused) -{ - dev_t dev; - - if (!ppi_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &ppi_cdevsw, NULL); - ppi_devsw_installed = 1; - } -} - -SYSINIT(ppidev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,ppi_drvinit,NULL) - #endif /* NPPI */ diff --git a/sys/dev/ppbus/pps.c b/sys/dev/ppbus/pps.c index 8fc552867e9..0bad854adbf 100644 --- a/sys/dev/ppbus/pps.c +++ b/sys/dev/ppbus/pps.c @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $Id: pps.c,v 1.17 1999/05/06 22:03:14 peter Exp $ + * $Id: pps.c,v 1.18 1999/05/30 16:51:36 phk Exp $ * * This driver implements a draft-mogul-pps-api-02.txt PPS source. * @@ -87,6 +87,10 @@ static struct ppb_device * ppsprobe(struct ppb_data *ppb) { struct pps_data *sc; + static int once; + + if (!once++) + cdevsw_add(&pps_cdevsw); sc = (struct pps_data *) malloc(sizeof(struct pps_data), M_TEMP, M_NOWAIT); @@ -113,7 +117,6 @@ ppsprobe(struct ppb_data *ppb) static int ppsattach(struct ppb_device *dev) { - dev_t devt; /* * Report ourselves @@ -126,8 +129,6 @@ ppsattach(struct ppb_device *dev) dev->id_unit, DV_CHR, UID_ROOT, GID_WHEEL, 0600, PPS_NAME "%d", dev->id_unit); #endif - devt = makedev(CDEV_MAJOR, 0); - cdevsw_add(&devt, &pps_cdevsw, NULL); return (1); } diff --git a/sys/dev/rc/rc.c b/sys/dev/rc/rc.c index fdcbcf6b54d..8e0fdc58412 100644 --- a/sys/dev/rc/rc.c +++ b/sys/dev/rc/rc.c @@ -213,6 +213,10 @@ rcprobe(dvp) { int irq = ffs(dvp->id_irq) - 1; register int nec = dvp->id_iobase; + static int once; + + if (!once++) + cdevsw_add(&rc_cdevsw); if (dvp->id_unit > NRC) return 0; @@ -1510,20 +1514,4 @@ rc_wait0(nec, unit, chan, line) unit, chan, line); } -static int rc_devsw_installed; - -static void rc_drvinit(void *unused) -{ - dev_t dev; - - if( ! rc_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&rc_cdevsw, NULL); - rc_devsw_installed = 1; - } -} - -SYSINIT(rcdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,rc_drvinit,NULL) - - #endif /* NRC */ diff --git a/sys/dev/rp/rp.c b/sys/dev/rp/rp.c index a3c2382dd0b..c1913a06935 100644 --- a/sys/dev/rp/rp.c +++ b/sys/dev/rp/rp.c @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: rp.c,v 1.26 1999/05/09 17:07:20 peter Exp $ + * $Id: rp.c,v 1.27 1999/05/30 16:52:22 phk Exp $ */ /* @@ -1085,7 +1085,6 @@ struct isa_device *dev; static void rp_pciattach(pcici_t tag, int unit) { - dev_t rp_dev; int success, oldspl; u_short iobase; int num_ports, num_chan, num_aiops; @@ -1140,8 +1139,7 @@ rp_pciattach(pcici_t tag, int unit) rp_addr(unit) = rp; splx(oldspl); - rp_dev = makedev(CDEV_MAJOR, unit); - cdevsw_add(&rp_dev, &rp_cdevsw, NULL); + cdevsw_add(&rp_cdevsw); port = 0; for(aiop=0; aiop < num_aiops; aiop++) { @@ -1196,7 +1194,6 @@ int rpattach(dev) struct isa_device *dev; { - dev_t rp_dev; int iobase, unit, /*rpmajor,*/ oldspl; int num_ports, num_chan, num_aiops; int aiop, chan, port; @@ -1252,8 +1249,7 @@ struct isa_device *dev; rp_addr(unit) = rp; splx(oldspl); - rp_dev = makedev(CDEV_MAJOR, unit); - cdevsw_add(&rp_dev, &rp_cdevsw, NULL); + cdevsw_add(&rp_cdevsw); port = 0; for(aiop=0; aiop < num_aiops; aiop++) { diff --git a/sys/dev/scd/scd.c b/sys/dev/scd/scd.c index 24af2e119c3..ff4832d96a5 100644 --- a/sys/dev/scd/scd.c +++ b/sys/dev/scd/scd.c @@ -41,7 +41,7 @@ */ -/* $Id: scd.c,v 1.45 1999/05/09 20:29:04 phk Exp $ */ +/* $Id: scd.c,v 1.46 1999/05/30 16:52:24 phk Exp $ */ /* Please send any comments to micke@dynas.se */ @@ -718,6 +718,10 @@ scd_probe(struct isa_device *dev) static char namebuf[8+16+8+3]; char *s = namebuf; int loop_count = 0; + static int once; + + if (!once++) + cdevsw_add(&scd_cdevsw); scd_data[unit].flags = SCDPROBING; scd_data[unit].iobase = dev->id_iobase; @@ -1574,19 +1578,4 @@ scd_toc_entry (int unit, struct ioc_read_toc_single_entry *te) return 0; } - -static int scd_devsw_installed; - -static void scd_drvinit(void *unused) -{ - - if( ! scd_devsw_installed ) { - cdevsw_add_generic(BDEV_MAJOR,CDEV_MAJOR, &scd_cdevsw); - scd_devsw_installed = 1; - } -} - -SYSINIT(scddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,scd_drvinit,NULL) - - #endif /* NSCD > 0 */ diff --git a/sys/dev/si/si.c b/sys/dev/si/si.c index 0565390eeb8..18d83770908 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.85 1999/05/09 17:07:21 peter Exp $ + * $Id: si.c,v 1.86 1999/05/30 16:52:25 phk Exp $ */ #ifndef lint @@ -2832,13 +2832,8 @@ static int si_devsw_installed; static void si_drvinit(void *unused) { - dev_t dev; - if (!si_devsw_installed) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&si_cdevsw, NULL); - si_devsw_installed = 1; - } + cdevsw_add(&si_cdevsw); } SYSINIT(sidev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,si_drvinit,NULL) diff --git a/sys/dev/smbus/smb.c b/sys/dev/smbus/smb.c index f411f8aca3a..5eed57ec39c 100644 --- a/sys/dev/smbus/smb.c +++ b/sys/dev/smbus/smb.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: smb.c,v 1.11 1999/05/09 13:00:37 phk Exp $ + * $Id: smb.c,v 1.12 1999/05/30 16:51:37 phk Exp $ * */ #include @@ -122,6 +122,10 @@ static int smb_probe(device_t dev) { struct smb_softc *sc = (struct smb_softc *)device_get_softc(dev); + static int once; + + if (!once++) + cdevsw_add(&smb_cdevsw); sc->sc_addr = smbus_get_addr(dev); @@ -272,21 +276,5 @@ smbioctl(dev_t dev, u_long cmd, caddr_t data, int flags, struct proc *p) return (error); } -static int smb_devsw_installed = 0; - -static void -smb_drvinit(void *unused) -{ - dev_t dev; - - if( ! smb_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&smb_cdevsw,NULL); - smb_devsw_installed = 1; - } -} - DEV_DRIVER_MODULE(smb, smbus, smb_driver, smb_devclass, CDEV_MAJOR, NOMAJ, smb_cdevsw, 0, 0); - -SYSINIT(smbdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,smb_drvinit,NULL) diff --git a/sys/dev/snp/snp.c b/sys/dev/snp/snp.c index 8b45c8aca96..d9f98975e15 100644 --- a/sys/dev/snp/snp.c +++ b/sys/dev/snp/snp.c @@ -83,11 +83,7 @@ snpdevtotty (dev) dev_t dev; { struct cdevsw *cdp; - int maj; - maj = major(dev); - if ((u_int)maj >= nchrdev) - return (NULL); cdp = devsw(dev); if (cdp == NULL) return (NULL); @@ -533,14 +529,12 @@ static void snp_drvinit(unused) void *unused; { - dev_t dev; #ifdef DEVFS int i; #endif if( ! snp_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&snp_cdevsw, NULL); + cdevsw_add(&snp_cdevsw); snp_devsw_installed = 1; #ifdef DEVFS for ( i = 0 ; i < NSNP ; i++) { diff --git a/sys/dev/speaker/spkr.c b/sys/dev/speaker/spkr.c index 759a9fcd9c3..f594b8bb890 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 * - * $Id: spkr.c,v 1.35 1998/08/24 02:28:16 bde Exp $ + * $Id: spkr.c,v 1.36 1999/05/30 16:52:27 phk Exp $ */ #include "speaker.h" @@ -601,24 +601,14 @@ spkrioctl(dev, cmd, cmdarg, flags, p) return(EINVAL); } - -static int spkr_devsw_installed; - static void spkr_drvinit(void *unused) { - dev_t dev; - - if( ! spkr_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&spkr_cdevsw, NULL); - spkr_devsw_installed = 1; + cdevsw_add(&spkr_cdevsw); #ifdef DEVFS - devfs_token = devfs_add_devswf(&spkr_cdevsw, 0, DV_CHR, - UID_ROOT, GID_WHEEL, 0600, - "speaker"); + devfs_token = devfs_add_devswf(&spkr_cdevsw, 0, DV_CHR, + UID_ROOT, GID_WHEEL, 0600, "speaker"); #endif - } } SYSINIT(spkrdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,spkr_drvinit,NULL) diff --git a/sys/dev/streams/streams.c b/sys/dev/streams/streams.c index e3790e8912b..e82ed9e9fe5 100644 --- a/sys/dev/streams/streams.c +++ b/sys/dev/streams/streams.c @@ -152,21 +152,14 @@ typedef struct streams_softc *sc_p; static sc_p sca[NSTREAMS]; -static void -streamsattach(void *dummy) -{ - cdevsw_add_generic(CDEV_MAJOR, CDEV_MAJOR, &streams_cdevsw); -} - static int streams_modevent(module_t mod, int type, void *unused) { switch (type) { case MOD_LOAD: - streamsattach(NULL); + cdevsw_add(&streams_cdevsw); return 0; case MOD_UNLOAD: - cdevsw[CDEV_MAJOR] = NULL; /* clean up cdev */ return 0; default: break; @@ -394,12 +387,10 @@ svr4_soo_close(struct file *fp, struct proc *p) static void streams_drvinit(void *unused) { - dev_t dev; int unit; sc_p scp = sca[unit]; - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &streams_cdevsw, NULL); + cdevsw_add(&streams_cdevsw); for (unit = 0; unit < NSTREAMS; unit++) { /* * Allocate storage for this instance . diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index 41ee89a7299..61b683069d3 100644 --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.303 1999/05/12 04:45:56 bde Exp $ + * $Id: syscons.c,v 1.304 1999/05/30 16:51:42 phk Exp $ */ #include "sc.h" @@ -574,7 +574,6 @@ sc_attach_unit(int unit, int flags) #if defined(VESA) && defined(VM86) video_info_t info; #endif - dev_t cdev = makedev(CDEV_MAJOR, 0); #ifdef DEVFS int vc; #endif @@ -661,7 +660,7 @@ sc_attach_unit(int unit, int flags) at_shutdown(scshutdown, NULL, SHUTDOWN_PRE_SYNC); - cdevsw_add(&cdev, &sc_cdevsw, NULL); + cdevsw_add(&sc_cdevsw); #ifdef DEVFS for (vc = 0; vc < MAXCONS; vc++) diff --git a/sys/dev/usb/usbdi.c b/sys/dev/usb/usbdi.c index ee2f041c1d5..fa827ce1f1b 100644 --- a/sys/dev/usb/usbdi.c +++ b/sys/dev/usb/usbdi.c @@ -965,17 +965,13 @@ static int usbd_global_init_done = 0; void usbd_init() { -#if defined(__FreeBSD__) - dev_t dev; -#endif if (!usbd_global_init_done) { usbd_global_init_done = 1; SIMPLEQ_INIT(&usbd_free_requests); #if defined(__FreeBSD__) - dev = makedev(USB_CDEV_MAJOR, 0); - cdevsw_add(&dev, &usb_cdevsw, NULL); + cdevsw_add(&usb_cdevsw); #endif } } diff --git a/sys/dev/xe/if_xe.c b/sys/dev/xe/if_xe.c index 1836f89332d..88af5769725 100644 --- a/sys/dev/xe/if_xe.c +++ b/sys/dev/xe/if_xe.c @@ -352,7 +352,11 @@ xe_memwrite(struct pccard_devinfo *devi, off_t offset, u_char byte) uios.uio_rw = UIO_WRITE; uios.uio_procp = 0; +#if 0 /* THIS IS BOGUS */ return cdevsw[CARD_MAJOR]->d_write(makedev(CARD_MAJOR, devi->slt->slotnum), &uios, 0); +#else + return (-1); +#endif } @@ -373,7 +377,11 @@ xe_memread(struct pccard_devinfo *devi, off_t offset, u_char *buf, int size) uios.uio_rw = UIO_READ; uios.uio_procp = 0; +#if 0 /* THIS IS BOGUS */ return cdevsw[CARD_MAJOR]->d_read(makedev(CARD_MAJOR, devi->slt->slotnum), &uios, 0); +#else + return (-1); +#endif } diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c index 1de8b4089d9..907c1382e5c 100644 --- a/sys/fs/cd9660/cd9660_vfsops.c +++ b/sys/fs/cd9660/cd9660_vfsops.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)cd9660_vfsops.c 8.18 (Berkeley) 5/22/95 - * $Id: cd9660_vfsops.c,v 1.54 1999/05/07 10:10:46 phk Exp $ + * $Id: cd9660_vfsops.c,v 1.55 1999/05/08 06:39:32 phk Exp $ */ #include @@ -225,8 +225,7 @@ cd9660_mount(mp, path, data, ndp, p) vrele(devvp); return ENOTBLK; } - if (major(devvp->v_rdev) >= nblkdev || - bdevsw(devvp->v_rdev) == NULL) { + if (bdevsw(devvp->v_rdev) == NULL) { vrele(devvp); return ENXIO; } diff --git a/sys/fs/coda/coda_fbsd.c b/sys/fs/coda/coda_fbsd.c index 49bba22bc7b..9c349f84369 100644 --- a/sys/fs/coda/coda_fbsd.c +++ b/sys/fs/coda/coda_fbsd.c @@ -27,7 +27,7 @@ * Mellon the rights to redistribute these changes without encumbrance. * * @(#) src/sys/coda/coda_fbsd.cr,v 1.1.1.1 1998/08/29 21:14:52 rvb Exp $ - * $Id: coda_fbsd.c,v 1.13 1999/01/28 00:57:46 dillon Exp $ + * $Id: coda_fbsd.c,v 1.14 1999/05/30 16:51:10 phk Exp $ * */ @@ -101,7 +101,6 @@ int vcdebug = 1; static int codadev_modevent(module_t mod, int type, void *data) { - dev_t dev; #ifdef DEVFS int i; #endif @@ -109,8 +108,7 @@ codadev_modevent(module_t mod, int type, void *data) switch (type) { case MOD_LOAD: - dev = makedev(VC_DEV_NO, 0); - cdevsw_add(&dev,&codadevsw, &oldcdevsw); + cdevsw_add(&codadevsw); #ifdef DEVFS /* tmp */ #undef NVCODA @@ -134,7 +132,7 @@ codadev_modevent(module_t mod, int type, void *data) devfs_remove_dev(coda_devfs_token[i]); } #endif - cdevsw_add(&dev, oldcdevsw, NULL); + cdevsw_add(oldcdevsw); break; default: break; diff --git a/sys/fs/coda/coda_vfsops.c b/sys/fs/coda/coda_vfsops.c index dfb4e0eab03..50245d0f6c9 100644 --- a/sys/fs/coda/coda_vfsops.c +++ b/sys/fs/coda/coda_vfsops.c @@ -27,7 +27,7 @@ * Mellon the rights to redistribute these changes without encumbrance. * * @(#) src/sys/cfs/coda_vfsops.c,v 1.1.1.1 1998/08/29 21:14:52 rvb Exp $ - * $Id: coda_vfsops.c,v 1.12 1999/05/08 06:39:04 phk Exp $ + * $Id: coda_vfsops.c,v 1.13 1999/05/09 13:11:37 phk Exp $ * */ @@ -47,6 +47,9 @@ /* * HISTORY * $Log: coda_vfsops.c,v $ + * Revision 1.13 1999/05/09 13:11:37 phk + * remove cast from dev_t to dev_t. + * * Revision 1.12 1999/05/08 06:39:04 phk * I got tired of seeing all the cdevsw[major(foo)] all over the place. * @@ -341,10 +344,6 @@ coda_mount(vfsp, path, data, ndp, p) } dev = dvp->v_specinfo->si_rdev; vrele(dvp); - if (major(dev) >= nchrdev || major(dev) < 0) { - MARK_INT_FAIL(CODA_MOUNT_STATS); - return(ENXIO); - } /* * See if the device table matches our expectations. diff --git a/sys/fs/fdescfs/fdesc_vnops.c b/sys/fs/fdescfs/fdesc_vnops.c index 6bdea5fc4ce..2d7dc39f097 100644 --- a/sys/fs/fdescfs/fdesc_vnops.c +++ b/sys/fs/fdescfs/fdesc_vnops.c @@ -35,7 +35,7 @@ * * @(#)fdesc_vnops.c 8.9 (Berkeley) 1/21/94 * - * $Id: fdesc_vnops.c,v 1.40 1998/12/14 05:00:57 dillon Exp $ + * $Id: fdesc_vnops.c,v 1.41 1999/01/27 22:42:06 dillon Exp $ */ /* @@ -105,7 +105,7 @@ fdesc_init(vfsp) struct vfsconf *vfsp; { - devctty = makedev(nchrdev, 0); + devctty = NODEV; fdhashtbl = hashinit(NFDCACHE, M_CACHE, &fdhash); return (0); } diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c index 35c4cb21030..9312e3054ee 100644 --- a/sys/fs/msdosfs/msdosfs_vfsops.c +++ b/sys/fs/msdosfs/msdosfs_vfsops.c @@ -1,4 +1,4 @@ -/* $Id: msdosfs_vfsops.c,v 1.43 1999/05/07 10:11:10 phk Exp $ */ +/* $Id: msdosfs_vfsops.c,v 1.44 1999/05/08 06:40:00 phk Exp $ */ /* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */ /*- @@ -298,8 +298,7 @@ msdosfs_mount(mp, path, data, ndp, p) vrele(devvp); return (ENOTBLK); } - if (major(devvp->v_rdev) >= nblkdev || - bdevsw(devvp->v_rdev) == NULL) { + if (bdevsw(devvp->v_rdev) == NULL) { vrele(devvp); return (ENXIO); } diff --git a/sys/fs/ntfs/ntfs_vfsops.c b/sys/fs/ntfs/ntfs_vfsops.c index 134ca03d28f..b224001ffc6 100644 --- a/sys/fs/ntfs/ntfs_vfsops.c +++ b/sys/fs/ntfs/ntfs_vfsops.c @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: ntfs_vfsops.c,v 1.5 1999/05/11 19:54:52 phk Exp $ + * $Id: ntfs_vfsops.c,v 1.6 1999/05/12 09:43:04 semenu Exp $ */ @@ -296,7 +296,7 @@ ntfs_mount ( err = ENOTBLK; goto error_2; } - if (major(devvp->v_rdev) >= nblkdev) { + if (bdevsw(devvp->v_rdev) == NULL) { err = ENXIO; goto error_2; } diff --git a/sys/fs/specfs/spec_vnops.c b/sys/fs/specfs/spec_vnops.c index 636bc4453f8..ae8bc0f7a8e 100644 --- a/sys/fs/specfs/spec_vnops.c +++ b/sys/fs/specfs/spec_vnops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)spec_vnops.c 8.14 (Berkeley) 5/21/95 - * $Id: spec_vnops.c,v 1.85 1999/05/08 06:39:55 phk Exp $ + * $Id: spec_vnops.c,v 1.86 1999/05/11 19:54:38 phk Exp $ */ #include @@ -176,8 +176,6 @@ spec_open(ap) switch (vp->v_type) { case VCHR: - if ((u_int)maj >= nchrdev) - return (ENXIO); dsw = devsw(dev); if ( (dsw == NULL) || (dsw->d_open == NULL)) return ENXIO; @@ -214,8 +212,6 @@ spec_open(ap) return (error); /* NOT REACHED */ case VBLK: - if ((u_int)maj >= nblkdev) - return (ENXIO); dsw = bdevsw(dev); if ( (dsw == NULL) || (dsw->d_open == NULL)) return ENXIO; diff --git a/sys/gnu/ext2fs/ext2_vfsops.c b/sys/gnu/ext2fs/ext2_vfsops.c index 43f8ead79d2..db935394814 100644 --- a/sys/gnu/ext2fs/ext2_vfsops.c +++ b/sys/gnu/ext2fs/ext2_vfsops.c @@ -276,8 +276,7 @@ ext2_mount(mp, path, data, ndp, p) vrele(devvp); return (ENOTBLK); } - if (major(devvp->v_rdev) >= nblkdev || - bdevsw(devvp->v_rdev) == NULL) { + if (bdevsw(devvp->v_rdev) == NULL) { vrele(devvp); return (ENXIO); } diff --git a/sys/gnu/fs/ext2fs/ext2_vfsops.c b/sys/gnu/fs/ext2fs/ext2_vfsops.c index 43f8ead79d2..db935394814 100644 --- a/sys/gnu/fs/ext2fs/ext2_vfsops.c +++ b/sys/gnu/fs/ext2fs/ext2_vfsops.c @@ -276,8 +276,7 @@ ext2_mount(mp, path, data, ndp, p) vrele(devvp); return (ENOTBLK); } - if (major(devvp->v_rdev) >= nblkdev || - bdevsw(devvp->v_rdev) == NULL) { + if (bdevsw(devvp->v_rdev) == NULL) { vrele(devvp); return (ENXIO); } diff --git a/sys/gnu/i386/isa/dgb.c b/sys/gnu/i386/isa/dgb.c index b39c89df720..e16c979f75e 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.48 1999/05/08 07:02:24 phk Exp $ + * dgb.c $Id: dgb.c,v 1.49 1999/05/30 16:51:56 phk Exp $ * * Digiboard driver. * @@ -425,7 +425,10 @@ dgbprobe(dev) int i, v; u_long win_size; /* size of vizible memory window */ int unit=dev->id_unit; + static int once; + if (!once++) + cdevsw_add(&dgb_cdevsw); sc->unit=dev->id_unit; sc->port=dev->id_iobase; @@ -2301,21 +2304,4 @@ disc_optim(tp, t) tp->t_state &= ~TS_CAN_BYPASS_L_RINT; } - -static int dgb_devsw_installed; - -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; - } -} - -SYSINIT(dgbdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,dgb_drvinit,NULL) - #endif /* NDGB > 0 */ diff --git a/sys/gnu/i386/isa/dgm.c b/sys/gnu/i386/isa/dgm.c index 5f3ff63fcd9..6fa36ba12d4 100644 --- a/sys/gnu/i386/isa/dgm.c +++ b/sys/gnu/i386/isa/dgm.c @@ -1,5 +1,5 @@ /*- - * $Id: dgm.c,v 1.13 1999/05/08 07:02:25 phk Exp $ + * $Id: dgm.c,v 1.14 1999/05/30 16:51:58 phk Exp $ * * This driver and the associated header files support the ISA PC/Xem * Digiboards. Its evolutionary roots are described below. @@ -397,6 +397,10 @@ dgmprobe(dev) struct dgm_softc *sc= &dgm_softc[dev->id_unit]; int i, v; int unit=dev->id_unit; + static int once; + + if (!once++) + cdevsw_add(&dgm_cdevsw); sc->unit=dev->id_unit; sc->port=dev->id_iobase; @@ -2105,21 +2109,4 @@ disc_optim(tp, t) tp->t_state &= ~TS_CAN_BYPASS_L_RINT; } - -static int dgm_devsw_installed; - -static void -dgm_drvinit(void *unused) -{ - dev_t dev; - - if( ! dgm_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&dgm_cdevsw, NULL); - dgm_devsw_installed = 1; - } -} - -SYSINIT(dgmdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,dgm_drvinit,NULL) - #endif /* NDGM > 0 */ diff --git a/sys/i386/i386/autoconf.c b/sys/i386/i386/autoconf.c index 0dcad73fa94..9175d608e89 100644 --- a/sys/i386/i386/autoconf.c +++ b/sys/i386/i386/autoconf.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)autoconf.c 7.1 (Berkeley) 5/9/91 - * $Id: autoconf.c,v 1.122 1999/05/12 07:40:50 phk Exp $ + * $Id: autoconf.c,v 1.123 1999/05/24 00:30:49 jb Exp $ */ /* @@ -156,7 +156,7 @@ find_cdrom_root() orootdev = rootdev; for (i = 0 ; i < 2; i++) for (j = 0 ; try_cdrom[j].name ; j++) { - if (try_cdrom[j].major >= nblkdev) + if (try_cdrom[j].major >= NUMCDEVSW) continue; rootdev = makedev(try_cdrom[j].major, i * 8); bd = bdevsw(rootdev); @@ -382,7 +382,7 @@ setdumpdev(dev) return (0); } maj = major(dev); - if (maj >= nblkdev || bdevsw(dev) == NULL) + if (bdevsw(dev) == NULL) return (ENXIO); /* XXX is this right? */ if (bdevsw(dev)->d_psize == NULL) return (ENXIO); /* XXX should be ENODEV ? */ @@ -435,7 +435,7 @@ setroot() return; majdev = B_TYPE(bootdev); dev = makedev(majdev, 0); - if (majdev >= nblkdev || bdevsw(dev) == NULL) + if (bdevsw(dev) == NULL) return; unit = B_UNIT(bootdev); slice = B_SLICE(bootdev); @@ -523,7 +523,7 @@ setrootbyname(char *name) } unit = *cp - '0'; *cp++ = '\0'; - for (bd = 0; bd < nblkdev; bd++) { + for (bd = 0; bd < NUMCDEVSW; bd++) { dev = makedev(bd, 0); if (bdevsw(dev) != NULL && strcmp(bdevsw(dev)->d_name, name) == 0) @@ -566,7 +566,7 @@ setconf() return; printf("use one of:\n"); - for (i = 0; i < nblkdev; i++) { + for (i = 0; i < NUMCDEVSW; i++) { dev = makedev(i, 0); if (bdevsw(dev) != NULL) printf(" %s", bdevsw(dev)->d_name); diff --git a/sys/i386/i386/cons.c b/sys/i386/i386/cons.c index 6b7efb4d56f..acc85035171 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.65 1999/05/08 06:39:20 phk Exp $ + * $Id: cons.c,v 1.66 1999/05/30 16:52:03 phk Exp $ */ #include "opt_devfs.h" @@ -433,11 +433,9 @@ static int cn_devsw_installed; static void cn_drvinit(void *unused) { - dev_t dev; if( ! cn_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&cn_cdevsw,NULL); + cdevsw_add(&cn_cdevsw); cn_devsw_installed = 1; #ifdef DEVFS cn_devfs_token = devfs_add_devswf(&cn_cdevsw, 0, DV_CHR, diff --git a/sys/i386/i386/mem.c b/sys/i386/i386/mem.c index 20a7820fd9a..02827d0202f 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.61 1999/05/11 19:54:06 phk Exp $ + * $Id: mem.c,v 1.62 1999/05/30 16:52:04 phk Exp $ */ /* @@ -668,7 +668,6 @@ static int mem_devsw_installed; static void mem_drvinit(void *unused) { - dev_t dev; /* Initialise memory range handling */ if (mem_range_softc.mr_op != NULL) @@ -676,9 +675,7 @@ mem_drvinit(void *unused) /* device registration */ if( ! mem_devsw_installed ) { - - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&mem_cdevsw, NULL); + cdevsw_add(&mem_cdevsw); mem_devsw_installed = 1; #ifdef DEVFS memdevfs_init(); diff --git a/sys/i386/isa/asc.c b/sys/i386/isa/asc.c index 4a6a071cdef..700271ae091 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.36 1999/05/06 18:12:24 peter Exp $ + * $Id: asc.c,v 1.37 1999/05/30 16:52:07 phk Exp $ */ #include "asc.h" @@ -379,6 +379,10 @@ ascprobe (struct isa_device *isdp) int unit = isdp->id_unit; struct asc_unit *scu = unittab + unit; int stb; + static int once; + + if (!once++) + cdevsw_add(&asc_cdevsw); scu->base = isdp->id_iobase; /*** needed by the following macros ***/ scu->flags = FLAG_DEBUG; @@ -899,22 +903,4 @@ ascpoll(dev_t dev, int events, struct proc *p) return 0; } - -static int asc_devsw_installed; - -static void -asc_drvinit(void *unused) -{ - dev_t dev; - - if( ! asc_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&asc_cdevsw,NULL); - asc_devsw_installed = 1; - } -} - -SYSINIT(ascdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,asc_drvinit,NULL) - - #endif /* NASC > 0 */ diff --git a/sys/i386/isa/atapi-cd.c b/sys/i386/isa/atapi-cd.c index 644fb3f4713..0613e7ee217 100644 --- a/sys/i386/isa/atapi-cd.c +++ b/sys/i386/isa/atapi-cd.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: atapi-cd.c,v 1.18 1999/05/11 10:39:27 sos Exp $ + * $Id: atapi-cd.c,v 1.19 1999/05/30 16:52:08 phk Exp $ */ #include "wdc.h" @@ -1496,15 +1496,10 @@ atapi_dump(int ctrlr, int lun, char *label, void *data, int len) printf ("\n"); } -static int acd_devsw_installed; - static void acd_drvinit(void *unused) { - if (!acd_devsw_installed) { - cdevsw_add_generic(BDEV_MAJOR, CDEV_MAJOR, &acd_cdevsw); - acd_devsw_installed = 1; - } + cdevsw_add(&acd_cdevsw); } SYSINIT(acddev, SI_SUB_DRIVERS, SI_ORDER_MIDDLE + CDEV_MAJOR, acd_drvinit, NULL) diff --git a/sys/i386/isa/ctx.c b/sys/i386/isa/ctx.c index f1b5953faf7..0fc5f1e6b37 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.30 1999/04/28 10:52:19 dt Exp $ + * $Id: ctx.c,v 1.31 1999/05/30 16:52:09 phk Exp $ */ /* @@ -192,7 +192,10 @@ static int ctxprobe(struct isa_device * devp) { int status; + static int once; + if (!once++) + cdevsw_add(&ctx_cdevsw); if (inb(devp->id_iobase) == 0xff) /* 0xff only if board absent */ status = 0; else { @@ -463,23 +466,4 @@ waitvb(int port) return (0); } - - -static int ctx_devsw_installed; - -static void -ctx_drvinit(void *unused) -{ - dev_t dev; - - if( ! ctx_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&ctx_cdevsw,NULL); - ctx_devsw_installed = 1; - } -} - -SYSINIT(ctxdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,ctx_drvinit,NULL) - - #endif /* NCTX > 0 */ diff --git a/sys/i386/isa/cx.c b/sys/i386/isa/cx.c index 7f5624efc4d..2b02732b9b3 100644 --- a/sys/i386/isa/cx.c +++ b/sys/i386/isa/cx.c @@ -981,13 +981,8 @@ void cxtimeout (void *a) static int cx_devsw_installed; static void cx_drvinit(void *unused) { - dev_t dev; - if( ! cx_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&cx_cdevsw,NULL); - cx_devsw_installed = 1; - } + cdevsw_add(&cx_cdevsw); } SYSINIT(cxdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,cx_drvinit,NULL) diff --git a/sys/i386/isa/cy.c b/sys/i386/isa/cy.c index 70d0466d792..dd98d7ad5da 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.88 1999/05/28 13:23:21 bde Exp $ + * $Id: cy.c,v 1.89 1999/05/30 16:52:11 phk Exp $ */ #include "opt_compat.h" @@ -541,7 +541,6 @@ cyattach_common(cy_iobase, cy_align) { int adapter; int cyu; - dev_t dev; u_char firmware_version; cy_addr iobase; int ncyu; @@ -633,8 +632,7 @@ cyattach_common(cy_iobase, cy_align) splx(s); if (!sio_registered) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &sio_cdevsw, NULL); + cdevsw_add(&sio_cdevsw); register_swi(SWI_TTY, siopoll); sio_registered = TRUE; } diff --git a/sys/i386/isa/gpib.c b/sys/i386/isa/gpib.c index cf67cdc550b..1aff398dd1a 100644 --- a/sys/i386/isa/gpib.c +++ b/sys/i386/isa/gpib.c @@ -123,7 +123,10 @@ gpprobe(struct isa_device *dvp) { int status; struct gpib_softc *sc = &gpib_sc; + static int once; + if (!once++) + cdevsw_add(&gp_cdevsw); gpib_port = dvp->id_iobase; status=1; @@ -1175,22 +1178,4 @@ outb(CDOR,95); /*untalk*/ } - -static int gp_devsw_installed; - -static void -gp_drvinit(void *unused) -{ - dev_t dev; - - if( ! gp_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&gp_cdevsw, NULL); - gp_devsw_installed = 1; - } -} - -SYSINIT(gpdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,gp_drvinit,NULL) - - #endif /* NGPIB > 0 */ diff --git a/sys/i386/isa/gsc.c b/sys/i386/isa/gsc.c index 9ac7b435a03..48bd5f2cc69 100644 --- a/sys/i386/isa/gsc.c +++ b/sys/i386/isa/gsc.c @@ -402,6 +402,10 @@ gscprobe (struct isa_device *isdp) struct gsc_unit *scu = unittab + unit; int stb; struct gsc_geom geom = NEW_GEOM; + static int once; + + if (!once++) + cdevsw_add(&gsc_cdevsw); scu->flags = FLAG_DEBUG; @@ -849,22 +853,4 @@ gscioctl (dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p) } } - -static int gsc_devsw_installed; - -static void -gsc_drvinit(void *unused) -{ - dev_t dev; - - if( ! gsc_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&gsc_cdevsw, NULL); - gsc_devsw_installed = 1; - } -} - -SYSINIT(gscdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,gsc_drvinit,NULL) - - #endif /* NGSC > 0 */ diff --git a/sys/i386/isa/ida.c b/sys/i386/isa/ida.c index 5e78ec8e734..919d3658018 100644 --- a/sys/i386/isa/ida.c +++ b/sys/i386/isa/ida.c @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id$ + * $Id: ida.c,v 1.1 1999/05/25 19:45:17 julian Exp $ * */ @@ -1733,7 +1733,7 @@ static void id_drvinit(void *unused) { if( ! id_devsw_installed ) { - cdevsw_add_generic(ID_BDMAJ,ID_CDMAJ, &id_cdevsw); + cdevsw_add(&id_cdevsw); id_devsw_installed = 1; } } diff --git a/sys/i386/isa/istallion.c b/sys/i386/isa/istallion.c index 0ade414ae23..b93e3ca8a89 100644 --- a/sys/i386/isa/istallion.c +++ b/sys/i386/isa/istallion.c @@ -33,7 +33,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: istallion.c,v 1.27 1999/05/08 07:02:29 phk Exp $ + * $Id: istallion.c,v 1.28 1999/05/30 16:52:16 phk Exp $ */ /*****************************************************************************/ @@ -662,21 +662,6 @@ static struct cdevsw stli_cdevsw = { /* bmaj */ -1 }; -static int stli_devsw_installed; - -static void stli_drvinit(void *unused) -{ - dev_t dev; - - if (! stli_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &stli_cdevsw, NULL); - stli_devsw_installed = 1; - } -} - -SYSINIT(sidev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,stli_drvinit,NULL) - #endif /*****************************************************************************/ @@ -835,6 +820,10 @@ static int stliprobe(struct isa_device *idp) { stlibrd_t *brdp; int btype, bclass; + static int once; + + if (!once++) + cdevsw_add(&stli_cdevsw); #if DEBUG printf("stliprobe(idp=%x): unit=%d iobase=%x flags=%x\n", (int) idp, diff --git a/sys/i386/isa/joy.c b/sys/i386/isa/joy.c index 6847f43d412..a2edbd5f069 100644 --- a/sys/i386/isa/joy.c +++ b/sys/i386/isa/joy.c @@ -120,6 +120,10 @@ static int get_tick __P((void)); static int joyprobe (struct isa_device *dev) { + static int once; + + if (!once++) + cdevsw_add(&joy_cdevsw); #ifdef WANT_JOYSTICK_CONNECTED outb (dev->id_iobase, 0xff); DELAY (10000); /* 10 ms delay */ @@ -251,22 +255,6 @@ get_tick () return (high << 8) | low; } - -static int joy_devsw_installed; - -static void joy_drvinit(void *unused) -{ - dev_t dev; - - if( ! joy_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&joy_cdevsw,NULL); - joy_devsw_installed = 1; - } -} - -SYSINIT(joydev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,joy_drvinit,NULL) - #ifdef JOY_MODULE #include diff --git a/sys/i386/isa/labpc.c b/sys/i386/isa/labpc.c index 180252b8cfa..d1b97981b30 100644 --- a/sys/i386/isa/labpc.c +++ b/sys/i386/isa/labpc.c @@ -417,6 +417,7 @@ labpcinit(void) bzero(labpcs, NLABPC * sizeof(struct ctlr *)); return 1; } + cdevsw_add(&labpc_cdevsw); return 0; } @@ -1099,21 +1100,3 @@ labpcioctl(dev_t dev, u_long cmd, caddr_t arg, int mode, struct proc *p) return ENOTTY; } } - - -static int labpc_devsw_installed = 0; - -static void labpc_drvinit(void *unused) -{ - dev_t dev; - - if( ! labpc_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&labpc_cdevsw,NULL); - labpc_devsw_installed = 1; - } -} - -SYSINIT(labpcdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,labpc_drvinit,NULL) - - diff --git a/sys/i386/isa/loran.c b/sys/i386/isa/loran.c index 2769d41e86b..09e86395df2 100644 --- a/sys/i386/isa/loran.c +++ b/sys/i386/isa/loran.c @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $Id: loran.c,v 1.18 1999/05/08 14:36:48 phk Exp $ + * $Id: loran.c,v 1.19 1999/05/30 16:52:19 phk Exp $ * * This device-driver helps the userland controlprogram for a LORAN-C * receiver avoid monopolizing the CPU. @@ -196,6 +196,8 @@ struct datapoint { /**********************************************************************/ +extern struct cdevsw loran_cdevsw; + static dphead_t minors[NLORAN], working, holding; static struct datapoint dummy[NDUMMY]; @@ -233,6 +235,10 @@ extern struct timecounter loran_timecounter; int loranprobe(struct isa_device *dvp) { + static int once; + + if (!once++) + cdevsw_add(&loran_cdevsw); /* We need to be a "fast-intr" */ dvp->id_ri_flags |= RI_FAST; @@ -657,20 +663,4 @@ static struct cdevsw loran_cdevsw = { /* bmaj */ -1 }; - -static int loran_devsw_installed; - -static void loran_drvinit(void *unused) -{ - dev_t dev; - - if(!loran_devsw_installed) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&loran_cdevsw, NULL); - loran_devsw_installed = 1; - } -} - -SYSINIT(lorandev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,loran_drvinit,NULL) - #endif /* KERNEL */ diff --git a/sys/i386/isa/matcd/matcd.c b/sys/i386/isa/matcd/matcd.c index fb4a2612c93..102aff8fa2b 100644 --- a/sys/i386/isa/matcd/matcd.c +++ b/sys/i386/isa/matcd/matcd.c @@ -337,7 +337,7 @@ static char MATCDVERSION[]="Version 1(26) 18-Oct-95"; static char MATCDCOPYRIGHT[] = "Matsushita CD-ROM driver, Copr. 1994,1995 Frank Durda IV"; /* The proceeding strings may not be changed*/ -/* $Id: matcd.c,v 1.39 1999/05/07 07:03:36 phk Exp $ */ +/* $Id: matcd.c,v 1.40 1999/05/30 16:52:35 phk Exp $ */ /*--------------------------------------------------------------------------- Include declarations @@ -1214,7 +1214,10 @@ matcd_probe(struct isa_device *dev) int i,cdrive; unsigned char y; int port = dev->id_iobase; /*Take port hint from config file*/ + static int once; + if (!once++) + cdevsw_add(&matcd_cdevsw); cdrive=nextcontroller; /*Controller defined by pass for now*/ if (nextcontroller==NUMCTRLRS) { printf("matcdc%d: - Too many interfaces specified in config\n", @@ -2737,21 +2740,5 @@ static int matcd_igot(struct ioc_capability * sqp) audio are here*/ #endif /*FULLDRIVER*/ - -static int matcd_devsw_installed; - -static void -matcd_drvinit(void *unused) -{ - - if( ! matcd_devsw_installed ) { - cdevsw_add_generic(BDEV_MAJOR,CDEV_MAJOR, &matcd_cdevsw); - matcd_devsw_installed = 1; - } -} - -SYSINIT(matcddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,matcd_drvinit,NULL) - - /*End of matcd.c*/ diff --git a/sys/i386/isa/mcd.c b/sys/i386/isa/mcd.c index c57a67566ed..17e9b0cc010 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.106 1999/05/08 07:02:30 phk Exp $ + * $Id: mcd.c,v 1.107 1999/05/30 16:52:19 phk Exp $ */ static const char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore"; @@ -756,6 +756,10 @@ mcd_probe(struct isa_device *dev) int unit = dev->id_unit; int i, j; unsigned char stbytes[3]; + static int once; + + if (!once++) + cdevsw_add(&mcd_cdevsw); mcd_data[unit].flags = MCDPROBING; @@ -1856,19 +1860,4 @@ mcd_resume(int unit) return mcd_play(unit, &cd->lastpb); } - -static int mcd_devsw_installed; - -static void mcd_drvinit(void *unused) -{ - - if( ! mcd_devsw_installed ) { - cdevsw_add_generic(BDEV_MAJOR,CDEV_MAJOR, &mcd_cdevsw); - mcd_devsw_installed = 1; - } -} - -SYSINIT(mcddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,mcd_drvinit,NULL) - - #endif /* NMCD > 0 */ diff --git a/sys/i386/isa/mse.c b/sys/i386/isa/mse.c index b70cf156ead..a8676bc152a 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.42 1999/05/06 18:44:02 peter Exp $ + * $Id: mse.c,v 1.43 1999/05/30 16:52:20 phk Exp $ */ /* * Driver for the Logitech and ATI Inport Bus mice for use with 386bsd and @@ -248,7 +248,10 @@ mseprobe(idp) { register struct mse_softc *sc = &mse_sc[idp->id_unit]; register int i; + static int once; + if (!once++) + cdevsw_add(&mse_cdevsw); /* * Check for each mouse type in the table. */ @@ -788,20 +791,4 @@ mse_getati(port, dx, dy, but) outb(port + MSE_PORTB, MSE_INPORT_INTREN); } -static int mse_devsw_installed; - -static void mse_drvinit(void *unused) -{ - dev_t dev; - - if( ! mse_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&mse_cdevsw, NULL); - mse_devsw_installed = 1; - } -} - -SYSINIT(msedev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,mse_drvinit,NULL) - - #endif /* NMSE */ diff --git a/sys/i386/isa/pcaudio.c b/sys/i386/isa/pcaudio.c index c44bc55b20f..8ed04da8d69 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.48 1999/05/06 18:58:05 peter Exp $ + * $Id: pcaudio.c,v 1.49 1999/05/30 16:52:21 phk Exp $ */ #include "pca.h" @@ -204,6 +204,7 @@ pca_volume(int volume) static void pca_init(void) { + cdevsw_add(&pca_cdevsw); pca_status.open = 0; pca_status.queries = 0; pca_status.timer_on = 0; @@ -565,19 +566,4 @@ pcapoll(dev_t dev, int events, struct proc *p) return (revents); } -static int pca_devsw_installed; - -static void pca_drvinit(void *unused) -{ - dev_t dev; - - if( ! pca_devsw_installed ) { - 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 diff --git a/sys/i386/isa/pcvt/pcvt_drv.c b/sys/i386/isa/pcvt/pcvt_drv.c index aad4feda17f..a0dd214c74e 100644 --- a/sys/i386/isa/pcvt/pcvt_drv.c +++ b/sys/i386/isa/pcvt/pcvt_drv.c @@ -386,11 +386,7 @@ pcattach(struct isa_device *dev) async_update(UPDATE_START); /* start asynchronous updates */ #if PCVT_FREEBSD > 205 - { - dev_t dev = makedev(CDEV_MAJOR, 0); - - cdevsw_add(&dev, &pc_cdevsw, NULL); - } + cdevsw_add(&pc_cdevsw); #ifdef DEVFS for(vt = 0; vt < MAXCONS; vt++) { diff --git a/sys/i386/isa/rc.c b/sys/i386/isa/rc.c index fdcbcf6b54d..8e0fdc58412 100644 --- a/sys/i386/isa/rc.c +++ b/sys/i386/isa/rc.c @@ -213,6 +213,10 @@ rcprobe(dvp) { int irq = ffs(dvp->id_irq) - 1; register int nec = dvp->id_iobase; + static int once; + + if (!once++) + cdevsw_add(&rc_cdevsw); if (dvp->id_unit > NRC) return 0; @@ -1510,20 +1514,4 @@ rc_wait0(nec, unit, chan, line) unit, chan, line); } -static int rc_devsw_installed; - -static void rc_drvinit(void *unused) -{ - dev_t dev; - - if( ! rc_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&rc_cdevsw, NULL); - rc_devsw_installed = 1; - } -} - -SYSINIT(rcdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,rc_drvinit,NULL) - - #endif /* NRC */ diff --git a/sys/i386/isa/rp.c b/sys/i386/isa/rp.c index a3c2382dd0b..c1913a06935 100644 --- a/sys/i386/isa/rp.c +++ b/sys/i386/isa/rp.c @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: rp.c,v 1.26 1999/05/09 17:07:20 peter Exp $ + * $Id: rp.c,v 1.27 1999/05/30 16:52:22 phk Exp $ */ /* @@ -1085,7 +1085,6 @@ struct isa_device *dev; static void rp_pciattach(pcici_t tag, int unit) { - dev_t rp_dev; int success, oldspl; u_short iobase; int num_ports, num_chan, num_aiops; @@ -1140,8 +1139,7 @@ rp_pciattach(pcici_t tag, int unit) rp_addr(unit) = rp; splx(oldspl); - rp_dev = makedev(CDEV_MAJOR, unit); - cdevsw_add(&rp_dev, &rp_cdevsw, NULL); + cdevsw_add(&rp_cdevsw); port = 0; for(aiop=0; aiop < num_aiops; aiop++) { @@ -1196,7 +1194,6 @@ int rpattach(dev) struct isa_device *dev; { - dev_t rp_dev; int iobase, unit, /*rpmajor,*/ oldspl; int num_ports, num_chan, num_aiops; int aiop, chan, port; @@ -1252,8 +1249,7 @@ struct isa_device *dev; rp_addr(unit) = rp; splx(oldspl); - rp_dev = makedev(CDEV_MAJOR, unit); - cdevsw_add(&rp_dev, &rp_cdevsw, NULL); + cdevsw_add(&rp_cdevsw); port = 0; for(aiop=0; aiop < num_aiops; aiop++) { diff --git a/sys/i386/isa/scd.c b/sys/i386/isa/scd.c index 24af2e119c3..ff4832d96a5 100644 --- a/sys/i386/isa/scd.c +++ b/sys/i386/isa/scd.c @@ -41,7 +41,7 @@ */ -/* $Id: scd.c,v 1.45 1999/05/09 20:29:04 phk Exp $ */ +/* $Id: scd.c,v 1.46 1999/05/30 16:52:24 phk Exp $ */ /* Please send any comments to micke@dynas.se */ @@ -718,6 +718,10 @@ scd_probe(struct isa_device *dev) static char namebuf[8+16+8+3]; char *s = namebuf; int loop_count = 0; + static int once; + + if (!once++) + cdevsw_add(&scd_cdevsw); scd_data[unit].flags = SCDPROBING; scd_data[unit].iobase = dev->id_iobase; @@ -1574,19 +1578,4 @@ scd_toc_entry (int unit, struct ioc_read_toc_single_entry *te) return 0; } - -static int scd_devsw_installed; - -static void scd_drvinit(void *unused) -{ - - if( ! scd_devsw_installed ) { - cdevsw_add_generic(BDEV_MAJOR,CDEV_MAJOR, &scd_cdevsw); - scd_devsw_installed = 1; - } -} - -SYSINIT(scddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,scd_drvinit,NULL) - - #endif /* NSCD > 0 */ diff --git a/sys/i386/isa/si.c b/sys/i386/isa/si.c index 0565390eeb8..18d83770908 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.85 1999/05/09 17:07:21 peter Exp $ + * $Id: si.c,v 1.86 1999/05/30 16:52:25 phk Exp $ */ #ifndef lint @@ -2832,13 +2832,8 @@ static int si_devsw_installed; static void si_drvinit(void *unused) { - dev_t dev; - if (!si_devsw_installed) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&si_cdevsw, NULL); - si_devsw_installed = 1; - } + cdevsw_add(&si_cdevsw); } SYSINIT(sidev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,si_drvinit,NULL) diff --git a/sys/i386/isa/snd/sound.c b/sys/i386/isa/snd/sound.c index f4be1a64109..6737ee54a9a 100644 --- a/sys/i386/isa/snd/sound.c +++ b/sys/i386/isa/snd/sound.c @@ -340,10 +340,8 @@ pcminit(snddev_info *d, int unit) #ifdef DEVFS void *cookie; #endif - dev_t isadev; - isadev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&isadev, &snd_cdevsw, NULL); + cdevsw_add(&snd_cdevsw); /* * initialize standard parameters for the device. This can be diff --git a/sys/i386/isa/sound/soundcard.c b/sys/i386/isa/sound/soundcard.c index 0d122ae0f95..0c97f906dd4 100644 --- a/sys/i386/isa/sound/soundcard.c +++ b/sys/i386/isa/sound/soundcard.c @@ -507,12 +507,7 @@ sndattach(struct isa_device * dev) sequencer_init(); } - { - dev_t dev; - - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &snd_cdevsw, NULL); - } + cdevsw_add(&snd_cdevsw); #ifdef DEVFS #define GID_SND GID_GAMES #define UID_SND UID_ROOT diff --git a/sys/i386/isa/spigot.c b/sys/i386/isa/spigot.c index 4c8f15d46a7..b2ce86d23af 100644 --- a/sys/i386/isa/spigot.c +++ b/sys/i386/isa/spigot.c @@ -131,6 +131,10 @@ spigot_probe(struct isa_device *devp) { int status; struct spigot_softc *ss=(struct spigot_softc *)&spigot_softc[devp->id_unit]; +static int once; + + if (!once++) + cdevsw_add(&spigot_cdevsw); ss->flags = 0; ss->maddr = 0; @@ -291,21 +295,4 @@ struct spigot_softc *ss = (struct spigot_softc *)&spigot_softc[0]; return i386_btop(ss->maddr); } - -static int spigot_devsw_installed; - -static void spigot_drvinit(void *unused) -{ - dev_t dev; - - if( ! spigot_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&spigot_cdevsw, NULL); - spigot_devsw_installed = 1; - } -} - -SYSINIT(spigotdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,spigot_drvinit,NULL) - - #endif /* NSPIGOT */ diff --git a/sys/i386/isa/spkr.c b/sys/i386/isa/spkr.c index 759a9fcd9c3..f594b8bb890 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 * - * $Id: spkr.c,v 1.35 1998/08/24 02:28:16 bde Exp $ + * $Id: spkr.c,v 1.36 1999/05/30 16:52:27 phk Exp $ */ #include "speaker.h" @@ -601,24 +601,14 @@ spkrioctl(dev, cmd, cmdarg, flags, p) return(EINVAL); } - -static int spkr_devsw_installed; - static void spkr_drvinit(void *unused) { - dev_t dev; - - if( ! spkr_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&spkr_cdevsw, NULL); - spkr_devsw_installed = 1; + cdevsw_add(&spkr_cdevsw); #ifdef DEVFS - devfs_token = devfs_add_devswf(&spkr_cdevsw, 0, DV_CHR, - UID_ROOT, GID_WHEEL, 0600, - "speaker"); + devfs_token = devfs_add_devswf(&spkr_cdevsw, 0, DV_CHR, + UID_ROOT, GID_WHEEL, 0600, "speaker"); #endif - } } SYSINIT(spkrdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,spkr_drvinit,NULL) diff --git a/sys/i386/isa/stallion.c b/sys/i386/isa/stallion.c index 91cec5db433..d817409a32d 100644 --- a/sys/i386/isa/stallion.c +++ b/sys/i386/isa/stallion.c @@ -33,7 +33,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: stallion.c,v 1.31 1999/05/09 17:07:22 peter Exp $ + * $Id: stallion.c,v 1.32 1999/05/30 16:52:27 phk Exp $ */ /*****************************************************************************/ @@ -561,13 +561,8 @@ static int stl_devsw_installed; static void stl_drvinit(void *unused) { - dev_t dev; - if (! stl_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &stl_cdevsw, NULL); - stl_devsw_installed = 1; - } + cdevsw_add(&stl_cdevsw); } SYSINIT(sidev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,stl_drvinit,NULL) diff --git a/sys/i386/isa/tw.c b/sys/i386/isa/tw.c index 3385a851008..c7de9d3b79b 100644 --- a/sys/i386/isa/tw.c +++ b/sys/i386/isa/tw.c @@ -359,7 +359,10 @@ static int twprobe(idp) struct tw_sc sc; int d; int tries; + static int once; + if (!once++) + cdevsw_add(&tw_cdevsw); sc.sc_port = idp->id_iobase; /* Search for the zero crossing signal at ports, bit combinations. */ tw_zcport = tw_control; @@ -1168,21 +1171,4 @@ static int twchecktime(int target, int tol) } #endif /* HIRESTIME */ - -static int tw_devsw_installed; - -static void tw_drvinit(void *unused) -{ - dev_t dev; - - if( ! tw_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&tw_cdevsw, NULL); - tw_devsw_installed = 1; - } -} - -SYSINIT(twdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,tw_drvinit,NULL) - - #endif /* NTW */ diff --git a/sys/i386/isa/wd.c b/sys/i386/isa/wd.c index 78ad4e6adea..6a5100a80e0 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.197 1999/05/08 18:13:15 peter Exp $ + * $Id: wd.c,v 1.198 1999/05/30 16:52:29 phk Exp $ */ /* TODO: @@ -2386,17 +2386,12 @@ wdwait(struct disk *du, u_char bits_wanted, int timeout) return (-1); } -static int wd_devsw_installed; - static void wd_drvinit(void *unused) { - if( ! wd_devsw_installed ) { - if (wd_cdevsw.d_maxio == 0) - wd_cdevsw.d_maxio = 248 * 512; - cdevsw_add_generic(BDEV_MAJOR,CDEV_MAJOR, &wd_cdevsw); - wd_devsw_installed = 1; - } + if (wd_cdevsw.d_maxio == 0) + wd_cdevsw.d_maxio = 248 * 512; + cdevsw_add(&wd_cdevsw); } SYSINIT(wddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,wd_drvinit,NULL) diff --git a/sys/i386/isa/wd_cd.c b/sys/i386/isa/wd_cd.c index 644fb3f4713..0613e7ee217 100644 --- a/sys/i386/isa/wd_cd.c +++ b/sys/i386/isa/wd_cd.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: atapi-cd.c,v 1.18 1999/05/11 10:39:27 sos Exp $ + * $Id: atapi-cd.c,v 1.19 1999/05/30 16:52:08 phk Exp $ */ #include "wdc.h" @@ -1496,15 +1496,10 @@ atapi_dump(int ctrlr, int lun, char *label, void *data, int len) printf ("\n"); } -static int acd_devsw_installed; - static void acd_drvinit(void *unused) { - if (!acd_devsw_installed) { - cdevsw_add_generic(BDEV_MAJOR, CDEV_MAJOR, &acd_cdevsw); - acd_devsw_installed = 1; - } + cdevsw_add(&acd_cdevsw); } SYSINIT(acddev, SI_SUB_DRIVERS, SI_ORDER_MIDDLE + CDEV_MAJOR, acd_drvinit, NULL) diff --git a/sys/i386/isa/wfd.c b/sys/i386/isa/wfd.c index d03a2014eda..d053cb8b4bf 100644 --- a/sys/i386/isa/wfd.c +++ b/sys/i386/isa/wfd.c @@ -23,7 +23,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: wfd.c,v 1.23 1999/05/07 07:03:31 phk Exp $ + * $Id: wfd.c,v 1.24 1999/05/30 16:52:30 phk Exp $ */ /* @@ -765,17 +765,11 @@ static int wfd_eject (struct wfd *t, int closeit) 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0); } -static int wfd_devsw_installed; - static void wfd_drvinit(void *unused) { - if( ! wfd_devsw_installed ) { - cdevsw_add_generic(BDEV_MAJOR, CDEV_MAJOR, &wfd_cdevsw); - wfd_devsw_installed = 1; - } + cdevsw_add(&wfd_cdevsw); } SYSINIT(wfddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,wfd_drvinit,NULL) - #endif /* NWFD && NWDC */ diff --git a/sys/i386/isa/wst.c b/sys/i386/isa/wst.c index 82832d41349..94d41468841 100644 --- a/sys/i386/isa/wst.c +++ b/sys/i386/isa/wst.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: wst.c,v 1.21 1999/05/07 07:03:32 phk Exp $ + * $Id: wst.c,v 1.22 1999/05/30 16:52:30 phk Exp $ */ #include "wdc.h" @@ -787,18 +787,10 @@ wst_reset(struct wst *t) DELAY(30); } -static int wst_devsw_installed; - static void wst_drvinit(void *unused) { - if (!wst_devsw_installed) { - dev_t dev; - - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &wst_cdevsw, NULL); - wst_devsw_installed = 1; - } + cdevsw_add(&wst_cdevsw); } SYSINIT(wstdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,wst_drvinit,NULL) diff --git a/sys/i386/isa/wt.c b/sys/i386/isa/wt.c index 650cc0b57ee..73ccab30b74 100644 --- a/sys/i386/isa/wt.c +++ b/sys/i386/isa/wt.c @@ -20,7 +20,7 @@ * the original CMU copyright notice. * * Version 1.3, Thu Nov 11 12:09:13 MSK 1993 - * $Id: wt.c,v 1.50 1999/05/07 07:03:33 phk Exp $ + * $Id: wt.c,v 1.51 1999/05/30 16:52:31 phk Exp $ * */ @@ -223,6 +223,10 @@ static int wtprobe (struct isa_device *id) { wtinfo_t *t = wttab + id->id_unit; + static int once; + + if (!once++) + cdevsw_add(&wt_cdevsw); t->unit = id->id_unit; t->chan = id->id_drq; @@ -993,23 +997,4 @@ wtstatus (wtinfo_t *t) return (1); } - -static int wt_devsw_installed; - -static void -wt_drvinit(void *unused) -{ - - if( ! wt_devsw_installed ) { - dev_t dev; - - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &wt_cdevsw, NULL); - wt_devsw_installed = 1; - } -} - -SYSINIT(wtdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,wt_drvinit,NULL) - - #endif /* NWT */ diff --git a/sys/isa/joy.c b/sys/isa/joy.c index 6847f43d412..a2edbd5f069 100644 --- a/sys/isa/joy.c +++ b/sys/isa/joy.c @@ -120,6 +120,10 @@ static int get_tick __P((void)); static int joyprobe (struct isa_device *dev) { + static int once; + + if (!once++) + cdevsw_add(&joy_cdevsw); #ifdef WANT_JOYSTICK_CONNECTED outb (dev->id_iobase, 0xff); DELAY (10000); /* 10 ms delay */ @@ -251,22 +255,6 @@ get_tick () return (high << 8) | low; } - -static int joy_devsw_installed; - -static void joy_drvinit(void *unused) -{ - dev_t dev; - - if( ! joy_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&joy_cdevsw,NULL); - joy_devsw_installed = 1; - } -} - -SYSINIT(joydev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,joy_drvinit,NULL) - #ifdef JOY_MODULE #include diff --git a/sys/isofs/cd9660/cd9660_vfsops.c b/sys/isofs/cd9660/cd9660_vfsops.c index 1de8b4089d9..907c1382e5c 100644 --- a/sys/isofs/cd9660/cd9660_vfsops.c +++ b/sys/isofs/cd9660/cd9660_vfsops.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)cd9660_vfsops.c 8.18 (Berkeley) 5/22/95 - * $Id: cd9660_vfsops.c,v 1.54 1999/05/07 10:10:46 phk Exp $ + * $Id: cd9660_vfsops.c,v 1.55 1999/05/08 06:39:32 phk Exp $ */ #include @@ -225,8 +225,7 @@ cd9660_mount(mp, path, data, ndp, p) vrele(devvp); return ENOTBLK; } - if (major(devvp->v_rdev) >= nblkdev || - bdevsw(devvp->v_rdev) == NULL) { + if (bdevsw(devvp->v_rdev) == NULL) { vrele(devvp); return ENXIO; } diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c index ecf5ffd7651..b09b04cf25c 100644 --- a/sys/kern/kern_conf.c +++ b/sys/kern/kern_conf.c @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: kern_conf.c,v 1.39 1999/05/12 13:06:34 phk Exp $ + * $Id: kern_conf.c,v 1.40 1999/05/18 13:14:43 luoqi Exp $ */ #include @@ -39,14 +39,11 @@ #include #include -#define NUMCDEV 256 -#define cdevsw_ALLOCSTART (NUMCDEV/2) +#define cdevsw_ALLOCSTART (NUMCDEVSW/2) -struct cdevsw *cdevsw[NUMCDEV]; -int nchrdev = NUMCDEV; +struct cdevsw *cdevsw[NUMCDEVSW]; -int bmaj2cmaj[NUMCDEV]; -int nblkdev = NUMCDEV; +int bmaj2cmaj[NUMCDEVSW]; /* * Routine to convert from character to block device number. @@ -65,66 +62,64 @@ chrtoblk(dev_t dev) return(NODEV); } +struct cdevsw * +devsw(dev_t dev) +{ + return(cdevsw[major(dev)]); +} + +struct cdevsw * +bdevsw(dev_t dev) +{ + struct cdevsw *c; + int i = major(dev); + + if (bmaj2cmaj[i] == 254) + return 0; + + c = cdevsw[bmaj2cmaj[major(dev)]]; + if (!c) { + printf("bogus bdev dev_t %p, no cdev\n", (void *)dev); + Debugger("Bummer"); + return 0; + } + /* CMAJ zero is the console, which has no strategy so this works */ + if (c->d_strategy) + return (c); + return (0); +} + +/* + * Add a cdevsw entry + */ + int -cdevsw_add(dev_t *descrip, - struct cdevsw *newentry, - struct cdevsw **oldentry) +cdevsw_add(struct cdevsw *newentry) { int i; static int setup; if (!setup) { - for (i = 0; i < NUMCDEV; i++) + for (i = 0; i < NUMCDEVSW; i++) if (!bmaj2cmaj[i]) bmaj2cmaj[i] = 254; setup++; } - if ( *descrip == NODEV) { /* auto (0 is valid) */ - /* - * Search the table looking for a slot... - */ - for (i = cdevsw_ALLOCSTART; i < nchrdev; i++) - if (cdevsw[i] == NULL) - break; /* found one! */ - /* out of allocable slots? */ - if (i >= nchrdev) { - return ENFILE; - } - } else { /* assign */ - i = major(*descrip); - if (i < 0 || i >= nchrdev) { - return EINVAL; - } + if (newentry->d_maj < 0 || newentry->d_maj >= NUMCDEVSW) { + printf("%s: ERROR: driver has bogus cdevsw->d_maj = %d\n", + newentry->d_name, newentry->d_maj); + return EINVAL; } - /* maybe save old */ - if (oldentry) { - *oldentry = cdevsw[i]; - } - if (newentry) { - newentry->d_bmaj = -1; - newentry->d_maj = i; - } - /* replace with new */ - cdevsw[i] = newentry; + cdevsw[newentry->d_maj] = newentry; + + if (newentry->d_bmaj >= 0 || newentry->d_bmaj < NUMCDEVSW) + bmaj2cmaj[newentry->d_bmaj] = newentry->d_maj; - /* done! let them know where we put it */ - *descrip = makedev(i,0); return 0; } -void -cdevsw_add_generic(int bmaj, int cmaj, struct cdevsw *devsw) -{ - dev_t dev; - - dev = makedev(cmaj, 0); - cdevsw_add(&dev, devsw, NULL); - cdevsw[cmaj]->d_bmaj = bmaj; - bmaj2cmaj[bmaj] = cmaj; -} - int devsw_module_handler(module_t mod, int what, void* arg) { @@ -137,7 +132,7 @@ devsw_module_handler(module_t mod, int what, void* arg) data->cdev = makedev(data->cmaj, 0); switch (what) { case MOD_LOAD: - error = cdevsw_add(&data->cdev, data->cdevsw, NULL); + error = cdevsw_add(data->cdevsw); if (!error && data->cdevsw->d_strategy != nostrategy) { if (data->bmaj == NOMAJ) { data->bdev = data->cdev; @@ -160,7 +155,6 @@ devsw_module_handler(module_t mod, int what, void* arg) } if (data->cdevsw->d_strategy != nostrategy) bmaj2cmaj[major(data->bdev)] = 0; - error = cdevsw_add(&data->cdev, NULL, NULL); return error; } diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 11d53053b0c..cc96d703050 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.61 1999/05/11 19:54:28 phk Exp $ + * $Id: kern_descrip.c,v 1.62 1999/05/30 16:52:54 phk Exp $ */ #include "opt_compat.h" @@ -1294,14 +1294,12 @@ static void *devfs_token_fildesc[NUMFDESC]; static void fildesc_drvinit(void *unused) { - dev_t dev; #ifdef DEVFS int fd; #endif if( ! fildesc_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&fildesc_cdevsw,NULL); + cdevsw_add(&fildesc_cdevsw); fildesc_devsw_installed = 1; #ifdef DEVFS for (fd = 0; fd < NUMFDESC; fd++) diff --git a/sys/kern/subr_log.c b/sys/kern/subr_log.c index 67a7d6555cc..9f6b84f8e90 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.34 1999/05/06 18:12:46 peter Exp $ + * $Id: subr_log.c,v 1.35 1999/05/30 16:52:56 phk Exp $ */ /* @@ -274,11 +274,9 @@ static void log_drvinit(unused) void *unused; { - dev_t dev; if( ! log_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&log_cdevsw,NULL); + cdevsw_add(&log_cdevsw); log_devsw_installed = 1; #ifdef DEVFS log_devfs_token = devfs_add_devswf(&log_cdevsw, 0, DV_CHR, diff --git a/sys/kern/tty_cons.c b/sys/kern/tty_cons.c index 6b7efb4d56f..acc85035171 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.65 1999/05/08 06:39:20 phk Exp $ + * $Id: cons.c,v 1.66 1999/05/30 16:52:03 phk Exp $ */ #include "opt_devfs.h" @@ -433,11 +433,9 @@ static int cn_devsw_installed; static void cn_drvinit(void *unused) { - dev_t dev; if( ! cn_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&cn_cdevsw,NULL); + cdevsw_add(&cn_cdevsw); cn_devsw_installed = 1; #ifdef DEVFS cn_devfs_token = devfs_add_devswf(&cn_cdevsw, 0, DV_CHR, diff --git a/sys/kern/tty_pty.c b/sys/kern/tty_pty.c index 535df84a923..5a999c354ce 100644 --- a/sys/kern/tty_pty.c +++ b/sys/kern/tty_pty.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)tty_pty.c 8.4 (Berkeley) 2/20/95 - * $Id: tty_pty.c,v 1.59 1999/05/18 14:53:52 luoqi Exp $ + * $Id: tty_pty.c,v 1.60 1999/05/30 16:52:57 phk Exp $ */ /* @@ -843,13 +843,10 @@ ptc_drvinit(unused) #ifdef DEVFS int i,j,k; #endif - dev_t dev; if( ! ptc_devsw_installed ) { - dev = makedev(CDEV_MAJOR_S, 0); - cdevsw_add(&dev, &pts_cdevsw, NULL); - dev = makedev(CDEV_MAJOR_C, 0); - cdevsw_add(&dev, &ptc_cdevsw, NULL); + cdevsw_add(&pts_cdevsw); + cdevsw_add(&ptc_cdevsw); ptc_devsw_installed = 1; #ifdef DEVFS for ( i = 0 ; i= nchrdev) - return (NULL); cdp = devsw(dev); if (cdp == NULL) return (NULL); @@ -533,14 +529,12 @@ static void snp_drvinit(unused) void *unused; { - dev_t dev; #ifdef DEVFS int i; #endif if( ! snp_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&snp_cdevsw, NULL); + cdevsw_add(&snp_cdevsw); snp_devsw_installed = 1; #ifdef DEVFS for ( i = 0 ; i < NSNP ; i++) { diff --git a/sys/kern/tty_tty.c b/sys/kern/tty_tty.c index 693387d55b1..fd88fcd4c53 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.25 1998/08/23 08:26:42 bde Exp $ + * $Id: tty_tty.c,v 1.26 1999/05/30 16:53:00 phk Exp $ */ /* @@ -203,11 +203,9 @@ static void ctty_drvinit(unused) void *unused; { - dev_t dev; if( ! ctty_devsw_installed ) { - dev = makedev(CDEV_MAJOR,0); - cdevsw_add(&dev,&ctty_cdevsw,NULL); + cdevsw_add(&ctty_cdevsw); ctty_devsw_installed = 1; #ifdef DEVFS ctty_devfs_token = diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c index f32aaf0f044..b15430079c8 100644 --- a/sys/kern/vfs_export.c +++ b/sys/kern/vfs_export.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95 - * $Id: vfs_subr.c,v 1.198 1999/05/14 20:40:15 luoqi Exp $ + * $Id: vfs_subr.c,v 1.199 1999/05/24 00:34:10 jb Exp $ */ /* @@ -324,11 +324,11 @@ vfs_getnewfsid(mp) simple_lock(&mntid_slock); mtype = mp->mnt_vfc->vfc_typenum; - mp->mnt_stat.f_fsid.val[0] = (nblkdev + mtype) * 256; + mp->mnt_stat.f_fsid.val[0] = (256 + mtype) * 256; mp->mnt_stat.f_fsid.val[1] = mtype; if (xxxfs_mntid == 0) ++xxxfs_mntid; - tfsid.val[0] = (nblkdev + mtype) * 256 | xxxfs_mntid; + tfsid.val[0] = (256 + mtype) * 256 | xxxfs_mntid; tfsid.val[1] = mtype; if (mountlist.cqh_first != (void *)&mountlist) { while (vfs_getvfs(&tfsid)) { @@ -1175,7 +1175,7 @@ bdevvp(dev, vpp) struct vnode *nvp; int error; - if (dev == NODEV || major(dev) >= nblkdev) { + if (dev == NODEV) { *vpp = NULLVP; return (ENXIO); } @@ -1211,7 +1211,6 @@ checkalias(nvp, nvp_rdev, mp) struct proc *p = curproc; /* XXX */ struct vnode *vp; struct vnode **vpp; - int rmaj = umajor(nvp_rdev); dev_t dev; if (nvp->v_type != VBLK && nvp->v_type != VCHR) @@ -1275,10 +1274,10 @@ loop: * si_bsize_* parameters may need fixing up. */ - if (nvp->v_type == VBLK && rmaj < nblkdev) { + if (nvp->v_type == VBLK) { if (bdevsw(dev) && bdevsw(dev)->d_parms) (*bdevsw(dev)->d_parms)(dev, sinfo, DPARM_GET); - } else if (nvp->v_type == VCHR && rmaj < nchrdev) { + } else if (nvp->v_type == VCHR) { if (devsw(dev) && devsw(dev)->d_parms) (*devsw(dev)->d_parms)(dev, sinfo, DPARM_GET); } @@ -2584,8 +2583,7 @@ retry: if ((error = VOP_GETATTR(vp, &vat, cred, p)) != 0) goto retn; object = vnode_pager_alloc(vp, vat.va_size, 0, 0); - } else if (major(vp->v_rdev) < nblkdev && - bdevsw(vp->v_rdev) != NULL) { + } else if (bdevsw(vp->v_rdev) != NULL) { /* * This simply allocates the biggest object possible * for a VBLK vnode. This should be fixed, but doesn't diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index f32aaf0f044..b15430079c8 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95 - * $Id: vfs_subr.c,v 1.198 1999/05/14 20:40:15 luoqi Exp $ + * $Id: vfs_subr.c,v 1.199 1999/05/24 00:34:10 jb Exp $ */ /* @@ -324,11 +324,11 @@ vfs_getnewfsid(mp) simple_lock(&mntid_slock); mtype = mp->mnt_vfc->vfc_typenum; - mp->mnt_stat.f_fsid.val[0] = (nblkdev + mtype) * 256; + mp->mnt_stat.f_fsid.val[0] = (256 + mtype) * 256; mp->mnt_stat.f_fsid.val[1] = mtype; if (xxxfs_mntid == 0) ++xxxfs_mntid; - tfsid.val[0] = (nblkdev + mtype) * 256 | xxxfs_mntid; + tfsid.val[0] = (256 + mtype) * 256 | xxxfs_mntid; tfsid.val[1] = mtype; if (mountlist.cqh_first != (void *)&mountlist) { while (vfs_getvfs(&tfsid)) { @@ -1175,7 +1175,7 @@ bdevvp(dev, vpp) struct vnode *nvp; int error; - if (dev == NODEV || major(dev) >= nblkdev) { + if (dev == NODEV) { *vpp = NULLVP; return (ENXIO); } @@ -1211,7 +1211,6 @@ checkalias(nvp, nvp_rdev, mp) struct proc *p = curproc; /* XXX */ struct vnode *vp; struct vnode **vpp; - int rmaj = umajor(nvp_rdev); dev_t dev; if (nvp->v_type != VBLK && nvp->v_type != VCHR) @@ -1275,10 +1274,10 @@ loop: * si_bsize_* parameters may need fixing up. */ - if (nvp->v_type == VBLK && rmaj < nblkdev) { + if (nvp->v_type == VBLK) { if (bdevsw(dev) && bdevsw(dev)->d_parms) (*bdevsw(dev)->d_parms)(dev, sinfo, DPARM_GET); - } else if (nvp->v_type == VCHR && rmaj < nchrdev) { + } else if (nvp->v_type == VCHR) { if (devsw(dev) && devsw(dev)->d_parms) (*devsw(dev)->d_parms)(dev, sinfo, DPARM_GET); } @@ -2584,8 +2583,7 @@ retry: if ((error = VOP_GETATTR(vp, &vat, cred, p)) != 0) goto retn; object = vnode_pager_alloc(vp, vat.va_size, 0, 0); - } else if (major(vp->v_rdev) < nblkdev && - bdevsw(vp->v_rdev) != NULL) { + } else if (bdevsw(vp->v_rdev) != NULL) { /* * This simply allocates the biggest object possible * for a VBLK vnode. This should be fixed, but doesn't diff --git a/sys/miscfs/fdesc/fdesc_vnops.c b/sys/miscfs/fdesc/fdesc_vnops.c index 6bdea5fc4ce..2d7dc39f097 100644 --- a/sys/miscfs/fdesc/fdesc_vnops.c +++ b/sys/miscfs/fdesc/fdesc_vnops.c @@ -35,7 +35,7 @@ * * @(#)fdesc_vnops.c 8.9 (Berkeley) 1/21/94 * - * $Id: fdesc_vnops.c,v 1.40 1998/12/14 05:00:57 dillon Exp $ + * $Id: fdesc_vnops.c,v 1.41 1999/01/27 22:42:06 dillon Exp $ */ /* @@ -105,7 +105,7 @@ fdesc_init(vfsp) struct vfsconf *vfsp; { - devctty = makedev(nchrdev, 0); + devctty = NODEV; fdhashtbl = hashinit(NFDCACHE, M_CACHE, &fdhash); return (0); } diff --git a/sys/miscfs/kernfs/kernfs_vfsops.c b/sys/miscfs/kernfs/kernfs_vfsops.c index 7ae0a35240e..a945fae3c08 100644 --- a/sys/miscfs/kernfs/kernfs_vfsops.c +++ b/sys/miscfs/kernfs/kernfs_vfsops.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)kernfs_vfsops.c 8.10 (Berkeley) 5/14/95 - * $Id: kernfs_vfsops.c,v 1.26 1999/05/08 06:39:52 phk Exp $ + * $Id: kernfs_vfsops.c,v 1.27 1999/05/11 19:54:36 phk Exp $ */ /* @@ -80,6 +80,7 @@ kernfs_get_rrootdev() { static int tried = 0; int cmaj; + struct cdevsw *sw; if (tried) { /* Already did it once. */ @@ -87,18 +88,12 @@ kernfs_get_rrootdev() } tried = 1; - if (!bdevsw(rootdev)) { - panic("root dev has no bdevsw"); - } + sw = bdevsw(rootdev); + if (!sw) + return; if (rootdev == NODEV) return; - for (cmaj = 0; cmaj < nchrdev; cmaj++) { - rrootdev = makedev(cmaj, minor(rootdev)); - if (chrtoblk(rrootdev) == rootdev) - return; - } - rrootdev = NODEV; - printf("kernfs_get_rrootdev: no raw root device\n"); + rrootdev = makedev(sw->d_maj, minor(rootdev)); } /* diff --git a/sys/miscfs/specfs/spec_vnops.c b/sys/miscfs/specfs/spec_vnops.c index 636bc4453f8..ae8bc0f7a8e 100644 --- a/sys/miscfs/specfs/spec_vnops.c +++ b/sys/miscfs/specfs/spec_vnops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)spec_vnops.c 8.14 (Berkeley) 5/21/95 - * $Id: spec_vnops.c,v 1.85 1999/05/08 06:39:55 phk Exp $ + * $Id: spec_vnops.c,v 1.86 1999/05/11 19:54:38 phk Exp $ */ #include @@ -176,8 +176,6 @@ spec_open(ap) switch (vp->v_type) { case VCHR: - if ((u_int)maj >= nchrdev) - return (ENXIO); dsw = devsw(dev); if ( (dsw == NULL) || (dsw->d_open == NULL)) return ENXIO; @@ -214,8 +212,6 @@ spec_open(ap) return (error); /* NOT REACHED */ case VBLK: - if ((u_int)maj >= nblkdev) - return (ENXIO); dsw = bdevsw(dev); if ( (dsw == NULL) || (dsw->d_open == NULL)) return ENXIO; diff --git a/sys/msdosfs/msdosfs_vfsops.c b/sys/msdosfs/msdosfs_vfsops.c index 35c4cb21030..9312e3054ee 100644 --- a/sys/msdosfs/msdosfs_vfsops.c +++ b/sys/msdosfs/msdosfs_vfsops.c @@ -1,4 +1,4 @@ -/* $Id: msdosfs_vfsops.c,v 1.43 1999/05/07 10:11:10 phk Exp $ */ +/* $Id: msdosfs_vfsops.c,v 1.44 1999/05/08 06:40:00 phk Exp $ */ /* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */ /*- @@ -298,8 +298,7 @@ msdosfs_mount(mp, path, data, ndp, p) vrele(devvp); return (ENOTBLK); } - if (major(devvp->v_rdev) >= nblkdev || - bdevsw(devvp->v_rdev) == NULL) { + if (bdevsw(devvp->v_rdev) == NULL) { vrele(devvp); return (ENXIO); } diff --git a/sys/net/bpf.c b/sys/net/bpf.c index 40d36097599..a564935d9ab 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.49 1999/04/28 11:37:30 phk Exp $ + * $Id: bpf.c,v 1.50 1999/05/30 16:53:04 phk Exp $ */ #include "bpfilter.h" @@ -1306,14 +1306,12 @@ static void bpf_drvinit(unused) void *unused; { - dev_t dev; #ifdef DEVFS int i; #endif if( ! bpf_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&bpf_cdevsw, NULL); + cdevsw_add(&bpf_cdevsw); bpf_devsw_installed = 1; #ifdef DEVFS diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c index 071e628dd08..caff2d4e559 100644 --- a/sys/net/if_tun.c +++ b/sys/net/if_tun.c @@ -121,12 +121,10 @@ tunattach(dummy) { register int i; struct ifnet *ifp; - dev_t dev; if ( tun_devsw_installed ) return; - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &tun_cdevsw, NULL); + cdevsw_add(&tun_cdevsw); tun_devsw_installed = 1; for ( i = 0; i < NTUN; i++ ) { #ifdef DEVFS diff --git a/sys/netinet/mlf_ipl.c b/sys/netinet/mlf_ipl.c index 014220998f9..3e0e240338d 100644 --- a/sys/netinet/mlf_ipl.c +++ b/sys/netinet/mlf_ipl.c @@ -382,14 +382,12 @@ static int ipl_devsw_installed; static void ipl_drvinit __P((void *unused)) { - dev_t dev; # ifdef DEVFS void **tp = ipf_devfs; # endif if (!ipl_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &ipl_cdevsw, NULL); + cdevsw_add(&ipl_cdevsw); ipl_devsw_installed = 1; # ifdef DEVFS diff --git a/sys/ntfs/ntfs_vfsops.c b/sys/ntfs/ntfs_vfsops.c index 134ca03d28f..b224001ffc6 100644 --- a/sys/ntfs/ntfs_vfsops.c +++ b/sys/ntfs/ntfs_vfsops.c @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: ntfs_vfsops.c,v 1.5 1999/05/11 19:54:52 phk Exp $ + * $Id: ntfs_vfsops.c,v 1.6 1999/05/12 09:43:04 semenu Exp $ */ @@ -296,7 +296,7 @@ ntfs_mount ( err = ENOTBLK; goto error_2; } - if (major(devvp->v_rdev) >= nblkdev) { + if (bdevsw(devvp->v_rdev) == NULL) { err = ENXIO; goto error_2; } diff --git a/sys/pc98/pc98/lpt.c b/sys/pc98/pc98/lpt.c index 51999ab6cf8..b6d71b9405c 100644 --- a/sys/pc98/pc98/lpt.c +++ b/sys/pc98/pc98/lpt.c @@ -46,7 +46,7 @@ * SUCH DAMAGE. * * from: unknown origin, 386BSD 0.1 - * $Id: lpt.c,v 1.26 1999/04/28 10:53:53 dt Exp $ + * $Id: lpt.c,v 1.27 1999/05/30 16:53:17 phk Exp $ */ /* @@ -1443,11 +1443,9 @@ static int lpt_devsw_installed; static void lpt_drvinit(void *unused) { - dev_t dev; if( ! lpt_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&lpt_cdevsw, NULL); + cdevsw_add(&lpt_cdevsw); lpt_devsw_installed = 1; } } diff --git a/sys/pc98/pc98/mse.c b/sys/pc98/pc98/mse.c index 596b10c1ca7..47c9d59c0e6 100644 --- a/sys/pc98/pc98/mse.c +++ b/sys/pc98/pc98/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.20 1999/05/09 04:37:17 kato Exp $ + * $Id: mse.c,v 1.21 1999/05/30 16:53:19 phk Exp $ */ /* * Driver for the Logitech and ATI Inport Bus mice for use with 386bsd and @@ -946,11 +946,9 @@ static int mse_devsw_installed; static void mse_drvinit(void *unused) { - dev_t dev; if( ! mse_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&mse_cdevsw, NULL); + cdevsw_add(&mse_cdevsw); mse_devsw_installed = 1; } } diff --git a/sys/pc98/pc98/pcaudio.c b/sys/pc98/pc98/pcaudio.c index ee06ce20c46..76d6e277d9f 100644 --- a/sys/pc98/pc98/pcaudio.c +++ b/sys/pc98/pc98/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.22 1999/05/09 04:39:36 kato Exp $ + * $Id: pcaudio.c,v 1.23 1999/05/30 16:53:21 phk Exp $ */ #include "pca.h" @@ -608,11 +608,9 @@ static int pca_devsw_installed; static void pca_drvinit(void *unused) { - dev_t dev; if( ! pca_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&pca_cdevsw, NULL); + cdevsw_add(&pca_cdevsw); pca_devsw_installed = 1; } } diff --git a/sys/pc98/pc98/spkr.c b/sys/pc98/pc98/spkr.c index f10611369ff..cb6381d6fda 100644 --- a/sys/pc98/pc98/spkr.c +++ b/sys/pc98/pc98/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 * - * $Id: spkr.c,v 1.14 1998/08/28 12:47:45 kato Exp $ + * $Id: spkr.c,v 1.15 1999/05/30 16:53:23 phk Exp $ */ /* @@ -640,11 +640,9 @@ static int spkr_devsw_installed; static void spkr_drvinit(void *unused) { - dev_t dev; if( ! spkr_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&spkr_cdevsw, NULL); + cdevsw_add(&spkr_cdevsw); spkr_devsw_installed = 1; #ifdef DEVFS devfs_token = devfs_add_devswf(&spkr_cdevsw, 0, DV_CHR, diff --git a/sys/pc98/pc98/syscons.c b/sys/pc98/pc98/syscons.c index fa8119abb25..63c39785ab0 100644 --- a/sys/pc98/pc98/syscons.c +++ b/sys/pc98/pc98/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.118 1999/05/09 05:02:26 kato Exp $ + * $Id: syscons.c,v 1.119 1999/05/30 16:53:24 phk Exp $ */ #include "sc.h" @@ -721,7 +721,7 @@ scattach(device_t dev) at_shutdown(scshutdown, NULL, SHUTDOWN_PRE_SYNC); - cdevsw_add(&cdev, &sc_cdevsw, NULL); + cdevsw_add(&sc_cdevsw); #ifdef DEVFS for (vc = 0; vc < MAXCONS; vc++) diff --git a/sys/pc98/pc98/wd.c b/sys/pc98/pc98/wd.c index ebecceb218f..8a7c163a767 100644 --- a/sys/pc98/pc98/wd.c +++ b/sys/pc98/pc98/wd.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)wd.c 7.2 (Berkeley) 5/9/91 - * $Id: wd.c,v 1.82 1999/05/25 10:41:14 kato Exp $ + * $Id: wd.c,v 1.83 1999/05/30 16:53:26 phk Exp $ */ /* TODO: @@ -2666,7 +2666,7 @@ static void wd_drvinit(void *unused) if( ! wd_devsw_installed ) { if (wd_cdevsw.d_maxio == 0) wd_cdevsw.d_maxio = 248 * 512; - cdevsw_add_generic(BDEV_MAJOR,CDEV_MAJOR, &wd_cdevsw); + cdevsw_add(&wd_cdevsw); wd_devsw_installed = 1; } } diff --git a/sys/pc98/pc98/wd_cd.c b/sys/pc98/pc98/wd_cd.c index 644fb3f4713..0613e7ee217 100644 --- a/sys/pc98/pc98/wd_cd.c +++ b/sys/pc98/pc98/wd_cd.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: atapi-cd.c,v 1.18 1999/05/11 10:39:27 sos Exp $ + * $Id: atapi-cd.c,v 1.19 1999/05/30 16:52:08 phk Exp $ */ #include "wdc.h" @@ -1496,15 +1496,10 @@ atapi_dump(int ctrlr, int lun, char *label, void *data, int len) printf ("\n"); } -static int acd_devsw_installed; - static void acd_drvinit(void *unused) { - if (!acd_devsw_installed) { - cdevsw_add_generic(BDEV_MAJOR, CDEV_MAJOR, &acd_cdevsw); - acd_devsw_installed = 1; - } + cdevsw_add(&acd_cdevsw); } SYSINIT(acddev, SI_SUB_DRIVERS, SI_ORDER_MIDDLE + CDEV_MAJOR, acd_drvinit, NULL) diff --git a/sys/pc98/pc98/wfd.c b/sys/pc98/pc98/wfd.c index d03a2014eda..d053cb8b4bf 100644 --- a/sys/pc98/pc98/wfd.c +++ b/sys/pc98/pc98/wfd.c @@ -23,7 +23,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: wfd.c,v 1.23 1999/05/07 07:03:31 phk Exp $ + * $Id: wfd.c,v 1.24 1999/05/30 16:52:30 phk Exp $ */ /* @@ -765,17 +765,11 @@ static int wfd_eject (struct wfd *t, int closeit) 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0); } -static int wfd_devsw_installed; - static void wfd_drvinit(void *unused) { - if( ! wfd_devsw_installed ) { - cdevsw_add_generic(BDEV_MAJOR, CDEV_MAJOR, &wfd_cdevsw); - wfd_devsw_installed = 1; - } + cdevsw_add(&wfd_cdevsw); } SYSINIT(wfddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,wfd_drvinit,NULL) - #endif /* NWFD && NWDC */ diff --git a/sys/pc98/pc98/wst.c b/sys/pc98/pc98/wst.c index 82832d41349..94d41468841 100644 --- a/sys/pc98/pc98/wst.c +++ b/sys/pc98/pc98/wst.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: wst.c,v 1.21 1999/05/07 07:03:32 phk Exp $ + * $Id: wst.c,v 1.22 1999/05/30 16:52:30 phk Exp $ */ #include "wdc.h" @@ -787,18 +787,10 @@ wst_reset(struct wst *t) DELAY(30); } -static int wst_devsw_installed; - static void wst_drvinit(void *unused) { - if (!wst_devsw_installed) { - dev_t dev; - - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &wst_cdevsw, NULL); - wst_devsw_installed = 1; - } + cdevsw_add(&wst_cdevsw); } SYSINIT(wstdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,wst_drvinit,NULL) diff --git a/sys/pccard/pccard.c b/sys/pccard/pccard.c index 100f7f583ba..9ec75d71b5b 100644 --- a/sys/pccard/pccard.c +++ b/sys/pccard/pccard.c @@ -28,7 +28,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: pccard.c,v 1.78 1999/05/04 15:43:02 wpaul Exp $ + * $Id: pccard.c,v 1.79 1999/05/30 16:53:28 phk Exp $ */ #include "opt_devfs.h" @@ -185,6 +185,7 @@ pccard_configure(dummy) printf("Initializing PC-card drivers:"); for (drv = drivers; drv != NULL; drv = drv->next) printf(" %s", drv->name); + cdevsw_add(&crd_cdevsw); printf("\n"); } @@ -1111,18 +1112,3 @@ find_driver(char *name) return(drv); return(0); } - -static void -crd_drvinit(void *unused) -{ - static int crd_devsw_installed; - dev_t dev; - - if (!crd_devsw_installed) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev, &crd_cdevsw, NULL); - crd_devsw_installed = 1; - } -} - -SYSINIT(crddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,crd_drvinit,NULL) diff --git a/sys/pci/brooktree848.c b/sys/pci/brooktree848.c index 70d3367dfa0..558400becdb 100644 --- a/sys/pci/brooktree848.c +++ b/sys/pci/brooktree848.c @@ -1,4 +1,4 @@ -/* $Id: brooktree848.c,v 1.81 1999/05/25 12:43:40 roger Exp $ */ +/* $Id: brooktree848.c,v 1.82 1999/05/30 16:53:32 phk Exp $ */ /* BT848 Driver for Brooktree's Bt848, Bt848A, Bt849A, Bt878, Bt879 based cards. The Brooktree BT848 Driver driver is based upon Mark Tinguely and Jim Lowe's driver for the Matrox Meteor PCI card . The @@ -668,6 +668,10 @@ bktr_probe(struct device *parent, struct cfdata *cf, void *aux) pci_devaddr_t *pa; pci_devres_t res; struct isa_attach_args *ia = aux; + static int once; + + if (!once++) + cdevsw_add(&bktr_cdevsw); if (ia->ia_bustype != BUS_PCI) return (0); @@ -7017,29 +7021,6 @@ static void msp_autodetect( bktr_ptr_t bktr ) { /* msp_write(bktr, 0x12, 0x0014, 0x7f40); */ } -/****************************************************************************** - * magic: - */ - - -#ifdef __FreeBSD__ -static int bktr_devsw_installed; - -static void -bktr_drvinit( void *unused ) -{ - dev_t dev; - - if ( ! bktr_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&bktr_cdevsw, NULL); - bktr_devsw_installed = 1; - } -} - -SYSINIT(bktrdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,bktr_drvinit,NULL) - -#endif /* __FreeBSD__ */ #endif /* !defined(__FreeBSD__) || (NBKTR > 0 && NPCI > 0) */ /* Local Variables: */ diff --git a/sys/pci/meteor.c b/sys/pci/meteor.c index ca50c9a162d..71f708f5401 100644 --- a/sys/pci/meteor.c +++ b/sys/pci/meteor.c @@ -539,6 +539,10 @@ register int err = 0; static const char * met_probe (pcici_t tag, pcidi_t type) { + static int once; + + if (!once++) + cdevsw_add(&meteor_cdevsw); switch (type) { case SAA7116_PHILIPS_ID: /* meteor */ @@ -2095,22 +2099,4 @@ meteor_mmap(dev_t dev, vm_offset_t offset, int nprot) return i386_btop(vtophys(mtr->bigbuf) + offset); } - -#if !defined(METEOR_FreeBSD_210) /* XXX */ -static int meteor_devsw_installed; - -static void meteor_drvinit(void *unused) -{ - dev_t dev; - - if( ! meteor_devsw_installed ) { - dev = makedev(CDEV_MAJOR, 0); - cdevsw_add(&dev,&meteor_cdevsw, NULL); - meteor_devsw_installed = 1; - } -} - -SYSINIT(meteordev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,meteor_drvinit,NULL) -#endif - #endif /* NMETEOR > 0 */ diff --git a/sys/pci/pci.c b/sys/pci/pci.c index bf5e6576190..8bc9c1df2ca 100644 --- a/sys/pci/pci.c +++ b/sys/pci/pci.c @@ -23,7 +23,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: pci.c,v 1.105 1999/05/30 10:54:31 dfr Exp $ + * $Id: pci.c,v 1.106 1999/05/30 16:53:36 phk Exp $ * */ @@ -875,10 +875,7 @@ static void *pci_devfs_token; static void pci_cdevinit(void *dummy) { - dev_t dev; - - dev = makedev(PCI_CDEV, 0); - cdevsw_add(&dev, &pcicdev, NULL); + cdevsw_add(&pcicdev); #ifdef DEVFS pci_devfs_token = devfs_add_devswf(&pcicdev, 0, DV_CHR, UID_ROOT, GID_WHEEL, 0644, "pci"); diff --git a/sys/pci/xrpu.c b/sys/pci/xrpu.c index 309deb034ef..b8511b3b8db 100644 --- a/sys/pci/xrpu.c +++ b/sys/pci/xrpu.c @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $Id: xrpu.c,v 1.10 1999/05/09 17:07:12 peter Exp $ + * $Id: xrpu.c,v 1.11 1999/05/30 16:53:37 phk Exp $ * * A very simple device driver for PCI cards based on Xilinx 6200 series * FPGA/RPU devices. Current Functionality is to allow you to open and @@ -220,6 +220,10 @@ xrpu_probe (pcici_t tag, pcidi_t typea) { u_int id; const char *vendor, *chip, *type; + static int once; + + if (!once++) + cdevsw_add(&xrpu_cdevsw); (void)pci_conf_read(tag, PCI_CLASS_REG); id = pci_conf_read(tag, PCI_ID_REG); @@ -236,7 +240,6 @@ static void xrpu_attach (pcici_t tag, int unit) { struct softc *sc; - dev_t cdev = makedev(CDEV_MAJOR, unit); sc = (struct softc *)malloc(sizeof *sc, M_XRPU, M_WAITOK); softc[unit] = sc; @@ -253,8 +256,6 @@ xrpu_attach (pcici_t tag, int unit) printf("Mapped physbase %#lx to virbase %#lx\n", (u_long)sc->physbase, (u_long)sc->virbase); - if (!unit) - cdevsw_add(&cdev, &xrpu_cdevsw, NULL); #ifdef DEVFS devfs_add_devswf(&xrpu_cdevsw, 0, DV_CHR, UID_ROOT, GID_WHEEL, 0600, diff --git a/sys/sys/conf.h b/sys/sys/conf.h index a5d037be63d..57903037a3b 100644 --- a/sys/sys/conf.h +++ b/sys/sys/conf.h @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)conf.h 8.5 (Berkeley) 1/9/95 - * $Id: conf.h,v 1.56 1999/05/12 22:33:08 peter Exp $ + * $Id: conf.h,v 1.57 1999/05/30 16:53:40 phk Exp $ */ #ifndef _SYS_CONF_H_ @@ -127,40 +127,6 @@ struct cdevsw { int d_bmaj; }; -#ifdef KERNEL -extern struct cdevsw *cdevsw[]; -extern int bmaj2cmaj[]; - -static __inline -struct cdevsw * -devsw(dev_t dev) -{ - return(cdevsw[major(dev)]); -} - -static __inline -struct cdevsw * -bdevsw(dev_t dev) -{ - struct cdevsw *c; - int i = major(dev); - - if (bmaj2cmaj[i] == 254) - return 0; - - c = cdevsw[bmaj2cmaj[major(dev)]]; - if (!c) { - printf("bogus bdev dev_t %p, no cdev\n", (void *)dev); - Debugger("Bummer"); - return 0; - } - /* CMAJ zero is the console, which has no strategy so this works */ - if (c->d_strategy) - return (c); - return (0); -} -#endif - /* * Line discipline switch table */ @@ -214,6 +180,8 @@ d_mmap_t nommap; d_dump_t nodump; +#define NUMCDEVSW 256 + /* * nopsize is little used, so not worth having dummy functions for. */ @@ -252,12 +220,13 @@ DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE+cmaj*256+bmaj) int devsw_module_handler __P((struct module *mod, int what, void *arg)); -int cdevsw_add __P((dev_t *descrip,struct cdevsw *new,struct cdevsw **old)); -void cdevsw_add_generic __P((int bdev, int cdev, struct cdevsw *cdevsw)); +int cdevsw_add __P((struct cdevsw *new)); dev_t chrtoblk __P((dev_t dev)); int iskmemdev __P((dev_t dev)); int iszerodev __P((dev_t dev)); void setconf __P((void)); +struct cdevsw *bdevsw __P((dev_t dev)); +struct cdevsw *devsw __P((dev_t dev)); #endif /* KERNEL */ #endif /* !_SYS_CONF_H_ */ diff --git a/sys/sys/linedisc.h b/sys/sys/linedisc.h index a5d037be63d..57903037a3b 100644 --- a/sys/sys/linedisc.h +++ b/sys/sys/linedisc.h @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)conf.h 8.5 (Berkeley) 1/9/95 - * $Id: conf.h,v 1.56 1999/05/12 22:33:08 peter Exp $ + * $Id: conf.h,v 1.57 1999/05/30 16:53:40 phk Exp $ */ #ifndef _SYS_CONF_H_ @@ -127,40 +127,6 @@ struct cdevsw { int d_bmaj; }; -#ifdef KERNEL -extern struct cdevsw *cdevsw[]; -extern int bmaj2cmaj[]; - -static __inline -struct cdevsw * -devsw(dev_t dev) -{ - return(cdevsw[major(dev)]); -} - -static __inline -struct cdevsw * -bdevsw(dev_t dev) -{ - struct cdevsw *c; - int i = major(dev); - - if (bmaj2cmaj[i] == 254) - return 0; - - c = cdevsw[bmaj2cmaj[major(dev)]]; - if (!c) { - printf("bogus bdev dev_t %p, no cdev\n", (void *)dev); - Debugger("Bummer"); - return 0; - } - /* CMAJ zero is the console, which has no strategy so this works */ - if (c->d_strategy) - return (c); - return (0); -} -#endif - /* * Line discipline switch table */ @@ -214,6 +180,8 @@ d_mmap_t nommap; d_dump_t nodump; +#define NUMCDEVSW 256 + /* * nopsize is little used, so not worth having dummy functions for. */ @@ -252,12 +220,13 @@ DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE+cmaj*256+bmaj) int devsw_module_handler __P((struct module *mod, int what, void *arg)); -int cdevsw_add __P((dev_t *descrip,struct cdevsw *new,struct cdevsw **old)); -void cdevsw_add_generic __P((int bdev, int cdev, struct cdevsw *cdevsw)); +int cdevsw_add __P((struct cdevsw *new)); dev_t chrtoblk __P((dev_t dev)); int iskmemdev __P((dev_t dev)); int iszerodev __P((dev_t dev)); void setconf __P((void)); +struct cdevsw *bdevsw __P((dev_t dev)); +struct cdevsw *devsw __P((dev_t dev)); #endif /* KERNEL */ #endif /* !_SYS_CONF_H_ */ diff --git a/sys/sys/param.h b/sys/sys/param.h index 7259e76ca01..44409c2770d 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)param.h 8.3 (Berkeley) 4/4/95 - * $Id: param.h,v 1.46 1999/05/09 08:58:45 phk Exp $ + * $Id: param.h,v 1.47 1999/05/11 19:54:57 phk Exp $ */ #ifndef _SYS_PARAM_H_ @@ -46,7 +46,7 @@ #define BSD4_3 1 #define BSD4_4 1 #undef __FreeBSD_version -#define __FreeBSD_version 400005 /* Master, propagated to newvers */ +#define __FreeBSD_version 400006 /* Master, propagated to newvers */ #ifndef NULL #define NULL 0 diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index db60d49d56f..d8d5e7fca8b 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ffs_vfsops.c 8.31 (Berkeley) 5/20/95 - * $Id: ffs_vfsops.c,v 1.97 1999/05/07 10:11:33 phk Exp $ + * $Id: ffs_vfsops.c,v 1.98 1999/05/08 06:40:22 phk Exp $ */ #include "opt_quota.h" @@ -290,8 +290,7 @@ ffs_mount( mp, path, data, ndp, p) err = ENOTBLK; goto error_2; } - if (major(devvp->v_rdev) >= nblkdev || - bdevsw(devvp->v_rdev) == NULL) { + if (bdevsw(devvp->v_rdev) == NULL) { err = ENXIO; goto error_2; } diff --git a/sys/vm/vm_swap.c b/sys/vm/vm_swap.c index 662f3bf1c1b..d8d7540080c 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.68 1999/05/12 11:05:23 phk Exp $ + * $Id: vm_swap.c,v 1.69 1999/05/30 16:53:49 phk Exp $ */ #include "opt_devfs.h" @@ -223,7 +223,7 @@ swapon(p, uap) switch (vp->v_type) { case VBLK: dev = vp->v_rdev; - if (major(dev) >= nblkdev || bdevsw(dev) == NULL) { + if (bdevsw(dev) == NULL) { error = ENXIO; break; } @@ -368,7 +368,7 @@ static void sw_drvinit(void *unused) { if( ! sw_devsw_installed ) { - cdevsw_add_generic(BDEV_MAJOR, CDEV_MAJOR, &sw_cdevsw); + cdevsw_add(&sw_cdevsw); /* * XXX: This is pretty gross, but it will disappear with * the blockdevices RSN.