summaryrefslogtreecommitdiff
path: root/libiberty/memcmp.c
diff options
context:
space:
mode:
authorcamthesaxman <camthesaxman@users.noreply.github.com>2020-01-29 18:32:13 -0600
committercamthesaxman <camthesaxman@users.noreply.github.com>2020-01-29 18:32:13 -0600
commit9821a6af983f07bf146b19ca9993e37b88339bf2 (patch)
tree9ea2b3e93aa2695e5c0793a4e2643077d3a2c6c2 /libiberty/memcmp.c
parentcdc6e2c50f96119bdc4c1205ff5901ca82ec8357 (diff)
add some more files
Diffstat (limited to 'libiberty/memcmp.c')
-rwxr-xr-xlibiberty/memcmp.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/libiberty/memcmp.c b/libiberty/memcmp.c
new file mode 100755
index 0000000..127ae0c
--- /dev/null
+++ b/libiberty/memcmp.c
@@ -0,0 +1,38 @@
+/* memcmp -- compare two memory regions.
+ This function is in the public domain. */
+
+/*
+NAME
+ memcmp -- compare two memory regions
+
+SYNOPSIS
+ int memcmp (const void *from, const void *to, size_t count)
+
+DESCRIPTION
+ Compare two memory regions and return less than,
+ equal to, or greater than zero, according to lexicographical
+ ordering of the compared regions.
+*/
+
+#include <ansidecl.h>
+#ifdef __STDC__
+#include <stddef.h>
+#else
+#define size_t unsigned long
+#endif
+
+int
+DEFUN(memcmp, (str1, str2, count),
+ const PTR str1 AND const PTR str2 AND size_t count)
+{
+ register unsigned char *s1 = (unsigned char*)str1;
+ register unsigned char *s2 = (unsigned char*)str2;
+
+ while (count-- > 0)
+ {
+ if (*s1++ != *s2++)
+ return s1[-1] < s2[-1] ? -1 : 1;
+ }
+ return 0;
+}
+