Parcourir la source

Add missing ffs, used by rpc crap.
-Erik

Eric Andersen il y a 23 ans
Parent
commit
b540a2898e
2 fichiers modifiés avec 34 ajouts et 1 suppressions
  1. 1 1
      libc/string/Makefile
  2. 33 0
      libc/string/string.c

+ 1 - 1
libc/string/Makefile

@@ -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

+ 33 - 0
libc/string/string.c

@@ -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 ********************************************/