L4Re Operating System Framework
Interface and Usage Documentation
|
C interface for capabilities. More...
Typedefs | |
typedef unsigned long | l4_cap_idx_t |
Capability selector type. | |
Enumerations | |
enum | l4_cap_consts_t { L4_CAP_SHIFT , L4_CAP_SIZE = 1UL << L4_CAP_SHIFT , L4_CAP_OFFSET , L4_CAP_MASK , L4_INVALID_CAP , L4_INVALID_CAP_BIT = 1UL << (L4_CAP_SHIFT - 1) } |
Constants related to capability selectors. More... | |
enum | l4_default_caps_t { L4_BASE_TASK_CAP , L4_BASE_FACTORY_CAP , L4_BASE_THREAD_CAP , L4_BASE_PAGER_CAP , L4_BASE_LOG_CAP , L4_BASE_ICU_CAP , L4_BASE_SCHEDULER_CAP , L4_BASE_IOMMU_CAP , L4_BASE_DEBUGGER_CAP , L4_BASE_ARM_SMCCC_CAP , L4_BASE_CAPS_LAST_P1 , L4_BASE_CAPS_LAST = L4_BASE_CAPS_LAST_P1 - 1 } |
Default capabilities setup for the initial tasks. More... | |
Functions | |
unsigned | l4_is_invalid_cap (l4_cap_idx_t c) L4_NOTHROW |
Test if a capability selector is the invalid capability. | |
unsigned | l4_is_valid_cap (l4_cap_idx_t c) L4_NOTHROW |
Test if a capability selector is a valid selector. | |
unsigned | l4_capability_equal (l4_cap_idx_t c1, l4_cap_idx_t c2) L4_NOTHROW |
Test if the capability indices of two capability selectors are equal. | |
C interface for capabilities.
Add
#include <l4/sys/types.h> #include <l4/sys/consts.h>
to your code to use the functions and definitions explained here.
typedef unsigned long l4_cap_idx_t |
Capability selector type.
A capability selector is either a (shifted) capability index or the invalid capability selector L4_INVALID_CAP.
Usage of the invalid capability selector is defined only for invoking IPC (see Object Invocation): When IPC is invoked on L4_INVALID_CAP, then it is resolved to a capability for the current thread with full permissions.
Otherwise, the API assumes that each argument of type l4_cap_idx_t is a capability index, i.e., idx
<<
L4_CAP_SHIFT for arbitrary idx
. The behavior for other arguments is then undefined.
enum l4_cap_consts_t |
Constants related to capability selectors.
Enumerator | |
---|---|
L4_CAP_SHIFT | Capability index shift. |
L4_CAP_SIZE |
|
L4_CAP_OFFSET | Offset of two consecutive capability selectors. |
L4_CAP_MASK | Mask to get only the relevant bits of an l4_cap_idx_t. |
L4_INVALID_CAP | Invalid capability selector. |
enum l4_default_caps_t |
Default capabilities setup for the initial tasks.
These capability selectors are setup per default by the micro kernel for the two initial tasks, the Root-Pager (Sigma0) and the Root-Task (Moe).
|
inline |
Test if the capability indices of two capability selectors are equal.
c1 | Capability selector. |
c2 | Capability selector. |
0 | The index parts of the capability selectors differ. |
1 | The index parts of the capability selectors are equal. |
Definition at line 420 of file types.h.
References L4_CAP_SHIFT.
|
inline |
Test if a capability selector is the invalid capability.
c | Capability selector |
0 | The capability selector is not the invalid capability. |
>0 | The capability selector is the invalid capability. |
|
inline |
Test if a capability selector is a valid selector.
c | Capability selector |
0 | The capability selector is not valid. |
>0 | The capability selector is valid. |
Definition at line 416 of file types.h.
Referenced by L4Re::Util::Cap_alloc_base::free(), and L4Re::Util::Counting_cap_alloc< COUNTERTYPE, Dbg >::free().