17#include <l4/sys/consts.h>
19#include <l4/sys/kobject>
20#include <l4/sys/task.h>
50#if __cplusplus >= 201103L
51# define L4_DISABLE_COPY(_class) \
53 _class(_class const &) = delete; \
54 _class operator = (_class const &) = delete; \
57# define L4_DISABLE_COPY(_class) \
59 _class(_class const &); \
60 _class operator = (_class const &);
64#define L4_KOBJECT_DISABLE_COPY(_class) \
67 L4_DISABLE_COPY(_class)
70#define L4_KOBJECT(_class) L4_KOBJECT_DISABLE_COPY(_class)
75 return is_valid() ? l4_task_cap_valid_u(task.cap(), _c, u)
113template<
typename T,
typename F >
120 Cap<Meta> mc = cap_reinterpret_cast<Meta>(c);
121 Type_info const *m = kobject_typeid<T>();
122 if (m->proto() &&
l4_error(mc->supports(m->proto())) > 0)
127 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.