Turnstone Operating System
Loading...
Searching...
No Matches
efi.h File Reference

efi interface More...

#include <types.h>
#include <disk.h>

Classes

struct  efi_guid_s
 efi guid has a special formatting More...
 
struct  efi_pmbr_chs_s
 efi uses a special one part at legacy mbr section. this struct is for CHS part More...
 
struct  efi_pmbr_partition_s
 pmbr's partition line format More...
 
struct  efi_table_header_s
 a gpt disk is also an efi table so it has same header. More...
 
struct  efi_partition_table_header_s
 
struct  efi_partition_entry_s
 
struct  gpt_disk_s
 
struct  efi_device_path_t
 
struct  efi_memory_descriptor_t
 
struct  efi_input_key_t
 
struct  simple_input_interface_t
 
struct  simple_text_output_mode_t
 
struct  simple_text_output_interface_t
 
struct  efi_time_t
 
struct  efi_time_capabilities_t
 
struct  efi_capsule_header_t
 
struct  efi_capsule_block_descriptor_t
 
struct  efi_runtime_services_t
 
struct  efi_open_protocol_information_entry_t
 
struct  efi_boot_services_t
 
struct  efi_configuration_table_t
 
struct  efi_system_table_t
 
struct  efi_block_io_media_t
 
struct  efi_block_io_t
 
struct  block_file_t
 
struct  efi_gop_pixel_bitmask_t
 
struct  efi_gop_mode_info_t
 
struct  efi_gop_mode_t
 
struct  efi_gop_t
 
struct  efi_loaded_image_t
 
struct  efi_network_ipv4_address_t
 
struct  efi_ipv6_address_t
 
union  efi_ip_address_t
 
struct  efi_network_mac_address_t
 
struct  efi_pxe_base_code_ip_filter_t
 
struct  efi_pxe_base_code_icmp_error_t
 
struct  efi_pxe_base_code_tftp_error_t
 
struct  efi_pxe_base_code_arp_entry_t
 
struct  efi_pxe_base_code_route_entry_t
 
struct  efi_pxe_base_code_dhcpv4_packet_t
 
struct  efi_pxe_base_code_dhcpv6_packet_t
 
union  efi_pxe_base_code_packet_t
 
struct  efi_base_code_mode_t
 
struct  efi_pxe_base_code_srvlist_t
 
struct  efi_pxe_base_code_discover_info_t
 
struct  efi_pxe_base_code_mtftp_info_t
 
struct  efi_pxe_base_code_protocol_t
 
struct  efi_image_header_s
 
struct  efi_image_optinal_data_table_s
 
struct  efi_image_optional_header_s
 
struct  efi_image_section_header_s
 
struct  efi_image_relocation_entry_s
 
struct  efi_edid_discovered_protocol_t
 
struct  efi_timestamp_properties_t
 
struct  efi_timestamp_protocol_t
 

Macros

#define ___EFI_H   0
 
#define EFIAPI   __attribute__((ms_abi))
 
#define EFI_PMBR_PART_TYPE   0xEE
 
#define EFI_PART_TABLE_HEADER_SIGNATURE   0x5452415020494645ULL
 
#define EFI_PART_TABLE_HEADER_REVISION   0x00010000
 
#define EFI_PART_TYPE_UNUSED_GUID   { 0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} }
 
#define EFI_PART_TYPE_EFI_SYSTEM_PART_GUID   { 0xc12a7328, 0xf81f, 0x11d2, {0xba, 0x4b, 0x00, 0xa0, 0xc9, 0x3e, 0xc9, 0x3b} }
 
#define EFI_PART_TYPE_LEGACY_MBR_GUID   { 0x024dee41, 0x33e7, 0x11d3, {0x9d, 0x69, 0x00, 0x08, 0xc7, 0x81, 0xf3, 0x9f} }
 
#define EFI_PART_TYPE_TURNSTONE_KERNEL_PART_GUID   { 0x1DF53B77, 0xCDFC, 0x4903, {0x9B, 0xE6, 0x08, 0x9C, 0xE0, 0x25, 0x7A, 0x09} }
 
#define EFI_PART_TYPE_TURNSTONE_TOSDB_PART_GUID   { 0x1DF53B77, 0xCDFC, 0x4903, {0x68, 0xB6, 0xB7, 0x26, 0x99, 0xC7, 0x4F, 0x93} }
 
#define EFI_ACPI_TABLE_GUID   { 0xeb9d2d30, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
 
#define EFI_ACPI_20_TABLE_GUID   { 0x8868e871, 0xe4f1, 0x11d3, {0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} }
 
#define EFI_SMBIOS_2_TABLE_GUID   { 0xeb9d2d31, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
 
#define EFI_SMBIOS_3_TABLE_GUID   { 0xf2fd1544, 0x9794, 0x4a2c, {0x99, 0x2e, 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94} }
 
#define EFI_ERROR_CODE(a)   (0x8000000000000000LL | a)
 
#define EFIWARN(a)   (a)
 
#define EFI_ERROR(a)   (((int64_t) a) < 0)
 
#define EFI_SUCCESS   0
 
#define EFI_LOAD_ERROR   EFI_ERROR_CODE (1)
 
#define EFI_INVALID_PARAMETER   EFI_ERROR_CODE (2)
 
