Changeset b7b7898 in mainline for uspace/lib/drv/generic/remote_usbdiag.c
- Timestamp:
- 2017-12-22T12:03:16Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 96c416a
- Parents:
- 2986763
- git-author:
- Petr Mánek <petr.manek@…> (2017-12-22 12:02:50)
- git-committer:
- Petr Mánek <petr.manek@…> (2017-12-22 12:03:16)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/drv/generic/remote_usbdiag.c
r2986763 rb7b7898 43 43 44 44 typedef enum { 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,49 IPC_M_USBDIAG_ STRESS_ISOCH_IN,50 IPC_M_USBDIAG_ STRESS_ISOCH_OUT45 IPC_M_USBDIAG_BURST_INTR_IN, 46 IPC_M_USBDIAG_BURST_INTR_OUT, 47 IPC_M_USBDIAG_BURST_BULK_IN, 48 IPC_M_USBDIAG_BURST_BULK_OUT, 49 IPC_M_USBDIAG_BURST_ISOCH_IN, 50 IPC_M_USBDIAG_BURST_ISOCH_OUT 51 51 } usb_iface_funcs_t; 52 52 … … 62 62 } 63 63 64 int usbdiag_ stress_intr_in(async_exch_t *exch, int cycles, size_t size)65 { 66 if (!exch) 67 return EBADMEM; 68 69 return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_ STRESS_INTR_IN, cycles, size);70 } 71 72 int usbdiag_ stress_intr_out(async_exch_t *exch, int cycles, size_t size)73 { 74 if (!exch) 75 return EBADMEM; 76 77 return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_ STRESS_INTR_OUT, cycles, size);78 } 79 80 int usbdiag_ stress_bulk_in(async_exch_t *exch, int cycles, size_t size)81 { 82 if (!exch) 83 return EBADMEM; 84 85 return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_ STRESS_BULK_IN, cycles, size);86 } 87 88 int usbdiag_ stress_bulk_out(async_exch_t *exch, int cycles, size_t size)89 { 90 if (!exch) 91 return EBADMEM; 92 93 return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_ STRESS_BULK_OUT, cycles, size);94 } 95 96 int usbdiag_ stress_isoch_in(async_exch_t *exch, int cycles, size_t size)97 { 98 if (!exch) 99 return EBADMEM; 100 101 return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_ STRESS_ISOCH_IN, cycles, size);102 } 103 104 int usbdiag_ stress_isoch_out(async_exch_t *exch, int cycles, size_t size)105 { 106 if (!exch) 107 return EBADMEM; 108 109 return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_ STRESS_ISOCH_OUT, cycles, size);110 } 111 112 static void remote_usbdiag_ stress_intr_in(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);113 static void remote_usbdiag_ stress_intr_out(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);114 static void remote_usbdiag_ stress_bulk_in(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);115 static void remote_usbdiag_ stress_bulk_out(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);116 static void remote_usbdiag_ stress_isoch_in(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);117 static void remote_usbdiag_ stress_isoch_out(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);64 int usbdiag_burst_intr_in(async_exch_t *exch, int cycles, size_t size) 65 { 66 if (!exch) 67 return EBADMEM; 68 69 return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_BURST_INTR_IN, cycles, size); 70 } 71 72 int usbdiag_burst_intr_out(async_exch_t *exch, int cycles, size_t size) 73 { 74 if (!exch) 75 return EBADMEM; 76 77 return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_BURST_INTR_OUT, cycles, size); 78 } 79 80 int usbdiag_burst_bulk_in(async_exch_t *exch, int cycles, size_t size) 81 { 82 if (!exch) 83 return EBADMEM; 84 85 return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_BURST_BULK_IN, cycles, size); 86 } 87 88 int usbdiag_burst_bulk_out(async_exch_t *exch, int cycles, size_t size) 89 { 90 if (!exch) 91 return EBADMEM; 92 93 return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_BURST_BULK_OUT, cycles, size); 94 } 95 96 int usbdiag_burst_isoch_in(async_exch_t *exch, int cycles, size_t size) 97 { 98 if (!exch) 99 return EBADMEM; 100 101 return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_BURST_ISOCH_IN, cycles, size); 102 } 103 104 int usbdiag_burst_isoch_out(async_exch_t *exch, int cycles, size_t size) 105 { 106 if (!exch) 107 return EBADMEM; 108 109 return async_req_3_0(exch, DEV_IFACE_ID(USBDIAG_DEV_IFACE), IPC_M_USBDIAG_BURST_ISOCH_OUT, cycles, size); 110 } 111 112 static void remote_usbdiag_burst_intr_in(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *); 113 static void remote_usbdiag_burst_intr_out(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *); 114 static void remote_usbdiag_burst_bulk_in(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *); 115 static void remote_usbdiag_burst_bulk_out(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *); 116 static void remote_usbdiag_burst_isoch_in(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *); 117 static void remote_usbdiag_burst_isoch_out(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *); 118 118 119 119 /** Remote USB diagnostic interface operations. */ 120 120 static const remote_iface_func_ptr_t remote_usbdiag_iface_ops [] = { 121 [IPC_M_USBDIAG_ STRESS_INTR_IN] = remote_usbdiag_stress_intr_in,122 [IPC_M_USBDIAG_ STRESS_INTR_OUT] = remote_usbdiag_stress_intr_out,123 [IPC_M_USBDIAG_ STRESS_BULK_IN] = remote_usbdiag_stress_bulk_in,124 [IPC_M_USBDIAG_ STRESS_BULK_OUT] = remote_usbdiag_stress_bulk_out,125 [IPC_M_USBDIAG_ STRESS_ISOCH_IN] = remote_usbdiag_stress_isoch_in,126 [IPC_M_USBDIAG_ STRESS_ISOCH_OUT] = remote_usbdiag_stress_isoch_out121 [IPC_M_USBDIAG_BURST_INTR_IN] = remote_usbdiag_burst_intr_in, 122 [IPC_M_USBDIAG_BURST_INTR_OUT] = remote_usbdiag_burst_intr_out, 123 [IPC_M_USBDIAG_BURST_BULK_IN] = remote_usbdiag_burst_bulk_in, 124 [IPC_M_USBDIAG_BURST_BULK_OUT] = remote_usbdiag_burst_bulk_out, 125 [IPC_M_USBDIAG_BURST_ISOCH_IN] = remote_usbdiag_burst_isoch_in, 126 [IPC_M_USBDIAG_BURST_ISOCH_OUT] = remote_usbdiag_burst_isoch_out 127 127 }; 128 128 … … 133 133 }; 134 134 135 void remote_usbdiag_ stress_intr_in(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)136 { 137 const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface; 138 139 if (diag_iface-> stress_bulk_in == NULL) {140 async_answer_0(callid, ENOTSUP); 141 return; 142 } 143 144 int cycles = DEV_IPC_GET_ARG1(*call); 145 size_t size = DEV_IPC_GET_ARG2(*call); 146 const int ret = diag_iface-> stress_intr_in(fun, cycles, size);147 async_answer_0(callid, ret); 148 } 149 150 void remote_usbdiag_ stress_intr_out(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)151 { 152 const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface; 153 154 if (diag_iface-> stress_bulk_out == NULL) {155 async_answer_0(callid, ENOTSUP); 156 return; 157 } 158 159 int cycles = DEV_IPC_GET_ARG1(*call); 160 size_t size = DEV_IPC_GET_ARG2(*call); 161 const int ret = diag_iface-> stress_intr_out(fun, cycles, size);162 async_answer_0(callid, ret); 163 } 164 165 void remote_usbdiag_ stress_bulk_in(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)166 { 167 const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface; 168 169 if (diag_iface-> stress_bulk_in == NULL) {170 async_answer_0(callid, ENOTSUP); 171 return; 172 } 173 174 int cycles = DEV_IPC_GET_ARG1(*call); 175 size_t size = DEV_IPC_GET_ARG2(*call); 176 const int ret = diag_iface-> stress_bulk_in(fun, cycles, size);177 async_answer_0(callid, ret); 178 } 179 180 void remote_usbdiag_ stress_bulk_out(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)181 { 182 const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface; 183 184 if (diag_iface-> stress_bulk_out == NULL) {185 async_answer_0(callid, ENOTSUP); 186 return; 187 } 188 189 int cycles = DEV_IPC_GET_ARG1(*call); 190 size_t size = DEV_IPC_GET_ARG2(*call); 191 const int ret = diag_iface-> stress_bulk_out(fun, cycles, size);192 async_answer_0(callid, ret); 193 } 194 195 void remote_usbdiag_ stress_isoch_in(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)196 { 197 const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface; 198 199 if (diag_iface-> stress_isoch_in == NULL) {200 async_answer_0(callid, ENOTSUP); 201 return; 202 } 203 204 int cycles = DEV_IPC_GET_ARG1(*call); 205 size_t size = DEV_IPC_GET_ARG2(*call); 206 const int ret = diag_iface-> stress_isoch_in(fun, cycles, size);207 async_answer_0(callid, ret); 208 } 209 210 void remote_usbdiag_ stress_isoch_out(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)211 { 212 const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface; 213 214 if (diag_iface-> stress_isoch_out == NULL) {215 async_answer_0(callid, ENOTSUP); 216 return; 217 } 218 219 int cycles = DEV_IPC_GET_ARG1(*call); 220 size_t size = DEV_IPC_GET_ARG2(*call); 221 const int ret = diag_iface-> stress_isoch_out(fun, cycles, size);135 void remote_usbdiag_burst_intr_in(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call) 136 { 137 const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface; 138 139 if (diag_iface->burst_bulk_in == NULL) { 140 async_answer_0(callid, ENOTSUP); 141 return; 142 } 143 144 int cycles = DEV_IPC_GET_ARG1(*call); 145 size_t size = DEV_IPC_GET_ARG2(*call); 146 const int ret = diag_iface->burst_intr_in(fun, cycles, size); 147 async_answer_0(callid, ret); 148 } 149 150 void remote_usbdiag_burst_intr_out(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call) 151 { 152 const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface; 153 154 if (diag_iface->burst_bulk_out == NULL) { 155 async_answer_0(callid, ENOTSUP); 156 return; 157 } 158 159 int cycles = DEV_IPC_GET_ARG1(*call); 160 size_t size = DEV_IPC_GET_ARG2(*call); 161 const int ret = diag_iface->burst_intr_out(fun, cycles, size); 162 async_answer_0(callid, ret); 163 } 164 165 void remote_usbdiag_burst_bulk_in(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call) 166 { 167 const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface; 168 169 if (diag_iface->burst_bulk_in == NULL) { 170 async_answer_0(callid, ENOTSUP); 171 return; 172 } 173 174 int cycles = DEV_IPC_GET_ARG1(*call); 175 size_t size = DEV_IPC_GET_ARG2(*call); 176 const int ret = diag_iface->burst_bulk_in(fun, cycles, size); 177 async_answer_0(callid, ret); 178 } 179 180 void remote_usbdiag_burst_bulk_out(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call) 181 { 182 const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface; 183 184 if (diag_iface->burst_bulk_out == NULL) { 185 async_answer_0(callid, ENOTSUP); 186 return; 187 } 188 189 int cycles = DEV_IPC_GET_ARG1(*call); 190 size_t size = DEV_IPC_GET_ARG2(*call); 191 const int ret = diag_iface->burst_bulk_out(fun, cycles, size); 192 async_answer_0(callid, ret); 193 } 194 195 void remote_usbdiag_burst_isoch_in(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call) 196 { 197 const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface; 198 199 if (diag_iface->burst_isoch_in == NULL) { 200 async_answer_0(callid, ENOTSUP); 201 return; 202 } 203 204 int cycles = DEV_IPC_GET_ARG1(*call); 205 size_t size = DEV_IPC_GET_ARG2(*call); 206 const int ret = diag_iface->burst_isoch_in(fun, cycles, size); 207 async_answer_0(callid, ret); 208 } 209 210 void remote_usbdiag_burst_isoch_out(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call) 211 { 212 const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface; 213 214 if (diag_iface->burst_isoch_out == NULL) { 215 async_answer_0(callid, ENOTSUP); 216 return; 217 } 218 219 int cycles = DEV_IPC_GET_ARG1(*call); 220 size_t size = DEV_IPC_GET_ARG2(*call); 221 const int ret = diag_iface->burst_isoch_out(fun, cycles, size); 222 222 async_answer_0(callid, ret); 223 223 }
Note:
See TracChangeset
for help on using the changeset viewer.