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/system.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/system.c')
-rw-r--r-- | src/system.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/system.c b/src/system.c index 5f39a985..798dc25c 100644 --- a/src/system.c +++ b/src/system.c @@ -279,9 +279,9 @@ handle_15e820(struct bregs *regs) return; } - memcpy_fl(MAKE_FLATPTR(regs->es, regs->di) - , MAKE_FLATPTR(SEG_BIOS, &e820_list[regs->bx]) - , sizeof(e820_list[0])); + memcpy_far(regs->es, (void*)(regs->di+0) + , get_global_seg(), &e820_list[regs->bx] + , sizeof(e820_list[0])); if (regs->bx == count-1) regs->ebx = 0; else |