shithub: front

ref: 43a3a80be3cd9fe7e0f31efe5c24c3e321e07b08
dir: /sys/src/ape/lib/bsd/ffs.c/

View raw version
/* Find the first set bit
 * i.e. least signifigant 1 bit:
 * 0 => 0
 * 1 => 1
 * 2 => 2
 * 3 => 1
 * 4 => 3
 */

int
ffs(unsigned int mask)
{
	int i;

	if (!mask)
		return 0;
	i = 1;
	while (!(mask & 1)){
		i++;
		mask = mask >> 1;
	}
	return i;
}