mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +02:00
MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib
Current DxeResetSystemLib depends on UefiRuntimeLib because it calls EfiResetSystem() API exposed by UefiRuntimeLib. Due to the commit: "MdePkg/UefiRuntimeLib: Do not allow to be linked by DXE driver" which reverts UefiRuntimeLib to only support DXE_RUNTIME_DRIVER, removing UefiRuntimeLib dependency makes the DxeResetSystemLib can be used by DXE drivers. The patch also disallows the DxeResetSystemLib to be linked by runtime driver, SMM drivers. Runtime driver cannot link to this library because the gRT is not converted when entering to RT. SMM driver cannot link to this library because calling RT services from SMM after EndOfDxe violates security guideline. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com> Cc: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
f6406f94dc
commit
6c252691c3
@ -14,7 +14,7 @@
|
||||
|
||||
#include <PiDxe.h>
|
||||
#include <Library/ResetSystemLib.h>
|
||||
#include <Library/UefiRuntimeLib.h>
|
||||
#include <Library/UefiRuntimeServicesTableLib.h>
|
||||
|
||||
/**
|
||||
This function causes a system-wide reset (cold reset), in which
|
||||
@ -30,7 +30,7 @@ ResetCold (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
EfiResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);
|
||||
gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -45,7 +45,7 @@ ResetWarm (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
EfiResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
|
||||
gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -60,7 +60,7 @@ ResetShutdown (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
EfiResetSystem (EfiResetShutdown, EFI_SUCCESS, 0, NULL);
|
||||
gRT->ResetSystem (EfiResetShutdown, EFI_SUCCESS, 0, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -94,5 +94,5 @@ ResetPlatformSpecific (
|
||||
IN VOID *ResetData
|
||||
)
|
||||
{
|
||||
EfiResetSystem (EfiResetPlatformSpecific, EFI_SUCCESS, DataSize, ResetData);
|
||||
gRT->ResetSystem (EfiResetPlatformSpecific, EFI_SUCCESS, DataSize, ResetData);
|
||||
}
|
||||
|
@ -19,7 +19,7 @@
|
||||
FILE_GUID = C2BDE4F6-65EE-440B-87B5-83ABF10EF45B
|
||||
MODULE_TYPE = DXE_DRIVER
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = ResetSystemLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
|
||||
LIBRARY_CLASS = ResetSystemLib|DXE_CORE DXE_DRIVER UEFI_APPLICATION UEFI_DRIVER
|
||||
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
@ -35,5 +35,4 @@
|
||||
MdeModulePkg/MdeModulePkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
UefiRuntimeLib
|
||||
|
||||
UefiRuntimeServicesTableLib
|
||||
|
Loading…
x
Reference in New Issue
Block a user