KD64: implement case 0 for KdpReadControlSpace, which returns a pointer to the Pcr.

svn path=/branches/ros-amd64-bringup/; revision=39191
This commit is contained in:
Timo Kreuzer
2009-01-28 23:34:04 +00:00
parent 02f91befe1
commit 0534c6e4a6

View File

@@ -319,16 +319,26 @@ KdpReadControlSpace(IN PDBGKD_MANIPULATE_STATE64 State,
#if defined (_M_AMD64)
if ((ULONG)ReadMemory->TargetBaseAddress <= 2)
{
PKPRCB Prcb = KiProcessorBlock[State->Processor];
PKIPCR Pcr = CONTAINING_RECORD(Prcb, KIPCR, Prcb);
switch ((ULONG_PTR)ReadMemory->TargetBaseAddress)
{
case 0:
/* Copy a pointer to the Pcr */
ControlStart = &Pcr;
RealLength = sizeof(PVOID);
break;
case 1:
ControlStart = &KiProcessorBlock[State->Processor];
/* Copy a pointer to the Prcb */
ControlStart = &Prcb;
RealLength = sizeof(PVOID);
break;
case 2:
ControlStart = &KiProcessorBlock[State->Processor]->
ProcessorState.SpecialRegisters;
/* Copy SpecialRegisters */
ControlStart = &Prcb->ProcessorState.SpecialRegisters;
RealLength = sizeof(KSPECIAL_REGISTERS);
break;