diff options
author | Freya Murphy <freya@freyacat.org> | 2024-02-03 14:36:26 -0500 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2024-02-03 14:41:52 -0500 |
commit | 8e74123683072deed9ecd29e76037a16a47e3295 (patch) | |
tree | 2a4d6394688ed23b9360ff87c8d9861ab40da01d /src/lib.c | |
parent | refactor exception panic (diff) | |
download | corn-8e74123683072deed9ecd29e76037a16a47e3295.tar.gz corn-8e74123683072deed9ecd29e76037a16a47e3295.tar.bz2 corn-8e74123683072deed9ecd29e76037a16a47e3295.zip |
alloc on write paging, -O3 compile works, 'volatile' is the story of my life
Diffstat (limited to '')
-rw-r--r-- | src/lib.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -15,6 +15,13 @@ void *memcpy(void *restrict dest, const void *restrict src, unsigned long n) { return dest; } +volatile void *memcpyv(volatile void *dest, const volatile void *src, unsigned long n) { + volatile char *d = dest; + const volatile char *s = src; + for (; n; n--) *d++ = *s++; + return dest; +} + void *memmove(void *dest, const void *src, unsigned long n) { char *d = dest; const char *s = src; @@ -38,6 +45,14 @@ void *memset(void *restrict dest, int c, unsigned long n) { return dest; } +volatile void *memsetv(volatile void *dest, int c, unsigned long n) { + volatile unsigned char *d = dest; + for (; n; n--) { + *d++ = c; + }; + return dest; +} + int strncmp(const char *restrict lhs, const char *restrict rhs, unsigned long n) { const unsigned char *l=(void *)lhs, *r=(void *)rhs; if (!n--) return 0; |