Lines Matching defs:ucmd

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