X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Futil.hpp;h=e285c0f23d6848619c21a571dbd26a80d83f9675;hb=268111321e92c4366100924b2c0cd8a8c945885b;hp=a2f0dbf84bf834e30644c5557d27b0038d9223a1;hpb=9753260ef3e5bad3fc600987dbf9d82af259a4ea;p=staging%2Fwindowmanager.git diff --git a/src/util.hpp b/src/util.hpp index a2f0dbf..e285c0f 100644 --- a/src/util.hpp +++ b/src/util.hpp @@ -3,26 +3,48 @@ #include #include + #include +extern "C" { +#include +}; + #ifdef __GNUC__ #define ATTR_FORMAT(stringindex, firsttocheck) \ __attribute__((format(printf, stringindex, firsttocheck))) +#define ATTR_NORETURN __attribute__((noreturn)) #else #define ATTR_FORMAT(stringindex, firsttocheck) +#define ATTR_NORETURN #endif -void lognotice(char const *fmt, ...) ATTR_FORMAT(1, 2); -void logerror(char const *fmt, ...) ATTR_FORMAT(1, 2); -void fatal(char const *fmt, ...) ATTR_FORMAT(1, 2); +#define lognotice(...) AFB_NOTICE(__VA_ARGS__) +#define logerror(...) AFB_ERROR(__VA_ARGS__) +#define fatal(...) \ + do { \ + AFB_ERROR(__VA_ARGS__); \ + abort(); \ + } while (0) #ifdef DEBUG_OUTPUT -void logdebug(char const *fmt, ...) ATTR_FORMAT(1, 2); +#define logdebug(...) AFB_DEBUG(__VA_ARGS__) #else -static inline void logdebug(char const *fmt, ...) ATTR_FORMAT(1, 2); -static inline void logdebug(char const *fmt, ...) {} +#define logdebug(...) #endif +#ifndef NDEBUG +#define DB(expr) \ + do { \ + std::ostringstream o; \ + o << __FILE__ << ":" << __LINE__ << ":" << __func__ << ": " << expr; \ + logdebug("%s", o.str().c_str()); \ + } while (0) +#else +#define DB(expr) +#endif + + // _ _ _ __ _ // ___| |_ _ __ _ _ ___| |_ _ _ _ __ (_) __ _ _ _ ___ / _| __| | // / __| __| '__| | | |/ __| __| | | | | '_ \| |/ _` | | | |/ _ \ | |_ / _` |