diff options
Diffstat (limited to 'lib/libc/strings/ffsl.c')
| -rw-r--r-- | lib/libc/strings/ffsl.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/libc/strings/ffsl.c b/lib/libc/strings/ffsl.c new file mode 100644 index 00000000..2f2e7d44 --- /dev/null +++ b/lib/libc/strings/ffsl.c @@ -0,0 +1,14 @@ +int ffsl(long i) +{ + if (i == 0) + return 0; + + int pos = 1; + unsigned long u = (unsigned long)i; + + while ((u & 1UL) == 0UL) { + u >>= 1; + pos++; + } + return pos; +} |
