Lines Matching refs:sc_transfer
405 } sc_transfer; member
1163 ccb = sc->sc_transfer.ccb; in umass_cancel_ccb()
1164 sc->sc_transfer.ccb = NULL; in umass_cancel_ccb()
1168 (sc->sc_transfer.callback) in umass_cancel_ccb()
1169 (sc, ccb, (sc->sc_transfer.data_len - in umass_cancel_ccb()
1170 sc->sc_transfer.actlen), STATUS_WIRE_FAILED); in umass_cancel_ccb()
1282 union ccb *ccb = sc->sc_transfer.ccb; in umass_t_bbb_command_callback()
1289 (sc, ((sc->sc_transfer.dir == DIR_IN) ? UMASS_T_BBB_DATA_READ : in umass_t_bbb_command_callback()
1290 (sc->sc_transfer.dir == DIR_OUT) ? UMASS_T_BBB_DATA_WRITE : in umass_t_bbb_command_callback()
1317 USETDW(sc->cbw.dCBWDataTransferLength, sc->sc_transfer.data_len); in umass_t_bbb_command_callback()
1328 sc->cbw.bCBWFlags = ((sc->sc_transfer.dir == DIR_IN) ? in umass_t_bbb_command_callback()
1330 sc->cbw.bCBWLUN = sc->sc_transfer.lun; in umass_t_bbb_command_callback()
1332 if (sc->sc_transfer.cmd_len > sizeof(sc->cbw.CBWCDB)) { in umass_t_bbb_command_callback()
1333 sc->sc_transfer.cmd_len = sizeof(sc->cbw.CBWCDB); in umass_t_bbb_command_callback()
1336 sc->cbw.bCDBLength = sc->sc_transfer.cmd_len; in umass_t_bbb_command_callback()
1339 memcpy(sc->cbw.CBWCDB, sc->sc_transfer.cmd_data, in umass_t_bbb_command_callback()
1340 sc->sc_transfer.cmd_len); in umass_t_bbb_command_callback()
1344 sc->sc_transfer.cmd_len, 0, in umass_t_bbb_command_callback()
1346 sc->sc_transfer.cmd_len); in umass_t_bbb_command_callback()
1375 sc->sc_transfer.data_rem -= actlen; in umass_t_bbb_data_read_callback()
1376 sc->sc_transfer.data_ptr += actlen; in umass_t_bbb_data_read_callback()
1377 sc->sc_transfer.actlen += actlen; in umass_t_bbb_data_read_callback()
1381 sc->sc_transfer.data_rem = 0; in umass_t_bbb_data_read_callback()
1385 max_bulk, sc->sc_transfer.data_rem); in umass_t_bbb_data_read_callback()
1387 if (sc->sc_transfer.data_rem == 0) { in umass_t_bbb_data_read_callback()
1391 if (max_bulk > sc->sc_transfer.data_rem) { in umass_t_bbb_data_read_callback()
1392 max_bulk = sc->sc_transfer.data_rem; in umass_t_bbb_data_read_callback()
1394 usbd_xfer_set_timeout(xfer, sc->sc_transfer.data_timeout); in umass_t_bbb_data_read_callback()
1396 usbd_xfer_set_frame_data(xfer, 0, sc->sc_transfer.data_ptr, in umass_t_bbb_data_read_callback()
1430 sc->sc_transfer.data_rem -= actlen; in umass_t_bbb_data_write_callback()
1431 sc->sc_transfer.data_ptr += actlen; in umass_t_bbb_data_write_callback()
1432 sc->sc_transfer.actlen += actlen; in umass_t_bbb_data_write_callback()
1436 sc->sc_transfer.data_rem = 0; in umass_t_bbb_data_write_callback()
1440 max_bulk, sc->sc_transfer.data_rem); in umass_t_bbb_data_write_callback()
1442 if (sc->sc_transfer.data_rem == 0) { in umass_t_bbb_data_write_callback()
1446 if (max_bulk > sc->sc_transfer.data_rem) { in umass_t_bbb_data_write_callback()
1447 max_bulk = sc->sc_transfer.data_rem; in umass_t_bbb_data_write_callback()
1449 usbd_xfer_set_timeout(xfer, sc->sc_transfer.data_timeout); in umass_t_bbb_data_write_callback()
1451 usbd_xfer_set_frame_data(xfer, 0, sc->sc_transfer.data_ptr, in umass_t_bbb_data_write_callback()
1478 union ccb *ccb = sc->sc_transfer.ccb; in umass_t_bbb_status_callback()
1506 residue = (sc->sc_transfer.data_len - in umass_t_bbb_status_callback()
1507 sc->sc_transfer.actlen); in umass_t_bbb_status_callback()
1509 if (residue > sc->sc_transfer.data_len) { in umass_t_bbb_status_callback()
1511 "to %d bytes\n", residue, sc->sc_transfer.data_len); in umass_t_bbb_status_callback()
1512 residue = sc->sc_transfer.data_len; in umass_t_bbb_status_callback()
1546 } else if (sc->sc_transfer.actlen > sc->sc_transfer.data_len) { in umass_t_bbb_status_callback()
1548 sc->sc_transfer.actlen, sc->sc_transfer.data_len); in umass_t_bbb_status_callback()
1554 sc->sc_transfer.ccb = NULL; in umass_t_bbb_status_callback()
1558 (sc->sc_transfer.callback) in umass_t_bbb_status_callback()
1561 sc->sc_transfer.ccb = NULL; in umass_t_bbb_status_callback()
1565 (sc->sc_transfer.callback) in umass_t_bbb_status_callback()
1597 sc->sc_transfer.lun = ccb->ccb_h.target_lun; in umass_command_start()
1605 sc->sc_transfer.dir = data_len ? dir : DIR_NONE; in umass_command_start()
1606 sc->sc_transfer.data_ptr = data_ptr; in umass_command_start()
1607 sc->sc_transfer.data_len = data_len; in umass_command_start()
1608 sc->sc_transfer.data_rem = data_len; in umass_command_start()
1609 sc->sc_transfer.data_timeout = (data_timeout + UMASS_TIMEOUT); in umass_command_start()
1611 sc->sc_transfer.actlen = 0; in umass_command_start()
1612 sc->sc_transfer.callback = callback; in umass_command_start()
1613 sc->sc_transfer.ccb = ccb; in umass_command_start()
1658 union ccb *ccb = sc->sc_transfer.ccb; in umass_cbi_start_status()
1660 sc->sc_transfer.ccb = NULL; in umass_cbi_start_status()
1664 (sc->sc_transfer.callback) in umass_cbi_start_status()
1665 (sc, ccb, (sc->sc_transfer.data_len - in umass_cbi_start_status()
1666 sc->sc_transfer.actlen), STATUS_CMD_UNKNOWN); in umass_cbi_start_status()
1799 union ccb *ccb = sc->sc_transfer.ccb; in umass_t_cbi_command_callback()
1806 if (sc->sc_transfer.dir == DIR_NONE) { in umass_t_cbi_command_callback()
1810 (sc, (sc->sc_transfer.dir == DIR_IN) ? in umass_t_cbi_command_callback()
1830 req.wLength[0] = sc->sc_transfer.cmd_len; in umass_t_cbi_command_callback()
1836 usbd_copy_in(pc, 0, sc->sc_transfer.cmd_data, in umass_t_cbi_command_callback()
1837 sc->sc_transfer.cmd_len); in umass_t_cbi_command_callback()
1840 usbd_xfer_set_frame_len(xfer, 1, sc->sc_transfer.cmd_len); in umass_t_cbi_command_callback()
1842 sc->sc_transfer.cmd_len ? 2 : 1); in umass_t_cbi_command_callback()
1846 sc->sc_transfer.cmd_data, in umass_t_cbi_command_callback()
1847 sc->sc_transfer.cmd_len)); in umass_t_cbi_command_callback()
1861 (sc->sc_transfer.callback == &umass_cam_cb)) { in umass_t_cbi_command_callback()
1862 sc->sc_transfer.ccb = NULL; in umass_t_cbi_command_callback()
1863 (sc->sc_transfer.callback) in umass_t_cbi_command_callback()
1864 (sc, ccb, sc->sc_transfer.data_len, in umass_t_cbi_command_callback()
1886 sc->sc_transfer.data_rem -= actlen; in umass_t_cbi_data_read_callback()
1887 sc->sc_transfer.data_ptr += actlen; in umass_t_cbi_data_read_callback()
1888 sc->sc_transfer.actlen += actlen; in umass_t_cbi_data_read_callback()
1892 sc->sc_transfer.data_rem = 0; in umass_t_cbi_data_read_callback()
1896 max_bulk, sc->sc_transfer.data_rem); in umass_t_cbi_data_read_callback()
1898 if (sc->sc_transfer.data_rem == 0) { in umass_t_cbi_data_read_callback()
1902 if (max_bulk > sc->sc_transfer.data_rem) { in umass_t_cbi_data_read_callback()
1903 max_bulk = sc->sc_transfer.data_rem; in umass_t_cbi_data_read_callback()
1905 usbd_xfer_set_timeout(xfer, sc->sc_transfer.data_timeout); in umass_t_cbi_data_read_callback()
1907 usbd_xfer_set_frame_data(xfer, 0, sc->sc_transfer.data_ptr, in umass_t_cbi_data_read_callback()
1915 (sc->sc_transfer.callback != &umass_cam_cb)) { in umass_t_cbi_data_read_callback()
1942 sc->sc_transfer.data_rem -= actlen; in umass_t_cbi_data_write_callback()
1943 sc->sc_transfer.data_ptr += actlen; in umass_t_cbi_data_write_callback()
1944 sc->sc_transfer.actlen += actlen; in umass_t_cbi_data_write_callback()
1948 sc->sc_transfer.data_rem = 0; in umass_t_cbi_data_write_callback()
1952 max_bulk, sc->sc_transfer.data_rem); in umass_t_cbi_data_write_callback()
1954 if (sc->sc_transfer.data_rem == 0) { in umass_t_cbi_data_write_callback()
1958 if (max_bulk > sc->sc_transfer.data_rem) { in umass_t_cbi_data_write_callback()
1959 max_bulk = sc->sc_transfer.data_rem; in umass_t_cbi_data_write_callback()
1961 usbd_xfer_set_timeout(xfer, sc->sc_transfer.data_timeout); in umass_t_cbi_data_write_callback()
1963 usbd_xfer_set_frame_data(xfer, 0, sc->sc_transfer.data_ptr, in umass_t_cbi_data_write_callback()
1971 (sc->sc_transfer.callback != &umass_cam_cb)) { in umass_t_cbi_data_write_callback()
1991 union ccb *ccb = sc->sc_transfer.ccb; in umass_t_cbi_status_callback()
2008 residue = (sc->sc_transfer.data_len - in umass_t_cbi_status_callback()
2009 sc->sc_transfer.actlen); in umass_t_cbi_status_callback()
2027 sc->sc_transfer.cmd_data[0] == REQUEST_SENSE) in umass_t_cbi_status_callback()
2032 sc->sc_transfer.ccb = NULL; in umass_t_cbi_status_callback()
2036 (sc->sc_transfer.callback) in umass_t_cbi_status_callback()
2055 sc->sc_transfer.ccb = NULL; in umass_t_cbi_status_callback()
2059 (sc->sc_transfer.callback) in umass_t_cbi_status_callback()
2207 if (sc->sc_transfer.ccb) { in umass_cam_action()
2246 if (sc->sc_transfer.cmd_data[0] == INQUIRY) { in umass_cam_action()
2255 if ((sc->sc_transfer.cmd_data[1] & SI_EVPD) && in umass_cam_action()
2256 (sc->sc_transfer.cmd_data[2] == SVPD_UNIT_SERIAL_NUMBER) && in umass_cam_action()
2276 (sc->sc_transfer.cmd_data[1] & SI_EVPD)) { in umass_cam_action()
2295 } else if (sc->sc_transfer.cmd_data[0] == PREVENT_ALLOW) { in umass_cam_action()
2302 } else if (sc->sc_transfer.cmd_data[0] == SYNCHRONIZE_CACHE) { in umass_cam_action()
2307 } else if (sc->sc_transfer.cmd_data[0] == START_STOP_UNIT) { in umass_cam_action()
2516 sc->sc_transfer.cmd_data[0] == INQUIRY && in umass_cam_cb()
2517 (sc->sc_transfer.cmd_data[1] & SI_EVPD) && in umass_cam_cb()
2518 sc->sc_transfer.cmd_data[2] == SVPD_SUPPORTED_PAGE_LIST && in umass_cam_cb()
2691 sc->sc_transfer.cmd_len = cmd_len; in umass_scsi_transform()
2720 memset(sc->sc_transfer.cmd_data + cmd_len, in umass_rbc_transform()
2724 sc->sc_transfer.cmd_len = cmd_len; in umass_rbc_transform()
2740 sc->sc_transfer.cmd_len = UFI_COMMAND_LENGTH; in umass_ufi_transform()
2794 sc->sc_transfer.cmd_len = ATAPI_COMMAND_LENGTH; in umass_atapi_transform()
2862 if (cmd_len == 0 || cmd_len > sizeof(sc->sc_transfer.cmd_data)) { in umass_std_transform()
2873 memset(sc->sc_transfer.cmd_data, 0, sizeof(sc->sc_transfer.cmd_data)); in umass_std_transform()
2874 memcpy(sc->sc_transfer.cmd_data, cmd, cmd_len); in umass_std_transform()
2884 memset(sc->sc_transfer.cmd_data, 0, cmd_len); in umass_std_transform()
2885 sc->sc_transfer.cmd_data[0] = START_STOP_UNIT; in umass_std_transform()
2886 sc->sc_transfer.cmd_data[4] = SSS_START; in umass_std_transform()
2896 sc->sc_transfer.cmd_data[4] = SHORT_INQUIRY_LENGTH; in umass_std_transform()
2949 uint8_t dir = sc->sc_transfer.dir; in umass_cbi_dump_cmd()
2956 sc->sc_transfer.data_len, in umass_cbi_dump_cmd()