Changeset e765ccb in mainline for uspace/lib/usbhid/src/hidiface.c
- Timestamp:
- 2011-05-20T10:44:53Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e7079cf
- Parents:
- d1fb591
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbhid/src/hidiface.c
rd1fb591 re765ccb 46 46 * @return Number of usages returned or negative error code. 47 47 */ 48 int usbhid_dev_get_event_length(int dev_phone )48 int usbhid_dev_get_event_length(int dev_phone, size_t *size) 49 49 { 50 50 if (dev_phone < 0) { … … 56 56 IPC_M_USBHID_GET_EVENT_LENGTH, &len); 57 57 if (rc == EOK) { 58 return (int) len; 59 } else { 60 return rc; 58 *size = (size_t) len; 61 59 } 60 61 return rc; 62 62 } 63 63 … … 74 74 * @return Error code. 75 75 */ 76 int usbhid_dev_get_event(int dev_phone, uint16_t *usage_pages, uint16_t *usages,77 size_t usage_count, size_t *actual_usage_count, unsigned int flags)76 int usbhid_dev_get_event(int dev_phone, int32_t *buf, 77 size_t size, size_t *actual_size, unsigned int flags) 78 78 { 79 79 if (dev_phone < 0) { 80 80 return EINVAL; 81 81 } 82 if (( usage_pages == NULL) || (usages== NULL)) {82 if ((buf == NULL)) { 83 83 return ENOMEM; 84 84 } 85 if ( usage_count== 0) {85 if (size == 0) { 86 86 return EINVAL; 87 87 } 88 88 89 size_t buffer_size = sizeof(uint16_t) * usage_count * 2;89 size_t buffer_size = size; 90 90 uint16_t *buffer = malloc(buffer_size); 91 91 if (buffer == NULL) { … … 128 128 } 129 129 130 size_t actual_size = IPC_GET_ARG2(data_request_call); 131 size_t items = actual_size / 2; 130 size_t act_size = IPC_GET_ARG2(data_request_call); 132 131 133 132 /* Copy the individual items. */ 134 memcpy( usage_pages, buffer, items * sizeof(uint16_t));135 memcpy(usages, buffer + items, items * sizeof(uint16_t));133 memcpy(buf, buffer, act_size); 134 // memcpy(usages, buffer + items, items * sizeof(int32_t)); 136 135 137 if (actual_ usage_count!= NULL) {138 *actual_ usage_count = items;136 if (actual_size != NULL) { 137 *actual_size = act_size; 139 138 } 140 139
Note:
See TracChangeset
for help on using the changeset viewer.