\r
#include "PiSmmCpuDxeSmm.h"\r
\r
-extern UINT32 mSmmRelocationOriginalAddressPtr32;\r
-extern UINT32 mRebasedFlagAddr32;\r
+X86_ASSEMBLY_PATCH_LABEL gPatchSmmRelocationOriginalAddressPtr32;\r
+X86_ASSEMBLY_PATCH_LABEL gPatchRebasedFlagAddr32;\r
\r
UINTN mSmmRelocationOriginalAddress;\r
volatile BOOLEAN *mRebasedFlag;\r
UINTN TempValue;\r
\r
mRebasedFlag = RebasedFlag;\r
- mRebasedFlagAddr32 = (UINT32)(UINTN)mRebasedFlag;\r
+ PatchInstructionX86 (\r
+ gPatchRebasedFlagAddr32,\r
+ (UINT32)(UINTN)mRebasedFlag,\r
+ 4\r
+ );\r
\r
CpuState = (SMRAM_SAVE_STATE_MAP *)(UINTN)(SMM_DEFAULT_SMBASE + SMRAM_SAVE_STATE_MAP_OFFSET);\r
mSmmRelocationOriginalAddress = HookReturnFromSmm (\r
// Use temp value to fix ICC complier warning\r
//\r
TempValue = (UINTN)&mSmmRelocationOriginalAddress;\r
- mSmmRelocationOriginalAddressPtr32 = (UINT32)TempValue;\r
+ PatchInstructionX86 (\r
+ gPatchSmmRelocationOriginalAddressPtr32,\r
+ (UINT32)TempValue,\r
+ 4\r
+ );\r
}\r