]> rtime.felk.cvut.cz Git - jailhouse.git/commitdiff
inmates: Add strlen and strncmp to library
authorJan Kiszka <jan.kiszka@siemens.com>
Mon, 4 Jan 2016 10:14:45 +0000 (11:14 +0100)
committerJan Kiszka <jan.kiszka@siemens.com>
Fri, 8 Jan 2016 18:34:38 +0000 (19:34 +0100)
Add simplistic but generic implementations of strlen and strncmp to the
inmate library. Both will be used for the command line parser.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
inmates/lib/inmate_common.h
inmates/lib/string.c

index 30d0d396c132b3bb17720bf8d84288b85fea02e8..382b81b6754c931a8db27a9483c6c064f25cffd2 100644 (file)
@@ -40,6 +40,8 @@ void printk(const char *fmt, ...);
 
 void *memset(void *s, int c, unsigned long n);
 void *memcpy(void *d, const void *s, unsigned long n);
+unsigned long strlen(const char *s);
+int strncmp(const char *s1, const char *s2, unsigned long n);
 
 void inmate_main(void);
 
index af80517a4c83abf252933cc47dedb5e86f78f340..a6a3874590278d9820d8ba371b6c0691e7b56b4e 100644 (file)
@@ -20,3 +20,27 @@ void *memset(void *s, int c, unsigned long n)
                *p++ = c;
        return s;
 }
+
+unsigned long strlen(const char *s1)
+{
+       unsigned long len = 0;
+
+       while (*s1++)
+               len++;
+
+       return len;
+}
+
+int strncmp(const char *s1, const char *s2, unsigned long n)
+{
+       int diff;
+
+       while (n-- > 0) {
+               diff = *s1 - *s2;
+               if (diff)
+                       return diff;
+               if (*s1 == 0)
+                       break;
+       }
+       return 0;
+}