Merge remote-tracking branch 'origin/master' into isa/arm64
[lunaix-os.git] / lunaix-os / libs / klibc / string / mem.c
old mode 100755 (executable)
new mode 100644 (file)
index 0b93a7d..3e0ba08
@@ -1,50 +1,49 @@
-#include <stdint.h>
 #include <klibc/string.h>
+#include <lunaix/types.h>
 
-void*
-memcpy(void* dest, const void* src, size_t num)
+void* _weak
+memcpy(void* dest, const void* src, unsigned long num)
 {
-    uint8_t* dest_ptr = (uint8_t*)dest;
-    const uint8_t* src_ptr = (const uint8_t*)src;
     for (size_t i = 0; i < num; i++) {
-        *(dest_ptr + i) = *(src_ptr + i);
+        ((u8_t*)dest)[i] = ((u8_t*)src)[i];
     }
+
     return dest;
 }
 
-void*
-memmove(void* dest, const void* src, size_t num)
+void* _weak
+memmove(void* dest, const void* src, unsigned long 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++) {
+        for (unsigned long i = 0; i < num; i++) {
             *(dest_ptr + i) = *(src_ptr + i);
         }
     } else {
-        for (size_t i = num; i != 0; i--) {
+        for (unsigned long i = num; i != 0; i--) {
             *(dest_ptr + i - 1) = *(src_ptr + i - 1);
         }
     }
     return dest;
 }
 
-void*
-memset(void* ptr, int value, size_t num)
+void* _weak
+memset(void* ptr, int value, unsigned long num)
 {
-    uint8_t* c_ptr = (uint8_t*)ptr;
     for (size_t i = 0; i < num; i++) {
-        *(c_ptr + i) = (uint8_t)value;
+        ((u8_t*)ptr)[i] = 0;
     }
+
     return ptr;
 }
 
-int
-memcmp(const void* ptr1, const void* ptr2, size_t num)
+int _weak
+memcmp(const void* ptr1, const void* ptr2, unsigned long num)
 {
-    uint8_t* p1 = (uint8_t*)ptr1;
-    uint8_t* p2 = (uint8_t*)ptr2;
-    for (size_t i = 0; i < num; i++) {
+    u8_t* p1 = (u8_t*)ptr1;
+    u8_t* p2 = (u8_t*)ptr2;
+    for (unsigned long i = 0; i < num; i++) {
         int diff = *(p1 + i) - *(p2 + i);
         if (diff != 0) {
             return diff;