diff --git a/xtoskrnl/includes/kepfuncs.h b/xtoskrnl/includes/kepfuncs.h index 4522996..0be25e5 100644 --- a/xtoskrnl/includes/kepfuncs.h +++ b/xtoskrnl/includes/kepfuncs.h @@ -12,6 +12,10 @@ #include +XTAPI +VOID +KepArchInitialize(VOID); + XTAPI VOID KepStartKernel(VOID); diff --git a/xtoskrnl/ke/amd64/krnlinit.c b/xtoskrnl/ke/amd64/krnlinit.c index 34cb546..4e4b1c8 100644 --- a/xtoskrnl/ke/amd64/krnlinit.c +++ b/xtoskrnl/ke/amd64/krnlinit.c @@ -9,6 +9,19 @@ #include +/** + * Performs architecture-specific initialization for the kernel executive. + * + * @return This routine does not return any value. + * + * @since XT 1.0 + */ +XTAPI +VOID +KepArchInitialize(VOID) +{ +} + /** * This routine starts up the XT kernel. It is called after switching boot stack. * diff --git a/xtoskrnl/ke/i686/krnlinit.c b/xtoskrnl/ke/i686/krnlinit.c index 9ab5fd4..d5f14fa 100644 --- a/xtoskrnl/ke/i686/krnlinit.c +++ b/xtoskrnl/ke/i686/krnlinit.c @@ -9,6 +9,19 @@ #include +/** + * Performs architecture-specific initialization for the kernel executive. + * + * @return This routine does not return any value. + * + * @since XT 1.0 + */ +XTAPI +VOID +KepArchInitialize(VOID) +{ +} + /** * This routine starts up the XT kernel. It is called after switching boot stack. * diff --git a/xtoskrnl/ke/krnlinit.c b/xtoskrnl/ke/krnlinit.c index d5adae2..ad6afdd 100644 --- a/xtoskrnl/ke/krnlinit.c +++ b/xtoskrnl/ke/krnlinit.c @@ -51,6 +51,9 @@ KeStartXtSystem(IN PKERNEL_INITIALIZATION_BLOCK Parameters) /* Initialize kernel stacks */ KepInitializeStack(Parameters); + /* Architecture specific initialization */ + KepArchInitialize(); + /* Switch boot stack alligning it to 4 byte boundary */ KepSwitchBootStack(KeInitializationBlock->KernelBootStack & ~0x3); }