aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Grall <julien.grall@linaro.org>2013-08-28 15:47:20 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-09-10 11:44:01 +0100
commit6bc02f74af03e65b5bb62450c1be43ea0f5d2989 (patch)
treed98af89cefa049b99ff4af2c0e276a4c976de16a
parente6fb0c4b80b129ba2bf946de2db170ec99c7b114 (diff)
downloadxen-6bc02f74af03e65b5bb62450c1be43ea0f5d2989.tar.gz
xen-6bc02f74af03e65b5bb62450c1be43ea0f5d2989.tar.bz2
xen-6bc02f74af03e65b5bb62450c1be43ea0f5d2989.zip
xen: Add new string function
Add strcasecmp. The code is copied from Linux. Signed-off-by: Julien Grall <julien.grall@linaro.org> Acked-by: Ian Campbell <ian.campbell@citrix.com>
-rw-r--r--xen/common/string.c15
-rw-r--r--xen/include/xen/string.h3
2 files changed, 18 insertions, 0 deletions
diff --git a/xen/common/string.c b/xen/common/string.c
index db9d9d5199..9a5a4ba5e8 100644
--- a/xen/common/string.c
+++ b/xen/common/string.c
@@ -41,6 +41,21 @@ int strnicmp(const char *s1, const char *s2, size_t len)
}
#endif
+#ifndef __HAVE_ARCH_STRCASECMP
+int strcasecmp(const char *s1, const char *s2)
+{
+ int c1, c2;
+
+ do
+ {
+ c1 = tolower(*s1++);
+ c2 = tolower(*s2++);
+ } while ( c1 == c2 && c1 != 0 );
+
+ return c1 - c2;
+}
+#endif
+
#ifndef __HAVE_ARCH_STRLCPY
/**
* strlcpy - Copy a %NUL terminated string into a sized buffer
diff --git a/xen/include/xen/string.h b/xen/include/xen/string.h
index f26b9949b2..f35934e287 100644
--- a/xen/include/xen/string.h
+++ b/xen/include/xen/string.h
@@ -43,6 +43,9 @@ extern int strncmp(const char *,const char *,__kernel_size_t);
#ifndef __HAVE_ARCH_STRNICMP
extern int strnicmp(const char *, const char *, __kernel_size_t);
#endif
+#ifndef __HAVE_ARCH_STRCASECMP
+extern int strcasecmp(const char *, const char *);
+#endif
#ifndef __HAVE_ARCH_STRCHR
extern char * strchr(const char *,int);
#endif