#include <linux/efi.h>
#include <linux/pci.h>
#include <linux/stddef.h>
#include <asm/efi.h>
#include <asm/e820/types.h>
#include <asm/setup.h>
#include <asm/desc.h>
#include <asm/boot.h>
#include <asm/kaslr.h>
#include <asm/sev.h>
#include "efistub.h"
#include "x86-stub.h"
extern char _bss[], _ebss[];
const efi_system_table_t *efi_system_table;
const efi_dxe_services_table_t *efi_dxe_table;
static efi_loaded_image_t *image = …;
static efi_memory_attribute_protocol_t *memattr;
sev_memory_acceptance_protocol_t;
sev_memory_acceptance_protocol;
static efi_status_t
preserve_pci_rom_image(efi_pci_io_protocol_t *pci, struct pci_setup_rom **__rom)
{ … }
static void setup_efi_pci(struct boot_params *params)
{ … }
static void retrieve_apple_device_properties(struct boot_params *boot_params)
{ … }
static bool apple_match_product_name(void)
{ … }
static void apple_set_os(void)
{ … }
efi_status_t efi_adjust_memory_range_protection(unsigned long start,
unsigned long size)
{ … }
static void setup_unaccepted_memory(void)
{ … }
static efi_char16_t *efistub_fw_vendor(void)
{ … }
static const efi_char16_t apple[] = …;
static void setup_quirks(struct boot_params *boot_params)
{ … }
static efi_status_t
setup_uga(struct screen_info *si, efi_guid_t *uga_proto, unsigned long size)
{ … }
static void setup_graphics(struct boot_params *boot_params)
{ … }
static void __noreturn efi_exit(efi_handle_t handle, efi_status_t status)
{ … }
void __noreturn efi_stub_entry(efi_handle_t handle,
efi_system_table_t *sys_table_arg,
struct boot_params *boot_params);
efi_status_t __efiapi efi_pe_entry(efi_handle_t handle,
efi_system_table_t *sys_table_arg)
{ … }
static void add_e820ext(struct boot_params *params,
struct setup_data *e820ext, u32 nr_entries)
{ … }
static efi_status_t
setup_e820(struct boot_params *params, struct setup_data *e820ext, u32 e820ext_size)
{ … }
static efi_status_t alloc_e820ext(u32 nr_desc, struct setup_data **e820ext,
u32 *e820ext_size)
{ … }
static efi_status_t allocate_e820(struct boot_params *params,
struct setup_data **e820ext,
u32 *e820ext_size)
{ … }
struct exit_boot_struct { … };
static efi_status_t exit_boot_func(struct efi_boot_memmap *map,
void *priv)
{ … }
static efi_status_t exit_boot(struct boot_params *boot_params, void *handle)
{ … }
static bool have_unsupported_snp_features(void)
{ … }
static void efi_get_seed(void *seed, int size)
{ … }
static void error(char *str)
{ … }
static const char *cmdline_memmap_override;
static efi_status_t parse_options(const char *cmdline)
{ … }
static efi_status_t efi_decompress_kernel(unsigned long *kernel_entry)
{ … }
static void __noreturn enter_kernel(unsigned long kernel_addr,
struct boot_params *boot_params)
{ … }
void __noreturn efi_stub_entry(efi_handle_t handle,
efi_system_table_t *sys_table_arg,
struct boot_params *boot_params)
{ … }
#ifdef CONFIG_EFI_HANDOVER_PROTOCOL
void efi_handover_entry(efi_handle_t handle, efi_system_table_t *sys_table_arg,
struct boot_params *boot_params)
{ … }
#ifndef CONFIG_EFI_MIXED
extern __alias(efi_handover_entry)
void efi32_stub_entry(efi_handle_t handle, efi_system_table_t *sys_table_arg,
struct boot_params *boot_params);
extern __alias(efi_handover_entry)
void efi64_stub_entry(efi_handle_t handle, efi_system_table_t *sys_table_arg,
struct boot_params *boot_params);
#endif
#endif