diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 1996-05-03 16:05:01 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 1996-05-03 16:05:01 +0000 |
commit | f19f6f3c1fb3e32d0ec3a2cfc1155f5773773fac (patch) | |
tree | ebc4f86aa5ec5a8abcda7997297093a14dfb8d0b /sys/arch/sun3/dev/xd.c | |
parent | cb307111a88f57667598461d6faaf39bff1ef2f8 (diff) |
sync with 0430.
Diffstat (limited to 'sys/arch/sun3/dev/xd.c')
-rw-r--r-- | sys/arch/sun3/dev/xd.c | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/sys/arch/sun3/dev/xd.c b/sys/arch/sun3/dev/xd.c index a4ae623c13a..8c1e42f9b5e 100644 --- a/sys/arch/sun3/dev/xd.c +++ b/sys/arch/sun3/dev/xd.c @@ -1,4 +1,4 @@ -/* $NetBSD: xd.c,v 1.2 1996/01/07 22:03:17 thorpej Exp $ */ +/* $NetBSD: xd.c,v 1.7 1996/03/17 02:04:07 thorpej Exp $ */ /* * @@ -36,7 +36,7 @@ * x d . c x y l o g i c s 7 5 3 / 7 0 5 3 v m e / s m d d r i v e r * * author: Chuck Cranor <chuck@ccrc.wustl.edu> - * id: $Id: xd.c,v 1.5 1996/03/04 20:35:27 chuck Exp $ + * id: $NetBSD: xd.c,v 1.7 1996/03/17 02:04:07 thorpej Exp $ * started: 27-Feb-95 * references: [1] Xylogics Model 753 User's Manual * part number: 166-753-001, Revision B, May 21, 1988. @@ -245,12 +245,20 @@ int xdgetdisklabel __P((struct xd_softc *, void *)); * cfdrivers: device driver interface to autoconfig */ -struct cfdriver xdccd = { - NULL, "xdc", xdcmatch, xdcattach, DV_DULL, sizeof(struct xdc_softc) +struct cfattach xdc_ca = { + sizeof(struct xdc_softc), xdcmatch, xdcattach }; -struct cfdriver xdcd = { - NULL, "xd", xdmatch, xdattach, DV_DISK, sizeof(struct xd_softc) +struct cfdriver xdc_cd = { + NULL, "xdc", DV_DULL +}; + +struct cfattach xd_ca = { + sizeof(struct xd_softc), xdmatch, xdattach +}; + +struct cfdriver xd_cd = { + NULL, "xd", DV_DISK }; struct xdc_attach_args { /* this is the "aux" args to xdattach */ @@ -722,7 +730,7 @@ xdclose(dev, flag, fmt) int flag, fmt; { - struct xd_softc *xd = xdcd.cd_devs[DISKUNIT(dev)]; + struct xd_softc *xd = xd_cd.cd_devs[DISKUNIT(dev)]; int part = DISKPART(dev); /* clear mask bits */ @@ -752,11 +760,11 @@ xddump(dev) struct xd_softc *xd; unit = DISKUNIT(dev); - if (unit >= xdcd.cd_ndevs) + if (unit >= xd_cd.cd_ndevs) return ENXIO; part = DISKPART(dev); - xd = xdcd.cd_devs[unit]; + xd = xd_cd.cd_devs[unit]; printf("%s%c: crash dump not supported (yet)\n", xd->sc_dev.dv_xname, 'a' + part); @@ -795,7 +803,7 @@ xdioctl(dev, command, addr, flag, p) unit = DISKUNIT(dev); - if (unit >= xdcd.cd_ndevs || (xd = xdcd.cd_devs[unit]) == NULL) + if (unit >= xd_cd.cd_ndevs || (xd = xd_cd.cd_devs[unit]) == NULL) return (ENXIO); /* switch on ioctl type */ @@ -887,7 +895,7 @@ xdopen(dev, flag, fmt) /* first, could it be a valid target? */ unit = DISKUNIT(dev); - if (unit >= xdcd.cd_ndevs || (xd = xdcd.cd_devs[unit]) == NULL) + if (unit >= xd_cd.cd_ndevs || (xd = xd_cd.cd_devs[unit]) == NULL) return (ENXIO); part = DISKPART(dev); @@ -964,7 +972,7 @@ xdsize(dev) /* do it */ - xdsc = xdcd.cd_devs[DISKUNIT(dev)]; + xdsc = xd_cd.cd_devs[DISKUNIT(dev)]; part = DISKPART(dev); if (xdsc->sc_dk.dk_label->d_partitions[part].p_fstype != FS_SWAP) size = -1; /* only give valid size for swap partitions */ @@ -993,7 +1001,7 @@ xdstrategy(bp) /* check for live device */ - if (unit >= xdcd.cd_ndevs || (xd = xdcd.cd_devs[unit]) == 0 || + if (unit >= xd_cd.cd_ndevs || (xd = xd_cd.cd_devs[unit]) == 0 || bp->b_blkno < 0 || (bp->b_bcount % xd->sc_dk.dk_label->d_secsize) != 0) { bp->b_error = EINVAL; @@ -1425,6 +1433,9 @@ xdc_startbuf(xdcsc, xdsc, bp) /* Instrumentation. */ disk_busy(&xdsc->sc_dk); + /* Instrumentation. */ + disk_busy(&xdsc->sc_dk); + /* now submit [note that xdc_submit_iorq can never fail on NORM reqs] */ xdc_submit_iorq(xdcsc, rqno, XD_SUB_NORM); |