OSDN Git Service

Add missing ffs, used by rpc crap.
authorEric Andersen <andersen@codepoet.org>
Fri, 9 Feb 2001 08:54:29 +0000 (08:54 -0000)
committerEric Andersen <andersen@codepoet.org>
Fri, 9 Feb 2001 08:54:29 +0000 (08:54 -0000)
 -Erik

libc/string/Makefile
libc/string/string.c

index 1c8c628..5a2aa3c 100644 (file)
@@ -27,7 +27,7 @@ LIBC=$(TOPDIR)libc.a
 MSRC=string.c
 MOBJ=strlen.o strcat.o strcpy.o strchr.o strcmp.o strncat.o strncpy.o \
        strncmp.o strrchr.o strdup.o memcpy.o memccpy.o memset.o \
-       memmove.o memcmp.o memchr.o
+       memmove.o memcmp.o memchr.o ffs.o
 
 MSRC1=index.c
 MOBJ1=index.o rindex.o
index fdf8481..f77cf4c 100644 (file)
@@ -280,5 +280,38 @@ int memcmp(const void *s1, const void *s2, size_t len)
 #endif
 
 
+/********************** Function memcmp ************************************/
+
+#ifdef L_ffs
+int ffs(int x)
+{
+       int r = 1;
+
+       if (!x)
+               return 0;
+       if (!(x & 0xffff)) {
+               x >>= 16;
+               r += 16;
+       }
+       if (!(x & 0xff)) {
+               x >>= 8;
+               r += 8;
+       }
+       if (!(x & 0xf)) {
+               x >>= 4;
+               r += 4;
+       }
+       if (!(x & 3)) {
+               x >>= 2;
+               r += 2;
+       }
+       if (!(x & 1)) {
+               x >>= 1;
+               r += 1;
+       }
+       return r;
+}
+#endif
+
 
 /********************** THE END ********************************************/