#define EFI_UNSUPPORTED   EFI_ERROR_CODE (3)
 
#define EFI_BAD_BUFFER_SIZE   EFI_ERROR_CODE (4)
 
#define EFI_BUFFER_TOO_SMALL   EFI_ERROR_CODE (5)
 
#define EFI_NOT_READY   EFI_ERROR_CODE (6)
 
#define EFI_DEVICE_ERROR   EFI_ERROR_CODE (7)
 
#define EFI_WRITE_PROTECTED   EFI_ERROR_CODE (8)
 
#define EFI_OUT_OF_RESOURCES   EFI_ERROR_CODE (9)
 
#define EFI_VOLUME_CORRUPTED   EFI_ERROR_CODE (10)
 
#define EFI_VOLUME_FULL   EFI_ERROR_CODE (11)
 
#define EFI_NO_MEDIA   EFI_ERROR_CODE (12)
 
#define EFI_MEDIA_CHANGED   EFI_ERROR_CODE (13)
 
#define EFI_NOT_FOUND   EFI_ERROR_CODE (14)
 
#define EFI_ACCESS_DENIED   EFI_ERROR_CODE (15)
 
#define EFI_NO_RESPONSE   EFI_ERROR_CODE (16)
 
#define EFI_NO_MAPPING   EFI_ERROR_CODE (17)
 
#define EFI_TIMEOUT   EFI_ERROR_CODE (18)
 
#define EFI_NOT_STARTED   EFI_ERROR_CODE (19)
 
#define EFI_ALREADY_STARTED   EFI_ERROR_CODE (20)
 
#define EFI_ABORTED   EFI_ERROR_CODE (21)
 
#define EFI_ICMP_ERROR   EFI_ERROR_CODE (22)
 
#define EFI_TFTP_ERROR   EFI_ERROR_CODE (23)
 
#define EFI_PROTOCOL_ERROR   EFI_ERROR_CODE (24)
 
#define EFI_INCOMPATIBLE_VERSION   EFI_ERROR_CODE (25)
 
#define EFI_SECURITY_VIOLATION   EFI_ERROR_CODE (26)
 
#define EFI_CRC_ERROR   EFI_ERROR_CODE (27)
 
#define EFI_END_OF_MEDIA   EFI_ERROR_CODE (28)
 
#define EFI_END_OF_FILE   EFI_ERROR_CODE (31)
 
#define EFI_INVALID_LANGUAGE   EFI_ERROR_CODE (32)
 
#define EFI_COMPROMISED_DATA   EFI_ERROR_CODE (33)
 
#define EFI_WARN_UNKOWN_GLYPH   EFIWARN(1)
 
#define EFI_WARN_UNKNOWN_GLYPH   EFIWARN(1)
 
#define EFI_WARN_DELETE_FAILURE   EFIWARN(2)
 
#define EFI_WARN_WRITE_FAILURE   EFIWARN(3)
 
#define EFI_WARN_BUFFER_TOO_SMALL   EFIWARN(4)
 
#define EFI_TPL_APPLICATION   4
 
#define EFI_TPL_CALLBACK   8
 
#define EFI_TPL_NOTIFY   16
 
#define EFI_TPL_HIGH_LEVEL   31
 
#define EFI_EVT_TIMER   0x80000000
 
#define EFI_EVT_RUNTIME   0x40000000
 
#define EFI_EVT_NOTIFY_WAIT   0x00000100
 
#define EFI_EVT_NOTIFY_SIGNAL   0x00000200
 
#define EFI_EVT_SIGNAL_EXIT_BOOT_SERVICES   0x00000201
 
#define EFI_EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE   0x60000202
 
#define EFI_MEMORY_UC   0x0000000000000001
 
#define EFI_MEMORY_WC   0x0000000000000002
 
#define EFI_MEMORY_WT   0x0000000000000004
 
#define EFI_MEMORY_WB   0x0000000000000008
 
#define EFI_MEMORY_UCE   0x0000000000000010
 
#define EFI_MEMORY_WP   0x0000000000001000
 
#define EFI_MEMORY_RP   0x0000000000002000
 
#define EFI_MEMORY_XP   0x0000000000004000
 
#define EFI_MEMORY_NV   0x0000000000008000
 
#define EFI_MEMORY_MORE_RELIABLE   0x0000000000010000
 
#define EFI_MEMORY_RO   0x0000000000020000
 
#define EFI_MEMORY_SP   0x0000000000040000
 
#define EFI_MEMORY_CPU_CRYPTO   0x0000000000080000
 
#define EFI_MEMORY_RUNTIME   0x8000000000000000
 
#define EFI_BLOCK_IO_PROTOCOL_GUID   { 0x964e5b21, 0x6459, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
 
#define EFI_BLOCK_IO_PROTOCOL_REVISION   0x00010000
 
#define EFI_BLOCK_IO_INTERFACE_REVISION   EFI_BLOCK_IO_PROTOCOL_REVISION
 
#define EFI_BLOCK_IO_PROTOCOL_REVISION2   0x00020001
 
#define EFI_BLOCK_IO_PROTOCOL_REVISION3   ((2 << 16) | (31))
 
#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID   { 0x9042a9de, 0x23dc, 0x4a38, {0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a } }
 
