Changeset 7a7bfeb3 in mainline for uspace/lib/usbvirt/device.h
- Timestamp:
- 2010-10-24T16:43:40Z (14 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/lib/usbvirt/device.h
rb8a3cda r7a7bfeb3 41 41 42 42 struct usbvirt_device; 43 struct usbvirt_control_transfer; 43 44 44 45 typedef int (*usbvirt_on_device_request_t)(struct usbvirt_device *dev, … … 70 71 /** Callback for class-specific USB request. */ 71 72 usbvirt_on_device_request_t on_class_device_request; 73 74 int (*on_control_transfer)(struct usbvirt_device *dev, 75 usb_endpoint_t endpoint, struct usbvirt_control_transfer *transfer); 76 72 77 /** Callback for all other incoming data. */ 73 78 int (*on_data)(struct usbvirt_device *dev, 79 usb_endpoint_t endpoint, void *buffer, size_t size); 80 81 /** Callback for host request for data. */ 82 int (*on_data_request)(struct usbvirt_device *dev, 83 usb_endpoint_t endpoint, void *buffer, size_t size, size_t *actual_size); 84 85 /** Decides direction of control transfer. */ 86 usb_direction_t (*decide_control_transfer_direction)( 74 87 usb_endpoint_t endpoint, void *buffer, size_t size); 75 88 } usbvirt_device_ops_t; … … 117 130 } usbvirt_device_state_t; 118 131 132 /** Information about on-going control transfer. 133 */ 134 typedef struct usbvirt_control_transfer { 135 usb_direction_t direction; 136 void *request; 137 size_t request_size; 138 void *data; 139 size_t data_size; 140 } usbvirt_control_transfer_t; 141 119 142 /** Virtual USB device. */ 120 143 typedef struct usbvirt_device { … … 122 145 usbvirt_device_ops_t *ops; 123 146 124 /** Send data to HC. 125 * @warning Do not change after initializing with 126 * usbvirt_device_init(). 127 * This function is here merely to make the interface more OOP. 147 148 /** Reply onto control transfer. 128 149 */ 129 int (* send_data)(struct usbvirt_device *dev,150 int (*control_transfer_reply)(struct usbvirt_device *dev, 130 151 usb_endpoint_t endpoint, void *buffer, size_t size); 131 152 … … 153 174 int device_id_; 154 175 155 /** Main routine called when data is received from HC. 156 * @warning Do not change after initializing with 157 * usbvirt_device_init(). 158 * This function is here merely to make the interface more OOP. 159 */ 160 int (*receive_data)(struct usbvirt_device *dev, 176 int (*transaction_out)(struct usbvirt_device *dev, 161 177 usb_endpoint_t endpoint, void *buffer, size_t size); 178 int (*transaction_setup)(struct usbvirt_device *dev, 179 usb_endpoint_t endpoint, void *buffer, size_t size); 180 int (*transaction_in)(struct usbvirt_device *dev, 181 usb_endpoint_t endpoint, void *buffer, size_t size, size_t *data_size); 162 182 183 usbvirt_control_transfer_t current_control_transfers[USB11_ENDPOINT_MAX]; 163 184 } usbvirt_device_t; 164 185
Note:
See TracChangeset
for help on using the changeset viewer.