Changeset 0816c2e in mainline for uspace/lib/usbhost/src/hcd.c
- Timestamp:
- 2013-01-04T11:22:10Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- b4c1c95
- Parents:
- 17bbb28
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbhost/src/hcd.c
r17bbb28 r0816c2e 62 62 hcd->ep_remove_hook = NULL; 63 63 } 64 65 /** Calls ep_add_hook upon endpoint registration. 66 * @param ep Endpoint to be registered. 67 * @param arg hcd_t in disguise. 68 * @return Error code. 69 */ 70 static int register_helper(endpoint_t *ep, void *arg) 71 { 72 hcd_t *hcd = arg; 73 assert(ep); 74 assert(hcd); 75 if (hcd->ep_add_hook) 76 return hcd->ep_add_hook(hcd, ep); 77 return EOK; 78 } 79 80 81 /** Calls ep_remove_hook upon endpoint removal. 82 * @param ep Endpoint to be unregistered. 83 * @param arg hcd_t in disguise. 84 */ 85 static void unregister_helper(endpoint_t *ep, void *arg) 86 { 87 hcd_t *hcd = arg; 88 assert(ep); 89 assert(hcd); 90 if (hcd->ep_remove_hook) 91 hcd->ep_remove_hook(hcd, ep); 92 } 93 94 int hcd_add_ep(hcd_t *hcd, usb_target_t target, usb_direction_t dir, 95 usb_transfer_type_t type, size_t max_packet_size, size_t size) 96 { 97 assert(hcd); 98 usb_speed_t speed = USB_SPEED_MAX; 99 const int ret = usb_device_manager_get_info_by_address( 100 &hcd->dev_manager, target.address, NULL, &speed); 101 if (ret != EOK) { 102 return ret; 103 } 104 return usb_endpoint_manager_add_ep(&hcd->ep_manager, target.address, 105 target.endpoint, dir, type, speed, max_packet_size, size, 106 register_helper, hcd); 107 } 108 109 int hcd_remove_ep(hcd_t *hcd, usb_target_t target, usb_direction_t dir) 110 { 111 assert(hcd); 112 return usb_endpoint_manager_remove_ep(&hcd->ep_manager, target.address, 113 target.endpoint, dir, unregister_helper, hcd); 114 } 115 64 116 65 117 typedef struct {
Note:
See TracChangeset
for help on using the changeset viewer.