#define EFI_LOADED_IMAGE_PROTOCOL_GUID   { 0x5B1B31A1, 0x9562, 0x11d2, {0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B} }
 
#define EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID   { 0xBC62157E, 0x3E33, 0x4FEC, {0x99, 0x20, 0x2D, 0x3B, 0x36, 0xD7, 0x50, 0xDF} }
 
#define EFI_GLOBAL_VARIABLE   { 0x8BE4DF61, 0x93CA, 0x11d2, {0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C } }
 
#define EFI_PXE_BASE_CODE_PROTOCOL_GUID   { 0x03C4E603, 0xAC28, 0x11D3, {0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D} }
 
#define EFI_PXE_BASE_CODE_PROTOCOL_REVISION   0x00010000
 
#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES   8
 
#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES   8
 
#define EFI_PXE_BASE_CODE_MAX_IPCNT   8
 
#define EFI_PXE_BASE_CODE_DEFAULT_TTL   16
 
#define EFI_PXE_BASE_CODE_DEFAULT_TOS   0
 
#define EFI_PXE_BASE_CODE_BOOT_LAYER_MASK   0x7FFF
 
#define EFI_PXE_BASE_CODE_BOOT_LAYER_INITIAL   0x0000
 
#define EFI_IMAGE_DOSSTUB_HEADER_MAGIC   0x5A4D
 
#define EFI_IMAGE_DOSSTUB_LENGTH   0x80
 
#define EFI_IMAGE_DOSSTUB_EFI_IMAGE_OFFSET_LOCATION   0x3C
 
#define EFI_IMAGE_HEADER_MAGIC   0x00004550
 
#define EFI_IMAGE_OPTIONAL_HEADER_MAGIC   0x020B
 
#define EFI_IMAGE_MACHINE_AMD64   0x8664
 
#define EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION   0xA
 
#define EFI_IMAGE_CHARACTERISTISCS_EXECUTABLE_IMAGE   0x2
 
#define EFI_IMAGE_CHARACTERISTISCS_LINE_NUMBERS_STRIPPED   0x4
 
#define EFI_IMAGE_CHARACTERISTISCS_LARGE_ADDRESS_AWARE   0x20
 
#define EFI_IMAGE_CHARACTERISTISCS_64BIT   0x200
 
#define EFI_IMAGE_CHARACTERISTISCS_DLL   0x2000
 
#define EFI_IMAGE_CHARACTERISTISCS   (EFI_IMAGE_CHARACTERISTISCS_EXECUTABLE_IMAGE | EFI_IMAGE_CHARACTERISTISCS_LARGE_ADDRESS_AWARE | EFI_IMAGE_CHARACTERISTISCS_64BIT | EFI_IMAGE_CHARACTERISTISCS_LINE_NUMBERS_STRIPPED)
 
#define EFI_IMAGE_SCN_CNT_CODE   0x20
 
#define EFI_IMAGE_SCN_CNT_INITIALIZED_DATA   0x40
 
#define EFI_IMAGE_SCN_CNT_UNINITIALIZED_DATA   0x80
 
#define EFI_IMAGE_SCN_MEM_DISCARDABLE   0x2000000
 
#define EFI_IMAGE_SCN_MEM_EXECUTE   0x20000000
 
#define EFI_IMAGE_SCN_MEM_READ   0x40000000
 
#define EFI_IMAGE_SCN_MEM_WRITE   0x80000000
 
#define EFI_IMAGE_SECTION_FLAGS_TEXT   (EFI_IMAGE_SCN_CNT_CODE | EFI_IMAGE_SCN_MEM_EXECUTE | EFI_IMAGE_SCN_MEM_READ)
 
#define EFI_IMAGE_SECTION_FLAGS_DATA   (EFI_IMAGE_SCN_CNT_INITIALIZED_DATA | EFI_IMAGE_SCN_MEM_READ | EFI_IMAGE_SCN_MEM_WRITE)
 
#define EFI_IMAGE_SECTION_FLAGS_BSS   (EFI_IMAGE_SCN_CNT_UNINITIALIZED_DATA | EFI_IMAGE_SCN_MEM_READ | EFI_IMAGE_SCN_MEM_WRITE)
 
#define EFI_IMAGE_SECTION_FLAGS_RODATA   (EFI_IMAGE_SCN_CNT_INITIALIZED_DATA | EFI_IMAGE_SCN_MEM_READ)
 
#define EFI_IMAGE_SECTION_FLAGS_RELOC   (EFI_IMAGE_SCN_CNT_INITIALIZED_DATA | EFI_IMAGE_SCN_MEM_READ | EFI_IMAGE_SCN_MEM_DISCARDABLE)
 
#define EFI_IMAGE_REL_BASED_DIR64   0xA
 
#define EFI_IMAGE_REL_BASED_HIGHLOW   0x3
 
#define EFI_IMAGE_MAX_RELOCATION_ENTRIES   0x100
 
#define EFI_EDID_DISCOVERED_PROTOCOL_GUID    { 0x1C0C34F6, 0xD380, 0x41FA, { 0xA0, 0x49, 0x8A, 0xD0, 0x6C, 0x1A, 0x66, 0xDD } }
 
