![]() |
L4Re Operating System Framework
Interface and Usage Documentation
|
L4 low-level kernel interface. More...
Namespaces | |
namespace | Ipc |
IPC related functionality. | |
namespace | Ipc_svr |
Helper classes for L4::Server instantiation. | |
namespace | Typeid |
Definition of interface data-type helpers. | |
namespace | Types |
L4 basic type helpers for C++. | |
Data Structures | |
class | Alloc_list |
A simple list-based allocator. More... | |
class | Arm_smccc |
Wrapper for function calls that follow the ARM SMC/HVC calling convention. More... | |
class | Base_exception |
Base class for all exceptions, thrown by the L4Re framework. More... | |
class | Basic_registry |
This registry returns the corresponding server object based on the label of an Ipc_gate. More... | |
class | Bounds_error |
Access out of bounds. More... | |
class | Cap |
C++ interface for capabilities. More... | |
class | Cap_base |
Base class for all kinds of capabilities. More... | |
class | Com_error |
Error conditions during IPC. More... | |
class | Debugger |
C++ kernel debugger API. More... | |
class | Element_already_exists |
Exception for duplicate element insertions. More... | |
class | Element_not_found |
Exception for a failed lookup (element not found). More... | |
struct | Epiface |
Base class for interface implementations. More... | |
struct | Epiface_t |
Epiface implementation for Kobject-based interface implementations. More... | |
struct | Epiface_t0 |
Epiface mixin for generic Kobject-based interfaces. More... | |
class | Exception |
Exception interface. More... | |
class | Exception_tracer |
Back-trace support for exceptions. More... | |
class | Factory |
C++ Factory interface, see Factory for the C interface. More... | |
class | Icu |
C++ Icu interface, see Interrupt controller for the C interface. More... | |
class | Invalid_capability |
Indicates that an invalid object was invoked. More... | |
class | Io_pager |
Io_pager interface. More... | |
class | Iommu |
Interface for IO-MMUs used for DMA remapping. More... | |
class | IOModifier |
Modifier class for the IO stream. More... | |
class | Ipc_gate |
The C++ IPC gate interface, see IPC-Gate API for the C interface. More... | |
class | Irq |
C++ Irq interface, see IRQs for the C interface. More... | |
class | Irq_eoi |
Interface for sending an unmask message to an object. More... | |
struct | Irq_handler_object |
Server object base class for handling IRQ messages. More... | |
struct | Irqep_t |
Epiface implementation for interrupt handlers. More... | |
class | Kobject |
Base class for all kinds of kernel objects and remote objects, referenced by capabilities. More... | |
class | Kobject_2t |
Helper class to create an L4Re interface class that is derived from two base classes (see L4::Kobject_t ). More... | |
struct | Kobject_3t |
Helper class to create an L4Re interface class that is derived from three base classes (see L4::Kobject_t ). More... | |
struct | Kobject_demand |
Get the combined server-side resource requirements for all type T... More... | |
class | Kobject_t |
Helper class to create an L4Re interface class that is derived from a single base class. More... | |
struct | Kobject_typeid |
Meta object for handling access to type information of Kobjects. More... | |
struct | Kobject_typeid< void > |
Minimalistic ID for void interface. More... | |
struct | Kobject_x |
Generic Kobject inheritance template. More... | |
class | Lock_guard |
Basic lock guard implementation that prevents forgotten unlocks on exit paths from a method or a block of code. More... | |
class | Meta |
Meta interface that shall be implemented by each L4Re object and gives access to the dynamic type information for L4Re objects. More... | |
class | Out_of_memory |
Exception signalling insufficient memory. More... | |
class | Pager |
Pager interface including the Io_pager interface. More... | |
class | Platform_control |
L4 C++ interface for controlling platform-wide properties, see Platform Control C API for the C interface. More... | |
class | Poll_timeout_counter |
Evaluate an expression for a maximum number of times. More... | |
class | Poll_timeout_kipclock |
A polling timeout based on the L4Re clock. More... | |
struct | Proto_t |
Data type for defining protocol numbers. More... | |
class | Rcv_endpoint |
Interface for kernel objects that allow to receive IPC from them. More... | |
class | Registry_iface |
Abstract interface for object registries. More... | |
class | Runtime_error |
Exception for an abstract runtime error. More... | |
class | Scheduler |
C++ interface of the Scheduler kernel object, see Scheduler for the C interface. More... | |
struct | Semaphore |
C++ Kernel-provided semaphore interface, see Kernel-provided semaphore for the C interface. More... | |
class | Server |
Basic server loop for handling client requests. More... | |
class | Server_object |
Abstract server object to be used with L4::Server and L4::Basic_registry. More... | |
struct | Server_object_t |
Base class (template) for server implementing server objects. More... | |
struct | Server_object_x |
Helper class to implement p_dispatch based server objects. More... | |
class | Smart_cap |
Smart capability class. More... | |
class | String |
A null-terminated string container class. More... | |
class | Task |
C++ interface of the Task kernel object, see Task for the C interface. More... | |
class | Thread |
C++ L4 kernel thread interface, see Thread for the C interface. More... | |
struct | Triggerable |
Interface that allows an object to be triggered by some source. More... | |
struct | Type_info |
Dynamic Type Information for L4Re Interfaces. More... | |
class | Uart |
Uart driver abstraction. More... | |
class | Uart_apb |
Driver for the Advanced Peripheral Bus (APB) UART from the Cortex-M System Design Kit (CMSDK). More... | |
class | Unknown_error |
Exception for an unknown condition. More... | |
class | Vcon |
C++ L4 Vcon interface, see Virtual Console for the C interface. More... | |
class | Vm |
Virtual machine host address space. More... | |
Typedefs | |
typedef int | Opcode |
Data type for RPC opcodes. | |
Enumerations | |
enum | { PROTO_ANY = 0 , PROTO_EMPTY = -19 } |
Functions | |
template<typename T > | |
Type_info const * | kobject_typeid () noexcept |
Get the L4::Type_info for the L4Re interface given in T . | |
template<typename T , typename F > | |
Cap< T > | cap_dynamic_cast (Cap< F > const &c) noexcept |
dynamic_cast for capabilities. | |
template<typename T , typename F > | |
Cap< T > | cap_cast (Cap< F > const &c) noexcept |
static_cast for capabilities. | |
template<typename T , typename F > | |
Cap< T > | cap_reinterpret_cast (Cap< F > const &c) noexcept |
reinterpret_cast for capabilities. | |
template<typename T > | |
constexpr T | trunc_order (T val, unsigned char order) |
Round a value down so the given number of lsb is zero. | |
template<typename T > | |
constexpr T | round_order (T val, unsigned char order) |
Round a value up so the given number of lsb is zero. | |
template<typename T , typename F , typename SMART > | |
Smart_cap< T, SMART > | cap_cast (Smart_cap< F, SMART > const &c) noexcept |
static_cast for (smart) capabilities. | |
template<typename T , typename F , typename SMART > | |
Smart_cap< T, SMART > | cap_reinterpret_cast (Smart_cap< F, SMART > const &c) noexcept |
reinterpret_cast for (smart) capabilities. | |
void | throw_ipc_exception (L4::Cap< void > const &o, l4_msgtag_t const &err, l4_utcb_t *utcb) |
Throw an L4 IPC error as exception. | |
void | throw_ipc_exception (void const *o, l4_msgtag_t const &err, l4_utcb_t *utcb) |
Throw an L4 IPC error as exception. | |
Variables | |
IOModifier const | hex |
Modifies the stream to print numbers as hexadecimal values. | |
IOModifier const | dec |
Modifies the stream to print numbers as decimal values. | |
BasicOStream | cout |
Standard output stream. | |
BasicOStream | cerr |
Standard error stream. | |
L4 low-level kernel interface.
anonymous enum |
Enumerator | |
---|---|
PROTO_ANY | |
PROTO_EMPTY | Empty protocol for empty APIs. |
Definition at line 44 of file __typeinfo.h.
static_cast for capabilities.
T | The target type of the capability |
F | The source type (and is usually implicitly set) |
c | The source capability that shall be casted |
T
.The use of this cast operator is similar to the static_cast<>()
for C++ pointers. It does the same type checking and adjustments like C++ does on pointers.
Example code:
L4::Cap<L4::Kobject> obj = ... ; L4::Cap<L4::Icu> icu = L4::cap_cast<L4::Icu>(obj);
Definition at line 411 of file capability.h.
|
inlinenoexcept |
static_cast
for (smart) capabilities.
T | Type to cast the capability to. |
F | (implicit) Type of the passed capability. |
SMART | (implicit) Class implementing the Smart_cap interface. |
c | Capability to be casted. |
T
. Definition at line 192 of file smart_capability.
|
inlinenoexcept |
dynamic_cast
for capabilities.
T | The target type of the capability. |
F | The source type (is usually implicitly set). |
c | The source capability that shall be casted. |
Cap<T> | Capability of target interface T . |
L4_INVALID_CAP | c does not support the target interface T or the L4::Meta interface. |
The use of this cast operator is similar to the dynamic_cast<>()
for C++ pointers. It also induces overhead, because it uses the meta interface (L4::Meta) to do runtime type checking.
Example code:
L4::Cap<L4::Kobject> obj = ... ; L4::Cap<L4::Icu> icu = L4::cap_dynamic_cast<L4::Icu>(obj);
Definition at line 115 of file capability.
References l4_error().
|
inlinenoexcept |
reinterpret_cast for capabilities.
T | The target type of the capability |
F | The source type (and is usually implicitly set) |
c | The source capability that shall be casted |
T
.The use of this cast operator is similar to the reinterpret_cast<>()
for C++ pointers. It does not do any type checking or type adjustment.
Example code:
L4::Cap<L4::Kobject> obj = ... ; L4::Cap<L4::Icu> icu = L4::cap_reinterpret_cast<L4::Icu>(obj);
Definition at line 442 of file capability.h.
|
inlinenoexcept |
reinterpret_cast
for (smart) capabilities.
T | Type to cast the capability to. |
F | (implicit) Type of the passed capability. |
SMART | (implicit) Class implementing the Smart_cap interface. |
c | Capability to be casted. |
T
. Definition at line 211 of file smart_capability.
|
constexpr |
Round a value up so the given number of lsb is zero.
T | The type of the value (shall be some integral type. |
val | The value to rund up to the next multiple of 2^order. |
order | order (2^order) to round up to. |
Definition at line 32 of file consts.
Referenced by L4Re::Dataspace::map_region().
|
constexpr |
Round a value down so the given number of lsb is zero.
T | The type of the value (shall be some integral type. |
val | The value where the given lsb shall be masked. |
order | the number of least significant bits (lsb) to mask. |
Definition at line 18 of file consts.
Referenced by L4Re::Dataspace::map_region().