lh 67 kern/dev/lamebus/lhd.c uint32_t lhd_rdreg(struct lhd_softc *lh, uint32_t reg)
lh 69 kern/dev/lamebus/lhd.c return bus_read_register(lh->lh_busdata, lh->lh_buspos, reg);
lh 77 kern/dev/lamebus/lhd.c void lhd_wreg(struct lhd_softc *lh, uint32_t reg, uint32_t val)
lh 79 kern/dev/lamebus/lhd.c bus_write_register(lh->lh_busdata, lh->lh_buspos, reg, val);
lh 86 kern/dev/lamebus/lhd.c int lhd_code_to_errno(struct lhd_softc *lh, int code)
lh 93 kern/dev/lamebus/lhd.c kprintf("lhd%d: Unknown result code %d\n", lh->lh_unit, code);
lh 103 kern/dev/lamebus/lhd.c lhd_iodone(struct lhd_softc *lh, int err)
lh 105 kern/dev/lamebus/lhd.c lh->lh_result = err;
lh 106 kern/dev/lamebus/lhd.c V(lh->lh_done);
lh 117 kern/dev/lamebus/lhd.c struct lhd_softc *lh = vlh;
lh 120 kern/dev/lamebus/lhd.c val = lhd_rdreg(lh, LHD_REG_STAT);
lh 129 kern/dev/lamebus/lhd.c lhd_wreg(lh, LHD_REG_STAT, 0);
lh 130 kern/dev/lamebus/lhd.c lhd_iodone(lh, lhd_code_to_errno(lh, val));
lh 190 kern/dev/lamebus/lhd.c lhd_reset(struct lhd_softc *lh)
lh 192 kern/dev/lamebus/lhd.c lhd_wreg(lh, LHD_REG_STAT, 0);
lh 203 kern/dev/lamebus/lhd.c struct lhd_softc *lh = d->d_data;
lh 219 kern/dev/lamebus/lhd.c if (sector+len > lh->lh_dev.d_blocks) {
lh 232 kern/dev/lamebus/lhd.c P(lh->lh_clear);
lh 239 kern/dev/lamebus/lhd.c result = uiomove(lh->lh_buf, LHD_SECTSIZE, uio);
lh 241 kern/dev/lamebus/lhd.c V(lh->lh_clear);
lh 247 kern/dev/lamebus/lhd.c lhd_wreg(lh, LHD_REG_SECT, sector+i);
lh 250 kern/dev/lamebus/lhd.c lhd_wreg(lh, LHD_REG_STAT, statval);
lh 253 kern/dev/lamebus/lhd.c P(lh->lh_done);
lh 256 kern/dev/lamebus/lhd.c result = lh->lh_result;
lh 263 kern/dev/lamebus/lhd.c result = uiomove(lh->lh_buf, LHD_SECTSIZE, uio);
lh 267 kern/dev/lamebus/lhd.c V(lh->lh_clear);
lh 282 kern/dev/lamebus/lhd.c config_lhd(struct lhd_softc *lh, int lhdno)
lh 290 kern/dev/lamebus/lhd.c lh->lh_buf = bus_map_area(lh->lh_busdata, lh->lh_buspos, LHD_BUFFER);
lh 293 kern/dev/lamebus/lhd.c lh->lh_clear = sem_create("lhd-clear", 1);
lh 294 kern/dev/lamebus/lhd.c if (lh->lh_clear == NULL) {
lh 297 kern/dev/lamebus/lhd.c lh->lh_done = sem_create("lhd-done", 0);
lh 298 kern/dev/lamebus/lhd.c if (lh->lh_done == NULL) {
lh 299 kern/dev/lamebus/lhd.c sem_destroy(lh->lh_clear);
lh 300 kern/dev/lamebus/lhd.c lh->lh_clear = NULL;
lh 305 kern/dev/lamebus/lhd.c lh->lh_dev.d_open = lhd_open;
lh 306 kern/dev/lamebus/lhd.c lh->lh_dev.d_close = lhd_close;
lh 307 kern/dev/lamebus/lhd.c lh->lh_dev.d_io = lhd_io;
lh 308 kern/dev/lamebus/lhd.c lh->lh_dev.d_ioctl = lhd_ioctl;
lh 309 kern/dev/lamebus/lhd.c lh->lh_dev.d_blocks = bus_read_register(lh->lh_busdata, lh->lh_buspos,
lh 311 kern/dev/lamebus/lhd.c lh->lh_dev.d_blocksize = LHD_SECTSIZE;
lh 312 kern/dev/lamebus/lhd.c lh->lh_dev.d_data = lh;
lh 315 kern/dev/lamebus/lhd.c return vfs_adddev(name, &lh->lh_dev, 1);
lh 47 kern/dev/lamebus/lhd_att.c struct lhd_softc *lh;
lh 55 kern/dev/lamebus/lhd_att.c lh = kmalloc(sizeof(struct lhd_softc));
lh 56 kern/dev/lamebus/lhd_att.c if (lh==NULL) {
lh 62 kern/dev/lamebus/lhd_att.c lh->lh_busdata = sc;
lh 63 kern/dev/lamebus/lhd_att.c lh->lh_buspos = slot;
lh 64 kern/dev/lamebus/lhd_att.c lh->lh_unit = lhdno;
lh 68 kern/dev/lamebus/lhd_att.c lamebus_attach_interrupt(sc, slot, lh, lhd_irq);
lh 70 kern/dev/lamebus/lhd_att.c return lh;