Changeset b5f813c in mainline for uspace/lib/usbhost/src


Ignore:
Timestamp:
2015-07-04T03:28:02Z (10 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
55346870
Parents:
2dbfe44
Message:

libusbhost,ehci,ohci,uhci,vhc: Pass ops structure instead of function pointers to intialization

Location:
uspace/lib/usbhost/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usbhost/src/ddf_helpers.c

    r2dbfe44 rb5f813c  
    690690}
    691691
     692//TODO: Move this to generic ddf?
    692693int hcd_ddf_get_registers(ddf_dev_t *device, hw_res_list_parsed_t *hw_res)
    693694{
     
    779780        assert(dev);
    780781        hcd_t *hcd = dev_to_hcd(dev);
    781         if (!hcd || !hcd->driver.irq_hook) {
     782        if (!hcd || !hcd->ops.irq_hook) {
    782783                usb_log_error("Interrupt on not yet initialized device.\n");
    783784                return;
    784785        }
    785786        const uint32_t status = IPC_GET_ARG1(*call);
    786         hcd->driver.irq_hook(hcd, status);
     787        hcd->ops.irq_hook(hcd, status);
    787788}
    788789
     
    791792        hcd_t *hcd = arg;
    792793        assert(hcd);
    793         if (!hcd->driver.status_hook || !hcd->driver.irq_hook)
     794        if (!hcd->ops.status_hook || !hcd->ops.irq_hook)
    794795                return ENOTSUP;
    795796        uint32_t status = 0;
    796         while (hcd->driver.status_hook(hcd, &status) == EOK) {
    797                 hcd->driver.irq_hook(hcd, status);
     797        while (hcd->ops.status_hook(hcd, &status) == EOK) {
     798                hcd->ops.irq_hook(hcd, status);
    798799                status = 0;
    799800                /* We should wait 1 frame - 1ms here, but this polling is a
     
    885886
    886887        /* Need working irq replacement to setup root hub */
    887         if ((irq < 0) && hcd->driver.status_hook) {
     888        if ((irq < 0) && hcd->ops.status_hook) {
    888889                hcd->polling_fibril = fibril_create(interrupt_polling, hcd);
    889890                if (hcd->polling_fibril == 0) {
  • uspace/lib/usbhost/src/hcd.c

    r2dbfe44 rb5f813c  
    5454        assert(ep);
    5555        assert(hcd);
    56         if (hcd->driver.ep_add_hook)
    57                 return hcd->driver.ep_add_hook(hcd, ep);
     56        if (hcd->ops.ep_add_hook)
     57                return hcd->ops.ep_add_hook(hcd, ep);
    5858        return EOK;
    5959}
     
    6868        assert(ep);
    6969        assert(hcd);
    70         if (hcd->driver.ep_remove_hook)
    71                 hcd->driver.ep_remove_hook(hcd, ep);
     70        if (hcd->ops.ep_remove_hook)
     71                hcd->ops.ep_remove_hook(hcd, ep);
    7272}
    7373
     
    9999        usb_bus_init(&hcd->bus, bandwidth, bw_count, max_speed);
    100100
    101         hcd->driver.data = NULL;
    102         hcd->driver.schedule = NULL;
    103         hcd->driver.ep_add_hook = NULL;
    104         hcd->driver.ep_remove_hook = NULL;
     101        hcd_set_implementation(hcd, NULL, NULL);
    105102}
    106103
     
    127124        assert(hcd);
    128125        usb_address_t address = 0;
    129         return usb_bus_request_address(
    130             &hcd->bus, &address, true, speed);
     126        return usb_bus_request_address(&hcd->bus, &address, true, speed);
    131127}
    132128
     
    209205                return ENOSPC;
    210206        }
    211         if (!hcd->driver.schedule) {
     207        if (!hcd->ops.schedule) {
    212208                usb_log_error("HCD does not implement scheduler.\n");
    213209                return ENOTSUP;
     
    241237        }
    242238
    243         const int ret = hcd->driver.schedule(hcd, batch);
     239        const int ret = hcd->ops.schedule(hcd, batch);
    244240        if (ret != EOK)
    245241                usb_transfer_batch_destroy(batch);
Note: See TracChangeset for help on using the changeset viewer.