static int ncvattach(DEVPORT_PDEVICE devi) { struct ncv_softc *sc; struct scsi_low_softc *slp; u_int32_t flags = DEVPORT_PDEVFLAGS(devi); intrmask_t s; char dvname[16]; /* SCSI_LOW_DVNAME_LEN */ strcpy(dvname, "ncv"); sc = DEVPORT_PDEVALLOC_SOFTC(devi); if (sc == NULL) { return(0); } slp = &sc->sc_sclow; slp->sl_dev = devi; sc->sc_iot = rman_get_bustag(sc->port_res); sc->sc_ioh = rman_get_bushandle(sc->port_res); slp->sl_hostid = NCV_HOSTID; slp->sl_cfgflags = flags; s = splcam(); ncvattachsubr(sc); splx(s); return(NCVIOSZ); }
static int ncvattach(DEVPORT_PDEVICE devi) { struct ncv_softc *sc; struct scsi_low_softc *slp; u_int32_t flags = DEVPORT_PDEVFLAGS(devi); #if defined(__FreeBSD__) && __FreeBSD_version < 400001 int unit = DEVPORT_PDEVUNIT(devi); bus_addr_t offset = 0; u_int iobase = DEVPORT_PDEVIOBASE(devi); #endif char dvname[16]; /* SCSI_LOW_DVNAME_LEN */ strcpy(dvname, "ncv"); #if defined(__FreeBSD__) && __FreeBSD_version < 400001 if (unit >= NNCV) { printf("%s: unit number too high\n", dvname); return (0); } if (iobase == 0) { printf("%s: no ioaddr is given\n", dvname); return (0); } if(flags & KME_KXLC004_01) offset = OFFSET_KME_KXLC004_01; #endif sc = DEVPORT_PDEVALLOC_SOFTC(devi); if (sc == NULL) { return(0); } slp = &sc->sc_sclow; #if defined(__FreeBSD__) && __FreeBSD_version >= 400001 slp->sl_dev = devi; sc->sc_iot = rman_get_bustag(sc->port_res); sc->sc_ioh = rman_get_bushandle(sc->port_res); #else bzero(sc, sizeof(struct ncv_softc)); strcpy(slp->sl_dev.dv_xname, dvname); slp->sl_dev.dv_unit = unit; sc->sc_iot = I386_BUS_SPACE_IO; sc->sc_ioh = iobase + offset; #endif slp->sl_hostid = NCV_HOSTID; slp->sl_cfgflags = flags; ncvattachsubr(sc); sc->sc_ih = ncvintr; return(NCVIOSZ); }
static int ncvattach(device_t devi) { struct ncv_softc *sc; struct scsi_low_softc *slp; u_int32_t flags = device_get_flags(devi); sc = device_get_softc(devi); slp = &sc->sc_sclow; slp->sl_dev = devi; slp->sl_hostid = NCV_HOSTID; slp->sl_cfgflags = flags; ncvattachsubr(sc); return(NCVIOSZ); }