18#include <l4/cxx/type_traits>
37[[noreturn]]
inline void throw_error(
long err,
char const *extra =
"")
37[[noreturn]]
inline void throw_error(
long err,
char const *extra =
"") {
…}
49[[noreturn]]
inline void throw_error_fmt(
long err,
char const *
const fmt, ...)
50 __attribute__((format(printf, 2, 3)));
51[[noreturn]] inline
void throw_error_fmt(
long err,
char const *const fmt, ...)
56 vsnprintf(extra,
sizeof(extra), fmt, argp);
72long chksys(
long err,
char const *extra =
"",
long ret = 0)
72long chksys(
long err,
char const *extra =
"",
long ret = 0) {
…}
97 throw_error(ret ? ret : l4_error_u(t, utcb), extra);
117{
return chksys(t, extra, utcb); }
121long chksys(
long ret,
long err,
char const *extra =
"")
148#if __cplusplus >= 201103L
157#if __cplusplus >= 201103L
158 return cxx::forward<T>(cap);
184 chksys(l4_error_u(tag, utcb), extra);
Exception for duplicate element insertions.
Exception for a failed lookup (element not found).
Exception signalling insufficient memory.
Exception for an abstract runtime error.
@ L4_EEXIST
Already exists.
@ L4_ENOENT
No such entity.
struct l4_utcb_t l4_utcb_t
Opaque type for the UTCB.
l4_utcb_t * l4_utcb(void) L4_NOTHROW L4_PURE
Get the UTCB address.
#define L4_UNLIKELY(x)
Expression is unlikely to execute.
Common L4 ABI Data Types.
long chksys(long err, char const *extra="", long ret=0)
Generate C++ exception on error.
T chkcap(T &&cap, char const *extra="", long err=-L4_ENOMEM)
Check for valid capability or raise C++ exception.
l4_msgtag_t chkipc(l4_msgtag_t tag, char const *extra="", l4_utcb_t *utcb=l4_utcb())
Test a message tag for IPC errors.
void throw_error(long err, char const *extra="")
Generate C++ exception.
Message tag data structure.
long label() const L4_NOTHROW
Get the protocol value.
bool has_error() const L4_NOTHROW
Test if flags indicate an error.