Lines Matching refs:of
64 #define OFDISK_FLOPPY_P(of) ((of)->sc_flags & OFDF_ISFLOPPY) argument
140 struct ofdisk_softc *of = device_private(self); in ofdisk_attach() local
145 of->sc_dev = self; in ofdisk_attach()
153 of->sc_flags = 0; in ofdisk_attach()
154 of->sc_phandle = oba->oba_phandle; in ofdisk_attach()
155 of->sc_unit = oba->oba_unit; in ofdisk_attach()
156 of->sc_ihandle = 0; in ofdisk_attach()
157 disk_init(&of->sc_dk, device_xname(of->sc_dev), &ofdisk_dkdriver); in ofdisk_attach()
158 disk_attach(&of->sc_dk); in ofdisk_attach()
162 of->sc_flags |= OFDF_ISFLOPPY; in ofdisk_attach()
165 dkwedge_discover(&of->sc_dk); in ofdisk_attach()
172 struct ofdisk_softc *of; in ofdisk_open() local
176 of = device_lookup_private(&ofdisk_cd, DISKUNIT(dev)); in ofdisk_open()
177 if (of == NULL) in ofdisk_open()
182 mutex_enter(&of->sc_dk.dk_openlock); in ofdisk_open()
188 if (of->sc_dk.dk_nwedges != 0 && part != RAW_PART) { in ofdisk_open()
193 if (!of->sc_ihandle) { in ofdisk_open()
194 if ((l = OF_package_to_path(of->sc_phandle, path, in ofdisk_open()
211 path[l++] = '0' + of->sc_unit; in ofdisk_open()
217 if ((of->sc_ihandle = OF_open(path)) == -1) { in ofdisk_open()
225 of->max_transfer = OF_call_method_1("max-transfer", in ofdisk_open()
226 of->sc_ihandle, 0); in ofdisk_open()
227 if (of->max_transfer > MAXPHYS) in ofdisk_open()
228 of->max_transfer = MAXPHYS; in ofdisk_open()
235 of->sc_dk.dk_copenmask |= 1 << part; in ofdisk_open()
238 of->sc_dk.dk_bopenmask |= 1 << part; in ofdisk_open()
241 of->sc_dk.dk_openmask = in ofdisk_open()
242 of->sc_dk.dk_copenmask | of->sc_dk.dk_bopenmask; in ofdisk_open()
247 mutex_exit(&of->sc_dk.dk_openlock); in ofdisk_open()
254 struct ofdisk_softc *of = in ofdisk_close() local
257 mutex_enter(&of->sc_dk.dk_openlock); in ofdisk_close()
261 of->sc_dk.dk_copenmask &= ~(1 << DISKPART(dev)); in ofdisk_close()
264 of->sc_dk.dk_bopenmask &= ~(1 << DISKPART(dev)); in ofdisk_close()
267 of->sc_dk.dk_openmask = of->sc_dk.dk_copenmask | of->sc_dk.dk_bopenmask; in ofdisk_close()
273 OF_seek(of->sc_ihandle, 0); in ofdisk_close()
275 if (!of->sc_dk.dk_openmask) { in ofdisk_close()
276 OF_close(of->sc_ihandle); in ofdisk_close()
277 of->sc_ihandle = 0; in ofdisk_close()
280 mutex_exit(&of->sc_dk.dk_openlock); in ofdisk_close()
287 struct ofdisk_softc *of = in ofdisk_strategy() local
303 if (bounds_check_with_label(&of->sc_dk, bp, 0) <= 0) { in ofdisk_strategy()
307 p = &of->sc_dk.dk_label->d_partitions[DISKPART(bp->b_dev)]; in ofdisk_strategy()
311 disk_busy(&of->sc_dk); in ofdisk_strategy()
316 if (OF_seek(of->sc_ihandle, off) < 0) in ofdisk_strategy()
318 read = OF_io(of->sc_ihandle, bp->b_data, bp->b_bcount); in ofdisk_strategy()
327 disk_unbusy(&of->sc_dk, bp->b_bcount - bp->b_resid, in ofdisk_strategy()
337 struct ofdisk_softc *of = in ofminphys() local
340 if (bp->b_bcount > of->max_transfer) in ofminphys()
341 bp->b_bcount = of->max_transfer; in ofminphys()
359 struct ofdisk_softc *of = in ofdisk_ioctl() local
372 if (OFDISK_FLOPPY_P(of)) in ofdisk_ioctl()
376 error = disk_ioctl(&of->sc_dk, dev, cmd, data, flag, l); in ofdisk_ioctl()
402 mutex_enter(&of->sc_dk.dk_openlock); in ofdisk_ioctl()
404 error = setdisklabel(of->sc_dk.dk_label, in ofdisk_ioctl()
406 of->sc_dk.dk_cpulabel); in ofdisk_ioctl()
414 of->sc_dk.dk_label, of->sc_dk.dk_cpulabel); in ofdisk_ioctl()
416 mutex_exit(&of->sc_dk.dk_openlock); in ofdisk_ioctl()
422 ofdisk_getdefaultlabel(of, (struct disklabel *)data); in ofdisk_ioctl()
426 ofdisk_getdefaultlabel(of, &newlabel); in ofdisk_ioctl()
447 struct ofdisk_softc *of; in ofdisk_size() local
451 of = device_lookup_private(&ofdisk_cd, DISKUNIT(dev)); in ofdisk_size()
452 if (of == NULL) in ofdisk_size()
456 omask = of->sc_dk.dk_openmask & (1 << part); in ofdisk_size()
457 lp = of->sc_dk.dk_label; in ofdisk_size()
475 ofdisk_getdefaultlabel(struct ofdisk_softc *of, struct disklabel *lp) in ofdisk_getdefaultlabel() argument
488 of->sc_ihandle, 0); in ofdisk_getdefaultlabel()
510 struct ofdisk_softc *of = in ofdisk_getdisklabel() local
512 struct disklabel *lp = of->sc_dk.dk_label; in ofdisk_getdisklabel()
516 ofdisk_getdefaultlabel(of, lp); in ofdisk_getdisklabel()
525 if (OFDISK_FLOPPY_P(of)) { in ofdisk_getdisklabel()
538 of->sc_dk.dk_cpulabel); in ofdisk_getdisklabel()
540 printf("%s: %s\n", device_xname(of->sc_dev), errmes); in ofdisk_getdisklabel()