diff options
Diffstat (limited to 'memory/rawmemccmp.c')
-rw-r--r-- | memory/rawmemccmp.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/memory/rawmemccmp.c b/memory/rawmemccmp.c new file mode 100644 index 0000000..a2fe423 --- /dev/null +++ b/memory/rawmemccmp.c @@ -0,0 +1,13 @@ +#include "memory.h" + +int rawmemccmp(void const *buffer1, void const *buffer2, unsigned char value) +{ + unsigned char const *buffer[] = {buffer1, buffer2}; + for (size_t i = 0;; i++) { + if (buffer[0][i] != buffer[1][i]) + return (int)buffer[0][i] - (int)buffer[1][i]; + if (buffer[0][i] == (unsigned char)value || + buffer[1][i] == (unsigned char)value) + return 0; + } +} |