Changes in uspace/lib/drv/include/usbhc_iface.h [cb59f787:4689d40] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/drv/include/usbhc_iface.h
rcb59f787 r4689d40 92 92 */ 93 93 typedef enum { 94 /** Tell USB address assigned to device. 95 * Parameters: 96 * - devman handle id 97 * Answer: 98 * - EINVAL - unknown handle or handle not managed by this driver 99 * - ENOTSUP - operation not supported by HC (shall not happen) 100 * - arbitrary error code if returned by remote implementation 101 * - EOK - handle found, first parameter contains the USB address 102 */ 103 IPC_M_USBHC_GET_ADDRESS, 104 94 105 /** Asks for data buffer. 95 106 * See explanation at usb_iface_funcs_t. … … 100 111 101 112 113 /** Reserve usage of default address. 114 * This call informs the host controller that the caller will be 115 * using default USB address. It is duty of the HC driver to ensure 116 * that only single entity will have it reserved. 117 * The address is returned via IPC_M_USBHC_RELEASE_DEFAULT_ADDRESS. 118 * The caller can start using the address after receiving EOK 119 * answer. 120 */ 121 IPC_M_USBHC_RESERVE_DEFAULT_ADDRESS, 122 123 /** Release usage of default address. 124 * @see IPC_M_USBHC_RESERVE_DEFAULT_ADDRESS 125 */ 126 IPC_M_USBHC_RELEASE_DEFAULT_ADDRESS, 127 128 /** Asks for address assignment by host controller. 129 * Answer: 130 * - ELIMIT - host controller run out of address 131 * - EOK - address assigned 132 * Answer arguments: 133 * - assigned address 134 * 135 * The address must be released by via IPC_M_USBHC_RELEASE_ADDRESS. 136 */ 137 IPC_M_USBHC_REQUEST_ADDRESS, 138 139 /** Bind USB address with devman handle. 140 * Parameters: 141 * - USB address 142 * - devman handle 143 * Answer: 144 * - EOK - address binded 145 * - ENOENT - address is not in use 146 */ 147 IPC_M_USBHC_BIND_ADDRESS, 148 149 /** Release address in use. 150 * Arguments: 151 * - address to be released 152 * Answer: 153 * - ENOENT - address not in use 154 * - EPERM - trying to release default USB address 155 */ 156 IPC_M_USBHC_RELEASE_ADDRESS, 157 158 102 159 /** Send interrupt data to device. 103 160 * See explanation at usb_iface_funcs_t (OUT transaction). … … 155 212 usb_transaction_outcome_t, size_t, void *); 156 213 214 215 /** Out transfer processing function prototype. */ 216 typedef int (*usbhc_iface_transfer_out_t)(device_t *, usb_target_t, 217 void *, size_t, 218 usbhc_iface_transfer_out_callback_t, void *); 219 220 /** Setup transfer processing function prototype. */ 221 typedef usbhc_iface_transfer_out_t usbhc_iface_transfer_setup_t; 222 223 /** In transfer processing function prototype. */ 224 typedef int (*usbhc_iface_transfer_in_t)(device_t *, usb_target_t, 225 void *, size_t, 226 usbhc_iface_transfer_in_callback_t, void *); 227 157 228 /** USB devices communication interface. */ 158 229 typedef struct { 159 int (*interrupt_out)(device_t *, usb_target_t, 160 void *, size_t, 230 int (*tell_address)(device_t *, devman_handle_t, usb_address_t *); 231 232 int (*reserve_default_address)(device_t *); 233 int (*release_default_address)(device_t *); 234 int (*request_address)(device_t *, usb_address_t *); 235 int (*bind_address)(device_t *, usb_address_t, devman_handle_t); 236 int (*release_address)(device_t *, usb_address_t); 237 238 usbhc_iface_transfer_out_t interrupt_out; 239 usbhc_iface_transfer_in_t interrupt_in; 240 241 usbhc_iface_transfer_setup_t control_write_setup; 242 usbhc_iface_transfer_out_t control_write_data; 243 int (*control_write_status)(device_t *, usb_target_t, 244 usbhc_iface_transfer_in_callback_t, void *); 245 246 usbhc_iface_transfer_setup_t control_read_setup; 247 usbhc_iface_transfer_in_t control_read_data; 248 int (*control_read_status)(device_t *, usb_target_t, 161 249 usbhc_iface_transfer_out_callback_t, void *); 162 int (*interrupt_in)(device_t *, usb_target_t,163 void *, size_t,164 usbhc_iface_transfer_in_callback_t, void *);165 250 } usbhc_iface_t; 166 251
Note:
See TracChangeset
for help on using the changeset viewer.