X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Futil.hpp;h=b3f43de882f1af86ad7c8af7e0003717c5b91c34;hb=9fcedd79dd25767658b653ed04a77cf65316b0a5;hp=ff173c812af37b2bbb4092afe4a5b840468903a9;hpb=2b546956a800545bdda2be9682fac21fd1e86736;p=staging%2Fwindowmanager.git diff --git a/src/util.hpp b/src/util.hpp index ff173c8..b3f43de 100644 --- a/src/util.hpp +++ b/src/util.hpp @@ -23,9 +23,14 @@ #include +#ifndef DO_NOT_USE_AFB extern "C" { #include }; +#endif + +#define CONCAT_(X, Y) X##Y +#define CONCAT(X, Y) CONCAT_(X, Y) #ifdef __GNUC__ #define ATTR_FORMAT(stringindex, firsttocheck) \ @@ -36,6 +41,7 @@ extern "C" { #define ATTR_NORETURN #endif +#ifdef AFB_BINDING_VERSION #define lognotice(...) AFB_NOTICE(__VA_ARGS__) #define logerror(...) AFB_ERROR(__VA_ARGS__) #define fatal(...) \ @@ -43,20 +49,29 @@ extern "C" { AFB_ERROR(__VA_ARGS__); \ abort(); \ } while (0) +#else +#define lognotice(...) +#define logerror(...) +#define fatal(...) \ + do { \ + abort(); \ + } while (0) +#endif #ifdef DEBUG_OUTPUT +#ifdef AFB_BINDING_VERSION #define logdebug(...) AFB_DEBUG(__VA_ARGS__) #else #define logdebug(...) #endif +#else +#define logdebug(...) +#endif -#ifdef NDEBUG +#ifndef SCOPE_TRACING #define ST() #define STN(N) #else -#define CONCAT_(X, Y) X##Y -#define CONCAT(X, Y) CONCAT_(X, Y) - #define ST() \ ScopeTrace __attribute__((unused)) CONCAT(trace_scope_, __LINE__)(__func__) #define STN(N) \ @@ -65,10 +80,8 @@ extern "C" { struct ScopeTrace { thread_local static int indent; char const *f{}; - explicit ScopeTrace(char const *func) : f(func) { - fprintf(stderr, "%lu %*s%s -->\n", pthread_self(), 2 * indent++, "", this->f); - } - ~ScopeTrace() { fprintf(stderr, "%lu %*s%s <--\n", pthread_self(), 2 * --indent, "", this->f); } + explicit ScopeTrace(char const *func); + ~ScopeTrace(); }; #endif