diff options
author | David Gwynne <dlg@cvs.openbsd.org> | 2006-11-27 13:33:16 +0000 |
---|---|---|
committer | David Gwynne <dlg@cvs.openbsd.org> | 2006-11-27 13:33:16 +0000 |
commit | f8cf79339b850c0f9740f9d3eb72f4c78d4626c2 (patch) | |
tree | cdc7bc8b853bfdf4ad32248af8b00467c98e2ea6 /sys | |
parent | 756d43f335ddb42afe57400c75e8451a2ca121e1 (diff) |
hook scsibus up to bio.
ok deraadt@ krw@ an earlier diff was ok marco@ too
Diffstat (limited to 'sys')
-rw-r--r-- | sys/scsi/scsiconf.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/sys/scsi/scsiconf.c b/sys/scsi/scsiconf.c index 8d40860939d..18864714b94 100644 --- a/sys/scsi/scsiconf.c +++ b/sys/scsi/scsiconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: scsiconf.c,v 1.119 2006/11/27 11:56:20 dlg Exp $ */ +/* $OpenBSD: scsiconf.c,v 1.120 2006/11/27 13:33:15 dlg Exp $ */ /* $NetBSD: scsiconf.c,v 1.57 1996/05/02 01:09:01 neil Exp $ */ /* @@ -47,6 +47,8 @@ * Ported to run under 386BSD by Julian Elischer (julian@tfs.com) Sept 1992 */ +#include "bio.h" + #include <sys/types.h> #include <sys/param.h> #include <sys/systm.h> @@ -56,6 +58,10 @@ #include <scsi/scsi_all.h> #include <scsi/scsiconf.h> +#if NBIO > 0 +#include <dev/biovar.h> +#endif + /* * Declarations */ @@ -75,6 +81,10 @@ int scsibusdetach(struct device *, int); int scsibussubmatch(struct device *, void *, void *); +#if NBIO > 0 +int scsibus_bioctl(struct device *, u_long, caddr_t); +#endif + struct cfattach scsibus_ca = { sizeof(struct scsibus_softc), scsibusmatch, scsibusattach, scsibusdetach, scsibusactivate @@ -159,6 +169,11 @@ scsibusattach(struct device *parent, struct device *self, void *aux) bzero(sb->sc_link[i], nbytes); } +#if NBIO > 0 + if (bio_register(&sb->sc_dev, scsibus_bioctl) != 0) + printf("%s: unable to register bio\n", sb->sc_dev.dv_xname); +#endif + scsi_probe_bus(sb); } @@ -174,6 +189,10 @@ scsibusdetach(struct device *dev, int type) struct scsibus_softc *sb = (struct scsibus_softc *)dev; int i, j, error; +#if NBIO > 0 + bio_unregister(&sb->sc_dev); +#endif + if ((error = config_detach_children(dev, type)) != 0) return (error); @@ -210,6 +229,14 @@ scsibussubmatch(struct device *parent, void *match, void *aux) return ((*cf->cf_attach->ca_match)(parent, match, aux)); } +#if NBIO > 0 +int +scsibus_bioctl(struct device *dev, u_long cmd, caddr_t addr) +{ + return (ENOTTY); +} +#endif + int scsi_probe_bus(struct scsibus_softc *sc) { |