#define EFI_EDID_ACTIVE_PROTOCOL_GUID    { 0xBD8C1056, 0x9F36, 0x44EC, { 0x92, 0xA8, 0xA6, 0x33, 0x7F, 0x81, 0x79, 0x86 } }
 
#define EFI_TIMESTAMP_PROTOCOL_GUID    { 0xafbfde41, 0x2e6e, 0x4262, { 0xba, 0x65, 0x62, 0xb9, 0x23, 0x6e, 0x54, 0x95 } }
 

Typedefs

typedef struct efi_guid_s efi_guid_t
 short hand for struct
 
typedef struct efi_pmbr_chs_s efi_pmbr_chs_t
 short hand for struct
 
typedef struct efi_pmbr_partition_s efi_pmbr_partition_t
 short hand for struct
 
typedef struct efi_table_header_s efi_table_header_t
 short hand for struct
 
typedef struct efi_partition_table_header_s efi_partition_table_header_t
 
typedef struct efi_partition_entry_s efi_partition_entry_t
 
typedef struct gpt_disk_s gpt_disk_t
 
typedef void * efi_handle_t
 
typedef void * efi_event_t
 
typedef uint64_t efi_tpl_t
 
typedef uint64_t efi_status_t
 
typedef uint64_t efi_physical_address_t
 
typedef uint64_t efi_virtual_address_t
 
typedef efi_status_t(EFIAPIefi_input_reset_t) (void *this, boolean_t extended_verification)
 
typedef efi_status_t(EFIAPIefi_input_read_key_t) (void *this, efi_input_key_t *Key)
 
typedef efi_status_t(EFIAPIefi_text_reset_t) (void *this, boolean_t extended_verification)
 
typedef efi_status_t(EFIAPIefi_text_output_string_t) (void *this, wchar_t *string)
 
typedef efi_status_t(EFIAPIefi_text_test_string_t) (void *this, wchar_t *string)
 
typedef efi_status_t(EFIAPIefi_text_query_mode_t) (void *this, uint64_t mode_number, uint64_t *column, uint64_t *row)
 
typedef efi_status_t(EFIAPIefi_text_set_mode_t) (void *this, uint64_t mode_number)
 
typedef efi_status_t(EFIAPIefi_text_set_attribute_t) (void *this, uint64_t attribute)
 
typedef efi_status_t(EFIAPIefi_text_clear_screen_t) (void *this)
 
typedef efi_status_t(EFIAPIefi_text_set_cursor_t) (void *this, uint64_t column, uint64_t row)
 
typedef efi_status_t(EFIAPIefi_text_enable_cursor_t) (void *this, boolean_t enable)
 
typedef efi_status_t(EFIAPIefi_get_time_t) (efi_time_t *time, efi_time_capabilities_t *capabilities)
 
typedef efi_status_t(EFIAPIefi_set_time_t) (efi_time_t *time)
 
typedef efi_status_t(EFIAPIefi_get_wakeup_time_t) (boolean_t *enable, boolean_t *pending, efi_time_t *time)
 
typedef efi_status_t(EFIAPIefi_set_wakeup_time_t) (boolean_t enable, efi_time_t *time)
 
typedef efi_status_t(EFIAPIefi_set_virtual_address_map_t) (uint64_t memory_map_size, uint64_t descriptor_size, uint32_t descriptor_version, efi_memory_descriptor_t *virtual_map)
 
typedef efi_status_t(EFIAPIefi_convert_pointer_t) (uint64_t debug_disposition, void **address)
 
typedef efi_status_t(EFIAPIefi_get_variable_t) (wchar_t *variable_name, efi_guid_t *vendor_guid, uint32_t *attributes, uint64_t *data_size, void *data)
 
typedef efi_status_t(EFIAPIefi_get_next_variable_name_t) (uint64_t *variable_name_size, wchar_t *variable_name, efi_guid_t *vendor_guid)
 
typedef efi_status_t(EFIAPIefi_set_variable_t) (wchar_t *variable_name, efi_guid_t *vendor_guid, uint32_t attributes, uint64_t data_size, void *data)
 
typedef efi_status_t(EFIAPIefi_get_next_high_mono_t) (uint64_t *count)
 
typedef efi_status_t(EFIAPIefi_reset_system_t) (efi_reset_type_t reset_type, efi_status_t reset_status, uint64_t data_size, wchar_t *reset_data)
 
typedef efi_status_t(EFIAPIefi_update_capsule_t) (efi_capsule_header_t **capsule_header_array, uint64_t capsule_count, efi_physical_address_t scatter_gather_list)
 
typedef efi_status_t(EFIAPIefi_query_capsule_capabilities_t) (efi_capsule_header_t **capsule_header_array, uint64_t capsule_count, uint64_t *maximum_capsule_size, efi_reset_type_t *reset_type)
 
typedef efi_status_t(EFIAPIefi_query_variable_info_t) (uint32_t attributes, uint64_t *maximum_variable_storage_size, uint64_t *remaining_variable_storage_size, uint64_t *maximum_variable_size)
 
typedef efi_tpl_t(EFIAPIefi_raise_tpl_t) (efi_tpl_t new_tpl)
 
typedef efi_tpl_t(EFIAPIefi_restore_tpl_t) (efi_tpl_t old_tpl)
 
