+2001-07-05 Mark Klein <mklein@dis.com>
+
+ * Makefile.in: Add ffs.c dependency.
+ * configure.in: Add ffs.c.
+ * ffs.c: New file.
+
2001-06-18 Richard Henderson <rth@redhat.com>
* concat.c: Include <sys/types.h>.
# configure.in.
CFILES = asprintf.c alloca.c argv.c atexit.c basename.c bcmp.c bcopy.c \
bzero.c calloc.c choose-temp.c clock.c concat.c cplus-dem.c \
- cp-demangle.c dyn-string.c fdmatch.c fnmatch.c getcwd.c \
+ cp-demangle.c dyn-string.c fdmatch.c fnmatch.c ffs.c getcwd.c \
getpwd.c getopt.c getopt1.c getpagesize.c getruntime.c \
floatformat.c hashtab.c hex.c index.c insque.c lbasename.c \
md5.c make-temp-file.c memchr.c \
funcs="$funcs bzero"
funcs="$funcs calloc"
funcs="$funcs clock"
+funcs="$funcs ffs"
funcs="$funcs getcwd"
funcs="$funcs getpagesize"
funcs="$funcs index"
fi
done
- for ac_func in sysconf times sbrk gettimeofday
+ for ac_func in sysconf times sbrk gettimeofday ffs
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:1707: checking for $ac_func" >&5
funcs="$funcs bzero"
funcs="$funcs calloc"
funcs="$funcs clock"
+funcs="$funcs ffs"
funcs="$funcs getcwd"
funcs="$funcs getpagesize"
funcs="$funcs index"
AC_CHECK_FUNCS(strcasecmp setenv strchr strdup strncasecmp strrchr strstr)
AC_CHECK_FUNCS(strtod strtol strtoul tmpnam vasprintf vfprintf vprintf)
AC_CHECK_FUNCS(vsprintf waitpid getrusage on_exit psignal strerror strsignal)
- AC_CHECK_FUNCS(sysconf times sbrk gettimeofday)
+ AC_CHECK_FUNCS(sysconf times sbrk gettimeofday ffs)
AC_DEFINE(HAVE_SYS_ERRLIST, 1, [Define if you have the sys_errlist variable.])
AC_DEFINE(HAVE_SYS_NERR, 1, [Define if you have the sys_nerr variable.])
AC_DEFINE(HAVE_SYS_SIGLIST, 1, [Define if you have the sys_siglist variable.])
--- /dev/null
+/* ffs -- Find the first bit set in the parameter
+
+NAME
+ ffs -- Find the first bit set in the parameter
+
+SYNOPSIS
+ int ffs (int valu)
+
+DESCRIPTION
+ Find the first bit set in the parameter. Bits are numbered from
+ right to left, starting with bit 1.
+
+*/
+
+int
+ffs (valu)
+ register int valu;
+{
+ register int bit;
+
+ if (valu == 0)
+ return 0;
+
+ for (bit = 1; !(valu & 1); bit++)
+ valu >>= 1;
+
+ return bit;
+}
+