[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