]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/BaseLib/X64/ReadMsr64.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[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
16 __readmsr (
17 int register
18 );
19
20 #pragma intrinsic(__readmsr)
21
22 /**
23 Read data to MSR.
24
25 @param Index Register index of MSR.
26
27 @return Value read from MSR.
28
29 **/
30 UINT64
31 EFIAPI
32 AsmReadMsr64 (
33 IN UINT32 Index
34 )
35 {
36 UINT64 Value;
37 BOOLEAN Flag;
38
39 Flag = FilterBeforeMsrRead (Index, &Value);
40 if (Flag) {
41 Value = __readmsr (Index);
42 }
43
44 FilterAfterMsrRead (Index, &Value);
45
46 return Value;
47 }