Fix interrupt mixup from previous commit.
* include/grub/i386/pc/int.h (grub_i386_idt): New struct. (grub_realidt): New var. * grub-core/lib/i386/relocator16.S (grub_relocator16_idt): New variable Load idt. * grub-core/lib/i386/relocator.c (grub_relocator16_idt): New declaration. (grub_relocator16_boot): Set grub_relocator16_idt. * grub-core/kern/i386/realmode.S (realidt): Renamed to ... (LOCAL(realidt)): ... this. * grub-core/boot/i386/pc/startup_raw.S: Pass pointer to realidt in eax. * grub-core/kern/i386/pc/startup.S: Save pointer to realidt. (grub_realidt): New variable.
This commit is contained in:
parent
27317084c6
commit
94f064b4c9
7 changed files with 47 additions and 4 deletions
|
@ -51,8 +51,16 @@ struct grub_bios_int_registers
|
|||
#define GRUB_CPU_INT_FLAGS_DEFAULT 0
|
||||
#endif
|
||||
|
||||
|
||||
void EXPORT_FUNC (grub_bios_interrupt) (grub_uint8_t intno,
|
||||
struct grub_bios_int_registers *regs);
|
||||
struct grub_i386_idt
|
||||
{
|
||||
grub_uint16_t limit;
|
||||
grub_uint32_t base;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
#ifdef GRUB_MACHINE_PCBIOS
|
||||
extern struct grub_i386_idt *EXPORT_VAR(grub_realidt);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue