Skip to content

Commit

Permalink
efi/x86: efistub: Move shared dependencies to <asm/efi.h>
Browse files Browse the repository at this point in the history
This moves definitions depended upon both by code under arch/x86/boot
and under drivers/firmware/efi to <asm/efi.h>. This is in preparation of
turning the stub code under drivers/firmware/efi into a static library.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
  • Loading branch information
Ard Biesheuvel authored and Matt Fleming committed Jul 7, 2014
1 parent 6091c9c commit f23cf8b
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 20 deletions.
5 changes: 1 addition & 4 deletions arch/x86/boot/compressed/eboot.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,7 @@

static efi_system_table_t *sys_table;

static struct efi_config *efi_early;

#define efi_call_early(f, ...) \
efi_early->call(efi_early->f, __VA_ARGS__);
struct efi_config *efi_early;

#define BOOT_SERVICES(bits) \
static void setup_boot_services##bits(struct efi_config *c) \
Expand Down
16 changes: 0 additions & 16 deletions arch/x86/boot/compressed/eboot.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,20 +103,4 @@ struct efi_uga_draw_protocol {
void *blt;
};

struct efi_config {
u64 image_handle;
u64 table;
u64 allocate_pool;
u64 allocate_pages;
u64 get_memory_map;
u64 free_pool;
u64 free_pages;
u64 locate_handle;
u64 handle_protocol;
u64 exit_boot_services;
u64 text_output;
efi_status_t (*call)(unsigned long, ...);
bool is64;
} __packed;

#endif /* BOOT_COMPRESSED_EBOOT_H */
25 changes: 25 additions & 0 deletions arch/x86/include/asm/efi.h
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,31 @@ static inline efi_status_t efi_thunk_set_virtual_address_map(
return EFI_SUCCESS;
}
#endif /* CONFIG_EFI_MIXED */


/* arch specific definitions used by the stub code */

struct efi_config {
u64 image_handle;
u64 table;
u64 allocate_pool;
u64 allocate_pages;
u64 get_memory_map;
u64 free_pool;
u64 free_pages;
u64 locate_handle;
u64 handle_protocol;
u64 exit_boot_services;
u64 text_output;
efi_status_t (*call)(unsigned long, ...);
bool is64;
} __packed;

extern struct efi_config *efi_early;

#define efi_call_early(f, ...) \
efi_early->call(efi_early->f, __VA_ARGS__);

#else
/*
* IF EFI is not configured, have the EFI calls return -ENOSYS.
Expand Down

0 comments on commit f23cf8b

Please sign in to comment.