18namespace L4Re {
namespace Util {
28 static char const *
const levels[];
31 { cprintf(
"%s: %s", _component, levels[_l]); }
33 int printf(
char const *fmt, ...) const
34 __attribute__((format(printf,2,3)));
36 int cprintf(
char const *fmt, ...) const
37 __attribute__((format(printf,2,3)));
39 constexpr Err(Level l,
char const *component) : _l(l), _component(component)
44 char const *_component;
56 char const *
const _component;
57 char const *
const _subsys;
61 int printf_impl(
char const *fmt, ...) const
62 __attribute__((format(printf, 2, 3)));
64 int cprintf_impl(
char const *fmt, ...) const
65 __attribute__((format(printf, 2, 3)));
70 static unsigned long level;
72 static void set_level(
unsigned long l) { level = l; }
74 bool is_active()
const {
return _m & level; }
78 int printf(
char const *fmt, ...) const
79 __attribute__((format(printf, 2, 3)));
81 int cprintf(
char const *fmt, ...) const
82 __attribute__((format(printf, 2, 3)));
86 int __attribute__((always_inline, format(printf, 2, 3)))
87 printf(
char const *fmt, ...)
const
92 return printf_impl(fmt, __builtin_va_arg_pack());
95 int __attribute__((always_inline, format(printf, 2, 3)))
96 cprintf(
char const *fmt, ...)
const
101 return cprintf_impl(fmt, __builtin_va_arg_pack());
107 Dbg() : _m(1), _component(0), _subsys(0) { };
110 Dbg(
unsigned long mask,
char const *comp,
char const *subs)
111 : _m(mask), _component(comp), _subsys(subs)
117 static void set_level(
unsigned long) {}
118 bool is_active()
const {
return false; }
120 int printf(
char const * , ...) const
121 __attribute__((format(printf, 2, 3)))
124 int cprintf(
char const * , ...) const
125 __attribute__((format(printf, 2, 3)))
132 Dbg(
unsigned long,
char const *,
char const *) {}
Common L4 ABI Data Types.