diff options
| author | Michael Brown | 2007-09-16 18:36:40 +0200 |
|---|---|---|
| committer | Michael Brown | 2007-09-21 02:14:38 +0200 |
| commit | db124b12551f91a2437014fb74a122ff0d0db08b (patch) | |
| tree | 352f99fc9e49162862b46a7a598eb4550209593f /src | |
| parent | Moved iobuf.h assertions outside the static inline functions, so that (diff) | |
| download | ipxe-db124b12551f91a2437014fb74a122ff0d0db08b.tar.gz ipxe-db124b12551f91a2437014fb74a122ff0d0db08b.tar.xz ipxe-db124b12551f91a2437014fb74a122ff0d0db08b.zip | |
Add fls() for non-constant values.
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/bitops.c | 10 | ||||
| -rw-r--r-- | src/include/strings.h | 6 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/core/bitops.c b/src/core/bitops.c new file mode 100644 index 000000000..75d57bf99 --- /dev/null +++ b/src/core/bitops.c @@ -0,0 +1,10 @@ +#include <strings.h> + +int __flsl ( long x ) { + int r = 0; + + for ( r = 0 ; x ; r++ ) { + x >>= 1; + } + return r; +} diff --git a/src/include/strings.h b/src/include/strings.h index a087b1d50..968a7c11d 100644 --- a/src/include/strings.h +++ b/src/include/strings.h @@ -40,17 +40,13 @@ __constant_flsl ( unsigned long x ) { return r; } -#define __constant_fls(x) __constant_flsl(x) - /* We don't actually have these functions yet */ -extern int __fls ( int x ); extern int __flsl ( long x ); #define flsl( x ) \ ( __builtin_constant_p ( x ) ? __constant_flsl ( x ) : __flsl ( x ) ) -#define fls( x ) \ - ( __builtin_constant_p ( x ) ? __constant_fls ( x ) : __fls ( x ) ) +#define fls( x ) flsl ( x ) extern int strcasecmp ( const char *s1, const char *s2 ); |
