| /** @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> | |
| void | |
| __writemsr ( | |
| unsigned long Register, | |
| unsigned __int64 Value | |
| ); | |
| #pragma intrinsic(__writemsr) | |
| /** | |
| Write data to MSR. | |
| @param Index The register index of MSR. | |
| @param Value Data wants to be written. | |
| @return Value written to MSR. | |
| **/ | |
| UINT64 | |
| EFIAPI | |
| AsmWriteMsr64 ( | |
| IN UINT32 Index, | |
| IN UINT64 Value | |
| ) | |
| { | |
| BOOLEAN Flag; | |
| Flag = FilterBeforeMsrWrite (Index, &Value); | |
| if (Flag) { | |
| __writemsr (Index, Value); | |
| } | |
| FilterAfterMsrWrite (Index, &Value); | |
| return Value; | |
| } |