ExchangeInfo->StackStart = PeiCpuMpData->Buffer;\r
ExchangeInfo->StackSize = PeiCpuMpData->CpuApStackSize;\r
ExchangeInfo->BufferStart = PeiCpuMpData->WakeupBuffer;\r
- ExchangeInfo->PmodeOffset = PeiCpuMpData->AddressMap.PModeEntryOffset;\r
- ExchangeInfo->LmodeOffset = PeiCpuMpData->AddressMap.LModeEntryOffset;\r
+ ExchangeInfo->ModeOffset = PeiCpuMpData->AddressMap.ModeEntryOffset;\r
ExchangeInfo->Cr3 = AsmReadCr3 ();\r
ExchangeInfo->CodeSegment = AsmReadCs ();\r
ExchangeInfo->DataSegment = AsmReadDs ();\r
//\r
typedef struct {\r
UINT8 *RendezvousFunnelAddress;\r
- UINTN PModeEntryOffset;\r
- UINTN LModeEntryOffset;\r
+ UINTN ModeEntryOffset;\r
UINTN RendezvousFunnelSize;\r
} MP_ASSEMBLY_ADDRESS_MAP;\r
\r
IA32_DESCRIPTOR GdtrProfile;\r
IA32_DESCRIPTOR IdtrProfile;\r
UINTN BufferStart;\r
- UINTN PmodeOffset;\r
+ UINTN ModeOffset;\r
UINTN NumApsExecuting;\r
UINTN CodeSegment;\r
UINTN DataSegment;\r
- UINTN LmodeOffset;\r
UINTN Cr3;\r
PEI_CPU_MP_DATA *PeiCpuMpData;\r
} MP_CPU_EXCHANGE_INFO;\r
GdtrLocation equ LockLocation + 10h\r
IdtrLocation equ LockLocation + 16h\r
BufferStartLocation equ LockLocation + 1Ch\r
-PmodeOffsetLocation equ LockLocation + 20h\r
+ModeOffsetLocation equ LockLocation + 20h\r
NumApsExecutingLoction equ LockLocation + 24h\r
CodeSegmentLocation equ LockLocation + 28h\r
DataSegmentLocation equ LockLocation + 2Ch\r
db 66h, 8Bh, 1Ch ; mov ebx, dword ptr [si]\r
\r
db 0BEh ; opcode of mov si, mem16\r
- dw PmodeOffsetLocation ; mov si, PmodeOffsetLocation\r
+ dw ModeOffsetLocation ; mov si, ModeOffsetLocation\r
db 66h, 8Bh, 04h ; mov eax, [si]\r
db 0BEh ; opcode of mov si, mem16\r
dw CodeSegmentLocation ; mov si, CodeSegmentLocation\r
\r
mov ebx, dword ptr [ebp+24h]\r
mov dword ptr [ebx], RendezvousFunnelProcStart\r
- mov dword ptr [ebx + 4h], Flat32Start - RendezvousFunnelProcStart\r
- mov dword ptr [ebx + 8h], 0\r
- mov dword ptr [ebx + 0ch], RendezvousFunnelProcEnd - RendezvousFunnelProcStart\r
+ mov dword ptr [ebx + 4h], Flat32Start - RendezvousFunnelProcStart\r
+ mov dword ptr [ebx + 8h], RendezvousFunnelProcEnd - RendezvousFunnelProcStart\r
\r
popad\r
ret\r
mov si, BufferStartLocation\r
mov ebx, [si]\r
\r
- mov si, PmodeOffsetLocation\r
+ mov si, ModeOffsetLocation\r
mov eax, [si]\r
mov si, CodeSegmentLocation\r
mov edx, [si]\r
mov ebx, [ebp + 24h]\r
mov dword [ebx], RendezvousFunnelProcStart\r
mov dword [ebx + 4h], Flat32Start - RendezvousFunnelProcStart\r
- mov dword [ebx + 8h], 0\r
- mov dword [ebx + 0ch], RendezvousFunnelProcEnd - RendezvousFunnelProcStart\r
+ mov dword [ebx + 8h], RendezvousFunnelProcEnd - RendezvousFunnelProcStart\r
\r
popad\r
ret\r
GdtrLocation equ LockLocation + 20h\r
IdtrLocation equ LockLocation + 2Ah\r
BufferStartLocation equ LockLocation + 34h\r
-PmodeOffsetLocation equ LockLocation + 3Ch\r
+ModeOffsetLocation equ LockLocation + 3Ch\r
NumApsExecutingLoction equ LockLocation + 44h\r
CodeSegmentLocation equ LockLocation + 4Ch\r
DataSegmentLocation equ LockLocation + 54h\r
-LmodeOffsetLocation equ LockLocation + 5Ch\r
-Cr3Location equ LockLocation + 64h\r
+Cr3Location equ LockLocation + 5Ch\r
\r
;-------------------------------------------------------------------------------\r
db 66h, 8Bh, 1Ch ; mov ebx, dword ptr [si]\r
\r
db 0BFh ; opcode of mov di, mem16 \r
- dw LmodeOffsetLocation ; mov di, LmodeOffsetLocation\r
+ dw ModeOffsetLocation ; mov di, ModeOffsetLocation\r
db 66h, 8Bh, 05h ; mov eax, [di]\r
db 0BFh ; opcode of mov di, mem16 \r
dw CodeSegmentLocation ; mov di, CodeSegmentLocation\r
AsmGetAddressMap PROC\r
mov rax, offset RendezvousFunnelProcStart\r
mov qword ptr [rcx], rax\r
- mov qword ptr [rcx + 8h], 0\r
- mov qword ptr [rcx + 10h], LongModeStart - RendezvousFunnelProcStart\r
- mov qword ptr [rcx + 18h], RendezvousFunnelProcEnd - RendezvousFunnelProcStart\r
+ mov qword ptr [rcx + 8h], LongModeStart - RendezvousFunnelProcStart\r
+ mov qword ptr [rcx + 10h], RendezvousFunnelProcEnd - RendezvousFunnelProcStart\r
ret\r
AsmGetAddressMap ENDP\r
\r
mov si, BufferStartLocation\r
mov ebx, [si]\r
\r
- mov di, LmodeOffsetLocation\r
+ mov di, ModeOffsetLocation\r
mov eax, [di]\r
mov di, CodeSegmentLocation\r
mov edx, [di]\r
ASM_PFX(AsmGetAddressMap):\r
mov rax, ASM_PFX(RendezvousFunnelProc)\r
mov qword [rcx], rax\r
- mov qword [rcx + 8h], 0\r
- mov qword [rcx + 10h], LongModeStart - RendezvousFunnelProcStart\r
- mov qword [rcx + 18h], RendezvousFunnelProcEnd - RendezvousFunnelProcStart\r
+ mov qword [rcx + 8h], LongModeStart - RendezvousFunnelProcStart\r
+ mov qword [rcx + 10h], RendezvousFunnelProcEnd - RendezvousFunnelProcStart\r
ret\r
\r
;-------------------------------------------------------------------------------------\r