Changeset ab936440 in mainline for uspace/lib/c/generic/async/server.c
- Timestamp:
- 2019-02-12T20:42:42Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f31ca47
- Parents:
- 7f7817a9 (diff), 4805495 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - git-author:
- Matthieu Riolo <matthieu.riolo@…> (2019-02-12 20:26:18)
- git-committer:
- Matthieu Riolo <matthieu.riolo@…> (2019-02-12 20:42:42)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async/server.c
r7f7817a9 rab936440 96 96 */ 97 97 98 #define LIBC_ASYNC_C_98 #define _LIBC_ASYNC_C_ 99 99 #include <ipc/ipc.h> 100 100 #include <async.h> 101 101 #include "../private/async.h" 102 #undef LIBC_ASYNC_C_102 #undef _LIBC_ASYNC_C_ 103 103 104 104 #include <ipc/irq.h> … … 871 871 872 872 memset(call, 0, sizeof(ipc_call_t)); 873 IPC_SET_IMETHOD(*call, IPC_M_PHONE_HUNGUP); 874 call->cap_handle = CAP_NIL; 873 875 } 874 876 875 877 return true; 878 } 879 880 bool async_get_call(ipc_call_t *call) 881 { 882 return async_get_call_timeout(call, 0); 876 883 } 877 884 … … 1001 1008 1002 1009 /** Add one manager to manager list. */ 1003 fid_t async_create_manager(void)1010 static fid_t async_create_manager(void) 1004 1011 { 1005 1012 fid_t fid = fibril_create_generic(async_manager_fibril, NULL, PAGE_SIZE); … … 1094 1101 } 1095 1102 1096 errno_t async_forward_fast(ipc_call_t *call, async_exch_t *exch,1103 static errno_t async_forward_fast(ipc_call_t *call, async_exch_t *exch, 1097 1104 sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, unsigned int mode) 1098 1105 { … … 1110 1117 } 1111 1118 1112 errno_t async_forward_slow(ipc_call_t *call, async_exch_t *exch,1119 static errno_t async_forward_slow(ipc_call_t *call, async_exch_t *exch, 1113 1120 sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, 1114 1121 sysarg_t arg4, sysarg_t arg5, unsigned int mode) … … 1125 1132 return ipc_forward_slow(chandle, exch->phone, imethod, arg1, arg2, arg3, 1126 1133 arg4, arg5, mode); 1134 } 1135 1136 errno_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 1142 errno_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 1148 errno_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 1154 errno_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 1161 errno_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 1169 errno_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); 1127 1175 } 1128 1176 … … 1318 1366 * 1319 1367 */ 1320 errno_t async_data_read_forward_fast(async_exch_t *exch, sysarg_t imethod,1368 static errno_t async_data_read_forward_fast(async_exch_t *exch, sysarg_t imethod, 1321 1369 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, 1322 1370 ipc_call_t *dataptr) … … 1331 1379 } 1332 1380 1333 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, 1334 1382 dataptr); 1335 1383 if (msg == 0) { … … 1350 1398 1351 1399 return (errno_t) rc; 1400 } 1401 1402 errno_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 1407 errno_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 1413 errno_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 1420 errno_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 1427 errno_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 1434 errno_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 1441 errno_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 1448 errno_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 1455 errno_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 1462 errno_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); 1352 1468 } 1353 1469 … … 1495 1611 * 1496 1612 */ 1497 errno_t async_data_write_forward_fast(async_exch_t *exch, sysarg_t imethod,1498 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4,1499 ipc_call_t *dataptr)1613 static 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) 1500 1616 { 1501 1617 if (exch == NULL) … … 1508 1624 } 1509 1625 1510 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, 1511 1627 dataptr); 1512 1628 if (msg == 0) { … … 1529 1645 } 1530 1646 1647 errno_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 1653 errno_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 1660 errno_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 1667 errno_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 1674 errno_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 1681 errno_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 1688 errno_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 1695 errno_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 1702 errno_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 1709 errno_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 1531 1717 /** Wrapper for receiving the IPC_M_CONNECT_TO_ME calls. 1532 1718 *
Note:
See TracChangeset
for help on using the changeset viewer.