L4Re - L4 Runtime Environment
Capabilities

C interface for capabilities. More...

+ Collaboration diagram for Capabilities:

Typedefs

typedef unsigned long l4_cap_idx_t
 L4 Capability selector Type.
 

Enumerations

enum  l4_cap_consts_t { L4_CAP_SHIFT, L4_CAP_SIZE , L4_CAP_MASK, L4_INVALID_CAP }
 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 = 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. More...
 
unsigned l4_is_valid_cap (l4_cap_idx_t c) L4_NOTHROW
 Test if a capability selector is a valid selector. More...
 
unsigned l4_capability_equal (l4_cap_idx_t c1, l4_cap_idx_t c2) L4_NOTHROW
 Test if two capability selectors are equal. More...
 

Detailed Description

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.

Enumeration Type Documentation

◆ l4_cap_consts_t

Constants related to capability selectors.

Enumerator
L4_CAP_SHIFT 

Capability index shift.

L4_CAP_SIZE 

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.

Definition at line 128 of file consts.h.

◆ 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).

Attention
This constants do not have any particular meaning for applications started by Moe, see Initial Environment for this kind of information.
See also
Initial Environment for information useful for normal user applications.
Enumerator
L4_BASE_TASK_CAP 

Capability selector for the current task.

L4_BASE_FACTORY_CAP 

Capability selector for the factory.

L4_BASE_THREAD_CAP 

Capability selector for the first thread.

L4_BASE_PAGER_CAP 

Capability selector for the pager gate.

For Sigma0, the pager is not present since it never raises page faults. For Moe, the pager is set to Sigma0.

L4_BASE_LOG_CAP 

Capability selector for the log object.

Present if the corresponding feature is turned on in the microkernel configuration.

L4_BASE_ICU_CAP 

Capability selector for the base icu object.

L4_BASE_SCHEDULER_CAP 

Capability selector for the scheduler cap.

L4_BASE_IOMMU_CAP 

Capability selector for the IO-MMU cap.

Present if the microkernel detected an IO-MMU.

L4_BASE_DEBUGGER_CAP 

Capability selector for the debugger cap.

Present if the corresponding feature is turned on in the microkernel configuration.

L4_BASE_ARM_SMCCC_CAP 

Capability selector for the ARM SMCCC cap.

Present if the microkernel detected an ARM SMC capable trusted execution environment.

L4_BASE_CAPS_LAST 

Last capability index used for base capabilities.

Definition at line 240 of file consts.h.

Function Documentation

◆ l4_capability_equal()

unsigned l4_capability_equal ( l4_cap_idx_t  c1,
l4_cap_idx_t  c2 
)
inline

Test if two capability selectors are equal.

Parameters
c1Capability
c2Capability
Return values
0The given capabilities are not in the same slot.
1The given capabilities are in the same slot.

Definition at line 400 of file types.h.

References L4_CAP_SHIFT.

◆ l4_is_invalid_cap()

unsigned l4_is_invalid_cap ( l4_cap_idx_t  c)
inline

Test if a capability selector is the invalid capability.

Parameters
cCapability selector
Return values
0The capability selector is not the invalid capability.
>0The capability selector is the invalid capability.
Examples:
examples/libs/l4re/c/ma+rm.c, examples/sys/aliens/main.c, examples/sys/isr/main.c, examples/sys/singlestep/main.c, examples/sys/start-with-exc/main.c, and examples/sys/utcb-ipc/main.c.

Definition at line 392 of file types.h.

◆ l4_is_valid_cap()

unsigned l4_is_valid_cap ( l4_cap_idx_t  c)
inline

Test if a capability selector is a valid selector.

Parameters
cCapability selector
Return values
0The capability selector is not valid.
>0The capability selector is valid.

Definition at line 396 of file types.h.