X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/d251b620d312e819923e55e223e0eb43b72a3bc6..b9f4a7b7475e62dbff22da6dd768222f03889c00:/lunaix-os/libs/klibc/string/mem.c diff --git a/lunaix-os/libs/klibc/string/mem.c b/lunaix-os/libs/klibc/string/mem.c index aeaca00..3183f02 100755 --- a/lunaix-os/libs/klibc/string/mem.c +++ b/lunaix-os/libs/klibc/string/mem.c @@ -1,9 +1,11 @@ #include -#include +#include void* memcpy(void* dest, const void* src, size_t num) { + if (!num) + return dest; asm volatile("movl %1, %%edi\n" "rep movsb\n" ::"S"(src), "r"(dest), @@ -15,8 +17,8 @@ memcpy(void* dest, const void* src, size_t num) void* memmove(void* dest, const void* src, size_t num) { - uint8_t* dest_ptr = (uint8_t*)dest; - const uint8_t* src_ptr = (const uint8_t*)src; + u8_t* dest_ptr = (u8_t*)dest; + const u8_t* src_ptr = (const u8_t*)src; if (dest_ptr < src_ptr) { for (size_t i = 0; i < num; i++) { *(dest_ptr + i) = *(src_ptr + i); @@ -43,8 +45,8 @@ memset(void* ptr, int value, size_t num) int memcmp(const void* ptr1, const void* ptr2, size_t num) { - uint8_t* p1 = (uint8_t*)ptr1; - uint8_t* p2 = (uint8_t*)ptr2; + u8_t* p1 = (u8_t*)ptr1; + u8_t* p2 = (u8_t*)ptr2; for (size_t i = 0; i < num; i++) { int diff = *(p1 + i) - *(p2 + i); if (diff != 0) {