29 #include <l4/cxx/type_traits> 36 inline long __attribute__((__noreturn__)) __runtime_error(
long err,
char const *extra);
38 inline long __runtime_error(
long err,
char const *extra)
63 long chksys(
long err,
char const *extra =
"",
long ret = 0)
66 Priv::__runtime_error(ret ? ret : err, extra);
88 Priv::__runtime_error(ret ? ret : l4_error_u(t, utcb), extra);
108 {
return chksys(t, extra, utcb); }
112 long chksys(
long ret,
long err,
char const *extra =
"")
115 Priv::__runtime_error(err, extra);
139 #if __cplusplus >= 201103L 146 Priv::__runtime_error(err ? err : cap.cap(), extra);
148 #if __cplusplus >= 201103L 149 return cxx::forward<T>(cap);
175 chksys(l4_error_u(tag, utcb), extra);
Exception signalling insufficient memory.
Exception for a failed lookup (element not found).
Common L4 ABI Data Types.
struct l4_utcb_t l4_utcb_t
Opaque type for the UTCB.
Exception for an abstract runtime error.
long label() const
Get the protocol value.
Exception for duplicate element insertions.
unsigned has_error() const
Test if flags indicate an error.
#define L4_UNLIKELY(x)
Expression is unlikely to execute.
T chkcap(T &&cap, char const *extra="", long err=-L4_ENOMEM)
Check for valid capability or raise C++ exception.
l4_utcb_t * l4_utcb(void) L4_NOTHROW L4_PURE
Get the UTCB address.
l4_msgtag_t chkipc(l4_msgtag_t tag, char const *extra="", l4_utcb_t *utcb=l4_utcb())
Test a message tag for IPC errors.
long chksys(long err, char const *extra="", long ret=0)
Generate C++ exception on error.
Message tag data structure.