Home | History | Annotate | Download | only in mca

Lines Matching defs:ed

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