typedef efi_status_t(EFIAPIefi_allocate_pages_t) (efi_allocate_type_t type, efi_memory_type_t memory_type, uint64_t num_pages, efi_physical_address_t *memory)
 
typedef efi_status_t(EFIAPIefi_free_pages_t) (efi_physical_address_t memory, uint64_t num_pages)
 
typedef efi_status_t(EFIAPIefi_get_memory_map_t) (uint64_t *memory_map_size, efi_memory_descriptor_t *memory_map, uint64_t *map_key, uint64_t *descriptor_size, uint32_t *descriptor_version)
 
typedef efi_status_t(EFIAPIefi_allocate_pool_t) (efi_memory_type_t pool_type, uint64_t size, void **buffer)
 
typedef efi_status_t(EFIAPIefi_free_pool_t) (void *buffer)
 
typedef void(EFIAPIefi_event_notify_t) (efi_event_t event, void *context)
 
typedef efi_status_t(EFIAPIefi_create_event_t) (uint32_t type, efi_tpl_t notify_tpl, efi_event_notify_t notify_function, void *next_context, efi_event_t *event)
 
typedef efi_status_t(EFIAPIefi_set_timer_t) (efi_event_t event, efi_timer_delay_t Type, uint64_t trigger_time)
 
typedef efi_status_t(EFIAPIefi_wait_for_event_t) (uint64_t number_of_events, efi_event_t *event, uint64_t *index)
 
typedef efi_status_t(EFIAPIefi_signal_event_t) (efi_event_t event)
 
typedef efi_status_t(EFIAPIefi_close_event_t) (efi_event_t event)
 
typedef efi_status_t(EFIAPIefi_check_event_t) (efi_event_t event)
 
typedef efi_status_t(EFIAPIefi_handle_protocol_t) (efi_handle_t handle, efi_guid_t *protocol, void **interface)
 
typedef efi_status_t(EFIAPIefi_register_protocol_notify_t) (efi_guid_t *protocol, efi_event_t event, void **registration)
 
typedef efi_status_t(EFIAPIefi_locate_handle_t) (efi_locate_search_type_t search_type, efi_guid_t *protocol, void *search_key, uint64_t *buffer_size, efi_handle_t *buffer)
 
typedef efi_status_t(EFIAPIefi_locate_device_path_t) (efi_guid_t *protocol, efi_device_path_t **device_path, efi_handle_t *device)
 
typedef efi_status_t(EFIAPIefi_install_configuration_table_t) (efi_guid_t *guid, void *table)
 
typedef efi_status_t(EFIAPIefi_image_load_t) (boolean_t BootPolicy, efi_handle_t parent_image_handle, efi_device_path_t *file_path, void *source_buffer, uint64_t source_size, efi_handle_t *image_handle)
 
typedef efi_status_t(EFIAPIefi_image_start_t) (efi_handle_t image_handle, uint64_t *exit_data_size, wchar_t **exit_data)
 
typedef efi_status_t(EFIAPIefi_exit_t) (efi_handle_t image_handle, efi_status_t exit_status, uint64_t exit_data_size, wchar_t *exit_data)
 
typedef efi_status_t(EFIAPIefi_exit_boot_services_t) (efi_handle_t image_handle, uint64_t map_key)
 
typedef efi_status_t(EFIAPIefi_get_next_monotonic_t) (uint64_t *count)
 
typedef efi_status_t(EFIAPIefi_stall_t) (uint64_t microseconds)
 
typedef efi_status_t(EFIAPIefi_set_watchdog_timer_t) (uint64_t timeout, uint64_t watchdog_code, uint64_t data_size, wchar_t *watchdog_data)
 
typedef efi_status_t(EFIAPIefi_connect_controller_t) (efi_handle_t controller_handle, efi_handle_t *driver_image_handle, efi_device_path_t *remaining_device_path, boolean_t recursive)
 
typedef efi_status_t(EFIAPIefi_disconnect_controller_t) (efi_handle_t controller_handle, efi_handle_t driver_image_handle, efi_handle_t child_handle)
 
typedef efi_status_t(EFIAPIefi_open_protocol_t) (efi_handle_t handle, efi_guid_t *protocol, void **interface, efi_handle_t agent_handle, efi_handle_t controller_handle, uint32_t attributes)
 
typedef efi_status_t(EFIAPIefi_close_protocol_t) (efi_handle_t handle, efi_guid_t *protocol, efi_handle_t agent_handle, efi_handle_t controller_handle)
 
typedef efi_status_t(EFIAPIefi_open_protocol_information_t) (efi_handle_t handle, efi_guid_t *protocol, efi_open_protocol_information_entry_t **entry_buffer, uint64_t *entry_count)
 
typedef efi_status_t(EFIAPIefi_protocols_per_handle_t) (efi_handle_t handle, efi_guid_t ***protocol_buffer, uint64_t *protocol_buffer_count)
 
typedef efi_status_t(EFIAPIefi_locate_handle_buffer_t) (efi_locate_search_type_t search_type, efi_guid_t *protocol, void *search_key, uint64_t num_handles, efi_handle_t **handles)
 
typedef efi_status_t(EFIAPIefi_locate_protocol_t) (efi_guid_t *Protocol, void *registration, void **interface)
 
