Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/drv/generic/remote_usbhc.c

    r357a302 rb36e5de2  
    4343#define HACK_MAX_PACKET_SIZE_INTERRUPT_IN 4
    4444
     45static void remote_usbhc_get_address(device_t *, void *, ipc_callid_t, ipc_call_t *);
    4546static void remote_usbhc_interrupt_out(device_t *, void *, ipc_callid_t, ipc_call_t *);
    4647static void remote_usbhc_interrupt_in(device_t *, void *, ipc_callid_t, ipc_call_t *);
    47 static void remote_usbhc_bulk_out(device_t *, void *, ipc_callid_t, ipc_call_t *);
    48 static void remote_usbhc_bulk_in(device_t *, void *, ipc_callid_t, ipc_call_t *);
    4948static void remote_usbhc_control_write(device_t *, void *, ipc_callid_t, ipc_call_t *);
    5049static void remote_usbhc_control_read(device_t *, void *, ipc_callid_t, ipc_call_t *);
     
    5857/** Remote USB host controller interface operations. */
    5958static remote_iface_func_ptr_t remote_usbhc_iface_ops [] = {
     59        remote_usbhc_get_address,
     60
    6061        remote_usbhc_reserve_default_address,
    6162        remote_usbhc_release_default_address,
     
    6768        remote_usbhc_interrupt_out,
    6869        remote_usbhc_interrupt_in,
    69 
    70         remote_usbhc_bulk_out,
    71         remote_usbhc_bulk_in,
    7270
    7371        remote_usbhc_control_write,
     
    123121}
    124122
     123void remote_usbhc_get_address(device_t *device, void *iface,
     124    ipc_callid_t callid, ipc_call_t *call)
     125{
     126        usbhc_iface_t *usb_iface = (usbhc_iface_t *) iface;
     127
     128        if (!usb_iface->tell_address) {
     129                async_answer_0(callid, ENOTSUP);
     130                return;
     131        }
     132
     133        devman_handle_t handle = DEV_IPC_GET_ARG1(*call);
     134
     135        usb_address_t address;
     136        int rc = usb_iface->tell_address(device, handle, &address);
     137        if (rc != EOK) {
     138                async_answer_0(callid, rc);
     139        } else {
     140                async_answer_1(callid, EOK, address);
     141        }
     142}
     143
    125144void remote_usbhc_reserve_default_address(device_t *device, void *iface,
    126145    ipc_callid_t callid, ipc_call_t *call)
     
    370389        return remote_usbhc_in_transfer(device, callid, call,
    371390            usb_iface->interrupt_in);
    372 }
    373 
    374 void remote_usbhc_bulk_out(device_t *device, void *iface,
    375     ipc_callid_t callid, ipc_call_t *call)
    376 {
    377         usbhc_iface_t *usb_iface = (usbhc_iface_t *) iface;
    378         assert(usb_iface != NULL);
    379 
    380         return remote_usbhc_out_transfer(device, callid, call,
    381             usb_iface->bulk_out);
    382 }
    383 
    384 void remote_usbhc_bulk_in(device_t *device, void *iface,
    385     ipc_callid_t callid, ipc_call_t *call)
    386 {
    387         usbhc_iface_t *usb_iface = (usbhc_iface_t *) iface;
    388         assert(usb_iface != NULL);
    389 
    390         return remote_usbhc_in_transfer(device, callid, call,
    391             usb_iface->bulk_in);
    392391}
    393392
Note: See TracChangeset for help on using the changeset viewer.