Changes in uspace/lib/usbdev/include/usb/dev/driver.h [70452dd4:6883abfa] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbdev/include/usb/dev/driver.h
r70452dd4 r6883abfa 36 36 #define LIBUSBDEV_DRIVER_H_ 37 37 38 #include <usb/hc.h> 39 #include <usb/dev/usb_device_connection.h> 38 40 #include <usb/dev/pipes.h> 39 41 … … 43 45 usb_standard_device_descriptor_t device; 44 46 /** Full configuration descriptor of current configuration. */ 45 uint8_t *configuration;47 const uint8_t *configuration; 46 48 size_t configuration_size; 47 49 } usb_device_descriptors_t; … … 53 55 typedef struct { 54 56 /** Interface descriptor. */ 55 usb_standard_interface_descriptor_t *interface;57 const usb_standard_interface_descriptor_t *interface; 56 58 /** Pointer to start of descriptor tree bound with this interface. */ 57 uint8_t *nested_descriptors;59 const uint8_t *nested_descriptors; 58 60 /** Size of data pointed by nested_descriptors in bytes. */ 59 61 size_t nested_descriptors_size; … … 72 74 /** USB device structure. */ 73 75 typedef struct { 76 /** Connection to USB hc, used by wire and arbitrary requests. */ 77 usb_hc_connection_t hc_conn; 78 /** Connection backing the pipes. 79 * Typically, you will not need to use this attribute at all. 80 */ 81 usb_device_connection_t wire; 74 82 /** The default control pipe. */ 75 83 usb_pipe_t ctrl_pipe; … … 87 95 int interface_no; 88 96 89 /** Alternative interfaces. 90 * Set to NULL when the driver controls whole device 91 * (i.e. more (or any) interfaces). 92 */ 93 usb_alternate_interfaces_t *alternate_interfaces; 97 /** Alternative interfaces. */ 98 usb_alternate_interfaces_t alternate_interfaces; 94 99 95 100 /** Some useful descriptors. */ 96 101 usb_device_descriptors_t descriptors; 97 102 98 /** Generic DDF device backing this one. */103 /** Generic DDF device backing this one. DO NOT TOUCH! */ 99 104 ddf_dev_t *ddf_dev; 100 105 /** Custom driver data. … … 103 108 */ 104 109 void *driver_data; 105 106 /** Connection backing the pipes.107 * Typically, you will not need to use this attribute at all.108 */109 usb_device_connection_t wire;110 110 } usb_device_t; 111 111 112 112 /** USB driver ops. */ 113 113 typedef struct { 114 /** Callback when new device is about to be controlled by the driver. */ 115 int (*add_device)(usb_device_t *); 114 /** Callback when a new device was added to the system. */ 115 int (*device_add)(usb_device_t *); 116 /** Callback when a device is about to be removed from the system. */ 117 int (*device_rem)(usb_device_t *); 118 /** Callback when a device was removed from the system. */ 119 int (*device_gone)(usb_device_t *); 116 120 } usb_driver_ops_t; 117 121 … … 152 156 \endcode 153 157 */ 154 usb_endpoint_description_t **endpoints;158 const usb_endpoint_description_t **endpoints; 155 159 /** Driver ops. */ 156 usb_driver_ops_t *ops;160 const usb_driver_ops_t *ops; 157 161 } usb_driver_t; 158 162 159 int usb_driver_main(usb_driver_t *); 163 int usb_driver_main(const usb_driver_t *); 164 165 int usb_device_init(usb_device_t *, ddf_dev_t *, 166 const usb_endpoint_description_t **, const char **); 167 void usb_device_deinit(usb_device_t *); 160 168 161 169 int usb_device_select_interface(usb_device_t *, uint8_t, 162 usb_endpoint_description_t **);170 const usb_endpoint_description_t **); 163 171 164 172 int usb_device_retrieve_descriptors(usb_pipe_t *, usb_device_descriptors_t *); 165 int usb_device_create_pipes(ddf_dev_t *, usb_device_connection_t *, 166 usb_endpoint_description_t **, uint8_t *, size_t, int, int, 173 void usb_device_release_descriptors(usb_device_descriptors_t *); 174 175 int usb_device_create_pipes(usb_device_connection_t *, 176 const usb_endpoint_description_t **, const uint8_t *, size_t, int, int, 167 177 usb_endpoint_mapping_t **, size_t *); 168 int usb_device_destroy_pipes(ddf_dev_t *, usb_endpoint_mapping_t *, size_t); 169 int usb_device_create(ddf_dev_t *, usb_endpoint_description_t **, usb_device_t **, const char **); 170 void usb_device_destroy(usb_device_t *); 178 void usb_device_destroy_pipes(usb_endpoint_mapping_t *, size_t); 171 179 172 size_t usb_interface_count_alternates(uint8_t *, size_t, uint8_t); 173 int usb_alternate_interfaces_create(uint8_t *, size_t, int, 174 usb_alternate_interfaces_t **); 180 void * usb_device_data_alloc(usb_device_t *, size_t); 175 181 182 size_t usb_interface_count_alternates(const uint8_t *, size_t, uint8_t); 183 int usb_alternate_interfaces_init(usb_alternate_interfaces_t *, 184 const uint8_t *, size_t, int); 185 void usb_alternate_interfaces_deinit(usb_alternate_interfaces_t *); 176 186 #endif 177 187 /**
Note:
See TracChangeset
for help on using the changeset viewer.