Changeset 64d2b10 in mainline for uspace/lib/c/generic/async.c
- Timestamp:
- 2011-01-29T11:35:03Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ffa2c8ef
- Parents:
- 2c577e0b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async.c
r2c577e0b r64d2b10 77 77 * { 78 78 * if (want_refuse) { 79 * ipc_answer_0(icallid, ELIMIT);79 * async_answer_0(icallid, ELIMIT); 80 80 * return; 81 81 * } 82 * ipc_answer_0(icallid, EOK);82 * async_answer_0(icallid, EOK); 83 83 * 84 84 * callid = async_get_call(&call); 85 85 * somehow_handle_the_call(callid, call); 86 * ipc_answer_2(callid, 1, 2, 3);86 * async_answer_2(callid, 1, 2, 3); 87 87 * 88 88 * callid = async_get_call(&call); … … 92 92 */ 93 93 94 #define LIBC_ASYNC_C_ 95 #include <ipc/ipc.h> 96 #include <async.h> 97 #undef LIBC_ASYNC_C_ 98 94 99 #include <futex.h> 95 #include <async.h>96 100 #include <fibril.h> 97 101 #include <stdio.h> 98 102 #include <adt/hash_table.h> 99 103 #include <adt/list.h> 100 #include <ipc/ipc.h>101 104 #include <assert.h> 102 105 #include <errno.h> … … 1235 1238 } 1236 1239 1240 void async_msg_0(int phone, sysarg_t imethod) 1241 { 1242 ipc_call_async_0(phone, imethod, NULL, NULL, true); 1243 } 1244 1245 void async_msg_1(int phone, sysarg_t imethod, sysarg_t arg1) 1246 { 1247 ipc_call_async_1(phone, imethod, arg1, NULL, NULL, true); 1248 } 1249 1250 void async_msg_2(int phone, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2) 1251 { 1252 ipc_call_async_2(phone, imethod, arg1, arg2, NULL, NULL, true); 1253 } 1254 1255 void async_msg_3(int phone, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, 1256 sysarg_t arg3) 1257 { 1258 ipc_call_async_3(phone, imethod, arg1, arg2, arg3, NULL, NULL, true); 1259 } 1260 1261 void async_msg_4(int phone, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, 1262 sysarg_t arg3, sysarg_t arg4) 1263 { 1264 ipc_call_async_4(phone, imethod, arg1, arg2, arg3, arg4, NULL, NULL, 1265 true); 1266 } 1267 1268 void async_msg_5(int phone, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, 1269 sysarg_t arg3, sysarg_t arg4, sysarg_t arg5) 1270 { 1271 ipc_call_async_5(phone, imethod, arg1, arg2, arg3, arg4, arg5, NULL, 1272 NULL, true); 1273 } 1274 1275 sysarg_t async_answer_0(ipc_callid_t callid, sysarg_t retval) 1276 { 1277 return ipc_answer_0(callid, retval); 1278 } 1279 1280 sysarg_t async_answer_1(ipc_callid_t callid, sysarg_t retval, sysarg_t arg1) 1281 { 1282 return ipc_answer_1(callid, retval, arg1); 1283 } 1284 1285 sysarg_t async_answer_2(ipc_callid_t callid, sysarg_t retval, sysarg_t arg1, 1286 sysarg_t arg2) 1287 { 1288 return ipc_answer_2(callid, retval, arg1, arg2); 1289 } 1290 1291 sysarg_t async_answer_3(ipc_callid_t callid, sysarg_t retval, sysarg_t arg1, 1292 sysarg_t arg2, sysarg_t arg3) 1293 { 1294 return ipc_answer_3(callid, retval, arg1, arg2, arg3); 1295 } 1296 1297 sysarg_t async_answer_4(ipc_callid_t callid, sysarg_t retval, sysarg_t arg1, 1298 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4) 1299 { 1300 return ipc_answer_4(callid, retval, arg1, arg2, arg3, arg4); 1301 } 1302 1303 sysarg_t async_answer_5(ipc_callid_t callid, sysarg_t retval, sysarg_t arg1, 1304 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5) 1305 { 1306 return ipc_answer_5(callid, retval, arg1, arg2, arg3, arg4, arg5); 1307 } 1308 1309 int async_forward_fast(ipc_callid_t callid, int phoneid, int imethod, 1310 sysarg_t arg1, sysarg_t arg2, int mode) 1311 { 1312 return ipc_forward_fast(callid, phoneid, imethod, arg1, arg2, mode); 1313 } 1314 1315 int async_forward_slow(ipc_callid_t callid, int phoneid, int imethod, 1316 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, 1317 int mode) 1318 { 1319 return ipc_forward_slow(callid, phoneid, imethod, arg1, arg2, arg3, arg4, 1320 arg5, mode); 1321 } 1322 1237 1323 /** Wrapper for making IPC_M_CONNECT_TO_ME calls using the async framework. 1238 1324 * … … 1314 1400 1315 1401 return newphid; 1402 } 1403 1404 /** Connect to a task specified by id. 1405 * 1406 */ 1407 int async_connect_kbox(task_id_t id) 1408 { 1409 return ipc_connect_kbox(id); 1410 } 1411 1412 /** Wrapper for ipc_hangup. 1413 * 1414 * @param phone Phone handle to hung up. 1415 * 1416 * @return Zero on success or a negative error code. 1417 * 1418 */ 1419 int async_hangup(int phone) 1420 { 1421 return ipc_hangup(phone); 1422 } 1423 1424 /** Interrupt one thread of this task from waiting for IPC. */ 1425 void async_poke(void) 1426 { 1427 ipc_poke(); 1316 1428 } 1317 1429 … … 1503 1615 1504 1616 /** Wrapper for forwarding any read request 1505 *1506 1617 * 1507 1618 */ … … 1690 1801 /** Wrapper for forwarding any data that is about to be received 1691 1802 * 1692 *1693 1803 */ 1694 1804 int async_data_write_forward_fast(int phoneid, sysarg_t method, sysarg_t arg1,
Note:
See TracChangeset
for help on using the changeset viewer.