typedef efi_status_t(EFIAPIefi_calculate_crc32_t) (void *Data, uint64_t data_size, uint32_t *crc32)
 
typedef efi_status_t(EFIAPIefi_block_reset_t) (efi_handle_t self, boolean_t extended_verification)
 
typedef efi_status_t(EFIAPIefi_block_read_t) (efi_handle_t self, uint32_t media_id, uint64_t lba, uint64_t buffer_size, void *buffer)
 
typedef efi_status_t(EFIAPIefi_block_write_t) (efi_handle_t self, uint32_t media_id, uint64_t lba, uint64_t buffer_size, void *buffer)
 
typedef efi_status_t(EFIAPIefi_block_flush_t) (efi_handle_t self)
 
typedef efi_status_t(EFIAPIefi_gop_query_mode_t) (void *self, uint32_t mode_number, uint64_t *size_of_info, efi_gop_mode_info_t **info)
 
typedef efi_status_t(EFIAPIefi_gop_set_mode_t) (void *self, uint32_t mode_number)
 
typedef efi_status_t(EFIAPIefi_gop_blt_t) (void *self, uint32_t *blt_buffer, efi_gop_blt_operation_t blt_operation, uint64_t source_x, uint64_t source_y, uint64_t destination_x, uint64_t destionation_y, uint64_t width, uint64_t height, uint64_t delta)
 
typedef efi_status_t(EFIAPIefi_image_unload_t) (efi_handle_t image_handle)
 
typedef uint16_t efi_pxe_base_code_udp_port_t
 
typedef efi_status_t(EFIAPIefi_base_code_start_t) (efi_handle_t this, boolean_t use_ipv6)
 
typedef efi_status_t(EFIAPIefi_base_code_stop_t) (efi_handle_t this)
 
typedef efi_status_t(EFIAPIefi_base_code_dhcp_t) (efi_handle_t this, boolean_t sort_offers)
 
typedef efi_status_t(EFIAPIefi_base_code_discover_t) (efi_handle_t this, uint16_t type, uint16_t *layer, boolean_t use_bis, efi_pxe_base_code_discover_info_t *info)
 
typedef efi_status_t(EFIAPIefi_base_code_mtftp_t) (efi_handle_t this, efi_pxe_base_code_tftp_opcode_t opcode, void *buffer, boolean_t overwrite, uint64_t *buffer_size, uint64_t *block_size, efi_ip_address_t *server_ip, char_t *file_name, efi_pxe_base_code_mtftp_info_t *info, boolean_t dont_use_buffer)
 
typedef efi_status_t(EFIAPIefi_base_code_udp_write_t) (efi_handle_t this, uint16_t op_flags, efi_ip_address_t *dst_ip, efi_pxe_base_code_udp_port_t *dst_port, efi_ip_address_t *gw_ip, efi_ip_address_t *src_ip, efi_pxe_base_code_udp_port_t *src_port, uint64_t *header_size, void *header, uint64_t *buffer_size, void *buffer)
 
typedef efi_status_t(EFIAPIefi_base_code_udp_read_t) (efi_handle_t this, uint16_t op_flags, efi_ip_address_t *dst_ip, efi_pxe_base_code_udp_port_t *dst_port, efi_ip_address_t *src_ip, efi_pxe_base_code_udp_port_t *src_port, uint64_t *header_size, void *header, uint64_t *buffer_size, void *buffer)
 
typedef efi_status_t(EFIAPIefi_base_code_set_ip_filer_t) (efi_handle_t this, efi_pxe_base_code_ip_filter_t *new_filter)
 
typedef efi_status_t(EFIAPIefi_base_code_arp_t) (efi_handle_t this, efi_ip_address_t *ip_addr, efi_network_mac_address_t *mac_addr)
 
typedef efi_status_t(EFIAPIefi_base_code_set_parameters_t) (efi_handle_t this, boolean_t *new_auto_arp, boolean_t *new_send_guid, uint8_t *new_ttl, uint8_t *new_tos, boolean_t *new_make_callback)
 
typedef efi_status_t(EFIAPIefi_base_code_set_station_ip_t) (efi_handle_t this, efi_ip_address_t *new_station_ip, efi_ip_address_t *new_subnet_mask)
 
typedef efi_status_t(EFIAPIefi_base_code_set_packets_t) (efi_handle_t this, boolean_t *new_dhcp_discover_valid, boolean_t *new_dhcp_ack_received, boolean_t *new_proxy_offer_received, boolean_t *new_pxe_discover_valid, boolean_t *new_pxe_reply_received, boolean_t *new_pxe_bis_reply_received, efi_pxe_base_code_packet_t *new_dhcp_discover, efi_pxe_base_code_packet_t *new_dhcp_ack, efi_pxe_base_code_packet_t *new_proxy_offer, efi_pxe_base_code_packet_t *new_pxe_discover, efi_pxe_base_code_packet_t *new_pxe_reply, efi_pxe_base_code_packet_t *new_pxe_bis_reply)
 
typedef struct efi_image_header_s efi_image_header_t
 
typedef struct efi_image_optinal_data_table_s efi_image_optinal_data_table_t
 
typedef struct efi_image_optional_header_s efi_image_optional_header_t
 
typedef struct efi_image_section_header_s efi_image_section_header_t
 
