summaryrefslogtreecommitdiff
path: root/api/loader/data_efi.h
diff options
context:
space:
mode:
Diffstat (limited to 'api/loader/data_efi.h')
-rw-r--r--api/loader/data_efi.h45
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;
+};
+