|
L4Re - L4 Runtime Environment
|
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 | |
| unsigned long | align_to (unsigned long bytes, unsigned long align) |
| Pad bytes to the given alignment align (in bytes) More... | |
| template<typename T > | |
| unsigned long | align_to (unsigned long bytes) |
| Pad bytes to the alignment of the type T. More... | |
| template<typename T > | |
| bool | check_size (unsigned offset, unsigned limit) |
| Check if there is enough space for T from offset to limit. More... | |
| template<typename T , typename CTYPE > | |
| bool | check_size (unsigned offset, unsigned limit, CTYPE cnt) |
| Check if there is enough space for an array of T from offset to limit. More... | |
| template<typename T > | |
| int | msg_add (char *msg, unsigned offs, unsigned limit, T v) |
| Add some data to a message at offs. More... | |
| template<typename T > | |
| int | msg_get (char *msg, unsigned offs, unsigned limit, T &v) |
| Get some data from a message at offs. More... | |
IPC Message related functionality.
| anonymous enum |
Definition at line 96 of file ipc_basics.
|
inline |
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().
Here is the caller graph for this function:
|
inline |
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().
Here is the call graph for this function:
|
inline |
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.
|
inline |
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.
|
inline |
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.
|
inline |
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.