summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/misc/ffs.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/misc/ffs.c b/src/misc/ffs.c
index 2f7cb321..673ce5a9 100644
--- a/src/misc/ffs.c
+++ b/src/misc/ffs.c
@@ -1,9 +1,7 @@
#include <strings.h>
+#include "atomic.h"
int ffs(int i)
{
- unsigned int j = i;
- for (i=1; j && !(j&1); j>>=1, i++);
- if (j) return i;
- return 0;
+ return i ? a_ctz_l(i)+1 : 0;
}