#ifndef __NETIFD_UTILS_H #define __NETIFD_UTILS_H #include #ifdef DEBUG #define DPRINTF(format, ...) fprintf(stderr, "%s(%d): " format, __func__, __LINE__, ## __VA_ARGS__) #else #define DPRINTF(format, ...) no_debug(format, ## __VA_ARGS__) #endif static inline void no_debug(const char *fmt, ...) { } #define __init __attribute__((constructor)) #ifdef __linux__ static inline int fls(int x) { int r = 32; if (!x) return 0; if (!(x & 0xffff0000u)) { x <<= 16; r -= 16; } if (!(x & 0xff000000u)) { x <<= 8; r -= 8; } if (!(x & 0xf0000000u)) { x <<= 4; r -= 4; } if (!(x & 0xc0000000u)) { x <<= 2; r -= 2; } if (!(x & 0x80000000u)) { x <<= 1; r -= 1; } return r; } #endif int avl_strcmp(const void *k1, const void *k2, void *ptr); #endif