diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2009-01-19 19:25:21 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2009-01-19 19:25:21 -0500 |
commit | 8b267cb8a739576cd08c82d0ee75d6b14407c09c (patch) | |
tree | 3ce86bab73a41627f56d4c658b79fc10a891509b /src/pcibios.c | |
parent | 79f4118e50ce256994b75b99811ceb0e6a812a13 (diff) | |
download | seabios-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.c | 10 |
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); |