blob: ce8b74d7478b96422a6b8d8453936c34152ef59a [file] [log] [blame]
#ifndef _EFI_H_
#define _EFI_H_
/*
* EFI-related functions.
*
* Copyright (c) 2021, Google Inc, Zixuan Wang <zixuanwang@google.com>
*
* SPDX-License-Identifier: LGPL-2.0-or-later
*/
#include "linux/efi.h"
#include <elf.h>
/*
* efi_bootinfo_t: stores EFI-related machine info retrieved before exiting EFI
* boot services, and is then used by setup_efi(). setup_efi() cannot retrieve
* this info as it is called after ExitBootServices and thus some EFI resources
* and functions are not available.
*/
typedef struct {
struct efi_boot_memmap mem_map;
} efi_bootinfo_t;
efi_status_t _relocate(long ldbase, Elf64_Dyn *dyn, efi_handle_t handle,
efi_system_table_t *sys_tab);
efi_status_t efi_get_memory_map(struct efi_boot_memmap *map);
efi_status_t efi_exit_boot_services(void *handle, struct efi_boot_memmap *map);
efi_status_t efi_get_system_config_table(efi_guid_t table_guid, void **table);
efi_status_t efi_main(efi_handle_t handle, efi_system_table_t *sys_tab);
#endif /* _EFI_H_ */