diff options
author | Ard Biesheuvel <ardb@kernel.org> | 2019-12-24 16:10:12 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2019-12-25 10:49:19 +0100 |
commit | 8f24f8c2fc82f701866419dcb594e2cc1d3f46ba (patch) | |
tree | 78911f8dba19edd090d65649482291b11e10ca1b /arch/x86/boot | |
parent | efi/libstub: Use stricter typing for firmware function pointers (diff) | |
download | linux-8f24f8c2fc82f701866419dcb594e2cc1d3f46ba.tar.xz linux-8f24f8c2fc82f701866419dcb594e2cc1d3f46ba.zip |
efi/libstub: Annotate firmware routines as __efiapi
Annotate all the firmware routines (boot services, runtime services and
protocol methods) called in the boot context as __efiapi, and make
it expand to __attribute__((ms_abi)) on 64-bit x86. This allows us
to use the compiler to generate the calls into firmware that use the
MS calling convention instead of the SysV one.
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-13-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.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/boot/compressed/eboot.h b/arch/x86/boot/compressed/eboot.h index b8d11928f528..99f35343d443 100644 --- a/arch/x86/boot/compressed/eboot.h +++ b/arch/x86/boot/compressed/eboot.h @@ -16,8 +16,8 @@ typedef union efi_uga_draw_protocol efi_uga_draw_protocol_t; union efi_uga_draw_protocol { struct { - efi_status_t (*get_mode)(efi_uga_draw_protocol_t *, - u32*, u32*, u32*, u32*); + efi_status_t (__efiapi *get_mode)(efi_uga_draw_protocol_t *, + u32*, u32*, u32*, u32*); void *set_mode; void *blt; }; |