![]() |
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 397 of file types.h.
References L4_CAP_SHIFT, and L4_NOTHROW.
|
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. |
Definition at line 389 of file types.h.
References L4_NOTHROW.
|
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 393 of file types.h.
References L4_NOTHROW.
Referenced by L4Re::Util::Cap_alloc_base::free(), and L4Re::Util::Counting_cap_alloc< COUNTERTYPE, Dbg >::free().