xref: /plan9/sys/src/ape/lib/bsd/ffs.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1 /* Find the first set bit
2  * i.e. least signifigant 1 bit:
3  * 0 => 0
4  * 1 => 1
5  * 2 => 2
6  * 3 => 1
7  * 4 => 3
8  */
9 
10 int
ffs(unsigned int mask)11 ffs(unsigned int mask)
12 {
13 	int i;
14 
15 	if (!mask)
16 		return 0;
17 	i = 1;
18 	while (!(mask & 1)){
19 		i++;
20 		mask = mask >> 1;
21 	}
22 	return i;
23 }
24