21 #ifndef LELY_UTIL_UTIL_H_ 22 #define LELY_UTIL_UTIL_H_ 29 #define ABS(a) ((a) < 0 ? -(a) : (a)) 40 #if defined(__clang__) || defined(__GNUC__) 41 #define ALIGN(x, a) ALIGN_MASK((x), (__typeof__(x))(a)-1) 43 #define ALIGN(x, a) ALIGN_MASK((x), (a)-1) 48 #define ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask)) 57 #define MIN(a, b) ((a) < (b) ? (a) : (b)) 65 #define MAX(a, b) ((a) < (b) ? (b) : (a)) 69 #define countof(a) (sizeof(a) / sizeof(0 [a])) 78 #define powerof2(x) (!((x) & ((x)-1))) 92 #if defined(__clang__) || defined(__GNUC__) 93 #define structof(ptr, type, member) \ 95 const __typeof__(((type *)NULL)->member) *_tmp_ = (ptr); \ 96 ((type *)((char *)(_tmp_) - offsetof(type, member))); \ 99 #define structof(ptr, type, member) \ 100 ((type *)((char *)(ptr) - offsetof(type, member))) 105 #endif // !LELY_UTIL_UTIL_H_ This header file is part of the C11 and POSIX compatibility library; it includes <stddef.h> and defines any missing functionality.
This header file is part of the Lely libraries; it contains the compiler feature definitions.