summaryrefslogtreecommitdiff
path: root/core/com32.inc
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-05-31 22:24:42 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-05-31 22:24:42 -0700
commit6b2e2742b0ef8b3fb28f008e5f2d63fba8006e68 (patch)
treee6a7f5fefbcc3a562f2baa086342ebac37e11c7d /core/com32.inc
parent0c2f0bd5b51a037f0a112d1b1a282c7d7ccb83ac (diff)
downloadsyslinux-6b2e2742b0ef8b3fb28f008e5f2d63fba8006e68.tar.gz
core: create an ersatz __com32 structure as expected by libcom32
To make it easier to mix libcom32 code into the core, create a __com32 structure to make the system call functions work correctly. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'core/com32.inc')
-rw-r--r--core/com32.inc15
1 files changed, 15 insertions, 0 deletions
diff --git a/core/com32.inc b/core/com32.inc
index 1f141259..3fa2d31e 100644
--- a/core/com32.inc
+++ b/core/com32.inc
@@ -113,3 +113,18 @@ not_com32r:
section .data16
not_com32r_msg db ': not a COM32R image', CR, LF, 0
+
+ ; Ersatz com32 invocation structure, to make libcom32
+ ; code run the same if linked to the core. This is in
+ ; the .data16 segment so HighMemSize can live here.
+ global __com32
+ alignz 4
+__com32:
+ dd 7 ; Argument count
+ dd 0 ; No command line
+ dd core_intcall ; Intcall entry point
+ dd core_xfer_buf ; Bounce buffer address
+ dd 1 << 16 ; 64K bounce buffer
+ dd core_farcall ; Farcall entry point
+ dd core_cfarcall ; Cfarcall entry point
+HighMemSize dd 0 ; End of memory pointer (bytes)