Changeset 7feeb84 in mainline for uspace/lib/usbvirt/include
- Timestamp:
- 2010-12-13T14:25:49Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 76daaf9f
- Parents:
- 8f8ae1fd
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbvirt/include/usbvirt/device.h
r8f8ae1fd r7feeb84 40 40 #include <usb/devreq.h> 41 41 42 typedef enum { 43 USBVIRT_REQUEST_TYPE_STANDARD = 0, 44 USBVIRT_REQUEST_TYPE_CLASS = 1 45 } usbvirt_request_type_t; 46 47 typedef enum { 48 USBVIRT_REQUEST_RECIPIENT_DEVICE = 0, 49 USBVIRT_REQUEST_RECIPIENT_INTERFACE = 1, 50 USBVIRT_REQUEST_RECIPIENT_ENDPOINT = 2, 51 USBVIRT_REQUEST_RECIPIENT_OTHER = 3 52 } usbvirt_request_recipient_t; 53 42 54 typedef struct usbvirt_device usbvirt_device_t; 43 55 struct usbvirt_control_transfer; … … 47 59 uint8_t *data); 48 60 61 typedef int (*usbvirt_control_request_callback_t)(usbvirt_device_t *dev, 62 usb_device_request_setup_packet_t *request, 63 uint8_t *data); 64 65 typedef struct { 66 uint8_t request_type; 67 uint8_t request; 68 usbvirt_control_request_callback_t callback; 69 } usbvirt_control_transfer_handler_t; 70 71 #define USBVIRT_MAKE_CONTROL_REQUEST_TYPE(direction, type, recipient) \ 72 ((((direction) == USB_DIRECTION_IN) ? 1 : 0) << 7) \ 73 | (((type) & 3) << 5) \ 74 | (((recipient) & 31)) 75 76 #define USBVIRT_CONTROL_TRANSFER_HANDLER_LAST { 0, 0, NULL } 77 49 78 /** Device operations. */ 50 79 typedef struct { 51 /** Callbacks for standard device requests. 52 * The callbacks are indexed by usb_stddevreq_t enum. 53 */ 54 usbvirt_on_device_request_t on_standard_request[USB_DEVREQ_LAST_STD]; 55 /** Callback for class-specific USB request. */ 56 usbvirt_on_device_request_t on_class_device_request; 57 80 /** Callbacks for transfers over control pipe zero. */ 81 usbvirt_control_transfer_handler_t *control_transfer_handlers; 82 58 83 int (*on_control_transfer)(usbvirt_device_t *dev, 59 84 usb_endpoint_t endpoint, struct usbvirt_control_transfer *transfer);
Note:
See TracChangeset
for help on using the changeset viewer.