19588ddcfSespie /* ffs -- Find the first bit set in the parameter 29588ddcfSespie 39588ddcfSespie @deftypefn Supplemental int ffs (int @var{valu}) 49588ddcfSespie 59588ddcfSespie Find the first (least significant) bit set in @var{valu}. Bits are 69588ddcfSespie numbered from right to left, starting with bit 1 (corresponding to the 79588ddcfSespie value 1). If @var{valu} is zero, zero is returned. 89588ddcfSespie 99588ddcfSespie @end deftypefn 109588ddcfSespie 119588ddcfSespie */ 129588ddcfSespie 139588ddcfSespie int ffs(register int valu)14*20fce977Smiodffs (register int valu) 159588ddcfSespie { 169588ddcfSespie register int bit; 179588ddcfSespie 189588ddcfSespie if (valu == 0) 199588ddcfSespie return 0; 209588ddcfSespie 219588ddcfSespie for (bit = 1; !(valu & 1); bit++) 229588ddcfSespie valu >>= 1; 239588ddcfSespie 249588ddcfSespie return bit; 259588ddcfSespie } 269588ddcfSespie 27