L4Re - L4 Runtime Environment
|
L4 low-level kernel interface. More...
Namespaces | |
Ipc | |
IPC related functionality. | |
Ipc_svr | |
Helper classes for L4::Server instantiation. | |
Typeid | |
Definition of interface data-type helpers. | |
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... | |
class | Exception |
Exception interface. More... | |
class | Exception_tracer |
Back-trace support for exceptions. More... | |
class | Factory |
C++ Factory interface to create kernel objects. More... | |
class | Icu |
C++ Icu 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. More... | |
class | Irq |
C++ Irq interface. More... | |
class | Irq_eoi |
Interface for sending an acknowledge message to an object. More... | |
struct | Irq_handler_object |
Server object base class for handling IRQ messages. More... | |
struct | Irq_mux |
IRQ multiplexer for shared IRQs. 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 | 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. 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. More... | |
struct | Semaphore |
Kernel-provided semaphore object. 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. More... | |
class | Thread |
C++ L4 kernel thread 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 | Unknown_error |
Exception for an unknown condition. More... | |
class | Vcon |
C++ L4 Vcon interface. More... | |
class | Vm |
Virtual machine. 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 () |
Get the L4::Type_info for the L4Re interface given in T . More... | |
template<typename T , typename F > | |
Cap< T > | cap_dynamic_cast (Cap< F > const &c) throw () |
dynamic_cast for capabilities. More... | |
template<typename T , typename F > | |
Cap< T > | cap_cast (Cap< F > const &c) throw () |
static_cast for capabilities. More... | |
template<typename T , typename F > | |
Cap< T > | cap_reinterpret_cast (Cap< F > const &c) throw () |
reinterpret_cast for capabilities. More... | |
template<typename T , typename F , typename SMART > | |
Smart_cap< T, SMART > | cap_cast (Smart_cap< F, SMART > const &c) throw () |
static_cast for (smart) capabilities. More... | |
template<typename T , typename F , typename SMART > | |
Smart_cap< T, SMART > | cap_reinterpret_cast (Smart_cap< F, SMART > const &c) throw () |
reinterpret_cast for (smart) capabilities. More... | |
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. More... | |
void | throw_ipc_exception (void const *o, l4_msgtag_t const &err, l4_utcb_t *utcb) |
Throw an L4 IPC error as exception. More... | |
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 55 of file __typeinfo.h.
|
inline |
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 203 of file smart_capability.
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 379 of file capability.h.
References L4::Cap_base::cap().
Referenced by L4Re::Cap_alloc::alloc(), L4Re::Util::Counting_cap_alloc< COUNTERTYPE >::alloc(), L4::Ipc_svr::Server_iface::rcv_cap(), and L4virtio::Svr::Block_dev< Ds_data >::register_obj().
|
inline |
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 125 of file capability.
References cap_reinterpret_cast(), l4_error(), and L4::Meta::supports().
|
inline |
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 222 of file smart_capability.
|
inline |
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 410 of file capability.h.
References L4::Cap_base::cap().
Referenced by cap_dynamic_cast().
|
inline |
Throw an L4 IPC error as exception.
o | The client side object, for which the IPC was invoked. |
err | The IPC result code (error code). |
utcb | UTCB to be used for this operation, usually the UTCB of the calling thread. |
Definition at line 41 of file ipc_helper.
References l4_msgtag_t::has_error().
Referenced by throw_ipc_exception().
|
inline |
Throw an L4 IPC error as exception.
o | The client side object, for which the IPC was invoked. |
err | The IPC result code (error code). |
utcb | UTCB to be used for this operation, usually the UTCB of the calling thread. |
Definition at line 58 of file ipc_helper.
References throw_ipc_exception().