diff options
51 files changed, 240 insertions, 342 deletions
diff --git a/sys/alpha/alpha/promcons.c b/sys/alpha/alpha/promcons.c index afaaaee..a7c90d4 100644 --- a/sys/alpha/alpha/promcons.c +++ b/sys/alpha/alpha/promcons.c @@ -1,4 +1,4 @@ -/* $Id: promcons.c,v 1.4 1999/01/30 12:17:22 phk Exp $ */ +/* $Id: promcons.c,v 1.5 1999/04/27 11:13:22 phk Exp $ */ /* $NetBSD: promcons.c,v 1.13 1998/03/21 22:52:59 mycroft Exp $ */ /* @@ -266,6 +266,6 @@ promdevtotty(dev) return &prom_tty[0]; } -CDEV_MODULE(prom, CDEV_MAJOR, prom_cdevsw, 0, 0); +DEV_MODULE(prom, CDEV_MAJOR, NODEV, prom_cdevsw, 0, 0); #endif /* _PMAP_MAY_USE_PROM_CONSOLE */ diff --git a/sys/alpha/tlsb/zs_tlsb.c b/sys/alpha/tlsb/zs_tlsb.c index 9e92edb..997658c 100644 --- a/sys/alpha/tlsb/zs_tlsb.c +++ b/sys/alpha/tlsb/zs_tlsb.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: zs_tlsb.c,v 1.7 1999/01/30 12:17:29 phk Exp $ + * $Id: zs_tlsb.c,v 1.8 1999/04/27 11:13:45 phk Exp $ */ /* * This driver is a hopeless hack to get the SimOS console working. A real @@ -375,8 +375,8 @@ zsdevtotty(dev_t dev) return (&sc->tty); } -CDEV_DRIVER_MODULE(zs, zsc, zs_driver, zs_devclass, - CDEV_MAJOR, zs_cdevsw, 0, 0); +DEV_DRIVER_MODULE(zs, zsc, zs_driver, zs_devclass, + CDEV_MAJOR, NODEV, zs_cdevsw, 0, 0); /* * The zsc bus holds two zs devices, one for channel A, one for channel B. diff --git a/sys/amd64/amd64/autoconf.c b/sys/amd64/amd64/autoconf.c index ab577b5..7ecf9e8 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.114 1999/04/18 15:50:34 peter Exp $ + * $Id: autoconf.c,v 1.115 1999/05/06 22:16:19 peter Exp $ */ /* @@ -153,7 +153,7 @@ find_cdrom_root() if (try_cdrom[j].major >= nblkdev) continue; rootdev = makedev(try_cdrom[j].major, i * 8); - bd = bdevsw[major(rootdev)]; + bd = bdevsw(major(rootdev)); if (bd == NULL || bd->d_open == NULL) continue; if (bootverbose) @@ -391,11 +391,11 @@ setdumpdev(dev) return (0); } maj = major(dev); - if (maj >= nblkdev || bdevsw[maj] == NULL) + if (maj >= nblkdev || bdevsw(maj) == NULL) return (ENXIO); /* XXX is this right? */ - if (bdevsw[maj]->d_psize == NULL) + if (bdevsw(maj)->d_psize == NULL) return (ENXIO); /* XXX should be ENODEV ? */ - psize = bdevsw[maj]->d_psize(dev); + psize = bdevsw(maj)->d_psize(dev); if (psize == -1) return (ENXIO); /* XXX should be ENODEV ? */ /* @@ -434,7 +434,7 @@ setroot() if (boothowto & RB_DFLTROOT || (bootdev & B_MAGICMASK) != B_DEVMAGIC) return; majdev = B_TYPE(bootdev); - if (majdev >= nblkdev || bdevsw[majdev] == NULL) + if (majdev >= nblkdev || bdevsw(majdev) == NULL) return; unit = B_UNIT(bootdev); slice = B_SLICE(bootdev); @@ -458,7 +458,7 @@ setroot() newrootdev = makedev(majdev, mindev); rootdevs[0] = newrootdev; - sname = dsname(bdevsw[majdev]->d_name, unit, slice, part, partname); + sname = dsname(bdevsw(majdev)->d_name, unit, slice, part, partname); rootdevnames[0] = malloc(strlen(sname) + 2, M_DEVBUF, M_NOWAIT); sprintf(rootdevnames[0], "%s%s", sname, partname); @@ -475,7 +475,7 @@ setroot() return; slice = COMPATIBILITY_SLICE; rootdevs[1] = dkmodslice(newrootdev, slice); - sname = dsname(bdevsw[majdev]->d_name, unit, slice, part, partname); + sname = dsname(bdevsw(majdev)->d_name, unit, slice, part, partname); rootdevnames[1] = malloc(strlen(sname) + 2, M_DEVBUF, M_NOWAIT); sprintf(rootdevnames[1], "%s%s", sname, partname); } diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c index 39aaa78..70361ff 100644 --- a/sys/dev/atkbdc/psm.c +++ b/sys/dev/atkbdc/psm.c @@ -20,7 +20,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: psm.c,v 1.4 1999/04/16 21:22:34 peter Exp $ + * $Id: psm.c,v 1.5 1999/04/18 15:12:11 peter Exp $ */ /* @@ -2272,7 +2272,7 @@ psmresume(void *dummy) } #endif /* PSM_HOOKAPM */ -CDEV_DRIVER_MODULE(psm, atkbdc, psm_driver, psm_devclass, - CDEV_MAJOR, psm_cdevsw, 0, 0); +DEV_DRIVER_MODULE(psm, atkbdc, psm_driver, psm_devclass, + CDEV_MAJOR, NODEV, psm_cdevsw, 0, 0); #endif /* NPSM > 0 */ diff --git a/sys/dev/ccd/ccd.c b/sys/dev/ccd/ccd.c index f2e9525..c904d6c 100644 --- a/sys/dev/ccd/ccd.c +++ b/sys/dev/ccd/ccd.c @@ -1,4 +1,4 @@ -/* $Id: ccd.c,v 1.44 1999/05/06 19:19:30 phk Exp $ */ +/* $Id: ccd.c,v 1.45 1999/05/07 07:03:17 phk Exp $ */ /* $NetBSD: ccd.c,v 1.22 1995/12/08 19:13:26 thorpej Exp $ */ @@ -278,7 +278,7 @@ ccd_modevent(mod, type, data) return (error); } -BDEV_MODULE(ccd, BDEV_MAJOR, CDEV_MAJOR, ccd_cdevsw, ccd_modevent, NULL); +DEV_MODULE(ccd, CDEV_MAJOR, BDEV_MAJOR, ccd_cdevsw, ccd_modevent, NULL); static int ccdinit(ccd, cpaths, p) diff --git a/sys/dev/fdc/fdc.c b/sys/dev/fdc/fdc.c index b0f13ee..c4c86ee 100644 --- a/sys/dev/fdc/fdc.c +++ b/sys/dev/fdc/fdc.c @@ -47,7 +47,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.138 1999/05/06 20:00:23 phk Exp $ + * $Id: fd.c,v 1.139 1999/05/07 07:03:24 phk Exp $ * */ @@ -2364,7 +2364,7 @@ static driver_t fd_driver = { sizeof(struct fd_data) }; -BDEV_DRIVER_MODULE(fd, fdc, fd_driver, fd_devclass, BDEV_MAJOR, CDEV_MAJOR, +DEV_DRIVER_MODULE(fd, fdc, fd_driver, fd_devclass, CDEV_MAJOR, BDEV_MAJOR, fd_cdevsw, 0, 0); #endif /* NFDC > 0 */ diff --git a/sys/dev/iicbus/iic.c b/sys/dev/iicbus/iic.c index 6bcadf9..7925aa2 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.6 1999/01/09 18:08:24 nsouch Exp $ + * $Id: iic.c,v 1.7 1999/02/13 18:01:55 nsouch Exp $ * */ #include <sys/param.h> @@ -277,7 +277,7 @@ iic_drvinit(void *unused) } } -CDEV_DRIVER_MODULE(iic, iicbus, iic_driver, iic_devclass, CDEV_MAJOR, - iic_cdevsw, 0, 0); +DEV_DRIVER_MODULE(iic, iicbus, iic_driver, iic_devclass, CDEV_MAJOR, + NODEV, iic_cdevsw, 0, 0); SYSINIT(iicdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,iic_drvinit,NULL) diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c index 5e27f69..5211350 100644 --- a/sys/dev/sio/sio.c +++ b/sys/dev/sio/sio.c @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: sio.c,v 1.229 1999/05/06 18:44:35 peter Exp $ + * $Id: sio.c,v 1.230 1999/05/07 06:50:27 mckusick Exp $ * from: @(#)com.c 7.5 (Berkeley) 5/16/91 * from: i386/isa sio.c,v 1.234 */ @@ -3171,5 +3171,5 @@ siopnp_attach(u_long csn, u_long vend_id, char *name, struct isa_device *dev) } #endif -CDEV_DRIVER_MODULE(sio, isa, sio_driver, sio_devclass, - CDEV_MAJOR, sio_cdevsw, 0, 0); +DEV_DRIVER_MODULE(sio, isa, sio_driver, sio_devclass, + CDEV_MAJOR, NODEV, sio_cdevsw, 0, 0); diff --git a/sys/dev/smbus/smb.c b/sys/dev/smbus/smb.c index cfb6f0e..8944e5d 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.7 1999/02/13 17:57:19 nsouch Exp $ + * $Id: smb.c,v 1.8 1999/02/14 14:36:45 nsouch Exp $ * */ #include <sys/param.h> @@ -270,7 +270,7 @@ smb_drvinit(void *unused) } } -CDEV_DRIVER_MODULE(smb, smbus, smb_driver, smb_devclass, CDEV_MAJOR, +DEV_DRIVER_MODULE(smb, smbus, smb_driver, smb_devclass, CDEV_MAJOR, NODEV, smb_cdevsw, 0, 0); SYSINIT(smbdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,smb_drvinit,NULL) diff --git a/sys/dev/usb/ugen.c b/sys/dev/usb/ugen.c index cc14a7d..bebd853 100644 --- a/sys/dev/usb/ugen.c +++ b/sys/dev/usb/ugen.c @@ -997,6 +997,6 @@ ugen_detach(device_t self) return 0; } -CDEV_DRIVER_MODULE(ugen, uhub, ugen_driver, ugen_devclass, - UGEN_CDEV_MAJOR, ugen_cdevsw, usbd_driver_load, 0); +DEV_DRIVER_MODULE(ugen, uhub, ugen_driver, ugen_devclass, + UGEN_CDEV_MAJOR, NODEV, ugen_cdevsw, usbd_driver_load, 0); #endif diff --git a/sys/dev/usb/ulpt.c b/sys/dev/usb/ulpt.c index 9aaf024..677ef4b 100644 --- a/sys/dev/usb/ulpt.c +++ b/sys/dev/usb/ulpt.c @@ -442,6 +442,6 @@ ulpt_detach(device_t self) return 0; } -CDEV_DRIVER_MODULE(ulpt, uhub, ulpt_driver, ulpt_devclass, - ULPT_CDEV_MAJOR, ulpt_cdevsw, usbd_driver_load, 0); +DEV_DRIVER_MODULE(ulpt, uhub, ulpt_driver, ulpt_devclass, + ULPT_CDEV_MAJOR, NODEV, ulpt_cdevsw, usbd_driver_load, 0); #endif diff --git a/sys/dev/usb/ums.c b/sys/dev/usb/ums.c index fefd342..37888b3 100644 --- a/sys/dev/usb/ums.c +++ b/sys/dev/usb/ums.c @@ -795,6 +795,6 @@ ums_ioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p) #endif #if defined(__FreeBSD__) -CDEV_DRIVER_MODULE(ums, uhub, ums_driver, ums_devclass, - UMS_CDEV_MAJOR, ums_cdevsw, usbd_driver_load, 0); +DEV_DRIVER_MODULE(ums, uhub, ums_driver, ums_devclass, + UMS_CDEV_MAJOR, NODEV, ums_cdevsw, usbd_driver_load, 0); #endif diff --git a/sys/dev/vinum/vinum.c b/sys/dev/vinum/vinum.c index 8d30d5a..810c67d 100644 --- a/sys/dev/vinum/vinum.c +++ b/sys/dev/vinum/vinum.c @@ -33,7 +33,7 @@ * otherwise) arising in any way out of the use of this software, even if * advised of the possibility of such damage. * - * $Id: vinum.c,v 1.24 1999/03/19 05:35:25 grog Exp grog $ + * $Id: vinum.c,v 1.21 1999/05/07 08:07:08 grog Exp $ */ #define STATIC static /* nothing while we're testing XXX */ @@ -237,7 +237,6 @@ vinum_modevent(module_t mod, modeventtype_t type, void *unused) } #endif cdevsw[CDEV_MAJOR] = NULL; /* no cdevsw any more */ - bdevsw[BDEV_MAJOR] = NULL; /* nor bdevsw */ log(LOG_INFO, "vinum: unloaded\n"); /* tell the world */ return 0; default: diff --git a/sys/dev/vinum/vinumext.h b/sys/dev/vinum/vinumext.h index fc3f1eb..071afdf 100644 --- a/sys/dev/vinum/vinumext.h +++ b/sys/dev/vinum/vinumext.h @@ -33,7 +33,7 @@ * otherwise) arising in any way out of the use of this software, even if * advised of the possibility of such damage. * - * $Id: vinumext.h,v 1.19 1999/03/23 02:57:04 grog Exp grog $ + * $Id: vinumext.h,v 1.15 1999/05/07 08:07:09 grog Exp $ */ /* vinumext.h: external definitions */ @@ -132,8 +132,6 @@ d_strategy_t vinumstrategy; d_ioctl_t vinumioctl; d_dump_t vinumdump; d_psize_t vinumsize; -d_read_t physread; -d_write_t physwrite; int vinumstart(struct buf *bp, int reviveok); int launch_requests(struct request *rq, int reviveok); diff --git a/sys/dev/vinum/vinumio.c b/sys/dev/vinum/vinumio.c index 991a8be..2651205 100644 --- a/sys/dev/vinum/vinumio.c +++ b/sys/dev/vinum/vinumio.c @@ -33,7 +33,7 @@ * otherwise) arising in any way out of the use of this software, even if * advised of the possibility of such damage. * - * $Id: vinumio.c,v 1.24 1999/03/23 02:00:52 grog Exp grog $ + * $Id: vinumio.c,v 1.23 1999/05/07 01:32:09 grog Exp $ */ #include <dev/vinum/vinumhdr.h> @@ -285,7 +285,7 @@ driveio(struct drive *drive, char *buf, size_t length, off_t offset, int flag) bp->b_bcount = len; bp->b_bufsize = len; - (*bdevsw[major(bp->b_dev)]->d_strategy) (bp); /* initiate the transfer */ + (*bdevsw(major(bp->b_dev))->d_strategy) (bp); /* initiate the transfer */ error = biowait(bp); printf("driveio: %s dev 0x%x, block 0x%x, len 0x%lx, error %d\n", /* XXX */ diff --git a/sys/dev/vinum/vinumrequest.c b/sys/dev/vinum/vinumrequest.c index f286dc7..477ec40 100644 --- a/sys/dev/vinum/vinumrequest.c +++ b/sys/dev/vinum/vinumrequest.c @@ -33,7 +33,7 @@ * otherwise) arising in any way out of the use of this software, even if * advised of the possibility of such damage. * - * $Id: vinumrequest.c,v 1.23 1999/03/20 21:58:38 grog Exp grog $ + * $Id: vinumrequest.c,v 1.21 1999/05/07 08:07:09 grog Exp $ */ #include <dev/vinum/vinumhdr.h> @@ -390,7 +390,7 @@ launch_requests(struct request *rq, int reviveok) logrq(loginfo_rqe, (union rqinfou) rqe, rq->bp); #endif /* fire off the request */ - (*bdevsw[major(rqe->b.b_dev)]->d_strategy) (&rqe->b); + (*bdevsw(major(rqe->b.b_dev))->d_strategy) (&rqe->b); } /* XXX Do we need caching? Think about this more */ } @@ -865,7 +865,7 @@ sdio(struct buf *bp) sbp->b.b_vp->v_numoutput); #endif s = splbio(); - (*bdevsw[major(sbp->b.b_dev)]->d_strategy) (&sbp->b); + (*bdevsw(major(sbp->b.b_dev))->d_strategy) (&sbp->b); splx(s); } diff --git a/sys/dev/vn/vn.c b/sys/dev/vn/vn.c index 2037ee1..a26100c 100644 --- a/sys/dev/vn/vn.c +++ b/sys/dev/vn/vn.c @@ -38,7 +38,7 @@ * from: Utah Hdr: vn.c 1.13 94/04/02 * * from: @(#)vn.c 8.6 (Berkeley) 4/1/94 - * $Id: vn.c,v 1.76 1999/04/27 11:14:13 phk Exp $ + * $Id: vn.c,v 1.77 1999/05/07 07:03:20 phk Exp $ */ /* @@ -772,6 +772,6 @@ vn_modevent(module_t mod, int type, void *data) return 0; } -BDEV_MODULE(vn, BDEV_MAJOR, CDEV_MAJOR, vn_cdevsw, vn_modevent, 0); +DEV_MODULE(vn, CDEV_MAJOR, BDEV_MAJOR, vn_cdevsw, vn_modevent, 0); #endif diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c index 5507a1a..d10f49c 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.52 1999/04/18 10:58:02 dcs Exp $ + * $Id: cd9660_vfsops.c,v 1.53 1999/04/27 11:15:47 phk Exp $ */ #include <sys/param.h> @@ -118,7 +118,7 @@ iso_get_ssector(dev, p) struct cdevsw *bd; d_ioctl_t *ioctlp; - bd = bdevsw[major(dev)]; + bd = bdevsw(major(dev)); ioctlp = bd->d_ioctl; if (ioctlp == NULL) return 0; @@ -189,7 +189,7 @@ cd9660_mount(mp, path, data, ndp, p) struct iso_mnt *imp = 0; if ((mp->mnt_flag & MNT_ROOTFS) != 0) { - if (bdevsw[major(rootdev)]->d_flags & D_NOCLUSTERR) + if (bdevsw(major(rootdev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; return (iso_mountroot(mp, p)); } @@ -206,7 +206,7 @@ cd9660_mount(mp, path, data, ndp, p) */ if (mp->mnt_flag & MNT_UPDATE) { imp = VFSTOISOFS(mp); - if (bdevsw[major(imp->im_devvp->v_rdev)]->d_flags & + if (bdevsw(major(imp->im_devvp->v_rdev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; if (args.fspec == 0) @@ -226,7 +226,7 @@ cd9660_mount(mp, path, data, ndp, p) return ENOTBLK; } if (major(devvp->v_rdev) >= nblkdev || - bdevsw[major(devvp->v_rdev)] == NULL) { + bdevsw(major(devvp->v_rdev)) == NULL) { vrele(devvp); return ENXIO; } @@ -247,7 +247,7 @@ cd9660_mount(mp, path, data, ndp, p) VOP_UNLOCK(devvp, 0, p); if ((mp->mnt_flag & MNT_UPDATE) == 0) { - if (bdevsw[major(devvp->v_rdev)]->d_flags & D_NOCLUSTERR) + if (bdevsw(major(devvp->v_rdev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; error = iso_mountfs(devvp, mp, p, &args); } else { diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c index 4fcbe0b..c062519 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.41 1999/03/28 23:00:33 dt Exp $ */ +/* $Id: msdosfs_vfsops.c,v 1.42 1999/05/06 18:12:50 peter Exp $ */ /* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */ /*- @@ -299,7 +299,7 @@ msdosfs_mount(mp, path, data, ndp, p) return (ENOTBLK); } if (major(devvp->v_rdev) >= nblkdev || - bdevsw[major(devvp->v_rdev)] == NULL) { + bdevsw(major(devvp->v_rdev)) == NULL) { vrele(devvp); return (ENXIO); } diff --git a/sys/fs/specfs/spec_vnops.c b/sys/fs/specfs/spec_vnops.c index a3ee89f..63f2b36 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.82 1999/04/05 19:38:30 julian Exp $ + * $Id: spec_vnops.c,v 1.83 1999/05/06 20:00:27 phk Exp $ */ #include <sys/param.h> @@ -214,7 +214,7 @@ spec_open(ap) case VBLK: if ((u_int)maj >= nblkdev) return (ENXIO); - if ( (bdevsw[maj] == NULL) || (bdevsw[maj]->d_open == NULL)) + if ( (bdevsw(maj) == NULL) || (bdevsw(maj)->d_open == NULL)) return ENXIO; /* * When running in very secure mode, do not allow @@ -222,7 +222,7 @@ spec_open(ap) */ if (securelevel >= 2 && ap->a_cred != FSCRED && (ap->a_mode & FWRITE) && - (bdevsw[maj]->d_flags & D_TYPEMASK) == D_DISK) + (bdevsw(maj)->d_flags & D_TYPEMASK) == D_DISK) return (EPERM); /* @@ -232,7 +232,7 @@ spec_open(ap) error = vfs_mountedon(vp); if (error) return (error); - return ((*bdevsw[maj]->d_open)(dev, ap->a_mode, S_IFBLK, p)); + return ((*bdevsw(maj)->d_open)(dev, ap->a_mode, S_IFBLK, p)); /* NOT REACHED */ default: break; @@ -295,7 +295,7 @@ spec_read(ap) bsize = vp->v_specinfo->si_bsize_best; - if ((ioctl = bdevsw[major(dev)]->d_ioctl) != NULL && + if ((ioctl = bdevsw(major(dev))->d_ioctl) != NULL && (*ioctl)(dev, DIOCGPART, (caddr_t)&dpart, FREAD, p) == 0 && dpart.part->p_fstype == FS_BSDFFS && dpart.part->p_frag != 0 && dpart.part->p_fsize != 0) @@ -379,7 +379,7 @@ spec_write(ap) */ bsize = vp->v_specinfo->si_bsize_best; - if ((*bdevsw[major(vp->v_rdev)]->d_ioctl)(vp->v_rdev, DIOCGPART, + if ((*bdevsw(major(vp->v_rdev))->d_ioctl)(vp->v_rdev, DIOCGPART, (caddr_t)&dpart, FREAD, p) == 0) { if (dpart.part->p_fstype == FS_BSDFFS && dpart.part->p_frag != 0 && dpart.part->p_fsize != 0) @@ -437,7 +437,7 @@ spec_ioctl(ap) return ((*cdevsw[major(dev)]->d_ioctl)(dev, ap->a_command, ap->a_data, ap->a_fflag, ap->a_p)); case VBLK: - return ((*bdevsw[major(dev)]->d_ioctl)(dev, ap->a_command, + return ((*bdevsw(major(dev))->d_ioctl)(dev, ap->a_command, ap->a_data, ap->a_fflag, ap->a_p)); default: panic("spec_ioctl"); @@ -553,7 +553,7 @@ spec_strategy(ap) if (((bp->b_flags & B_READ) == 0) && (LIST_FIRST(&bp->b_dep)) != NULL && bioops.io_start) (*bioops.io_start)(bp); - (*bdevsw[major(bp->b_dev)]->d_strategy)(bp); + (*bdevsw(major(bp->b_dev))->d_strategy)(bp); return (0); } @@ -568,7 +568,7 @@ spec_freeblks(ap) struct cdevsw *bsw; struct buf *bp; - bsw = bdevsw[major(ap->a_vp->v_rdev)]; + bsw = bdevsw(major(ap->a_vp->v_rdev)); if ((bsw->d_flags & D_CANFREE) == 0) return (0); bp = geteblk(ap->a_length); @@ -678,7 +678,7 @@ spec_close(ap) if ((vcount(vp) > 1) && (vp->v_flag & VXLOCK) == 0) return (0); - devclose = bdevsw[major(dev)]->d_close; + devclose = bdevsw(major(dev))->d_close; mode = S_IFBLK; break; @@ -956,7 +956,7 @@ spec_getattr(ap) vap->va_blocksize = MAXBSIZE; } - if ((*bdevsw[major(vp->v_rdev)]->d_ioctl)(vp->v_rdev, DIOCGPART, + if ((*bdevsw(major(vp->v_rdev))->d_ioctl)(vp->v_rdev, DIOCGPART, (caddr_t)&dpart, FREAD, ap->a_p) == 0) { vap->va_bytes = dbtob(dpart.disklab->d_partitions [minor(vp->v_rdev)].p_size); diff --git a/sys/geom/geom_ccd.c b/sys/geom/geom_ccd.c index f2e9525..c904d6c 100644 --- a/sys/geom/geom_ccd.c +++ b/sys/geom/geom_ccd.c @@ -1,4 +1,4 @@ -/* $Id: ccd.c,v 1.44 1999/05/06 19:19:30 phk Exp $ */ +/* $Id: ccd.c,v 1.45 1999/05/07 07:03:17 phk Exp $ */ /* $NetBSD: ccd.c,v 1.22 1995/12/08 19:13:26 thorpej Exp $ */ @@ -278,7 +278,7 @@ ccd_modevent(mod, type, data) return (error); } -BDEV_MODULE(ccd, BDEV_MAJOR, CDEV_MAJOR, ccd_cdevsw, ccd_modevent, NULL); +DEV_MODULE(ccd, CDEV_MAJOR, BDEV_MAJOR, ccd_cdevsw, ccd_modevent, NULL); static int ccdinit(ccd, cpaths, p) diff --git a/sys/gnu/ext2fs/ext2_bmap.c b/sys/gnu/ext2fs/ext2_bmap.c index 3ea5965..88f4c24 100644 --- a/sys/gnu/ext2fs/ext2_bmap.c +++ b/sys/gnu/ext2fs/ext2_bmap.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)ufs_bmap.c 8.7 (Berkeley) 3/21/95 - * $Id: ufs_bmap.c,v 1.25 1999/01/28 00:57:55 dillon Exp $ + * $Id: ufs_bmap.c,v 1.26 1999/05/02 23:57:04 alc Exp $ */ #include <sys/param.h> @@ -151,12 +151,12 @@ ufs_bmaparray(vp, bn, bnp, ap, nump, runp, runb) if (devvp != NULL && devvp->v_tag != VT_MFS && devvp->v_type == VBLK) { - if (bdevsw[major(devvp->v_rdev)]->d_maxio > MAXPHYS) { + if (bdevsw(major(devvp->v_rdev))->d_maxio > MAXPHYS) { maxrun = MAXPHYS; vp->v_maxio = MAXPHYS; } else { - maxrun = bdevsw[major(devvp->v_rdev)]->d_maxio; - vp->v_maxio = bdevsw[major(devvp->v_rdev)]->d_maxio; + maxrun = bdevsw(major(devvp->v_rdev))->d_maxio; + vp->v_maxio = bdevsw(major(devvp->v_rdev))->d_maxio; } maxrun = maxrun / blksize; maxrun -= 1; diff --git a/sys/gnu/ext2fs/ext2_vfsops.c b/sys/gnu/ext2fs/ext2_vfsops.c index 7a1ae24..4410199 100644 --- a/sys/gnu/ext2fs/ext2_vfsops.c +++ b/sys/gnu/ext2fs/ext2_vfsops.c @@ -136,9 +136,9 @@ ext2_mountroot() bzero((char *)mp, (u_long)sizeof(struct mount)); mp->mnt_op = &ext2fs_vfsops; mp->mnt_flag = MNT_RDONLY; - if (bdevsw[major(rootdev)]->d_flags & D_NOCLUSTERR) + if (bdevsw(major(rootdev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; - if (bdevsw[major(rootdev)]->d_flags & D_NOCLUSTERW) + if (bdevsw(major(rootdev))->d_flags & D_NOCLUSTERW) mp->mnt_flag |= MNT_NOCLUSTERW; if (error = ext2_mountfs(rootvp, mp, p)) { bsd_free(mp, M_MOUNT); @@ -201,9 +201,9 @@ ext2_mount(mp, path, data, ndp, p) ump = VFSTOUFS(mp); fs = ump->um_e2fs; error = 0; - if (bdevsw[major(ump->um_dev)]->d_flags & D_NOCLUSTERR) + if (bdevsw(major(ump->um_dev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; - if (bdevsw[major(ump->um_dev)]->d_flags & D_NOCLUSTERW) + if (bdevsw(major(ump->um_dev))->d_flags & D_NOCLUSTERW) mp->mnt_flag |= MNT_NOCLUSTERW; if (fs->s_rd_only == 0 && (mp->mnt_flag & MNT_RDONLY)) { flags = WRITECLOSE; @@ -277,7 +277,7 @@ ext2_mount(mp, path, data, ndp, p) return (ENOTBLK); } if (major(devvp->v_rdev) >= nblkdev || - bdevsw[major(devvp->v_rdev)] == NULL) { + bdevsw(major(devvp->v_rdev)) == NULL) { vrele(devvp); return (ENXIO); } @@ -299,9 +299,9 @@ ext2_mount(mp, path, data, ndp, p) } if ((mp->mnt_flag & MNT_UPDATE) == 0) { - if (bdevsw[major(devvp->v_rdev)]->d_flags & D_NOCLUSTERR) + if (bdevsw(major(devvp->v_rdev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; - if (bdevsw[major(devvp->v_rdev)]->d_flags & D_NOCLUSTERW) + if (bdevsw(major(devvp->v_rdev))->d_flags & D_NOCLUSTERW) mp->mnt_flag |= MNT_NOCLUSTERW; error = ext2_mountfs(devvp, mp, p); } else { diff --git a/sys/gnu/fs/ext2fs/ext2_bmap.c b/sys/gnu/fs/ext2fs/ext2_bmap.c index 3ea5965..88f4c24 100644 --- a/sys/gnu/fs/ext2fs/ext2_bmap.c +++ b/sys/gnu/fs/ext2fs/ext2_bmap.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)ufs_bmap.c 8.7 (Berkeley) 3/21/95 - * $Id: ufs_bmap.c,v 1.25 1999/01/28 00:57:55 dillon Exp $ + * $Id: ufs_bmap.c,v 1.26 1999/05/02 23:57:04 alc Exp $ */ #include <sys/param.h> @@ -151,12 +151,12 @@ ufs_bmaparray(vp, bn, bnp, ap, nump, runp, runb) if (devvp != NULL && devvp->v_tag != VT_MFS && devvp->v_type == VBLK) { - if (bdevsw[major(devvp->v_rdev)]->d_maxio > MAXPHYS) { + if (bdevsw(major(devvp->v_rdev))->d_maxio > MAXPHYS) { maxrun = MAXPHYS; vp->v_maxio = MAXPHYS; } else { - maxrun = bdevsw[major(devvp->v_rdev)]->d_maxio; - vp->v_maxio = bdevsw[major(devvp->v_rdev)]->d_maxio; + maxrun = bdevsw(major(devvp->v_rdev))->d_maxio; + vp->v_maxio = bdevsw(major(devvp->v_rdev))->d_maxio; } maxrun = maxrun / blksize; maxrun -= 1; diff --git a/sys/gnu/fs/ext2fs/ext2_vfsops.c b/sys/gnu/fs/ext2fs/ext2_vfsops.c index 7a1ae24..4410199 100644 --- a/sys/gnu/fs/ext2fs/ext2_vfsops.c +++ b/sys/gnu/fs/ext2fs/ext2_vfsops.c @@ -136,9 +136,9 @@ ext2_mountroot() bzero((char *)mp, (u_long)sizeof(struct mount)); mp->mnt_op = &ext2fs_vfsops; mp->mnt_flag = MNT_RDONLY; - if (bdevsw[major(rootdev)]->d_flags & D_NOCLUSTERR) + if (bdevsw(major(rootdev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; - if (bdevsw[major(rootdev)]->d_flags & D_NOCLUSTERW) + if (bdevsw(major(rootdev))->d_flags & D_NOCLUSTERW) mp->mnt_flag |= MNT_NOCLUSTERW; if (error = ext2_mountfs(rootvp, mp, p)) { bsd_free(mp, M_MOUNT); @@ -201,9 +201,9 @@ ext2_mount(mp, path, data, ndp, p) ump = VFSTOUFS(mp); fs = ump->um_e2fs; error = 0; - if (bdevsw[major(ump->um_dev)]->d_flags & D_NOCLUSTERR) + if (bdevsw(major(ump->um_dev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; - if (bdevsw[major(ump->um_dev)]->d_flags & D_NOCLUSTERW) + if (bdevsw(major(ump->um_dev))->d_flags & D_NOCLUSTERW) mp->mnt_flag |= MNT_NOCLUSTERW; if (fs->s_rd_only == 0 && (mp->mnt_flag & MNT_RDONLY)) { flags = WRITECLOSE; @@ -277,7 +277,7 @@ ext2_mount(mp, path, data, ndp, p) return (ENOTBLK); } if (major(devvp->v_rdev) >= nblkdev || - bdevsw[major(devvp->v_rdev)] == NULL) { + bdevsw(major(devvp->v_rdev)) == NULL) { vrele(devvp); return (ENXIO); } @@ -299,9 +299,9 @@ ext2_mount(mp, path, data, ndp, p) } if ((mp->mnt_flag & MNT_UPDATE) == 0) { - if (bdevsw[major(devvp->v_rdev)]->d_flags & D_NOCLUSTERR) + if (bdevsw(major(devvp->v_rdev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; - if (bdevsw[major(devvp->v_rdev)]->d_flags & D_NOCLUSTERW) + if (bdevsw(major(devvp->v_rdev))->d_flags & D_NOCLUSTERW) mp->mnt_flag |= MNT_NOCLUSTERW; error = ext2_mountfs(devvp, mp, p); } else { diff --git a/sys/i386/apm/apm.c b/sys/i386/apm/apm.c index 25bef84..bb9dfbc 100644 --- a/sys/i386/apm/apm.c +++ b/sys/i386/apm/apm.c @@ -15,7 +15,7 @@ * * Sep, 1994 Implemented on FreeBSD 1.1.5.1R (Toshiba AVS001WD) * - * $Id: apm.c,v 1.80 1999/04/21 07:57:55 imp Exp $ + * $Id: apm.c,v 1.81 1999/05/06 01:07:03 luoqi Exp $ */ #include "opt_devfs.h" @@ -1065,5 +1065,5 @@ static driver_t apm_driver = { static devclass_t apm_devclass; -CDEV_DRIVER_MODULE(apm, nexus, apm_driver, apm_devclass, - CDEV_MAJOR, apm_cdevsw, 0, 0); +DEV_DRIVER_MODULE(apm, nexus, apm_driver, apm_devclass, + CDEV_MAJOR, NODEV, apm_cdevsw, 0, 0); diff --git a/sys/i386/bios/apm.c b/sys/i386/bios/apm.c index 25bef84..bb9dfbc 100644 --- a/sys/i386/bios/apm.c +++ b/sys/i386/bios/apm.c @@ -15,7 +15,7 @@ * * Sep, 1994 Implemented on FreeBSD 1.1.5.1R (Toshiba AVS001WD) * - * $Id: apm.c,v 1.80 1999/04/21 07:57:55 imp Exp $ + * $Id: apm.c,v 1.81 1999/05/06 01:07:03 luoqi Exp $ */ #include "opt_devfs.h" @@ -1065,5 +1065,5 @@ static driver_t apm_driver = { static devclass_t apm_devclass; -CDEV_DRIVER_MODULE(apm, nexus, apm_driver, apm_devclass, - CDEV_MAJOR, apm_cdevsw, 0, 0); +DEV_DRIVER_MODULE(apm, nexus, apm_driver, apm_devclass, + CDEV_MAJOR, NODEV, apm_cdevsw, 0, 0); diff --git a/sys/i386/i386/autoconf.c b/sys/i386/i386/autoconf.c index ab577b5..7ecf9e8 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.114 1999/04/18 15:50:34 peter Exp $ + * $Id: autoconf.c,v 1.115 1999/05/06 22:16:19 peter Exp $ */ /* @@ -153,7 +153,7 @@ find_cdrom_root() if (try_cdrom[j].major >= nblkdev) continue; rootdev = makedev(try_cdrom[j].major, i * 8); - bd = bdevsw[major(rootdev)]; + bd = bdevsw(major(rootdev)); if (bd == NULL || bd->d_open == NULL) continue; if (bootverbose) @@ -391,11 +391,11 @@ setdumpdev(dev) return (0); } maj = major(dev); - if (maj >= nblkdev || bdevsw[maj] == NULL) + if (maj >= nblkdev || bdevsw(maj) == NULL) return (ENXIO); /* XXX is this right? */ - if (bdevsw[maj]->d_psize == NULL) + if (bdevsw(maj)->d_psize == NULL) return (ENXIO); /* XXX should be ENODEV ? */ - psize = bdevsw[maj]->d_psize(dev); + psize = bdevsw(maj)->d_psize(dev); if (psize == -1) return (ENXIO); /* XXX should be ENODEV ? */ /* @@ -434,7 +434,7 @@ setroot() if (boothowto & RB_DFLTROOT || (bootdev & B_MAGICMASK) != B_DEVMAGIC) return; majdev = B_TYPE(bootdev); - if (majdev >= nblkdev || bdevsw[majdev] == NULL) + if (majdev >= nblkdev || bdevsw(majdev) == NULL) return; unit = B_UNIT(bootdev); slice = B_SLICE(bootdev); @@ -458,7 +458,7 @@ setroot() newrootdev = makedev(majdev, mindev); rootdevs[0] = newrootdev; - sname = dsname(bdevsw[majdev]->d_name, unit, slice, part, partname); + sname = dsname(bdevsw(majdev)->d_name, unit, slice, part, partname); rootdevnames[0] = malloc(strlen(sname) + 2, M_DEVBUF, M_NOWAIT); sprintf(rootdevnames[0], "%s%s", sname, partname); @@ -475,7 +475,7 @@ setroot() return; slice = COMPATIBILITY_SLICE; rootdevs[1] = dkmodslice(newrootdev, slice); - sname = dsname(bdevsw[majdev]->d_name, unit, slice, part, partname); + sname = dsname(bdevsw(majdev)->d_name, unit, slice, part, partname); rootdevnames[1] = malloc(strlen(sname) + 2, M_DEVBUF, M_NOWAIT); sprintf(rootdevnames[1], "%s%s", sname, partname); } diff --git a/sys/i386/i386/swapgeneric.c b/sys/i386/i386/swapgeneric.c index e052eb3..5a928cb 100644 --- a/sys/i386/i386/swapgeneric.c +++ b/sys/i386/i386/swapgeneric.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)swapgeneric.c 5.5 (Berkeley) 5/9/91 - * $Id: swapgeneric.c,v 1.27 1999/04/15 14:52:24 bde Exp $ + * $Id: swapgeneric.c,v 1.28 1999/04/15 15:35:32 bde Exp $ */ #include <sys/param.h> @@ -73,8 +73,8 @@ retry: unit = *cp - '0'; *cp++ = '\0'; for (bd = 0; bd < nblkdev; bd++) - if (bdevsw[bd] != NULL && - strcmp(bdevsw[bd]->d_name, name) == 0) + if (bdevsw(bd) != NULL && + strcmp(bdevsw(bd)->d_name, name) == 0) goto gotit; goto bad; gotit: diff --git a/sys/i386/isa/fd.c b/sys/i386/isa/fd.c index b0f13ee..c4c86ee 100644 --- a/sys/i386/isa/fd.c +++ b/sys/i386/isa/fd.c @@ -47,7 +47,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.138 1999/05/06 20:00:23 phk Exp $ + * $Id: fd.c,v 1.139 1999/05/07 07:03:24 phk Exp $ * */ @@ -2364,7 +2364,7 @@ static driver_t fd_driver = { sizeof(struct fd_data) }; -BDEV_DRIVER_MODULE(fd, fdc, fd_driver, fd_devclass, BDEV_MAJOR, CDEV_MAJOR, +DEV_DRIVER_MODULE(fd, fdc, fd_driver, fd_devclass, CDEV_MAJOR, BDEV_MAJOR, fd_cdevsw, 0, 0); #endif /* NFDC > 0 */ diff --git a/sys/isa/fd.c b/sys/isa/fd.c index b0f13ee..c4c86ee 100644 --- a/sys/isa/fd.c +++ b/sys/isa/fd.c @@ -47,7 +47,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.138 1999/05/06 20:00:23 phk Exp $ + * $Id: fd.c,v 1.139 1999/05/07 07:03:24 phk Exp $ * */ @@ -2364,7 +2364,7 @@ static driver_t fd_driver = { sizeof(struct fd_data) }; -BDEV_DRIVER_MODULE(fd, fdc, fd_driver, fd_devclass, BDEV_MAJOR, CDEV_MAJOR, +DEV_DRIVER_MODULE(fd, fdc, fd_driver, fd_devclass, CDEV_MAJOR, BDEV_MAJOR, fd_cdevsw, 0, 0); #endif /* NFDC > 0 */ diff --git a/sys/isa/psm.c b/sys/isa/psm.c index 39aaa78..70361ff 100644 --- a/sys/isa/psm.c +++ b/sys/isa/psm.c @@ -20,7 +20,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: psm.c,v 1.4 1999/04/16 21:22:34 peter Exp $ + * $Id: psm.c,v 1.5 1999/04/18 15:12:11 peter Exp $ */ /* @@ -2272,7 +2272,7 @@ psmresume(void *dummy) } #endif /* PSM_HOOKAPM */ -CDEV_DRIVER_MODULE(psm, atkbdc, psm_driver, psm_devclass, - CDEV_MAJOR, psm_cdevsw, 0, 0); +DEV_DRIVER_MODULE(psm, atkbdc, psm_driver, psm_devclass, + CDEV_MAJOR, NODEV, psm_cdevsw, 0, 0); #endif /* NPSM > 0 */ diff --git a/sys/isa/sio.c b/sys/isa/sio.c index 5e27f69..5211350 100644 --- a/sys/isa/sio.c +++ b/sys/isa/sio.c @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: sio.c,v 1.229 1999/05/06 18:44:35 peter Exp $ + * $Id: sio.c,v 1.230 1999/05/07 06:50:27 mckusick Exp $ * from: @(#)com.c 7.5 (Berkeley) 5/16/91 * from: i386/isa sio.c,v 1.234 */ @@ -3171,5 +3171,5 @@ siopnp_attach(u_long csn, u_long vend_id, char *name, struct isa_device *dev) } #endif -CDEV_DRIVER_MODULE(sio, isa, sio_driver, sio_devclass, - CDEV_MAJOR, sio_cdevsw, 0, 0); +DEV_DRIVER_MODULE(sio, isa, sio_driver, sio_devclass, + CDEV_MAJOR, NODEV, sio_cdevsw, 0, 0); diff --git a/sys/isofs/cd9660/cd9660_vfsops.c b/sys/isofs/cd9660/cd9660_vfsops.c index 5507a1a..d10f49c 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.52 1999/04/18 10:58:02 dcs Exp $ + * $Id: cd9660_vfsops.c,v 1.53 1999/04/27 11:15:47 phk Exp $ */ #include <sys/param.h> @@ -118,7 +118,7 @@ iso_get_ssector(dev, p) struct cdevsw *bd; d_ioctl_t *ioctlp; - bd = bdevsw[major(dev)]; + bd = bdevsw(major(dev)); ioctlp = bd->d_ioctl; if (ioctlp == NULL) return 0; @@ -189,7 +189,7 @@ cd9660_mount(mp, path, data, ndp, p) struct iso_mnt *imp = 0; if ((mp->mnt_flag & MNT_ROOTFS) != 0) { - if (bdevsw[major(rootdev)]->d_flags & D_NOCLUSTERR) + if (bdevsw(major(rootdev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; return (iso_mountroot(mp, p)); } @@ -206,7 +206,7 @@ cd9660_mount(mp, path, data, ndp, p) */ if (mp->mnt_flag & MNT_UPDATE) { imp = VFSTOISOFS(mp); - if (bdevsw[major(imp->im_devvp->v_rdev)]->d_flags & + if (bdevsw(major(imp->im_devvp->v_rdev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; if (args.fspec == 0) @@ -226,7 +226,7 @@ cd9660_mount(mp, path, data, ndp, p) return ENOTBLK; } if (major(devvp->v_rdev) >= nblkdev || - bdevsw[major(devvp->v_rdev)] == NULL) { + bdevsw(major(devvp->v_rdev)) == NULL) { vrele(devvp); return ENXIO; } @@ -247,7 +247,7 @@ cd9660_mount(mp, path, data, ndp, p) VOP_UNLOCK(devvp, 0, p); if ((mp->mnt_flag & MNT_UPDATE) == 0) { - if (bdevsw[major(devvp->v_rdev)]->d_flags & D_NOCLUSTERR) + if (bdevsw(major(devvp->v_rdev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; error = iso_mountfs(devvp, mp, p, &args); } else { diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c index 502b78d..2e303b2 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.30 1999/01/27 21:49:55 dillon Exp $ + * $Id: kern_conf.c,v 1.31 1999/03/23 21:11:47 dfr Exp $ */ #include <sys/param.h> @@ -39,16 +39,15 @@ #include <sys/conf.h> #include <sys/vnode.h> -#define NUMBDEV 128 #define NUMCDEV 256 -#define bdevsw_ALLOCSTART (NUMBDEV/2) #define cdevsw_ALLOCSTART (NUMCDEV/2) -struct cdevsw *bdevsw[NUMBDEV]; -int nblkdev = NUMBDEV; struct cdevsw *cdevsw[NUMCDEV]; int nchrdev = NUMCDEV; +int bmaj2cmaj[NUMCDEV]; +int nblkdev = NUMCDEV; + /* * Routine to convert from character to block device number. * @@ -66,50 +65,6 @@ chrtoblk(dev_t dev) return(NODEV); } -/* - * (re)place an entry in the bdevsw or cdevsw table - * return the slot used in major(*descrip) - */ -static int -bdevsw_add(dev_t *descrip, - struct cdevsw *newentry, - struct cdevsw **oldentry) -{ - int i ; - - if ( (int)*descrip == NODEV) { /* auto (0 is valid) */ - /* - * Search the table looking for a slot... - */ - for (i = bdevsw_ALLOCSTART; i < nblkdev; i++) - if (bdevsw[i] == NULL) - break; /* found one! */ - /* out of allocable slots? */ - if (i >= nblkdev) { - return ENFILE; - } - } else { /* assign */ - i = major(*descrip); - if (i < 0 || i >= nblkdev) { - return EINVAL; - } - } - - /* maybe save old */ - if (oldentry) { - *oldentry = bdevsw[i]; - } - if (newentry) { - newentry->d_bmaj = i; - } - /* replace with new */ - bdevsw[i] = newentry; - - /* done! let them know where we put it */ - *descrip = makedev(i,0); - return 0; -} - int cdevsw_add(dev_t *descrip, struct cdevsw *newentry, @@ -155,55 +110,29 @@ cdevsw_add(dev_t *descrip, * note must call cdevsw_add before bdevsw_add due to d_bmaj hack. */ void -cdevsw_add_generic(int bdev, int cdev, struct cdevsw *cdevsw) +cdevsw_add_generic(int bmaj, int cmaj, struct cdevsw *cdevsw) { dev_t dev; - dev = makedev(cdev, 0); + dev = makedev(cmaj, 0); cdevsw_add(&dev, cdevsw, NULL); - dev = makedev(bdev, 0); - bdevsw_add(&dev, cdevsw, NULL); + bmaj2cmaj[bmaj] = cmaj; } int -cdevsw_module_handler(module_t mod, int what, void *arg) +devsw_module_handler(module_t mod, int what, void* arg) { - struct cdevsw_module_data* data = (struct cdevsw_module_data*) arg; - int error; - - switch (what) { - case MOD_LOAD: - error = cdevsw_add(&data->dev, data->cdevsw, NULL); - if (!error && data->chainevh) - error = data->chainevh(mod, what, data->chainarg); - return error; - - case MOD_UNLOAD: - if (data->chainevh) { - error = data->chainevh(mod, what, data->chainarg); - if (error) - return error; - } - return cdevsw_add(&data->dev, NULL, NULL); - } - - if (data->chainevh) - return data->chainevh(mod, what, data->chainarg); - else - return 0; -} - -int -bdevsw_module_handler(module_t mod, int what, void* arg) -{ - struct bdevsw_module_data* data = (struct bdevsw_module_data*) arg; + struct devsw_module_data* data = (struct devsw_module_data*) arg; int error; switch (what) { case MOD_LOAD: error = cdevsw_add(&data->cdev, data->cdevsw, NULL); - if (!error) - error = bdevsw_add(&data->bdev, data->cdevsw, NULL); + if (!error && data->cdevsw->d_strategy != nostrategy) { + if (data->bdev == NODEV) + data->bdev = data->cdev; + bmaj2cmaj[major(data->bdev)] = major(data->cdev); + } if (!error && data->chainevh) error = data->chainevh(mod, what, data->chainarg); return error; @@ -214,9 +143,9 @@ bdevsw_module_handler(module_t mod, int what, void* arg) if (error) return error; } - error = bdevsw_add(&data->bdev, NULL, NULL); - if (!error) - error = cdevsw_add(&data->cdev, NULL, NULL); + 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_shutdown.c b/sys/kern/kern_shutdown.c index 7a8d8ee..2c51ac7 100644 --- a/sys/kern/kern_shutdown.c +++ b/sys/kern/kern_shutdown.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)kern_shutdown.c 8.3 (Berkeley) 1/21/94 - * $Id: kern_shutdown.c,v 1.48 1999/05/03 23:57:22 billf Exp $ + * $Id: kern_shutdown.c,v 1.49 1999/05/06 18:12:44 peter Exp $ */ #include "opt_ddb.h" @@ -377,14 +377,14 @@ dumpsys(void) return; if (dumpdev == NODEV) return; - if (!(bdevsw[major(dumpdev)])) + if (!(bdevsw(major(dumpdev)))) return; - if (!(bdevsw[major(dumpdev)]->d_dump)) + if (!(bdevsw(major(dumpdev))->d_dump)) return; dumpsize = Maxmem; printf("\ndumping to dev %lx, offset %ld\n", (u_long)dumpdev, dumplo); printf("dump "); - switch ((*bdevsw[major(dumpdev)]->d_dump)(dumpdev)) { + switch ((*bdevsw(major(dumpdev))->d_dump)(dumpdev)) { case ENXIO: printf("device bad\n"); diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c index abd32e2..258d8e5 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.189 1999/03/12 02:24:56 julian Exp $ + * $Id: vfs_subr.c,v 1.190 1999/05/03 23:57:24 billf Exp $ */ /* @@ -1177,7 +1177,7 @@ bdevvp(dev, vpp) /* XXX 255 is for mfs. */ if (dev == NODEV || (major(dev) != 255 && (major(dev) >= nblkdev || - bdevsw[major(dev)] == NULL))) { + bdevsw(major(dev)) == NULL))) { *vpp = NULLVP; return (ENXIO); } @@ -1275,9 +1275,9 @@ loop: */ if (nvp->v_type == VBLK && rmaj < nblkdev) { - if (bdevsw[rmaj] && bdevsw[rmaj]->d_parms) + if (bdevsw(rmaj) && bdevsw(rmaj)->d_parms) - (*bdevsw[rmaj]->d_parms)(nvp_rdev, sinfo, DPARM_GET); + (*bdevsw(rmaj)->d_parms)(nvp_rdev, sinfo, DPARM_GET); } else if (nvp->v_type == VCHR && rmaj < nchrdev) { if (cdevsw[rmaj] && cdevsw[rmaj]->d_parms) (*cdevsw[rmaj]->d_parms)(nvp_rdev, sinfo, DPARM_GET); @@ -2585,7 +2585,7 @@ retry: goto retn; object = vnode_pager_alloc(vp, vat.va_size, 0, 0); } else if (major(vp->v_rdev) < nblkdev && - bdevsw[major(vp->v_rdev)] != NULL) { + bdevsw(major(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 abd32e2..258d8e5 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.189 1999/03/12 02:24:56 julian Exp $ + * $Id: vfs_subr.c,v 1.190 1999/05/03 23:57:24 billf Exp $ */ /* @@ -1177,7 +1177,7 @@ bdevvp(dev, vpp) /* XXX 255 is for mfs. */ if (dev == NODEV || (major(dev) != 255 && (major(dev) >= nblkdev || - bdevsw[major(dev)] == NULL))) { + bdevsw(major(dev)) == NULL))) { *vpp = NULLVP; return (ENXIO); } @@ -1275,9 +1275,9 @@ loop: */ if (nvp->v_type == VBLK && rmaj < nblkdev) { - if (bdevsw[rmaj] && bdevsw[rmaj]->d_parms) + if (bdevsw(rmaj) && bdevsw(rmaj)->d_parms) - (*bdevsw[rmaj]->d_parms)(nvp_rdev, sinfo, DPARM_GET); + (*bdevsw(rmaj)->d_parms)(nvp_rdev, sinfo, DPARM_GET); } else if (nvp->v_type == VCHR && rmaj < nchrdev) { if (cdevsw[rmaj] && cdevsw[rmaj]->d_parms) (*cdevsw[rmaj]->d_parms)(nvp_rdev, sinfo, DPARM_GET); @@ -2585,7 +2585,7 @@ retry: goto retn; object = vnode_pager_alloc(vp, vat.va_size, 0, 0); } else if (major(vp->v_rdev) < nblkdev && - bdevsw[major(vp->v_rdev)] != NULL) { + bdevsw(major(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/kernfs/kernfs_vfsops.c b/sys/miscfs/kernfs/kernfs_vfsops.c index 49f7288..7e94b9f 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.23 1998/09/07 13:17:01 bde Exp $ + * $Id: kernfs_vfsops.c,v 1.24 1998/12/07 21:58:31 archie Exp $ */ /* @@ -88,7 +88,7 @@ kernfs_get_rrootdev() } tried = 1; - if (!bdevsw[bmaj]) { + if (!bdevsw(bmaj)) { panic("root dev has no bdevsw"); } if (rootdev == NODEV) diff --git a/sys/miscfs/specfs/spec_vnops.c b/sys/miscfs/specfs/spec_vnops.c index a3ee89f..63f2b36 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.82 1999/04/05 19:38:30 julian Exp $ + * $Id: spec_vnops.c,v 1.83 1999/05/06 20:00:27 phk Exp $ */ #include <sys/param.h> @@ -214,7 +214,7 @@ spec_open(ap) case VBLK: if ((u_int)maj >= nblkdev) return (ENXIO); - if ( (bdevsw[maj] == NULL) || (bdevsw[maj]->d_open == NULL)) + if ( (bdevsw(maj) == NULL) || (bdevsw(maj)->d_open == NULL)) return ENXIO; /* * When running in very secure mode, do not allow @@ -222,7 +222,7 @@ spec_open(ap) */ if (securelevel >= 2 && ap->a_cred != FSCRED && (ap->a_mode & FWRITE) && - (bdevsw[maj]->d_flags & D_TYPEMASK) == D_DISK) + (bdevsw(maj)->d_flags & D_TYPEMASK) == D_DISK) return (EPERM); /* @@ -232,7 +232,7 @@ spec_open(ap) error = vfs_mountedon(vp); if (error) return (error); - return ((*bdevsw[maj]->d_open)(dev, ap->a_mode, S_IFBLK, p)); + return ((*bdevsw(maj)->d_open)(dev, ap->a_mode, S_IFBLK, p)); /* NOT REACHED */ default: break; @@ -295,7 +295,7 @@ spec_read(ap) bsize = vp->v_specinfo->si_bsize_best; - if ((ioctl = bdevsw[major(dev)]->d_ioctl) != NULL && + if ((ioctl = bdevsw(major(dev))->d_ioctl) != NULL && (*ioctl)(dev, DIOCGPART, (caddr_t)&dpart, FREAD, p) == 0 && dpart.part->p_fstype == FS_BSDFFS && dpart.part->p_frag != 0 && dpart.part->p_fsize != 0) @@ -379,7 +379,7 @@ spec_write(ap) */ bsize = vp->v_specinfo->si_bsize_best; - if ((*bdevsw[major(vp->v_rdev)]->d_ioctl)(vp->v_rdev, DIOCGPART, + if ((*bdevsw(major(vp->v_rdev))->d_ioctl)(vp->v_rdev, DIOCGPART, (caddr_t)&dpart, FREAD, p) == 0) { if (dpart.part->p_fstype == FS_BSDFFS && dpart.part->p_frag != 0 && dpart.part->p_fsize != 0) @@ -437,7 +437,7 @@ spec_ioctl(ap) return ((*cdevsw[major(dev)]->d_ioctl)(dev, ap->a_command, ap->a_data, ap->a_fflag, ap->a_p)); case VBLK: - return ((*bdevsw[major(dev)]->d_ioctl)(dev, ap->a_command, + return ((*bdevsw(major(dev))->d_ioctl)(dev, ap->a_command, ap->a_data, ap->a_fflag, ap->a_p)); default: panic("spec_ioctl"); @@ -553,7 +553,7 @@ spec_strategy(ap) if (((bp->b_flags & B_READ) == 0) && (LIST_FIRST(&bp->b_dep)) != NULL && bioops.io_start) (*bioops.io_start)(bp); - (*bdevsw[major(bp->b_dev)]->d_strategy)(bp); + (*bdevsw(major(bp->b_dev))->d_strategy)(bp); return (0); } @@ -568,7 +568,7 @@ spec_freeblks(ap) struct cdevsw *bsw; struct buf *bp; - bsw = bdevsw[major(ap->a_vp->v_rdev)]; + bsw = bdevsw(major(ap->a_vp->v_rdev)); if ((bsw->d_flags & D_CANFREE) == 0) return (0); bp = geteblk(ap->a_length); @@ -678,7 +678,7 @@ spec_close(ap) if ((vcount(vp) > 1) && (vp->v_flag & VXLOCK) == 0) return (0); - devclose = bdevsw[major(dev)]->d_close; + devclose = bdevsw(major(dev))->d_close; mode = S_IFBLK; break; @@ -956,7 +956,7 @@ spec_getattr(ap) vap->va_blocksize = MAXBSIZE; } - if ((*bdevsw[major(vp->v_rdev)]->d_ioctl)(vp->v_rdev, DIOCGPART, + if ((*bdevsw(major(vp->v_rdev))->d_ioctl)(vp->v_rdev, DIOCGPART, (caddr_t)&dpart, FREAD, ap->a_p) == 0) { vap->va_bytes = dbtob(dpart.disklab->d_partitions [minor(vp->v_rdev)].p_size); diff --git a/sys/msdosfs/msdosfs_vfsops.c b/sys/msdosfs/msdosfs_vfsops.c index 4fcbe0b..c062519 100644 --- a/sys/msdosfs/msdosfs_vfsops.c +++ b/sys/msdosfs/msdosfs_vfsops.c @@ -1,4 +1,4 @@ -/* $Id: msdosfs_vfsops.c,v 1.41 1999/03/28 23:00:33 dt Exp $ */ +/* $Id: msdosfs_vfsops.c,v 1.42 1999/05/06 18:12:50 peter Exp $ */ /* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */ /*- @@ -299,7 +299,7 @@ msdosfs_mount(mp, path, data, ndp, p) return (ENOTBLK); } if (major(devvp->v_rdev) >= nblkdev || - bdevsw[major(devvp->v_rdev)] == NULL) { + bdevsw(major(devvp->v_rdev)) == NULL) { vrele(devvp); return (ENXIO); } diff --git a/sys/pc98/cbus/fdc.c b/sys/pc98/cbus/fdc.c index 5e1e569..d7b65ed 100644 --- a/sys/pc98/cbus/fdc.c +++ b/sys/pc98/cbus/fdc.c @@ -47,7 +47,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.57 1999/05/06 20:00:31 phk Exp $ + * $Id: fd.c,v 1.58 1999/05/07 07:03:42 phk Exp $ * */ @@ -2782,7 +2782,7 @@ static driver_t fd_driver = { sizeof(struct fd_data) }; -BDEV_DRIVER_MODULE(fd, fdc, fd_driver, fd_devclass, BDEV_MAJOR, CDEV_MAJOR, +DEV_DRIVER_MODULE(fd, fdc, fd_driver, fd_devclass, CDEV_MAJOR, BDEV_MAJOR, fd_cdevsw, 0, 0); #endif /* NFDC > 0 */ diff --git a/sys/pc98/cbus/sio.c b/sys/pc98/cbus/sio.c index 3f596b9..f821d18 100644 --- a/sys/pc98/cbus/sio.c +++ b/sys/pc98/cbus/sio.c @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: sio.c,v 1.89 1999/04/27 11:18:01 phk Exp $ + * $Id: sio.c,v 1.90 1999/05/05 01:53:43 kato Exp $ * from: @(#)com.c 7.5 (Berkeley) 5/16/91 * from: i386/isa sio.c,v 1.234 */ @@ -4425,8 +4425,8 @@ siopnp_attach(u_long csn, u_long vend_id, char *name, struct isa_device *dev) } #endif -CDEV_DRIVER_MODULE(sio, isa, sio_driver, sio_devclass, - CDEV_MAJOR, sio_cdevsw, 0, 0); +DEV_DRIVER_MODULE(sio, isa, sio_driver, sio_devclass, + CDEV_MAJOR, NODEV, sio_cdevsw, 0, 0); #ifdef PC98 /* diff --git a/sys/pc98/pc98/fd.c b/sys/pc98/pc98/fd.c index 5e1e569..d7b65ed 100644 --- a/sys/pc98/pc98/fd.c +++ b/sys/pc98/pc98/fd.c @@ -47,7 +47,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.57 1999/05/06 20:00:31 phk Exp $ + * $Id: fd.c,v 1.58 1999/05/07 07:03:42 phk Exp $ * */ @@ -2782,7 +2782,7 @@ static driver_t fd_driver = { sizeof(struct fd_data) }; -BDEV_DRIVER_MODULE(fd, fdc, fd_driver, fd_devclass, BDEV_MAJOR, CDEV_MAJOR, +DEV_DRIVER_MODULE(fd, fdc, fd_driver, fd_devclass, CDEV_MAJOR, BDEV_MAJOR, fd_cdevsw, 0, 0); #endif /* NFDC > 0 */ diff --git a/sys/pc98/pc98/sio.c b/sys/pc98/pc98/sio.c index 3f596b9..f821d18 100644 --- a/sys/pc98/pc98/sio.c +++ b/sys/pc98/pc98/sio.c @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: sio.c,v 1.89 1999/04/27 11:18:01 phk Exp $ + * $Id: sio.c,v 1.90 1999/05/05 01:53:43 kato Exp $ * from: @(#)com.c 7.5 (Berkeley) 5/16/91 * from: i386/isa sio.c,v 1.234 */ @@ -4425,8 +4425,8 @@ siopnp_attach(u_long csn, u_long vend_id, char *name, struct isa_device *dev) } #endif -CDEV_DRIVER_MODULE(sio, isa, sio_driver, sio_devclass, - CDEV_MAJOR, sio_cdevsw, 0, 0); +DEV_DRIVER_MODULE(sio, isa, sio_driver, sio_devclass, + CDEV_MAJOR, NODEV, sio_cdevsw, 0, 0); #ifdef PC98 /* diff --git a/sys/sys/bus.h b/sys/sys/bus.h index 9095d7e..704d741 100644 --- a/sys/sys/bus.h +++ b/sys/sys/bus.h @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: bus.h,v 1.10 1999/03/29 08:54:19 dfr Exp $ + * $Id: bus.h,v 1.11 1999/04/16 21:22:54 peter Exp $ */ #ifndef _SYS_BUS_H_ @@ -280,25 +280,15 @@ static moduledata_t name##_##busname##_mod = { \ DECLARE_MODULE(name##_##busname, name##_##busname##_mod, \ SI_SUB_DRIVERS, SI_ORDER_MIDDLE) -#define CDEV_DRIVER_MODULE(name, busname, driver, devclass, \ - major, devsw, evh, arg) \ +#define DEV_DRIVER_MODULE(name, busname, driver, devclass, \ + cmajor, bmajor, devsw, evh, arg) \ \ -static struct cdevsw_module_data name##_##busname##_cdevsw_mod = { \ - evh, arg, makedev(major, 0), &devsw \ -}; \ - \ -DRIVER_MODULE(name, busname, driver, devclass, \ - cdevsw_module_handler, &name##_##busname##_cdevsw_mod) - -#define BDEV_DRIVER_MODULE(name, busname, driver, devclass, \ - bmajor, cmajor, devsw, evh, arg) \ - \ -static struct bdevsw_module_data name##_##busname##_bdevsw_mod = { \ +static struct devsw_module_data name##_##busname##_devsw_mod = { \ evh, arg, makedev(bmajor, 0), makedev(cmajor, 0), &devsw \ }; \ \ DRIVER_MODULE(name, busname, driver, devclass, \ - bdevsw_module_handler, &name##_##busname##_bdevsw_mod) + devsw_module_handler, &name##_##busname##_devsw_mod) #endif /* KERNEL */ diff --git a/sys/sys/conf.h b/sys/sys/conf.h index d0d27e6..dbe2af3 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.49 1999/01/21 16:15:53 peter Exp $ + * $Id: conf.h,v 1.50 1999/02/25 05:22:28 dillon Exp $ */ #ifndef _SYS_CONF_H_ @@ -128,8 +128,19 @@ struct cdevsw { }; #ifdef KERNEL -extern struct cdevsw *bdevsw[]; extern struct cdevsw *cdevsw[]; +extern int bmaj2cmaj[]; + +static __inline +struct cdevsw * +bdevsw(int maj) +{ + struct cdevsw *c = cdevsw[bmaj2cmaj[maj]]; + /* CMAJ zero is the console, which has no strategy so this works */ + if (c->d_strategy) + return (c); + return (0); +} #endif /* @@ -207,14 +218,7 @@ l_write_t l_nowrite; struct module; -struct cdevsw_module_data { - int (*chainevh)(struct module *, int, void *); /* next handler */ - void *chainarg; /* arg for next event handler */ - dev_t dev; /* device major to use */ - struct cdevsw *cdevsw; /* device functions */ -}; - -struct bdevsw_module_data { +struct devsw_module_data { int (*chainevh)(struct module *, int, void *); /* next handler */ void *chainarg; /* arg for next event handler */ int bdev; /* device major to use */ @@ -222,33 +226,20 @@ struct bdevsw_module_data { struct cdevsw *cdevsw; /* device functions */ }; -#define CDEV_MODULE(name, major, devsw, evh, arg) \ -static struct cdevsw_module_data name##_cdevsw_mod = { \ - evh, arg, major == NODEV ? NODEV : makedev(major, 0), &devsw \ -}; \ - \ -static moduledata_t name##_mod = { \ - #name, \ - cdevsw_module_handler, \ - &name##_cdevsw_mod \ -}; \ -DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE+major) - -#define BDEV_MODULE(name, bdev, cdev, devsw, evh, arg) \ -static struct bdevsw_module_data name##_bdevsw_mod = { \ - evh, arg, bdev == NODEV ? NODEV : makedev(bdev, 0), \ - cdev == NODEV ? NODEV : makedev(cdev, 0), &devsw \ +#define DEV_MODULE(name, cmaj, bmaj, devsw, evh, arg) \ +static struct devsw_module_data name##_devsw_mod = { \ + evh, arg, bmaj == NODEV ? NODEV : makedev(bmaj, 0), \ + cmaj == NODEV ? NODEV : makedev(cmaj, 0), &devsw \ }; \ \ static moduledata_t name##_mod = { \ #name, \ - bdevsw_module_handler, \ - &name##_bdevsw_mod \ + devsw_module_handler, \ + &name##_devsw_mod \ }; \ -DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE+cdev) +DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE+cmaj*256+bmaj) -int cdevsw_module_handler __P((struct module *mod, int what, void *arg)); -int bdevsw_module_handler __P((struct module *mod, int what, void *arg)); +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)); diff --git a/sys/sys/linedisc.h b/sys/sys/linedisc.h index d0d27e6..dbe2af3 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.49 1999/01/21 16:15:53 peter Exp $ + * $Id: conf.h,v 1.50 1999/02/25 05:22:28 dillon Exp $ */ #ifndef _SYS_CONF_H_ @@ -128,8 +128,19 @@ struct cdevsw { }; #ifdef KERNEL -extern struct cdevsw *bdevsw[]; extern struct cdevsw *cdevsw[]; +extern int bmaj2cmaj[]; + +static __inline +struct cdevsw * +bdevsw(int maj) +{ + struct cdevsw *c = cdevsw[bmaj2cmaj[maj]]; + /* CMAJ zero is the console, which has no strategy so this works */ + if (c->d_strategy) + return (c); + return (0); +} #endif /* @@ -207,14 +218,7 @@ l_write_t l_nowrite; struct module; -struct cdevsw_module_data { - int (*chainevh)(struct module *, int, void *); /* next handler */ - void *chainarg; /* arg for next event handler */ - dev_t dev; /* device major to use */ - struct cdevsw *cdevsw; /* device functions */ -}; - -struct bdevsw_module_data { +struct devsw_module_data { int (*chainevh)(struct module *, int, void *); /* next handler */ void *chainarg; /* arg for next event handler */ int bdev; /* device major to use */ @@ -222,33 +226,20 @@ struct bdevsw_module_data { struct cdevsw *cdevsw; /* device functions */ }; -#define CDEV_MODULE(name, major, devsw, evh, arg) \ -static struct cdevsw_module_data name##_cdevsw_mod = { \ - evh, arg, major == NODEV ? NODEV : makedev(major, 0), &devsw \ -}; \ - \ -static moduledata_t name##_mod = { \ - #name, \ - cdevsw_module_handler, \ - &name##_cdevsw_mod \ -}; \ -DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE+major) - -#define BDEV_MODULE(name, bdev, cdev, devsw, evh, arg) \ -static struct bdevsw_module_data name##_bdevsw_mod = { \ - evh, arg, bdev == NODEV ? NODEV : makedev(bdev, 0), \ - cdev == NODEV ? NODEV : makedev(cdev, 0), &devsw \ +#define DEV_MODULE(name, cmaj, bmaj, devsw, evh, arg) \ +static struct devsw_module_data name##_devsw_mod = { \ + evh, arg, bmaj == NODEV ? NODEV : makedev(bmaj, 0), \ + cmaj == NODEV ? NODEV : makedev(cmaj, 0), &devsw \ }; \ \ static moduledata_t name##_mod = { \ #name, \ - bdevsw_module_handler, \ - &name##_bdevsw_mod \ + devsw_module_handler, \ + &name##_devsw_mod \ }; \ -DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE+cdev) +DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE+cmaj*256+bmaj) -int cdevsw_module_handler __P((struct module *mod, int what, void *arg)); -int bdevsw_module_handler __P((struct module *mod, int what, void *arg)); +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)); diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index cffe980..184f866 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.95 1999/01/07 16:14:17 bde Exp $ + * $Id: ffs_vfsops.c,v 1.96 1999/01/28 00:57:54 dillon Exp $ */ #include "opt_quota.h" @@ -158,9 +158,9 @@ ffs_mount( mp, path, data, ndp, p) return (err); } - if (bdevsw[major(rootdev)]->d_flags & D_NOCLUSTERR) + if (bdevsw(major(rootdev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; - if (bdevsw[major(rootdev)]->d_flags & D_NOCLUSTERW) + if (bdevsw(major(rootdev))->d_flags & D_NOCLUSTERW) mp->mnt_flag |= MNT_NOCLUSTERW; if( ( err = ffs_mountfs(rootvp, mp, p, M_FFSNODE)) != 0) { /* fs specific cleanup (if any)*/ @@ -194,9 +194,9 @@ ffs_mount( mp, path, data, ndp, p) devvp = ump->um_devvp; err = 0; ronly = fs->fs_ronly; /* MNT_RELOAD might change this */ - if (bdevsw[major(ump->um_dev)]->d_flags & D_NOCLUSTERR) + if (bdevsw(major(ump->um_dev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; - if (bdevsw[major(ump->um_dev)]->d_flags & D_NOCLUSTERW) + if (bdevsw(major(ump->um_dev))->d_flags & D_NOCLUSTERW) mp->mnt_flag |= MNT_NOCLUSTERW; if (ronly == 0 && (mp->mnt_flag & MNT_RDONLY)) { flags = WRITECLOSE; @@ -291,7 +291,7 @@ ffs_mount( mp, path, data, ndp, p) goto error_2; } if (major(devvp->v_rdev) >= nblkdev || - bdevsw[major(devvp->v_rdev)] == NULL) { + bdevsw(major(devvp->v_rdev)) == NULL) { err = ENXIO; goto error_2; } @@ -347,9 +347,9 @@ ffs_mount( mp, path, data, ndp, p) ******************** */ - if (bdevsw[major(devvp->v_rdev)]->d_flags & D_NOCLUSTERR) + if (bdevsw(major(devvp->v_rdev))->d_flags & D_NOCLUSTERR) mp->mnt_flag |= MNT_NOCLUSTERR; - if (bdevsw[major(devvp->v_rdev)]->d_flags & D_NOCLUSTERW) + if (bdevsw(major(devvp->v_rdev))->d_flags & D_NOCLUSTERW) mp->mnt_flag |= MNT_NOCLUSTERW; /* diff --git a/sys/ufs/ufs/ufs_bmap.c b/sys/ufs/ufs/ufs_bmap.c index 3ea5965..88f4c24 100644 --- a/sys/ufs/ufs/ufs_bmap.c +++ b/sys/ufs/ufs/ufs_bmap.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)ufs_bmap.c 8.7 (Berkeley) 3/21/95 - * $Id: ufs_bmap.c,v 1.25 1999/01/28 00:57:55 dillon Exp $ + * $Id: ufs_bmap.c,v 1.26 1999/05/02 23:57:04 alc Exp $ */ #include <sys/param.h> @@ -151,12 +151,12 @@ ufs_bmaparray(vp, bn, bnp, ap, nump, runp, runb) if (devvp != NULL && devvp->v_tag != VT_MFS && devvp->v_type == VBLK) { - if (bdevsw[major(devvp->v_rdev)]->d_maxio > MAXPHYS) { + if (bdevsw(major(devvp->v_rdev))->d_maxio > MAXPHYS) { maxrun = MAXPHYS; vp->v_maxio = MAXPHYS; } else { - maxrun = bdevsw[major(devvp->v_rdev)]->d_maxio; - vp->v_maxio = bdevsw[major(devvp->v_rdev)]->d_maxio; + maxrun = bdevsw(major(devvp->v_rdev))->d_maxio; + vp->v_maxio = bdevsw(major(devvp->v_rdev))->d_maxio; } maxrun = maxrun / blksize; maxrun -= 1; diff --git a/sys/vm/vm_swap.c b/sys/vm/vm_swap.c index 0f3ad71..9a8db05 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.63 1999/04/28 10:54:24 dt Exp $ + * $Id: vm_swap.c,v 1.64 1999/05/07 07:03:47 phk Exp $ */ #include "opt_devfs.h" @@ -209,7 +209,7 @@ swapon(p, uap) switch (vp->v_type) { case VBLK: dev = vp->v_rdev; - if (major(dev) >= nblkdev || bdevsw[major(dev)] == NULL) { + if (major(dev) >= nblkdev || bdevsw(major(dev)) == NULL) { error = ENXIO; break; } @@ -281,8 +281,8 @@ swaponvp(p, vp, dev, nblks) if (error) return (error); - if (nblks == 0 && dev != NODEV && (bdevsw[major(dev)]->d_psize == 0 || - (nblks = (*bdevsw[major(dev)]->d_psize) (dev)) == -1)) { + if (nblks == 0 && dev != NODEV && (bdevsw(major(dev))->d_psize == 0 || + (nblks = (*bdevsw(major(dev))->d_psize) (dev)) == -1)) { (void) VOP_CLOSE(vp, FREAD | FWRITE, p->p_ucred, p); return (ENXIO); } |