Changeset 065064e6 in mainline for uspace/lib/usbdev/src/devdrv.c
- Timestamp:
- 2011-10-15T12:49:18Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e3f7418
- Parents:
- 7c95d6f5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbdev/src/devdrv.c
r7c95d6f5 r065064e6 152 152 gen_dev->driver_data = dev; 153 153 154 return driver->ops->device_add(dev); 154 rc = driver->ops->device_add(dev); 155 if (rc != EOK) 156 usb_device_destroy(dev); 157 return rc; 155 158 } 156 159 /*----------------------------------------------------------------------------*/ … … 185 188 if (driver->ops->device_gone == NULL) 186 189 return ENOTSUP; 187 const int ret = driver->ops->device_gone(gen_dev->driver_data); 190 usb_device_t *usb_dev = gen_dev->driver_data; 191 const int ret = driver->ops->device_gone(usb_dev); 188 192 if (ret == EOK) 189 usb_device_destroy( gen_dev->driver_data);193 usb_device_destroy(usb_dev); 190 194 191 195 return ret; … … 595 599 596 600 /* Ignore errors and hope for the best. */ 597 usb_device_destroy_pipes(dev->ddf_dev, dev->pipes, dev->pipes_count); 598 free(dev->descriptors.configuration); 601 destroy_current_pipes(dev); 599 602 600 603 if (dev->alternate_interfaces != NULL) { … … 602 605 } 603 606 free(dev->alternate_interfaces); 604 605 free(dev); 607 free(dev->descriptors.configuration); 608 free(dev->driver_data); 609 } 610 611 void * usb_device_data_alloc(usb_device_t *usb_dev, size_t size) 612 { 613 assert(usb_dev); 614 assert(usb_dev->driver_data == NULL); 615 return usb_dev->driver_data = calloc(1, size); 616 606 617 } 607 618
Note:
See TracChangeset
for help on using the changeset viewer.