L4Re - L4 Runtime Environment
|
Meta interface that shall be implemented by each L4Re object and gives access to the dynamic type information for L4Re objects. More...
Public Member Functions | |
l4_msgtag_t | num_interfaces () |
Get the number of interfaces implemented by this object. More... | |
l4_msgtag_t | interface (l4_umword_t idx, long *proto, L4::Ipc::String< char > *name) |
Get the protocol number that must be used for the interface with the number idx . More... | |
l4_msgtag_t | supports (l4_mword_t protocol) |
Figure out if the object supports the given protocol (number). More... | |
![]() | |
l4_msgtag_t | dec_refcnt (l4_mword_t diff, l4_utcb_t *utcb=l4_utcb()) |
Decrement the in kernel reference counter for the object. More... | |
Additional Inherited Members | |
![]() | |
typedef Meta | Class |
The target interface type (inheriting from Kobject_t) | |
typedef Typeid::Iface< PROTO, Meta > | __Iface |
The interface description for the derived class. | |
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, typename Kobject ::__Iface_list > | __Iface_list |
The list of all RPC interfaces provided directly or through inheritance. | |
![]() | |
L4::Cap< Class > | c () const |
Get the capability to ourselves. | |
![]() | |
l4_cap_idx_t | cap () const throw () |
Return capability selector. More... | |
![]() | |
static void | __check_protocols__ () |
Helper to check for protocol conflicts. | |
Meta interface that shall be implemented by each L4Re object and gives access to the dynamic type information for L4Re objects.
l4_msgtag_t L4::Meta::interface | ( | l4_umword_t | idx, |
long * | proto, | ||
L4::Ipc::String< char > * | name | ||
) |
Get the protocol number that must be used for the interface with the number idx
.
idx | The index of the interface to get the protocol number for. idx must be >= 0 and < the return value of num_interfaces(). | |
[out] | proto | The protocol number for interface idx . |
[out] | name | The protocol name for interface idx . |
l4_msgtag_t::label() | == 0 Successful; see proto and name . |
l4_msgtag_t::label() | < 0 Error code. |
l4_msgtag_t L4::Meta::num_interfaces | ( | ) |
Get the number of interfaces implemented by this object.
l4_msgtag_t::label() | >= 0 The number of supported interfaces. |
l4_msgtag_t::label() | < 0 Error code of the occurred error. |
l4_msgtag_t L4::Meta::supports | ( | l4_mword_t | protocol | ) |
Figure out if the object supports the given protocol (number).
protocol | The protocol number to check for. |
l4_msgtag_t::label() | == 1 protocol is supported. |
l4_msgtag_t::label() | == 0 protocol is not supported. |
This method is intended to be used for statically assigned protocol numbers.
Referenced by L4::cap_dynamic_cast().