mirror of https://github.com/acidanthera/audk.git
45 lines
809 B
C
45 lines
809 B
C
/** @file
|
|
CpuBreakpoint function.
|
|
|
|
Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
/**
|
|
Microsoft Visual Studio 7.1 Function Prototypes for I/O Intrinsics.
|
|
**/
|
|
|
|
#include <Library/RegisterFilterLib.h>
|
|
|
|
unsigned __int64 __readmsr (int register);
|
|
|
|
#pragma intrinsic(__readmsr)
|
|
|
|
/**
|
|
Read data to MSR.
|
|
|
|
@param Index Register index of MSR.
|
|
|
|
@return Value read from MSR.
|
|
|
|
**/
|
|
UINT64
|
|
EFIAPI
|
|
AsmReadMsr64 (
|
|
IN UINT32 Index
|
|
)
|
|
{
|
|
UINT64 Value;
|
|
BOOLEAN Flag;
|
|
|
|
Flag = FilterBeforeMsrRead (Index, &Value);
|
|
if (Flag) {
|
|
Value = __readmsr (Index);
|
|
}
|
|
FilterAfterMsrRead (Index, &Value);
|
|
|
|
return Value;
|
|
}
|
|
|