summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/FirmwareKit/Handover.h
diff options
context:
space:
mode:
Diffstat (limited to 'dev/kernel/FirmwareKit/Handover.h')
-rw-r--r--dev/kernel/FirmwareKit/Handover.h155
1 files changed, 74 insertions, 81 deletions
diff --git a/dev/kernel/FirmwareKit/Handover.h b/dev/kernel/FirmwareKit/Handover.h
index 3a5e9e19..fbf4bb28 100644
--- a/dev/kernel/FirmwareKit/Handover.h
+++ b/dev/kernel/FirmwareKit/Handover.h
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
+ Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
------------------------------------------- */
@@ -20,92 +20,85 @@
#include <FirmwareKit/EFI/EFI.h>
#include <NewKit/Defines.h>
-#define kHandoverMagic 0xBADCC
+#define kHandoverMagic 0xBADCC
#define kHandoverVersion 0x0117
/* Initial bitmap pointer location and size. */
#define kHandoverBitMapSz (gib_cast(4))
#define kHandoverStructSz sizeof(HEL::BootInfoHeader)
-namespace Kernel::HEL
-{
- /**
- @brief The executable type enum.
- */
- enum
- {
- kTypeKernel = 100,
- kTypeKernelDriver = 101,
- kTypeRsrc = 102,
- kTypeInvalid = 103,
- kTypeCount = 4,
- };
-
- /**
- @brief The executable architecture enum.
- */
-
- enum
- {
- kArchAMD64 = 122,
- kArchARM64 = 123,
- kArchRISCV = 124,
- kArchCount = 3,
- };
-
- struct BootInfoHeader final
- {
- UInt64 f_Magic;
- UInt64 f_Version;
-
- VoidPtr f_BitMapStart;
- SizeT f_BitMapSize;
-
- VoidPtr f_PageStart;
-
- VoidPtr f_KernelImage;
- SizeT f_KernelSz;
- VoidPtr f_StartupImage;
- SizeT f_StartupSz;
-
- WideChar f_FirmwareVendorName[32];
- SizeT f_FirmwareVendorLen;
-
- VoidPtr f_FirmwareCustomTables[2]; // On EFI 0: BS 1: ST
-
- struct
- {
- VoidPtr f_SmBios;
- VoidPtr f_VendorPtr;
- VoidPtr f_MpPtr;
- Bool f_MultiProcessingEnabled;
- UInt32 f_ImageKey;
- EfiHandlePtr f_ImageHandle;
- } f_HardwareTables;
-
- struct
- {
- UIntPtr f_The;
- SizeT f_Size;
- UInt32 f_Width;
- UInt32 f_Height;
- UInt32 f_PixelFormat;
- UInt32 f_PixelPerLine;
- } f_GOP;
-
- UInt64 f_FirmwareSpecific[8];
- };
-
- enum
- {
- kHandoverTableBS,
- kHandoverTableST,
- kHandoverTableCount,
- };
-
- /// @brief Alias of bootloader main type.
- typedef Int32 (*HandoverProc)(BootInfoHeader* boot_info);
-} // namespace Kernel::HEL
+namespace Kernel::HEL {
+/**
+@brief The executable type enum.
+*/
+enum {
+ kTypeKernel = 100,
+ kTypeKernelDriver = 101,
+ kTypeRsrc = 102,
+ kTypeInvalid = 103,
+ kTypeCount = 4,
+};
+
+/**
+@brief The executable architecture enum.
+*/
+
+enum {
+ kArchAMD64 = 122,
+ kArchARM64 = 123,
+ kArchRISCV = 124,
+ kArchCount = 3,
+};
+
+struct BootInfoHeader final {
+ UInt64 f_Magic;
+ UInt64 f_Version;
+
+ VoidPtr f_BitMapStart;
+ SizeT f_BitMapSize;
+
+ VoidPtr f_PageStart;
+
+ VoidPtr f_KernelImage;
+ SizeT f_KernelSz;
+ VoidPtr f_StartupImage;
+ SizeT f_StartupSz;
+
+ WideChar f_FirmwareVendorName[32];
+ SizeT f_FirmwareVendorLen;
+
+ VoidPtr f_FirmwareCustomTables[2]; // On EFI 0: BS 1: ST
+
+ struct {
+ VoidPtr f_SmBios;
+ VoidPtr f_VendorPtr;
+ VoidPtr f_MpPtr;
+ Bool f_MultiProcessingEnabled;
+ UInt32 f_ImageKey;
+ EfiHandlePtr f_ImageHandle;
+ } f_HardwareTables;
+
+ struct {
+ UIntPtr f_The;
+ SizeT f_Size;
+ UInt32 f_Width;
+ UInt32 f_Height;
+ UInt32 f_PixelFormat;
+ UInt32 f_PixelPerLine;
+ } f_GOP;
+
+ UInt64 f_FirmwareSpecific[8];
+};
+
+enum {
+ kHandoverTableBS,
+ kHandoverTableST,
+ kHandoverTableCount,
+};
+
+/// @brief Alias of bootloader main type.
+typedef Int32 (*HandoverProc)(BootInfoHeader* boot_info);
+} // namespace Kernel::HEL
/// @brief Bootloader information header global variable.
inline Kernel::HEL::BootInfoHeader* kHandoverHeader = nullptr;