audk/MdeModulePkg/Core/Dxe/SysCall/ARM/InitializeMsr.c
2025-04-14 12:07:06 +03:00

59 lines
700 B
C

/** @file
Copyright (c) 2024, Mikhail Krichanov. All rights reserved.
SPDX-License-Identifier: BSD-3-Clause
**/
#include <Library/ArmLib.h>
#include "DxeMain.h"
VOID
EFIAPI
ArmSetPan (
VOID
);
VOID
EFIAPI
ArmClearPan (
VOID
);
VOID
EFIAPI
InitializeMsr (
IN OUT EFI_CONFIGURATION_TABLE *Table,
IN UINTN NumberOfEntries
)
{
if (ArmHasPan ()) {
//
// Enable Privileged Access Never feature.
//
ArmSetPan ();
} else {
DEBUG ((DEBUG_ERROR, "Core: Failed to initialize MSRs for Ring3.\n"));
ASSERT (FALSE);
}
}
VOID
EFIAPI
DisableSMAP (
VOID
)
{
ArmClearPan ();
}
VOID
EFIAPI
EnableSMAP (
VOID
)
{
ArmSetPan ();
}