version 1.245.6.3, 2008/06/02 13:23:50 |
version 1.245.6.4, 2008/06/29 09:33:10 |
Line 979 scsibusopen(dev_t dev, int flag, int fmt |
|
Line 979 scsibusopen(dev_t dev, int flag, int fmt |
|
struct scsibus_softc *sc; |
struct scsibus_softc *sc; |
int error, unit = minor(dev); |
int error, unit = minor(dev); |
|
|
if (unit >= scsibus_cd.cd_ndevs || |
sc = device_lookup_private(&scsibus_cd, unit); |
(sc = scsibus_cd.cd_devs[unit]) == NULL) |
if (sc == NULL) |
return (ENXIO); |
return (ENXIO); |
|
|
if (sc->sc_flags & SCSIBUSF_OPEN) |
if (sc->sc_flags & SCSIBUSF_OPEN) |
|
|
scsibusclose(dev_t dev, int flag, int fmt, |
scsibusclose(dev_t dev, int flag, int fmt, |
struct lwp *l) |
struct lwp *l) |
{ |
{ |
struct scsibus_softc *sc = scsibus_cd.cd_devs[minor(dev)]; |
struct scsibus_softc *sc; |
|
|
|
sc = device_lookup_private(&scsibus_cd, minor(dev)); |
scsipi_adapter_delref(sc->sc_channel->chan_adapter); |
scsipi_adapter_delref(sc->sc_channel->chan_adapter); |
|
|
sc->sc_flags &= ~SCSIBUSF_OPEN; |
sc->sc_flags &= ~SCSIBUSF_OPEN; |
Line 1010 scsibusclose(dev_t dev, int flag, int fm |
|
Line 1011 scsibusclose(dev_t dev, int flag, int fm |
|
static int |
static int |
scsibusioctl(dev_t dev, u_long cmd, void *addr, int flag, struct lwp *l) |
scsibusioctl(dev_t dev, u_long cmd, void *addr, int flag, struct lwp *l) |
{ |
{ |
struct scsibus_softc *sc = scsibus_cd.cd_devs[minor(dev)]; |
struct scsibus_softc *sc; |
struct scsipi_channel *chan = sc->sc_channel; |
struct scsipi_channel *chan; |
int error; |
int error; |
|
|
|
sc = device_lookup_private(&scsibus_cd, minor(dev)); |
|
chan = sc->sc_channel; |
|
|
/* |
/* |
* Enforce write permission for ioctls that change the |
* Enforce write permission for ioctls that change the |
* state of the bus. Host adapter specific ioctls must |
* state of the bus. Host adapter specific ioctls must |