Changeset 984a9ba in mainline for uspace/lib/c
- Timestamp:
- 2018-07-05T09:34:09Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 63d46341
- Parents:
- 76f566d
- Location:
- uspace/lib/c
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async/ports.c
r76f566d r984a9ba 85 85 * not have a specific handler defined. 86 86 * 87 * @param chandle Handle of the incoming call. 88 * @param call Data of the incoming call. 89 * @param arg Local argument 87 * @param call Data of the incoming call. 88 * @param arg Local argument 90 89 * 91 90 */ 92 static void default_fallback_port_handler(cap_call_handle_t chandle, 93 ipc_call_t *call, void *arg) 94 { 95 ipc_answer_0(chandle, ENOENT); 91 static void default_fallback_port_handler(ipc_call_t *call, void *arg) 92 { 93 async_answer_0(call, ENOENT); 96 94 } 97 95 -
uspace/lib/c/generic/async/server.c
r76f566d r984a9ba 77 77 * } 78 78 * 79 * port_handler(i chandle,*icall)79 * port_handler(ipc_call_t *icall) 80 80 * { 81 81 * if (want_refuse) { 82 * async_answer_0(ic handle, ELIMIT);82 * async_answer_0(icall, ELIMIT); 83 83 * return; 84 84 * } 85 * async_answer_0(ichandle, EOK); 86 * 87 * chandle = async_get_call(&call); 88 * somehow_handle_the_call(chandle, call); 89 * async_answer_2(chandle, 1, 2, 3); 90 * 91 * chandle = async_get_call(&call); 85 * 86 * async_answer_0(icall, EOK); 87 * 88 * async_get_call(&call); 89 * somehow_handle_the_call(&call); 90 * async_answer_2(&call, 1, 2, 3); 91 * 92 * async_get_call(&call); 92 93 * ... 93 94 * } … … 133 134 typedef struct { 134 135 link_t link; 135 136 136 ipc_call_t call; 137 137 } msg_t; … … 418 418 * Call the connection handler function. 419 419 */ 420 fibril_connection->handler( fibril_connection->call.cap_handle,421 &fibril_connection->call,fibril_connection->data);420 fibril_connection->handler(&fibril_connection->call, 421 fibril_connection->data); 422 422 423 423 /* … … 964 964 /** Return new incoming message for the current (fibril-local) connection. 965 965 * 966 * @param call 967 * @param usecs 968 * 969 * @return If no timeout was specified, then a handle of the incoming call is970 * returned. If a timeout is specified, then a handle of the incoming971 * call is returned unless the timeout expires prior to receiving a972 * message. In that case zero CAP_NIL is returned.973 */ 974 cap_call_handle_tasync_get_call_timeout(ipc_call_t *call, suseconds_t usecs)966 * @param call Storage where the incoming call data will be stored. 967 * @param usecs Timeout in microseconds. Zero denotes no timeout. 968 * 969 * @return If no timeout was specified, then true is returned. 970 * @return If a timeout is specified, then true is returned unless 971 * the timeout expires prior to receiving a message. 972 * 973 */ 974 bool async_get_call_timeout(ipc_call_t *call, suseconds_t usecs) 975 975 { 976 976 assert(call); … … 1007 1007 IPC_SET_IMETHOD(*call, IPC_M_PHONE_HUNGUP); 1008 1008 futex_unlock(&async_futex); 1009 return conn->close_chandle;1009 return true; 1010 1010 } 1011 1011 … … 1027 1027 /* If we timed out -> exit */ 1028 1028 futex_unlock(&async_futex); 1029 return CAP_NIL;1029 return false; 1030 1030 } 1031 1031 } … … 1035 1035 list_remove(&msg->link); 1036 1036 1037 cap_call_handle_t chandle = msg->call.cap_handle;1038 1037 *call = msg->call; 1039 1038 free(msg); 1040 1039 1041 1040 futex_unlock(&async_futex); 1042 return chandle;1041 return true; 1043 1042 } 1044 1043 … … 1251 1250 } 1252 1251 1253 errno_t async_answer_0( cap_call_handle_t chandle, errno_t retval)1254 { 1255 return ipc_answer_0(c handle, retval);1256 } 1257 1258 errno_t async_answer_1( cap_call_handle_t chandle, errno_t retval, sysarg_t arg1)1259 { 1260 return ipc_answer_1(c handle, retval, arg1);1261 } 1262 1263 errno_t async_answer_2( cap_call_handle_t chandle, errno_t retval, sysarg_t arg1,1252 errno_t async_answer_0(ipc_call_t *call, errno_t retval) 1253 { 1254 return ipc_answer_0(call->cap_handle, retval); 1255 } 1256 1257 errno_t async_answer_1(ipc_call_t *call, errno_t retval, sysarg_t arg1) 1258 { 1259 return ipc_answer_1(call->cap_handle, retval, arg1); 1260 } 1261 1262 errno_t async_answer_2(ipc_call_t *call, errno_t retval, sysarg_t arg1, 1264 1263 sysarg_t arg2) 1265 1264 { 1266 return ipc_answer_2(c handle, retval, arg1, arg2);1267 } 1268 1269 errno_t async_answer_3( cap_call_handle_t chandle, errno_t retval, sysarg_t arg1,1265 return ipc_answer_2(call->cap_handle, retval, arg1, arg2); 1266 } 1267 1268 errno_t async_answer_3(ipc_call_t *call, errno_t retval, sysarg_t arg1, 1270 1269 sysarg_t arg2, sysarg_t arg3) 1271 1270 { 1272 return ipc_answer_3(c handle, retval, arg1, arg2, arg3);1273 } 1274 1275 errno_t async_answer_4( cap_call_handle_t chandle, errno_t retval, sysarg_t arg1,1271 return ipc_answer_3(call->cap_handle, retval, arg1, arg2, arg3); 1272 } 1273 1274 errno_t async_answer_4(ipc_call_t *call, errno_t retval, sysarg_t arg1, 1276 1275 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4) 1277 1276 { 1278 return ipc_answer_4(c handle, retval, arg1, arg2, arg3, arg4);1279 } 1280 1281 errno_t async_answer_5( cap_call_handle_t chandle, errno_t retval, sysarg_t arg1,1277 return ipc_answer_4(call->cap_handle, retval, arg1, arg2, arg3, arg4); 1278 } 1279 1280 errno_t async_answer_5(ipc_call_t *call, errno_t retval, sysarg_t arg1, 1282 1281 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5) 1283 1282 { 1284 return ipc_answer_5(chandle, retval, arg1, arg2, arg3, arg4, arg5); 1285 } 1286 1287 errno_t async_forward_fast(cap_call_handle_t chandle, async_exch_t *exch, 1283 return ipc_answer_5(call->cap_handle, retval, arg1, arg2, arg3, arg4, 1284 arg5); 1285 } 1286 1287 errno_t async_forward_fast(ipc_call_t *call, async_exch_t *exch, 1288 1288 sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, unsigned int mode) 1289 1289 { 1290 assert(call); 1291 1290 1292 if (exch == NULL) 1291 1293 return ENOENT; 1292 1294 1293 return ipc_forward_fast(chandle, exch->phone, imethod, arg1, arg2, mode); 1294 } 1295 1296 errno_t async_forward_slow(cap_call_handle_t chandle, async_exch_t *exch, 1295 return ipc_forward_fast(call->cap_handle, exch->phone, imethod, arg1, 1296 arg2, mode); 1297 } 1298 1299 errno_t async_forward_slow(ipc_call_t *call, async_exch_t *exch, 1297 1300 sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, 1298 1301 sysarg_t arg4, sysarg_t arg5, unsigned int mode) 1299 1302 { 1303 assert(call); 1304 1300 1305 if (exch == NULL) 1301 1306 return ENOENT; 1302 1307 1303 return ipc_forward_slow(c handle, exch->phone, imethod, arg1, arg2, arg3,1304 arg 4, arg5, mode);1308 return ipc_forward_slow(call->cap_handle, exch->phone, imethod, arg1, 1309 arg2, arg3, arg4, arg5, mode); 1305 1310 } 1306 1311 … … 1309 1314 * Ask through phone for a new connection to some service. 1310 1315 * 1311 * @param exch 1312 * @param arg1 1313 * @param arg2 1314 * @param arg3 1316 * @param exch Exchange for sending the message. 1317 * @param arg1 User defined argument. 1318 * @param arg2 User defined argument. 1319 * @param arg3 User defined argument. 1315 1320 * 1316 1321 * @return Zero on success or an error code. … … 1350 1355 * So far, this wrapper is to be used from within a connection fibril. 1351 1356 * 1352 * @param c handle Storage for the handleof the IPC_M_SHARE_IN call.1353 * @param size 1357 * @param call Storage for the data of the IPC_M_SHARE_IN call. 1358 * @param size Destination address space area size. 1354 1359 * 1355 1360 * @return True on success, false on failure. 1356 1361 * 1357 1362 */ 1358 bool async_share_in_receive( cap_call_handle_t *chandle, size_t *size)1359 { 1360 assert(c handle);1363 bool async_share_in_receive(ipc_call_t *call, size_t *size) 1364 { 1365 assert(call); 1361 1366 assert(size); 1362 1367 1363 ipc_call_t data; 1364 *chandle = async_get_call(&data); 1365 1366 if (IPC_GET_IMETHOD(data) != IPC_M_SHARE_IN) 1368 async_get_call(call); 1369 1370 if (IPC_GET_IMETHOD(*call) != IPC_M_SHARE_IN) 1367 1371 return false; 1368 1372 1369 *size = (size_t) IPC_GET_ARG1( data);1373 *size = (size_t) IPC_GET_ARG1(*call); 1370 1374 return true; 1371 1375 } … … 1377 1381 * argument. 1378 1382 * 1379 * @param c handle Handle of theIPC_M_DATA_READ call to answer.1380 * @param src 1381 * @param flags 1383 * @param call IPC_M_DATA_READ call to answer. 1384 * @param src Source address space base. 1385 * @param flags Flags to be used for sharing. Bits can be only cleared. 1382 1386 * 1383 1387 * @return Zero on success or a value from @ref errno.h on failure. 1384 1388 * 1385 1389 */ 1386 errno_t async_share_in_finalize(cap_call_handle_t chandle, void *src, 1387 unsigned int flags) 1388 { 1390 errno_t async_share_in_finalize(ipc_call_t *call, void *src, unsigned int flags) 1391 { 1392 assert(call); 1393 1389 1394 // FIXME: The source has no business deciding destination address. 1390 return ipc_answer_3(c handle, EOK, (sysarg_t) src, (sysarg_t) flags,1395 return ipc_answer_3(call->cap_handle, EOK, (sysarg_t) src, (sysarg_t) flags, 1391 1396 (sysarg_t) _end); 1392 1397 } … … 1400 1405 * So far, this wrapper is to be used from within a connection fibril. 1401 1406 * 1402 * @param c handle Storage for the hashof the IPC_M_SHARE_OUT call.1403 * @param size 1404 * @param flags 1407 * @param call Storage for the data of the IPC_M_SHARE_OUT call. 1408 * @param size Storage for the source address space area size. 1409 * @param flags Storage for the sharing flags. 1405 1410 * 1406 1411 * @return True on success, false on failure. 1407 1412 * 1408 1413 */ 1409 bool async_share_out_receive( cap_call_handle_t *chandle, size_t *size,1414 bool async_share_out_receive(ipc_call_t *call, size_t *size, 1410 1415 unsigned int *flags) 1411 1416 { 1412 assert(c handle);1417 assert(call); 1413 1418 assert(size); 1414 1419 assert(flags); 1415 1420 1416 ipc_call_t data; 1417 *chandle = async_get_call(&data); 1418 1419 if (IPC_GET_IMETHOD(data) != IPC_M_SHARE_OUT) 1421 async_get_call(call); 1422 1423 if (IPC_GET_IMETHOD(*call) != IPC_M_SHARE_OUT) 1420 1424 return false; 1421 1425 1422 *size = (size_t) IPC_GET_ARG2( data);1423 *flags = (unsigned int) IPC_GET_ARG3( data);1426 *size = (size_t) IPC_GET_ARG2(*call); 1427 *flags = (unsigned int) IPC_GET_ARG3(*call); 1424 1428 return true; 1425 1429 } … … 1431 1435 * argument. 1432 1436 * 1433 * @param c handle Handle of theIPC_M_DATA_WRITE call to answer.1434 * @param dst 1435 * 1437 * @param call IPC_M_DATA_WRITE call to answer. 1438 * @param dst Address of the storage for the destination address space area 1439 * base address. 1436 1440 * 1437 1441 * @return Zero on success or a value from @ref errno.h on failure. 1438 1442 * 1439 1443 */ 1440 errno_t async_share_out_finalize(cap_call_handle_t chandle, void **dst) 1441 { 1442 return ipc_answer_2(chandle, EOK, (sysarg_t) _end, (sysarg_t) dst); 1444 errno_t async_share_out_finalize(ipc_call_t *call, void **dst) 1445 { 1446 assert(call); 1447 1448 return ipc_answer_2(call->cap_handle, EOK, (sysarg_t) _end, 1449 (sysarg_t) dst); 1443 1450 } 1444 1451 … … 1451 1458 * So far, this wrapper is to be used from within a connection fibril. 1452 1459 * 1453 * @param c handle Storage for the handleof the IPC_M_DATA_READ.1454 * @param size 1460 * @param call Storage for the data of the IPC_M_DATA_READ. 1461 * @param size Storage for the maximum size. Can be NULL. 1455 1462 * 1456 1463 * @return True on success, false on failure. 1457 1464 * 1458 1465 */ 1459 bool async_data_read_receive(cap_call_handle_t *chandle, size_t *size) 1460 { 1461 ipc_call_t data; 1462 return async_data_read_receive_call(chandle, &data, size); 1463 } 1464 1465 /** Wrapper for receiving the IPC_M_DATA_READ calls using the async framework. 1466 * 1467 * This wrapper only makes it more comfortable to receive IPC_M_DATA_READ 1468 * calls so that the user doesn't have to remember the meaning of each IPC 1469 * argument. 1470 * 1471 * So far, this wrapper is to be used from within a connection fibril. 1472 * 1473 * @param chandle Storage for the handle of the IPC_M_DATA_READ. 1474 * @param size Storage for the maximum size. Can be NULL. 1475 * 1476 * @return True on success, false on failure. 1477 * 1478 */ 1479 bool async_data_read_receive_call(cap_call_handle_t *chandle, ipc_call_t *data, 1480 size_t *size) 1481 { 1482 assert(chandle); 1483 assert(data); 1484 1485 *chandle = async_get_call(data); 1486 1487 if (IPC_GET_IMETHOD(*data) != IPC_M_DATA_READ) 1466 bool async_data_read_receive(ipc_call_t *call, size_t *size) 1467 { 1468 assert(call); 1469 1470 async_get_call(call); 1471 1472 if (IPC_GET_IMETHOD(*call) != IPC_M_DATA_READ) 1488 1473 return false; 1489 1474 1490 1475 if (size) 1491 *size = (size_t) IPC_GET_ARG2(* data);1476 *size = (size_t) IPC_GET_ARG2(*call); 1492 1477 1493 1478 return true; … … 1500 1485 * argument. 1501 1486 * 1502 * @param c handle Handle of theIPC_M_DATA_READ call to answer.1503 * @param src 1504 * @param size 1505 * 1487 * @param call IPC_M_DATA_READ call to answer. 1488 * @param src Source address for the IPC_M_DATA_READ call. 1489 * @param size Size for the IPC_M_DATA_READ call. Can be smaller than 1490 * the maximum size announced by the sender. 1506 1491 * 1507 1492 * @return Zero on success or a value from @ref errno.h on failure. 1508 1493 * 1509 1494 */ 1510 errno_t async_data_read_finalize(cap_call_handle_t chandle, const void *src, 1511 size_t size) 1512 { 1513 return ipc_answer_2(chandle, EOK, (sysarg_t) src, (sysarg_t) size); 1495 errno_t async_data_read_finalize(ipc_call_t *call, const void *src, size_t size) 1496 { 1497 assert(call); 1498 1499 return ipc_answer_2(call->cap_handle, EOK, (sysarg_t) src, 1500 (sysarg_t) size); 1514 1501 } 1515 1502 … … 1524 1511 return ENOENT; 1525 1512 1526 cap_call_handle_t chandle;1527 if (!async_data_read_receive(&c handle, NULL)) {1528 ipc_answer_0(chandle, EINVAL);1513 ipc_call_t call; 1514 if (!async_data_read_receive(&call, NULL)) { 1515 async_answer_0(&call, EINVAL); 1529 1516 return EINVAL; 1530 1517 } … … 1533 1520 dataptr); 1534 1521 if (msg == 0) { 1535 ipc_answer_0(chandle, EINVAL);1522 async_answer_0(&call, EINVAL); 1536 1523 return EINVAL; 1537 1524 } 1538 1525 1539 errno_t retval = ipc_forward_fast(c handle, exch->phone, 0, 0, 0,1526 errno_t retval = ipc_forward_fast(call.cap_handle, exch->phone, 0, 0, 0, 1540 1527 IPC_FF_ROUTE_FROM_ME); 1541 1528 if (retval != EOK) { 1542 1529 async_forget(msg); 1543 ipc_answer_0(chandle, retval);1530 async_answer_0(&call, retval); 1544 1531 return retval; 1545 1532 } … … 1559 1546 * So far, this wrapper is to be used from within a connection fibril. 1560 1547 * 1561 * @param chandle Storage for the handle of the IPC_M_DATA_WRITE. 1562 * @param size Storage for the suggested size. May be NULL. 1563 * 1564 * @return True on success, false on failure. 1565 * 1566 */ 1567 bool async_data_write_receive(cap_call_handle_t *chandle, size_t *size) 1568 { 1569 ipc_call_t data; 1570 return async_data_write_receive_call(chandle, &data, size); 1571 } 1572 1573 /** Wrapper for receiving the IPC_M_DATA_WRITE calls using the async framework. 1574 * 1575 * This wrapper only makes it more comfortable to receive IPC_M_DATA_WRITE 1576 * calls so that the user doesn't have to remember the meaning of each IPC 1577 * argument. 1578 * 1579 * So far, this wrapper is to be used from within a connection fibril. 1580 * 1581 * @param chandle Storage for the handle of the IPC_M_DATA_WRITE. 1582 * @param data Storage for the ipc call data. 1583 * @param size Storage for the suggested size. May be NULL. 1548 * @param call Storage for the data of the IPC_M_DATA_WRITE. 1549 * @param size Storage for the suggested size. May be NULL. 1584 1550 * 1585 1551 * @return True on success, false on failure. 1586 1552 * 1587 1553 */ 1588 bool async_data_write_receive_call(cap_call_handle_t *chandle, ipc_call_t *data, 1589 size_t *size) 1590 { 1591 assert(chandle); 1592 assert(data); 1593 1594 *chandle = async_get_call(data); 1595 1596 if (IPC_GET_IMETHOD(*data) != IPC_M_DATA_WRITE) 1554 bool async_data_write_receive(ipc_call_t *call, size_t *size) 1555 { 1556 assert(call); 1557 1558 async_get_call(call); 1559 1560 if (IPC_GET_IMETHOD(*call) != IPC_M_DATA_WRITE) 1597 1561 return false; 1598 1562 1599 1563 if (size) 1600 *size = (size_t) IPC_GET_ARG2(* data);1564 *size = (size_t) IPC_GET_ARG2(*call); 1601 1565 1602 1566 return true; … … 1609 1573 * argument. 1610 1574 * 1611 * @param c handle Handle of theIPC_M_DATA_WRITE call to answer.1612 * @param dst 1613 * @param size 1575 * @param call IPC_M_DATA_WRITE call to answer. 1576 * @param dst Final destination address for the IPC_M_DATA_WRITE call. 1577 * @param size Final size for the IPC_M_DATA_WRITE call. 1614 1578 * 1615 1579 * @return Zero on success or a value from @ref errno.h on failure. 1616 1580 * 1617 1581 */ 1618 errno_t async_data_write_finalize(cap_call_handle_t chandle, void *dst, 1619 size_t size) 1620 { 1621 return ipc_answer_2(chandle, EOK, (sysarg_t) dst, (sysarg_t) size); 1582 errno_t async_data_write_finalize(ipc_call_t *call, void *dst, size_t size) 1583 { 1584 assert(call); 1585 1586 return async_answer_2(call, EOK, (sysarg_t) dst, (sysarg_t) size); 1622 1587 } 1623 1588 … … 1649 1614 assert(data); 1650 1615 1651 cap_call_handle_t chandle;1616 ipc_call_t call; 1652 1617 size_t size; 1653 if (!async_data_write_receive(&c handle, &size)) {1654 ipc_answer_0(chandle, EINVAL);1618 if (!async_data_write_receive(&call, &size)) { 1619 async_answer_0(&call, EINVAL); 1655 1620 return EINVAL; 1656 1621 } 1657 1622 1658 1623 if (size < min_size) { 1659 ipc_answer_0(chandle, EINVAL);1624 async_answer_0(&call, EINVAL); 1660 1625 return EINVAL; 1661 1626 } 1662 1627 1663 1628 if ((max_size > 0) && (size > max_size)) { 1664 ipc_answer_0(chandle, EINVAL);1629 async_answer_0(&call, EINVAL); 1665 1630 return EINVAL; 1666 1631 } 1667 1632 1668 1633 if ((granularity > 0) && ((size % granularity) != 0)) { 1669 ipc_answer_0(chandle, EINVAL);1634 async_answer_0(&call, EINVAL); 1670 1635 return EINVAL; 1671 1636 } … … 1679 1644 1680 1645 if (arg_data == NULL) { 1681 ipc_answer_0(chandle, ENOMEM);1646 async_answer_0(&call, ENOMEM); 1682 1647 return ENOMEM; 1683 1648 } 1684 1649 1685 errno_t rc = async_data_write_finalize( chandle, arg_data, size);1650 errno_t rc = async_data_write_finalize(&call, arg_data, size); 1686 1651 if (rc != EOK) { 1687 1652 free(arg_data); … … 1708 1673 void async_data_write_void(errno_t retval) 1709 1674 { 1710 cap_call_handle_t chandle;1711 async_data_write_receive(&c handle, NULL);1712 ipc_answer_0(chandle, retval);1675 ipc_call_t call; 1676 async_data_write_receive(&call, NULL); 1677 async_answer_0(&call, retval); 1713 1678 } 1714 1679 … … 1723 1688 return ENOENT; 1724 1689 1725 cap_call_handle_t chandle;1726 if (!async_data_write_receive(&c handle, NULL)) {1727 ipc_answer_0(chandle, EINVAL);1690 ipc_call_t call; 1691 if (!async_data_write_receive(&call, NULL)) { 1692 async_answer_0(&call, EINVAL); 1728 1693 return EINVAL; 1729 1694 } … … 1732 1697 dataptr); 1733 1698 if (msg == 0) { 1734 ipc_answer_0(chandle, EINVAL);1699 async_answer_0(&call, EINVAL); 1735 1700 return EINVAL; 1736 1701 } 1737 1702 1738 errno_t retval = ipc_forward_fast(c handle, exch->phone, 0, 0, 0,1703 errno_t retval = ipc_forward_fast(call.cap_handle, exch->phone, 0, 0, 0, 1739 1704 IPC_FF_ROUTE_FROM_ME); 1740 1705 if (retval != EOK) { 1741 1706 async_forget(msg); 1742 ipc_answer_0(chandle, retval);1707 async_answer_0(&call, retval); 1743 1708 return retval; 1744 1709 } … … 1765 1730 /* Accept the phone */ 1766 1731 ipc_call_t call; 1767 cap_call_handle_t chandle = async_get_call(&call); 1732 async_get_call(&call); 1733 1768 1734 cap_phone_handle_t phandle = (cap_handle_t) IPC_GET_ARG5(call); 1769 1735 1770 1736 if ((IPC_GET_IMETHOD(call) != IPC_M_CONNECT_TO_ME) || 1771 1737 !CAP_HANDLE_VALID((phandle))) { 1772 async_answer_0( chandle, EINVAL);1738 async_answer_0(&call, EINVAL); 1773 1739 return NULL; 1774 1740 } … … 1776 1742 async_sess_t *sess = (async_sess_t *) malloc(sizeof(async_sess_t)); 1777 1743 if (sess == NULL) { 1778 async_answer_0( chandle, ENOMEM);1744 async_answer_0(&call, ENOMEM); 1779 1745 return NULL; 1780 1746 } … … 1795 1761 1796 1762 /* Acknowledge the connected phone */ 1797 async_answer_0( chandle, EOK);1763 async_answer_0(&call, EOK); 1798 1764 1799 1765 return sess; … … 1843 1809 } 1844 1810 1845 bool async_state_change_receive(cap_call_handle_t *chandle, sysarg_t *arg1, 1846 sysarg_t *arg2, sysarg_t *arg3) 1847 { 1848 assert(chandle); 1849 1850 ipc_call_t call; 1851 *chandle = async_get_call(&call); 1852 1853 if (IPC_GET_IMETHOD(call) != IPC_M_STATE_CHANGE_AUTHORIZE) 1811 bool async_state_change_receive(ipc_call_t *call) 1812 { 1813 assert(call); 1814 1815 async_get_call(call); 1816 1817 if (IPC_GET_IMETHOD(*call) != IPC_M_STATE_CHANGE_AUTHORIZE) 1854 1818 return false; 1855 1819 1856 if (arg1)1857 *arg1 = IPC_GET_ARG1(call);1858 if (arg2)1859 *arg2 = IPC_GET_ARG2(call);1860 if (arg3)1861 *arg3 = IPC_GET_ARG3(call);1862 1863 1820 return true; 1864 1821 } 1865 1822 1866 errno_t async_state_change_finalize(cap_call_handle_t chandle, 1867 async_exch_t *other_exch) 1868 { 1869 return ipc_answer_1(chandle, EOK, CAP_HANDLE_RAW(other_exch->phone)); 1823 errno_t async_state_change_finalize(ipc_call_t *call, async_exch_t *other_exch) 1824 { 1825 assert(call); 1826 1827 return async_answer_1(call, EOK, CAP_HANDLE_RAW(other_exch->phone)); 1870 1828 } 1871 1829 -
uspace/lib/c/generic/bd.c
r76f566d r984a9ba 46 46 #include <offset.h> 47 47 48 static void bd_cb_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg);48 static void bd_cb_conn(ipc_call_t *icall, void *arg); 49 49 50 50 errno_t bd_open(async_sess_t *sess, bd_t **rbd) … … 196 196 } 197 197 198 static void bd_cb_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg)198 static void bd_cb_conn(ipc_call_t *icall, void *arg) 199 199 { 200 200 bd_t *bd = (bd_t *)arg; … … 204 204 while (true) { 205 205 ipc_call_t call; 206 cap_call_handle_t chandle =async_get_call(&call);206 async_get_call(&call); 207 207 208 208 if (!IPC_GET_IMETHOD(call)) { … … 213 213 switch (IPC_GET_IMETHOD(call)) { 214 214 default: 215 async_answer_0( chandle, ENOTSUP);215 async_answer_0(&call, ENOTSUP); 216 216 } 217 217 } -
uspace/lib/c/generic/bd_srv.c
r76f566d r984a9ba 43 43 #include <bd_srv.h> 44 44 45 static void bd_read_blocks_srv(bd_srv_t *srv, cap_call_handle_t chandle, 46 ipc_call_t *call) 45 static void bd_read_blocks_srv(bd_srv_t *srv, ipc_call_t *call) 47 46 { 48 47 aoff64_t ba; … … 51 50 size_t size; 52 51 errno_t rc; 53 cap_call_handle_t rcall_handle;54 52 55 53 ba = MERGE_LOUP32(IPC_GET_ARG1(*call), IPC_GET_ARG2(*call)); 56 54 cnt = IPC_GET_ARG3(*call); 57 55 58 if (!async_data_read_receive(&rcall_handle, &size)) { 59 async_answer_0(chandle, EINVAL); 56 ipc_call_t rcall; 57 if (!async_data_read_receive(&rcall, &size)) { 58 async_answer_0(call, EINVAL); 60 59 return; 61 60 } … … 63 62 buf = malloc(size); 64 63 if (buf == NULL) { 65 async_answer_0( rcall_handle, ENOMEM);66 async_answer_0(c handle, ENOMEM);64 async_answer_0(&rcall, ENOMEM); 65 async_answer_0(call, ENOMEM); 67 66 return; 68 67 } 69 68 70 69 if (srv->srvs->ops->read_blocks == NULL) { 71 async_answer_0( rcall_handle, ENOTSUP);72 async_answer_0(c handle, ENOTSUP);70 async_answer_0(&rcall, ENOTSUP); 71 async_answer_0(call, ENOTSUP); 73 72 free(buf); 74 73 return; … … 77 76 rc = srv->srvs->ops->read_blocks(srv, ba, cnt, buf, size); 78 77 if (rc != EOK) { 79 async_answer_0( rcall_handle, ENOMEM);80 async_answer_0(c handle, ENOMEM);81 free(buf); 82 return; 83 } 84 85 async_data_read_finalize( rcall_handle, buf, size);78 async_answer_0(&rcall, ENOMEM); 79 async_answer_0(call, ENOMEM); 80 free(buf); 81 return; 82 } 83 84 async_data_read_finalize(&rcall, buf, size); 86 85 87 86 free(buf); 88 async_answer_0(chandle, EOK); 89 } 90 91 static void bd_read_toc_srv(bd_srv_t *srv, cap_call_handle_t chandle, 92 ipc_call_t *call) 87 async_answer_0(call, EOK); 88 } 89 90 static void bd_read_toc_srv(bd_srv_t *srv, ipc_call_t *call) 93 91 { 94 92 uint8_t session; … … 96 94 size_t size; 97 95 errno_t rc; 98 cap_call_handle_t rcall_handle;99 96 100 97 session = IPC_GET_ARG1(*call); 101 98 102 if (!async_data_read_receive(&rcall_handle, &size)) { 103 async_answer_0(chandle, EINVAL); 99 ipc_call_t rcall; 100 if (!async_data_read_receive(&rcall, &size)) { 101 async_answer_0(call, EINVAL); 104 102 return; 105 103 } … … 107 105 buf = malloc(size); 108 106 if (buf == NULL) { 109 async_answer_0( rcall_handle, ENOMEM);110 async_answer_0(c handle, ENOMEM);107 async_answer_0(&rcall, ENOMEM); 108 async_answer_0(call, ENOMEM); 111 109 return; 112 110 } 113 111 114 112 if (srv->srvs->ops->read_toc == NULL) { 115 async_answer_0( rcall_handle, ENOTSUP);116 async_answer_0(c handle, ENOTSUP);113 async_answer_0(&rcall, ENOTSUP); 114 async_answer_0(call, ENOTSUP); 117 115 free(buf); 118 116 return; … … 121 119 rc = srv->srvs->ops->read_toc(srv, session, buf, size); 122 120 if (rc != EOK) { 123 async_answer_0( rcall_handle, ENOMEM);124 async_answer_0(c handle, ENOMEM);125 free(buf); 126 return; 127 } 128 129 async_data_read_finalize( rcall_handle, buf, size);121 async_answer_0(&rcall, ENOMEM); 122 async_answer_0(call, ENOMEM); 123 free(buf); 124 return; 125 } 126 127 async_data_read_finalize(&rcall, buf, size); 130 128 131 129 free(buf); 132 async_answer_0(chandle, EOK); 133 } 134 135 static void bd_sync_cache_srv(bd_srv_t *srv, cap_call_handle_t chandle, 136 ipc_call_t *call) 130 async_answer_0(call, EOK); 131 } 132 133 static void bd_sync_cache_srv(bd_srv_t *srv, ipc_call_t *call) 137 134 { 138 135 aoff64_t ba; … … 144 141 145 142 if (srv->srvs->ops->sync_cache == NULL) { 146 async_answer_0(c handle, ENOTSUP);143 async_answer_0(call, ENOTSUP); 147 144 return; 148 145 } 149 146 150 147 rc = srv->srvs->ops->sync_cache(srv, ba, cnt); 151 async_answer_0(chandle, rc); 152 } 153 154 static void bd_write_blocks_srv(bd_srv_t *srv, cap_call_handle_t chandle, 155 ipc_call_t *call) 148 async_answer_0(call, rc); 149 } 150 151 static void bd_write_blocks_srv(bd_srv_t *srv, ipc_call_t *call) 156 152 { 157 153 aoff64_t ba; … … 166 162 rc = async_data_write_accept(&data, false, 0, 0, 0, &size); 167 163 if (rc != EOK) { 168 async_answer_0(c handle, rc);164 async_answer_0(call, rc); 169 165 return; 170 166 } 171 167 172 168 if (srv->srvs->ops->write_blocks == NULL) { 173 async_answer_0(c handle, ENOTSUP);169 async_answer_0(call, ENOTSUP); 174 170 return; 175 171 } … … 177 173 rc = srv->srvs->ops->write_blocks(srv, ba, cnt, data, size); 178 174 free(data); 179 async_answer_0(chandle, rc); 180 } 181 182 static void bd_get_block_size_srv(bd_srv_t *srv, cap_call_handle_t chandle, 183 ipc_call_t *call) 175 async_answer_0(call, rc); 176 } 177 178 static void bd_get_block_size_srv(bd_srv_t *srv, ipc_call_t *call) 184 179 { 185 180 errno_t rc; … … 187 182 188 183 if (srv->srvs->ops->get_block_size == NULL) { 189 async_answer_0(c handle, ENOTSUP);184 async_answer_0(call, ENOTSUP); 190 185 return; 191 186 } 192 187 193 188 rc = srv->srvs->ops->get_block_size(srv, &block_size); 194 async_answer_1(chandle, rc, block_size); 195 } 196 197 static void bd_get_num_blocks_srv(bd_srv_t *srv, cap_call_handle_t chandle, 198 ipc_call_t *call) 189 async_answer_1(call, rc, block_size); 190 } 191 192 static void bd_get_num_blocks_srv(bd_srv_t *srv, ipc_call_t *call) 199 193 { 200 194 errno_t rc; … … 202 196 203 197 if (srv->srvs->ops->get_num_blocks == NULL) { 204 async_answer_0(c handle, ENOTSUP);198 async_answer_0(call, ENOTSUP); 205 199 return; 206 200 } 207 201 208 202 rc = srv->srvs->ops->get_num_blocks(srv, &num_blocks); 209 async_answer_2(c handle, rc, LOWER32(num_blocks), UPPER32(num_blocks));203 async_answer_2(call, rc, LOWER32(num_blocks), UPPER32(num_blocks)); 210 204 } 211 205 … … 228 222 } 229 223 230 errno_t bd_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, bd_srvs_t *srvs)224 errno_t bd_conn(ipc_call_t *icall, bd_srvs_t *srvs) 231 225 { 232 226 bd_srv_t *srv; … … 234 228 235 229 /* Accept the connection */ 236 async_answer_0(icall _handle, EOK);230 async_answer_0(icall, EOK); 237 231 238 232 srv = bd_srv_create(srvs); … … 252 246 while (true) { 253 247 ipc_call_t call; 254 cap_call_handle_t chandle =async_get_call(&call);248 async_get_call(&call); 255 249 sysarg_t method = IPC_GET_IMETHOD(call); 256 250 257 251 if (!method) { 258 252 /* The other side has hung up */ 259 async_answer_0( chandle, EOK);253 async_answer_0(&call, EOK); 260 254 break; 261 255 } … … 263 257 switch (method) { 264 258 case BD_READ_BLOCKS: 265 bd_read_blocks_srv(srv, chandle,&call);259 bd_read_blocks_srv(srv, &call); 266 260 break; 267 261 case BD_READ_TOC: 268 bd_read_toc_srv(srv, chandle,&call);262 bd_read_toc_srv(srv, &call); 269 263 break; 270 264 case BD_SYNC_CACHE: 271 bd_sync_cache_srv(srv, chandle,&call);265 bd_sync_cache_srv(srv, &call); 272 266 break; 273 267 case BD_WRITE_BLOCKS: 274 bd_write_blocks_srv(srv, chandle,&call);268 bd_write_blocks_srv(srv, &call); 275 269 break; 276 270 case BD_GET_BLOCK_SIZE: 277 bd_get_block_size_srv(srv, chandle,&call);271 bd_get_block_size_srv(srv, &call); 278 272 break; 279 273 case BD_GET_NUM_BLOCKS: 280 bd_get_num_blocks_srv(srv, chandle,&call);274 bd_get_num_blocks_srv(srv, &call); 281 275 break; 282 276 default: 283 async_answer_0( chandle, EINVAL);277 async_answer_0(&call, EINVAL); 284 278 } 285 279 } -
uspace/lib/c/generic/inet.c
r76f566d r984a9ba 36 36 #include <stdlib.h> 37 37 38 static void inet_cb_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg);38 static void inet_cb_conn(ipc_call_t *icall, void *arg); 39 39 40 40 static async_sess_t *inet_sess = NULL; … … 176 176 } 177 177 178 static void inet_ev_recv( cap_call_handle_t icall_handle,ipc_call_t *icall)178 static void inet_ev_recv(ipc_call_t *icall) 179 179 { 180 180 inet_dgram_t dgram; … … 183 183 dgram.iplink = IPC_GET_ARG2(*icall); 184 184 185 cap_call_handle_t chandle;185 ipc_call_t call; 186 186 size_t size; 187 if (!async_data_write_receive(&c handle, &size)) {188 async_answer_0( chandle, EINVAL);189 async_answer_0(icall _handle, EINVAL);187 if (!async_data_write_receive(&call, &size)) { 188 async_answer_0(&call, EINVAL); 189 async_answer_0(icall, EINVAL); 190 190 return; 191 191 } 192 192 193 193 if (size != sizeof(inet_addr_t)) { 194 async_answer_0( chandle, EINVAL);195 async_answer_0(icall _handle, EINVAL);196 return; 197 } 198 199 errno_t rc = async_data_write_finalize( chandle, &dgram.src, size);200 if (rc != EOK) { 201 async_answer_0( chandle, rc);202 async_answer_0(icall _handle, rc);203 return; 204 } 205 206 if (!async_data_write_receive(&c handle, &size)) {207 async_answer_0( chandle, EINVAL);208 async_answer_0(icall _handle, EINVAL);194 async_answer_0(&call, EINVAL); 195 async_answer_0(icall, EINVAL); 196 return; 197 } 198 199 errno_t rc = async_data_write_finalize(&call, &dgram.src, size); 200 if (rc != EOK) { 201 async_answer_0(&call, rc); 202 async_answer_0(icall, rc); 203 return; 204 } 205 206 if (!async_data_write_receive(&call, &size)) { 207 async_answer_0(&call, EINVAL); 208 async_answer_0(icall, EINVAL); 209 209 return; 210 210 } 211 211 212 212 if (size != sizeof(inet_addr_t)) { 213 async_answer_0( chandle, EINVAL);214 async_answer_0(icall _handle, EINVAL);215 return; 216 } 217 218 rc = async_data_write_finalize( chandle, &dgram.dest, size);219 if (rc != EOK) { 220 async_answer_0( chandle, rc);221 async_answer_0(icall _handle, rc);213 async_answer_0(&call, EINVAL); 214 async_answer_0(icall, EINVAL); 215 return; 216 } 217 218 rc = async_data_write_finalize(&call, &dgram.dest, size); 219 if (rc != EOK) { 220 async_answer_0(&call, rc); 221 async_answer_0(icall, rc); 222 222 return; 223 223 } … … 225 225 rc = async_data_write_accept(&dgram.data, false, 0, 0, 0, &dgram.size); 226 226 if (rc != EOK) { 227 async_answer_0(icall _handle, rc);227 async_answer_0(icall, rc); 228 228 return; 229 229 } … … 231 231 rc = inet_ev_ops->recv(&dgram); 232 232 free(dgram.data); 233 async_answer_0(icall _handle, rc);234 } 235 236 static void inet_cb_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg)233 async_answer_0(icall, rc); 234 } 235 236 static void inet_cb_conn(ipc_call_t *icall, void *arg) 237 237 { 238 238 while (true) { 239 239 ipc_call_t call; 240 cap_call_handle_t chandle =async_get_call(&call);240 async_get_call(&call); 241 241 242 242 if (!IPC_GET_IMETHOD(call)) { … … 247 247 switch (IPC_GET_IMETHOD(call)) { 248 248 case INET_EV_RECV: 249 inet_ev_recv( chandle,&call);249 inet_ev_recv(&call); 250 250 break; 251 251 default: 252 async_answer_0( chandle, ENOTSUP);252 async_answer_0(&call, ENOTSUP); 253 253 } 254 254 } -
uspace/lib/c/generic/inet/tcp.c
r76f566d r984a9ba 41 41 #include <stdlib.h> 42 42 43 static void tcp_cb_conn( cap_call_handle_t,ipc_call_t *, void *);43 static void tcp_cb_conn(ipc_call_t *, void *); 44 44 static errno_t tcp_conn_fibril(void *); 45 45 … … 633 633 /** Connection established event. 634 634 * 635 * @param tcp TCP client 636 * @param icall_handle Call handle 637 * @param icall Call data 638 */ 639 static void 640 tcp_ev_connected(tcp_t *tcp, cap_call_handle_t icall_handle, ipc_call_t *icall) 635 * @param tcp TCP client 636 * @param icall Call data 637 * 638 */ 639 static void tcp_ev_connected(tcp_t *tcp, ipc_call_t *icall) 641 640 { 642 641 tcp_conn_t *conn; … … 648 647 rc = tcp_conn_get(tcp, conn_id, &conn); 649 648 if (rc != EOK) { 650 async_answer_0(icall _handle, ENOENT);649 async_answer_0(icall, ENOENT); 651 650 return; 652 651 } … … 657 656 fibril_mutex_unlock(&conn->lock); 658 657 659 async_answer_0(icall _handle, EOK);658 async_answer_0(icall, EOK); 660 659 } 661 660 662 661 /** Connection failed event. 663 662 * 664 * @param tcp TCP client 665 * @param icall_handle Call handle 666 * @param icall Call data 667 */ 668 static void 669 tcp_ev_conn_failed(tcp_t *tcp, cap_call_handle_t icall_handle, 670 ipc_call_t *icall) 663 * @param tcp TCP client 664 * @param icall Call data 665 * 666 */ 667 static void tcp_ev_conn_failed(tcp_t *tcp, ipc_call_t *icall) 671 668 { 672 669 tcp_conn_t *conn; … … 678 675 rc = tcp_conn_get(tcp, conn_id, &conn); 679 676 if (rc != EOK) { 680 async_answer_0(icall _handle, ENOENT);677 async_answer_0(icall, ENOENT); 681 678 return; 682 679 } … … 687 684 fibril_mutex_unlock(&conn->lock); 688 685 689 async_answer_0(icall _handle, EOK);686 async_answer_0(icall, EOK); 690 687 } 691 688 692 689 /** Connection reset event. 693 690 * 694 * @param tcp 695 * @param icall _handle Call handle696 * @param icall Call data697 */ 698 static void tcp_ev_conn_reset(tcp_t *tcp, cap_call_handle_t icall_handle,ipc_call_t *icall)691 * @param tcp TCP client 692 * @param icall Call data 693 * 694 */ 695 static void tcp_ev_conn_reset(tcp_t *tcp, ipc_call_t *icall) 699 696 { 700 697 tcp_conn_t *conn; … … 706 703 rc = tcp_conn_get(tcp, conn_id, &conn); 707 704 if (rc != EOK) { 708 async_answer_0(icall _handle, ENOENT);705 async_answer_0(icall, ENOENT); 709 706 return; 710 707 } … … 715 712 fibril_mutex_unlock(&conn->lock); 716 713 717 async_answer_0(icall _handle, EOK);714 async_answer_0(icall, EOK); 718 715 } 719 716 720 717 /** Data available event. 721 718 * 722 * @param tcp TCP client 723 * @param icall_handle Call handle 724 * @param icall Call data 725 */ 726 static void 727 tcp_ev_data(tcp_t *tcp, cap_call_handle_t icall_handle, ipc_call_t *icall) 719 * @param tcp TCP client 720 * @param icall Call data 721 * 722 */ 723 static void tcp_ev_data(tcp_t *tcp, ipc_call_t *icall) 728 724 { 729 725 tcp_conn_t *conn; … … 735 731 rc = tcp_conn_get(tcp, conn_id, &conn); 736 732 if (rc != EOK) { 737 async_answer_0(icall _handle, ENOENT);733 async_answer_0(icall, ENOENT); 738 734 return; 739 735 } … … 745 741 conn->cb->data_avail(conn); 746 742 747 async_answer_0(icall _handle, EOK);743 async_answer_0(icall, EOK); 748 744 } 749 745 750 746 /** Urgent data event. 751 747 * 752 * @param tcp TCP client 753 * @param icall_handle Call handle 754 * @param icall Call data 755 */ 756 static void 757 tcp_ev_urg_data(tcp_t *tcp, cap_call_handle_t icall_handle, ipc_call_t *icall) 758 { 759 async_answer_0(icall_handle, ENOTSUP); 748 * @param tcp TCP client 749 * @param icall Call data 750 * 751 */ 752 static void tcp_ev_urg_data(tcp_t *tcp, ipc_call_t *icall) 753 { 754 async_answer_0(icall, ENOTSUP); 760 755 } 761 756 762 757 /** New connection event. 763 758 * 764 * @param tcp TCP client 765 * @param icall_handle Call handle 766 * @param icall Call data 767 */ 768 static void 769 tcp_ev_new_conn(tcp_t *tcp, cap_call_handle_t icall_handle, ipc_call_t *icall) 759 * @param tcp TCP client 760 * @param icall Call data 761 * 762 */ 763 static void tcp_ev_new_conn(tcp_t *tcp, ipc_call_t *icall) 770 764 { 771 765 tcp_listener_t *lst; … … 782 776 rc = tcp_listener_get(tcp, lst_id, &lst); 783 777 if (rc != EOK) { 784 async_answer_0(icall _handle, ENOENT);778 async_answer_0(icall, ENOENT); 785 779 return; 786 780 } … … 788 782 rc = tcp_conn_new(tcp, conn_id, lst->cb, lst->cb_arg, &conn); 789 783 if (rc != EOK) { 790 async_answer_0(icall _handle, ENOMEM);784 async_answer_0(icall, ENOMEM); 791 785 return; 792 786 } … … 795 789 cinfo = calloc(1, sizeof(tcp_in_conn_t)); 796 790 if (cinfo == NULL) { 797 async_answer_0(icall _handle, ENOMEM);791 async_answer_0(icall, ENOMEM); 798 792 return; 799 793 } … … 804 798 fid = fibril_create(tcp_conn_fibril, cinfo); 805 799 if (fid == 0) { 806 async_answer_0(icall _handle, ENOMEM);800 async_answer_0(icall, ENOMEM); 807 801 } 808 802 … … 810 804 } 811 805 812 async_answer_0(icall _handle, EOK);806 async_answer_0(icall, EOK); 813 807 } 814 808 815 809 /** Callback connection handler. 816 810 * 817 * @param icall_handle Connect call handle 818 * @param icall Connect call data 819 * @param arg Argument, TCP client 820 */ 821 static void 822 tcp_cb_conn(cap_call_handle_t icall_handle, ipc_call_t *icall, void *arg) 811 * @param icall Connect call data 812 * @param arg Argument, TCP client 813 * 814 */ 815 static void tcp_cb_conn(ipc_call_t *icall, void *arg) 823 816 { 824 817 tcp_t *tcp = (tcp_t *)arg; 825 818 826 async_answer_0(icall _handle, EOK);819 async_answer_0(icall, EOK); 827 820 828 821 while (true) { 829 822 ipc_call_t call; 830 cap_call_handle_t chandle =async_get_call(&call);823 async_get_call(&call); 831 824 832 825 if (!IPC_GET_IMETHOD(call)) { … … 837 830 switch (IPC_GET_IMETHOD(call)) { 838 831 case TCP_EV_CONNECTED: 839 tcp_ev_connected(tcp, chandle,&call);832 tcp_ev_connected(tcp, &call); 840 833 break; 841 834 case TCP_EV_CONN_FAILED: 842 tcp_ev_conn_failed(tcp, chandle,&call);835 tcp_ev_conn_failed(tcp, &call); 843 836 break; 844 837 case TCP_EV_CONN_RESET: 845 tcp_ev_conn_reset(tcp, chandle,&call);838 tcp_ev_conn_reset(tcp, &call); 846 839 break; 847 840 case TCP_EV_DATA: 848 tcp_ev_data(tcp, chandle,&call);841 tcp_ev_data(tcp, &call); 849 842 break; 850 843 case TCP_EV_URG_DATA: 851 tcp_ev_urg_data(tcp, chandle,&call);844 tcp_ev_urg_data(tcp, &call); 852 845 break; 853 846 case TCP_EV_NEW_CONN: 854 tcp_ev_new_conn(tcp, chandle,&call);847 tcp_ev_new_conn(tcp, &call); 855 848 break; 856 849 default: 857 async_answer_0( chandle, ENOTSUP);850 async_answer_0(&call, ENOTSUP); 858 851 break; 859 852 } 860 853 } 854 861 855 out: 862 856 fibril_mutex_lock(&tcp->lock); -
uspace/lib/c/generic/inet/udp.c
r76f566d r984a9ba 41 41 #include <stdlib.h> 42 42 43 static void udp_cb_conn( cap_call_handle_t,ipc_call_t *, void *);43 static void udp_cb_conn(ipc_call_t *, void *); 44 44 45 45 /** Create callback connection from UDP service. … … 451 451 * callback and discard it. 452 452 * 453 * @param udp UDP client 454 * @param iid IPC message ID 453 * @param udp UDP client 455 454 * @param icall IPC message 456 */ 457 static void udp_ev_data(udp_t *udp, cap_call_handle_t icall_handle, ipc_call_t *icall) 455 * 456 */ 457 static void udp_ev_data(udp_t *udp, ipc_call_t *icall) 458 458 { 459 459 udp_rmsg_t rmsg; … … 481 481 } 482 482 483 async_answer_0(icall _handle, EOK);483 async_answer_0(icall, EOK); 484 484 } 485 485 486 486 /** UDP service callback connection. 487 487 * 488 * @param iid Connect message ID489 488 * @param icall Connect message 490 * @param arg Argument, UDP client 491 */ 492 static void udp_cb_conn(cap_call_handle_t icall_handle, ipc_call_t *icall, void *arg) 489 * @param arg Argument, UDP client 490 * 491 */ 492 static void udp_cb_conn(ipc_call_t *icall, void *arg) 493 493 { 494 494 udp_t *udp = (udp_t *)arg; 495 495 496 async_answer_0(icall _handle, EOK);496 async_answer_0(icall, EOK); 497 497 498 498 while (true) { 499 499 ipc_call_t call; 500 cap_call_handle_t chandle =async_get_call(&call);500 async_get_call(&call); 501 501 502 502 if (!IPC_GET_IMETHOD(call)) { … … 507 507 switch (IPC_GET_IMETHOD(call)) { 508 508 case UDP_EV_DATA: 509 udp_ev_data(udp, chandle,&call);509 udp_ev_data(udp, &call); 510 510 break; 511 511 default: 512 async_answer_0( chandle, ENOTSUP);512 async_answer_0(&call, ENOTSUP); 513 513 break; 514 514 } 515 515 } 516 516 517 out: 517 518 fibril_mutex_lock(&udp->lock); -
uspace/lib/c/generic/inetping.c
r76f566d r984a9ba 38 38 #include <str.h> 39 39 40 static void inetping_cb_conn( cap_call_handle_t,ipc_call_t *, void *);41 static void inetping_ev_recv( cap_call_handle_t,ipc_call_t *);40 static void inetping_cb_conn(ipc_call_t *, void *); 41 static void inetping_ev_recv(ipc_call_t *); 42 42 43 43 static async_sess_t *inetping_sess = NULL; … … 150 150 } 151 151 152 static void inetping_ev_recv( cap_call_handle_t icall_handle,ipc_call_t *icall)152 static void inetping_ev_recv(ipc_call_t *icall) 153 153 { 154 154 inetping_sdu_t sdu; … … 156 156 sdu.seq_no = IPC_GET_ARG1(*icall); 157 157 158 cap_call_handle_t chandle;158 ipc_call_t call; 159 159 size_t size; 160 if (!async_data_write_receive(&c handle, &size)) {161 async_answer_0( chandle, EREFUSED);162 async_answer_0(icall _handle, EREFUSED);160 if (!async_data_write_receive(&call, &size)) { 161 async_answer_0(&call, EREFUSED); 162 async_answer_0(icall, EREFUSED); 163 163 return; 164 164 } 165 165 166 166 if (size != sizeof(sdu.src)) { 167 async_answer_0( chandle, EINVAL);168 async_answer_0(icall _handle, EINVAL);169 return; 170 } 171 172 errno_t rc = async_data_write_finalize( chandle, &sdu.src, size);173 if (rc != EOK) { 174 async_answer_0( chandle, rc);175 async_answer_0(icall _handle, rc);176 return; 177 } 178 179 if (!async_data_write_receive(&c handle, &size)) {180 async_answer_0( chandle, EREFUSED);181 async_answer_0(icall _handle, EREFUSED);167 async_answer_0(&call, EINVAL); 168 async_answer_0(icall, EINVAL); 169 return; 170 } 171 172 errno_t rc = async_data_write_finalize(&call, &sdu.src, size); 173 if (rc != EOK) { 174 async_answer_0(&call, rc); 175 async_answer_0(icall, rc); 176 return; 177 } 178 179 if (!async_data_write_receive(&call, &size)) { 180 async_answer_0(&call, EREFUSED); 181 async_answer_0(icall, EREFUSED); 182 182 return; 183 183 } 184 184 185 185 if (size != sizeof(sdu.dest)) { 186 async_answer_0( chandle, EINVAL);187 async_answer_0(icall _handle, EINVAL);188 return; 189 } 190 191 rc = async_data_write_finalize( chandle, &sdu.dest, size);192 if (rc != EOK) { 193 async_answer_0( chandle, rc);194 async_answer_0(icall _handle, rc);186 async_answer_0(&call, EINVAL); 187 async_answer_0(icall, EINVAL); 188 return; 189 } 190 191 rc = async_data_write_finalize(&call, &sdu.dest, size); 192 if (rc != EOK) { 193 async_answer_0(&call, rc); 194 async_answer_0(icall, rc); 195 195 return; 196 196 } … … 198 198 rc = async_data_write_accept(&sdu.data, false, 0, 0, 0, &sdu.size); 199 199 if (rc != EOK) { 200 async_answer_0(icall _handle, rc);200 async_answer_0(icall, rc); 201 201 return; 202 202 } … … 204 204 rc = inetping_ev_ops->recv(&sdu); 205 205 free(sdu.data); 206 async_answer_0(icall _handle, rc);207 } 208 209 static void inetping_cb_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg)206 async_answer_0(icall, rc); 207 } 208 209 static void inetping_cb_conn(ipc_call_t *icall, void *arg) 210 210 { 211 211 while (true) { 212 212 ipc_call_t call; 213 cap_call_handle_t chandle =async_get_call(&call);213 async_get_call(&call); 214 214 215 215 if (!IPC_GET_IMETHOD(call)) { … … 220 220 switch (IPC_GET_IMETHOD(call)) { 221 221 case INETPING_EV_RECV: 222 inetping_ev_recv( chandle,&call);222 inetping_ev_recv(&call); 223 223 break; 224 224 default: 225 async_answer_0( chandle, ENOTSUP);225 async_answer_0(&call, ENOTSUP); 226 226 } 227 227 } -
uspace/lib/c/generic/io/chardev_srv.c
r76f566d r984a9ba 43 43 static chardev_srv_t *chardev_srv_create(chardev_srvs_t *); 44 44 45 static void chardev_read_srv(chardev_srv_t *srv, cap_call_handle_t chandle, 46 ipc_call_t *call) 45 static void chardev_read_srv(chardev_srv_t *srv, ipc_call_t *icall) 47 46 { 48 47 void *buf; … … 50 49 size_t nread; 51 50 errno_t rc; 52 cap_call_handle_t rcall_handle;53 51 54 if (!async_data_read_receive(&rcall_handle, &size)) { 55 async_answer_0(chandle, EINVAL); 52 ipc_call_t call; 53 if (!async_data_read_receive(&call, &size)) { 54 async_answer_0(icall, EINVAL); 56 55 return; 57 56 } … … 59 58 buf = malloc(size); 60 59 if (buf == NULL) { 61 async_answer_0( rcall_handle, ENOMEM);62 async_answer_0( chandle, ENOMEM);60 async_answer_0(&call, ENOMEM); 61 async_answer_0(icall, ENOMEM); 63 62 return; 64 63 } 65 64 66 65 if (srv->srvs->ops->read == NULL) { 67 async_answer_0( rcall_handle, ENOTSUP);68 async_answer_0( chandle, ENOTSUP);66 async_answer_0(&call, ENOTSUP); 67 async_answer_0(icall, ENOTSUP); 69 68 free(buf); 70 69 return; … … 73 72 rc = srv->srvs->ops->read(srv, buf, size, &nread); 74 73 if (rc != EOK && nread == 0) { 75 async_answer_0( rcall_handle, rc);76 async_answer_0( chandle, rc);74 async_answer_0(&call, rc); 75 async_answer_0(icall, rc); 77 76 free(buf); 78 77 return; 79 78 } 80 79 81 async_data_read_finalize( rcall_handle, buf, nread);80 async_data_read_finalize(&call, buf, nread); 82 81 83 82 free(buf); 84 async_answer_2( chandle, EOK, (sysarg_t) rc, nread);83 async_answer_2(icall, EOK, (sysarg_t) rc, nread); 85 84 } 86 85 87 static void chardev_write_srv(chardev_srv_t *srv, cap_call_handle_t chandle, 88 ipc_call_t *call) 86 static void chardev_write_srv(chardev_srv_t *srv, ipc_call_t *icall) 89 87 { 90 88 void *data; … … 95 93 rc = async_data_write_accept(&data, false, 0, 0, 0, &size); 96 94 if (rc != EOK) { 97 async_answer_0( chandle, rc);95 async_answer_0(icall, rc); 98 96 return; 99 97 } 100 98 101 99 if (srv->srvs->ops->write == NULL) { 102 async_answer_0( chandle, ENOTSUP);100 async_answer_0(icall, ENOTSUP); 103 101 return; 104 102 } … … 107 105 free(data); 108 106 if (rc != EOK && nwr == 0) { 109 async_answer_0( chandle, rc);107 async_answer_0(icall, rc); 110 108 return; 111 109 } 112 110 113 async_answer_2( chandle, EOK, (sysarg_t) rc, nwr);111 async_answer_2(icall, EOK, (sysarg_t) rc, nwr); 114 112 } 115 113 … … 132 130 } 133 131 134 errno_t chardev_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, chardev_srvs_t *srvs)132 errno_t chardev_conn(ipc_call_t *icall, chardev_srvs_t *srvs) 135 133 { 136 134 chardev_srv_t *srv; … … 138 136 139 137 /* Accept the connection */ 140 async_answer_0(icall _handle, EOK);138 async_answer_0(icall, EOK); 141 139 142 140 srv = chardev_srv_create(srvs); … … 152 150 while (true) { 153 151 ipc_call_t call; 154 cap_call_handle_t chandle =async_get_call(&call);152 async_get_call(&call); 155 153 sysarg_t method = IPC_GET_IMETHOD(call); 156 154 157 155 if (!method) { 158 156 /* The other side has hung up */ 159 async_answer_0( chandle, EOK);157 async_answer_0(&call, EOK); 160 158 break; 161 159 } … … 163 161 switch (method) { 164 162 case CHARDEV_READ: 165 chardev_read_srv(srv, chandle,&call);163 chardev_read_srv(srv, &call); 166 164 break; 167 165 case CHARDEV_WRITE: 168 chardev_write_srv(srv, chandle,&call);166 chardev_write_srv(srv, &call); 169 167 break; 170 168 default: 171 169 if (srv->srvs->ops->def_handler != NULL) 172 srv->srvs->ops->def_handler(srv, chandle,&call);170 srv->srvs->ops->def_handler(srv, &call); 173 171 else 174 async_answer_0( chandle, ENOTSUP);172 async_answer_0(&call, ENOTSUP); 175 173 } 176 174 } -
uspace/lib/c/generic/io/con_srv.c
r76f566d r984a9ba 42 42 #include <io/con_srv.h> 43 43 44 static errno_t console_ev_encode(cons_event_t *event, ipc_call_t * call)45 { 46 IPC_SET_ARG1(* call, event->type);44 static errno_t console_ev_encode(cons_event_t *event, ipc_call_t *icall) 45 { 46 IPC_SET_ARG1(*icall, event->type); 47 47 48 48 switch (event->type) { 49 49 case CEV_KEY: 50 IPC_SET_ARG2(* call, event->ev.key.type);51 IPC_SET_ARG3(* call, event->ev.key.key);52 IPC_SET_ARG4(* call, event->ev.key.mods);53 IPC_SET_ARG5(* call, event->ev.key.c);50 IPC_SET_ARG2(*icall, event->ev.key.type); 51 IPC_SET_ARG3(*icall, event->ev.key.key); 52 IPC_SET_ARG4(*icall, event->ev.key.mods); 53 IPC_SET_ARG5(*icall, event->ev.key.c); 54 54 break; 55 55 case CEV_POS: 56 IPC_SET_ARG2(* call, (event->ev.pos.pos_id << 16) | (event->ev.pos.type & 0xffff));57 IPC_SET_ARG3(* call, event->ev.pos.btn_num);58 IPC_SET_ARG4(* call, event->ev.pos.hpos);59 IPC_SET_ARG5(* call, event->ev.pos.vpos);56 IPC_SET_ARG2(*icall, (event->ev.pos.pos_id << 16) | (event->ev.pos.type & 0xffff)); 57 IPC_SET_ARG3(*icall, event->ev.pos.btn_num); 58 IPC_SET_ARG4(*icall, event->ev.pos.hpos); 59 IPC_SET_ARG5(*icall, event->ev.pos.vpos); 60 60 break; 61 61 default: … … 66 66 } 67 67 68 static void con_read_srv(con_srv_t *srv, cap_call_handle_t chandle, 69 ipc_call_t *call) 68 static void con_read_srv(con_srv_t *srv, ipc_call_t *icall) 70 69 { 71 70 void *buf; 72 71 size_t size; 73 72 errno_t rc; 74 cap_call_handle_t rcall_handle; 75 76 if (!async_data_read_receive(& rcall_handle, &size)) {77 async_answer_0( chandle, EINVAL);73 74 ipc_call_t call; 75 if (!async_data_read_receive(&call, &size)) { 76 async_answer_0(icall, EINVAL); 78 77 return; 79 78 } … … 81 80 buf = malloc(size); 82 81 if (buf == NULL) { 83 async_answer_0( rcall_handle, ENOMEM);84 async_answer_0( chandle, ENOMEM);82 async_answer_0(&call, ENOMEM); 83 async_answer_0(icall, ENOMEM); 85 84 return; 86 85 } 87 86 88 87 if (srv->srvs->ops->read == NULL) { 89 async_answer_0( rcall_handle, ENOTSUP);90 async_answer_0( chandle, ENOTSUP);88 async_answer_0(&call, ENOTSUP); 89 async_answer_0(icall, ENOTSUP); 91 90 free(buf); 92 91 return; … … 96 95 rc = srv->srvs->ops->read(srv, buf, size, &nread); 97 96 if (rc != EOK) { 98 async_answer_0( rcall_handle, rc);99 async_answer_0( chandle, rc);97 async_answer_0(&call, rc); 98 async_answer_0(icall, rc); 100 99 free(buf); 101 100 return; 102 101 } 103 102 104 async_data_read_finalize( rcall_handle, buf, nread);103 async_data_read_finalize(&call, buf, nread); 105 104 free(buf); 106 105 107 async_answer_1(chandle, EOK, nread); 108 } 109 110 static void con_write_srv(con_srv_t *srv, cap_call_handle_t chandle, 111 ipc_call_t *call) 106 async_answer_1(icall, EOK, nread); 107 } 108 109 static void con_write_srv(con_srv_t *srv, ipc_call_t *icall) 112 110 { 113 111 void *data; … … 117 115 rc = async_data_write_accept(&data, false, 0, 0, 0, &size); 118 116 if (rc != EOK) { 119 async_answer_0( chandle, rc);117 async_answer_0(icall, rc); 120 118 return; 121 119 } 122 120 123 121 if (srv->srvs->ops->write == NULL) { 124 async_answer_0( chandle, ENOTSUP);122 async_answer_0(icall, ENOTSUP); 125 123 return; 126 124 } … … 130 128 free(data); 131 129 132 async_answer_1(chandle, rc, nwritten); 133 } 134 135 static void con_sync_srv(con_srv_t *srv, cap_call_handle_t chandle, 136 ipc_call_t *call) 130 async_answer_1(icall, rc, nwritten); 131 } 132 133 static void con_sync_srv(con_srv_t *srv, ipc_call_t *icall) 137 134 { 138 135 if (srv->srvs->ops->sync == NULL) { 139 async_answer_0( chandle, ENOTSUP);136 async_answer_0(icall, ENOTSUP); 140 137 return; 141 138 } 142 139 143 140 srv->srvs->ops->sync(srv); 144 async_answer_0(chandle, EOK); 145 } 146 147 static void con_clear_srv(con_srv_t *srv, cap_call_handle_t chandle, 148 ipc_call_t *call) 141 async_answer_0(icall, EOK); 142 } 143 144 static void con_clear_srv(con_srv_t *srv, ipc_call_t *icall) 149 145 { 150 146 if (srv->srvs->ops->clear == NULL) { 151 async_answer_0( chandle, ENOTSUP);147 async_answer_0(icall, ENOTSUP); 152 148 return; 153 149 } 154 150 155 151 srv->srvs->ops->clear(srv); 156 async_answer_0(chandle, EOK); 157 } 158 159 static void con_set_pos_srv(con_srv_t *srv, cap_call_handle_t chandle, 160 ipc_call_t *call) 152 async_answer_0(icall, EOK); 153 } 154 155 static void con_set_pos_srv(con_srv_t *srv, ipc_call_t *icall) 161 156 { 162 157 sysarg_t col; 163 158 sysarg_t row; 164 159 165 col = IPC_GET_ARG1(* call);166 row = IPC_GET_ARG2(* call);160 col = IPC_GET_ARG1(*icall); 161 row = IPC_GET_ARG2(*icall); 167 162 168 163 if (srv->srvs->ops->set_pos == NULL) { 169 async_answer_0( chandle, ENOTSUP);164 async_answer_0(icall, ENOTSUP); 170 165 return; 171 166 } 172 167 173 168 srv->srvs->ops->set_pos(srv, col, row); 174 async_answer_0(chandle, EOK); 175 } 176 177 static void con_get_pos_srv(con_srv_t *srv, cap_call_handle_t chandle, 178 ipc_call_t *call) 169 async_answer_0(icall, EOK); 170 } 171 172 static void con_get_pos_srv(con_srv_t *srv, ipc_call_t *icall) 179 173 { 180 174 errno_t rc; … … 183 177 184 178 if (srv->srvs->ops->get_pos == NULL) { 185 async_answer_0( chandle, ENOTSUP);179 async_answer_0(icall, ENOTSUP); 186 180 return; 187 181 } 188 182 189 183 rc = srv->srvs->ops->get_pos(srv, &col, &row); 190 async_answer_2(chandle, rc, col, row); 191 } 192 193 static void con_get_size_srv(con_srv_t *srv, cap_call_handle_t chandle, 194 ipc_call_t *call) 184 async_answer_2(icall, rc, col, row); 185 } 186 187 static void con_get_size_srv(con_srv_t *srv, ipc_call_t *icall) 195 188 { 196 189 errno_t rc; … … 199 192 200 193 if (srv->srvs->ops->get_size == NULL) { 201 async_answer_0( chandle, ENOTSUP);194 async_answer_0(icall, ENOTSUP); 202 195 return; 203 196 } 204 197 205 198 rc = srv->srvs->ops->get_size(srv, &cols, &rows); 206 async_answer_2(chandle, rc, cols, rows); 207 } 208 209 static void con_get_color_cap_srv(con_srv_t *srv, cap_call_handle_t chandle, 210 ipc_call_t *call) 199 async_answer_2(icall, rc, cols, rows); 200 } 201 202 static void con_get_color_cap_srv(con_srv_t *srv, ipc_call_t *icall) 211 203 { 212 204 errno_t rc; … … 214 206 215 207 if (srv->srvs->ops->get_color_cap == NULL) { 216 async_answer_0( chandle, ENOTSUP);208 async_answer_0(icall, ENOTSUP); 217 209 return; 218 210 } 219 211 220 212 rc = srv->srvs->ops->get_color_cap(srv, &ccap); 221 async_answer_1(chandle, rc, (sysarg_t)ccap); 222 } 223 224 static void con_set_style_srv(con_srv_t *srv, cap_call_handle_t chandle, 225 ipc_call_t *call) 213 async_answer_1(icall, rc, (sysarg_t)ccap); 214 } 215 216 static void con_set_style_srv(con_srv_t *srv, ipc_call_t *icall) 226 217 { 227 218 console_style_t style; 228 219 229 style = IPC_GET_ARG1(* call);220 style = IPC_GET_ARG1(*icall); 230 221 231 222 if (srv->srvs->ops->set_style == NULL) { 232 async_answer_0( chandle, ENOTSUP);223 async_answer_0(icall, ENOTSUP); 233 224 return; 234 225 } 235 226 236 227 srv->srvs->ops->set_style(srv, style); 237 async_answer_0(chandle, EOK); 238 } 239 240 static void con_set_color_srv(con_srv_t *srv, cap_call_handle_t chandle, 241 ipc_call_t *call) 228 async_answer_0(icall, EOK); 229 } 230 231 static void con_set_color_srv(con_srv_t *srv, ipc_call_t *icall) 242 232 { 243 233 console_color_t bgcolor; … … 245 235 console_color_attr_t flags; 246 236 247 bgcolor = IPC_GET_ARG1(* call);248 fgcolor = IPC_GET_ARG2(* call);249 flags = IPC_GET_ARG3(* call);237 bgcolor = IPC_GET_ARG1(*icall); 238 fgcolor = IPC_GET_ARG2(*icall); 239 flags = IPC_GET_ARG3(*icall); 250 240 251 241 if (srv->srvs->ops->set_color == NULL) { 252 async_answer_0( chandle, ENOTSUP);242 async_answer_0(icall, ENOTSUP); 253 243 return; 254 244 } 255 245 256 246 srv->srvs->ops->set_color(srv, bgcolor, fgcolor, flags); 257 async_answer_0(chandle, EOK); 258 } 259 260 static void con_set_rgb_color_srv(con_srv_t *srv, cap_call_handle_t chandle, 261 ipc_call_t *call) 247 async_answer_0(icall, EOK); 248 } 249 250 static void con_set_rgb_color_srv(con_srv_t *srv, ipc_call_t *icall) 262 251 { 263 252 pixel_t bgcolor; 264 253 pixel_t fgcolor; 265 254 266 bgcolor = IPC_GET_ARG1(* call);267 fgcolor = IPC_GET_ARG2(* call);255 bgcolor = IPC_GET_ARG1(*icall); 256 fgcolor = IPC_GET_ARG2(*icall); 268 257 269 258 if (srv->srvs->ops->set_rgb_color == NULL) { 270 async_answer_0( chandle, ENOTSUP);259 async_answer_0(icall, ENOTSUP); 271 260 return; 272 261 } 273 262 274 263 srv->srvs->ops->set_rgb_color(srv, bgcolor, fgcolor); 275 async_answer_0(chandle, EOK); 276 } 277 278 static void con_set_cursor_visibility_srv(con_srv_t *srv, cap_call_handle_t chandle, 279 ipc_call_t *call) 264 async_answer_0(icall, EOK); 265 } 266 267 static void con_set_cursor_visibility_srv(con_srv_t *srv, ipc_call_t *icall) 280 268 { 281 269 bool show; 282 270 283 show = IPC_GET_ARG1(* call);271 show = IPC_GET_ARG1(*icall); 284 272 285 273 if (srv->srvs->ops->set_cursor_visibility == NULL) { 286 async_answer_0( chandle, ENOTSUP);274 async_answer_0(icall, ENOTSUP); 287 275 return; 288 276 } 289 277 290 278 srv->srvs->ops->set_cursor_visibility(srv, show); 291 async_answer_0(chandle, EOK); 292 } 293 294 static void con_get_event_srv(con_srv_t *srv, cap_call_handle_t chandle, 295 ipc_call_t *call) 279 async_answer_0(icall, EOK); 280 } 281 282 static void con_get_event_srv(con_srv_t *srv, ipc_call_t *icall) 296 283 { 297 284 errno_t rc; … … 300 287 301 288 if (srv->srvs->ops->get_event == NULL) { 302 async_answer_0( chandle, ENOTSUP);289 async_answer_0(icall, ENOTSUP); 303 290 return; 304 291 } … … 306 293 rc = srv->srvs->ops->get_event(srv, &event); 307 294 if (rc != EOK) { 308 async_answer_0( chandle, rc);295 async_answer_0(icall, rc); 309 296 return; 310 297 } … … 312 299 rc = console_ev_encode(&event, &result); 313 300 if (rc != EOK) { 314 async_answer_0( chandle, rc);315 return; 316 } 317 318 async_answer_5( chandle, rc, IPC_GET_ARG1(result), IPC_GET_ARG2(result),301 async_answer_0(icall, rc); 302 return; 303 } 304 305 async_answer_5(icall, rc, IPC_GET_ARG1(result), IPC_GET_ARG2(result), 319 306 IPC_GET_ARG3(result), IPC_GET_ARG4(result), IPC_GET_ARG5(result)); 320 307 } … … 340 327 } 341 328 342 errno_t con_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, con_srvs_t *srvs)329 errno_t con_conn(ipc_call_t *icall, con_srvs_t *srvs) 343 330 { 344 331 con_srv_t *srv; … … 346 333 347 334 /* Accept the connection */ 348 async_answer_0(icall _handle, EOK);335 async_answer_0(icall, EOK); 349 336 350 337 srv = con_srv_create(srvs); … … 360 347 while (true) { 361 348 ipc_call_t call; 362 cap_call_handle_t chandle = 0;363 364 while ( chandle == 0) {349 bool received = false; 350 351 while (!received) { 365 352 /* XXX Need to be able to abort immediately */ 366 chandle= async_get_call_timeout(&call,353 received = async_get_call_timeout(&call, 367 354 srvs->abort_timeout); 368 355 369 356 if (srv->srvs->aborted) { 370 if ( chandle != 0)371 async_answer_0( chandle, EINTR);357 if (received) 358 async_answer_0(&call, EINTR); 372 359 break; 373 360 } 374 361 } 375 362 376 if ( chandle == 0)363 if (!received) 377 364 break; 378 365 … … 381 368 if (!method) { 382 369 /* The other side has hung up */ 383 async_answer_0( chandle, EOK);370 async_answer_0(&call, EOK); 384 371 break; 385 372 } … … 387 374 switch (method) { 388 375 case VFS_OUT_READ: 389 con_read_srv(srv, chandle,&call);376 con_read_srv(srv, &call); 390 377 break; 391 378 case VFS_OUT_WRITE: 392 con_write_srv(srv, chandle,&call);379 con_write_srv(srv, &call); 393 380 break; 394 381 case VFS_OUT_SYNC: 395 con_sync_srv(srv, chandle,&call);382 con_sync_srv(srv, &call); 396 383 break; 397 384 case CONSOLE_CLEAR: 398 con_clear_srv(srv, chandle,&call);385 con_clear_srv(srv, &call); 399 386 break; 400 387 case CONSOLE_SET_POS: 401 con_set_pos_srv(srv, chandle,&call);388 con_set_pos_srv(srv, &call); 402 389 break; 403 390 case CONSOLE_GET_POS: 404 con_get_pos_srv(srv, chandle,&call);391 con_get_pos_srv(srv, &call); 405 392 break; 406 393 case CONSOLE_GET_SIZE: 407 con_get_size_srv(srv, chandle,&call);394 con_get_size_srv(srv, &call); 408 395 break; 409 396 case CONSOLE_GET_COLOR_CAP: 410 con_get_color_cap_srv(srv, chandle,&call);397 con_get_color_cap_srv(srv, &call); 411 398 break; 412 399 case CONSOLE_SET_STYLE: 413 con_set_style_srv(srv, chandle,&call);400 con_set_style_srv(srv, &call); 414 401 break; 415 402 case CONSOLE_SET_COLOR: 416 con_set_color_srv(srv, chandle,&call);403 con_set_color_srv(srv, &call); 417 404 break; 418 405 case CONSOLE_SET_RGB_COLOR: 419 con_set_rgb_color_srv(srv, chandle,&call);406 con_set_rgb_color_srv(srv, &call); 420 407 break; 421 408 case CONSOLE_SET_CURSOR_VISIBILITY: 422 con_set_cursor_visibility_srv(srv, chandle,&call);409 con_set_cursor_visibility_srv(srv, &call); 423 410 break; 424 411 case CONSOLE_GET_EVENT: 425 con_get_event_srv(srv, chandle,&call);412 con_get_event_srv(srv, &call); 426 413 break; 427 414 default: 428 async_answer_0( chandle, ENOTSUP);415 async_answer_0(&call, ENOTSUP); 429 416 } 430 417 } -
uspace/lib/c/generic/io/input.c
r76f566d r984a9ba 43 43 #include <stdlib.h> 44 44 45 static void input_cb_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg);45 static void input_cb_conn(ipc_call_t *icall, void *arg); 46 46 47 47 errno_t input_open(async_sess_t *sess, input_ev_ops_t *ev_ops, … … 92 92 } 93 93 94 static void input_ev_active(input_t *input, cap_call_handle_t chandle, 95 ipc_call_t *call) 94 static void input_ev_active(input_t *input, ipc_call_t *call) 96 95 { 97 96 errno_t rc = input->ev_ops->active(input); 98 async_answer_0(chandle, rc); 99 } 100 101 static void input_ev_deactive(input_t *input, cap_call_handle_t chandle, 102 ipc_call_t *call) 97 async_answer_0(call, rc); 98 } 99 100 static void input_ev_deactive(input_t *input, ipc_call_t *call) 103 101 { 104 102 errno_t rc = input->ev_ops->deactive(input); 105 async_answer_0(chandle, rc); 106 } 107 108 static void input_ev_key(input_t *input, cap_call_handle_t chandle, 109 ipc_call_t *call) 103 async_answer_0(call, rc); 104 } 105 106 static void input_ev_key(input_t *input, ipc_call_t *call) 110 107 { 111 108 kbd_event_type_t type; … … 121 118 122 119 rc = input->ev_ops->key(input, type, key, mods, c); 123 async_answer_0(chandle, rc); 124 } 125 126 static void input_ev_move(input_t *input, cap_call_handle_t chandle, 127 ipc_call_t *call) 120 async_answer_0(call, rc); 121 } 122 123 static void input_ev_move(input_t *input, ipc_call_t *call) 128 124 { 129 125 int dx; … … 135 131 136 132 rc = input->ev_ops->move(input, dx, dy); 137 async_answer_0(chandle, rc); 138 } 139 140 static void input_ev_abs_move(input_t *input, cap_call_handle_t chandle, 141 ipc_call_t *call) 133 async_answer_0(call, rc); 134 } 135 136 static void input_ev_abs_move(input_t *input, ipc_call_t *call) 142 137 { 143 138 unsigned x; … … 153 148 154 149 rc = input->ev_ops->abs_move(input, x, y, max_x, max_y); 155 async_answer_0(chandle, rc); 156 } 157 158 static void input_ev_button(input_t *input, cap_call_handle_t chandle, 159 ipc_call_t *call) 150 async_answer_0(call, rc); 151 } 152 153 static void input_ev_button(input_t *input, ipc_call_t *call) 160 154 { 161 155 int bnum; … … 167 161 168 162 rc = input->ev_ops->button(input, bnum, press); 169 async_answer_0(c handle, rc);170 } 171 172 static void input_cb_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg)173 { 174 input_t *input = (input_t *) arg;163 async_answer_0(call, rc); 164 } 165 166 static void input_cb_conn(ipc_call_t *icall, void *arg) 167 { 168 input_t *input = (input_t *) arg; 175 169 176 170 while (true) { 177 171 ipc_call_t call; 178 cap_call_handle_t chandle =async_get_call(&call);172 async_get_call(&call); 179 173 180 174 if (!IPC_GET_IMETHOD(call)) { … … 185 179 switch (IPC_GET_IMETHOD(call)) { 186 180 case INPUT_EVENT_ACTIVE: 187 input_ev_active(input, chandle,&call);181 input_ev_active(input, &call); 188 182 break; 189 183 case INPUT_EVENT_DEACTIVE: 190 input_ev_deactive(input, chandle,&call);184 input_ev_deactive(input, &call); 191 185 break; 192 186 case INPUT_EVENT_KEY: 193 input_ev_key(input, chandle,&call);187 input_ev_key(input, &call); 194 188 break; 195 189 case INPUT_EVENT_MOVE: 196 input_ev_move(input, chandle,&call);190 input_ev_move(input, &call); 197 191 break; 198 192 case INPUT_EVENT_ABS_MOVE: 199 input_ev_abs_move(input, chandle,&call);193 input_ev_abs_move(input, &call); 200 194 break; 201 195 case INPUT_EVENT_BUTTON: 202 input_ev_button(input, chandle,&call);196 input_ev_button(input, &call); 203 197 break; 204 198 default: 205 async_answer_0( chandle, ENOTSUP);199 async_answer_0(&call, ENOTSUP); 206 200 } 207 201 } -
uspace/lib/c/generic/iplink.c
r76f566d r984a9ba 45 45 #include <stdlib.h> 46 46 47 static void iplink_cb_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg);47 static void iplink_cb_conn(ipc_call_t *icall, void *arg); 48 48 49 49 errno_t iplink_open(async_sess_t *sess, iplink_ev_ops_t *ev_ops, void *arg, … … 197 197 } 198 198 199 200 199 errno_t iplink_addr_add(iplink_t *iplink, inet_addr_t *addr) 201 200 { … … 245 244 } 246 245 247 static void iplink_ev_recv(iplink_t *iplink, cap_call_handle_t icall_handle, 248 ipc_call_t *icall) 246 static void iplink_ev_recv(iplink_t *iplink, ipc_call_t *icall) 249 247 { 250 248 iplink_recv_sdu_t sdu; … … 255 253 &sdu.size); 256 254 if (rc != EOK) { 257 async_answer_0(icall _handle, rc);255 async_answer_0(icall, rc); 258 256 return; 259 257 } … … 261 259 rc = iplink->ev_ops->recv(iplink, &sdu, ver); 262 260 free(sdu.data); 263 async_answer_0(icall_handle, rc); 264 } 265 266 static void iplink_ev_change_addr(iplink_t *iplink, cap_call_handle_t icall_handle, 267 ipc_call_t *icall) 261 async_answer_0(icall, rc); 262 } 263 264 static void iplink_ev_change_addr(iplink_t *iplink, ipc_call_t *icall) 268 265 { 269 266 addr48_t *addr; 270 267 size_t size; 271 268 272 errno_t rc = async_data_write_accept((void **) &addr, false,269 errno_t rc = async_data_write_accept((void **) &addr, false, 273 270 sizeof(addr48_t), sizeof(addr48_t), 0, &size); 274 271 if (rc != EOK) { 275 async_answer_0(icall _handle, rc);272 async_answer_0(icall, rc); 276 273 return; 277 274 } … … 279 276 rc = iplink->ev_ops->change_addr(iplink, *addr); 280 277 free(addr); 281 async_answer_0(icall _handle, EOK);282 } 283 284 static void iplink_cb_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg)278 async_answer_0(icall, EOK); 279 } 280 281 static void iplink_cb_conn(ipc_call_t *icall, void *arg) 285 282 { 286 283 iplink_t *iplink = (iplink_t *) arg; … … 288 285 while (true) { 289 286 ipc_call_t call; 290 cap_call_handle_t chandle =async_get_call(&call);287 async_get_call(&call); 291 288 292 289 if (!IPC_GET_IMETHOD(call)) { … … 297 294 switch (IPC_GET_IMETHOD(call)) { 298 295 case IPLINK_EV_RECV: 299 iplink_ev_recv(iplink, chandle,&call);296 iplink_ev_recv(iplink, &call); 300 297 break; 301 298 case IPLINK_EV_CHANGE_ADDR: 302 iplink_ev_change_addr(iplink, chandle,&call);299 iplink_ev_change_addr(iplink, &call); 303 300 break; 304 301 default: 305 async_answer_0( chandle, ENOTSUP);302 async_answer_0(&call, ENOTSUP); 306 303 } 307 304 } -
uspace/lib/c/generic/iplink_srv.c
r76f566d r984a9ba 42 42 #include <inet/iplink_srv.h> 43 43 44 static void iplink_get_mtu_srv(iplink_srv_t *srv, cap_call_handle_t chandle, 45 ipc_call_t *call) 44 static void iplink_get_mtu_srv(iplink_srv_t *srv, ipc_call_t *call) 46 45 { 47 46 size_t mtu; 48 47 errno_t rc = srv->ops->get_mtu(srv, &mtu); 49 async_answer_1(chandle, rc, mtu); 50 } 51 52 static void iplink_get_mac48_srv(iplink_srv_t *srv, cap_call_handle_t icall_handle, 53 ipc_call_t *icall) 48 async_answer_1(call, rc, mtu); 49 } 50 51 static void iplink_get_mac48_srv(iplink_srv_t *srv, ipc_call_t *icall) 54 52 { 55 53 addr48_t mac; 56 54 errno_t rc = srv->ops->get_mac48(srv, &mac); 57 55 if (rc != EOK) { 58 async_answer_0(icall _handle, rc);59 return; 60 } 61 62 cap_call_handle_t chandle;63 size_t size; 64 if (!async_data_read_receive(&c handle, &size)) {65 async_answer_0( chandle, EREFUSED);66 async_answer_0(icall _handle, EREFUSED);56 async_answer_0(icall, rc); 57 return; 58 } 59 60 ipc_call_t call; 61 size_t size; 62 if (!async_data_read_receive(&call, &size)) { 63 async_answer_0(&call, EREFUSED); 64 async_answer_0(icall, EREFUSED); 67 65 return; 68 66 } 69 67 70 68 if (size != sizeof(addr48_t)) { 71 async_answer_0( chandle, EINVAL);72 async_answer_0(icall _handle, EINVAL);73 return; 74 } 75 76 rc = async_data_read_finalize( chandle, &mac, size);69 async_answer_0(&call, EINVAL); 70 async_answer_0(icall, EINVAL); 71 return; 72 } 73 74 rc = async_data_read_finalize(&call, &mac, size); 77 75 if (rc != EOK) 78 async_answer_0(chandle, rc); 79 80 async_answer_0(icall_handle, rc); 81 } 82 83 static void iplink_set_mac48_srv(iplink_srv_t *srv, cap_call_handle_t icall_handle, 84 ipc_call_t *icall) 76 async_answer_0(&call, rc); 77 78 async_answer_0(icall, rc); 79 } 80 81 static void iplink_set_mac48_srv(iplink_srv_t *srv, ipc_call_t *icall) 85 82 { 86 83 errno_t rc; 87 84 size_t size; 88 85 addr48_t mac; 89 cap_call_handle_t chandle; 90 91 if (!async_data_write_receive(&c handle, &size)) {92 async_answer_0( chandle, EREFUSED);93 async_answer_0(icall _handle, EREFUSED);86 87 ipc_call_t call; 88 if (!async_data_write_receive(&call, &size)) { 89 async_answer_0(&call, EREFUSED); 90 async_answer_0(icall, EREFUSED); 94 91 } 95 92 96 93 rc = srv->ops->set_mac48(srv, &mac); 97 94 if (rc != EOK) { 98 async_answer_0(icall _handle, rc);99 return; 100 } 101 102 rc = async_data_read_finalize( chandle, &mac, sizeof(addr48_t));95 async_answer_0(icall, rc); 96 return; 97 } 98 99 rc = async_data_read_finalize(&call, &mac, sizeof(addr48_t)); 103 100 if (rc != EOK) 104 async_answer_0(chandle, rc); 105 106 async_answer_0(icall_handle, rc); 107 } 108 109 static void iplink_addr_add_srv(iplink_srv_t *srv, cap_call_handle_t icall_handle, 110 ipc_call_t *icall) 111 { 112 cap_call_handle_t chandle; 113 size_t size; 114 if (!async_data_write_receive(&chandle, &size)) { 115 async_answer_0(chandle, EREFUSED); 116 async_answer_0(icall_handle, EREFUSED); 101 async_answer_0(&call, rc); 102 103 async_answer_0(icall, rc); 104 } 105 106 static void iplink_addr_add_srv(iplink_srv_t *srv, ipc_call_t *icall) 107 { 108 ipc_call_t call; 109 size_t size; 110 if (!async_data_write_receive(&call, &size)) { 111 async_answer_0(&call, EREFUSED); 112 async_answer_0(icall, EREFUSED); 117 113 return; 118 114 } 119 115 120 116 if (size != sizeof(inet_addr_t)) { 121 async_answer_0( chandle, EINVAL);122 async_answer_0(icall _handle, EINVAL);117 async_answer_0(&call, EINVAL); 118 async_answer_0(icall, EINVAL); 123 119 return; 124 120 } 125 121 126 122 inet_addr_t addr; 127 errno_t rc = async_data_write_finalize( chandle, &addr, size);128 if (rc != EOK) { 129 async_answer_0( chandle, rc);130 async_answer_0(icall _handle, rc);123 errno_t rc = async_data_write_finalize(&call, &addr, size); 124 if (rc != EOK) { 125 async_answer_0(&call, rc); 126 async_answer_0(icall, rc); 131 127 } 132 128 133 129 rc = srv->ops->addr_add(srv, &addr); 134 async_answer_0(icall_handle, rc); 135 } 136 137 static void iplink_addr_remove_srv(iplink_srv_t *srv, cap_call_handle_t icall_handle, 138 ipc_call_t *icall) 139 { 140 cap_call_handle_t chandle; 141 size_t size; 142 if (!async_data_write_receive(&chandle, &size)) { 143 async_answer_0(chandle, EREFUSED); 144 async_answer_0(icall_handle, EREFUSED); 130 async_answer_0(icall, rc); 131 } 132 133 static void iplink_addr_remove_srv(iplink_srv_t *srv, ipc_call_t *icall) 134 { 135 ipc_call_t call; 136 size_t size; 137 if (!async_data_write_receive(&call, &size)) { 138 async_answer_0(&call, EREFUSED); 139 async_answer_0(icall, EREFUSED); 145 140 return; 146 141 } 147 142 148 143 if (size != sizeof(inet_addr_t)) { 149 async_answer_0( chandle, EINVAL);150 async_answer_0(icall _handle, EINVAL);144 async_answer_0(&call, EINVAL); 145 async_answer_0(icall, EINVAL); 151 146 return; 152 147 } 153 148 154 149 inet_addr_t addr; 155 errno_t rc = async_data_write_finalize( chandle, &addr, size);156 if (rc != EOK) { 157 async_answer_0( chandle, rc);158 async_answer_0(icall _handle, rc);150 errno_t rc = async_data_write_finalize(&call, &addr, size); 151 if (rc != EOK) { 152 async_answer_0(&call, rc); 153 async_answer_0(icall, rc); 159 154 } 160 155 161 156 rc = srv->ops->addr_remove(srv, &addr); 162 async_answer_0(icall_handle, rc); 163 } 164 165 static void iplink_send_srv(iplink_srv_t *srv, cap_call_handle_t icall_handle, 166 ipc_call_t *icall) 157 async_answer_0(icall, rc); 158 } 159 160 static void iplink_send_srv(iplink_srv_t *srv, ipc_call_t *icall) 167 161 { 168 162 iplink_sdu_t sdu; … … 174 168 &sdu.size); 175 169 if (rc != EOK) { 176 async_answer_0(icall _handle, rc);170 async_answer_0(icall, rc); 177 171 return; 178 172 } … … 180 174 rc = srv->ops->send(srv, &sdu); 181 175 free(sdu.data); 182 async_answer_0(icall_handle, rc); 183 } 184 185 static void iplink_send6_srv(iplink_srv_t *srv, cap_call_handle_t icall_handle, 186 ipc_call_t *icall) 176 async_answer_0(icall, rc); 177 } 178 179 static void iplink_send6_srv(iplink_srv_t *srv, ipc_call_t *icall) 187 180 { 188 181 iplink_sdu6_t sdu; 189 182 190 cap_call_handle_t chandle;191 size_t size; 192 if (!async_data_write_receive(&c handle, &size)) {193 async_answer_0( chandle, EREFUSED);194 async_answer_0(icall _handle, EREFUSED);183 ipc_call_t call; 184 size_t size; 185 if (!async_data_write_receive(&call, &size)) { 186 async_answer_0(&call, EREFUSED); 187 async_answer_0(icall, EREFUSED); 195 188 return; 196 189 } 197 190 198 191 if (size != sizeof(addr48_t)) { 199 async_answer_0( chandle, EINVAL);200 async_answer_0(icall _handle, EINVAL);201 return; 202 } 203 204 errno_t rc = async_data_write_finalize( chandle, &sdu.dest, size);205 if (rc != EOK) { 206 async_answer_0( chandle, rc);207 async_answer_0(icall _handle, rc);192 async_answer_0(&call, EINVAL); 193 async_answer_0(icall, EINVAL); 194 return; 195 } 196 197 errno_t rc = async_data_write_finalize(&call, &sdu.dest, size); 198 if (rc != EOK) { 199 async_answer_0(&call, rc); 200 async_answer_0(icall, rc); 208 201 } 209 202 … … 211 204 &sdu.size); 212 205 if (rc != EOK) { 213 async_answer_0(icall _handle, rc);206 async_answer_0(icall, rc); 214 207 return; 215 208 } … … 217 210 rc = srv->ops->send6(srv, &sdu); 218 211 free(sdu.data); 219 async_answer_0(icall _handle, rc);212 async_answer_0(icall, rc); 220 213 } 221 214 … … 229 222 } 230 223 231 errno_t iplink_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg)224 errno_t iplink_conn(ipc_call_t *icall, void *arg) 232 225 { 233 226 iplink_srv_t *srv = (iplink_srv_t *) arg; … … 237 230 if (srv->connected) { 238 231 fibril_mutex_unlock(&srv->lock); 239 async_answer_0(icall _handle, EBUSY);232 async_answer_0(icall, EBUSY); 240 233 return EBUSY; 241 234 } … … 245 238 246 239 /* Accept the connection */ 247 async_answer_0(icall _handle, EOK);240 async_answer_0(icall, EOK); 248 241 249 242 async_sess_t *sess = async_callback_receive(EXCHANGE_SERIALIZE); … … 259 252 while (true) { 260 253 ipc_call_t call; 261 cap_call_handle_t chandle =async_get_call(&call);254 async_get_call(&call); 262 255 sysarg_t method = IPC_GET_IMETHOD(call); 263 256 … … 267 260 srv->connected = false; 268 261 fibril_mutex_unlock(&srv->lock); 269 async_answer_0( chandle, EOK);262 async_answer_0(&call, EOK); 270 263 break; 271 264 } … … 273 266 switch (method) { 274 267 case IPLINK_GET_MTU: 275 iplink_get_mtu_srv(srv, chandle,&call);268 iplink_get_mtu_srv(srv, &call); 276 269 break; 277 270 case IPLINK_GET_MAC48: 278 iplink_get_mac48_srv(srv, chandle,&call);271 iplink_get_mac48_srv(srv, &call); 279 272 break; 280 273 case IPLINK_SET_MAC48: 281 iplink_set_mac48_srv(srv, chandle,&call);274 iplink_set_mac48_srv(srv, &call); 282 275 break; 283 276 case IPLINK_SEND: 284 iplink_send_srv(srv, chandle,&call);277 iplink_send_srv(srv, &call); 285 278 break; 286 279 case IPLINK_SEND6: 287 iplink_send6_srv(srv, chandle,&call);280 iplink_send6_srv(srv, &call); 288 281 break; 289 282 case IPLINK_ADDR_ADD: 290 iplink_addr_add_srv(srv, chandle,&call);283 iplink_addr_add_srv(srv, &call); 291 284 break; 292 285 case IPLINK_ADDR_REMOVE: 293 iplink_addr_remove_srv(srv, chandle,&call);286 iplink_addr_remove_srv(srv, &call); 294 287 break; 295 288 default: 296 async_answer_0( chandle, EINVAL);289 async_answer_0(&call, EINVAL); 297 290 } 298 291 } -
uspace/lib/c/generic/loc.c
r76f566d r984a9ba 55 55 static async_sess_t *loc_consumer_sess = NULL; 56 56 57 static void loc_cb_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg)57 static void loc_cb_conn(ipc_call_t *icall, void *arg) 58 58 { 59 59 while (true) { 60 60 ipc_call_t call; 61 cap_call_handle_t chandle =async_get_call(&call);61 async_get_call(&call); 62 62 63 63 if (!IPC_GET_IMETHOD(call)) { … … 72 72 fibril_mutex_unlock(&loc_callback_mutex); 73 73 74 async_answer_0( chandle, EOK);74 async_answer_0(&call, EOK); 75 75 76 76 if (cb_fun != NULL) … … 79 79 break; 80 80 default: 81 async_answer_0( chandle, ENOTSUP);81 async_answer_0(&call, ENOTSUP); 82 82 } 83 83 } -
uspace/lib/c/generic/vfs/vfs.c
r76f566d r984a9ba 802 802 errno_t vfs_receive_handle(bool high, int *handle) 803 803 { 804 cap_call_handle_t chandle;805 if (!async_state_change_receive(&c handle, NULL, NULL, NULL)) {806 async_answer_0( chandle, EINVAL);804 ipc_call_t call; 805 if (!async_state_change_receive(&call)) { 806 async_answer_0(&call, EINVAL); 807 807 return EINVAL; 808 808 } … … 810 810 async_exch_t *vfs_exch = vfs_exchange_begin(); 811 811 812 async_state_change_finalize( chandle, vfs_exch);812 async_state_change_finalize(&call, vfs_exch); 813 813 814 814 sysarg_t ret; -
uspace/lib/c/include/async.h
r76f566d r984a9ba 61 61 /** Port connection handler 62 62 * 63 * @param chandle Handle of the incoming call or CAP_NIL if connection 64 * initiated from inside using async_create_callback_port() 65 * @param call Incoming call or 0 if connection initiated from inside 66 * using async_create_callback_port() 67 * @param arg Local argument. 68 * 69 */ 70 typedef void (*async_port_handler_t)(cap_call_handle_t, ipc_call_t *, void *); 63 * @param call Incoming call or NULL if connection initiated from inside 64 * using async_create_callback_port() 65 * @param arg Local argument. 66 * 67 */ 68 typedef void (*async_port_handler_t)(ipc_call_t *, void *); 71 69 72 70 /** Notification handler */ … … 115 113 async_get_call_timeout(data, 0) 116 114 117 extern cap_call_handle_tasync_get_call_timeout(ipc_call_t *, suseconds_t);115 extern bool async_get_call_timeout(ipc_call_t *, suseconds_t); 118 116 119 117 /* … … 194 192 */ 195 193 196 extern errno_t async_answer_0( cap_call_handle_t, errno_t);197 extern errno_t async_answer_1( cap_call_handle_t, errno_t, sysarg_t);198 extern errno_t async_answer_2( cap_call_handle_t, errno_t, sysarg_t, sysarg_t);199 extern errno_t async_answer_3( cap_call_handle_t, errno_t, sysarg_t, sysarg_t,194 extern errno_t async_answer_0(ipc_call_t *, errno_t); 195 extern errno_t async_answer_1(ipc_call_t *, errno_t, sysarg_t); 196 extern errno_t async_answer_2(ipc_call_t *, errno_t, sysarg_t, sysarg_t); 197 extern errno_t async_answer_3(ipc_call_t *, errno_t, sysarg_t, sysarg_t, 200 198 sysarg_t); 201 extern errno_t async_answer_4( cap_call_handle_t, errno_t, sysarg_t, sysarg_t,199 extern errno_t async_answer_4(ipc_call_t *, errno_t, sysarg_t, sysarg_t, 202 200 sysarg_t, sysarg_t); 203 extern errno_t async_answer_5( cap_call_handle_t, errno_t, sysarg_t, sysarg_t,201 extern errno_t async_answer_5(ipc_call_t *, errno_t, sysarg_t, sysarg_t, 204 202 sysarg_t, sysarg_t, sysarg_t); 205 203 … … 208 206 */ 209 207 210 extern errno_t async_forward_fast( cap_call_handle_t, async_exch_t *, sysarg_t,208 extern errno_t async_forward_fast(ipc_call_t *, async_exch_t *, sysarg_t, 211 209 sysarg_t, sysarg_t, unsigned int); 212 extern errno_t async_forward_slow( cap_call_handle_t, async_exch_t *, sysarg_t,210 extern errno_t async_forward_slow(ipc_call_t *, async_exch_t *, sysarg_t, 213 211 sysarg_t, sysarg_t, sysarg_t, sysarg_t, sysarg_t, unsigned int); 214 212 … … 380 378 extern errno_t async_share_in_start(async_exch_t *, size_t, sysarg_t, 381 379 unsigned int *, void **); 382 extern bool async_share_in_receive( cap_call_handle_t *, size_t *);383 extern errno_t async_share_in_finalize( cap_call_handle_t, void *, unsigned int);380 extern bool async_share_in_receive(ipc_call_t *, size_t *); 381 extern errno_t async_share_in_finalize(ipc_call_t *, void *, unsigned int); 384 382 385 383 extern errno_t async_share_out_start(async_exch_t *, void *, unsigned int); 386 extern bool async_share_out_receive(cap_call_handle_t *, size_t *, 387 unsigned int *); 388 extern errno_t async_share_out_finalize(cap_call_handle_t, void **); 384 extern bool async_share_out_receive(ipc_call_t *, size_t *, unsigned int *); 385 extern errno_t async_share_out_finalize(ipc_call_t *, void **); 389 386 390 387 /* … … 420 417 extern aid_t async_data_read(async_exch_t *, void *, size_t, ipc_call_t *); 421 418 extern errno_t async_data_read_start(async_exch_t *, void *, size_t); 422 extern bool async_data_read_receive(cap_call_handle_t *, size_t *); 423 extern bool async_data_read_receive_call(cap_call_handle_t *, ipc_call_t *, 424 size_t *); 425 extern errno_t async_data_read_finalize(cap_call_handle_t, const void *, 426 size_t); 419 extern bool async_data_read_receive(ipc_call_t *, size_t *); 420 extern errno_t async_data_read_finalize(ipc_call_t *, const void *, size_t); 427 421 428 422 extern errno_t async_data_read_forward_fast(async_exch_t *, sysarg_t, sysarg_t, … … 461 455 462 456 extern errno_t async_data_write_start(async_exch_t *, const void *, size_t); 463 extern bool async_data_write_receive(cap_call_handle_t *, size_t *); 464 extern bool async_data_write_receive_call(cap_call_handle_t *, ipc_call_t *, 465 size_t *); 466 extern errno_t async_data_write_finalize(cap_call_handle_t, void *, size_t); 457 extern bool async_data_write_receive(ipc_call_t *, size_t *); 458 extern errno_t async_data_write_finalize(ipc_call_t *, void *, size_t); 467 459 468 460 extern errno_t async_data_write_accept(void **, const bool, const size_t, … … 478 470 extern errno_t async_state_change_start(async_exch_t *, sysarg_t, sysarg_t, 479 471 sysarg_t, async_exch_t *); 480 extern bool async_state_change_receive(cap_call_handle_t *, sysarg_t *, 481 sysarg_t *, sysarg_t *); 482 extern errno_t async_state_change_finalize(cap_call_handle_t, async_exch_t *); 472 extern bool async_state_change_receive(ipc_call_t *); 473 extern errno_t async_state_change_finalize(ipc_call_t *, async_exch_t *); 483 474 484 475 extern void *async_remote_state_acquire(async_sess_t *); -
uspace/lib/c/include/bd_srv.h
r76f566d r984a9ba 70 70 extern void bd_srvs_init(bd_srvs_t *); 71 71 72 extern errno_t bd_conn( cap_call_handle_t,ipc_call_t *, bd_srvs_t *);72 extern errno_t bd_conn(ipc_call_t *, bd_srvs_t *); 73 73 74 74 #endif -
uspace/lib/c/include/inet/iplink_srv.h
r76f566d r984a9ba 66 66 extern void iplink_srv_init(iplink_srv_t *); 67 67 68 extern errno_t iplink_conn( cap_call_handle_t,ipc_call_t *, void *);68 extern errno_t iplink_conn(ipc_call_t *, void *); 69 69 extern errno_t iplink_ev_recv(iplink_srv_t *, iplink_recv_sdu_t *, ip_ver_t); 70 70 extern errno_t iplink_ev_change_addr(iplink_srv_t *, addr48_t *); -
uspace/lib/c/include/io/chardev_srv.h
r76f566d r984a9ba 61 61 errno_t (*read)(chardev_srv_t *, void *, size_t, size_t *); 62 62 errno_t (*write)(chardev_srv_t *, const void *, size_t, size_t *); 63 void (*def_handler)(chardev_srv_t *, cap_call_handle_t,ipc_call_t *);63 void (*def_handler)(chardev_srv_t *, ipc_call_t *); 64 64 }; 65 65 66 66 extern void chardev_srvs_init(chardev_srvs_t *); 67 67 68 extern errno_t chardev_conn( cap_call_handle_t,ipc_call_t *, chardev_srvs_t *);68 extern errno_t chardev_conn(ipc_call_t *, chardev_srvs_t *); 69 69 70 70 #endif -
uspace/lib/c/include/io/con_srv.h
r76f566d r984a9ba 87 87 extern void con_srvs_init(con_srvs_t *); 88 88 89 extern errno_t con_conn( cap_call_handle_t,ipc_call_t *, con_srvs_t *);89 extern errno_t con_conn(ipc_call_t *, con_srvs_t *); 90 90 91 91 #endif
Note:
See TracChangeset
for help on using the changeset viewer.