Changeset e2dfa86 in mainline for uspace/lib/usbdev/src
- Timestamp:
- 2013-01-27T13:54:40Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0eb2a0f
- Parents:
- 06f9a9c9
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbdev/src/devdrv.c
r06f9a9c9 re2dfa86 68 68 /** Alternative interfaces. */ 69 69 usb_alternate_interfaces_t alternate_interfaces; 70 71 70 /** Some useful descriptors for USB device. */ 72 struct { 73 /** Standard device descriptor. */ 74 usb_standard_device_descriptor_t device; 75 /** Full configuration descriptor of current configuration. */ 76 const uint8_t *configuration; 77 size_t configuration_size; 78 } descriptors; 79 71 usb_device_descriptors_t descriptors; 80 72 /** Generic DDF device backing this one. DO NOT TOUCH! */ 81 73 ddf_dev_t *ddf_dev; … … 160 152 { 161 153 assert(usb_dev); 162 assert(usb_dev->descriptors. configuration== NULL);154 assert(usb_dev->descriptors.full_config == NULL); 163 155 164 156 /* It is worth to start a long transfer. */ … … 175 167 rc = usb_request_get_full_configuration_descriptor_alloc( 176 168 &usb_dev->ctrl_pipe, 0, 177 (void **) &usb_dev->descriptors.configuration,178 &usb_dev->descriptors. configuration_size);169 (void**)&usb_dev->descriptors.full_config, 170 &usb_dev->descriptors.full_config_size); 179 171 180 172 leave: … … 191 183 { 192 184 assert(usb_dev); 193 free(usb_dev->descriptors. configuration);194 usb_dev->descriptors. configuration= NULL;195 usb_dev->descriptors. configuration_size = 0;185 free(usb_dev->descriptors.full_config); 186 usb_dev->descriptors.full_config = NULL; 187 usb_dev->descriptors.full_config_size = 0; 196 188 } 197 189 … … 219 211 { 220 212 assert(usb_dev); 221 assert(usb_dev->descriptors. configuration);213 assert(usb_dev->descriptors.full_config); 222 214 assert(usb_dev->pipes == NULL); 223 215 assert(usb_dev->pipes_count == 0); … … 244 236 /* Find the mapping from configuration descriptor. */ 245 237 int rc = usb_pipe_initialize_from_configuration(pipes, pipe_count, 246 usb_dev->descriptors. configuration,247 usb_dev->descriptors. configuration_size, &usb_dev->wire);238 usb_dev->descriptors.full_config, 239 usb_dev->descriptors.full_config_size, &usb_dev->wire); 248 240 if (rc != EOK) { 249 241 free(pipes); … … 338 330 } 339 331 340 const usb_standard_device_descriptor_t * 341 usb_device_get_device_descriptor(usb_device_t *usb_dev) 342 { 343 assert(usb_dev); 344 return &usb_dev->descriptors.device; 345 } 346 347 const void * usb_device_get_configuration_descriptor( 348 usb_device_t *usb_dev, size_t *size) 349 { 350 assert(usb_dev); 351 if (size) 352 *size = usb_dev->descriptors.configuration_size; 353 return usb_dev->descriptors.configuration; 332 const usb_device_descriptors_t *usb_device_descriptors(usb_device_t *usb_dev) 333 { 334 assert(usb_dev); 335 return &usb_dev->descriptors; 354 336 } 355 337 … … 430 412 usb_dev->ddf_dev = ddf_dev; 431 413 usb_dev->driver_data = NULL; 432 usb_dev->descriptors.configuration = NULL; 414 usb_dev->descriptors.full_config = NULL; 415 usb_dev->descriptors.full_config_size = 0; 433 416 usb_dev->pipes_count = 0; 434 417 usb_dev->pipes = NULL; … … 500 483 * controlling a device. */ 501 484 rc = usb_alternate_interfaces_init(&usb_dev->alternate_interfaces, 502 usb_dev->descriptors. configuration,503 usb_dev->descriptors. configuration_size, usb_dev->interface_no);485 usb_dev->descriptors.full_config, 486 usb_dev->descriptors.full_config_size, usb_dev->interface_no); 504 487 505 488 if (endpoints) {
Note:
See TracChangeset
for help on using the changeset viewer.