]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/BaseLib/X64/ReadMsr64.c
MdePkg/Baseib: Filter/trace MSR access for IA32/X64
[mirror_edk2.git] / MdePkg / Library / BaseLib / X64 / ReadMsr64.c
1 /** @file
2 CpuBreakpoint function.
3
4 Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 **/
8
9 /**
10 Microsoft Visual Studio 7.1 Function Prototypes for I/O Intrinsics.
11 **/
12
13 #include <Library/RegisterFilterLib.h>
14
15 unsigned __int64 __readmsr (int register);
16
17 #pragma intrinsic(__readmsr)
18
19 /**
20 Read data to MSR.
21
22 @param Index Register index of MSR.
23
24 @return Value read from MSR.
25
26 **/
27 UINT64
28 EFIAPI
29 AsmReadMsr64 (
30 IN UINT32 Index
31 )
32 {
33 UINT64 Value;
34 BOOLEAN Flag;
35
36 Flag = FilterBeforeMsrRead (Index, &Value);
37 if (Flag) {
38 Value = __readmsr (Index);
39 }
40 FilterAfterMsrRead (Index, &Value);
41
42 return Value;
43 }
44