L4Re Operating System Framework
Interface and Usage Documentation
|
Generic RPC base for L4 flex-pages. More...
#include <ipc_types>
Public Types | |
enum | Type |
Type of mapping object, see L4_fpage_type. | |
enum | Map_type |
Kind of mapping. | |
enum | Cacheopt |
Caching options, see l4_fpage_cacheability_opt_t. | |
Public Member Functions | |
bool | is_valid () const noexcept |
Check if the capability is valid. | |
bool | cap_received () const noexcept |
Check if at least one capability has been mapped. | |
bool | id_received () const noexcept |
Check if a label was received instead of a mapping. | |
bool | local_id_received () const noexcept |
Check if a local capability id has been received. | |
bool | is_compound () const noexcept |
Check if the received item has the compound bit set. | |
l4_umword_t | data () const noexcept |
Return the raw flex page descriptor. | |
l4_umword_t | base_x () const noexcept |
Return the raw base descriptor. | |
|
inlinenoexcept |
Check if at least one capability has been mapped.
The capabilities themselves can then be retrieved from the cap slots that have been provided in the receive operation.
true
and the receive window covers more than one capability slot, then it is not possible to determine which slots actually got capabilities mapped from the sender.
|
inlinenoexcept |
Check if a label was received instead of a mapping.
For IPC gates, if the L4_RCV_ITEM_LOCAL_ID has been set, then only the label of the IPC gate will be provided if the gate is local to the receiver, i.e. the target thread of the IPC gate is in the same task as the receiving thread.
The label can be retrieved with Gen_fpage::data().
|
inlinenoexcept |
|
inlinenoexcept |
Check if a local capability id has been received.
If the L4_RCV_ITEM_LOCAL_ID flag has been set by the receiver, and sender and receiver are in the same task, then only the capability index is transferred.
The capability can be retrieved with Gen_fpage::data().