X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=netifd.h;h=77c8719d17cf7d7b8fc1a2403f3bebabed4e0b5a;hp=fabf4d9d21a4f419d131f263f0d8b87806ef655f;hb=e15ef7a8d23fbc6c931d7221ac792fce67729218;hpb=5d1fff7af6f77c9bf0d46572c7af563cd9fc55b3 diff --git a/netifd.h b/netifd.h index fabf4d9..77c8719 100644 --- a/netifd.h +++ b/netifd.h @@ -13,17 +13,52 @@ #include #include -#include "device.h" -#include "interface.h" - #ifdef DEBUG #define DPRINTF(format, ...) fprintf(stderr, "%s(%d): " format, __func__, __LINE__, ## __VA_ARGS__) #else #define DPRINTF(...) do {} while(0) #endif +#define __init __attribute__((constructor)) + +struct device; +struct interface; + extern struct uci_context *uci_ctx; +extern bool config_init; +int avl_strcmp(const void *k1, const void *k2, void *ptr); void config_init_interfaces(const char *name); +#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 + #endif