Changes in uspace/lib/usbdev/include/usb/dev/driver.h [77ad86c:87619045] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbdev/include/usb/dev/driver.h
r77ad86c r87619045 37 37 #define LIBUSBDEV_DRIVER_H_ 38 38 39 #include <usb/hc.h> 40 #include <usb/dev/usb_device_connection.h> 39 #include <usb/dev/device.h> 41 40 #include <usb/dev/pipes.h> 42 43 /** Descriptors for USB device. */44 typedef struct {45 /** Standard device descriptor. */46 usb_standard_device_descriptor_t device;47 /** Full configuration descriptor of current configuration. */48 const uint8_t *configuration;49 size_t configuration_size;50 } usb_device_descriptors_t;51 52 /** Wrapper for data related to alternate interface setting.53 * The pointers will typically point inside configuration descriptor and54 * thus you shall not deallocate them.55 */56 typedef struct {57 /** Interface descriptor. */58 const usb_standard_interface_descriptor_t *interface;59 /** Pointer to start of descriptor tree bound with this interface. */60 const uint8_t *nested_descriptors;61 /** Size of data pointed by nested_descriptors in bytes. */62 size_t nested_descriptors_size;63 } usb_alternate_interface_descriptors_t;64 65 /** Alternate interface settings. */66 typedef struct {67 /** Array of alternate interfaces descriptions. */68 usb_alternate_interface_descriptors_t *alternatives;69 /** Size of @c alternatives array. */70 size_t alternative_count;71 /** Index of currently selected one. */72 size_t current;73 } usb_alternate_interfaces_t;74 75 /** USB device structure. */76 typedef struct {77 /** Connection to USB hc, used by wire and arbitrary requests. */78 usb_hc_connection_t hc_conn;79 /** Connection backing the pipes.80 * Typically, you will not need to use this attribute at all.81 */82 usb_device_connection_t wire;83 /** The default control pipe. */84 usb_pipe_t ctrl_pipe;85 /** Other endpoint pipes.86 * This is an array of other endpoint pipes in the same order as87 * in usb_driver_t.88 */89 usb_endpoint_mapping_t *pipes;90 /** Number of other endpoint pipes. */91 size_t pipes_count;92 /** Current interface.93 * Usually, drivers operate on single interface only.94 * This item contains the value of the interface or -1 for any.95 */96 int interface_no;97 98 /** Alternative interfaces. */99 usb_alternate_interfaces_t alternate_interfaces;100 101 /** Some useful descriptors. */102 usb_device_descriptors_t descriptors;103 104 /** Generic DDF device backing this one. DO NOT TOUCH! */105 ddf_dev_t *ddf_dev;106 /** Custom driver data.107 * Do not use the entry in generic device, that is already used108 * by the framework.109 */110 void *driver_data;111 } usb_device_t;112 41 113 42 /** USB driver ops. */ … … 164 93 int usb_driver_main(const usb_driver_t *); 165 94 166 int usb_device_init(usb_device_t *, ddf_dev_t *,167 const usb_endpoint_description_t **, const char **);168 void usb_device_deinit(usb_device_t *);169 170 int usb_device_select_interface(usb_device_t *, uint8_t,171 const usb_endpoint_description_t **);172 173 int usb_device_retrieve_descriptors(usb_pipe_t *, usb_device_descriptors_t *);174 void usb_device_release_descriptors(usb_device_descriptors_t *);175 176 int usb_device_create_pipes(usb_device_connection_t *,177 const usb_endpoint_description_t **, const uint8_t *, size_t, int, int,178 usb_endpoint_mapping_t **, size_t *);179 void usb_device_destroy_pipes(usb_endpoint_mapping_t *, size_t);180 181 void * usb_device_data_alloc(usb_device_t *, size_t);182 183 size_t usb_interface_count_alternates(const uint8_t *, size_t, uint8_t);184 int usb_alternate_interfaces_init(usb_alternate_interfaces_t *,185 const uint8_t *, size_t, int);186 void usb_alternate_interfaces_deinit(usb_alternate_interfaces_t *);187 95 #endif 188 96 /**
Note:
See TracChangeset
for help on using the changeset viewer.