L4Re Operating System Framework
Interface and Usage Documentation
|
IPC Message related functionality. More...
Data Structures | |
struct | Clnt_val_ops |
Defines client-side handling of ‘MTYPE’ as RPC argument. More... | |
struct | Cls_buffer |
Marker type for receive buffer values. More... | |
struct | Cls_data |
Marker type for data values. More... | |
struct | Cls_item |
Marker type for item values. More... | |
struct | Dir_in |
Marker type for input values. More... | |
struct | Dir_out |
Marker type for output values. More... | |
struct | Do_in_data |
Marker for Input data. More... | |
struct | Do_in_items |
Marker for Input items. More... | |
struct | Do_out_data |
Marker for Output data. More... | |
struct | Do_out_items |
Marker for Output items. More... | |
struct | Do_rcv_buffers |
Marker for receive buffers. More... | |
struct | Elem< Array< A, LEN > & > |
Array as output argument. More... | |
struct | Elem< Array< A, LEN > > |
Array as input arguments. More... | |
struct | Elem< Array_ref< A, LEN > & > |
Array_ref as output argument. More... | |
struct | Is_valid_rpc_type |
Type trait defining a valid RPC parameter type. More... | |
struct | Svr_arg_pack |
Server-side RPC arguments data structure used to provide arguments to the server-side implementation of an RPC function. More... | |
struct | Svr_val_ops |
Defines server-side handling for MTYPE server arguments. More... | |
Enumerations | |
enum | { Word_bytes = sizeof(l4_umword_t) , Item_words = 2 , Item_bytes = Word_bytes * Item_words , Mr_words = L4_UTCB_GENERIC_DATA_SIZE , Mr_bytes = Word_bytes * Mr_words , Br_bytes = Word_bytes * L4_UTCB_GENERIC_BUFFERS_SIZE } |
Functions | |
constexpr unsigned long | align_to (unsigned long bytes, unsigned long align) noexcept |
Pad bytes to the given alignment align (in bytes) | |
template<typename T > | |
constexpr unsigned long | align_to (unsigned long bytes) noexcept |
Pad bytes to the alignment of the type T. | |
template<typename T > | |
constexpr bool | check_size (unsigned offset, unsigned limit) noexcept |
Check if there is enough space for T from offset to limit. | |
template<typename T , typename CTYPE > | |
bool | check_size (unsigned offset, unsigned limit, CTYPE cnt) noexcept |
Check if there is enough space for an array of T from offset to limit. | |
template<typename T > | |
int | msg_add (char *msg, unsigned offs, unsigned limit, T v) noexcept |
Add some data to a message at offs. | |
template<typename T > | |
int | msg_get (char *msg, unsigned offs, unsigned limit, T &v) noexcept |
Get some data from a message at offs. | |
IPC Message related functionality.
anonymous enum |
Definition at line 96 of file ipc_basics.
|
constexprnoexcept |
Pad bytes to the alignment of the type T.
T | The data type used for the alignment |
bytes | The value to add the padding to |
Definition at line 51 of file ipc_basics.
References align_to().
|
constexprnoexcept |
Pad bytes to the given alignment align (in bytes)
bytes | The input value in bytes |
align | The alignment value in bytes |
Definition at line 41 of file ipc_basics.
Referenced by align_to().
|
constexprnoexcept |
Check if there is enough space for T from offset to limit.
T | The data type that shall be fitted at offset |
offset | The current offset in bytes (must already be padded if desired). |
limit | The limit in bytes that must not be exceeded after adding the size of T. |
Definition at line 64 of file ipc_basics.
|
inlinenoexcept |
Check if there is enough space for an array of T from offset to limit.
T | The data type that shall be fitted at offset |
CTYPE | Type of the cnt parameter |
offset | The current offset in bytes (must already be padded if desired). |
limit | The limit in bytes that must not be exceeded after adding cnt times the size of T. |
cnt | The number of elements of type T that shall be put at offset. |
Definition at line 82 of file ipc_basics.
References L4_UNLIKELY.
|
inlinenoexcept |
Add some data to a message at offs.
T | The type of the data to add |
msg | pointer to the start of the message |
offs | The current offset within the message, this shall be padded to the alignment of T if v is added. |
limit | The size limit in bytes that offset must not exceed. |
v | The value to add to the message |
Definition at line 125 of file ipc_basics.
References L4_EMSGTOOLONG, and L4_UNLIKELY.
|
inlinenoexcept |
Get some data from a message at offs.
T | The type of the data to read |
msg | Pointer to the start of the message |
offs | The current offset within the message, this shall be padded to the alignment of T if a v can be read. |
limit | The size limit in bytes that offset must not exceed. |
v | A reference to receive the value from the message |
Definition at line 146 of file ipc_basics.
References L4_EMSGTOOSHORT, and L4_UNLIKELY.