typedef struct efi_image_relocation_entry_s efi_image_relocation_entry_t
 
typedef struct efi_edid_discovered_protocol_t efi_edid_discovered_protocol_t
 
typedef struct efi_timestamp_properties_t efi_timestamp_properties_t
 
typedef uint64_t(EFIAPIefi_timestamp_get_f) (void)
 
typedef efi_status_t(EFIAPIefi_timestamp_get_properties_f) (efi_timestamp_properties_t *properties)
 
typedef struct efi_timestamp_protocol_t efi_timestamp_protocol_t
 

Enumerations

enum  efi_allocate_type_t { EFI_ALLOCATE_ANY_PAGES , EFI_ALLOCATE_MAX_ADDRESS , EFI_ALLOCATE_ADDRESS , EFI_MAX_ALLOCATE_TYPE }
 
enum  efi_locate_search_type_t { EFI_ALL_HANDLES , EFI_BY_REGISTER_NOTIFY , EFI_BY_PROTOCOL }
 
enum  efi_reset_type_t { EFI_RESET_COLD , EFI_RESET_WARM , EFI_RESET_SHUTDOWN }
 
enum  efi_memory_type_t {
  EFI_RESERVED_MEMORY_TYPE , EFI_LOADER_CODE , EFI_LOADER_DATA , EFI_BOOT_SERVICES_CODE ,
  EFI_BOOT_SERVICES_DATA , EFI_RUNTIME_SERVICES_CODE , EFI_RUNTIME_SERVICES_DATA , EFI_CONVENTIONAL_MEMORY ,
  EFI_UNUSABLE_MEMORY , EFI_ACPI_RECLAIM_MEMORY , EFI_ACPI_MEMORY_NVS , EFI_MEMORY_MAPPED_IO ,
  EFI_MEMORY_MAPPED_IO_PORT_SPACE , EFI_PAL_CODE , EFI_PERSISTENT_MEMORY , EFI_UNACCEPTED_MEMORY ,
  EFI_MAX_MEMORY_TYPE
}
 
enum  efi_timer_delay_t { EFI_TIMER_CANCEL , EFI_TIMER_PERIODIC , EFI_TIMER_RELATIVE , EFI_TIMER_TYPE_MAX }
 
enum  efi_device_path_type_t {
  EFI_DEVICE_PATH_TYPE_HARDWARE =1 , EFI_DEVICE_PATH_TYPE_ACPI =2 , EFI_DEVICE_PATH_TYPE_MESSAGING =3 , EFI_DEVICE_PATH_TYPE_MEDIA =4 ,
  EFI_DEVICE_PATH_TYPE_BIOS_BOOT =5 , EFI_DEVICE_PATH_TYPE_EOF =0x7F
}
 
enum  efi_device_path_subtype_hardware_t {
  EFI_DEVICE_PATH_SUBTYPE_HARDWARE_PCI =1 , EFI_DEVICE_PATH_SUBTYPE_HARDWARE_PCCARD =2 , EFI_DEVICE_PATH_SUBTYPE_HARDWARE_MEMORY_MAPPED =3 , EFI_DEVICE_PATH_SUBTYPE_HARDWARE_VENDOR =4 ,
  EFI_DEVICE_PATH_SUBTYPE_HARDWARE_CONTROLLER =5 , EFI_DEVICE_PATH_SUBTYPE_HARDWARE_BMC =6
}
 
enum  efi_device_path_subtype_acpi_t { EFI_DEVICE_PATH_SUBTYPE_ACPI_ACPI =1 , EFI_DEVICE_PATH_SUBTYPE_ACPI_ACPI_EX =2 , EFI_DEVICE_PATH_SUBTYPE_ACPI_ADR =3 , EFI_DEVICE_PATH_SUBTYPE_ACPI_NVDIMM =4 }
 
enum  efi_device_path_subtype_eof_t { EFI_DEVICE_PATH_SUBTYPE_EOF_EOI =0x01 , EFI_DEVICE_PATH_SUBTYPE_EOF_EOF =0xFF }
 
enum  efi_device_path_subtype_messaging_t {
  EFI_DEVICE_PATH_SUBTYPE_MESSAGING_ATAPI =1 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_SCSI =2 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_FC =3 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_1394 =4 ,
  EFI_DEVICE_PATH_SUBTYPE_MESSAGING_USB =5 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_I2O =6 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_IB =9 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_VENDOR =10 ,
  EFI_DEVICE_PATH_SUBTYPE_MESSAGING_MAC =11 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_IPV4 =12 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_IPV6 =13 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_UART =14 ,
  EFI_DEVICE_PATH_SUBTYPE_MESSAGING_USB_CLASS =15 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_USB_WWID =16 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_LUN =17 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_SATA =18 ,
  EFI_DEVICE_PATH_SUBTYPE_MESSAGING_ISCSI =19 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_VLAN =20 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_FC_EX =21 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_SAS_EX =22 ,
  EFI_DEVICE_PATH_SUBTYPE_MESSAGING_NVME =23 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_URI =24 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_UFS =25 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_SD =26 ,
  EFI_DEVICE_PATH_SUBTYPE_MESSAGING_BLUETOOTH =27 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_WIFI =28 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_EMMC =29 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_BLUETOOTHLE =30 ,
  EFI_DEVICE_PATH_SUBTYPE_MESSAGING_DNS =31 , EFI_DEVICE_PATH_SUBTYPE_MESSAGING_WTF =32
}
 
