|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function: