TssDesc->Bits.BaseLow = (UINT16)TssBase;\r
TssDesc->Bits.BaseMid = (UINT8)(TssBase >> 16);\r
TssDesc->Bits.Type = IA32_GDT_TYPE_TSS;\r
- TssDesc->Bits.Present = 1;\r
+ TssDesc->Bits.P = 1;\r
TssDesc->Bits.LimitHigh = 0;\r
TssDesc->Bits.BaseHigh = (UINT8)(TssBase >> 24);\r
\r
TssDesc->Bits.BaseLow = (UINT16)TssBase;\r
TssDesc->Bits.BaseMid = (UINT8)(TssBase >> 16);\r
TssDesc->Bits.Type = IA32_GDT_TYPE_TSS;\r
- TssDesc->Bits.Present = 1;\r
+ TssDesc->Bits.P = 1;\r
TssDesc->Bits.LimitHigh = 0;\r
TssDesc->Bits.BaseHigh = (UINT8)(TssBase >> 24);\r
\r
continue;\r
}\r
\r
- Tss->Eip = (UINT32)(TemplateMap.ExceptionStart\r
+ Tss->EIP = (UINT32)(TemplateMap.ExceptionStart\r
+ Vector * TemplateMap.ExceptionStubHeaderSize);\r
- Tss->Eflags = 0x2;\r
- Tss->Esp = StackTop;\r
- Tss->Cr3 = AsmReadCr3 ();\r
- Tss->Es = AsmReadEs ();\r
- Tss->Cs = AsmReadCs ();\r
- Tss->Ss = AsmReadSs ();\r
- Tss->Ds = AsmReadDs ();\r
- Tss->Fs = AsmReadFs ();\r
- Tss->Gs = AsmReadGs ();\r
+ Tss->EFLAGS = 0x2;\r
+ Tss->ESP = StackTop;\r
+ Tss->CR3 = AsmReadCr3 ();\r
+ Tss->ES = AsmReadEs ();\r
+ Tss->CS = AsmReadCs ();\r
+ Tss->SS = AsmReadSs ();\r
+ Tss->DS = AsmReadDs ();\r
+ Tss->FS = AsmReadFs ();\r
+ Tss->GS = AsmReadGs ();\r
\r
StackTop -= StackSwitchData->Ia32.KnownGoodStackSize;\r
\r
//\r
TssDesc = StackSwitchData->X64.ExceptionTssDesc;\r
Tss = StackSwitchData->X64.ExceptionTss;\r
- if (StackSwitchData->X64.StackSwitchExceptionNumber > ARRAY_SIZE (Tss->Ist)) {\r
+ if (StackSwitchData->X64.StackSwitchExceptionNumber > ARRAY_SIZE (Tss->IST)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
TssDesc->Bits.BaseLow = (UINT16)TssBase;\r
TssDesc->Bits.BaseMidl = (UINT8)(TssBase >> 16);\r
TssDesc->Bits.Type = IA32_GDT_TYPE_TSS;\r
- TssDesc->Bits.Present = 1;\r
+ TssDesc->Bits.P = 1;\r
TssDesc->Bits.LimitHigh = 0;\r
TssDesc->Bits.BaseMidh = (UINT8)(TssBase >> 24);\r
TssDesc->Bits.BaseHigh = (UINT32)(TssBase >> 32);\r
//\r
// Fixup IST\r
//\r
- Tss->Ist[Index] = StackTop;\r
+ Tss->IST[Index] = StackTop;\r
StackTop -= StackSwitchData->X64.KnownGoodStackSize;\r
\r
//\r
VolatileRegisters->Tr < VolatileRegisters->Gdtr.Limit) {\r
Tss = (IA32_TSS_DESCRIPTOR *)(VolatileRegisters->Gdtr.Base +\r
VolatileRegisters->Tr);\r
- if (Tss->Bits.Present == 1) {\r
+ if (Tss->Bits.P == 1) {\r
Tss->Bits.Type &= 0xD; // 1101 - Clear busy bit just in case\r
AsmWriteTr (VolatileRegisters->Tr);\r
}\r