Changeset 4cf5b8e0 in mainline
- Timestamp:
- 2013-09-21T01:10:47Z (11 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ce33c10
- Parents:
- 9348862
- Location:
- uspace/lib/usbhost
- Files:
-
- 4 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbhost/Makefile
r9348862 r4cf5b8e0 39 39 src/endpoint.c \ 40 40 src/hcd.c \ 41 src/usb_ endpoint_manager.c \41 src/usb_bus.c \ 42 42 src/usb_transfer_batch.c 43 43 -
uspace/lib/usbhost/include/usb/host/hcd.h
r9348862 r4cf5b8e0 41 41 #include <usbhc_iface.h> 42 42 43 #include <usb/host/usb_ endpoint_manager.h>43 #include <usb/host/usb_bus.h> 44 44 #include <usb/host/usb_transfer_batch.h> 45 45 … … 64 64 struct hcd { 65 65 /** Endpoint manager. */ 66 usb_ endpoint_manager_t ep_manager;66 usb_bus_t bus; 67 67 68 68 /** Driver implementation */ -
uspace/lib/usbhost/include/usb/host/usb_bus.h
r9348862 r4cf5b8e0 56 56 57 57 /** Endpoint management structure */ 58 typedef struct usb_ endpoint_manager{58 typedef struct usb_bus { 59 59 struct { 60 60 usb_speed_t speed; /**< Device speed */ … … 72 72 /** The last reserved address */ 73 73 usb_address_t last_address; 74 } usb_ endpoint_manager_t;74 } usb_bus_t; 75 75 76 76 … … 78 78 size_t size, size_t max_packet_size); 79 79 80 int usb_ endpoint_manager_init(usb_endpoint_manager_t *instance,80 int usb_bus_init(usb_bus_t *instance, 81 81 size_t available_bandwidth, bw_count_func_t bw_count, usb_speed_t max_speed); 82 82 83 int usb_endpoint_manager_register_ep( 84 usb_endpoint_manager_t *instance, endpoint_t *ep, size_t data_size); 83 int usb_bus_register_ep(usb_bus_t *instance, endpoint_t *ep, size_t data_size); 85 84 86 int usb_endpoint_manager_unregister_ep( 87 usb_endpoint_manager_t *instance, endpoint_t *ep); 85 int usb_bus_unregister_ep(usb_bus_t *instance, endpoint_t *ep); 88 86 89 endpoint_t * usb_ endpoint_manager_find_ep(usb_endpoint_manager_t *instance,87 endpoint_t * usb_bus_find_ep(usb_bus_t *instance, 90 88 usb_address_t address, usb_endpoint_t ep, usb_direction_t direction); 91 89 92 int usb_ endpoint_manager_add_ep(usb_endpoint_manager_t *instance,90 int usb_bus_add_ep(usb_bus_t *instance, 93 91 usb_address_t address, usb_endpoint_t endpoint, usb_direction_t direction, 94 92 usb_transfer_type_t type, size_t max_packet_size, size_t data_size, … … 96 94 unsigned tt_port); 97 95 98 int usb_ endpoint_manager_remove_ep(usb_endpoint_manager_t *instance,96 int usb_bus_remove_ep(usb_bus_t *instance, 99 97 usb_address_t address, usb_endpoint_t endpoint, usb_direction_t direction, 100 98 ep_remove_callback_t callback, void *arg); 101 99 102 int usb_endpoint_manager_reset_toggle(usb_endpoint_manager_t *instance, 103 usb_target_t target, bool all); 100 int usb_bus_reset_toggle(usb_bus_t *instance, usb_target_t target, bool all); 104 101 105 int usb_ endpoint_manager_remove_address(usb_endpoint_manager_t *instance,102 int usb_bus_remove_address(usb_bus_t *instance, 106 103 usb_address_t address, ep_remove_callback_t callback, void *arg); 107 104 108 int usb_ endpoint_manager_request_address(usb_endpoint_manager_t *instance,105 int usb_bus_request_address(usb_bus_t *instance, 109 106 usb_address_t *address, bool strict, usb_speed_t speed); 110 107 111 int usb_ endpoint_manager_get_speed(usb_endpoint_manager_t *instance,108 int usb_bus_get_speed(usb_bus_t *instance, 112 109 usb_address_t address, usb_speed_t *speed); 113 110 #endif -
uspace/lib/usbhost/src/ddf_helpers.c
r9348862 r4cf5b8e0 453 453 454 454 /* This checks whether the default address is reserved and gets speed */ 455 int ret = usb_endpoint_manager_get_speed(&hcd->ep_manager, 456 USB_ADDRESS_DEFAULT, &speed); 455 int ret = usb_bus_get_speed(&hcd->bus, USB_ADDRESS_DEFAULT, &speed); 457 456 if (ret != EOK) { 458 457 return ret; … … 573 572 assert(hcd); 574 573 575 hcd_reserve_default_address(hcd, hcd-> ep_manager.max_speed);574 hcd_reserve_default_address(hcd, hcd->bus.max_speed); 576 575 const int ret = hcd_ddf_new_device(device, NULL, 0); 577 576 hcd_release_default_address(hcd); -
uspace/lib/usbhost/src/hcd.c
r9348862 r4cf5b8e0 95 95 { 96 96 assert(hcd); 97 usb_ endpoint_manager_init(&hcd->ep_manager, bandwidth, bw_count, max_speed);97 usb_bus_init(&hcd->bus, bandwidth, bw_count, max_speed); 98 98 99 99 hcd->driver.data = NULL; … … 107 107 assert(hcd); 108 108 usb_address_t address = 0; 109 const int ret = usb_ endpoint_manager_request_address(110 &hcd-> ep_manager, &address, false, speed);109 const int ret = usb_bus_request_address( 110 &hcd->bus, &address, false, speed); 111 111 if (ret != EOK) 112 112 return ret; … … 117 117 { 118 118 assert(hcd); 119 return usb_ endpoint_manager_remove_address(&hcd->ep_manager, address,119 return usb_bus_remove_address(&hcd->bus, address, 120 120 unregister_helper_warn, hcd); 121 121 } … … 125 125 assert(hcd); 126 126 usb_address_t address = 0; 127 return usb_ endpoint_manager_request_address(128 &hcd-> ep_manager, &address, true, speed);127 return usb_bus_request_address( 128 &hcd->bus, &address, true, speed); 129 129 } 130 130 … … 134 134 { 135 135 assert(hcd); 136 return usb_ endpoint_manager_add_ep(&hcd->ep_manager, target.address,136 return usb_bus_add_ep(&hcd->bus, target.address, 137 137 target.endpoint, dir, type, max_packet_size, size, register_helper, 138 138 hcd, tt_address, tt_port); … … 142 142 { 143 143 assert(hcd); 144 return usb_ endpoint_manager_remove_ep(&hcd->ep_manager, target.address,144 return usb_bus_remove_ep(&hcd->bus, target.address, 145 145 target.endpoint, dir, unregister_helper, hcd); 146 146 } … … 161 161 usb_log_debug2("Reseting toggle on %d:%d.\n", 162 162 toggle->target.address, toggle->target.endpoint); 163 usb_ endpoint_manager_reset_toggle(&toggle->hcd->ep_manager,163 usb_bus_reset_toggle(&toggle->hcd->bus, 164 164 toggle->target, toggle->target.endpoint == 0); 165 165 } … … 187 187 assert(hcd); 188 188 189 endpoint_t *ep = usb_ endpoint_manager_find_ep(&hcd->ep_manager,189 endpoint_t *ep = usb_bus_find_ep(&hcd->bus, 190 190 target.address, target.endpoint, direction); 191 191 if (ep == NULL) { -
uspace/lib/usbhost/src/usb_bus.c
r9348862 r4cf5b8e0 39 39 40 40 #include <usb/debug.h> 41 #include <usb/host/usb_ endpoint_manager.h>41 #include <usb/host/usb_bus.h> 42 42 43 43 /** Endpoint compare helper function. … … 64 64 65 65 /** Get list that holds endpoints for given address. 66 * @param instance usb_ endpoint_managerstructure, non-null.66 * @param instance usb_bus structure, non-null. 67 67 * @param addr USB address, must be >= 0. 68 68 * @return Pointer to the appropriate list. 69 69 */ 70 static list_t * get_list(usb_ endpoint_manager_t *instance, usb_address_t addr)70 static list_t * get_list(usb_bus_t *instance, usb_address_t addr) 71 71 { 72 72 assert(instance); … … 76 76 77 77 /** Internal search function, works on locked structure. 78 * @param instance usb_ endpoint_managerstructure, non-null.78 * @param instance usb_bus structure, non-null. 79 79 * @param address USB address, must be valid. 80 80 * @param endpoint USB endpoint number. … … 84 84 * @note Assumes that the internal mutex is locked. 85 85 */ 86 static endpoint_t * find_locked(usb_ endpoint_manager_t *instance,86 static endpoint_t * find_locked(usb_bus_t *instance, 87 87 usb_address_t address, usb_endpoint_t endpoint, usb_direction_t direction) 88 88 { … … 103 103 * @return Free address, or error code. 104 104 */ 105 static usb_address_t usb_endpoint_manager_get_free_address( 106 usb_endpoint_manager_t *instance) 105 static usb_address_t usb_bus_get_free_address(usb_bus_t *instance) 107 106 { 108 107 … … 174 173 * add_endpoint/remove_endpoint pair. 175 174 * 176 * @param instance usb_ endpoint_managerstructure, non-null.175 * @param instance usb_bus structure, non-null. 177 176 * @param available_bandwidth Size of the bandwidth pool. 178 177 * @param bw_count function to use to calculate endpoint bw requirements. 179 178 * @return Error code. 180 179 */ 181 int usb_ endpoint_manager_init(usb_endpoint_manager_t *instance,180 int usb_bus_init(usb_bus_t *instance, 182 181 size_t available_bandwidth, bw_count_func_t bw_count, usb_speed_t max_speed) 183 182 { … … 198 197 /** Register endpoint structure. 199 198 * Checks for duplicates. 200 * @param instance usb_ endpoint_manager, non-null.199 * @param instance usb_bus, non-null. 201 200 * @param ep endpoint_t to register. 202 201 * @param data_size Size of data to transfer. 203 202 * @return Error code. 204 203 */ 205 int usb_endpoint_manager_register_ep(usb_endpoint_manager_t *instance, 206 endpoint_t *ep, size_t data_size) 204 int usb_bus_register_ep(usb_bus_t *instance, endpoint_t *ep, size_t data_size) 207 205 { 208 206 assert(instance); … … 233 231 /** Unregister endpoint structure. 234 232 * Checks for duplicates. 235 * @param instance usb_ endpoint_manager, non-null.233 * @param instance usb_bus, non-null. 236 234 * @param ep endpoint_t to unregister. 237 235 * @return Error code. 238 236 */ 239 int usb_endpoint_manager_unregister_ep( 240 usb_endpoint_manager_t *instance, endpoint_t *ep) 237 int usb_bus_unregister_ep(usb_bus_t *instance, endpoint_t *ep) 241 238 { 242 239 assert(instance); … … 256 253 257 254 /** Find endpoint_t representing the given communication route. 258 * @param instance usb_ endpoint_manager, non-null.255 * @param instance usb_bus, non-null. 259 256 * @param address 260 257 */ 261 endpoint_t * usb_ endpoint_manager_find_ep(usb_endpoint_manager_t *instance,258 endpoint_t * usb_bus_find_ep(usb_bus_t *instance, 262 259 usb_address_t address, usb_endpoint_t endpoint, usb_direction_t direction) 263 260 { … … 271 268 272 269 /** Create and register new endpoint_t structure. 273 * @param instance usb_ endpoint_managerstructure, non-null.270 * @param instance usb_bus structure, non-null. 274 271 * @param address USB address. 275 272 * @param endpoint USB endpoint number. … … 283 280 * @return Error code. 284 281 */ 285 int usb_ endpoint_manager_add_ep(usb_endpoint_manager_t *instance,282 int usb_bus_add_ep(usb_bus_t *instance, 286 283 usb_address_t address, usb_endpoint_t endpoint, usb_direction_t direction, 287 284 usb_transfer_type_t type, size_t max_packet_size, size_t data_size, … … 343 340 344 341 /** Unregister and destroy endpoint_t structure representing given route. 345 * @param instance usb_ endpoint_managerstructure, non-null.342 * @param instance usb_bus structure, non-null. 346 343 * @param address USB address. 347 344 * @param endpoint USB endpoint number. … … 351 348 * @return Error code. 352 349 */ 353 int usb_ endpoint_manager_remove_ep(usb_endpoint_manager_t *instance,350 int usb_bus_remove_ep(usb_bus_t *instance, 354 351 usb_address_t address, usb_endpoint_t endpoint, usb_direction_t direction, 355 352 ep_remove_callback_t callback, void *arg) … … 373 370 } 374 371 375 int usb_endpoint_manager_reset_toggle(usb_endpoint_manager_t *instance, 376 usb_target_t target, bool all) 372 int usb_bus_reset_toggle(usb_bus_t *instance, usb_target_t target, bool all) 377 373 { 378 374 assert(instance); … … 395 391 396 392 /** Unregister and destroy all endpoints using given address. 397 * @param instance usb_ endpoint_managerstructure, non-null.393 * @param instance usb_bus structure, non-null. 398 394 * @param address USB address. 399 395 * @param endpoint USB endpoint number. … … 403 399 * @return Error code. 404 400 */ 405 int usb_ endpoint_manager_remove_address(usb_endpoint_manager_t *instance,401 int usb_bus_remove_address(usb_bus_t *instance, 406 402 usb_address_t address, ep_remove_callback_t callback, void *arg) 407 403 { … … 437 433 * @note Default address is only available in strict mode. 438 434 */ 439 int usb_ endpoint_manager_request_address(usb_endpoint_manager_t *instance,435 int usb_bus_request_address(usb_bus_t *instance, 440 436 usb_address_t *address, bool strict, usb_speed_t speed) 441 437 { … … 453 449 /* Only grant default address to strict requests */ 454 450 if ((addr == USB_ADDRESS_DEFAULT) && !strict) { 455 addr = usb_ endpoint_manager_get_free_address(instance);451 addr = usb_bus_get_free_address(instance); 456 452 } 457 453 … … 461 457 return ENOENT; 462 458 } 463 addr = usb_ endpoint_manager_get_free_address(instance);459 addr = usb_bus_get_free_address(instance); 464 460 } 465 461 if (usb_address_is_valid(addr)) { … … 484 480 * @return Error code. 485 481 */ 486 int usb_ endpoint_manager_get_speed(usb_endpoint_manager_t *instance,487 usb_ address_t address, usb_speed_t *speed)482 int usb_bus_get_speed(usb_bus_t *instance, usb_address_t address, 483 usb_speed_t *speed) 488 484 { 489 485 assert(instance);
Note:
See TracChangeset
for help on using the changeset viewer.