projects
/
project
/
netifd.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
18afbe2
)
Add inline fls() function for linux
author
Jo-Philipp Wich
<jow@openwrt.org>
Mon, 5 Sep 2011 16:55:53 +0000
(18:55 +0200)
committer
Felix Fietkau
<nbd@openwrt.org>
Mon, 5 Sep 2011 16:58:22 +0000
(18:58 +0200)
netifd.h
patch
|
blob
|
history
diff --git
a/netifd.h
b/netifd.h
index
b70b73c
..
77c8719
100644
(file)
--- a/
netifd.h
+++ b/
netifd.h
@@
-30,4
+30,35
@@
extern bool config_init;
int avl_strcmp(const void *k1, const void *k2, void *ptr);
void config_init_interfaces(const char *name);
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
#endif