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:
Ruiyu Ni
2018-06-01 15:09:58 +08:00
parent f6406f94dc
commit 6c252691c3
2 changed files with 7 additions and 8 deletions

View File

@ -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);
}