Changeset 228f251 in mainline
- Timestamp:
- 2011-02-18T20:06:27Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- b36e5de2
- Parents:
- 867e6735
- Location:
- uspace/lib
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/drv/generic/remote_usbhc.c
r867e6735 r228f251 297 297 } 298 298 299 size_t expected_len= DEV_IPC_GET_ARG3(*call);299 size_t max_packet_size = DEV_IPC_GET_ARG3(*call); 300 300 usb_target_t target = { 301 301 .address = DEV_IPC_GET_ARG1(*call), … … 305 305 size_t len = 0; 306 306 void *buffer = NULL; 307 if (expected_len > 0) { 308 int rc = async_data_write_accept(&buffer, false, 309 1, USB_MAX_PAYLOAD_SIZE, 310 0, &len); 311 312 if (rc != EOK) { 313 async_answer_0(callid, rc); 314 return; 315 } 307 308 int rc = async_data_write_accept(&buffer, false, 309 1, USB_MAX_PAYLOAD_SIZE, 310 0, &len); 311 312 if (rc != EOK) { 313 async_answer_0(callid, rc); 314 return; 316 315 } 317 316 … … 328 327 trans->size = len; 329 328 330 int rc = transfer_func(device, target, HACK_MAX_PACKET_SIZE,329 rc = transfer_func(device, target, max_packet_size, 331 330 buffer, len, 332 331 callback_out, trans); … … 354 353 } 355 354 356 size_t len= DEV_IPC_GET_ARG3(*call);355 size_t max_packet_size = DEV_IPC_GET_ARG3(*call); 357 356 usb_target_t target = { 358 357 .address = DEV_IPC_GET_ARG1(*call), … … 360 359 }; 361 360 361 size_t len; 362 362 ipc_callid_t data_callid; 363 363 if (!async_data_read_receive(&data_callid, &len)) { … … 375 375 trans->size = len; 376 376 377 int rc = transfer_func(device, target, HACK_MAX_PACKET_SIZE_INTERRUPT_IN,377 int rc = transfer_func(device, target, max_packet_size, 378 378 trans->buffer, len, 379 379 callback_in, trans); … … 549 549 }; 550 550 size_t data_buffer_len = DEV_IPC_GET_ARG3(*call); 551 size_t max_packet_size = DEV_IPC_GET_ARG4(*call); 551 552 552 553 int rc; … … 584 585 trans->size = data_buffer_len; 585 586 586 rc = usb_iface->control_write(device, target, HACK_MAX_PACKET_SIZE,587 rc = usb_iface->control_write(device, target, max_packet_size, 587 588 setup_packet, setup_packet_len, 588 589 data_buffer, data_buffer_len, … … 611 612 .endpoint = DEV_IPC_GET_ARG2(*call) 612 613 }; 614 size_t max_packet_size = DEV_IPC_GET_ARG3(*call); 613 615 614 616 int rc; … … 648 650 } 649 651 650 rc = usb_iface->control_read(device, target, HACK_MAX_PACKET_SIZE,652 rc = usb_iface->control_read(device, target, max_packet_size, 651 653 setup_packet, setup_packet_len, 652 654 trans->buffer, trans->size, -
uspace/lib/drv/include/usbhc_iface.h
r867e6735 r228f251 53 53 * - argument #1 is target address 54 54 * - argument #2 is target endpoint 55 * - argument #3 is buffer size55 * - argument #3 is max packet size of the endpoint 56 56 * - this call is immediately followed by IPC data write (from caller) 57 57 * - the initial call (and the whole transaction) is answer after the … … 66 66 * - argument #1 is target address 67 67 * - argument #2 is target endpoint 68 * - argument #3 is buffer size68 * - argument #3 is max packet size of the endpoint 69 69 * - this call is immediately followed by IPC data read (async version) 70 70 * - the call is not answered until the device returns some data (or until … … 194 194 IPC_M_USBHC_CONTROL_WRITE, 195 195 196 /** Issue control WRITEtransfer.196 /** Issue control READ transfer. 197 197 * See explanation at usb_iface_funcs_t (IN transaction) for 198 198 * call parameters. 199 * This call is immediately followed by IPC data read from the caller 200 * (setup packet). 201 * Actual data are retrieved through IPC_M_USBHC_GET_BUFFER. 199 * This call is immediately followed by IPC data write from the caller 200 * (setup packet) and IPC data read (buffer that was read). 202 201 */ 203 202 IPC_M_USBHC_CONTROL_READ, -
uspace/lib/usb/src/pipesio.c
r867e6735 r228f251 78 78 * Make call identifying target USB device and type of transfer. 79 79 */ 80 aid_t opening_request = async_send_ 3(pipe->hc_phone,80 aid_t opening_request = async_send_4(pipe->hc_phone, 81 81 DEV_IFACE_ID(USBHC_DEV_IFACE), ipc_method, 82 82 pipe->wire->address, pipe->endpoint_no, 83 pipe->max_packet_size, 83 84 NULL); 84 85 if (opening_request == 0) { … … 201 202 * Make call identifying target USB device and type of transfer. 202 203 */ 203 aid_t opening_request = async_send_ 3(pipe->hc_phone,204 aid_t opening_request = async_send_4(pipe->hc_phone, 204 205 DEV_IFACE_ID(USBHC_DEV_IFACE), ipc_method, 205 206 pipe->wire->address, pipe->endpoint_no, 207 pipe->max_packet_size, 206 208 NULL); 207 209 if (opening_request == 0) { … … 283 285 * Make call identifying target USB device and control transfer type. 284 286 */ 285 aid_t opening_request = async_send_ 3(pipe->hc_phone,287 aid_t opening_request = async_send_4(pipe->hc_phone, 286 288 DEV_IFACE_ID(USBHC_DEV_IFACE), IPC_M_USBHC_CONTROL_READ, 287 289 pipe->wire->address, pipe->endpoint_no, 290 pipe->max_packet_size, 288 291 NULL); 289 292 if (opening_request == 0) { … … 402 405 * Make call identifying target USB device and control transfer type. 403 406 */ 404 aid_t opening_request = async_send_ 4(pipe->hc_phone,407 aid_t opening_request = async_send_5(pipe->hc_phone, 405 408 DEV_IFACE_ID(USBHC_DEV_IFACE), IPC_M_USBHC_CONTROL_WRITE, 406 409 pipe->wire->address, pipe->endpoint_no, 407 410 data_buffer_size, 411 pipe->max_packet_size, 408 412 NULL); 409 413 if (opening_request == 0) {
Note:
See TracChangeset
for help on using the changeset viewer.