Initial implementation of the thread initialization

This commit is contained in:
2023-02-23 20:11:21 +01:00
parent 9c083dc050
commit c4d1f1cd0d
13 changed files with 356 additions and 13 deletions

View File

@@ -28,6 +28,14 @@ XTAPI
VOID
KepArchInitialize(VOID);
XTAPI
VOID
KepInitializeThreadContext(IN PKTHREAD Thread,
IN PKSYSTEM_ROUTINE SystemRoutine,
IN PKSTART_ROUTINE StartRoutine,
IN PVOID StartContext,
IN PCONTEXT ContextRecord);
XTAPI
VOID
KepStartKernel(VOID);

View File

@@ -28,4 +28,7 @@ EXTERN EPROCESS KeInitialProcess;
/* Kernel initial thread */
EXTERN ETHREAD KeInitialThread;
/* Kernel service descriptor table */
EXTERN KSERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTable[KSERVICE_TABLES_COUNT];
#endif /* __XTOSKRNL_GLOBALS_H */

View File

@@ -25,19 +25,16 @@ PKTHREAD
KeGetCurrentThread(VOID);
XTAPI
XTSTATUS
KeInitializeThread(IN PKTHREAD Thread,
IN PVOID Stack,
IN PKSYSTEM_ROUTINE SystemRoutine,
IN PKSTART_ROUTINE StartRoutine,
IN PVOID StartContext,
IN PCONTEXT Context,
IN PVOID EnvironmentBlock,
IN PKPROCESS Process);
VOID
KepArchInitialize(VOID);
XTAPI
VOID
KepArchInitialize(VOID);
KepInitializeThreadContext(IN PKTHREAD Thread,
IN PKSYSTEM_ROUTINE SystemRoutine,
IN PKSTART_ROUTINE StartRoutine,
IN PVOID StartContext,
IN PCONTEXT ContextRecord);
XTAPI
VOID

View File

@@ -10,7 +10,39 @@
#define __XTOSKRNL_KEPFUNCS_H
#include <xtos.h>
#include ARCH_HEADER(kepfuncs.h)
XTAPI
XTSTATUS
KeInitializeThread(IN PKTHREAD Thread,
IN PVOID Stack,
IN PKSYSTEM_ROUTINE SystemRoutine,
IN PKSTART_ROUTINE StartRoutine,
IN PVOID StartContext,
IN PCONTEXT Context,
IN PVOID EnvironmentBlock,
IN PKPROCESS Process);
XTAPI
VOID
KeStartThread(IN PKTHREAD Thread);
XTAPI
VOID
KepSuspendNop(IN PKAPC Apc,
IN OUT PKNORMAL_ROUTINE *NormalRoutine,
IN OUT PVOID *NormalContext,
IN OUT PVOID *SystemArgument1,
IN OUT PVOID *SystemArgument2);
XTAPI
VOID
KepSuspendRundown(IN PKAPC Apc);
XTAPI
VOID
KepSuspendThread(IN PVOID NormalContext,
IN PVOID SystemArgument1,
IN PVOID SystemArgument2);
#endif /* __XTOSKRNL_KEPFUNCS_H */

View File

@@ -13,3 +13,6 @@
#include "globals.h"
#include "arpfuncs.h"
#include "kepfuncs.h"
#include ARCH_HEADER(arpfuncs.h)
#include ARCH_HEADER(kepfuncs.h)