]> xenbits.xensource.com Git - people/liuw/xtf.git/commitdiff
Add an implementation of strcmp()
authorAndrew Cooper <andrew.cooper3@citrix.com>
Tue, 2 Aug 2016 17:07:18 +0000 (18:07 +0100)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Tue, 2 Aug 2016 17:07:49 +0000 (18:07 +0100)
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
common/libc/string.c
include/xtf/libc.h

index b134b6c508e58d96c7a62627ce1deb9a1b79160d..5e139f697e493d919e11e17b8b31b87f4ae6275d 100644 (file)
@@ -1,4 +1,4 @@
-#include <string.h>
+#include <xtf/libc.h>
 
 size_t strlen(const char *str)
 {
@@ -20,6 +20,18 @@ size_t strnlen(const char *str, size_t max)
     return s - str;
 }
 
+int strcmp(const char *_s1, const char *_s2)
+{
+    char s1, s2;
+
+    do {
+        s1 = *_s1++;
+        s2 = *_s2++;
+    } while ( s1 && s1 == s2 );
+
+    return (s1 < s2) ? -1 : (s1 > s2);
+}
+
 void *memset(void *s, int c, size_t n)
 {
     char *p = s;
index cf0aaf41394020318d44fe4f2a64892d2b25f9d1..e699fe27966961d4f0bef4f5e4532aabb844280d 100644 (file)
  */
 
 #define strlen(s)                   __builtin_strlen(s)
+#define strcmp(s1, s2)              __builtin_strcmp(s1, s2)
 #define memset(d, c, n)             __builtin_memset(d, c, n)
 #define memcpy(d, s, n)             __builtin_memcpy(d, s, n)
 #define memcmp(s1, s2, n)           __builtin_memcmp(s1, s2, n)
 
 size_t strlen(const char *str);
 size_t strnlen(const char *str, size_t max);
+int strcmp(const char *s1, const char *s2);
 void *memset(void *s, int c, size_t n);
 void *memcpy(void *dst, const void *src, size_t n);
 int memcmp(const void *s1, const void *s2, size_t n);