Initial process and thread related structures
Some checks failed
ci/woodpecker/push/build Pipeline failed

This commit is contained in:
Rafal Kupiec 2023-02-08 23:40:58 +01:00
parent 929d3dfae7
commit 9132c47cd9
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
7 changed files with 53 additions and 2 deletions

View File

@ -444,6 +444,7 @@ typedef struct _KPROCESSOR_CONTROL_BLOCK
{
ULONG MxCsr;
UCHAR Number;
PKTHREAD CurrentThread;
ULONG64 RspBase;
ULONG_PTR SetMember;
KPROCESSOR_STATE ProcessorState;

View File

@ -347,6 +347,7 @@ typedef struct _KPROCESSOR_STATE
/* Processor Control Block (PRCB) structure definition */
typedef struct _KPROCESSOR_CONTROL_BLOCK
{
PKTHREAD CurrentThread;
UCHAR Number;
ULONG_PTR SetMember;
KPROCESSOR_STATE ProcessorState;

View File

@ -18,6 +18,14 @@
/* Maximum number of exception parameters */
#define EXCEPTION_MAXIMUM_PARAMETERS 15
/* APC Types */
typedef enum _MODE
{
KernelMode,
UserMode,
MaximumMode
} MODE, *PMODE;
/* Exception disposition return values */
typedef enum _EXCEPTION_DISPOSITION
{
@ -41,8 +49,30 @@ typedef struct _EXCEPTION_RECORD
/* Exception registration record structure definition */
typedef struct _EXCEPTION_REGISTRATION_RECORD
{
PEXCEPTION_REGISTRATION_RECORD Next;
PEXCEPTION_ROUTINE Handler;
PEXCEPTION_REGISTRATION_RECORD Next;
PEXCEPTION_ROUTINE Handler;
} EXCEPTION_REGISTRATION_RECORD, *PEXCEPTION_REGISTRATION_RECORD;
/* APC state structure definition */
typedef struct _KAPC_STATE
{
LIST_ENTRY ApcListHead[MaximumMode];
PKPROCESS Process;
BOOLEAN KernelApcInProgress;
BOOLEAN KernelApcPending;
BOOLEAN UserApcPending;
} KAPC_STATE, *PKAPC_STATE;
/* Process control block structure definition */
typedef struct _KPROCESS
{
INT PlaceHolder;
} KPROCESS, *PKPROCESS;
/* Thread control block structure definition */
typedef struct _KTHREAD
{
KAPC_STATE ApcState;
} KTHREAD, *PKTHREAD;
#endif /* __XTDK_KEFUNCS_H */

View File

@ -30,6 +30,7 @@
#include <iotypes.h>
#include <ketypes.h>
#include <ldrtypes.h>
#include <pstypes.h>
#include <rtltypes.h>
/* Architecture-specific low level data types headers */

View File

@ -38,6 +38,7 @@ typedef enum _EFI_UART_PARITY_TYPE EFI_UART_PARITY_TYPE, *PEFI_UART_PARITY_TYPE;
typedef enum _EFI_UART_STOP_BITS_TYPE EFI_UART_STOP_BITS_TYPE, *PEFI_UART_STOP_BITS_TYPE;
typedef enum _EFI_UNIVERSA_GRAPHICS_BLT_OPERATION EFI_UNIVERSA_GRAPHICS_BLT_OPERATION, *PEFI_UNIVERSA_GRAPHICS_BLT_OPERATION;
typedef enum _LOADER_MEMORY_TYPE LOADER_MEMORY_TYPE, *PLOADER_MEMORY_TYPE;
typedef enum _MODE MODE, *PMODE;
typedef enum _SYSTEM_FIRMWARE_TYPE SYSTEM_FIRMWARE_TYPE, *PSYSTEM_FIRMWARE_TYPE;
/* Structures forward references */
@ -182,12 +183,17 @@ 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_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 _EPROCESS EPROCESS, *PEPROCESS;
typedef struct _ETHREAD ETHREAD, *PETHREAD;
typedef struct _EXCEPTION_RECORD EXCEPTION_RECORD, *PEXCEPTION_RECORD;
typedef struct _EXCEPTION_REGISTRATION_RECORD EXCEPTION_REGISTRATION_RECORD, *PEXCEPTION_REGISTRATION_RECORD;
typedef struct _FIRMWARE_INFORMATION_BLOCK FIRMWARE_INFORMATION_BLOCK, *PFIRMWARE_INFORMATION_BLOCK;
typedef struct _FLOAT128 FLOAT128, *PFLOAT128;
typedef struct _GUID GUID, *PGUID;
typedef struct _KAPC_STATE KAPC_STATE, *PKAPC_STATE;
typedef struct _KERNEL_INITIALIZATION_BLOCK KERNEL_INITIALIZATION_BLOCK, *PKERNEL_INITIALIZATION_BLOCK;
typedef struct _KPROCESS KPROCESS, *PKPROCESS;
typedef struct _KTHREAD KTHREAD, *PKTHREAD;
typedef struct _LDR_DATA_TABLE_ENTRY LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
typedef struct _LIST_ENTRY LIST_ENTRY, *PLIST_ENTRY;
typedef struct _LIST_ENTRY32 LIST_ENTRY32, *PLIST_ENTRY32;

View File

@ -22,4 +22,10 @@ EXTERN VOID (*KeDbgPrint)(IN PWCHAR Format, IN ...);
/* Kernel initialization block passed by boot loader */
EXTERN PKERNEL_INITIALIZATION_BLOCK KeInitializationBlock;
/* Kernel initial process */
EXTERN EPROCESS KeInitialProcess;
/* Kernel initial thread */
EXTERN ETHREAD KeInitialThread;
#endif /* __XTOSKRNL_GLOBALS_H */

View File

@ -17,3 +17,9 @@ VOID (*KeDbgPrint)(IN PWCHAR Format, IN ...) = NULL;
/* Kernel initialization block passed by boot loader */
PKERNEL_INITIALIZATION_BLOCK KeInitializationBlock;
/* Kernel initial process */
EPROCESS KeInitialProcess;
/* Kernel initial thread */
ETHREAD KeInitialThread;