Initial version of the kernel initialization block, needed to start the kernel
All checks were successful
ci/woodpecker/push/build Pipeline was successful
All checks were successful
ci/woodpecker/push/build Pipeline was successful
This commit is contained in:
parent
2dd7b09fbb
commit
e37e5b97af
@ -10,8 +10,12 @@
|
|||||||
#define __XTDK_XTFW_H
|
#define __XTDK_XTFW_H
|
||||||
|
|
||||||
#include "xttypes.h"
|
#include "xttypes.h"
|
||||||
|
#include "xtcommon.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* Version number of the current kernel initialization block */
|
||||||
|
#define INITIALIZATION_BLOCK_VERSION 1
|
||||||
|
|
||||||
/* Memory allocation structures */
|
/* Memory allocation structures */
|
||||||
typedef enum _LOADER_MEMORY_TYPE
|
typedef enum _LOADER_MEMORY_TYPE
|
||||||
{
|
{
|
||||||
@ -45,4 +49,54 @@ typedef enum _LOADER_MEMORY_TYPE
|
|||||||
LoaderMaximum
|
LoaderMaximum
|
||||||
} LOADER_MEMORY_TYPE, *PLOADER_MEMORY_TYPE;
|
} 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 */
|
#endif /* __XTDK_XTFW_H */
|
||||||
|
@ -142,10 +142,14 @@ typedef struct _EFI_USB_DEVICE_PATH EFI_USB_DEVICE_PATH, *PEFI_USB_DEVICE_PATH;
|
|||||||
typedef struct _EFI_USB_WWID_DEVICE_PATH EFI_USB_WWID_DEVICE_PATH, *PEFI_USB_WWID_DEVICE_PATH;
|
typedef struct _EFI_USB_WWID_DEVICE_PATH EFI_USB_WWID_DEVICE_PATH, *PEFI_USB_WWID_DEVICE_PATH;
|
||||||
typedef struct _EFI_VENDOR_DEVICE_PATH EFI_VENDOR_DEVICE_PATH, *PEFI_VENDOR_DEVICE_PATH;
|
typedef struct _EFI_VENDOR_DEVICE_PATH EFI_VENDOR_DEVICE_PATH, *PEFI_VENDOR_DEVICE_PATH;
|
||||||
typedef struct _EFI_VLAN_DEVICE_PATH EFI_VLAN_DEVICE_PATH, *PEFI_VLAN_DEVICE_PATH;
|
typedef struct _EFI_VLAN_DEVICE_PATH EFI_VLAN_DEVICE_PATH, *PEFI_VLAN_DEVICE_PATH;
|
||||||
|
typedef struct _FIRMWARE_INFORMATION_BLOCK FIRMWARE_INFORMATION_BLOCK, *PFIRMWARE_INFORMATION_BLOCK;
|
||||||
typedef struct _GUID GUID, *PGUID;
|
typedef struct _GUID GUID, *PGUID;
|
||||||
|
typedef struct _KERNEL_INITIALIZATION_BLOCK KERNEL_INITIALIZATION_BLOCK, *PKERNEL_INITIALIZATION_BLOCK;
|
||||||
typedef struct _LIST_ENTRY LIST_ENTRY, *PLIST_ENTRY;
|
typedef struct _LIST_ENTRY LIST_ENTRY, *PLIST_ENTRY;
|
||||||
typedef struct _LIST_ENTRY32 LIST_ENTRY32, *PLIST_ENTRY32;
|
typedef struct _LIST_ENTRY32 LIST_ENTRY32, *PLIST_ENTRY32;
|
||||||
typedef struct _LIST_ENTRY64 LIST_ENTRY64, *PLIST_ENTRY64;
|
typedef struct _LIST_ENTRY64 LIST_ENTRY64, *PLIST_ENTRY64;
|
||||||
|
typedef struct _LOADER_INFORMATION_BLOCK LOADER_INFORMATION_BLOCK, *PLOADER_INFORMATION_BLOCK;
|
||||||
|
typedef struct _PCAT_FIRMWARE_INFORMATION PCAT_FIRMWARE_INFORMATION, *PPCAT_FIRMWARE_INFORMATION;
|
||||||
typedef struct _PECOFF_IMAGE_BASE_RELOCATION PECOFF_IMAGE_BASE_RELOCATION, *PPECOFF_IMAGE_BASE_RELOCATION;
|
typedef struct _PECOFF_IMAGE_BASE_RELOCATION PECOFF_IMAGE_BASE_RELOCATION, *PPECOFF_IMAGE_BASE_RELOCATION;
|
||||||
typedef struct _PECOFF_IMAGE_DATA PECOFF_IMAGE_DATA, *PPECOFF_IMAGE_DATA;
|
typedef struct _PECOFF_IMAGE_DATA PECOFF_IMAGE_DATA, *PPECOFF_IMAGE_DATA;
|
||||||
typedef struct _PECOFF_IMAGE_DATA_DIRECTORY PECOFF_IMAGE_DATA_DIRECTORY, *PPECOFF_IMAGE_DATA_DIRECTORY;
|
typedef struct _PECOFF_IMAGE_DATA_DIRECTORY PECOFF_IMAGE_DATA_DIRECTORY, *PPECOFF_IMAGE_DATA_DIRECTORY;
|
||||||
@ -166,6 +170,7 @@ typedef struct _PECOFF_IMAGE_ROM_HEADER PECOFF_IMAGE_ROM_HEADER, *PPECOFF_IMAGE_
|
|||||||
typedef struct _PECOFF_IMAGE_ROM_OPTIONAL_HEADER PECOFF_IMAGE_ROM_OPTIONAL_HEADER, *PPECOFF_IMAGE_ROM_OPTIONAL_HEADER;
|
typedef struct _PECOFF_IMAGE_ROM_OPTIONAL_HEADER PECOFF_IMAGE_ROM_OPTIONAL_HEADER, *PPECOFF_IMAGE_ROM_OPTIONAL_HEADER;
|
||||||
typedef struct _PECOFF_IMAGE_SECTION_HEADER PECOFF_IMAGE_SECTION_HEADER, *PPECOFF_IMAGE_SECTION_HEADER;
|
typedef struct _PECOFF_IMAGE_SECTION_HEADER PECOFF_IMAGE_SECTION_HEADER, *PPECOFF_IMAGE_SECTION_HEADER;
|
||||||
typedef struct _PECOFF_IMAGE_VXD_HEADER PECOFF_IMAGE_VXD_HEADER, *PPECOFF_IMAGE_VXD_HEADER;
|
typedef struct _PECOFF_IMAGE_VXD_HEADER PECOFF_IMAGE_VXD_HEADER, *PPECOFF_IMAGE_VXD_HEADER;
|
||||||
|
typedef struct _UEFI_FIRMWARE_INFORMATION UEFI_FIRMWARE_INFORMATION, *PUEFI_FIRMWARE_INFORMATION;
|
||||||
|
|
||||||
/* Unions forward references */
|
/* Unions forward references */
|
||||||
typedef union _EFI_DEV_PATH EFI_DEV_PATH, *PEFI_DEV_PATH;
|
typedef union _EFI_DEV_PATH EFI_DEV_PATH, *PEFI_DEV_PATH;
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
XTAPI
|
XTAPI
|
||||||
VOID
|
VOID
|
||||||
KeStartXtSystem()
|
KeStartXtSystem(IN PKERNEL_INITIALIZATION_BLOCK LoaderBlock)
|
||||||
{
|
{
|
||||||
/* Enter infinite kernel thread loop */
|
/* Enter infinite kernel thread loop */
|
||||||
for(;;);
|
for(;;);
|
||||||
|
Loading…
Reference in New Issue
Block a user