Rename memcpy() to memcpy_far() and add regular memcpy() code.
authorKevin O'Connor <kevin@koconnor.net>
Sat, 30 Aug 2008 01:14:36 +0000 (21:14 -0400)
committerKevin O'Connor <kevin@koconnor.net>
Sat, 30 Aug 2008 01:14:36 +0000 (21:14 -0400)
src/boot.c
src/pcibios.c
src/system.c
src/util.c
src/util.h

index 1b5c3d8a9dcbe6bf8ef03857d47c2ae1b14cdab9..5beca25066adbff34ecb9592437da38aa8308f7e 100644 (file)
@@ -38,7 +38,7 @@ printf_bootdev(u16 bootdev)
     if (type == 4 && far_description != 0) {
         char description[33];
         /* first 32 bytes are significant */
-        memcpy(MAKE_FARPTR(GET_SEG(SS), &description), far_description, 32);
+        memcpy_far(MAKE_FARPTR(GET_SEG(SS), &description), far_description, 32);
         /* terminate string */
         description[32] = 0;
         printf(" [%.s]", description);
index 3823c2ebedbb11c1062981ce13cccb065ce1e428..4e29a43129741fecc9d08afdb0d348f8cbaf4c4e 100644 (file)
@@ -132,7 +132,7 @@ handle_1ab10e(struct bregs *regs)
     u16 destseg = GET_FARVAR(regs->es, *(u16*)(regs->di+4));
 
     // Memcpy pir table slots to dest buffer.
-    memcpy(MAKE_FARPTR(destseg, d), pirtable_far, pirsize);
+    memcpy_far(MAKE_FARPTR(destseg, d), pirtable_far, pirsize);
 
     // XXX - bochs bios sets bx to (1 << 9) | (1 << 11)
     regs->bx = GET_FARPTR(pirtable_far->exclusive_irqs);
index 2e19efa626549d134084c9eb41d4944153be14fb..04cd6acb75e624a1e9deedafbe30360c20f17365 100644 (file)
@@ -276,7 +276,7 @@ handle_15e820(struct bregs *regs)
     }
 
     struct e820entry *e = &((struct e820entry *)GET_EBDA(e820_loc))[regs->bx];
-    memcpy(MAKE_FARPTR(regs->es, regs->di), e, sizeof(*e));
+    memcpy_far(MAKE_FARPTR(regs->es, regs->di), e, sizeof(*e));
     if (regs->bx == count-1)
         regs->ebx = 0;
     else
index 60d9d09003fb59c36020b534eba8ebcde5f1d5a7..b85a1a52b695ec9ed20bf844c539f29f933d8c14 100644 (file)
@@ -53,7 +53,7 @@ memset(void *s, int c, size_t n)
 }
 
 void *
-memcpy(void *far_d1, const void *far_s1, size_t len)
+memcpy_far(void *far_d1, const void *far_s1, size_t len)
 {
     u8 *d = far_d1;
     u8 *s = (u8*)far_s1;
@@ -67,6 +67,15 @@ memcpy(void *far_d1, const void *far_s1, size_t len)
     return far_d1;
 }
 
+void *
+memcpy(void *d1, const void *s1, size_t len)
+{
+    u8 *d = (u8*)d1, *s = (u8*)s1;
+    while (len--)
+        *d++ = *s++;
+    return d1;
+}
+
 void *
 memmove(void *d, const void *s, size_t len)
 {
index a9642b9ce839b39efeef410b6e2340970601e4ce..bff1fc204b0ff749f68e6143199710ae5269309e 100644 (file)
@@ -60,6 +60,7 @@ static inline void cpuid(u32 index, u32 *eax, u32 *ebx, u32 *ecx, u32 *edx)
 
 void *memset(void *s, int c, size_t n);
 void *memcpy(void *d1, const void *s1, size_t len);
+void *memcpy_far(void *far_d1, const void *far_s1, size_t len);
 void *memmove(void *d, const void *s, size_t len);
 
 struct bregs;