Ignore:
Timestamp:
2017-12-21T09:03:55Z (6 years ago)
Author:
Petr Mánek <petr.manek@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ad2a8b1
Parents:
cec130b
Message:

usbdiag: added interrupt endpoint tests, printing tmon device path

File:
1 edited

Legend:

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

    rcec130b re9d600c2  
    4343
    4444typedef enum {
    45         IPC_M_USBDIAG_STRESS_BULK_OUT,
    46         IPC_M_USBDIAG_STRESS_BULK_IN
     45        IPC_M_USBDIAG_STRESS_INTR_IN,
     46        IPC_M_USBDIAG_STRESS_INTR_OUT,
     47        IPC_M_USBDIAG_STRESS_BULK_IN,
     48        IPC_M_USBDIAG_STRESS_BULK_OUT
    4749} usb_iface_funcs_t;
    4850
     
    5860}
    5961
    60 int usbdiag_stress_bulk_out(async_exch_t *exch, int cycles, size_t size)
     62int usbdiag_stress_intr_in(async_exch_t *exch, int cycles, size_t size)
    6163{
    6264        if (!exch)
    6365                return EBADMEM;
    6466
    65         return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_STRESS_BULK_OUT, cycles, size);
     67        return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_STRESS_INTR_IN, cycles, size);
     68}
     69
     70int usbdiag_stress_intr_out(async_exch_t *exch, int cycles, size_t size)
     71{
     72        if (!exch)
     73                return EBADMEM;
     74
     75        return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_STRESS_INTR_OUT, cycles, size);
    6676}
    6777
     
    7484}
    7585
     86int usbdiag_stress_bulk_out(async_exch_t *exch, int cycles, size_t size)
     87{
     88        if (!exch)
     89                return EBADMEM;
     90
     91        return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_STRESS_BULK_OUT, cycles, size);
     92}
     93
     94static void remote_usbdiag_stress_intr_in(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
     95static void remote_usbdiag_stress_intr_out(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
     96static void remote_usbdiag_stress_bulk_in(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
    7697static void remote_usbdiag_stress_bulk_out(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
    77 static void remote_usbdiag_stress_bulk_in(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
    7898
    7999/** Remote USB diagnostic interface operations. */
    80100static const remote_iface_func_ptr_t remote_usbdiag_iface_ops [] = {
    81         [IPC_M_USBDIAG_STRESS_BULK_OUT] = remote_usbdiag_stress_bulk_out,
    82         [IPC_M_USBDIAG_STRESS_BULK_IN] = remote_usbdiag_stress_bulk_in,
     101[       IPC_M_USBDIAG_STRESS_INTR_IN] = remote_usbdiag_stress_intr_in,
     102        [IPC_M_USBDIAG_STRESS_INTR_OUT] = remote_usbdiag_stress_intr_out,
     103[       IPC_M_USBDIAG_STRESS_BULK_IN] = remote_usbdiag_stress_bulk_in,
     104        [IPC_M_USBDIAG_STRESS_BULK_OUT] = remote_usbdiag_stress_bulk_out
    83105};
    84106
     
    89111};
    90112
    91 void remote_usbdiag_stress_bulk_out(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
     113void remote_usbdiag_stress_intr_in(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
     114{
     115        const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface;
     116
     117        if (diag_iface->stress_bulk_in == NULL) {
     118                async_answer_0(callid, ENOTSUP);
     119                return;
     120        }
     121
     122        int cycles = DEV_IPC_GET_ARG1(*call);
     123        size_t size = DEV_IPC_GET_ARG2(*call);
     124        const int ret = diag_iface->stress_intr_in(fun, cycles, size);
     125        async_answer_0(callid, ret);
     126}
     127
     128void remote_usbdiag_stress_intr_out(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
    92129{
    93130        const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface;
     
    100137        int cycles = DEV_IPC_GET_ARG1(*call);
    101138        size_t size = DEV_IPC_GET_ARG2(*call);
    102         const int ret = diag_iface->stress_bulk_out(fun, cycles, size);
     139        const int ret = diag_iface->stress_intr_out(fun, cycles, size);
    103140        async_answer_0(callid, ret);
    104141}
     
    119156}
    120157
     158void remote_usbdiag_stress_bulk_out(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
     159{
     160        const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface;
     161
     162        if (diag_iface->stress_bulk_out == NULL) {
     163                async_answer_0(callid, ENOTSUP);
     164                return;
     165        }
     166
     167        int cycles = DEV_IPC_GET_ARG1(*call);
     168        size_t size = DEV_IPC_GET_ARG2(*call);
     169        const int ret = diag_iface->stress_bulk_out(fun, cycles, size);
     170        async_answer_0(callid, ret);
     171}
     172
    121173/**
    122174 * @}
Note: See TracChangeset for help on using the changeset viewer.