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>
This commit is contained in:

committed by
Ingo Molnar

parent
960a8d0183
commit
8f24f8c2fc
@@ -13,10 +13,12 @@ typedef union efi_rng_protocol efi_rng_protocol_t;
|
||||
|
||||
union efi_rng_protocol {
|
||||
struct {
|
||||
efi_status_t (*get_info)(efi_rng_protocol_t *,
|
||||
unsigned long *, efi_guid_t *);
|
||||
efi_status_t (*get_rng)(efi_rng_protocol_t *,
|
||||
efi_guid_t *, unsigned long, u8 *out);
|
||||
efi_status_t (__efiapi *get_info)(efi_rng_protocol_t *,
|
||||
unsigned long *,
|
||||
efi_guid_t *);
|
||||
efi_status_t (__efiapi *get_rng)(efi_rng_protocol_t *,
|
||||
efi_guid_t *, unsigned long,
|
||||
u8 *out);
|
||||
};
|
||||
struct {
|
||||
u32 get_info;
|
||||
|
Reference in New Issue
Block a user