[SDK:CRT] Implement memcpy() and wmemcpy()

This commit is contained in:
2024-08-08 08:24:20 -04:00
parent 8ff7a75afc
commit e48262d4d7
4 changed files with 68 additions and 2 deletions

View File

@@ -51,3 +51,35 @@ memcpy (
return ptr;
}
void *
memmove (
void *dest,
const void *src,
size_t count
)
{
void *ptr = dest;
/* Check for overlap */
if (src > dest || ((char *)src + count) < (char *)dest) {
/* Low-to-high copy, like memcpy() */
while (count--) {
*(char *)dest = *(char *)src;
dest = (char *)dest + 1;
src = (char *)src + 1;
}
} else {
/* High-to-low copy */
dest = (char *)dest + count - 1;
src = (char *)src + count - 1;
while (count--) {
*(char *)dest = *(char *)src;
dest = (char *)dest - 1;
src = (char *)src - 1;
}
}
return ptr;
}