/* ---------------------------------------------------------------------------- * $Id$ * ---------------------------------------------------------------------------- * Public Domain C Library - http://pdclib.sourceforge.net * This code is Public Domain. Use, modify, and redistribute at will. * --------------------------------------------------------------------------*/ #include <__size_t.h> void * memcpy( void * restrict dest, const void * restrict src, size_t n ) { const char * src_p = (const char *) src; char * dest_p = (char *) dest; while ( n-- ) { *dest_p++ = *src_p++; } return dest; } /* TODO: This is code from PDPC, optimizing for word access. void *memcpy(void *s1, const void *s2, size_t n) { register unsigned int *p = (unsigned int *)s1; register unsigned int *cs2 = (unsigned int *)s2; register unsigned int *endi; endi = (unsigned int *)((char *)p + (n & ~0x03)); while (p != endi) { *p++ = *cs2++; } switch (n & 0x03) { case 0: break; case 1: *(char *)p = *(char *)cs2; break; case 2: *(char *)p = *(char *)cs2; p = (unsigned int *)((char *)p + 1); cs2 = (unsigned int *)((char *)cs2 + 1); *(char *)p = *(char *)cs2; break; case 3: *(char *)p = *(char *)cs2; p = (unsigned int *)((char *)p + 1); cs2 = (unsigned int *)((char *)cs2 + 1); *(char *)p = *(char *)cs2; p = (unsigned int *)((char *)p + 1); cs2 = (unsigned int *)((char *)cs2 + 1); *(char *)p = *(char *)cs2; break; } return (s1); } */