Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usb/src/hc.c

    re280857 r79ae36dd  
    9898                return EBUSY;
    9999       
    100         async_sess_t *sess = devman_device_connect(EXCHANGE_ATOMIC,
     100        async_sess_t *sess = devman_device_connect(EXCHANGE_SERIALIZE,
    101101            connection->hc_handle, 0);
    102102        if (!sess)
     
    177177{
    178178        async_sess_t *parent_sess =
    179             devman_parent_device_connect(EXCHANGE_ATOMIC, dev_handle,
     179            devman_parent_device_connect(EXCHANGE_SERIALIZE, dev_handle,
    180180            IPC_FLAG_BLOCKING);
    181181        if (!parent_sess)
     
    201201/** Get host controller handle by its class index.
    202202 *
    203  * @param sid Service ID of the HC function.
     203 * @param class_index Class index for the host controller.
    204204 * @param hc_handle Where to store the HC handle
    205205 *      (can be NULL for existence test only).
    206206 * @return Error code.
    207207 */
    208 int usb_ddf_get_hc_handle_by_sid(service_id_t sid, devman_handle_t *hc_handle)
    209 {
    210         devman_handle_t handle;
     208int usb_ddf_get_hc_handle_by_class(size_t class_index,
     209    devman_handle_t *hc_handle)
     210{
     211        char *class_index_str;
     212        devman_handle_t hc_handle_tmp;
    211213        int rc;
    212        
    213         rc = devman_fun_sid_to_handle(sid, &handle);
    214         if (hc_handle != NULL)
    215                 *hc_handle = handle;
    216        
    217         return rc;
     214
     215        rc = asprintf(&class_index_str, "%zu", class_index);
     216        if (rc < 0) {
     217                return ENOMEM;
     218        }
     219        rc = devman_device_get_handle_by_class("usbhc", class_index_str,
     220            &hc_handle_tmp, 0);
     221        free(class_index_str);
     222        if (rc != EOK) {
     223                return rc;
     224        }
     225
     226        if (hc_handle != NULL) {
     227                *hc_handle = hc_handle_tmp;
     228        }
     229
     230        return EOK;
    218231}
    219232
     
    228241{
    229242        async_sess_t *parent_sess =
    230             devman_parent_device_connect(EXCHANGE_ATOMIC, device_handle,
     243            devman_parent_device_connect(EXCHANGE_SERIALIZE, device_handle,
    231244            IPC_FLAG_BLOCKING);
    232245        if (!parent_sess)
Note: See TracChangeset for help on using the changeset viewer.