diff options
Diffstat (limited to 'api/boot/entry_efi.h')
| -rw-r--r-- | api/boot/entry_efi.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/api/boot/entry_efi.h b/api/boot/entry_efi.h new file mode 100644 index 0000000..7f6b4a4 --- /dev/null +++ b/api/boot/entry_efi.h @@ -0,0 +1,38 @@ +#pragma once + +#include <efi.h> + +#define EfiUserMemoryType (EFI_MEMORY_TYPE)0x80000000 +#define SystemMemoryType EfiUserMemoryType | 0x01 + +struct efi_memory_map_data +{ + UINTN size; + UINTN key; + UINTN descsize; + UINT32 descver; + EFI_MEMORY_DESCRIPTOR data[]; +}; + +struct efi_framebuffer_data +{ + EFI_PIXEL_BITMASK bitmask; + EFI_PHYSICAL_ADDRESS base; + UINTN size; + UINT32 width; + UINT32 height; + UINT32 pitch; + EFI_GRAPHICS_PIXEL_FORMAT pixel_format; + UINT8 pixel_size; +}; + +struct efi_boot_data +{ + EFI_SYSTEM_TABLE *system_table; + struct efi_memory_map_data *memory_map; + struct efi_framebuffer_data *framebuffer; + void *acpi_rsdp; +}; + +typedef void (*kernel_entry_func)(struct efi_boot_data *data); + |
