aboutsummaryrefslogtreecommitdiff
path: root/strings.c
diff options
context:
space:
mode:
authorWojtek Kosior <kwojtus@protonmail.com>2019-12-31 11:09:57 +0100
committerWojtek Kosior <kwojtus@protonmail.com>2019-12-31 11:09:57 +0100
commitfa42eccf0b9c6161be0ad9e3c1b7f6489add2b2c (patch)
treec2431f932a98e315aaf14c9104764091cbe8c319 /strings.c
parent455408524009bf6f62867b00bd5d6580bf79f3f0 (diff)
downloadrpi-MMU-example-fa42eccf0b9c6161be0ad9e3c1b7f6489add2b2c.tar.gz
rpi-MMU-example-fa42eccf0b9c6161be0ad9e3c1b7f6489add2b2c.zip
move memset() implementation to strings.c
Diffstat (limited to 'strings.c')
-rw-r--r--strings.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/strings.c b/strings.c
index 94cb6ac..b518388 100644
--- a/strings.c
+++ b/strings.c
@@ -91,3 +91,18 @@ void memcpy(void *dst, void *src, size_t nbytes)
for (iter *= 4; iter < nbytes; iter++)
((volatile uint8_t*) dst)[iter] = ((uint8_t*) src)[iter];
}
+
+// keep in mind memset is also needed for array initialization, like
+// uint32_t buf[16] = {0};
+// gcc compiles this to memset call
+
+void *memset(void *s, int c, size_t n)
+{
+ volatile char *mem = s;
+
+ for (size_t i = 0; i < n; i++)
+ mem[i] = c;
+
+ return s;
+}
+