aboutsummaryrefslogtreecommitdiffstats
path: root/src/mem/memrchr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/memrchr.c')
-rw-r--r--src/mem/memrchr.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/mem/memrchr.c b/src/mem/memrchr.c
index 1799d27..a6e35af 100644
--- a/src/mem/memrchr.c
+++ b/src/mem/memrchr.c
@@ -6,4 +6,15 @@
#include <mem.h>
-extern inline void *calt_memrchr(void const *ptr, unsigned char value, size_t count);
+void *calt_memrchr(void const *ptr, unsigned char value, size_t count) {
+ unsigned char const *p = ptr;
+ p = p + count;
+
+ while (count > 0) {
+ if (*(--p) == value) {
+ return (void *)p;
+ }
+ }
+
+ return NULL;
+}