Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usbdev/src/hub.c

    rffa96c2 r56fd7cf  
    155155 *      request or requests for descriptors when creating match ids).
    156156 */
    157 int usb_hc_new_device_wrapper(ddf_dev_t *parent, ddf_fun_t *fun,
     157int usb_hc_new_device_wrapper(ddf_dev_t *parent,
    158158    usb_hc_connection_t *hc_conn, usb_speed_t dev_speed,
    159159    int (*enable_port)(void *arg), void *arg, usb_address_t *assigned_address,
    160     ddf_dev_ops_t *dev_ops)
     160    ddf_dev_ops_t *dev_ops, void *new_dev_data, ddf_fun_t **new_fun)
    161161{
    162         if (hc_conn == NULL)
     162        if ((new_fun == NULL) || (hc_conn == NULL))
    163163                return EINVAL;
    164164
     
    271271        /* Register the device with devman. */
    272272        /* FIXME: create device_register that will get opened ctrl pipe. */
     273        ddf_fun_t *child_fun;
    273274        rc = usb_device_register_child_in_devman(&ctrl_pipe,
    274             parent, fun, dev_ops);
     275            parent, dev_ops, new_dev_data, &child_fun);
    275276        if (rc != EOK) {
    276277                goto leave_release_free_address;
     
    279280        const usb_hub_attached_device_t new_device = {
    280281                .address = dev_addr,
    281                 .fun = fun,
     282                .fun = child_fun,
    282283        };
    283284
     
    287288        if (rc != EOK) {
    288289                /* The child function is already created. */
     290                ddf_fun_destroy(child_fun);
    289291                rc = EDESTADDRREQ;
    290292                goto leave_release_free_address;
     
    294296                *assigned_address = dev_addr;
    295297        }
     298
     299        *new_fun = child_fun;
    296300
    297301        rc = EOK;
Note: See TracChangeset for help on using the changeset viewer.