From 1bb9496c481924e00d84aaaae4ff1d24d9276fef Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Thu, 12 Jul 2018 12:14:47 -0400 Subject: [PATCH] ia16-elf-gcc: eliminate _EnableA20 and _DisableA20 wrappers. --- kernel/init-mod.h | 4 ++-- kernel/kernel.asm | 16 ---------------- kernel/kernel.ld | 2 ++ 3 files changed, 4 insertions(+), 18 deletions(-) diff --git a/kernel/init-mod.h b/kernel/init-mod.h index 24f590f..16739b9 100644 --- a/kernel/init-mod.h +++ b/kernel/init-mod.h @@ -327,8 +327,8 @@ extern struct RelocationTable DOSFAR ASM _HMARelocationTableEnd[]; extern void FAR *DOSFAR ASM XMSDriverAddress; #ifdef __GNUC__ -extern VOID _EnableA20(VOID); -extern VOID _DisableA20(VOID); +extern VOID ASMPASCAL _EnableA20(VOID) FAR; +extern VOID ASMPASCAL _DisableA20(VOID) FAR; #else extern VOID ASMPASCAL FAR _EnableA20(VOID); extern VOID ASMPASCAL FAR _DisableA20(VOID); diff --git a/kernel/kernel.asm b/kernel/kernel.asm index 99f6932..fc47254 100644 --- a/kernel/kernel.asm +++ b/kernel/kernel.asm @@ -276,22 +276,6 @@ cpu_abort: %endif ; XCPU != 86 -%ifdef gcc - global __EnableA20 -__EnableA20: - pop ax - push cs - push ax - jmp DGROUP:_ENABLEA20 - - global __DisableA20 -__DisableA20: - pop ax - push cs - push ax - jmp DGROUP:_DISABLEA20 -%endif - segment INIT_TEXT_END diff --git a/kernel/kernel.ld b/kernel/kernel.ld index 42cbdc7..08e1240 100755 --- a/kernel/kernel.ld +++ b/kernel/kernel.ld @@ -164,6 +164,8 @@ SECTIONS _set_DTA = SET_DTA; _DetectXMSDriver = DETECTXMSDRIVER; _init_call_XMScall = INIT_CALL_XMSCALL; + __EnableA20 = _ENABLEA20; + __DisableA20 = _DISABLEA20; *(.text) *(INIT_TEXT_END) ASSERT(. <= 0x10000,