summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/FirmwareKit/CoreBoot/CoreBoot.h
blob: 5fe3f4ea8837d05d4037253e196aa614592222d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* -------------------------------------------

	Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved.

------------------------------------------- */

#pragma once

#include <NewKit/Defines.h>

namespace Firmware::Detail::CoreBoot
{
	using namespace NeOS;

	struct LEHeader;

	/// @brief Linear Executable Header
	/// @author Amlal EL Mahrouss
	struct ATTRIBUTE(aligned(4)) LEHeader
	{
		const Char	 fMagic[2];		// magic number
		const Char	 fName[10];		// operating system name
		const UInt32 fRevision;		// firmware revision
		const UInt32 fStartAddress; // start address (master/slave(s) thread)

#ifdef NE_IS_EXTENDED_COREBOOT
		const UIntPtr fMasterStructure;		   // master structure for MP/PM and device tree and such (ARM)
		const UIntPtr fMasterStructureVersion; // master structure version.
#endif
	};
} // namespace Firmware::Detail::CoreBoot