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);
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);
}
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
}
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;
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)
{
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;