[syslinux:master] mem: Calling int15 for 0x8800
syslinux-bot for Erwan Velu
erwan at enovance.com
Thu Jan 23 08:15:06 PST 2014
Commit-ID: 27135b2363603b35425798c983f4041329233cca
Gitweb: http://www.syslinux.org/commit/27135b2363603b35425798c983f4041329233cca
Author: Erwan Velu <erwan at enovance.com>
AuthorDate: Thu, 23 Jan 2014 00:05:21 +0100
Committer: Erwan Velu <erwan at enovance.com>
CommitDate: Thu, 23 Jan 2014 00:05:21 +0100
mem: Calling int15 for 0x8800
On some code, the intcall 0x15 was missing when playing with 0x8800
making code useless.
That's not a big deal since e820 or e801 shall be provided by host but
anyway, let's fix it ;)
---
com32/mboot/mem.c | 1 +
core/bios.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/com32/mboot/mem.c b/com32/mboot/mem.c
index e42b70b..d5c559a 100644
--- a/com32/mboot/mem.c
+++ b/com32/mboot/mem.c
@@ -150,6 +150,7 @@ static int mboot_scan_memory(struct AddrRangeDesc **ardp, uint32_t * dosmem)
/* Finally try INT 15h AH=88h */
memset(&ireg, 0, sizeof ireg);
ireg.eax.w[0] = 0x8800;
+ __intcall(0x15, &ireg, &oreg);
if (!(oreg.eflags.l & EFLAGS_CF) && oreg.eax.w[0]) {
ard[1].size = 20;
ard[1].BaseAddr = 1 << 20;
diff --git a/core/bios.c b/core/bios.c
index 1dfbbe9..7ad10bb 100644
--- a/core/bios.c
+++ b/core/bios.c
@@ -633,6 +633,7 @@ static int bios_scan_memory(scan_memory_callback_t callback, void *data)
/* Finally try INT 15h AH=88h */
memset(&ireg, 0, sizeof ireg);
ireg.eax.w[0] = 0x8800;
+ __intcall(0x15, &ireg, &oreg);
if (!(oreg.eflags.l & EFLAGS_CF) && oreg.eax.w[0]) {
rv = callback(data, (addr_t) 1 << 20, oreg.ecx.w[0] << 10, SMT_FREE);
if (rv)
More information about the Syslinux-commits
mailing list