diff options
Added Basic Error codes, Tests and de-inliningmain
Error codes needs to be ingrated with the alloc module
Tests now have great coverage in the mem module (>75%).
Signed-off-by: Marc Pervaz Boocha <mboocha@sudomsg.xyz>
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
modified: include/alloc.h
new file: include/err.h
modified: include/mem.h
modified: include/meson.build
modified: readme.md
modified: src/alloc/free.c
modified: src/alloc/malloc.c
new file: src/err/errstr.c
new file: src/err/meson.build
new file: src/err/set_err.c
modified: src/mem/memccpy.c
modified: src/mem/memchr.c
modified: src/mem/memcmp.c
modified: src/mem/memcpy.c
modified: src/mem/memlen.c
modified: src/mem/memmem.c
modified: src/mem/memmove.c
modified: src/mem/memrchr.c
modified: src/mem/memrev.c
modified: src/mem/memset.c
modified: src/mem/memswap.c
modified: src/mem/memzero.c
modified: src/meson.build
new file: test/alloc/memdup.c
modified: test/alloc/meson.build
new file: test/mem/memccpy_nullnull.c
new file: test/mem/memchr.c
new file: test/mem/memchr_notfound.c
new file: test/mem/memcmp_diff.c
new file: test/mem/memcmp_prefix.c
new file: test/mem/memcmp_same.c
new file: test/mem/memcmp_samenull.c
new file: test/mem/memcmp_sing.c
new file: test/mem/memcpy_null_prefix.c
new file: test/mem/memcpy_null_same.c
new file: test/mem/memcpy_nullnull.c
new file: test/mem/memcpy_prefix.c
new file: test/mem/memcpy_same.c
new file: test/mem/memlen.c
new file: test/mem/memlen_overflow.c
new file: test/mem/memmove_backward.c
new file: test/mem/memmove_null_backward.c
new file: test/mem/memmove_null_overlap.c
new file: test/mem/memmove_null_prefix.c
new file: test/mem/memmove_null_same.c
new file: test/mem/memmove_null_sing.c
new file: test/mem/memmove_nullnull.c
new file: test/mem/memmove_overlap.c
new file: test/mem/memmove_prefix.c
new file: test/mem/memmove_same.c
new file: test/mem/memmove_sing.c
new file: test/mem/memrchr.c
new file: test/mem/memrchr_notfound.c
new file: test/mem/memrev.c
new file: test/mem/memset_null.c
new file: test/mem/memset_nullnull.c
new file: test/mem/memswap.c
new file: test/mem/memswap_null.c
new file: test/mem/memswap_same.c
new file: test/mem/memzero_null.c
new file: test/mem/memzero_nullnull.c
modified: test/mem/meson.build
modified: test/meson.build
Diffstat (limited to 'src/mem/memcpy.c')
-rw-r--r-- | src/mem/memcpy.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/mem/memcpy.c b/src/mem/memcpy.c index 7880c53..c9fbfab 100644 --- a/src/mem/memcpy.c +++ b/src/mem/memcpy.c @@ -5,10 +5,21 @@ */ #include <mem.h> +void *calt_memcpy(void *restrict dest, const void *restrict src, + size_t count) { + unsigned char *d = dest; + unsigned char const *s = src; -extern inline void *calt_memcpy(void *restrict dest, void const *restrict src, - size_t count); + while (count-- > 0) { + *d++ = *s++; + } + return dest; +} + + +void *calt_memcpy_null(void *restrict dest, void const *restrict src, + size_t count) { + return dest ? calt_memcpy(dest, src, count) : NULL; +} -extern inline void *calt_memcpy_null(void *restrict dest, void const *restrict src, - size_t count); |