diff options
Diffstat (limited to 'MdePkg/Library/BaseLib/X64/ReadMsr64.c')
| -rw-r--r-- | MdePkg/Library/BaseLib/X64/ReadMsr64.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/MdePkg/Library/BaseLib/X64/ReadMsr64.c b/MdePkg/Library/BaseLib/X64/ReadMsr64.c index 9b8d4adeba16..e357c43674ee 100644 --- a/MdePkg/Library/BaseLib/X64/ReadMsr64.c +++ b/MdePkg/Library/BaseLib/X64/ReadMsr64.c @@ -1,7 +1,7 @@ /** @file CpuBreakpoint function. - Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR> + Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR> SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -10,7 +10,12 @@ Microsoft Visual Studio 7.1 Function Prototypes for I/O Intrinsics. **/ -unsigned __int64 __readmsr (int register); +#include <Library/RegisterFilterLib.h> + +unsigned __int64 +__readmsr ( + int register + ); #pragma intrinsic(__readmsr) @@ -28,6 +33,15 @@ AsmReadMsr64 ( IN UINT32 Index ) { - return __readmsr (Index); -} + UINT64 Value; + BOOLEAN Flag; + + Flag = FilterBeforeMsrRead (Index, &Value); + if (Flag) { + Value = __readmsr (Index); + } + FilterAfterMsrRead (Index, &Value); + + return Value; +} |
