[edk2] [PATCH 01/10] MdePkg/PeiServicesLib: Add PeiServicesResetSystem2()

Ruiyu Ni posted 10 patches 6 years, 10 months ago
There is a newer version of this series
[edk2] [PATCH 01/10] MdePkg/PeiServicesLib: Add PeiServicesResetSystem2()
Posted by Ruiyu Ni 6 years, 10 months ago
From: Michael D Kinney <michael.d.kinney@intel.com>

Add the PeiServicesResetSytstem2() function to the PeiServiesLib
to call the ResetSystem2() services in the PEI Services Table.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
---
 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);
+}
-- 
2.15.1.windows.2

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH 01/10] MdePkg/PeiServicesLib: Add PeiServicesResetSystem2()
Posted by Zeng, Star 6 years, 10 months ago
On 2018/2/2 14:45, Ruiyu Ni wrote:
> From: Michael D Kinney <michael.d.kinney@intel.com>
> 
> Add the PeiServicesResetSytstem2() function to the PeiServiesLib
> to call the ResetSystem2() services in the PEI Services Table.
> 
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Ruiyu Ni <ruiyu.ni@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
> Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>

Reviewed-by: Star Zeng <star.zeng@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