summaryrefslogtreecommitdiff
path: root/lib/libc/strings/ffsl.c
blob: 2f2e7d448f4d63c177207ca4c8b95da7ec1d3fad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
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;
}