coco2: fix build issues, on platform_ and adding memmove
authorAlan Cox <alan@linux.intel.com>
Sun, 1 Jul 2018 19:52:00 +0000 (20:52 +0100)
committerAlan Cox <alan@linux.intel.com>
Sun, 1 Jul 2018 19:52:00 +0000 (20:52 +0100)
Kernel/platform-coco2/libc.c
Kernel/platform-coco2/tricks.s

index a4cb9dd..1e0b17c 100644 (file)
@@ -1,13 +1,5 @@
 #include "cpu.h"
 
-void *memcpy(void *d, const void *s, size_t sz)
-{
-  unsigned char *dp = d;
-  const unsigned char *sp = s;
-  while(sz--)
-    *dp++=*sp++;
-  return d;
-}
 
 void *memset(void *d, int c, size_t sz)
 {
@@ -23,3 +15,24 @@ size_t strlen(const char *p)
   while(*e++);
   return e-p-1;
 }
+
+void *memmove(void *d, const void *s, size_t sz)
+{
+  unsigned char *dp = d;
+  const unsigned char *sp = s;
+  if (sp >= dp) {
+    while(sz--)
+      *dp++=*sp++;
+  } else {
+    dp += sz;
+    sp += sz;
+    while(sz--)
+      *--dp=*--sp;
+  }
+  return d;
+}
+
+void *memcpy(void *d, const void *s, size_t sz)
+{
+  return memmove(d,s,sz);
+}
index 379ea38..90fd208 100644 (file)
@@ -19,8 +19,8 @@
        .globl _platform_idle
 
        # exported
-        .globl _switchout
-        .globl _platform_switchin
+        .globl _platform_switchout
+        .globl _switchin
         .globl _dofork
        .globl _ramtop