Changeset 0a6fa9f in mainline for uspace/lib/drv/generic/remote_usbhc.c
- Timestamp:
- 2011-02-10T22:14:38Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1e64b250
- Parents:
- 8bf1eeb
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/drv/generic/remote_usbhc.c
r8bf1eeb r0a6fa9f 98 98 typedef struct { 99 99 ipc_callid_t caller; 100 ipc_callid_t data_caller; 100 101 void *buffer; 101 102 void *setup_packet; … … 127 128 128 129 trans->caller = caller; 130 trans->data_caller = 0; 129 131 trans->buffer = NULL; 130 132 trans->setup_packet = NULL; … … 295 297 296 298 trans->size = actual_size; 297 async_answer_1(trans->caller, USB_OUTCOME_OK, (sysarg_t)trans); 299 300 if (trans->data_caller) { 301 async_data_read_finalize(trans->data_caller, 302 trans->buffer, actual_size); 303 } 304 305 async_answer_0(trans->caller, USB_OUTCOME_OK); 298 306 } 299 307 … … 376 384 }; 377 385 386 ipc_callid_t data_callid; 387 if (!async_data_read_receive(&data_callid, &len)) { 388 async_answer_0(callid, EPARTY); 389 return; 390 } 391 378 392 async_transaction_t *trans = async_transaction_create(callid); 379 393 if (trans == NULL) { … … 381 395 return; 382 396 } 397 trans->data_caller = data_callid; 383 398 trans->buffer = malloc(len); 384 399 trans->size = len; … … 630 645 } 631 646 647 ipc_callid_t data_callid; 648 if (!async_data_read_receive(&data_callid, &data_len)) { 649 async_answer_0(callid, EPARTY); 650 free(setup_packet); 651 return; 652 } 653 632 654 async_transaction_t *trans = async_transaction_create(callid); 633 655 if (trans == NULL) { … … 636 658 return; 637 659 } 660 trans->data_caller = data_callid; 638 661 trans->setup_packet = setup_packet; 639 662 trans->size = data_len;
Note:
See TracChangeset
for help on using the changeset viewer.