summaryrefslogtreecommitdiff
path: root/lib/libc/strings/ffs.c
blob: 3b836021127615f71e2434650a6e41fb2f034aae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int ffs(int i)
{
	if (i == 0)
		return 0;

	int pos = 1;
	unsigned int u = (unsigned int)i;

	while ((u & 1U) == 0U) {
		u >>= 1;
		pos++;
	}
	return pos;
}