19#include <l4/sys/kobject>
51#if __cplusplus >= 201103L
52# define L4_DISABLE_COPY(_class) \
54 _class(_class const &) = delete; \
55 _class operator = (_class const &) = delete; \
58# define L4_DISABLE_COPY(_class) \
60 _class(_class const &); \
61 _class operator = (_class const &);
65#define L4_KOBJECT_DISABLE_COPY(_class) \
68 L4_DISABLE_COPY(_class)
71#define L4_KOBJECT(_class) L4_KOBJECT_DISABLE_COPY(_class)
76 return is_valid() ? l4_task_cap_valid_u(task.cap(),
_c, u)
114template<
typename T,
typename F >
123 if (m->proto() &&
l4_error(mc->supports(m->proto())) > 0)
128 if (
l4_error(mc->supports(T::kobject_proto())) > 0)
l4_cap_idx_t _c
The C representation of a capability selector.
bool is_valid() const noexcept
Test whether the capability is a valid capability index (i.e., not L4_INVALID_CAP).
@ Invalid
Invalid capability selector.
l4_msgtag_t validate(l4_utcb_t *u=l4_utcb()) const noexcept
Check whether a capability is present (refers to an object).
C++ interface for capabilities.
C++ Factory interface, see Factory for the C interface.
C++ Irq interface, see IRQs for the C interface.
Base class for all kinds of kernel objects and remote objects, referenced by capabilities.
C++ interface of the Task kernel object, see Task for the C interface.
C++ L4 kernel thread group interface, see Thread groups for the C interface.
C++ L4 kernel thread interface, see Thread for the C interface.
Virtual machine host address space.
@ L4_BASE_TASK_CAP
Capability selector for the current task.
long l4_error(l4_msgtag_t tag) L4_NOTHROW
Get IPC error code if any or message tag label otherwise for an IPC call.
Type_info const * kobject_typeid() noexcept
Get the L4::Type_info for the L4Re interface given in T.
l4_msgtag_t l4_msgtag(long label, unsigned words, unsigned items, unsigned flags) L4_NOTHROW
Create a message tag from the specified values.
struct l4_utcb_t l4_utcb_t
Opaque type for the UTCB.
Common task related definitions.
Common L4 ABI Data Types.
L4 low-level kernel interface.
Cap< T > cap_reinterpret_cast(Cap< F > const &c) noexcept
reinterpret_cast for capabilities.
Cap< T > cap_dynamic_cast(Cap< F > const &c) noexcept
dynamic_cast for capabilities.
Dynamic Type Information for L4Re Interfaces.
Message tag data structure.