Unify initial stack reservation size calculation
This commit is contained in:
@@ -183,6 +183,9 @@
|
|||||||
#define KTRAP_FRAME_ALIGN 0x10
|
#define KTRAP_FRAME_ALIGN 0x10
|
||||||
#define KTRAP_FRAME_SIZE sizeof(KTRAP_FRAME)
|
#define KTRAP_FRAME_SIZE sizeof(KTRAP_FRAME)
|
||||||
|
|
||||||
|
/* Initial stack reservation size */
|
||||||
|
#define KTHREAD_STACK_INITIAL_RESERVE ((sizeof(KTHREAD_INIT_FRAME) + STACK_ALIGNMENT - 1) & ~(STACK_ALIGNMENT - 1))
|
||||||
|
|
||||||
/* Return address size pushed by 'call' instruction */
|
/* Return address size pushed by 'call' instruction */
|
||||||
#define KRETURN_ADDRESS_SIZE 0x8
|
#define KRETURN_ADDRESS_SIZE 0x8
|
||||||
|
|
||||||
|
|||||||
@@ -201,6 +201,9 @@
|
|||||||
#define KTRAP_FRAME_SIZE sizeof(KTRAP_FRAME)
|
#define KTRAP_FRAME_SIZE sizeof(KTRAP_FRAME)
|
||||||
#define NPX_FRAME_SIZE 0x210
|
#define NPX_FRAME_SIZE 0x210
|
||||||
|
|
||||||
|
/* Initial stack reservation size */
|
||||||
|
#define KTHREAD_STACK_INITIAL_RESERVE ((sizeof(KTHREAD_INIT_FRAME) + STACK_ALIGNMENT - 1) & ~(STACK_ALIGNMENT - 1))
|
||||||
|
|
||||||
/* Number of supported extensions */
|
/* Number of supported extensions */
|
||||||
#define MAXIMUM_SUPPORTED_EXTENSION 512
|
#define MAXIMUM_SUPPORTED_EXTENSION 512
|
||||||
|
|
||||||
|
|||||||
@@ -213,7 +213,6 @@ KE::KernelInit::SwitchBootStack(VOID)
|
|||||||
:
|
:
|
||||||
: [Stack] "r" (Stack),
|
: [Stack] "r" (Stack),
|
||||||
[TargetRoutine] "r" (StartKernel),
|
[TargetRoutine] "r" (StartKernel),
|
||||||
[TotalSize] "i" (FLOATING_SAVE_AREA_SIZE + KEXCEPTION_FRAME_SIZE +
|
[TotalSize] "i" (KTHREAD_STACK_INITIAL_RESERVE)
|
||||||
KSWITCH_FRAME_SIZE + KRETURN_ADDRESS_SIZE)
|
|
||||||
: "memory", "rbp", "rsp");
|
: "memory", "rbp", "rsp");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -215,6 +215,6 @@ KE::KernelInit::SwitchBootStack(VOID)
|
|||||||
: [Cr0Value] "i" (CR0_EM | CR0_MP | CR0_TS),
|
: [Cr0Value] "i" (CR0_EM | CR0_MP | CR0_TS),
|
||||||
[Stack] "r" (Stack),
|
[Stack] "r" (Stack),
|
||||||
[TargetRoutine] "r" (StartKernel),
|
[TargetRoutine] "r" (StartKernel),
|
||||||
[TotalSize] "i" (KTRAP_FRAME_ALIGN + KTRAP_FRAME_SIZE + NPX_FRAME_SIZE + KRETURN_ADDRESS_SIZE)
|
[TotalSize] "i" (KTHREAD_STACK_INITIAL_RESERVE)
|
||||||
: "ebp", "esp", "memory");
|
: "ebp", "esp", "memory");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user