diff --git a/include/utils.h b/include/utils.h index cdb3adf85..324ed236f 100644 --- a/include/utils.h +++ b/include/utils.h @@ -17,9 +17,11 @@ #include "log.h" #ifdef __GNUC__ - #define EXPECT(x, v) __builtin_expect(x, v) + #define LIKELY(x) __builtin_expect((x),1) + #define UNLIKELY(x) __builtin_expect((x),0) #else - #define EXPECT(x, v) (x) + #define LIKELY(x) (x) + #define UNLIKELY(x) (x) #endif /* Some color escape codes for pretty log messages */ @@ -69,6 +71,16 @@ __typeof__ (b) _b = (b); \ _a < _b ? _a : _b; }) +#ifndef offsetof + #define offsetof(type, member) __builtin_offsetof(type, member) +#endif + +#ifndef container_of + #define container_of(ptr, type, member) ({ const typeof( ((type *) 0)->member ) *__mptr = (ptr); \ + (type *) ( (char *) __mptr - offsetof(type, member) ); \ + }) +#endif + /* Forward declarations */ struct settings; struct timespec;