mirror of
https://github.com/reactos/reactos.git
synced 2025-06-01 07:28:19 +00:00
[NTOSKRNL/AMD64]
- Add more required feature bits - Initialize the PAT MSR - Enable NX in EFER MSR svn path=/trunk/; revision=58846
This commit is contained in:
parent
4d5fd81d67
commit
a08eef8b31
1 changed files with 12 additions and 5 deletions
|
@ -14,7 +14,8 @@
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#define REQUIRED_FEATURE_BITS (KF_RDTSC|KF_CR4|KF_CMPXCHG8B|KF_XMMI|KF_XMMI64| \
|
#define REQUIRED_FEATURE_BITS (KF_RDTSC|KF_CR4|KF_CMPXCHG8B|KF_XMMI|KF_XMMI64| \
|
||||||
KF_NX_BIT)
|
KF_LARGE_PAGE|KF_FAST_SYSCALL|KF_GLOBAL_PAGE| \
|
||||||
|
KF_CMOV|KF_PAT|KF_MMX|KF_FXSR|KF_NX_BIT)
|
||||||
|
|
||||||
/* GLOBALS *******************************************************************/
|
/* GLOBALS *******************************************************************/
|
||||||
|
|
||||||
|
@ -162,6 +163,7 @@ VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
KiInitializeCpu(PKIPCR Pcr)
|
KiInitializeCpu(PKIPCR Pcr)
|
||||||
{
|
{
|
||||||
|
ULONG64 Pat;
|
||||||
ULONG FeatureBits;
|
ULONG FeatureBits;
|
||||||
|
|
||||||
/* Initialize gs */
|
/* Initialize gs */
|
||||||
|
@ -221,8 +223,13 @@ KiInitializeCpu(PKIPCR Pcr)
|
||||||
/* Set the flags to be cleared when doing a syscall */
|
/* Set the flags to be cleared when doing a syscall */
|
||||||
__writemsr(MSR_SYSCALL_MASK, EFLAGS_IF_MASK | EFLAGS_TF | EFLAGS_DF);
|
__writemsr(MSR_SYSCALL_MASK, EFLAGS_IF_MASK | EFLAGS_TF | EFLAGS_DF);
|
||||||
|
|
||||||
/* Enable syscall instruction */
|
/* Enable syscall instruction and no-execute support */
|
||||||
__writemsr(MSR_EFER, __readmsr(MSR_EFER) | MSR_SCE);
|
__writemsr(MSR_EFER, __readmsr(MSR_EFER) | MSR_SCE | MSR_NXE);
|
||||||
|
|
||||||
|
/* Initialize the PAT */
|
||||||
|
Pat = (PAT_WB << 0) | (PAT_WC << 8) | (PAT_UCM << 16) | (PAT_UC << 24) |
|
||||||
|
(PAT_WB << 32) | (PAT_WC << 40) | (PAT_UCM << 48) | (PAT_UC << 56);
|
||||||
|
__writemsr(MSR_PAT, Pat);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
|
Loading…
Reference in a new issue