Lines Matching refs:ucmd

173                                      gdt_ucmd_t *ucmd);
691 gdt_ucmd_t *ucmd; in gdt_next() local
721 ucmd = TAILQ_FIRST(&gdt->sc_ucmd_queue); in gdt_next()
722 if (ucmd != NULL) { in gdt_next()
723 TAILQ_REMOVE(&gdt->sc_ucmd_queue, ucmd, links); in gdt_next()
724 if ((gccb = gdt_ioctl_cmd(gdt, ucmd)) == NULL) { in gdt_next()
725 TAILQ_INSERT_HEAD(&gdt->sc_ucmd_queue, ucmd, links); in gdt_next()
934 gdt_ioctl_cmd(struct gdt_softc *gdt, gdt_ucmd_t *ucmd) in gdt_ioctl_cmd() argument
939 GDT_DPRINTF(GDT_D_DEBUG, ("gdt_ioctl_cmd(%p, %p)\n", gdt, ucmd)); in gdt_ioctl_cmd()
948 gccb->gc_ucmd = ucmd; in gdt_ioctl_cmd()
949 gccb->gc_service = ucmd->service; in gdt_ioctl_cmd()
953 if (ucmd->service == GDT_CACHESERVICE) { in gdt_ioctl_cmd()
954 if (ucmd->OpCode == GDT_IOCTL) { in gdt_ioctl_cmd()
957 cnt = ucmd->u.ioctl.param_size; in gdt_ioctl_cmd()
967 cnt = ucmd->u.cache.BlockCnt * GDT_SECTOR_SIZE; in gdt_ioctl_cmd()
978 cnt = ucmd->u.raw.sdlen; in gdt_ioctl_cmd()
979 if (cnt + ucmd->u.raw.sense_len > GDT_SCRATCH_SZ) { in gdt_ioctl_cmd()
981 GDT_SCRATCH_SZ, cnt + ucmd->u.raw.sense_len); in gdt_ioctl_cmd()
987 bcopy(ucmd->data, gccb->gc_scratch, cnt); in gdt_ioctl_cmd()
1004 ucmd->OpCode); in gdt_ioctl_cmd()
1006 if (ucmd->service == GDT_CACHESERVICE) { in gdt_ioctl_cmd()
1007 if (ucmd->OpCode == GDT_IOCTL) { in gdt_ioctl_cmd()
1010 ucmd->u.ioctl.param_size); in gdt_ioctl_cmd()
1012 ucmd->u.ioctl.subfunc); in gdt_ioctl_cmd()
1014 ucmd->u.ioctl.channel); in gdt_ioctl_cmd()
1020 ucmd->u.cache.DeviceNo); in gdt_ioctl_cmd()
1022 ucmd->u.cache.BlockNo); in gdt_ioctl_cmd()
1024 ucmd->u.cache.BlockCnt); in gdt_ioctl_cmd()
1032 GDT_SG_LEN, ucmd->u.cache.BlockCnt * GDT_SECTOR_SIZE); in gdt_ioctl_cmd()
1037 ucmd->u.raw.direction); in gdt_ioctl_cmd()
1041 ucmd->u.raw.sdlen); in gdt_ioctl_cmd()
1043 ucmd->u.raw.clen); in gdt_ioctl_cmd()
1044 bcopy(ucmd->u.raw.cmd, gccb->gc_cmd + GDT_CMD_UNION + GDT_RAW_CMD, in gdt_ioctl_cmd()
1047 ucmd->u.raw.target; in gdt_ioctl_cmd()
1049 ucmd->u.raw.lun; in gdt_ioctl_cmd()
1051 ucmd->u.raw.bus; in gdt_ioctl_cmd()
1053 ucmd->u.raw.sense_len); in gdt_ioctl_cmd()
1055 gccb->gc_scratch_busbase + ucmd->u.raw.sdlen); in gdt_ioctl_cmd()
1061 GDT_SG_LEN, ucmd->u.raw.sdlen); in gdt_ioctl_cmd()
1415 gdt_ucmd_t *ucmd; in iir_shutdown() local
1425 ucmd = malloc(sizeof(gdt_ucmd_t), M_GDTBUF, M_NOWAIT); in iir_shutdown()
1426 if (ucmd == NULL) { in iir_shutdown()
1432 bzero(ucmd, sizeof(gdt_ucmd_t)); in iir_shutdown()
1443 ucmd->service = GDT_CACHESERVICE; in iir_shutdown()
1444 ucmd->OpCode = GDT_FLUSH; in iir_shutdown()
1445 ucmd->u.cache.DeviceNo = i; in iir_shutdown()
1446 TAILQ_INSERT_TAIL(&gdt->sc_ucmd_queue, ucmd, links); in iir_shutdown()
1447 ucmd->complete_flag = FALSE; in iir_shutdown()
1449 if (!ucmd->complete_flag) in iir_shutdown()
1450 mtx_sleep(ucmd, &gdt->sc_lock, PCATCH | PRIBIO, "iirshw", in iir_shutdown()
1456 free(ucmd, M_DEVBUF); in iir_shutdown()
1475 gdt_ucmd_t *ucmd; in iir_intr_locked() local
1532 ucmd = gccb->gc_ucmd; in iir_intr_locked()
1536 TAILQ_INSERT_HEAD(&gdt->sc_ucmd_queue, ucmd, links); in iir_intr_locked()
1538 ucmd->status = gdt->sc_status; in iir_intr_locked()
1539 ucmd->info = gdt->sc_info; in iir_intr_locked()
1540 ucmd->complete_flag = TRUE; in iir_intr_locked()
1541 if (ucmd->service == GDT_CACHESERVICE) { in iir_intr_locked()
1542 if (ucmd->OpCode == GDT_IOCTL) { in iir_intr_locked()
1543 cnt = ucmd->u.ioctl.param_size; in iir_intr_locked()
1545 bcopy(gccb->gc_scratch, ucmd->data, cnt); in iir_intr_locked()
1547 cnt = ucmd->u.cache.BlockCnt * GDT_SECTOR_SIZE; in iir_intr_locked()
1549 bcopy(gccb->gc_scratch, ucmd->data, cnt); in iir_intr_locked()
1552 cnt = ucmd->u.raw.sdlen; in iir_intr_locked()
1554 bcopy(gccb->gc_scratch, ucmd->data, cnt); in iir_intr_locked()
1555 if (ucmd->u.raw.sense_len != 0) in iir_intr_locked()
1556 bcopy(gccb->gc_scratch, ucmd->data, cnt); in iir_intr_locked()
1560 wakeup(ucmd); in iir_intr_locked()