summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Brown2007-01-14 03:24:41 +0100
committerMichael Brown2007-01-14 03:24:41 +0100
commit644f3674e61878f4c0f122c647b57e3a6c22dc15 (patch)
treec664926e0ef9f2a320dbf8deadcd42d1b42bd0e1 /src
parentFill in BufferSize in PXENV_GET_CACHED_INFO (diff)
downloadipxe-644f3674e61878f4c0f122c647b57e3a6c22dc15.tar.gz
ipxe-644f3674e61878f4c0f122c647b57e3a6c22dc15.tar.xz
ipxe-644f3674e61878f4c0f122c647b57e3a6c22dc15.zip
Obsolete for some time
Diffstat (limited to 'src')
-rw-r--r--src/arch/i386/core/realmode_asm.S130
1 files changed, 0 insertions, 130 deletions
diff --git a/src/arch/i386/core/realmode_asm.S b/src/arch/i386/core/realmode_asm.S
deleted file mode 100644
index 867082f53..000000000
--- a/src/arch/i386/core/realmode_asm.S
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Real-mode interface: assembly-language portions.
- *
- * Initial version by Michael Brown <mbrown@fensystems.co.uk>, January 2004.
- */
-
-#include "realmode.h"
-
-#if 1 /* CODE16 */
-
-#define BOCHSBP xchgw %bx,%bx
-
-#define NUM_PUSHA_REGS (8)
-#define NUM_SEG_REGS (6)
-
- .text
- .arch i386
- .section ".text16.nocompress", "ax", @progbits
- .code16
-
- .equ CR0_PE,1
-
-#ifdef GAS291
-#define DATA32 data32;
-#define ADDR32 addr32;
-#define LJMPI(x) ljmp x
-#else
-#define DATA32 data32
-#define ADDR32 addr32
-/* newer GAS295 require #define LJMPI(x) ljmp *x */
-#define LJMPI(x) ljmp x
-#endif
-
-#ifdef PXE_EXPORT
-/****************************************************************************
- * PXE CALLBACK INTERFACE
- *
- * Prepend this to rm_callback_interface to create a real-mode PXE
- * callback interface.
- ****************************************************************************
- */
- .section ".text16", "ax", @progbits
- .globl pxe_callback_interface
- .code16
-pxe_callback_interface:
-
-/* Macro to calculate offset of labels within code segment in
- * installed copy of code.
- */
-#define INSTALLED(x) ( (x) - pxe_callback_interface )
-
-/****************************************************************************
- * PXE entry points (!PXE and PXENV+ APIs)
- ****************************************************************************
- */
- /* in_call mechanism for !PXE API calls */
- .globl _pxe_in_call_far
-_pxe_in_call_far:
- /* Prepend "PXE API call" and "API version 0x201" to stack */
- pushl $0x201
- jmp 1f
- /* in_call mechanism for PXENV+ API calls */
- .globl _pxenv_in_call_far
-_pxenv_in_call_far:
- /* Prepend "PXE API call" and "API version 0x200" to stack */
- pushl $0x200
-1: pushl $EB_OPCODE_PXE
- /* Perform real-mode in_call */
- call pxe_rm_in_call
- /* Return */
- addw $8, %sp
- lret
-
-/****************************************************************************
- * PXE installation check (INT 1A) code
- ****************************************************************************
- */
- .globl _pxe_intercept_int1a
-_pxe_intercept_int1a:
- pushfw
- cmpw $0x5650, %ax
- jne 2f
-1: /* INT 1A,5650 - Intercept */
- popfw
- /* Set up return values according to PXE spec: */
- movw $0x564e, %ax /* AX := 564Eh (VN) */
- pushw %cs:INSTALLED(_pxe_pxenv_segment)
- popw %es /* ES:BX := &(PXENV+ structure) */
- movw %cs:INSTALLED(_pxe_pxenv_offset), %bx
- clc /* CF is cleared */
- lret $2 /* 'iret' without reloading flags */
-2: /* INT 1A,other - Do not intercept */
- popfw
- ljmp %cs:*INSTALLED(_pxe_intercepted_int1a)
-
- .globl _pxe_intercepted_int1a
-_pxe_intercepted_int1a: .word 0,0
- .globl _pxe_pxenv_location
-_pxe_pxenv_location:
-_pxe_pxenv_offset: .word 0
-_pxe_pxenv_segment: .word 0
-
-pxe_rm_in_call:
-pxe_attach_rm:
- /* rm_callback_interface must be appended here */
-
-pxe_callback_interface_end:
-
- .globl _pxe_callback_interface_size
- .equ _pxe_callback_interface_size, pxe_callback_interface_end - pxe_callback_interface
- .globl pxe_callback_interface_size
-pxe_callback_interface_size:
- .word _pxe_callback_interface_size
-
-#else /* PXE_EXPORT */
-
-/* Define symbols used by the linker scripts, to prevent link errors */
- .globl _pxe_callback_interface_size
- .equ _pxe_callback_interface_size, 0
-
-#endif /* PXE_EXPORT */
-
-#else /* CODE16 */
-
-/* Define symbols used by the linker scripts, to prevent link errors */
- .globl _rm_callback_interface_size
- .equ _rm_callback_interface_size, 0
- .globl _pxe_callback_interface_size
- .equ _pxe_callback_interface_size, 0
-
-#endif /* CODE16 */