On 2018/2/2 14:45, Ruiyu Ni wrote:
From: Michael D Kinney <michael.d.kin...@intel.com>
Add the PeiServicesResetSytstem2() function to the PeiServiesLib
to call the ResetSystem2() services in the PEI Services Table.
Cc: Liming Gao <liming....@intel.com>
Cc: Ruiyu Ni <ruiyu...@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kin...@intel.com>
Signed-off-by: Ruiyu Ni <ruiyu...@intel.com>
Reviewed-by: Star Zeng <star.z...@intel.com>
Thanks,
Star
---
MdePkg/Include/Library/PeiServicesLib.h | 24 ++++++++++++++++++++++++
MdePkg/Library/PeiServicesLib/PeiServicesLib.c | 26 ++++++++++++++++++++++++++
2 files changed, 50 insertions(+)
diff --git a/MdePkg/Include/Library/PeiServicesLib.h
b/MdePkg/Include/Library/PeiServicesLib.h
index 9fc22a10c1..0be72237f2 100644
--- a/MdePkg/Include/Library/PeiServicesLib.h
+++ b/MdePkg/Include/Library/PeiServicesLib.h
@@ -540,4 +540,28 @@ PeiServicesInstallFvInfo2Ppi (
IN UINT32 AuthenticationStatus
);
+/**
+ Resets the entire platform.
+
+ @param[in] ResetType The type of reset to perform.
+ @param[in] ResetStatus The status code for the reset.
+ @param[in] DataSize The size, in bytes, of ResetData.
+ @param[in] ResetData For a ResetType of EfiResetCold, EfiResetWarm, or
EfiResetShutdown
+ the data buffer starts with a Null-terminated
string, optionally
+ followed by additional binary data. The string is
a description
+ that the caller may use to further indicate the
reason for the
+ system reset. ResetData is only valid if
ResetStatus is something
+ other than EFI_SUCCESS unless the ResetType is
EfiResetPlatformSpecific
+ where a minimum amount of ResetData is always
required.
+
+**/
+VOID
+EFIAPI
+PeiServicesResetSystem2 (
+ IN EFI_RESET_TYPE ResetType,
+ IN EFI_STATUS ResetStatus,
+ IN UINTN DataSize,
+ IN VOID *ResetData OPTIONAL
+ );
+
#endif
diff --git a/MdePkg/Library/PeiServicesLib/PeiServicesLib.c
b/MdePkg/Library/PeiServicesLib/PeiServicesLib.c
index 89166ccd38..d0838ed709 100644
--- a/MdePkg/Library/PeiServicesLib/PeiServicesLib.c
+++ b/MdePkg/Library/PeiServicesLib/PeiServicesLib.c
@@ -789,3 +789,29 @@ PeiServicesInstallFvInfo2Ppi (
InternalPeiServicesInstallFvInfoPpi (FALSE, FvFormat, FvInfo, FvInfoSize,
ParentFvName, ParentFileName, AuthenticationStatus);
}
+/**
+ Resets the entire platform.
+
+ @param[in] ResetType The type of reset to perform.
+ @param[in] ResetStatus The status code for the reset.
+ @param[in] DataSize The size, in bytes, of ResetData.
+ @param[in] ResetData For a ResetType of EfiResetCold, EfiResetWarm, or
EfiResetShutdown
+ the data buffer starts with a Null-terminated
string, optionally
+ followed by additional binary data. The string is
a description
+ that the caller may use to further indicate the
reason for the
+ system reset. ResetData is only valid if
ResetStatus is something
+ other than EFI_SUCCESS unless the ResetType is
EfiResetPlatformSpecific
+ where a minimum amount of ResetData is always
required.
+
+**/
+VOID
+EFIAPI
+PeiServicesResetSystem2 (
+ IN EFI_RESET_TYPE ResetType,
+ IN EFI_STATUS ResetStatus,
+ IN UINTN DataSize,
+ IN VOID *ResetData OPTIONAL
+ )
+{
+ (*GetPeiServicesTablePointer())->ResetSystem2 (ResetType, ResetStatus,
DataSize, ResetData);
+}
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel