X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/1375eb51603466b723ab7dd1ca4194ee5d662f75..6942ebae59c3904674dce6b67cd07c43a3bbe00d:/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 old mode 100755 new mode 100644 index 0856358..3e0ba08 --- a/lunaix-os/libs/klibc/string/mem.c +++ b/lunaix-os/libs/klibc/string/mem.c @@ -1,20 +1,17 @@ #include #include -void* +void* _weak memcpy(void* dest, const void* src, unsigned long num) { - if (!num) - return dest; - asm volatile("movl %1, %%edi\n" - "rep movsb\n" ::"S"(src), - "r"(dest), - "c"(num) - : "edi", "memory"); + for (size_t i = 0; i < num; i++) { + ((u8_t*)dest)[i] = ((u8_t*)src)[i]; + } + return dest; } -void* +void* _weak memmove(void* dest, const void* src, unsigned long num) { u8_t* dest_ptr = (u8_t*)dest; @@ -31,18 +28,17 @@ memmove(void* dest, const void* src, unsigned long num) return dest; } -void* +void* _weak memset(void* ptr, int value, unsigned long num) { - asm volatile("movl %1, %%edi\n" - "rep stosb\n" ::"c"(num), - "r"(ptr), - "a"(value) - : "edi", "memory"); + for (size_t i = 0; i < num; i++) { + ((u8_t*)ptr)[i] = 0; + } + return ptr; } -int +int _weak memcmp(const void* ptr1, const void* ptr2, unsigned long num) { u8_t* p1 = (u8_t*)ptr1;