L4Re - L4 Runtime Environment
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
L4::Cap< T > Class Template Reference

Capability Selector a la C++. More...

+ Inheritance diagram for L4::Cap< T >:
+ Collaboration diagram for L4::Cap< T >:

Public Member Functions

template<typename O >
 Cap (Cap< O > const &o) throw ()
 Create a copy from o, supporting implicit type casting.
 Cap (Cap_type cap) throw ()
 Constructor to create an invalid capability selector.
 Cap (l4_default_caps_t cap) throw ()
 Initialize capability with one of the default capability selectors.
 Cap (l4_cap_idx_t idx=L4_INVALID_CAP) throw ()
 Initialize capability, defaults to the invalid capability selector.
 Cap (No_init_type) throw ()
 Create an uninitialized cap selector.
Cap move (Cap const &src) const
 Move a capability to this cap slot.
T * operator-> () const throw ()
 Member access of a T.
- Public Member Functions inherited from L4::Cap_base
l4_cap_idx_t cap () const throw ()
 Return capability selector.
bool is_valid () const throw ()
 Test whether capability selector is not the invalid capability selector.
l4_fpage_t fpage (unsigned rights=L4_FPAGE_RWX) const throw ()
 Returns flex-page of the capability selector.
l4_umword_t snd_base (unsigned grant=0, l4_cap_idx_t base=L4_INVALID_CAP) const throw ()
 Returns send base.
bool operator== (Cap_base const &o) const throw ()
 Test if two capability selectors are equal.
bool operator!= (Cap_base const &o) const throw ()
 Test if two capability selectors are not equal.
l4_msgtag_t validate (l4_utcb_t *u=l4_utcb()) const throw ()
 Check whether a capability selector points to a valid capability.
l4_msgtag_t validate (Cap< Task > task, l4_utcb_t *u=l4_utcb()) const throw ()
 Check whether a capability selector points to a valid capability.
void invalidate () throw ()
 Set this selector to the invalid capability (L4_INVALID_CAP).

Friends

class L4::Kobject

Additional Inherited Members

- Public Types inherited from L4::Cap_base
enum  No_init_type { No_init }
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) throw ()
 Generate a capability from its C representation.
 Cap_base (Cap_type cap) throw ()
 Constructor to create an invalid capability selector.
 Cap_base (l4_default_caps_t cap) throw ()
 Initialize capability with one of the default capability selectors.
 Cap_base () throw ()
 Create an uninitialized instance.
- Protected Attributes inherited from L4::Cap_base
l4_cap_idx_t _c
 The C representation of a capability selector.

Detailed Description

template<typename T>
class L4::Cap< T >

Capability Selector a la C++.

Template Parameters
Tthe type of the object the capability points to

The C++ version of a capability looks just as a pointer, in fact it is a kind of a smart pointer for our kernel objects and the objects derived from the kernel objects (L4::Kobject).

Examples:
examples/clntsrv/client.cc, examples/libs/l4re/c++/shared_ds/ds_clnt.cc, and examples/libs/l4re/streammap/client.cc.

Definition at line 199 of file capability.

Constructor & Destructor Documentation

template<typename T>
template<typename O >
L4::Cap< T >::Cap ( Cap< O > const &  o) throw ()
inline

Create a copy from o, supporting implicit type casting.

Parameters
ois the source selector that shall be copied (and casted).

Definition at line 224 of file capability.

template<typename T>
L4::Cap< T >::Cap ( l4_default_caps_t  cap) throw ()
inline

Initialize capability with one of the default capability selectors.

Parameters
capCapability selector.

Definition at line 236 of file capability.

template<typename T>
L4::Cap< T >::Cap ( l4_cap_idx_t  idx = L4_INVALID_CAP) throw ()
inlineexplicit

Initialize capability, defaults to the invalid capability selector.

Parameters
idxCapability selector.

Definition at line 242 of file capability.

Member Function Documentation

template<typename T>
Cap L4::Cap< T >::move ( Cap< T > const &  src) const
inline

Move a capability to this cap slot.

Parameters
srcthe source capability slot.

After this operation the source slot is no longer valid.

Definition at line 255 of file capability.


The documentation for this class was generated from the following file:
L4Re - L4 Runtime Environment