Changes in uspace/lib/usbvirt/src/stdreq.c [d2e66bf:9d58539] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbvirt/src/stdreq.c
rd2e66bf r9d58539 51 51 void usbvirt_control_reply_helper(const usb_device_request_setup_packet_t *setup_packet, 52 52 uint8_t *data, size_t *act_size, 53 constvoid *actual_data, size_t actual_data_size)53 void *actual_data, size_t actual_data_size) 54 54 { 55 55 size_t expected_size = setup_packet->length; … … 63 63 *act_size = actual_data_size; 64 64 } 65 }66 67 /** NOP handler */68 int req_nop(usbvirt_device_t *device,69 const usb_device_request_setup_packet_t *setup_packet,70 uint8_t *data, size_t *act_size)71 {72 return EOK;73 65 } 74 66 … … 106 98 } 107 99 /* Copy the data. */ 108 const usbvirt_device_configuration_t *config =109 &device->descriptors->configuration[index];100 usbvirt_device_configuration_t *config = &device->descriptors 101 ->configuration[index]; 110 102 uint8_t *all_data = malloc(config->descriptor->total_length); 111 103 if (all_data == NULL) { … … 118 110 size_t i; 119 111 for (i = 0; i < config->extra_count; i++) { 120 constusbvirt_device_configuration_extras_t *extra112 usbvirt_device_configuration_extras_t *extra 121 113 = &config->extra[i]; 122 114 memcpy(ptr, extra->data, extra->length); … … 197 189 } 198 190 199 static int req_get_dev_status(usbvirt_device_t *device,200 const usb_device_request_setup_packet_t *setup_packet, uint8_t *data, size_t *act_size)201 {202 if (setup_packet->length != 2)203 return ESTALL;204 data[0] = (device->self_powered ? 1 : 0) | (device->remote_wakeup ? 2 : 0);205 data[1] = 0;206 *act_size = 2;207 return EOK;208 }209 static int req_get_iface_ep_status(usbvirt_device_t *device,210 const usb_device_request_setup_packet_t *setup_packet, uint8_t *data, size_t *act_size)211 {212 if (setup_packet->length != 2)213 return ESTALL;214 data[0] = 0;215 data[1] = 0;216 *act_size = 2;217 return EOK;218 }219 220 191 /** Standard request handlers. */ 221 192 usbvirt_control_request_handler_t library_handlers[] = { 222 193 { 223 STD_REQ_OUT(USB_REQUEST_RECIPIENT_DEVICE, USB_DEVREQ_SET_ADDRESS), 194 .req_direction = USB_DIRECTION_OUT, 195 .req_recipient = USB_REQUEST_RECIPIENT_DEVICE, 196 .req_type = USB_REQUEST_TYPE_STANDARD, 197 .request = USB_DEVREQ_SET_ADDRESS, 224 198 .name = "SetAddress", 225 199 .callback = req_set_address 226 200 }, 227 201 { 228 STD_REQ_IN(USB_REQUEST_RECIPIENT_DEVICE, USB_DEVREQ_GET_DESCRIPTOR), 229 .name = "GetStdDescriptor", 202 .req_direction = USB_DIRECTION_IN, 203 .req_recipient = USB_REQUEST_RECIPIENT_DEVICE, 204 .req_type = USB_REQUEST_TYPE_STANDARD, 205 .request = USB_DEVREQ_GET_DESCRIPTOR, 206 .name = "GetDescriptor", 230 207 .callback = req_get_descriptor 231 208 }, 232 209 { 233 STD_REQ_OUT(USB_REQUEST_RECIPIENT_DEVICE, USB_DEVREQ_SET_CONFIGURATION), 210 .req_direction = USB_DIRECTION_OUT, 211 .req_recipient = USB_REQUEST_RECIPIENT_DEVICE, 212 .req_type = USB_REQUEST_TYPE_STANDARD, 213 .request = USB_DEVREQ_SET_CONFIGURATION, 234 214 .name = "SetConfiguration", 235 215 .callback = req_set_configuration 236 216 }, 237 { 238 STD_REQ_IN(USB_REQUEST_RECIPIENT_DEVICE, USB_DEVREQ_GET_STATUS), 239 .name = "GetDeviceStatus", 240 .callback = req_get_dev_status, 241 }, 242 { 243 STD_REQ_IN(USB_REQUEST_RECIPIENT_INTERFACE, USB_DEVREQ_GET_STATUS), 244 .name = "GetInterfaceStatus", 245 .callback = req_get_iface_ep_status, 246 }, 247 { 248 /* virtual EPs by default cannot be stalled */ 249 STD_REQ_IN(USB_REQUEST_RECIPIENT_ENDPOINT, USB_DEVREQ_GET_STATUS), 250 .name = "GetEndpointStatus", 251 .callback = req_get_iface_ep_status, 252 }, 217 253 218 { .callback = NULL } 254 219 };
Note:
See TracChangeset
for help on using the changeset viewer.