diff options
author | Ard Biesheuvel <ardb@kernel.org> | 2019-12-24 16:10:08 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2019-12-25 10:49:17 +0100 |
commit | 1786e83011644e18732ed006413339d5323766e9 (patch) | |
tree | 0bc80c9fa22cfcc3ea6c76fef7c72eeab62f4682 /arch | |
parent | 2732ea0d5c0a67ec86bfbde2bd68b6152e23ec4e (diff) |
efi/libstub: Extend native protocol definitions with mixed_mode aliases
In preparation of moving to a native vs. mixed mode split rather than a
32 vs. 64 bit split when it comes to invoking EFI firmware services,
update all the native protocol definitions and redefine them as unions
containing an anonymous struct for the native view and a struct called
'mixed_mode' describing the 32-bit view of the protocol when called from
64-bit code.
While at it, flesh out some PCI I/O member definitions that we will be
needing shortly.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Cc: Arvind Sankar <nivedita@alum.mit.edu>
Cc: Borislav Petkov <bp@alien8.de>
Cc: James Morse <james.morse@arm.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: https://lkml.kernel.org/r/20191224151025.32482-9-ardb@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/boot/compressed/eboot.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/arch/x86/boot/compressed/eboot.h b/arch/x86/boot/compressed/eboot.h index 8297387c4676..26f1f2635f64 100644 --- a/arch/x86/boot/compressed/eboot.h +++ b/arch/x86/boot/compressed/eboot.h @@ -24,10 +24,17 @@ typedef struct { u64 blt; } efi_uga_draw_protocol_64_t; -typedef struct { - void *get_mode; - void *set_mode; - void *blt; +typedef union { + struct { + void *get_mode; + void *set_mode; + void *blt; + }; + struct { + u32 get_mode; + u32 set_mode; + u32 blt; + } mixed_mode; } efi_uga_draw_protocol_t; #endif /* BOOT_COMPRESSED_EBOOT_H */ |