diff options
| author | Michael Brown | 2014-04-28 22:11:04 +0200 |
|---|---|---|
| committer | Michael Brown | 2014-04-29 19:24:10 +0200 |
| commit | aaf276ccd4819de791d7a1295f26f36f29fb3cb6 (patch) | |
| tree | f8ed740bb762eaa8a0f6be557ff5e830cbf5e4a6 /src/arch/i386/include | |
| parent | [librm] Allow interrupts in protected mode (diff) | |
| download | ipxe-aaf276ccd4819de791d7a1295f26f36f29fb3cb6.tar.gz ipxe-aaf276ccd4819de791d7a1295f26f36f29fb3cb6.tar.xz ipxe-aaf276ccd4819de791d7a1295f26f36f29fb3cb6.zip | |
[comboot] Use built-in interrupt reflector
We now have the ability to handle interrupts while in protected mode,
and so no longer need to set up a dedicated interrupt descriptor table
while running COM32 executables.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/i386/include')
| -rw-r--r-- | src/arch/i386/include/comboot.h | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/src/arch/i386/include/comboot.h b/src/arch/i386/include/comboot.h index b34341398..2d2f04fe1 100644 --- a/src/arch/i386/include/comboot.h +++ b/src/arch/i386/include/comboot.h @@ -13,50 +13,6 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include <setjmp.h> #include <ipxe/in.h> -/** Descriptor in a 32-bit IDT */ -struct idt_descriptor { - uint16_t offset_low; - uint16_t selector; - uint16_t flags; - uint16_t offset_high; -} __attribute__ (( packed )); - -/** Operand for the LIDT instruction */ -struct idt_register { - uint16_t limit; - uint32_t base; -} __attribute__ (( packed )); - -/** Entry in the interrupt jump buffer */ -struct ijb_entry { - uint8_t pusha_instruction; - uint8_t mov_instruction; - uint8_t mov_value; - uint8_t jump_instruction; - uint32_t jump_destination; -} __attribute__ (( packed )); - -/** The x86 opcode for "pushal" */ -#define IJB_PUSHA 0x60 - -/** The x86 opcode for "movb $imm8,%al" */ -#define IJB_MOV_AL_IMM8 0xB0 - -/** The x86 opcode for "jmp rel32" */ -#define IJB_JMP_REL32 0xE9 - -/** Flags that specify a 32-bit interrupt gate with DPL=0 */ -#define IDT_INTERRUPT_GATE_FLAGS 0x8E00 - -/** Address of COM32 interrupt descriptor table */ -#define COM32_IDT 0x100000 - -/** Number of entries in a fully populated IDT */ -#define COM32_NUM_IDT_ENTRIES 256 - -/** Address of COM32 interrupt jump buffer */ -#define COM32_IJB 0x100800 - /** Segment used for COMBOOT PSP and image */ #define COMBOOT_PSP_SEG 0x07C0 @@ -153,7 +109,6 @@ extern void unhook_comboot_interrupts ( ); extern void com32_intcall_wrapper ( ); extern void com32_farcall_wrapper ( ); extern void com32_cfarcall_wrapper ( ); -extern void com32_irq_wrapper ( ); /* Resolve a hostname to an (IPv4) address */ extern int comboot_resolv ( const char *name, struct in_addr *address ); |
