Changes in uspace/lib/drv/include/usb_iface.h [27ed734c:56bdd9a4] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/drv/include/usb_iface.h
r27ed734c r56bdd9a4 39 39 40 40 #include "ddf/driver.h" 41 #include <async.h> 41 42 #include <usb/usb.h> 42 typedef enum {43 /** Tell USB address assigned to device.44 * Parameters:45 * - devman handle id46 * Answer:47 * - EINVAL - unknown handle or handle not managed by this driver48 * - ENOTSUP - operation not supported (shall not happen)49 * - arbitrary error code if returned by remote implementation50 * - EOK - handle found, first parameter contains the USB address51 *52 * The handle must be the one used for binding USB address with53 * it (IPC_M_USBHC_BIND_ADDRESS), otherwise the host controller54 * (that this request would eventually reach) would not be able55 * to find it.56 * The problem is that this handle is actually assigned to the57 * function inside driver of the parent device (usually hub driver).58 * To bypass this problem, the initial caller specify handle as59 * zero and the first parent assigns the actual value.60 * See usb_iface_get_address_hub_child_impl() implementation61 * that could be assigned to device ops of a child device of in a62 * hub driver.63 * For example, the USB multi interface device driver (MID)64 * passes this initial zero without any modification because the65 * handle must be resolved by its parent.66 */67 IPC_M_USB_GET_MY_ADDRESS,68 43 69 /** Tell interface number given device can use. 70 * Parameters 71 * - devman handle id of the device 72 * Answer: 73 * - ENOTSUP - operation not supported (can also mean any interface) 74 * - EOK - operation okay, first parameter contains interface number 75 */ 76 IPC_M_USB_GET_INTERFACE, 77 78 /** Tell devman handle of device host controller. 79 * Parameters: 80 * - none 81 * Answer: 82 * - EOK - request processed without errors 83 * - ENOTSUP - this indicates invalid USB driver 84 * Parameters of the answer: 85 * - devman handle of HC caller is physically connected to 86 */ 87 IPC_M_USB_GET_HOST_CONTROLLER_HANDLE 88 } usb_iface_funcs_t; 44 int usb_get_my_address(async_exch_t *, usb_address_t *); 45 int usb_get_my_interface(async_exch_t *, int *); 46 int usb_get_hc_handle(async_exch_t *, devman_handle_t *); 89 47 90 48 /** USB device communication interface. */ 91 49 typedef struct { 92 50 int (*get_my_address)(ddf_fun_t *, usb_address_t *); 93 int (*get_ interface)(ddf_fun_t *, devman_handle_t, int *);51 int (*get_my_interface)(ddf_fun_t *, int *); 94 52 int (*get_hc_handle)(ddf_fun_t *, devman_handle_t *); 95 53 } usb_iface_t; 96 97 54 98 55 #endif
Note:
See TracChangeset
for help on using the changeset viewer.