Publish the files
This commit is contained in:
67
Sources/Platform/Windows/WinHostInitialization.c
Normal file
67
Sources/Platform/Windows/WinHostInitialization.c
Normal file
@@ -0,0 +1,67 @@
|
||||
/*!
|
||||
@file WinHostInitialization.c
|
||||
|
||||
@brief Windows specific implementation of host environment initialization.
|
||||
|
||||
@details On Windows, no special set up is done because the host shares the
|
||||
System process CR3 and IDTR for ease of debugging, and other interactions
|
||||
with the guest as demanded.
|
||||
|
||||
@author Satoshi Tanda
|
||||
|
||||
@copyright Copyright (c) 2020 - , Satoshi Tanda. All rights reserved.
|
||||
*/
|
||||
#include "WinHostInitialization.h"
|
||||
|
||||
//
|
||||
// The host CR3 and IDTR on Windows are the same as that of the System process.
|
||||
// This allows the host to be debugged with Windbg.
|
||||
//
|
||||
static CR3 g_HostCr3;
|
||||
static IDTR g_HostIdtr;
|
||||
|
||||
VOID
|
||||
InitializeHostEnvironment (
|
||||
)
|
||||
{
|
||||
MV_ASSERT(PsGetCurrentProcess() == PsInitialSystemProcess);
|
||||
|
||||
g_HostCr3.Flags = __readcr3();
|
||||
__sidt(&g_HostIdtr);
|
||||
}
|
||||
|
||||
CR3
|
||||
GetHostCr3 (
|
||||
)
|
||||
{
|
||||
return g_HostCr3;
|
||||
}
|
||||
|
||||
CONST IDTR*
|
||||
GetHostIdtr (
|
||||
)
|
||||
{
|
||||
return &g_HostIdtr;
|
||||
}
|
||||
|
||||
VOID
|
||||
InitializeGdt (
|
||||
TASK_STATE_SEGMENT_64* NewTss,
|
||||
SEGMENT_DESCRIPTOR_64* NewGdt,
|
||||
UINT64 NewGdtSize,
|
||||
GDTR* OriginalGdtr
|
||||
)
|
||||
{
|
||||
UNREFERENCED_PARAMETER(NewTss);
|
||||
UNREFERENCED_PARAMETER(NewGdt);
|
||||
UNREFERENCED_PARAMETER(NewGdtSize);
|
||||
UNREFERENCED_PARAMETER(OriginalGdtr);
|
||||
}
|
||||
|
||||
VOID
|
||||
CleanupGdt (
|
||||
CONST GDTR* OriginalGdtr
|
||||
)
|
||||
{
|
||||
UNREFERENCED_PARAMETER(OriginalGdtr);
|
||||
}
|
||||
Reference in New Issue
Block a user