Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/vhc/connhost.c

    r82a31261 r02fc5c4  
    5757 * @return Error code.
    5858 */
    59 static int request_address(ddf_fun_t *fun, usb_speed_t speed,
    60     usb_address_t *address)
    61 {
    62         VHC_DATA(vhc, fun);
    63 
    64         usb_address_t addr = usb_device_manager_get_free_address(
    65             &vhc->dev_manager, USB_SPEED_HIGH);
    66         if (addr < 0) {
    67                 return addr;
    68         }
    69 
    70         if (address != NULL) {
    71                 *address = addr;
    72         }
    73 
    74         return EOK;
     59static int request_address(ddf_fun_t *fun, usb_address_t *address, bool strict,
     60    usb_speed_t speed)
     61{
     62        VHC_DATA(vhc, fun);
     63
     64        assert(address);
     65        return usb_device_manager_request_address(
     66            &vhc->dev_manager, address, strict, speed);
    7567}
    7668
     
    8880        usb_log_debug("Binding handle %" PRIun " to address %d.\n",
    8981            handle, address);
    90         usb_device_manager_bind(&vhc->dev_manager, address, handle);
     82        usb_device_manager_bind_address(&vhc->dev_manager, address, handle);
    9183
    9284        return EOK;
     
    10496{
    10597        VHC_DATA(vhc, fun);
    106         bool found =
    107             usb_device_manager_find_by_address(&vhc->dev_manager, address, handle);
    108         return found ? EOK : ENOENT;
     98        return usb_device_manager_get_info_by_address(
     99            &vhc->dev_manager, address, handle, NULL);
    109100}
    110101
     
    119110        VHC_DATA(vhc, fun);
    120111        usb_log_debug("Releasing address %d...\n", address);
    121         usb_device_manager_release(&vhc->dev_manager, address);
     112        usb_device_manager_release_address(&vhc->dev_manager, address);
    122113
    123114        return ENOTSUP;
     
    137128 */
    138129static int register_endpoint(ddf_fun_t *fun,
    139     usb_address_t address, usb_speed_t speed, usb_endpoint_t endpoint,
     130    usb_address_t address, usb_endpoint_t endpoint,
    140131    usb_transfer_type_t transfer_type, usb_direction_t direction,
    141132    size_t max_packet_size, unsigned int interval)
    142133{
    143         /* TODO: Use usb_endpoint_manager_add_ep */
    144         VHC_DATA(vhc, fun);
    145 
    146         endpoint_t *ep = endpoint_get(
    147             address, endpoint, direction, transfer_type, USB_SPEED_FULL, 1);
    148         if (ep == NULL) {
    149                 return ENOMEM;
    150         }
    151 
    152         int rc = usb_endpoint_manager_register_ep(&vhc->ep_manager, ep, 1);
    153         if (rc != EOK) {
    154                 endpoint_destroy(ep);
    155                 return rc;
    156         }
    157 
    158         return EOK;
     134        VHC_DATA(vhc, fun);
     135
     136        return usb_endpoint_manager_add_ep(&vhc->ep_manager,
     137            address, endpoint, direction, transfer_type, USB_SPEED_FULL, 1, 0,
     138            NULL, NULL);
     139
    159140}
    160141
     
    172153        VHC_DATA(vhc, fun);
    173154
    174         int rc = usb_endpoint_manager_unregister_ep(&vhc->ep_manager,
    175             address, endpoint, direction);
     155        int rc = usb_endpoint_manager_remove_ep(&vhc->ep_manager,
     156            address, endpoint, direction, NULL, NULL);
    176157
    177158        return rc;
     
    414395        VHC_DATA(vhc, fun);
    415396
    416         endpoint_t *ep = usb_endpoint_manager_get_ep(&vhc->ep_manager,
    417             target.address, target.endpoint, USB_DIRECTION_IN, NULL);
     397        endpoint_t *ep = usb_endpoint_manager_find_ep(&vhc->ep_manager,
     398            target.address, target.endpoint, USB_DIRECTION_IN);
    418399        if (ep == NULL) {
    419400                return ENOENT;
     
    440421        int rc = vhc_virtdev_add_transfer(vhc, transfer);
    441422        if (rc != EOK) {
    442                 free(transfer->setup_buffer);
     423                if (transfer->setup_buffer != NULL) {
     424                        free(transfer->setup_buffer);
     425                }
    443426                free(transfer);
    444427                return rc;
     
    454437        VHC_DATA(vhc, fun);
    455438
    456         endpoint_t *ep = usb_endpoint_manager_get_ep(&vhc->ep_manager,
    457             target.address, target.endpoint, USB_DIRECTION_OUT, NULL);
     439        endpoint_t *ep = usb_endpoint_manager_find_ep(&vhc->ep_manager,
     440            target.address, target.endpoint, USB_DIRECTION_OUT);
    458441        if (ep == NULL) {
    459442                return ENOENT;
     
    488471}
    489472
    490 static int tell_address(ddf_fun_t *fun, devman_handle_t handle,
    491     usb_address_t *address)
     473static int tell_address(ddf_fun_t *fun, usb_address_t *address)
    492474{
    493475        UNSUPPORTED("tell_address");
     
    506488}
    507489
    508 static int tell_address_rh(ddf_fun_t *root_hub_fun, devman_handle_t handle,
    509     usb_address_t *address)
     490static int tell_address_rh(ddf_fun_t *root_hub_fun, usb_address_t *address)
    510491{
    511492        VHC_DATA(vhc, root_hub_fun);
    512493
    513         if (handle == 0) {
    514                 handle = root_hub_fun->handle;
    515         }
     494        devman_handle_t handle = root_hub_fun->handle;
    516495
    517496        usb_log_debug("tell_address_rh(handle=%" PRIun ")\n", handle);
    518         usb_address_t addr = usb_device_manager_find(&vhc->dev_manager, handle);
     497        const usb_address_t addr =
     498            usb_device_manager_find_address(&vhc->dev_manager, handle);
    519499        if (addr < 0) {
    520500                return addr;
     
    528508        .request_address = request_address,
    529509        .bind_address = bind_address,
    530         .find_by_address = find_by_address,
     510        .get_handle = find_by_address,
    531511        .release_address = release_address,
    532512
     
    540520usb_iface_t vhc_usb_iface = {
    541521        .get_hc_handle = usb_iface_get_hc_handle_hc_impl,
    542         .get_address = tell_address
     522        .get_my_address = tell_address
    543523};
    544524
    545525usb_iface_t rh_usb_iface = {
    546526        .get_hc_handle = usb_iface_get_hc_handle_rh_impl,
    547         .get_address = tell_address_rh
     527        .get_my_address = tell_address_rh
    548528};
    549529
Note: See TracChangeset for help on using the changeset viewer.