Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 5b3e74a in mainline


Ignore:
Timestamp:
2019-01-11T19:41:27Z (2 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Children:
394e22f
Parents:
fec7ba0
Message:

Remove async "fast" and "slow" functions from public interface

"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

    rfec7ba0 r5b3e74a  
    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

    rfec7ba0 r5b3e74a  
    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_4_1(async_exch_t *exch, sysarg_t imethod,
     1403    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4,
     1404    ipc_call_t *dataptr)
     1405{
     1406        return async_data_read_forward_fast(exch, imethod, arg1, arg2, arg3,
     1407            arg4, dataptr);
    13541408}
    13551409
     
    14971551 *
    14981552 */
    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)
     1553static errno_t async_data_write_forward_fast(async_exch_t *exch,
     1554    sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3,
     1555    sysarg_t arg4, ipc_call_t *dataptr)
    15021556{
    15031557        if (exch == NULL)
     
    15101564        }
    15111565
    1512         aid_t msg = async_send_fast(exch, imethod, arg1, arg2, arg3, arg4,
     1566        aid_t msg = async_send_4(exch, imethod, arg1, arg2, arg3, arg4,
    15131567            dataptr);
    15141568        if (msg == 0) {
     
    15311585}
    15321586
     1587errno_t async_data_write_forward_4_1(async_exch_t *exch, sysarg_t imethod,
     1588    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4,
     1589    ipc_call_t *dataptr)
     1590{
     1591        return async_data_write_forward_fast(exch, imethod, arg1, arg2, arg3,
     1592            arg4, dataptr);
     1593}
     1594
    15331595/** Wrapper for receiving the IPC_M_CONNECT_TO_ME calls.
    15341596 *
  • uspace/lib/c/include/async.h

    rfec7ba0 r5b3e74a  
    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_4_1(async_exch_t *, sysarg_t, sysarg_t,
     315    sysarg_t, sysarg_t, sysarg_t, ipc_call_t *);
    406316
    407317extern aid_t async_data_read(async_exch_t *, void *, size_t, ipc_call_t *);
     
    410320extern errno_t async_data_read_finalize(ipc_call_t *, const void *, size_t);
    411321
    412 extern errno_t async_data_read_forward_fast(async_exch_t *, sysarg_t, sysarg_t,
     322extern errno_t async_data_write_forward_4_1(async_exch_t *, sysarg_t, sysarg_t,
    413323    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)
    445324
    446325extern errno_t async_data_write_start(async_exch_t *, const void *, size_t);
     
    451330    const size_t, const size_t, size_t *);
    452331extern 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 *);
    456332
    457333extern async_sess_t *async_callback_receive(exch_mgmt_t);
  • uspace/srv/devman/main.c

    rfec7ba0 r5b3e74a  
    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

    rfec7ba0 r5b3e74a  
    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

    rfec7ba0 r5b3e74a  
    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

    rfec7ba0 r5b3e74a  
    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

    rfec7ba0 r5b3e74a  
    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

    rfec7ba0 r5b3e74a  
    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,
     639        errno_t rc = async_data_read_forward_4_1(exch, VFS_OUT_STAT,
    640640            node->service_id, node->index, true, 0, NULL);
    641641        vfs_exchange_release(exch);
     
    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,
     656        errno_t rc = async_data_read_forward_4_1(exch, VFS_OUT_STATFS,
    657657            node->service_id, node->index, false, 0, NULL);
    658658        vfs_exchange_release(exch);
Note: See TracChangeset for help on using the changeset viewer.