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

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

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