/* SPDX-FileCopyrightText: Mike Krinkin */ /* SPDX-License-Identifier: Unlicense */ #ifndef __EFI_TYPES_H__ #define __EFI_TYPES_H__ #include #include #include typedef void *efi_handle_t; typedef uint64_t efi_status_t; typedef uint64_t efi_uint_t; static const efi_status_t EFI_SUCCESS = 0; static const efi_status_t EFI_LOAD_ERROR = 1; static const efi_status_t EFI_INVALID_PARAMETER = 2; static const efi_status_t EFI_UNSUPPORTED = 3; static const efi_status_t EFI_BUFFER_TOO_SMALL = 5; struct efi_time { uint16_t year; uint8_t month; uint8_t day; uint8_t hour; uint8_t minute; uint8_t second; uint8_t pad1; uint32_t nanosecond; int16_t time_zone; uint8_t daylight; uint8_t pad2; }; struct efi_guid { uint32_t data1; uint16_t data2; uint16_t data3; uint8_t data4[8]; }; struct efi_table_header { uint64_t signature; uint32_t revision; uint32_t header_size; uint32_t crc32; uint32_t reserved; }; struct efi_memory_descriptor { uint32_t type; uint64_t physical_start; uint64_t virtual_start; uint64_t pages; uint64_t attributes; }; enum efi_allocate_type { EFI_ALLOCATE_ANY_PAGES, EFI_ALLOCATE_MAX_ADDRESS, EFI_ALLOCATE_ADDRESS, EFI_MAX_ALLOCATE_TYPE, }; enum efi_memory_type { 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_CONVENTIAL_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_MAX_MEMORY_TYPE, }; #endif // __EFI_TYPES_H__