Lines Matching refs:drv
89 struct idad_softc *drv; in idad_strategy() local
91 drv = bp->bio_disk->d_drv1; in idad_strategy()
92 if (drv == NULL) { in idad_strategy()
100 if (drv->flags & DRV_WRITEPROT && (bp->bio_cmd == BIO_WRITE)) { in idad_strategy()
110 bp->bio_driver1 = drv; in idad_strategy()
111 ida_submit_buf(drv->controller, bp); in idad_strategy()
129 struct idad_softc *drv; in idad_dump() local
134 drv = dp->d_drv1; in idad_dump()
135 if (drv == NULL) in idad_dump()
138 drv->controller->flags &= ~IDA_INTERRUPTS; in idad_dump()
141 error = ida_command(drv->controller, CMD_WRITE, virtual, in idad_dump()
142 length, drv->drive, offset / DEV_BSIZE, DMA_DATA_OUT); in idad_dump()
144 drv->controller->flags |= IDA_INTERRUPTS; in idad_dump()
172 struct idad_softc *drv; in idad_attach() local
176 drv = (struct idad_softc *)device_get_softc(dev); in idad_attach()
178 drv->dev = dev; in idad_attach()
179 drv->controller = (struct ida_softc *)device_get_softc(parent); in idad_attach()
180 drv->unit = device_get_unit(dev); in idad_attach()
181 drv->drive = (intptr_t)device_get_ivars(dev); in idad_attach()
183 mtx_lock(&drv->controller->lock); in idad_attach()
184 error = ida_command(drv->controller, CMD_GET_LOG_DRV_INFO, in idad_attach()
185 &dinfo, sizeof(dinfo), drv->drive, 0, DMA_DATA_IN); in idad_attach()
186 mtx_unlock(&drv->controller->lock); in idad_attach()
192 drv->cylinders = dinfo.dp.ncylinders; in idad_attach()
193 drv->heads = dinfo.dp.nheads; in idad_attach()
194 drv->sectors = dinfo.dp.nsectors; in idad_attach()
195 drv->secsize = dinfo.secsize == 0 ? 512 : dinfo.secsize; in idad_attach()
196 drv->secperunit = dinfo.secperunit; in idad_attach()
202 drv->secperunit / ((1024 * 1024) / drv->secsize), in idad_attach()
203 drv->secperunit, drv->secsize); in idad_attach()
205 drv->disk = disk_alloc(); in idad_attach()
206 drv->disk->d_strategy = idad_strategy; in idad_attach()
207 drv->disk->d_name = "idad"; in idad_attach()
208 drv->disk->d_dump = idad_dump; in idad_attach()
209 drv->disk->d_sectorsize = drv->secsize; in idad_attach()
210 drv->disk->d_mediasize = (off_t)drv->secperunit * drv->secsize; in idad_attach()
211 drv->disk->d_fwsectors = drv->sectors; in idad_attach()
212 drv->disk->d_fwheads = drv->heads; in idad_attach()
213 drv->disk->d_drv1 = drv; in idad_attach()
214 drv->disk->d_maxsize = DFLTPHYS; /* XXX guess? */ in idad_attach()
215 drv->disk->d_unit = drv->unit; in idad_attach()
216 disk_create(drv->disk, DISK_VERSION); in idad_attach()
224 struct idad_softc *drv; in idad_detach() local
226 drv = (struct idad_softc *)device_get_softc(dev); in idad_detach()
227 disk_destroy(drv->disk); in idad_detach()