diff options
author | Wojtek Kosior <kwojtus@protonmail.com> | 2019-12-31 11:09:57 +0100 |
---|---|---|
committer | Wojtek Kosior <kwojtus@protonmail.com> | 2019-12-31 11:09:57 +0100 |
commit | fa42eccf0b9c6161be0ad9e3c1b7f6489add2b2c (patch) | |
tree | c2431f932a98e315aaf14c9104764091cbe8c319 | |
parent | 455408524009bf6f62867b00bd5d6580bf79f3f0 (diff) | |
download | rpi-MMU-example-fa42eccf0b9c6161be0ad9e3c1b7f6489add2b2c.tar.gz rpi-MMU-example-fa42eccf0b9c6161be0ad9e3c1b7f6489add2b2c.zip |
move memset() implementation to strings.c
-rw-r--r-- | demo_functionality.c | 11 | ||||
-rw-r--r-- | strings.c | 15 | ||||
-rw-r--r-- | strings.h | 2 |
3 files changed, 17 insertions, 11 deletions
diff --git a/demo_functionality.c b/demo_functionality.c index 051ffd6..7a9139c 100644 --- a/demo_functionality.c +++ b/demo_functionality.c @@ -110,17 +110,6 @@ void demo_setup_PL0(void) puts("copied PL0 code to it's section"); } -// needed for array initialization in demo_go_unprivileged() -void *memset(void *s, int c, size_t n) -{ - char *mem = s; - - for (size_t i = 0; i < n; i++) - mem[i] = c; - - return s; -} - void demo_go_unprivileged(void) { uint32_t PL0_regs[14] = {0}; @@ -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; +} + @@ -26,4 +26,6 @@ size_t strlen(char string[]); void memcpy(void *dst, void *src, size_t nbytes); +void *memset(void *s, int c, size_t n); + #endif // STRINGS_H |