forked from xt-sys/exectos
Initial implementation of process initialization
This commit is contained in:
@@ -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 */
|
||||
|
@@ -14,6 +14,9 @@
|
||||
#include <xttypes.h>
|
||||
|
||||
|
||||
/* Kernel affinity */
|
||||
typedef ULONG_PTR KAFFINITY, *PKAFFINITY;
|
||||
|
||||
/* Interrupt Request Level (IRQL) */
|
||||
typedef UCHAR KIRQL, *PKIRQL;
|
||||
|
||||
|
@@ -30,6 +30,14 @@
|
||||
#define NULL ((PVOID) 0)
|
||||
#define NULL64 ((VOID * PVOID) 0)
|
||||
|
||||
/* Type limits */
|
||||
#define MINCHAR 0x80
|
||||
#define MAXCHAR 0x7F
|
||||
#define MINSHORT 0x8000
|
||||
#define MAXSHORT 0x7FFF
|
||||
#define MINLONG 0x80000000
|
||||
#define MAXLONG 0x7FFFFFFF
|
||||
|
||||
/* Preprocessor macros for defining a structure alignment and packing */
|
||||
#define ALIGN(x) __attribute__((aligned(x)))
|
||||
#define PACK __attribute__((packed))
|
||||
|
@@ -40,6 +40,7 @@ typedef enum _EFI_UART_STOP_BITS_TYPE EFI_UART_STOP_BITS_TYPE, *PEFI_UART_STOP_B
|
||||
typedef enum _EFI_UNIVERSA_GRAPHICS_BLT_OPERATION EFI_UNIVERSA_GRAPHICS_BLT_OPERATION, *PEFI_UNIVERSA_GRAPHICS_BLT_OPERATION;
|
||||
typedef enum _KAPC_ENVIRONMENT KAPC_ENVIRONMENT, *PKAPC_ENVIRONMENT;
|
||||
typedef enum _KOBJECTS KOBJECTS, *PKOBJECTS;
|
||||
typedef enum _KPROCESS_STATE KPROCESS_STATE, *PKPROCESS_STATE;
|
||||
typedef enum _KTHREAD_STATE KTHREAD_STATE, *PKTHREAD_STATE;
|
||||
typedef enum _KTIMER_TYPE KTIMER_TYPE, *PKTIMER_TYPE;
|
||||
typedef enum _LOADER_MEMORY_TYPE LOADER_MEMORY_TYPE, *PLOADER_MEMORY_TYPE;
|
||||
|
Reference in New Issue
Block a user