Initial implementation of process initialization
All checks were successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
2023-02-24 19:52:20 +01:00
parent c4d1f1cd0d
commit 9c74aafe3d
7 changed files with 116 additions and 0 deletions

View File

@@ -39,6 +39,10 @@
#define KTIMER_WAIT_BLOCK 3
#define SEMAPHORE_WAIT_BLOCK 2
/* Quantum values */
#define READY_SKIP_QUANTUM 2
#define THREAD_QUANTUM 6
/* Adjust reason */
typedef enum _ADJUST_REASON
{
@@ -96,6 +100,17 @@ typedef enum _KOBJECTS
MaximumKernelObject = 25
} KOBJECTS, *PKOBJECTS;
/* Process states */
typedef enum _KPROCESS_STATE
{
ProcessInMemory,
ProcessOutOfMemory,
ProcessInTransition,
ProcessOutTransition,
ProcessInSwap,
ProcessOutSwap
} KPROCESS_STATE, *PKPROCESS_STATE;
/* Thread state */
typedef enum _KTHREAD_STATE
{
@@ -252,6 +267,13 @@ typedef struct _KWAIT_BLOCK
/* Process control block structure definition */
typedef struct _KPROCESS
{
DISPATCHER_HEADER Header;
LIST_ENTRY ProfileListHead;
ULONG_PTR DirectoryTable[2];
USHORT IopmOffset;
LIST_ENTRY ReadyListHead;
LIST_ENTRY ThreadListHead;
KAFFINITY Affinity;
union
{
struct
@@ -263,6 +285,10 @@ typedef struct _KPROCESS
};
LONG ProcessFlags;
};
SCHAR BasePriority;
SCHAR Quantum;
UCHAR State;
ULONG_PTR StackCount;
} KPROCESS, *PKPROCESS;
/* Thread control block structure definition */