From ec3c37d1d40d7b288584c234f4c3e7a600f2353d Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Thu, 3 Apr 2025 12:30:34 -0400 Subject: new libs --- lib/memcpy.c | 46 +++++++--------------------------------------- 1 file changed, 7 insertions(+), 39 deletions(-) (limited to 'lib/memcpy.c') diff --git a/lib/memcpy.c b/lib/memcpy.c index 020cc68..ec56537 100644 --- a/lib/memcpy.c +++ b/lib/memcpy.c @@ -1,42 +1,10 @@ -/** -** @file memcpy.c -** -** @author Numerous CSCI-452 classes -** -** @brief C implementations of common library functions -*/ +#include -#ifndef MEMCPY_SRC_INC -#define MEMCPY_SRC_INC - -#include - -#include - -/** -** memcpy(dst,src,len) -** -** Copy a block from one place to another -** -** May not correctly deal with overlapping buffers -** -** @param dst Destination buffer -** @param src Source buffer -** @param len Buffer size (in bytes) -*/ -void memcpy(void *dst, register const void *src, register uint32_t len) +void *memcpy(void *restrict dest, const void *restrict src, size_t n) { - register uint8_t *dest = dst; - register const uint8_t *source = src; - - /* - ** We could speed this up by unrolling it and copying - ** words at a time (instead of bytes). - */ - - while (len--) { - *dest++ = *source++; - } + char *d = dest; + const char *s = src; + for (; n; n--) + *d++ = *s++; + return dest; } - -#endif -- cgit v1.2.3-freya