Ignore:
Timestamp:
2018-01-16T20:23:54Z (8 years ago)
Author:
Ondřej Hlavatý <aearsis@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
51a51be
Parents:
eeca8a6
Message:

libdrv: merged usbhc default address reservation operations

File:
1 edited

Legend:

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

    reeca8a6 r4603b35  
    4545
    4646typedef enum {
    47         IPC_M_USB_RESERVE_DEFAULT_ADDRESS,
    48         IPC_M_USB_RELEASE_DEFAULT_ADDRESS,
     47        IPC_M_USB_DEFAULT_ADDRESS_RESERVATION,
    4948        IPC_M_USB_DEVICE_ENUMERATE,
    5049        IPC_M_USB_DEVICE_REMOVE,
     
    6362        if (!exch)
    6463                return EBADMEM;
    65         return async_req_1_0(exch, DEV_IFACE_ID(USBHC_DEV_IFACE), IPC_M_USB_RESERVE_DEFAULT_ADDRESS);
     64        return async_req_2_0(exch, DEV_IFACE_ID(USBHC_DEV_IFACE), IPC_M_USB_DEFAULT_ADDRESS_RESERVATION, true);
    6665}
    6766
     
    7675        if (!exch)
    7776                return EBADMEM;
    78         return async_req_1_0(exch, DEV_IFACE_ID(USBHC_DEV_IFACE), IPC_M_USB_RELEASE_DEFAULT_ADDRESS);
     77        return async_req_2_0(exch, DEV_IFACE_ID(USBHC_DEV_IFACE), IPC_M_USB_DEFAULT_ADDRESS_RESERVATION, false);
    7978}
    8079
     
    263262}
    264263
    265 static void remote_usbhc_reserve_default_address(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
    266 static void remote_usbhc_release_default_address(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
     264static void remote_usbhc_default_address_reservation(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
    267265static void remote_usbhc_device_enumerate(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
    268266static void remote_usbhc_device_remove(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
     
    274272/** Remote USB interface operations. */
    275273static const remote_iface_func_ptr_t remote_usbhc_iface_ops [] = {
    276         [IPC_M_USB_RESERVE_DEFAULT_ADDRESS] = remote_usbhc_reserve_default_address,
    277         [IPC_M_USB_RELEASE_DEFAULT_ADDRESS] = remote_usbhc_release_default_address,
     274        [IPC_M_USB_DEFAULT_ADDRESS_RESERVATION] = remote_usbhc_default_address_reservation,
    278275        [IPC_M_USB_DEVICE_ENUMERATE] = remote_usbhc_device_enumerate,
    279276        [IPC_M_USB_DEVICE_REMOVE] = remote_usbhc_device_remove,
     
    297294} async_transaction_t;
    298295
    299 void remote_usbhc_reserve_default_address(ddf_fun_t *fun, void *iface,
     296void remote_usbhc_default_address_reservation(ddf_fun_t *fun, void *iface,
    300297    ipc_callid_t callid, ipc_call_t *call)
    301298{
    302299        const usbhc_iface_t *usbhc_iface = (usbhc_iface_t *) iface;
    303300
    304         if (usbhc_iface->reserve_default_address == NULL) {
    305                 async_answer_0(callid, ENOTSUP);
    306                 return;
    307         }
    308 
    309         const int ret = usbhc_iface->reserve_default_address(fun);
     301        if (usbhc_iface->default_address_reservation == NULL) {
     302                async_answer_0(callid, ENOTSUP);
     303                return;
     304        }
     305
     306        const bool reserve = IPC_GET_ARG2(*call);
     307        const int ret = usbhc_iface->default_address_reservation(fun, reserve);
    310308        async_answer_0(callid, ret);
    311309}
    312310
    313 void remote_usbhc_release_default_address(ddf_fun_t *fun, void *iface,
    314     ipc_callid_t callid, ipc_call_t *call)
    315 {
    316         const usbhc_iface_t *usbhc_iface = (usbhc_iface_t *) iface;
    317 
    318         if (usbhc_iface->release_default_address == NULL) {
    319                 async_answer_0(callid, ENOTSUP);
    320                 return;
    321         }
    322 
    323         const int ret = usbhc_iface->release_default_address(fun);
    324         async_answer_0(callid, ret);
    325 }
    326311
    327312static void remote_usbhc_device_enumerate(ddf_fun_t *fun, void *iface,
Note: See TracChangeset for help on using the changeset viewer.