Changeset 4f13e19 in mainline


Ignore:
Timestamp:
2019-01-20T15:56:59Z (5 years ago)
Author:
GitHub <noreply@…>
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)
Message:

Remove async "fast" and "slow" functions from public interface (#153)

"fast" and "slow" paths are implementation detail.
All macros in <async.h> are turned into external functions, so that
this implementation detail doesn't leak. Additionally, removing macros is
A Good Thing on its own, e.g. helping C++ interoperability.

Location:
uspace
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/async/client.c

    reefdd7c r4f13e19  
    249249 *
    250250 */
    251 aid_t async_send_fast(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
     251static aid_t async_send_fast(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
    252252    sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, ipc_call_t *dataptr)
    253253{
     
    289289 *
    290290 */
    291 aid_t async_send_slow(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
     291static aid_t async_send_slow(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
    292292    sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5,
    293293    ipc_call_t *dataptr)
     
    310310
    311311        return (aid_t) msg;
     312}
     313
     314aid_t async_send_0(async_exch_t *exch, sysarg_t imethod, ipc_call_t *dataptr)
     315{
     316        return async_send_fast(exch, imethod, 0, 0, 0, 0, dataptr);
     317}
     318
     319aid_t async_send_1(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
     320    ipc_call_t *dataptr)
     321{
     322        return async_send_fast(exch, imethod, arg1, 0, 0, 0, dataptr);
     323}
     324
     325aid_t async_send_2(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
     326    sysarg_t arg2, ipc_call_t *dataptr)
     327{
     328        return async_send_fast(exch, imethod, arg1, arg2, 0, 0, dataptr);
     329}
     330
     331aid_t async_send_3(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
     332    sysarg_t arg2, sysarg_t arg3, ipc_call_t *dataptr)
     333{
     334        return async_send_fast(exch, imethod, arg1, arg2, arg3, 0, dataptr);
     335}
     336
     337aid_t async_send_4(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
     338    sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, ipc_call_t *dataptr)
     339{
     340        return async_send_fast(exch, imethod, arg1, arg2, arg3, arg4, dataptr);
     341}
     342
     343aid_t async_send_5(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
     344    sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5,
     345    ipc_call_t *dataptr)
     346{
     347        return async_send_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5,
     348            dataptr);
    312349}
    313350
     
    434471 *
    435472 */
    436 errno_t async_req_fast(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
    437     sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2,
    438     sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
     473static errno_t async_req_fast(async_exch_t *exch, sysarg_t imethod,
     474    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4,
     475    sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
    439476{
    440477        if (exch == NULL)
     
    486523 *
    487524 */
    488 errno_t async_req_slow(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
    489     sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1,
    490     sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
     525static errno_t async_req_slow(async_exch_t *exch, sysarg_t imethod,
     526    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5,
     527    sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
    491528{
    492529        if (exch == NULL)
     
    516553
    517554        return rc;
     555}
     556
     557errno_t async_req_0_0(async_exch_t *exch, sysarg_t imethod)
     558{
     559        return async_req_fast(exch, imethod, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL);
     560}
     561
     562errno_t async_req_0_1(async_exch_t *exch, sysarg_t imethod, sysarg_t *r1)
     563{
     564        return async_req_fast(exch, imethod, 0, 0, 0, 0, r1, NULL, NULL, NULL, NULL);
     565}
     566
     567errno_t async_req_0_2(async_exch_t *exch, sysarg_t imethod, sysarg_t *r1, sysarg_t *r2)
     568{
     569        return async_req_fast(exch, imethod, 0, 0, 0, 0, r1, r2, NULL, NULL, NULL);
     570}
     571
     572errno_t async_req_0_3(async_exch_t *exch, sysarg_t imethod, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3)
     573{
     574        return async_req_fast(exch, imethod, 0, 0, 0, 0, r1, r2, r3, NULL, NULL);
     575}
     576
     577errno_t async_req_0_4(async_exch_t *exch, sysarg_t imethod, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4)
     578{
     579        return async_req_fast(exch, imethod, 0, 0, 0, 0, r1, r2, r3, r4, NULL);
     580}
     581
     582errno_t async_req_0_5(async_exch_t *exch, sysarg_t imethod, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
     583{
     584        return async_req_fast(exch, imethod, 0, 0, 0, 0, r1, r2, r3, r4, r5);
     585}
     586
     587errno_t async_req_1_0(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1)
     588{
     589        return async_req_fast(exch, imethod, arg1, 0, 0, 0, NULL, NULL, NULL, NULL, NULL);
     590}
     591
     592errno_t async_req_1_1(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t *r1)
     593{
     594        return async_req_fast(exch, imethod, arg1, 0, 0, 0, r1, NULL, NULL, NULL, NULL);
     595}
     596
     597errno_t async_req_1_2(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t *r1, sysarg_t *r2)
     598{
     599        return async_req_fast(exch, imethod, arg1, 0, 0, 0, r1, r2, NULL, NULL, NULL);
     600}
     601
     602errno_t async_req_1_3(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3)
     603{
     604        return async_req_fast(exch, imethod, arg1, 0, 0, 0, r1, r2, r3, NULL, NULL);
     605}
     606
     607errno_t async_req_1_4(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4)
     608{
     609        return async_req_fast(exch, imethod, arg1, 0, 0, 0, r1, r2, r3, r4, NULL);
     610}
     611
     612errno_t async_req_1_5(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
     613{
     614        return async_req_fast(exch, imethod, arg1, 0, 0, 0, r1, r2, r3, r4, r5);
     615}
     616
     617errno_t async_req_2_0(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2)
     618{
     619        return async_req_fast(exch, imethod, arg1, arg2, 0, 0, NULL, NULL, NULL, NULL, NULL);
     620}
     621
     622errno_t async_req_2_1(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t *r1)
     623{
     624        return async_req_fast(exch, imethod, arg1, arg2, 0, 0, r1, NULL, NULL, NULL, NULL);
     625}
     626
     627errno_t async_req_2_2(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t *r1, sysarg_t *r2)
     628{
     629        return async_req_fast(exch, imethod, arg1, arg2, 0, 0, r1, r2, NULL, NULL, NULL);
     630}
     631
     632errno_t async_req_2_3(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3)
     633{
     634        return async_req_fast(exch, imethod, arg1, arg2, 0, 0, r1, r2, r3, NULL, NULL);
     635}
     636
     637errno_t async_req_2_4(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4)
     638{
     639        return async_req_fast(exch, imethod, arg1, arg2, 0, 0, r1, r2, r3, r4, NULL);
     640}
     641
     642errno_t async_req_2_5(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
     643{
     644        return async_req_fast(exch, imethod, arg1, arg2, 0, 0, r1, r2, r3, r4, r5);
     645}
     646
     647errno_t async_req_3_0(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3)
     648{
     649        return async_req_fast(exch, imethod, arg1, arg2, arg3, 0, NULL, NULL, NULL, NULL, NULL);
     650}
     651
     652errno_t async_req_3_1(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t *r1)
     653{
     654        return async_req_fast(exch, imethod, arg1, arg2, arg3, 0, r1, NULL, NULL, NULL, NULL);
     655}
     656
     657errno_t async_req_3_2(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t *r1, sysarg_t *r2)
     658{
     659        return async_req_fast(exch, imethod, arg1, arg2, arg3, 0, r1, r2, NULL, NULL, NULL);
     660}
     661
     662errno_t async_req_3_3(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3)
     663{
     664        return async_req_fast(exch, imethod, arg1, arg2, arg3, 0, r1, r2, r3, NULL, NULL);
     665}
     666
     667errno_t async_req_3_4(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4)
     668{
     669        return async_req_fast(exch, imethod, arg1, arg2, arg3, 0, r1, r2, r3, r4, NULL);
     670}
     671
     672errno_t async_req_3_5(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
     673{
     674        return async_req_fast(exch, imethod, arg1, arg2, arg3, 0, r1, r2, r3, r4, r5);
     675}
     676
     677errno_t async_req_4_0(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4)
     678{
     679        return async_req_fast(exch, imethod, arg1, arg2, arg3, arg4, NULL, NULL, NULL, NULL, NULL);
     680}
     681
     682errno_t async_req_4_1(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1)
     683{
     684        return async_req_fast(exch, imethod, arg1, arg2, arg3, arg4, r1, NULL, NULL, NULL, NULL);
     685}
     686
     687errno_t async_req_4_2(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2)
     688{
     689        return async_req_fast(exch, imethod, arg1, arg2, arg3, arg4, r1, r2, NULL, NULL, NULL);
     690}
     691
     692errno_t async_req_4_3(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3)
     693{
     694        return async_req_fast(exch, imethod, arg1, arg2, arg3, arg4, r1, r2, r3, NULL, NULL);
     695}
     696
     697errno_t async_req_4_4(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4)
     698{
     699        return async_req_fast(exch, imethod, arg1, arg2, arg3, arg4, r1, r2, r3, r4, NULL);
     700}
     701
     702errno_t async_req_4_5(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
     703{
     704        return async_req_fast(exch, imethod, arg1, arg2, arg3, arg4, r1, r2, r3, r4, r5);
     705}
     706
     707errno_t async_req_5_0(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5)
     708{
     709        return async_req_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5, NULL, NULL, NULL, NULL, NULL);
     710}
     711
     712errno_t async_req_5_1(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1)
     713{
     714        return async_req_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5, r1, NULL, NULL, NULL, NULL);
     715}
     716
     717errno_t async_req_5_2(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1, sysarg_t *r2)
     718{
     719        return async_req_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5, r1, r2, NULL, NULL, NULL);
     720}
     721
     722errno_t async_req_5_3(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3)
     723{
     724        return async_req_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5, r1, r2, r3, NULL, NULL);
     725}
     726
     727errno_t async_req_5_4(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4)
     728{
     729        return async_req_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5, r1, r2, r3, r4, NULL);
     730}
     731
     732errno_t async_req_5_5(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
     733{
     734        return async_req_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5, r1, r2, r3, r4, r5);
    518735}
    519736
     
    9261143 *
    9271144 */
    928 errno_t async_share_in_start(async_exch_t *exch, size_t size, sysarg_t arg,
    929     unsigned int *flags, void **dst)
     1145static errno_t async_share_in_start(async_exch_t *exch, size_t size,
     1146    sysarg_t arg, unsigned int *flags, void **dst)
    9301147{
    9311148        if (exch == NULL)
     
    9431160        *dst = (void *) _dst;
    9441161        return res;
     1162}
     1163
     1164errno_t async_share_in_start_0_0(async_exch_t *exch, size_t size, void **dst)
     1165{
     1166        return async_share_in_start(exch, size, 0, NULL, dst);
     1167}
     1168
     1169errno_t async_share_in_start_0_1(async_exch_t *exch, size_t size,
     1170    unsigned int *flags, void **dst)
     1171{
     1172        return async_share_in_start(exch, size, 0, flags, dst);
     1173}
     1174
     1175errno_t async_share_in_start_1_0(async_exch_t *exch, size_t size, sysarg_t arg,
     1176    void **dst)
     1177{
     1178        return async_share_in_start(exch, size, arg, NULL, dst);
     1179}
     1180
     1181errno_t async_share_in_start_1_1(async_exch_t *exch, size_t size, sysarg_t arg,
     1182    unsigned int *flags, void **dst)
     1183{
     1184        return async_share_in_start(exch, size, arg, flags, dst);
    9451185}
    9461186
  • uspace/lib/c/generic/async/server.c

    reefdd7c r4f13e19  
    878878}
    879879
     880bool async_get_call(ipc_call_t *call)
     881{
     882        return async_get_call_timeout(call, 0);
     883}
     884
    880885void *async_get_client_data(void)
    881886{
     
    10961101}
    10971102
    1098 errno_t async_forward_fast(ipc_call_t *call, async_exch_t *exch,
     1103static errno_t async_forward_fast(ipc_call_t *call, async_exch_t *exch,
    10991104    sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, unsigned int mode)
    11001105{
     
    11121117}
    11131118
    1114 errno_t async_forward_slow(ipc_call_t *call, async_exch_t *exch,
     1119static errno_t async_forward_slow(ipc_call_t *call, async_exch_t *exch,
    11151120    sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3,
    11161121    sysarg_t arg4, sysarg_t arg5, unsigned int mode)
     
    11271132        return ipc_forward_slow(chandle, exch->phone, imethod, arg1, arg2, arg3,
    11281133            arg4, arg5, mode);
     1134}
     1135
     1136errno_t async_forward_0(ipc_call_t *call, async_exch_t *exch, sysarg_t imethod,
     1137    unsigned int mode)
     1138{
     1139        return async_forward_fast(call, exch, imethod, 0, 0, mode);
     1140}
     1141
     1142errno_t async_forward_1(ipc_call_t *call, async_exch_t *exch, sysarg_t imethod,
     1143    sysarg_t arg1, unsigned int mode)
     1144{
     1145        return async_forward_fast(call, exch, imethod, arg1, 0, mode);
     1146}
     1147
     1148errno_t async_forward_2(ipc_call_t *call, async_exch_t *exch, sysarg_t imethod,
     1149    sysarg_t arg1, sysarg_t arg2, unsigned int mode)
     1150{
     1151        return async_forward_fast(call, exch, imethod, arg1, arg2, mode);
     1152}
     1153
     1154errno_t async_forward_3(ipc_call_t *call, async_exch_t *exch, sysarg_t imethod,
     1155    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, unsigned int mode)
     1156{
     1157        return async_forward_slow(call, exch, imethod, arg1, arg2, arg3, 0, 0,
     1158            mode);
     1159}
     1160
     1161errno_t async_forward_4(ipc_call_t *call, async_exch_t *exch, sysarg_t imethod,
     1162    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4,
     1163    unsigned int mode)
     1164{
     1165        return async_forward_slow(call, exch, imethod, arg1, arg2, arg3, arg4,
     1166            0, mode);
     1167}
     1168
     1169errno_t async_forward_5(ipc_call_t *call, async_exch_t *exch, sysarg_t imethod,
     1170    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5,
     1171    unsigned int mode)
     1172{
     1173        return async_forward_slow(call, exch, imethod, arg1, arg2, arg3, arg4,
     1174            arg5, mode);
    11291175}
    11301176
     
    13201366 *
    13211367 */
    1322 errno_t async_data_read_forward_fast(async_exch_t *exch, sysarg_t imethod,
     1368static errno_t async_data_read_forward_fast(async_exch_t *exch, sysarg_t imethod,
    13231369    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4,
    13241370    ipc_call_t *dataptr)
     
    13331379        }
    13341380
    1335         aid_t msg = async_send_fast(exch, imethod, arg1, arg2, arg3, arg4,
     1381        aid_t msg = async_send_4(exch, imethod, arg1, arg2, arg3, arg4,
    13361382            dataptr);
    13371383        if (msg == 0) {
     
    13521398
    13531399        return (errno_t) rc;
     1400}
     1401
     1402errno_t async_data_read_forward_0_0(async_exch_t *exch, sysarg_t imethod)
     1403{
     1404        return async_data_read_forward_fast(exch, imethod, 0, 0, 0, 0, NULL);
     1405}
     1406
     1407errno_t async_data_read_forward_1_0(async_exch_t *exch, sysarg_t imethod,
     1408    sysarg_t arg1)
     1409{
     1410        return async_data_read_forward_fast(exch, imethod, arg1, 0, 0, 0, NULL);
     1411}
     1412
     1413errno_t async_data_read_forward_2_0(async_exch_t *exch, sysarg_t imethod,
     1414    sysarg_t arg1, sysarg_t arg2)
     1415{
     1416        return async_data_read_forward_fast(exch, imethod, arg1, arg2, 0,
     1417            0, NULL);
     1418}
     1419
     1420errno_t async_data_read_forward_3_0(async_exch_t *exch, sysarg_t imethod,
     1421    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3)
     1422{
     1423        return async_data_read_forward_fast(exch, imethod, arg1, arg2, arg3,
     1424            0, NULL);
     1425}
     1426
     1427errno_t async_data_read_forward_4_0(async_exch_t *exch, sysarg_t imethod,
     1428    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4)
     1429{
     1430        return async_data_read_forward_fast(exch, imethod, arg1, arg2, arg3,
     1431            arg4, NULL);
     1432}
     1433
     1434errno_t async_data_read_forward_0_1(async_exch_t *exch, sysarg_t imethod,
     1435    ipc_call_t *dataptr)
     1436{
     1437        return async_data_read_forward_fast(exch, imethod, 0, 0, 0,
     1438            0, dataptr);
     1439}
     1440
     1441errno_t async_data_read_forward_1_1(async_exch_t *exch, sysarg_t imethod,
     1442    sysarg_t arg1, ipc_call_t *dataptr)
     1443{
     1444        return async_data_read_forward_fast(exch, imethod, arg1, 0, 0,
     1445            0, dataptr);
     1446}
     1447
     1448errno_t async_data_read_forward_2_1(async_exch_t *exch, sysarg_t imethod,
     1449    sysarg_t arg1, sysarg_t arg2, ipc_call_t *dataptr)
     1450{
     1451        return async_data_read_forward_fast(exch, imethod, arg1, arg2, 0,
     1452            0, dataptr);
     1453}
     1454
     1455errno_t async_data_read_forward_3_1(async_exch_t *exch, sysarg_t imethod,
     1456    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, ipc_call_t *dataptr)
     1457{
     1458        return async_data_read_forward_fast(exch, imethod, arg1, arg2, arg3,
     1459            0, dataptr);
     1460}
     1461
     1462errno_t async_data_read_forward_4_1(async_exch_t *exch, sysarg_t imethod,
     1463    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4,
     1464    ipc_call_t *dataptr)
     1465{
     1466        return async_data_read_forward_fast(exch, imethod, arg1, arg2, arg3,
     1467            arg4, dataptr);
    13541468}
    13551469
     
    14971611 *
    14981612 */
    1499 errno_t async_data_write_forward_fast(async_exch_t *exch, sysarg_t imethod,
    1500     sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4,
    1501     ipc_call_t *dataptr)
     1613static errno_t async_data_write_forward_fast(async_exch_t *exch,
     1614    sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3,
     1615    sysarg_t arg4, ipc_call_t *dataptr)
    15021616{
    15031617        if (exch == NULL)
     
    15101624        }
    15111625
    1512         aid_t msg = async_send_fast(exch, imethod, arg1, arg2, arg3, arg4,
     1626        aid_t msg = async_send_4(exch, imethod, arg1, arg2, arg3, arg4,
    15131627            dataptr);
    15141628        if (msg == 0) {
     
    15311645}
    15321646
     1647errno_t async_data_write_forward_0_0(async_exch_t *exch, sysarg_t imethod)
     1648{
     1649        return async_data_write_forward_fast(exch, imethod, 0, 0, 0,
     1650            0, NULL);
     1651}
     1652
     1653errno_t async_data_write_forward_1_0(async_exch_t *exch, sysarg_t imethod,
     1654    sysarg_t arg1)
     1655{
     1656        return async_data_write_forward_fast(exch, imethod, arg1, 0, 0,
     1657            0, NULL);
     1658}
     1659
     1660errno_t async_data_write_forward_2_0(async_exch_t *exch, sysarg_t imethod,
     1661    sysarg_t arg1, sysarg_t arg2)
     1662{
     1663        return async_data_write_forward_fast(exch, imethod, arg1, arg2, 0,
     1664            0, NULL);
     1665}
     1666
     1667errno_t async_data_write_forward_3_0(async_exch_t *exch, sysarg_t imethod,
     1668    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3)
     1669{
     1670        return async_data_write_forward_fast(exch, imethod, arg1, arg2, arg3,
     1671            0, NULL);
     1672}
     1673
     1674errno_t async_data_write_forward_4_0(async_exch_t *exch, sysarg_t imethod,
     1675    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4)
     1676{
     1677        return async_data_write_forward_fast(exch, imethod, arg1, arg2, arg3,
     1678            arg4, NULL);
     1679}
     1680
     1681errno_t async_data_write_forward_0_1(async_exch_t *exch, sysarg_t imethod,
     1682    ipc_call_t *dataptr)
     1683{
     1684        return async_data_write_forward_fast(exch, imethod, 0, 0, 0,
     1685            0, dataptr);
     1686}
     1687
     1688errno_t async_data_write_forward_1_1(async_exch_t *exch, sysarg_t imethod,
     1689    sysarg_t arg1, ipc_call_t *dataptr)
     1690{
     1691        return async_data_write_forward_fast(exch, imethod, arg1, 0, 0,
     1692            0, dataptr);
     1693}
     1694
     1695errno_t async_data_write_forward_2_1(async_exch_t *exch, sysarg_t imethod,
     1696    sysarg_t arg1, sysarg_t arg2, ipc_call_t *dataptr)
     1697{
     1698        return async_data_write_forward_fast(exch, imethod, arg1, arg2, 0,
     1699            0, dataptr);
     1700}
     1701
     1702errno_t async_data_write_forward_3_1(async_exch_t *exch, sysarg_t imethod,
     1703    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, ipc_call_t *dataptr)
     1704{
     1705        return async_data_write_forward_fast(exch, imethod, arg1, arg2, arg3,
     1706            0, dataptr);
     1707}
     1708
     1709errno_t async_data_write_forward_4_1(async_exch_t *exch, sysarg_t imethod,
     1710    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4,
     1711    ipc_call_t *dataptr)
     1712{
     1713        return async_data_write_forward_fast(exch, imethod, arg1, arg2, arg3,
     1714            arg4, dataptr);
     1715}
     1716
    15331717/** Wrapper for receiving the IPC_M_CONNECT_TO_ME calls.
    15341718 *
  • uspace/lib/c/include/async.h

    reefdd7c r4f13e19  
    108108extern __noreturn void async_manager(void);
    109109
    110 #define async_get_call(data) \
    111         async_get_call_timeout(data, 0)
    112 
     110extern bool async_get_call(ipc_call_t *);
    113111extern bool async_get_call_timeout(ipc_call_t *, usec_t);
    114112
    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,
     113extern aid_t async_send_0(async_exch_t *, sysarg_t, ipc_call_t *);
     114extern aid_t async_send_1(async_exch_t *, sysarg_t, sysarg_t, ipc_call_t *);
     115extern aid_t async_send_2(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     116    ipc_call_t *);
     117extern aid_t async_send_3(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     118    sysarg_t, ipc_call_t *);
     119extern aid_t async_send_4(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
    136120    sysarg_t, sysarg_t, ipc_call_t *);
    137 extern aid_t async_send_slow(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     121extern aid_t async_send_5(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
    138122    sysarg_t, sysarg_t, sysarg_t, ipc_call_t *);
    139123
     
    198182 */
    199183
    200 extern errno_t async_forward_fast(ipc_call_t *, async_exch_t *, sysarg_t,
     184extern errno_t async_forward_0(ipc_call_t *, async_exch_t *, sysarg_t,
     185    unsigned int);
     186extern errno_t async_forward_1(ipc_call_t *, async_exch_t *, sysarg_t,
     187    sysarg_t, unsigned int);
     188extern errno_t async_forward_2(ipc_call_t *, async_exch_t *, sysarg_t,
    201189    sysarg_t, sysarg_t, unsigned int);
    202 extern errno_t async_forward_slow(ipc_call_t *, async_exch_t *, sysarg_t,
     190extern errno_t async_forward_3(ipc_call_t *, async_exch_t *, sysarg_t,
     191    sysarg_t, sysarg_t, sysarg_t, unsigned int);
     192extern errno_t async_forward_4(ipc_call_t *, async_exch_t *, sysarg_t,
     193    sysarg_t, sysarg_t, sysarg_t, sysarg_t, unsigned int);
     194extern errno_t async_forward_5(ipc_call_t *, async_exch_t *, sysarg_t,
    203195    sysarg_t, sysarg_t, sysarg_t, sysarg_t, sysarg_t, unsigned int);
    204196
    205197/*
    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
     203extern errno_t async_req_0_0(async_exch_t *, sysarg_t);
     204extern errno_t async_req_0_1(async_exch_t *, sysarg_t, sysarg_t *);
     205extern errno_t async_req_0_2(async_exch_t *, sysarg_t, sysarg_t *, sysarg_t *);
     206extern errno_t async_req_0_3(async_exch_t *, sysarg_t, sysarg_t *, sysarg_t *,
     207    sysarg_t *);
     208extern errno_t async_req_0_4(async_exch_t *, sysarg_t, sysarg_t *, sysarg_t *,
     209    sysarg_t *, sysarg_t *);
     210extern errno_t async_req_0_5(async_exch_t *, sysarg_t, sysarg_t *, sysarg_t *,
     211    sysarg_t *, sysarg_t *, sysarg_t *);
     212extern errno_t async_req_1_0(async_exch_t *, sysarg_t, sysarg_t);
     213extern errno_t async_req_1_1(async_exch_t *, sysarg_t, sysarg_t, sysarg_t *);
     214extern errno_t async_req_1_2(async_exch_t *, sysarg_t, sysarg_t, sysarg_t *,
     215    sysarg_t *);
     216extern errno_t async_req_1_3(async_exch_t *, sysarg_t, sysarg_t, sysarg_t *,
     217    sysarg_t *, sysarg_t *);
     218extern errno_t async_req_1_4(async_exch_t *, sysarg_t, sysarg_t, sysarg_t *,
     219    sysarg_t *, sysarg_t *, sysarg_t *);
     220extern errno_t async_req_1_5(async_exch_t *, sysarg_t, sysarg_t, sysarg_t *,
     221    sysarg_t *, sysarg_t *, sysarg_t *, sysarg_t *);
     222extern errno_t async_req_2_0(async_exch_t *, sysarg_t, sysarg_t, sysarg_t);
     223extern errno_t async_req_2_1(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     224    sysarg_t *);
     225extern errno_t async_req_2_2(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     226    sysarg_t *, sysarg_t *);
     227extern errno_t async_req_2_3(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     228    sysarg_t *, sysarg_t *, sysarg_t *);
     229extern errno_t async_req_2_4(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     230    sysarg_t *, sysarg_t *, sysarg_t *, sysarg_t *);
     231extern 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 *);
     233extern errno_t async_req_3_0(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     234    sysarg_t);
     235extern errno_t async_req_3_1(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     236    sysarg_t, sysarg_t *);
     237extern errno_t async_req_3_2(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     238    sysarg_t, sysarg_t *, sysarg_t *);
     239extern errno_t async_req_3_3(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     240    sysarg_t, sysarg_t *, sysarg_t *, sysarg_t *);
     241extern 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 *);
     243extern 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 *);
     245extern errno_t async_req_4_0(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     246    sysarg_t, sysarg_t);
     247extern errno_t async_req_4_1(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     248    sysarg_t, sysarg_t, sysarg_t *);
     249extern errno_t async_req_4_2(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     250    sysarg_t, sysarg_t, sysarg_t *, sysarg_t *);
     251extern 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 *);
     253extern 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 *);
     255extern errno_t async_req_4_5(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
    327256    sysarg_t, sysarg_t, sysarg_t *, sysarg_t *, sysarg_t *, sysarg_t *,
    328257    sysarg_t *);
    329 extern errno_t async_req_slow(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     258extern errno_t async_req_5_0(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     259    sysarg_t, sysarg_t, sysarg_t);
     260extern errno_t async_req_5_1(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
     261    sysarg_t, sysarg_t, sysarg_t, sysarg_t *);
     262extern 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 *);
     264extern 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 *);
     266extern 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 *);
     269extern errno_t async_req_5_5(async_exch_t *, sysarg_t, sysarg_t, sysarg_t,
    330270    sysarg_t, sysarg_t, sysarg_t, sysarg_t *, sysarg_t *, sysarg_t *,
    331271    sysarg_t *, sysarg_t *);
     
    357297 */
    358298
    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,
     299extern errno_t async_share_in_start_0_0(async_exch_t *, size_t, void **);
     300extern errno_t async_share_in_start_0_1(async_exch_t *, size_t,
    369301    unsigned int *, void **);
     302extern errno_t async_share_in_start_1_0(async_exch_t *, size_t, sysarg_t,
     303    void **);
     304extern errno_t async_share_in_start_1_1(async_exch_t *, size_t, sysarg_t,
     305    unsigned int *, void **);
     306
    370307extern bool async_share_in_receive(ipc_call_t *, size_t *);
    371308extern errno_t async_share_in_finalize(ipc_call_t *, void *, unsigned int);
     
    375312extern errno_t async_share_out_finalize(ipc_call_t *, void **);
    376313
    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)
     314extern errno_t async_data_read_forward_0_0(async_exch_t *, sysarg_t);
     315extern errno_t async_data_read_forward_1_0(async_exch_t *, sysarg_t, sysarg_t);
     316extern errno_t async_data_read_forward_2_0(async_exch_t *, sysarg_t, sysarg_t,
     317    sysarg_t);
     318extern errno_t async_data_read_forward_3_0(async_exch_t *, sysarg_t, sysarg_t,
     319    sysarg_t, sysarg_t);
     320extern errno_t async_data_read_forward_4_0(async_exch_t *, sysarg_t, sysarg_t,
     321    sysarg_t, sysarg_t, sysarg_t);
     322
     323extern errno_t async_data_read_forward_0_1(async_exch_t *, sysarg_t,
     324    ipc_call_t *);
     325extern errno_t async_data_read_forward_1_1(async_exch_t *, sysarg_t, sysarg_t,
     326    ipc_call_t *);
     327extern errno_t async_data_read_forward_2_1(async_exch_t *, sysarg_t, sysarg_t,
     328    sysarg_t, ipc_call_t *);
     329extern errno_t async_data_read_forward_3_1(async_exch_t *, sysarg_t, sysarg_t,
     330    sysarg_t, sysarg_t, ipc_call_t *);
     331extern 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 *);
    406333
    407334extern aid_t async_data_read(async_exch_t *, void *, size_t, ipc_call_t *);
     
    410337extern errno_t async_data_read_finalize(ipc_call_t *, const void *, size_t);
    411338
    412 extern errno_t async_data_read_forward_fast(async_exch_t *, sysarg_t, sysarg_t,
     339extern errno_t async_data_write_forward_0_0(async_exch_t *, sysarg_t);
     340extern errno_t async_data_write_forward_1_0(async_exch_t *, sysarg_t, sysarg_t);
     341extern errno_t async_data_write_forward_2_0(async_exch_t *, sysarg_t, sysarg_t,
     342    sysarg_t);
     343extern errno_t async_data_write_forward_3_0(async_exch_t *, sysarg_t, sysarg_t,
     344    sysarg_t, sysarg_t);
     345extern errno_t async_data_write_forward_4_0(async_exch_t *, sysarg_t, sysarg_t,
     346    sysarg_t, sysarg_t, sysarg_t);
     347
     348extern errno_t async_data_write_forward_0_1(async_exch_t *, sysarg_t,
     349    ipc_call_t *);
     350extern errno_t async_data_write_forward_1_1(async_exch_t *, sysarg_t, sysarg_t,
     351    ipc_call_t *);
     352extern errno_t async_data_write_forward_2_1(async_exch_t *, sysarg_t, sysarg_t,
     353    sysarg_t, ipc_call_t *);
     354extern errno_t async_data_write_forward_3_1(async_exch_t *, sysarg_t, sysarg_t,
     355    sysarg_t, sysarg_t, ipc_call_t *);
     356extern errno_t async_data_write_forward_4_1(async_exch_t *, sysarg_t, sysarg_t,
    413357    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)
    445358
    446359extern errno_t async_data_write_start(async_exch_t *, const void *, size_t);
     
    451364    const size_t, const size_t, size_t *);
    452365extern 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 *);
    456366
    457367extern async_sess_t *async_callback_receive(exch_mgmt_t);
  • uspace/srv/devman/main.c

    reefdd7c r4f13e19  
    136136
    137137        async_exch_t *exch = async_exchange_begin(driver->sess);
    138         async_forward_fast(icall, exch, INTERFACE_DDF_CLIENT, handle, 0, IPC_FF_NONE);
     138        async_forward_1(icall, exch, INTERFACE_DDF_CLIENT, handle, IPC_FF_NONE);
    139139        async_exchange_end(exch);
    140140
     
    215215
    216216        async_exch_t *exch = async_exchange_begin(driver->sess);
    217         async_forward_fast(icall, exch, INTERFACE_DDF_DRIVER, fun_handle, 0, IPC_FF_NONE);
     217        async_forward_1(icall, exch, INTERFACE_DDF_DRIVER, fun_handle, IPC_FF_NONE);
    218218        async_exchange_end(exch);
    219219
     
    250250
    251251        async_exch_t *exch = async_exchange_begin(driver->sess);
    252         async_forward_fast(icall, exch, iface, handle, 0, IPC_FF_NONE);
     252        async_forward_1(icall, exch, iface, handle, IPC_FF_NONE);
    253253        async_exchange_end(exch);
    254254
  • uspace/srv/fs/locfs/locfs_ops.c

    reefdd7c r4f13e19  
    583583
    584584                /* Forward the IPC_M_DATA_READ request to the driver */
    585                 async_forward_fast(&call, exch, 0, 0, 0, IPC_FF_ROUTE_FROM_ME);
     585                async_forward_0(&call, exch, 0, IPC_FF_ROUTE_FROM_ME);
    586586
    587587                async_exchange_end(exch);
     
    647647
    648648                /* Forward the IPC_M_DATA_WRITE request to the driver */
    649                 async_forward_fast(&call, exch, 0, 0, 0, IPC_FF_ROUTE_FROM_ME);
     649                async_forward_0(&call, exch, 0, IPC_FF_ROUTE_FROM_ME);
    650650
    651651                async_exchange_end(exch);
  • uspace/srv/locsrv/locsrv.c

    reefdd7c r4f13e19  
    726726
    727727        async_exch_t *exch = async_exchange_begin(svc->server->sess);
    728         async_forward_fast(call, exch, iface, svc->id, 0, IPC_FF_NONE);
     728        async_forward_1(call, exch, iface, svc->id, IPC_FF_NONE);
    729729        async_exchange_end(exch);
    730730
  • uspace/srv/ns/clonable.c

    reefdd7c r4f13e19  
    9494
    9595        async_exch_t *exch = async_exchange_begin(sess);
    96         async_forward_fast(&csr->call, exch, csr->iface,
    97             IPC_GET_ARG3(csr->call), 0, IPC_FF_NONE);
     96        async_forward_1(&csr->call, exch, csr->iface,
     97            IPC_GET_ARG3(csr->call), IPC_FF_NONE);
    9898        async_exchange_end(exch);
    9999
  • uspace/srv/ns/service.c

    reefdd7c r4f13e19  
    154154{
    155155        async_exch_t *exch = async_exchange_begin(sess);
    156         async_forward_fast(call, exch, iface, IPC_GET_ARG3(*call), 0,
    157             IPC_FF_NONE);
     156        async_forward_1(call, exch, iface, IPC_GET_ARG3(*call), IPC_FF_NONE);
    158157        async_exchange_end(exch);
    159158}
  • uspace/srv/vfs/vfs_ops.c

    reefdd7c r4f13e19  
    637637
    638638        async_exch_t *exch = vfs_exchange_grab(node->fs_handle);
    639         errno_t rc = async_data_read_forward_fast(exch, VFS_OUT_STAT,
    640             node->service_id, node->index, true, 0, NULL);
     639        errno_t rc = async_data_read_forward_3_0(exch, VFS_OUT_STAT,
     640            node->service_id, node->index, true);
    641641        vfs_exchange_release(exch);
    642642
     
    654654
    655655        async_exch_t *exch = vfs_exchange_grab(node->fs_handle);
    656         errno_t rc = async_data_read_forward_fast(exch, VFS_OUT_STATFS,
    657             node->service_id, node->index, false, 0, NULL);
     656        errno_t rc = async_data_read_forward_3_0(exch, VFS_OUT_STATFS,
     657            node->service_id, node->index, false);
    658658        vfs_exchange_release(exch);
    659659
Note: See TracChangeset for help on using the changeset viewer.