Changeset 7a7bfeb3 in mainline for uspace/srv/hw/bus/usb/hcd/virtual/hubops.c
- Timestamp:
- 2010-10-24T16:43:40Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 355f7c2
- Parents:
- b8a3cda
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/hw/bus/usb/hcd/virtual/hubops.c
rb8a3cda r7a7bfeb3 59 59 static int on_class_request(struct usbvirt_device *dev, 60 60 usb_device_request_setup_packet_t *request, uint8_t *data); 61 static int on_data_request(struct usbvirt_device *dev, 62 usb_endpoint_t endpoint, 63 void *buffer, size_t size, size_t *actual_size); 64 61 65 62 66 static usbvirt_standard_device_request_ops_t standard_request_ops = { … … 78 82 .standard_request_ops = &standard_request_ops, 79 83 .on_class_device_request = on_class_request, 80 .on_data = NULL 84 .on_data = NULL, 85 .on_data_request = on_data_request 81 86 }; 82 87 … … 85 90 { 86 91 if (request->value_high == USB_DESCTYPE_HUB) { 87 int rc = dev-> send_data(dev, 0,92 int rc = dev->control_transfer_reply(dev, 0, 88 93 &hub_descriptor, hub_descriptor.length); 89 94 … … 196 201 uint32_t hub_status = 0; 197 202 198 return virthub_dev.send_data(&virthub_dev, 0, &hub_status, 4); 203 return virthub_dev.control_transfer_reply(&virthub_dev, 0, 204 &hub_status, 4); 199 205 } 200 206 … … 230 236 status |= (port->status_change << 16); 231 237 232 return virthub_dev. send_data(&virthub_dev, 0, &status, 4);238 return virthub_dev.control_transfer_reply(&virthub_dev, 0, &status, 4); 233 239 } 234 240 … … 334 340 { 335 341 port->status_change &= (~change); 336 hub_check_port_changes();337 342 } 338 343 … … 341 346 port->status_change |= change; 342 347 } 348 349 static int on_data_request(struct usbvirt_device *dev, 350 usb_endpoint_t endpoint, 351 void *buffer, size_t size, size_t *actual_size) 352 { 353 uint8_t change_map = 0; 354 355 size_t i; 356 for (i = 0; i < HUB_PORT_COUNT; i++) { 357 hub_port_t *port = &hub_dev.ports[i]; 358 359 if (port->status_change != 0) { 360 change_map |= (1 << (i + 1)); 361 } 362 } 363 364 uint8_t *b = (uint8_t *) buffer; 365 if (size > 0) { 366 *b = change_map; 367 *actual_size = 1; 368 } 369 370 return EOK; 371 } 372 343 373 344 374 /**
Note:
See TracChangeset
for help on using the changeset viewer.