Initial version of the kernel initialization block, needed to start the kernel
All checks were successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
2022-11-12 23:17:44 +01:00
parent 2dd7b09fbb
commit e37e5b97af
3 changed files with 60 additions and 1 deletions

View File

@@ -10,8 +10,12 @@
#define __XTDK_XTFW_H
#include "xttypes.h"
#include "xtcommon.h"
/* Version number of the current kernel initialization block */
#define INITIALIZATION_BLOCK_VERSION 1
/* Memory allocation structures */
typedef enum _LOADER_MEMORY_TYPE
{
@@ -45,4 +49,54 @@ typedef enum _LOADER_MEMORY_TYPE
LoaderMaximum
} LOADER_MEMORY_TYPE, *PLOADER_MEMORY_TYPE;
/* Firmware types enumeration list */
typedef enum _SYSTEM_FIRMWARE_TYPE {
SystemFirmwareInvalid,
SystemFirmwareUnknown,
SystemFirmwareEfi,
SystemFirmwarePcat
} SYSTEM_FIRMWARE_TYPE, *PSYSTEM_FIRMWARE_TYPE;
/* PCAT Firmware information block */
typedef struct _PCAT_FIRMWARE_INFORMATION
{
ULONG PlaceHolder;
} PCAT_FIRMWARE_INFORMATION, *PPCAT_FIRMWARE_INFORMATION;
/* UEFI Firmware information block */
typedef struct _UEFI_FIRMWARE_INFORMATION
{
ULONG EfiVersion;
ULONGLONG EfiImageHandle;
ULONGLONG EfiSystemTable;
PVOID EfiRuntimeServices;
} UEFI_FIRMWARE_INFORMATION, *PUEFI_FIRMWARE_INFORMATION;
/* Firmware information block */
typedef struct _FIRMWARE_INFORMATION_BLOCK
{
SYSTEM_FIRMWARE_TYPE FirmwareType;
union
{
UEFI_FIRMWARE_INFORMATION EfiFirmware;
PCAT_FIRMWARE_INFORMATION PcatFirmware;
};
} FIRMWARE_INFORMATION_BLOCK, *PFIRMWARE_INFORMATION_BLOCK;
/* Boot Loader information block */
typedef struct _LOADER_INFORMATION_BLOCK
{
PVOID DbgPrint;
} LOADER_INFORMATION_BLOCK, *PLOADER_INFORMATION_BLOCK;
/* Loader provided information needed by the kernel to initialize */
typedef struct _KERNEL_INITIALIZATION_BLOCK
{
ULONG Size;
ULONG Version;
ULONG_PTR KernelStack;
LOADER_INFORMATION_BLOCK LoaderInformation;
FIRMWARE_INFORMATION_BLOCK FirmwareInformation;
} KERNEL_INITIALIZATION_BLOCK, *PKERNEL_INITIALIZATION_BLOCK;
#endif /* __XTDK_XTFW_H */