diff options
Diffstat (limited to 'api/loader/data_efi.h')
| -rw-r--r-- | api/loader/data_efi.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/api/loader/data_efi.h b/api/loader/data_efi.h new file mode 100644 index 0000000..f159de6 --- /dev/null +++ b/api/loader/data_efi.h @@ -0,0 +1,45 @@ +#pragma once + +#include <kernel/memory/range.h> + +#include <efi.h> + +#include <stddef.h> + +#define EfiUserMemoryType (EFI_MEMORY_TYPE)0x80000000 +#define SystemMemoryType EfiUserMemoryType | 0x01 + +enum efi_boot_data_type +{ + MEMORY_MAP_DATA, + FRAMEBUFFER_DATA, +}; + +struct efi_memory_map_data +{ + UINTN size; + UINTN key; + UINTN descsize; + UINT32 descver; + EFI_MEMORY_DESCRIPTOR data[]; +}; + +struct efi_framebuffer_data +{ + struct memory_range buffer; + UINT32 width; + UINT32 height; + UINT32 pitch; + UINT8 pxsize; + EFI_PIXEL_BITMASK bitmask; + EFI_GRAPHICS_PIXEL_FORMAT pxformat; +}; + +struct efi_boot_data +{ + EFI_SYSTEM_TABLE *system_table; + struct efi_memory_map_data *memory_map; + struct efi_framebuffer_data *framebuffer; + void *acpi_rsdp; +}; + |
