Changeset 4f13e19 in mainline for uspace/lib/c/include/async.h
- Timestamp:
- 2019-01-20T15:56:59Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d8cb48d
- Parents:
- eefdd7c
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2019-01-20 15:56:59)
- git-committer:
- GitHub <noreply@…> (2019-01-20 15:56:59)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/include/async.h
reefdd7c r4f13e19 108 108 extern __noreturn void async_manager(void); 109 109 110 #define async_get_call(data) \ 111 async_get_call_timeout(data, 0) 112 110 extern bool async_get_call(ipc_call_t *); 113 111 extern bool async_get_call_timeout(ipc_call_t *, usec_t); 114 112 115 /* 116 * User-friendly wrappers for async_send_fast() and async_send_slow(). The 117 * macros are in the form async_send_m(), where m denotes the number of payload 118 * arguments. Each macros chooses between the fast and the slow version based 119 * on m. 120 */ 121 122 #define async_send_0(exch, method, dataptr) \ 123 async_send_fast(exch, method, 0, 0, 0, 0, dataptr) 124 #define async_send_1(exch, method, arg1, dataptr) \ 125 async_send_fast(exch, method, arg1, 0, 0, 0, dataptr) 126 #define async_send_2(exch, method, arg1, arg2, dataptr) \ 127 async_send_fast(exch, method, arg1, arg2, 0, 0, dataptr) 128 #define async_send_3(exch, method, arg1, arg2, arg3, dataptr) \ 129 async_send_fast(exch, method, arg1, arg2, arg3, 0, dataptr) 130 #define async_send_4(exch, method, arg1, arg2, arg3, arg4, dataptr) \ 131 async_send_fast(exch, method, arg1, arg2, arg3, arg4, dataptr) 132 #define async_send_5(exch, method, arg1, arg2, arg3, arg4, arg5, dataptr) \ 133 async_send_slow(exch, method, arg1, arg2, arg3, arg4, arg5, dataptr) 134 135 extern aid_t async_send_fast(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 113 extern aid_t async_send_0(async_exch_t *, sysarg_t, ipc_call_t *); 114 extern aid_t async_send_1(async_exch_t *, sysarg_t, sysarg_t, ipc_call_t *); 115 extern aid_t async_send_2(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 116 ipc_call_t *); 117 extern aid_t async_send_3(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 118 sysarg_t, ipc_call_t *); 119 extern aid_t async_send_4(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 136 120 sysarg_t, sysarg_t, ipc_call_t *); 137 extern aid_t async_send_ slow(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,121 extern aid_t async_send_5(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 138 122 sysarg_t, sysarg_t, sysarg_t, ipc_call_t *); 139 123 … … 198 182 */ 199 183 200 extern errno_t async_forward_fast(ipc_call_t *, async_exch_t *, sysarg_t, 184 extern errno_t async_forward_0(ipc_call_t *, async_exch_t *, sysarg_t, 185 unsigned int); 186 extern errno_t async_forward_1(ipc_call_t *, async_exch_t *, sysarg_t, 187 sysarg_t, unsigned int); 188 extern errno_t async_forward_2(ipc_call_t *, async_exch_t *, sysarg_t, 201 189 sysarg_t, sysarg_t, unsigned int); 202 extern errno_t async_forward_slow(ipc_call_t *, async_exch_t *, sysarg_t, 190 extern errno_t async_forward_3(ipc_call_t *, async_exch_t *, sysarg_t, 191 sysarg_t, sysarg_t, sysarg_t, unsigned int); 192 extern errno_t async_forward_4(ipc_call_t *, async_exch_t *, sysarg_t, 193 sysarg_t, sysarg_t, sysarg_t, sysarg_t, unsigned int); 194 extern errno_t async_forward_5(ipc_call_t *, async_exch_t *, sysarg_t, 203 195 sysarg_t, sysarg_t, sysarg_t, sysarg_t, sysarg_t, unsigned int); 204 196 205 197 /* 206 * User-friendly wrappers for async_req_fast() and async_req_slow(). The macros 207 * are in the form async_req_m_n(), where m is the number of payload arguments 208 * and n is the number of return arguments. The macros decide between the fast 209 * and slow verion based on m. 210 */ 211 212 #define async_req_0_0(exch, method) \ 213 async_req_fast(exch, method, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL) 214 #define async_req_0_1(exch, method, r1) \ 215 async_req_fast(exch, method, 0, 0, 0, 0, r1, NULL, NULL, NULL, NULL) 216 #define async_req_0_2(exch, method, r1, r2) \ 217 async_req_fast(exch, method, 0, 0, 0, 0, r1, r2, NULL, NULL, NULL) 218 #define async_req_0_3(exch, method, r1, r2, r3) \ 219 async_req_fast(exch, method, 0, 0, 0, 0, r1, r2, r3, NULL, NULL) 220 #define async_req_0_4(exch, method, r1, r2, r3, r4) \ 221 async_req_fast(exch, method, 0, 0, 0, 0, r1, r2, r3, r4, NULL) 222 #define async_req_0_5(exch, method, r1, r2, r3, r4, r5) \ 223 async_req_fast(exch, method, 0, 0, 0, 0, r1, r2, r3, r4, r5) 224 225 #define async_req_1_0(exch, method, arg1) \ 226 async_req_fast(exch, method, arg1, 0, 0, 0, NULL, NULL, NULL, NULL, \ 227 NULL) 228 #define async_req_1_1(exch, method, arg1, rc1) \ 229 async_req_fast(exch, method, arg1, 0, 0, 0, rc1, NULL, NULL, NULL, \ 230 NULL) 231 #define async_req_1_2(exch, method, arg1, rc1, rc2) \ 232 async_req_fast(exch, method, arg1, 0, 0, 0, rc1, rc2, NULL, NULL, \ 233 NULL) 234 #define async_req_1_3(exch, method, arg1, rc1, rc2, rc3) \ 235 async_req_fast(exch, method, arg1, 0, 0, 0, rc1, rc2, rc3, NULL, \ 236 NULL) 237 #define async_req_1_4(exch, method, arg1, rc1, rc2, rc3, rc4) \ 238 async_req_fast(exch, method, arg1, 0, 0, 0, rc1, rc2, rc3, rc4, \ 239 NULL) 240 #define async_req_1_5(exch, method, arg1, rc1, rc2, rc3, rc4, rc5) \ 241 async_req_fast(exch, method, arg1, 0, 0, 0, rc1, rc2, rc3, rc4, \ 242 rc5) 243 244 #define async_req_2_0(exch, method, arg1, arg2) \ 245 async_req_fast(exch, method, arg1, arg2, 0, 0, NULL, NULL, NULL, \ 246 NULL, NULL) 247 #define async_req_2_1(exch, method, arg1, arg2, rc1) \ 248 async_req_fast(exch, method, arg1, arg2, 0, 0, rc1, NULL, NULL, \ 249 NULL, NULL) 250 #define async_req_2_2(exch, method, arg1, arg2, rc1, rc2) \ 251 async_req_fast(exch, method, arg1, arg2, 0, 0, rc1, rc2, NULL, NULL, \ 252 NULL) 253 #define async_req_2_3(exch, method, arg1, arg2, rc1, rc2, rc3) \ 254 async_req_fast(exch, method, arg1, arg2, 0, 0, rc1, rc2, rc3, NULL, \ 255 NULL) 256 #define async_req_2_4(exch, method, arg1, arg2, rc1, rc2, rc3, rc4) \ 257 async_req_fast(exch, method, arg1, arg2, 0, 0, rc1, rc2, rc3, rc4, \ 258 NULL) 259 #define async_req_2_5(exch, method, arg1, arg2, rc1, rc2, rc3, rc4, rc5) \ 260 async_req_fast(exch, method, arg1, arg2, 0, 0, rc1, rc2, rc3, rc4, \ 261 rc5) 262 263 #define async_req_3_0(exch, method, arg1, arg2, arg3) \ 264 async_req_fast(exch, method, arg1, arg2, arg3, 0, NULL, NULL, NULL, \ 265 NULL, NULL) 266 #define async_req_3_1(exch, method, arg1, arg2, arg3, rc1) \ 267 async_req_fast(exch, method, arg1, arg2, arg3, 0, rc1, NULL, NULL, \ 268 NULL, NULL) 269 #define async_req_3_2(exch, method, arg1, arg2, arg3, rc1, rc2) \ 270 async_req_fast(exch, method, arg1, arg2, arg3, 0, rc1, rc2, NULL, \ 271 NULL, NULL) 272 #define async_req_3_3(exch, method, arg1, arg2, arg3, rc1, rc2, rc3) \ 273 async_req_fast(exch, method, arg1, arg2, arg3, 0, rc1, rc2, rc3, \ 274 NULL, NULL) 275 #define async_req_3_4(exch, method, arg1, arg2, arg3, rc1, rc2, rc3, rc4) \ 276 async_req_fast(exch, method, arg1, arg2, arg3, 0, rc1, rc2, rc3, \ 277 rc4, NULL) 278 #define async_req_3_5(exch, method, arg1, arg2, arg3, rc1, rc2, rc3, rc4, \ 279 rc5) \ 280 async_req_fast(exch, method, arg1, arg2, arg3, 0, rc1, rc2, rc3, \ 281 rc4, rc5) 282 283 #define async_req_4_0(exch, method, arg1, arg2, arg3, arg4) \ 284 async_req_fast(exch, method, arg1, arg2, arg3, arg4, NULL, NULL, \ 285 NULL, NULL, NULL) 286 #define async_req_4_1(exch, method, arg1, arg2, arg3, arg4, rc1) \ 287 async_req_fast(exch, method, arg1, arg2, arg3, arg4, rc1, NULL, \ 288 NULL, NULL, NULL) 289 #define async_req_4_2(exch, method, arg1, arg2, arg3, arg4, rc1, rc2) \ 290 async_req_fast(exch, method, arg1, arg2, arg3, arg4, rc1, rc2, NULL, \ 291 NULL, NULL) 292 #define async_req_4_3(exch, method, arg1, arg2, arg3, arg4, rc1, rc2, rc3) \ 293 async_req_fast(exch, method, arg1, arg2, arg3, arg4, rc1, rc2, rc3, \ 294 NULL, NULL) 295 #define async_req_4_4(exch, method, arg1, arg2, arg3, arg4, rc1, rc2, rc3, \ 296 rc4) \ 297 async_req_fast(exch, method, arg1, arg2, arg3, arg4, rc1, rc2, rc3, \ 298 rc4, NULL) 299 #define async_req_4_5(exch, method, arg1, arg2, arg3, arg4, rc1, rc2, rc3, \ 300 rc4, rc5) \ 301 async_req_fast(exch, method, arg1, arg2, arg3, arg4, rc1, rc2, rc3, \ 302 rc4, rc5) 303 304 #define async_req_5_0(exch, method, arg1, arg2, arg3, arg4, arg5) \ 305 async_req_slow(exch, method, arg1, arg2, arg3, arg4, arg5, NULL, \ 306 NULL, NULL, NULL, NULL) 307 #define async_req_5_1(exch, method, arg1, arg2, arg3, arg4, arg5, rc1) \ 308 async_req_slow(exch, method, arg1, arg2, arg3, arg4, arg5, rc1, \ 309 NULL, NULL, NULL, NULL) 310 #define async_req_5_2(exch, method, arg1, arg2, arg3, arg4, arg5, rc1, rc2) \ 311 async_req_slow(exch, method, arg1, arg2, arg3, arg4, arg5, rc1, rc2, \ 312 NULL, NULL, NULL) 313 #define async_req_5_3(exch, method, arg1, arg2, arg3, arg4, arg5, rc1, rc2, \ 314 rc3) \ 315 async_req_slow(exch, method, arg1, arg2, arg3, arg4, arg5, rc1, rc2, \ 316 rc3, NULL, NULL) 317 #define async_req_5_4(exch, method, arg1, arg2, arg3, arg4, arg5, rc1, rc2, \ 318 rc3, rc4) \ 319 async_req_slow(exch, method, arg1, arg2, arg3, arg4, arg5, rc1, rc2, \ 320 rc3, rc4, NULL) 321 #define async_req_5_5(exch, method, arg1, arg2, arg3, arg4, arg5, rc1, rc2, \ 322 rc3, rc4, rc5) \ 323 async_req_slow(exch, method, arg1, arg2, arg3, arg4, arg5, rc1, rc2, \ 324 rc3, rc4, rc5) 325 326 extern errno_t async_req_fast(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 198 * User-friendly wrappers for async_req_*_*(). 199 * The functions are in the form async_req_m_n(), where m is the number of 200 * payload arguments and n is the number of return arguments. 201 */ 202 203 extern errno_t async_req_0_0(async_exch_t *, sysarg_t); 204 extern errno_t async_req_0_1(async_exch_t *, sysarg_t, sysarg_t *); 205 extern errno_t async_req_0_2(async_exch_t *, sysarg_t, sysarg_t *, sysarg_t *); 206 extern errno_t async_req_0_3(async_exch_t *, sysarg_t, sysarg_t *, sysarg_t *, 207 sysarg_t *); 208 extern errno_t async_req_0_4(async_exch_t *, sysarg_t, sysarg_t *, sysarg_t *, 209 sysarg_t *, sysarg_t *); 210 extern errno_t async_req_0_5(async_exch_t *, sysarg_t, sysarg_t *, sysarg_t *, 211 sysarg_t *, sysarg_t *, sysarg_t *); 212 extern errno_t async_req_1_0(async_exch_t *, sysarg_t, sysarg_t); 213 extern errno_t async_req_1_1(async_exch_t *, sysarg_t, sysarg_t, sysarg_t *); 214 extern errno_t async_req_1_2(async_exch_t *, sysarg_t, sysarg_t, sysarg_t *, 215 sysarg_t *); 216 extern errno_t async_req_1_3(async_exch_t *, sysarg_t, sysarg_t, sysarg_t *, 217 sysarg_t *, sysarg_t *); 218 extern errno_t async_req_1_4(async_exch_t *, sysarg_t, sysarg_t, sysarg_t *, 219 sysarg_t *, sysarg_t *, sysarg_t *); 220 extern errno_t async_req_1_5(async_exch_t *, sysarg_t, sysarg_t, sysarg_t *, 221 sysarg_t *, sysarg_t *, sysarg_t *, sysarg_t *); 222 extern errno_t async_req_2_0(async_exch_t *, sysarg_t, sysarg_t, sysarg_t); 223 extern errno_t async_req_2_1(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 224 sysarg_t *); 225 extern errno_t async_req_2_2(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 226 sysarg_t *, sysarg_t *); 227 extern errno_t async_req_2_3(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 228 sysarg_t *, sysarg_t *, sysarg_t *); 229 extern errno_t async_req_2_4(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 230 sysarg_t *, sysarg_t *, sysarg_t *, sysarg_t *); 231 extern errno_t async_req_2_5(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 232 sysarg_t *, sysarg_t *, sysarg_t *, sysarg_t *, sysarg_t *); 233 extern errno_t async_req_3_0(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 234 sysarg_t); 235 extern errno_t async_req_3_1(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 236 sysarg_t, sysarg_t *); 237 extern errno_t async_req_3_2(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 238 sysarg_t, sysarg_t *, sysarg_t *); 239 extern errno_t async_req_3_3(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 240 sysarg_t, sysarg_t *, sysarg_t *, sysarg_t *); 241 extern errno_t async_req_3_4(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 242 sysarg_t, sysarg_t *, sysarg_t *, sysarg_t *, sysarg_t *); 243 extern errno_t async_req_3_5(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 244 sysarg_t, sysarg_t *, sysarg_t *, sysarg_t *, sysarg_t *, sysarg_t *); 245 extern errno_t async_req_4_0(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 246 sysarg_t, sysarg_t); 247 extern errno_t async_req_4_1(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 248 sysarg_t, sysarg_t, sysarg_t *); 249 extern errno_t async_req_4_2(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 250 sysarg_t, sysarg_t, sysarg_t *, sysarg_t *); 251 extern errno_t async_req_4_3(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 252 sysarg_t, sysarg_t, sysarg_t *, sysarg_t *, sysarg_t *); 253 extern errno_t async_req_4_4(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 254 sysarg_t, sysarg_t, sysarg_t *, sysarg_t *, sysarg_t *, sysarg_t *); 255 extern errno_t async_req_4_5(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 327 256 sysarg_t, sysarg_t, sysarg_t *, sysarg_t *, sysarg_t *, sysarg_t *, 328 257 sysarg_t *); 329 extern errno_t async_req_slow(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 258 extern errno_t async_req_5_0(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 259 sysarg_t, sysarg_t, sysarg_t); 260 extern errno_t async_req_5_1(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 261 sysarg_t, sysarg_t, sysarg_t, sysarg_t *); 262 extern errno_t async_req_5_2(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 263 sysarg_t, sysarg_t, sysarg_t, sysarg_t *, sysarg_t *); 264 extern errno_t async_req_5_3(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 265 sysarg_t, sysarg_t, sysarg_t, sysarg_t *, sysarg_t *, sysarg_t *); 266 extern errno_t async_req_5_4(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 267 sysarg_t, sysarg_t, sysarg_t, sysarg_t *, sysarg_t *, sysarg_t *, 268 sysarg_t *); 269 extern errno_t async_req_5_5(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 330 270 sysarg_t, sysarg_t, sysarg_t, sysarg_t *, sysarg_t *, sysarg_t *, 331 271 sysarg_t *, sysarg_t *); … … 357 297 */ 358 298 359 #define async_share_in_start_0_0(exch, size, dst) \ 360 async_share_in_start(exch, size, 0, NULL, dst) 361 #define async_share_in_start_0_1(exch, size, flags, dst) \ 362 async_share_in_start(exch, size, 0, flags, dst) 363 #define async_share_in_start_1_0(exch, size, arg, dst) \ 364 async_share_in_start(exch, size, arg, NULL, dst) 365 #define async_share_in_start_1_1(exch, size, arg, flags, dst) \ 366 async_share_in_start(exch, size, arg, flags, dst) 367 368 extern errno_t async_share_in_start(async_exch_t *, size_t, sysarg_t, 299 extern errno_t async_share_in_start_0_0(async_exch_t *, size_t, void **); 300 extern errno_t async_share_in_start_0_1(async_exch_t *, size_t, 369 301 unsigned int *, void **); 302 extern errno_t async_share_in_start_1_0(async_exch_t *, size_t, sysarg_t, 303 void **); 304 extern errno_t async_share_in_start_1_1(async_exch_t *, size_t, sysarg_t, 305 unsigned int *, void **); 306 370 307 extern bool async_share_in_receive(ipc_call_t *, size_t *); 371 308 extern errno_t async_share_in_finalize(ipc_call_t *, void *, unsigned int); … … 375 312 extern errno_t async_share_out_finalize(ipc_call_t *, void **); 376 313 377 /* 378 * User-friendly wrappers for async_data_read_forward_fast(). 379 */ 380 381 #define async_data_read_forward_0_0(exch, method, answer) \ 382 async_data_read_forward_fast(exch, method, 0, 0, 0, 0, NULL) 383 #define async_data_read_forward_0_1(exch, method, answer) \ 384 async_data_read_forward_fast(exch, method, 0, 0, 0, 0, answer) 385 #define async_data_read_forward_1_0(exch, method, arg1, answer) \ 386 async_data_read_forward_fast(exch, method, arg1, 0, 0, 0, NULL) 387 #define async_data_read_forward_1_1(exch, method, arg1, answer) \ 388 async_data_read_forward_fast(exch, method, arg1, 0, 0, 0, answer) 389 #define async_data_read_forward_2_0(exch, method, arg1, arg2, answer) \ 390 async_data_read_forward_fast(exch, method, arg1, arg2, 0, 0, NULL) 391 #define async_data_read_forward_2_1(exch, method, arg1, arg2, answer) \ 392 async_data_read_forward_fast(exch, method, arg1, arg2, 0, 0, answer) 393 #define async_data_read_forward_3_0(exch, method, arg1, arg2, arg3, answer) \ 394 async_data_read_forward_fast(exch, method, arg1, arg2, arg3, 0, NULL) 395 #define async_data_read_forward_3_1(exch, method, arg1, arg2, arg3, answer) \ 396 async_data_read_forward_fast(exch, method, arg1, arg2, arg3, 0, \ 397 answer) 398 #define async_data_read_forward_4_0(exch, method, arg1, arg2, arg3, arg4, \ 399 answer) \ 400 async_data_read_forward_fast(exch, method, arg1, arg2, arg3, arg4, \ 401 NULL) 402 #define async_data_read_forward_4_1(exch, method, arg1, arg2, arg3, arg4, \ 403 answer) \ 404 async_data_read_forward_fast(exch, method, arg1, arg2, arg3, arg4, \ 405 answer) 314 extern errno_t async_data_read_forward_0_0(async_exch_t *, sysarg_t); 315 extern errno_t async_data_read_forward_1_0(async_exch_t *, sysarg_t, sysarg_t); 316 extern errno_t async_data_read_forward_2_0(async_exch_t *, sysarg_t, sysarg_t, 317 sysarg_t); 318 extern errno_t async_data_read_forward_3_0(async_exch_t *, sysarg_t, sysarg_t, 319 sysarg_t, sysarg_t); 320 extern errno_t async_data_read_forward_4_0(async_exch_t *, sysarg_t, sysarg_t, 321 sysarg_t, sysarg_t, sysarg_t); 322 323 extern errno_t async_data_read_forward_0_1(async_exch_t *, sysarg_t, 324 ipc_call_t *); 325 extern errno_t async_data_read_forward_1_1(async_exch_t *, sysarg_t, sysarg_t, 326 ipc_call_t *); 327 extern errno_t async_data_read_forward_2_1(async_exch_t *, sysarg_t, sysarg_t, 328 sysarg_t, ipc_call_t *); 329 extern errno_t async_data_read_forward_3_1(async_exch_t *, sysarg_t, sysarg_t, 330 sysarg_t, sysarg_t, ipc_call_t *); 331 extern errno_t async_data_read_forward_4_1(async_exch_t *, sysarg_t, sysarg_t, 332 sysarg_t, sysarg_t, sysarg_t, ipc_call_t *); 406 333 407 334 extern aid_t async_data_read(async_exch_t *, void *, size_t, ipc_call_t *); … … 410 337 extern errno_t async_data_read_finalize(ipc_call_t *, const void *, size_t); 411 338 412 extern errno_t async_data_read_forward_fast(async_exch_t *, sysarg_t, sysarg_t, 339 extern errno_t async_data_write_forward_0_0(async_exch_t *, sysarg_t); 340 extern errno_t async_data_write_forward_1_0(async_exch_t *, sysarg_t, sysarg_t); 341 extern errno_t async_data_write_forward_2_0(async_exch_t *, sysarg_t, sysarg_t, 342 sysarg_t); 343 extern errno_t async_data_write_forward_3_0(async_exch_t *, sysarg_t, sysarg_t, 344 sysarg_t, sysarg_t); 345 extern errno_t async_data_write_forward_4_0(async_exch_t *, sysarg_t, sysarg_t, 346 sysarg_t, sysarg_t, sysarg_t); 347 348 extern errno_t async_data_write_forward_0_1(async_exch_t *, sysarg_t, 349 ipc_call_t *); 350 extern errno_t async_data_write_forward_1_1(async_exch_t *, sysarg_t, sysarg_t, 351 ipc_call_t *); 352 extern errno_t async_data_write_forward_2_1(async_exch_t *, sysarg_t, sysarg_t, 353 sysarg_t, ipc_call_t *); 354 extern errno_t async_data_write_forward_3_1(async_exch_t *, sysarg_t, sysarg_t, 355 sysarg_t, sysarg_t, ipc_call_t *); 356 extern errno_t async_data_write_forward_4_1(async_exch_t *, sysarg_t, sysarg_t, 413 357 sysarg_t, sysarg_t, sysarg_t, ipc_call_t *); 414 415 /*416 * User-friendly wrappers for async_data_write_forward_fast().417 */418 419 #define async_data_write_forward_0_0(exch, method, answer) \420 async_data_write_forward_fast(exch, method, 0, 0, 0, 0, NULL)421 #define async_data_write_forward_0_1(exch, method, answer) \422 async_data_write_forward_fast(exch, method, 0, 0, 0, 0, answer)423 #define async_data_write_forward_1_0(exch, method, arg1, answer) \424 async_data_write_forward_fast(exch, method, arg1, 0, 0, 0, NULL)425 #define async_data_write_forward_1_1(exch, method, arg1, answer) \426 async_data_write_forward_fast(exch, method, arg1, 0, 0, 0, answer)427 #define async_data_write_forward_2_0(exch, method, arg1, arg2, answer) \428 async_data_write_forward_fast(exch, method, arg1, arg2, 0, 0, NULL)429 #define async_data_write_forward_2_1(exch, method, arg1, arg2, answer) \430 async_data_write_forward_fast(exch, method, arg1, arg2, 0, 0, answer)431 #define async_data_write_forward_3_0(exch, method, arg1, arg2, arg3, answer) \432 async_data_write_forward_fast(exch, method, arg1, arg2, arg3, 0, \433 NULL)434 #define async_data_write_forward_3_1(exch, method, arg1, arg2, arg3, answer) \435 async_data_write_forward_fast(exch, method, arg1, arg2, arg3, 0, \436 answer)437 #define async_data_write_forward_4_0(exch, method, arg1, arg2, arg3, arg4, \438 answer) \439 async_data_write_forward_fast(exch, method, arg1, arg2, arg3, arg4, \440 NULL)441 #define async_data_write_forward_4_1(exch, method, arg1, arg2, arg3, arg4, \442 answer) \443 async_data_write_forward_fast(exch, method, arg1, arg2, arg3, arg4, \444 answer)445 358 446 359 extern errno_t async_data_write_start(async_exch_t *, const void *, size_t); … … 451 364 const size_t, const size_t, size_t *); 452 365 extern void async_data_write_void(errno_t); 453 454 extern errno_t async_data_write_forward_fast(async_exch_t *, sysarg_t, sysarg_t,455 sysarg_t, sysarg_t, sysarg_t, ipc_call_t *);456 366 457 367 extern async_sess_t *async_callback_receive(exch_mgmt_t);
Note:
See TracChangeset
for help on using the changeset viewer.