Changeset d7c72db in mainline for uspace/drv/usbhid/generic/hiddev.c
- Timestamp:
- 2011-05-24T21:01:02Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a28b41d
- Parents:
- 4e78236
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/usbhid/generic/hiddev.c
r4e78236 rd7c72db 62 62 static size_t usb_generic_hid_get_event_length(ddf_fun_t *fun); 63 63 64 static int usb_generic_hid_get_event(ddf_fun_t *fun, int32_t *buffer,64 static int usb_generic_hid_get_event(ddf_fun_t *fun, uint8_t *buffer, 65 65 size_t size, size_t *act_size, unsigned int flags); 66 66 67 67 static int usb_generic_hid_client_connected(ddf_fun_t *fun); 68 69 static size_t usb_generic_get_report_descriptor_length(ddf_fun_t *fun); 70 71 static int usb_generic_get_report_descriptor(ddf_fun_t *fun, uint8_t *desc, 72 size_t size, size_t *actual_size); 68 73 69 74 /*----------------------------------------------------------------------------*/ … … 71 76 static usbhid_iface_t usb_generic_iface = { 72 77 .get_event = usb_generic_hid_get_event, 73 .get_event_length = usb_generic_hid_get_event_length 78 .get_event_length = usb_generic_hid_get_event_length, 79 .get_report_descriptor_length = usb_generic_get_report_descriptor_length, 80 .get_report_descriptor = usb_generic_get_report_descriptor 74 81 }; 75 82 … … 100 107 /*----------------------------------------------------------------------------*/ 101 108 102 static int usb_generic_hid_get_event(ddf_fun_t *fun, int32_t *buffer,109 static int usb_generic_hid_get_event(ddf_fun_t *fun, uint8_t *buffer, 103 110 size_t size, size_t *act_size, unsigned int flags) 104 111 { … … 129 136 // note that we already received this report 130 137 // report_received = true; 138 139 return EOK; 140 } 141 142 /*----------------------------------------------------------------------------*/ 143 144 static size_t usb_generic_get_report_descriptor_length(ddf_fun_t *fun) 145 { 146 usb_log_debug("Generic HID: Get report descriptor length.\n"); 147 148 if (fun == NULL || fun->driver_data == NULL) { 149 usb_log_debug("No function"); 150 return EINVAL; 151 } 152 153 usb_hid_dev_t *hid_dev = (usb_hid_dev_t *)fun->driver_data; 154 155 return hid_dev->report_desc_size; 156 } 157 158 /*----------------------------------------------------------------------------*/ 159 160 static int usb_generic_get_report_descriptor(ddf_fun_t *fun, uint8_t *desc, 161 size_t size, size_t *actual_size) 162 { 163 usb_log_debug("Generic HID: Get report descriptor.\n"); 164 165 if (fun == NULL || fun->driver_data == NULL) { 166 usb_log_debug("No function"); 167 return EINVAL; 168 } 169 170 usb_hid_dev_t *hid_dev = (usb_hid_dev_t *)fun->driver_data; 171 172 if (hid_dev->report_desc_size > size) { 173 return EINVAL; // TODO: other error code 174 } 175 176 memcpy(desc, hid_dev->report_desc, hid_dev->report_desc_size); 177 *actual_size = hid_dev->report_desc_size; 131 178 132 179 return EOK;
Note:
See TracChangeset
for help on using the changeset viewer.