aboutsummaryrefslogtreecommitdiffstats
path: root/src/pcibios.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2009-01-19 19:25:21 -0500
committerKevin O'Connor <kevin@koconnor.net>2009-01-19 19:25:21 -0500
commit8b267cb8a739576cd08c82d0ee75d6b14407c09c (patch)
tree3ce86bab73a41627f56d4c658b79fc10a891509b /src/pcibios.c
parent79f4118e50ce256994b75b99811ceb0e6a812a13 (diff)
downloadseabios-8b267cb8a739576cd08c82d0ee75d6b14407c09c.tar.gz
Implement memcpy_far and checksum_far, and replace _fl variants.
The "flat" mode variants work in real mode, but will not work in protected mode. So, replace with versions that take explicit segments.
Diffstat (limited to 'src/pcibios.c')
-rw-r--r--src/pcibios.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/pcibios.c b/src/pcibios.c
index 950871cc..cfcb25e9 100644
--- a/src/pcibios.c
+++ b/src/pcibios.c
@@ -144,13 +144,13 @@ handle_1ab10e(struct bregs *regs)
}
// Get dest buffer.
- u16 d = (GET_FARVAR(regs->es, *(u16*)(regs->di+2)) + 0);
- u16 destseg = GET_FARVAR(regs->es, *(u16*)(regs->di+4));
+ void *d_far = (void*)(GET_FARVAR(regs->es, *(u16*)(regs->di+2)) + 0);
+ u16 d_seg = GET_FARVAR(regs->es, *(u16*)(regs->di+4));
// Memcpy pir table slots to dest buffer.
- memcpy_fl(MAKE_FLATPTR(destseg, d)
- , MAKE_FLATPTR(SEG_BIOS, pirtable_g->slots)
- , pirsize);
+ memcpy_far(d_seg, d_far
+ , get_global_seg(), pirtable_g->slots
+ , pirsize);
// XXX - bochs bios sets bx to (1 << 9) | (1 << 11)
regs->bx = GET_GLOBAL(pirtable_g->exclusive_irqs);