summaryrefslogtreecommitdiffstats
path: root/arch/x86/boot
diff options
context:
space:
mode:
authorArd Biesheuvel <ardb@kernel.org>2019-12-24 16:10:08 +0100
committerIngo Molnar <mingo@kernel.org>2019-12-25 10:49:17 +0100
commit1786e83011644e18732ed006413339d5323766e9 (patch)
tree0bc80c9fa22cfcc3ea6c76fef7c72eeab62f4682 /arch/x86/boot
parentefi/libstub: Use a helper to iterate over a EFI handle array (diff)
downloadlinux-1786e83011644e18732ed006413339d5323766e9.tar.xz
linux-1786e83011644e18732ed006413339d5323766e9.zip
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/x86/boot')
-rw-r--r--arch/x86/boot/compressed/eboot.h15
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 */