Lines Matching refs:ed

153 	struct ed_softc *ed = device_private(self);  in ed_mca_attach()  local
159 ed->sc_dev = self; in ed_mca_attach()
160 ed->edc_softc = sc; in ed_mca_attach()
161 ed->sc_devno = eda->edc_drive; in ed_mca_attach()
162 edc_add_disk(sc, ed); in ed_mca_attach()
164 bufq_alloc(&ed->sc_q, "disksort", BUFQ_SORT_RAWBLOCK); in ed_mca_attach()
165 mutex_init(&ed->sc_q_lock, MUTEX_DEFAULT, IPL_VM); in ed_mca_attach()
167 if (ed_get_params(ed, &drv_flags)) { in ed_mca_attach()
173 (u_int64_t) ed->sc_capacity * DEV_BSIZE); in ed_mca_attach()
176 ed->cyl, ed->heads, ed->sectors, in ed_mca_attach()
177 ed->sc_capacity); in ed_mca_attach()
180 device_xname(ed->sc_dev), ed->spares, in ed_mca_attach()
190 disk_init(&ed->sc_dk, device_xname(ed->sc_dev), &eddkdriver); in ed_mca_attach()
191 disk_attach(&ed->sc_dk); in ed_mca_attach()
192 rnd_attach_source(&ed->rnd_source, device_xname(ed->sc_dev), in ed_mca_attach()
195 ed->sc_flags |= EDF_INIT; in ed_mca_attach()
211 struct ed_softc *ed; in edmcastrategy() local
215 ed = device_lookup_private(&ed_cd, DISKUNIT(bp->b_dev)); in edmcastrategy()
216 lp = ed->sc_dk.dk_label; in edmcastrategy()
218 ATADEBUG_PRINT(("edmcastrategy (%s)\n", device_xname(ed->sc_dev)), in edmcastrategy()
230 if ((ed->sc_flags & WDF_LOADED) == 0) { in edmcastrategy()
244 bounds_check_with_label(&ed->sc_dk, bp, in edmcastrategy()
245 (ed->sc_flags & (WDF_WLABEL|WDF_LABELLING)) != 0) <= 0) in edmcastrategy()
263 mutex_enter(&ed->sc_q_lock); in edmcastrategy()
264 bufq_put(ed->sc_q, bp); in edmcastrategy()
265 mutex_exit(&ed->sc_q_lock); in edmcastrategy()
268 wakeup(ed->edc_softc); in edmcastrategy()
403 edgetdefaultlabel(struct ed_softc *ed, struct disklabel *lp) in edgetdefaultlabel() argument
409 lp->d_ntracks = ed->heads; in edgetdefaultlabel()
410 lp->d_nsectors = ed->sectors; in edgetdefaultlabel()
411 lp->d_ncylinders = ed->cyl; in edgetdefaultlabel()
418 lp->d_secperunit = ed->sc_capacity; in edgetdefaultlabel()
438 edgetdisklabel(dev_t dev, struct ed_softc *ed) in edgetdisklabel() argument
440 struct disklabel *lp = ed->sc_dk.dk_label; in edgetdisklabel()
445 memset(ed->sc_dk.dk_cpulabel, 0, sizeof(struct cpu_disklabel)); in edgetdisklabel()
447 edgetdefaultlabel(ed, lp); in edgetdisklabel()
450 EDLABELDEV(dev), edmcastrategy, lp, ed->sc_dk.dk_cpulabel); in edgetdisklabel()
463 edmcastrategy, lp, ed->sc_dk.dk_cpulabel); in edgetdisklabel()
466 printf("%s: %s\n", device_xname(ed->sc_dev), errstring); in edgetdisklabel()
474 struct ed_softc *ed = device_lookup_private(&ed_cd, DISKUNIT(dev)); in edmcaioctl() local
479 if ((ed->sc_flags & WDF_LOADED) == 0) in edmcaioctl()
482 error = disk_ioctl(&ed->sc_dk, dev, xfer, addr, flag, l); in edmcaioctl()
497 mutex_enter(&ed->sc_dk.dk_openlock); in edmcaioctl()
498 ed->sc_flags |= WDF_LABELLING; in edmcaioctl()
500 error = setdisklabel(ed->sc_dk.dk_label, in edmcaioctl()
502 ed->sc_dk.dk_cpulabel); in edmcaioctl()
510 edmcastrategy, ed->sc_dk.dk_label, in edmcaioctl()
511 ed->sc_dk.dk_cpulabel); in edmcaioctl()
514 ed->sc_flags &= ~WDF_LABELLING; in edmcaioctl()
515 mutex_exit(&ed->sc_dk.dk_openlock); in edmcaioctl()
521 ed->sc_flags |= WDF_KLABEL; in edmcaioctl()
523 ed->sc_flags &= ~WDF_KLABEL; in edmcaioctl()
530 ed->sc_flags |= WDF_WLABEL; in edmcaioctl()
532 ed->sc_flags &= ~WDF_WLABEL; in edmcaioctl()
536 edgetdefaultlabel(ed, (struct disklabel *)addr); in edmcaioctl()
615 struct ed_softc *ed; /* disk unit to do the I/O */ in edmcadump() local
626 ed = device_lookup_private(&ed_cd, DISKUNIT(dev)); in edmcadump()
627 if (ed == NULL) in edmcadump()
633 if ((ed->sc_flags & EDF_INIT) == 0) in edmcadump()
637 lp = ed->sc_dk.dk_label; in edmcadump()
660 error = edc_bio(ed->edc_softc, ed, va, blkno, in edmcadump()
676 ed_get_params(struct ed_softc *ed, int *drv_flags) in ed_get_params() argument
685 if (edc_run_cmd(ed->edc_softc, CMD_GET_DEV_CONF, ed->sc_devno, in ed_get_params()
689 ed->spares = ed->sense_data[1] >> 8; in ed_get_params()
691 *drv_flags = ed->sense_data[1] & 0x1f; in ed_get_params()
692 ed->rba = ed->sense_data[2] | (ed->sense_data[3] << 16); in ed_get_params()
701 ed->sectors = 32; in ed_get_params()
702 ed->heads = 64; in ed_get_params()
703 ed->cyl = ed->rba / (ed->heads * ed->sectors); in ed_get_params()
704 ed->sc_capacity = ed->rba; in ed_get_params()