NeKernel dev
Loading...
Searching...
No Matches
Handover.h
Go to the documentation of this file.
1/* ========================================
2
3 Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
4
5======================================== */
6
17
18#pragma once
19
20#include <FirmwareKit/EFI/EFI.h>
21#include <NeKit/Config.h>
22
23#define kHandoverMagic (0xBADCC)
24#define kHandoverVersion (0x0117)
25
26/* Initial bitmap pointer location and size. */
27#define kHandoverBitMapSz (gib_cast(4))
28#define kHandoverStructSz sizeof(HEL::BootInfoHeader)
29
106
struct EfiHandle * EfiHandlePtr
Core Handle Kind Self is like NT's Win32 HANDLE type.
Kernel::HEL::BootInfoHeader * kHandoverHeader
Bootloader information header global variable.
Definition Handover.h:108
Definition Handover.h:30
Int32(* HandoverProc)(BootInfoHeader *boot_info)
Alias of bootloader main type.
Definition Handover.h:104
@ kArchARM64
Definition Handover.h:48
@ kArchAMD64
Definition Handover.h:47
@ kArchCount
Definition Handover.h:50
@ kArchRISCV
Definition Handover.h:49
@ kHandoverTableBS
Definition Handover.h:98
@ kHandoverTableCount
Definition Handover.h:100
@ kHandoverTableST
Definition Handover.h:99
@ kTypeInvalid
Definition Handover.h:38
@ kTypeCount
Definition Handover.h:39
@ kTypeKernel
Definition Handover.h:35
@ kTypeRsrc
Definition Handover.h:37
@ kTypeKernelDriver
Definition Handover.h:36
__SIZE_TYPE__ SizeT
Definition Config.h:60
__UINT32_TYPE__ UInt32
Definition Config.h:44
void * VoidPtr
Definition Config.h:33
__INT32_TYPE__ Int32
Definition Config.h:38
__UINTPTR_TYPE__ UIntPtr
Definition Config.h:62
__UINT64_TYPE__ UInt64
Definition Config.h:48
wchar_t WideChar
Definition Config.h:77
bool Bool
Definition Config.h:50
Definition Handover.h:53
UInt32 f_ImageKey
Definition Handover.h:81
UInt64 f_Version
Definition Handover.h:55
UInt32 f_Width
Definition Handover.h:88
EfiHandlePtr f_ImageHandle
Definition Handover.h:82
SizeT f_BitMapSize
Definition Handover.h:58
VoidPtr f_PageStart
Definition Handover.h:60
struct Kernel::HEL::BootInfoHeader::@163156170125113151221157153323302304120060157320 f_HardwareTables
UInt32 f_PixelFormat
Definition Handover.h:90
VoidPtr f_LibSystemImage
Definition Handover.h:65
SizeT f_KernelSz
Definition Handover.h:63
VoidPtr f_VendorPtr
Definition Handover.h:78
UInt32 f_Height
Definition Handover.h:89
WideChar f_FirmwareVendorName[32]
Definition Handover.h:71
VoidPtr f_BitMapStart
Definition Handover.h:57
VoidPtr f_KernelImage
Definition Handover.h:62
VoidPtr f_FirmwareCustomTables[2]
Definition Handover.h:74
UIntPtr f_The
Definition Handover.h:86
VoidPtr f_MpPtr
Definition Handover.h:79
SizeT f_FirmwareVendorLen
Definition Handover.h:72
UInt32 f_PixelPerLine
Definition Handover.h:91
Bool f_MultiProcessingEnabled
Definition Handover.h:80
SizeT f_StackSz
Definition Handover.h:69
VoidPtr f_SmBios
Definition Handover.h:77
UInt64 f_Magic
Definition Handover.h:54
SizeT f_Size
Definition Handover.h:87
UInt64 f_FirmwareSpecific[8]
Definition Handover.h:94
SizeT f_LibSystemSz
Definition Handover.h:66
struct Kernel::HEL::BootInfoHeader::@214042324261331356317125133243174243242143142057 f_GOP
VoidPtr f_StackTop
Definition Handover.h:68