summaryrefslogtreecommitdiff
path: root/api/efi/tables.h
diff options
context:
space:
mode:
authorAda Christine <adachristine18@gmail.com>2023-01-04 21:41:09 +0000
committerAda Christine <adachristine18@gmail.com>2023-01-04 21:41:09 +0000
commitfcd3e818a9f1b7009c9c027a69b2ef0e7ef71293 (patch)
tree8ea63301dae5ba65ee92876f87dc501d032130d0 /api/efi/tables.h
parenteb022d780afe1e5e92547b6b3c2369dde1c4cc0b (diff)
use homespun efi code
Diffstat (limited to 'api/efi/tables.h')
-rw-r--r--api/efi/tables.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/api/efi/tables.h b/api/efi/tables.h
new file mode 100644
index 0000000..e7c312a
--- /dev/null
+++ b/api/efi/tables.h
@@ -0,0 +1,110 @@
+#pragma once
+
+#include <efi/types.h>
+#include <efi/services.h>
+#include <efi/console.h>
+#include <efi/image.h>
+
+#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249
+#define EFI_SYSTEM_TABLE_REVISION EFI_2_8_SYSTEM_TABLE_REVISION
+#define EFI_2_80_SYSTEM_TABLE_REVISION ((2<<16) | (80))
+#define EFI_2_70_SYSTEM_TABLE_REVISION ((2<<16) | (70))
+#define EFI_2_60_SYSTEM_TABLE_REVISION ((2<<16) | (60))
+#define EFI_2_50_SYSTEM_TABLE_REVISION ((2<<16) | (50))
+#define EFI_2_40_SYSTEM_TABLE_REVISION ((2<<16) | (40))
+#define EFI_2_31_SYSTEM_TABLE_REVISION ((2<<16) | (31))
+#define EFI_2_30_SYSTEM_TABLE_REVISION ((2<<16) | (30))
+#define EFI_2_20_SYSTEM_TABLE_REVISION ((2<<16) | (20))
+#define EFI_2_10_SYSTEM_TABLE_REVISION ((2<<16) | (10))
+#define EFI_2_00_SYSTEM_TABLE_REVISION ((2<<16) | (00))
+#define EFI_1_10_SYSTEM_TABLE_REVISION ((1<<16) | (10))
+#define EFI_1_02_SYSTEM_TABLE_REVISION ((1<<16) | (02))
+
+#define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION
+
+typedef struct
+{
+ EFI_GUID VendorGuid;
+ VOID *VendorTable;
+}
+EFI_CONFIGURATION_TABLE;
+
+struct EFI_SYSTEM_TABLE
+{
+ EFI_TABLE_HEADER Hdr;
+ CHAR16 *FirmwareVendor;
+ UINT32 FirmwareRevision;
+ EFI_HANDLE ConsoleInHandle;
+ VOID *ConIn;
+ EFI_HANDLE ConsoleOutHandle;
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
+ EFI_HANDLE StandardErrorHandle;
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *StdErr;
+ VOID *RuntimeServices;
+ EFI_BOOT_SERVICES *BootServices;
+ UINTN NumberOfTableEntries;
+ EFI_CONFIGURATION_TABLE *ConfigurationTable;
+};
+
+#define EFI_BOOT_SERVICES_SIGNATURE 0x56524553544f4f42
+#define EFI_BOOT_SERVICES_REVISION EFI_SPECIFICATION_VERSION
+
+struct EFI_BOOT_SERVICES
+{
+ EFI_TABLE_HEADER Hdr;
+
+ EFIX_UNUSED_FUNC RaiseTPL;
+ EFIX_UNUSED_FUNC RestoreTPL;
+
+ EFI_ALLOCATE_PAGES AllocatePages;
+ EFI_FREE_PAGES FreePages;
+ EFI_GET_MEMORY_MAP GetMemoryMap;
+ EFI_ALLOCATE_POOL AllocatePool;
+ EFI_FREE_POOL FreePool;
+
+ EFIX_UNUSED_FUNC CreateEvent;
+ EFIX_UNUSED_FUNC SetTimer;
+ EFIX_UNUSED_FUNC WaitForEvent;
+ EFIX_UNUSED_FUNC SignalEvent;
+ EFIX_UNUSED_FUNC CloseEvent;
+ EFIX_UNUSED_FUNC CheckEvent;
+
+ EFIX_UNUSED_FUNC InstallProtocolInterface;
+ EFIX_UNUSED_FUNC ReinstallProtocolInterface;
+ EFIX_UNUSED_FUNC UninstallProtocolInterface;
+ EFIX_UNUSED_FUNC HandleProtocol;
+ VOID* Reserved;
+ EFIX_UNUSED_FUNC RegisterProtocolNotify;
+ EFI_LOCATE_HANDLE LocateHandle;
+ EFIX_UNUSED_FUNC LocateDevicePath;
+ EFIX_UNUSED_FUNC InstallConfigurationTable;
+
+ EFIX_UNUSED_FUNC LoadImage;
+ EFIX_UNUSED_FUNC StartImage;
+ EFI_EXIT Exit;
+ EFIX_UNUSED_FUNC UnloadImage;
+ EFI_EXIT_BOOT_SERVICES ExitBootServices;
+
+ EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
+ EFI_STALL Stall;
+ EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;
+
+ EFIX_UNUSED_FUNC ConnectController;
+ EFIX_UNUSED_FUNC DisconnectController;
+
+ EFI_OPEN_PROTOCOL OpenProtocol;
+ EFI_CLOSE_PROTOCOL CloseProtocol;
+ EFIX_UNUSED_FUNC OpenProtocolInformation;
+
+ EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle;
+ EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer;
+ EFI_LOCATE_PROTOCOL LocateProtocol;
+ EFIX_UNUSED_FUNC InstallMultipleProtocolInterfaces;
+ EFIX_UNUSED_FUNC UninstallMultipleProtocolInterfaces;
+
+ EFI_CALCULATE_CRC32 CalculateCrc32;
+ EFI_COPY_MEM CopyMem;
+ EFI_SET_MEM SetMem;
+ EFIX_UNUSED_FUNC CreateEventEx;
+};
+