#include <l4/sys/types.h>
Go to the source code of this file.
Data Structures | |
| struct | l4_msg_t |
| Structure to describe long IPC. More... | |
| struct | l4_ipc_deceit_ids_t |
| Structure used to describe destination and true source if a chief wants to deceit. More... | |
Defines | |
| #define | L4_IPC_NIL_DESCRIPTOR |
| Nil message descriptor. | |
| #define | L4_IPC_SHORT_MSG |
| Short IPC (register-only) message descriptor. | |
| #define | L4_IPC_SHORT_FPAGE |
| Short flexpage IPC (register-only) message descriptor, message words are interpreted as send flexpage descriptor. | |
| #define | L4_IPC_STRING_SHIFT 8 |
| IPC string shift. | |
| #define | L4_IPC_DWORD_SHIFT 13 |
| IPC dword shift. | |
| #define | L4_IPC_FLAG_NEXT_PERIOD 0x10000 |
| next period flag | |
| #define | L4_IPC_DOPE(dwords, strings) |
| Build IPC message dope. | |
| #define | L4_IPC_MAPMSG(address, size) |
| Build short flexpage receive message descriptor. | |
| #define | L4_IPC_IOMAPMSG(port, iosize) |
| Build short I/O flexpage receive message descriptor. | |
| #define | L4_IPC_CAPMAPMSG(taskno, order) |
| Build short capability flexpage receive message descriptor. | |
| #define | L4_IPC_ERROR_MASK 0xF0 |
| IPC error mask. | |
| #define | L4_IPC_DECEIT_MASK 0x01 |
| Deceit mask. | |
| #define | L4_IPC_FPAGE_MASK 0x02 |
| Fpage mask. | |
| #define | L4_IPC_REDIRECT_MASK 0x04 |
| Redirect mask. | |
| #define | L4_IPC_SRC_MASK 0x08 |
| Source mask. | |
| #define | L4_IPC_SND_ERR_MASK 0x10 |
| Send error mask. | |
| #define | L4_IPC_IS_ERROR(x) |
| Test if IPC error occurred. | |
| #define | L4_IPC_MSG_DECEITED(x) |
| Test if received message was deceited by a chief task. | |
| #define | L4_IPC_MSG_REDIRECTED(x) |
| Test if the message was redirected to a chief task. | |
| #define | L4_IPC_SRC_INSIDE(x) |
| Test if the message comes from outside or inside the clan. | |
| #define | L4_IPC_SND_ERROR(x) |
| Test if send operation failed. | |
| #define | L4_IPC_ERROR(x) |
| Get IPC error from IPC result message dope. | |
| #define | L4_IPC_ENOT_EXISTENT 0x10 |
| Non-existing destination or source. | |
| #define | L4_IPC_RETIMEOUT 0x20 |
| Timeout during receive operation. | |
| #define | L4_IPC_SETIMEOUT 0x30 |
| Timeout during send operation. | |
| #define | L4_IPC_RECANCELED 0x40 |
| Receive operation canceled. | |
| #define | L4_IPC_SECANCELED 0x50 |
| Send operation canceled. | |
| #define | L4_IPC_REMAPFAILED 0x60 |
| Map flexpage failed in receive operation. | |
| #define | L4_IPC_SEMAPFAILED 0x70 |
| Map flexpage failed in send operation. | |
| #define | L4_IPC_RESNDPFTO 0x80 |
| Send-pagefault timeout in receive operation. | |
| #define | L4_IPC_SESNDPFTO 0x90 |
| Send-pagefault timeout in send operation. | |
| #define | L4_IPC_RERCVPFTO 0xA0 |
| Receive-pagefault timeout in receive operation. | |
| #define | L4_IPC_SERCVPFTO 0xB0 |
| Receive-pagefault timeout in send operation. | |
| #define | L4_IPC_REABORTED 0xC0 |
| Receive operation aborted. | |
| #define | L4_IPC_SEABORTED 0xD0 |
| Send operation aborted. | |
| #define | L4_IPC_REMSGCUT 0xE0 |
| Cut receive message (due to (a) message buffer is too small, (b) not enough strings are accepted, (c) at least one string buffer is too small). | |
| #define | L4_IPC_SEMSGCUT 0xF0 |
| Cut send message (due to (a) message buffer is too small, (b) not enough strings are accepted, (c) at least one string buffer is too small). | |
| #define | L4_IPC_SHORT_MSG_NODONATE |
| Short IPC (register-only) message descriptor w/o donation. | |
| #define | L4_IPC_DECEIT 1 |
| IPC: deceit bit. | |
| #define | L4_IPC_OPEN_IPC 1 |
| IPC: open IPC. | |
Functions | |
| int | l4_ipc_call_tag (l4_threadid_t dest, const void *snd_msg, l4_umword_t snd_dword0, l4_umword_t snd_dword1, l4_msgtag_t tag, void *rcv_msg, l4_umword_t *rcv_dword0, l4_umword_t *rcv_dword1, l4_timeout_t timeout, l4_msgdope_t *result, l4_msgtag_t *rtag) |
| IPC Call, usual blocking RPC, tagged version. | |
| int | l4_ipc_call (l4_threadid_t dest, const void *snd_msg, l4_umword_t snd_dword0, l4_umword_t snd_dword1, void *rcv_msg, l4_umword_t *rcv_dword0, l4_umword_t *rcv_dword1, l4_timeout_t timeout, l4_msgdope_t *result) |
| IPC Call, usual blocking RPC. | |
| int | l4_ipc_reply_and_wait_tag (l4_threadid_t dest, const void *snd_msg, l4_umword_t snd_dword0, l4_umword_t snd_dword1, l4_msgtag_t tag, l4_threadid_t *src, void *rcv_msg, l4_umword_t *rcv_dword0, l4_umword_t *rcv_dword1, l4_timeout_t timeout, l4_msgdope_t *result, l4_msgtag_t *rtag) |
| IPC reply and wait, send a reply to a client and wait for next message, tagged version. | |
| int | l4_ipc_reply_and_wait (l4_threadid_t dest, const void *snd_msg, l4_umword_t snd_dword0, l4_umword_t snd_dword1, l4_threadid_t *src, void *rcv_msg, l4_umword_t *rcv_dword0, l4_umword_t *rcv_dword1, l4_timeout_t timeout, l4_msgdope_t *result) |
| IPC reply and wait, send a reply to a client and wait for next message. | |
| int | l4_ipc_wait_next_period (l4_threadid_t *src, void *rcv_msg, l4_umword_t *rcv_dword0, l4_umword_t *rcv_dword1, l4_timeout_t timeout, l4_msgdope_t *result) |
| Wait for next period. | |
| int | l4_ipc_send_tag (l4_threadid_t dest, const void *snd_msg, l4_umword_t snd_dword0, l4_umword_t snd_dword1, l4_msgtag_t tag, l4_timeout_t timeout, l4_msgdope_t *result) |
| IPC send, send a message to a thread, tagged version. | |
| int | l4_ipc_send (l4_threadid_t dest, const void *snd_msg, l4_umword_t snd_dword0, l4_umword_t snd_dword1, l4_timeout_t timeout, l4_msgdope_t *result) |
| IPC send, send a message to a thread. | |
| int | l4_ipc_wait_tag (l4_threadid_t *src, void *rcv_msg, l4_umword_t *rcv_dword0, l4_umword_t *rcv_dword1, l4_timeout_t timeout, l4_msgdope_t *result, l4_msgtag_t *tag) |
| IPC wait, wait for message from any source, tagged version. | |
| int | l4_ipc_wait (l4_threadid_t *src, void *rcv_msg, l4_umword_t *rcv_dword0, l4_umword_t *rcv_dword1, l4_timeout_t timeout, l4_msgdope_t *result) |
| IPC wait, wait for message from any source. | |
| int | l4_ipc_receive_tag (l4_threadid_t src, void *rcv_msg, l4_umword_t *rcv_dword0, l4_umword_t *rcv_dword1, l4_timeout_t timeout, l4_msgdope_t *result, l4_msgtag_t *tag) |
| IPC receive, wait for a message from a specified thread, tagged version. | |
| int | l4_ipc_receive (l4_threadid_t src, void *rcv_msg, l4_umword_t *rcv_dword0, l4_umword_t *rcv_dword1, l4_timeout_t timeout, l4_msgdope_t *result) |
| IPC receive, wait for a message from a specified thread. | |
| int | l4_ipc_sleep (l4_timeout_t timeout) |
| Sleep for an amount of time. | |
| int | l4_ipc_fpage_received (l4_msgdope_t msgdope) |
| Check if received message contains flexpage. | |
| int | l4_ipc_is_fpage_granted (l4_fpage_t fp) |
| Check if flexpage was granted. | |
| int | l4_ipc_is_fpage_writable (l4_fpage_t fp) |
| Check if flexpage is writable. | |
| long | l4_is_rcv_map_descr (const void *msg) |
| Return if message is fpage message. | |
| long | l4_is_long_rcv_descr (const void *msg) |
| Return if receive message descriptor is a long IPC message descriptor. | |
| long | l4_is_long_snd_descr (const void *msg) |
| Return if source message descriptor is a long IPC message descriptor. | |
| const l4_msg_t * | l4_get_snd_msg_from_descr (const void *msg) |
| Return message descriptor address from send message descriptor. | |
| l4_msg_t * | l4_get_rcv_msg_from_descr (void *msg) |
| Return message descriptor address from receive message descriptor. | |
Definition in file L4API-l4v2/ipc.h.