28#include <l4/sys/consts.h>
30#include <l4/sys/kobject>
31#include <l4/sys/task.h>
61#if __cplusplus >= 201103L
62# define L4_DISABLE_COPY(_class) \
64 _class(_class const &) = delete; \
65 _class operator = (_class const &) = delete; \
68# define L4_DISABLE_COPY(_class) \
70 _class(_class const &); \
71 _class operator = (_class const &);
75#define L4_KOBJECT_DISABLE_COPY(_class) \
78 L4_DISABLE_COPY(_class)
81#define L4_KOBJECT(_class) L4_KOBJECT_DISABLE_COPY(_class)
86 return is_valid() ? l4_task_cap_valid_u(task.cap(), _c, u)
124template<
typename T,
typename F >
131 Cap<Meta> mc = cap_reinterpret_cast<Meta>(c);
132 Type_info const *m = kobject_typeid<T>();
133 if (m->proto() &&
l4_error(mc->supports(m->proto())) > 0)
138 if (
l4_error(mc->supports(T::kobject_proto())) > 0)
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.
@ 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.
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 L4 ABI Data Types.
L4 low-level kernel interface.
Cap< T > cap_dynamic_cast(Cap< F > const &c) noexcept
dynamic_cast for capabilities.
Dynamic Type Information for L4Re Interfaces.
Message tag data structure.