Rev 2530 | Rev 2568 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2530 | Rev 2531 | ||
---|---|---|---|
Line 513... | Line 513... | ||
513 | * |
513 | * |
514 | * @return Zero on success or a negative error code. |
514 | * @return Zero on success or a negative error code. |
515 | */ |
515 | */ |
516 | int ipc_connect_to_me(int phoneid, int arg1, int arg2, ipcarg_t *phonehash) |
516 | int ipc_connect_to_me(int phoneid, int arg1, int arg2, ipcarg_t *phonehash) |
517 | { |
517 | { |
518 | return ipc_call_sync_3(phoneid, IPC_M_CONNECT_TO_ME, arg1, arg2, 0, 0, 0, |
518 | return ipc_call_sync_3(phoneid, IPC_M_CONNECT_TO_ME, arg1, arg2, 0, 0, |
519 | phonehash); |
519 | 0, phonehash); |
520 | } |
520 | } |
521 | 521 | ||
522 | /** Ask through phone for a new connection to some service. |
522 | /** Ask through phone for a new connection to some service. |
523 | * |
523 | * |
524 | * @param phoneid Phone handle used for contacting the other side. |
524 | * @param phoneid Phone handle used for contacting the other side. |
Line 530... | Line 530... | ||
530 | int ipc_connect_me_to(int phoneid, int arg1, int arg2) |
530 | int ipc_connect_me_to(int phoneid, int arg1, int arg2) |
531 | { |
531 | { |
532 | ipcarg_t newphid; |
532 | ipcarg_t newphid; |
533 | int res; |
533 | int res; |
534 | 534 | ||
535 | res = ipc_call_sync_3(phoneid, IPC_M_CONNECT_ME_TO, arg1, arg2, 0, 0, 0, |
535 | res = ipc_call_sync_3(phoneid, IPC_M_CONNECT_ME_TO, arg1, arg2, 0, 0, 0, |
536 | &newphid); |
536 | &newphid); |
537 | if (res) |
537 | if (res) |
538 | return res; |
538 | return res; |
539 | return newphid; |
539 | return newphid; |
540 | } |
540 | } |
Line 593... | Line 593... | ||
593 | int ipc_forward_fast(ipc_callid_t callid, int phoneid, int method, ipcarg_t arg1) |
593 | int ipc_forward_fast(ipc_callid_t callid, int phoneid, int method, ipcarg_t arg1) |
594 | { |
594 | { |
595 | return __SYSCALL4(SYS_IPC_FORWARD_FAST, callid, phoneid, method, arg1); |
595 | return __SYSCALL4(SYS_IPC_FORWARD_FAST, callid, phoneid, method, arg1); |
596 | } |
596 | } |
597 | 597 | ||
598 | /** Wrapper for accepting the IPC_M_DATA_SEND calls. |
598 | /** Wrapper for making IPC_M_DATA_SEND calls. |
599 | * |
599 | * |
- | 600 | * @param phoneid Phone that will be used to contact the receiving side. |
|
- | 601 | * @param src Address of the beginning of the source buffer. |
|
- | 602 | * @param size Size of the source buffer. |
|
- | 603 | * |
|
- | 604 | * @return Zero on success or a negative error code from errno.h. |
|
- | 605 | */ |
|
- | 606 | int ipc_data_send(int phoneid, void *src, size_t size) |
|
- | 607 | { |
|
- | 608 | return ipc_call_sync_3(phoneid, IPC_M_DATA_SEND, 0, (ipcarg_t) src, |
|
- | 609 | (ipcarg_t) size, NULL, NULL, NULL); |
|
- | 610 | } |
|
- | 611 | ||
- | 612 | /** Wrapper for receiving the IPC_M_DATA_SEND calls. |
|
- | 613 | * |
|
600 | * This wrapper only makes it more comfortable to accept IPC_M_DATA_SEND calls |
614 | * This wrapper only makes it more comfortable to receive IPC_M_DATA_SEND calls |
601 | * so that the user doesn't have to remember the meaning of each IPC argument. |
615 | * so that the user doesn't have to remember the meaning of each IPC argument. |
602 | * |
616 | * |
603 | * So far, this wrapper is to be used from within a connection fibril. |
617 | * So far, this wrapper is to be used from within a connection fibril. |
604 | * |
618 | * |
605 | * @param callid Storage where the hash of the IPC_M_DATA_SEND call will |
619 | * @param callid Storage where the hash of the IPC_M_DATA_SEND call will |
Line 610... | Line 624... | ||
610 | * @param size Storage where the suggested size will be stored. May be |
624 | * @param size Storage where the suggested size will be stored. May be |
611 | * NULL |
625 | * NULL |
612 | * |
626 | * |
613 | * @return Non-zero on success, zero on failure. |
627 | * @return Non-zero on success, zero on failure. |
614 | */ |
628 | */ |
615 | int ipc_data_send_accept(ipc_callid_t *callid, ipc_call_t *call, void **dst, |
629 | int ipc_data_receive(ipc_callid_t *callid, ipc_call_t *call, void **dst, |
616 | size_t *size) |
630 | size_t *size) |
617 | { |
631 | { |
618 | assert(callid); |
632 | assert(callid); |
619 | assert(call); |
633 | assert(call); |
620 | 634 | ||
Line 638... | Line 652... | ||
638 | * @param dst Final destination address for the IPC_M_DATA_SEND call. |
652 | * @param dst Final destination address for the IPC_M_DATA_SEND call. |
639 | * @param size Final size for the IPC_M_DATA_SEND call. |
653 | * @param size Final size for the IPC_M_DATA_SEND call. |
640 | * |
654 | * |
641 | * @return Zero on success or a value from @ref errno.h on failure. |
655 | * @return Zero on success or a value from @ref errno.h on failure. |
642 | */ |
656 | */ |
643 | ipcarg_t ipc_data_send_answer(ipc_callid_t callid, ipc_call_t *call, void *dst, size_t size) |
657 | ipcarg_t ipc_data_deliver(ipc_callid_t callid, ipc_call_t *call, void *dst, |
- | 658 | size_t size) |
|
644 | { |
659 | { |
645 | IPC_SET_RETVAL(*call, EOK); |
660 | IPC_SET_RETVAL(*call, EOK); |
646 | IPC_SET_ARG1(*call, (ipcarg_t) dst); |
661 | IPC_SET_ARG1(*call, (ipcarg_t) dst); |
647 | IPC_SET_ARG3(*call, (ipcarg_t) size); |
662 | IPC_SET_ARG3(*call, (ipcarg_t) size); |
648 | return ipc_answer(callid, call); |
663 | return ipc_answer(callid, call); |