L4Re Operating System Framework
Interface and Usage Documentation
|
C++ interface for capabilities. More...
#include <capability.h>
Public Member Functions | |
template<typename O > | |
Cap (Cap< O > const &o) noexcept | |
Create a copy from o , supporting implicit type casting. | |
Cap (Cap_type cap) noexcept | |
Constructor to create an invalid capability selector. | |
Cap (l4_default_caps_t cap) noexcept | |
Initialize capability with one of the default capability selectors. | |
Cap (l4_cap_idx_t idx=L4_INVALID_CAP) noexcept | |
Initialize capability, defaults to the invalid capability selector. | |
Cap (No_init_type) noexcept | |
Create an uninitialized cap selector. | |
Cap | move (Cap const &src) const |
Move a capability to this cap slot. | |
Cap | copy (Cap const &src) const |
Copy a capability to this cap slot. | |
T * | operator-> () const noexcept |
Member access of a T . | |
Public Member Functions inherited from L4::Cap_base | |
l4_cap_idx_t | cap () const noexcept |
Return capability selector. | |
bool | is_valid () const noexcept |
Test whether the capability is a valid capability index (i.e., not L4_INVALID_CAP). | |
l4_fpage_t | fpage (unsigned rights=L4_CAP_FPAGE_RWS) const noexcept |
Return flex-page for the capability. | |
l4_umword_t | snd_base (unsigned grant=L4_MAP_ITEM_MAP, l4_cap_idx_t base=L4_INVALID_CAP) const noexcept |
Return send base. | |
bool | operator== (Cap_base const &o) const noexcept |
Test if two capabilities are equal. | |
bool | operator!= (Cap_base const &o) const noexcept |
Test if two capabilities are not equal. | |
l4_msgtag_t | validate (l4_utcb_t *u=l4_utcb()) const noexcept |
Check whether a capability is present (refers to an object). | |
l4_msgtag_t | validate (Cap< Task > task, l4_utcb_t *u=l4_utcb()) const noexcept |
Check whether a capability is present (refers to an object). | |
void | invalidate () noexcept |
Set this capability to invalid (L4_INVALID_CAP). | |
Static Public Member Functions | |
template<typename From > | |
static void | check_convertible_from () noexcept |
Perform the type conversion that needs to compile in order for a capability of type From to be convertible to one of type T. | |
template<typename From > | |
static void | check_castable_from () noexcept |
Perform the type conversion that needs to compile in order for a capability of type From te be castable (via the correct cap_cast) to one of type T. | |
Friends | |
class | L4::Kobject |
Additional Inherited Members | |
Public Types inherited from L4::Cap_base | |
enum | No_init_type { No_init } |
Special value for uninitialized capability objects. More... | |
enum | Cap_type { Invalid = L4_INVALID_CAP } |
Invalid capability type. More... | |
Protected Member Functions inherited from L4::Cap_base | |
Cap_base (l4_cap_idx_t c) noexcept | |
Generate a capability from its C representation. | |
Cap_base (Cap_type cap) noexcept | |
Constructor to create an invalid capability. | |
Cap_base (l4_default_caps_t cap) noexcept | |
Initialize capability with one of the default capabilities. | |
Cap_base () noexcept | |
Create an uninitialized instance. | |
void | move (Cap_base const &src) const |
Replace this capability with the contents of src . | |
void | copy (Cap_base const &src) const |
Copy a capability. | |
Protected Attributes inherited from L4::Cap_base | |
l4_cap_idx_t | _c |
The C representation of a capability selector. | |
C++ interface for capabilities.
T | Type of the object the capability points to. |
The C++ version of a capability is comparable to a pointer, in fact it is a kind of smart pointer for our kernel objects and the objects derived from the kernel objects (L4::Kobject).
Add
#include <l4/sys/capability>
to your code to use the capability interface.
Definition at line 218 of file capability.h.
Create a copy from o
, supporting implicit type casting.
o | The source selector that shall be copied (and casted). |
Definition at line 270 of file capability.h.
Constructor to create an invalid capability selector.
cap | Capability selector. |
Definition at line 277 of file capability.h.
|
inlinenoexcept |
Initialize capability with one of the default capability selectors.
cap | Capability selector. |
Definition at line 283 of file capability.h.
|
inlineexplicitnoexcept |
Initialize capability, defaults to the invalid capability selector.
idx | Capability selector. |
Definition at line 289 of file capability.h.
|
inlinestaticnoexcept |
Perform the type conversion that needs to compile in order for a capability of type From te be castable (via the correct cap_cast) to one of type T.
From | Type to convert from |
Definition at line 259 of file capability.h.
|
inlinestaticnoexcept |
Perform the type conversion that needs to compile in order for a capability of type From to be convertible to one of type T.
From | Type to convert from |
Definition at line 246 of file capability.h.
Copy a capability to this cap slot.
src | the source capability slot. |
Definition at line 312 of file capability.h.
Move a capability to this cap slot.
src | the source capability slot. |
After this operation the source slot is no longer valid.
Definition at line 302 of file capability.h.