enum  efi_device_path_subtype_media_t {
  EFI_DEVICE_PATH_SUBTYPE_MEDIA_HDD =1 , EFI_DEVICE_PATH_SUBTYPE_MEDIA_CDROM =2 , EFI_DEVICE_PATH_SUBTYPE_MEDIA_VENDOR =3 , EFI_DEVICE_PATH_SUBTYPE_MEDIA_FILEPATH =4 ,
  EFI_DEVICE_PATH_SUBTYPE_MEDIA_MEDIA =5 , EFI_DEVICE_PATH_SUBTYPE_MEDIA_PWING =6 , EFI_DEVICE_PATH_SUBTYPE_MEDIA_PWING_FW_VOL =7 , EFI_DEVICE_PATH_SUBTYPE_MEDIA_RELATIVE_OFFSET =8 ,
  EFI_DEVICE_PATH_SUBTYPE_MEDIA_RAMDISK =9
}
 
enum  efi_gop_pixel_format_t {
  EFI_PIXEL_RED_GREEN_BLUE_RESERVED_8BIT_PER_COLOR , EFI_PIXEL_BLUE_GREEN_RED_RESERVED_8BIT_PER_COLOR , EFI_PIXEL_BIT_MASK , EFI_PIXEL_BLT_ONLY ,
  EFI_PIXEL_FORMAT_MAX
}
 
enum  efi_gop_blt_operation_t {
  EFI_BLT_VIDEO_FILL , EFI_BLT_VIDEO_TO_BLT_BUFFER , EFI_BLT_BUFFER_TO_VIDEO , EFI_BLT_VIDEO_TO_VIDEO ,
  EFI_GRAPHICS_OUTPUT_BLT_OPERATION_MAX
}
 
enum  efi_pxe_base_code_ip_filter_type_t { EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP = 1 , EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST = 2 , EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS = 4 , EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAT = 8 }
 
enum  efi_pxe_base_code_udp_opflags_t {
  EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP =1 , EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT =2 , EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DST_IP =4 , EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DST_PORT =8 ,
  EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_FILTER =0x10 , EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_FRAGMENT =0x20
}
 
enum  efi_pxe_base_code_boot_type_t {
  EFI_PXE_BASE_CODE_BOOT_TYPE_BOOTSTRAP =0 , FI_PXE_BASE_CODE_BOOT_TYPE_MS_WINNT_RIS =1 , EFI_PXE_BASE_CODE_BOOT_TYPE_INTEL_LCM =2 , EFI_PXE_BASE_CODE_BOOT_TYPE_DOSUNDI =3 ,
  EFI_PXE_BASE_CODE_BOOT_TYPE_NEC_ESMPRO =4 , EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_WSOD =5 , EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_LCCM =6 , EFI_PXE_BASE_CODE_BOOT_TYPE_CA_UNICENTER_TNG =7 ,
  EFI_PXE_BASE_CODE_BOOT_TYPE_HP_OPENVIEW =8 , EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_9 =9 , EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_10 =10 , EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_11 =11 ,
  EFI_PXE_BASE_CODE_BOOT_TYPE_NOT_USED_12 =12 , EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_INSTALL =13 , EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_BOOT =14 , EFI_PXE_BASE_CODE_BOOT_TYPE_REMBO =15 ,
  EFI_PXE_BASE_CODE_BOOT_TYPE_BEOBOOT =16 , EFI_PXE_BASE_CODE_BOOT_TYPE_PXETEST =65535
}
 
enum  efi_pxe_base_code_tftp_opcode_t {
  EFI_PXE_BASE_CODE_TFTP_FIRST , EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE , EFI_PXE_BASE_CODE_TFTP_READ_FILE , EFI_PXE_BASE_CODE_TFTP_WRITE_FILE ,
  EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY , EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE , EFI_PXE_BASE_CODE_MTFTP_READ_FILE , EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY ,
  EFI_PXE_BASE_CODE_MTFTP_LAST
}
 

Functions

int8_t efi_create_guid (efi_guid_t *guid)
 
int8_t efi_guid_equal (efi_guid_t guid1, efi_guid_t guid2)
 
disk_partition_context_tgpt_create_partition_context (efi_guid_t *type, const char_t *name, uint64_t start, uint64_t end)
 
disk_tgpt_get_or_create_gpt_disk (disk_t *underlaying_disk)
 

Detailed Description

efi interface

This work is licensed under TURNSTONE OS Public License. Please read and understand latest version of Licence.

Macro Definition Documentation

◆ ___EFI_H

#define ___EFI_H   0

prevent duplicate header error macro

◆ EFI_PMBR_PART_TYPE

#define EFI_PMBR_PART_TYPE   0xEE

special efi part named as protected efi part and its type is 0xEE

◆ EFIAPI

#define EFIAPI   __attribute__((ms_abi))

function call abi

Enumeration Type Documentation

◆ efi_device_path_subtype_messaging_t

Enumerator
EFI_DEVICE_PATH_SUBTYPE_MESSAGING_WTF 

NVDIMM_NS & REST uses it.