]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Core/Pei/Reset/Reset.c
MdeModulePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdeModulePkg / Core / Pei / Reset / Reset.c
index 2e9ac8215b94fb3f45958ea16da600349d49f77e..263eace239ececa5508dd9ef6aea259dd933a632 100644 (file)
@@ -1,14 +1,8 @@
 /** @file\r
   Pei Core Reset System Support\r
-  \r
-Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials                          \r
-are licensed and made available under the terms and conditions of the BSD License         \r
-which accompanies this distribution.  The full text of the license may be found at        \r
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
@@ -29,32 +23,42 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 EFI_STATUS\r
 EFIAPI\r
 PeiResetSystem (\r
-  IN CONST EFI_PEI_SERVICES         **PeiServices\r
+  IN CONST EFI_PEI_SERVICES  **PeiServices\r
   )\r
 {\r
-  EFI_STATUS        Status;\r
-  EFI_PEI_RESET_PPI *ResetPpi;\r
+  EFI_STATUS         Status;\r
+  EFI_PEI_RESET_PPI  *ResetPpi;\r
 \r
-  Status = PeiServicesLocatePpi (\r
-             &gEfiPeiResetPpiGuid,         \r
-             0,                         \r
-             NULL,                      \r
-             (VOID **)&ResetPpi                  \r
-             );\r
+  //\r
+  // Attempt to use newer ResetSystem2().  If this returns, then ResetSystem2()\r
+  // is not available.\r
+  //\r
+  PeiResetSystem2 (EfiResetCold, EFI_SUCCESS, 0, NULL);\r
 \r
   //\r
-  // LocatePpi returns EFI_NOT_FOUND on error\r
+  // Look for PEI Reset System PPI\r
   //\r
+  Status = PeiServicesLocatePpi (\r
+             &gEfiPeiResetPpiGuid,\r
+             0,\r
+             NULL,\r
+             (VOID **)&ResetPpi\r
+             );\r
   if (!EFI_ERROR (Status)) {\r
     return ResetPpi->ResetSystem (PeiServices);\r
-  } \r
+  }\r
+\r
   //\r
-  // Report Status Code that Reset PPI is not available\r
+  // Report Status Code that Reset PPI is not available.\r
   //\r
   REPORT_STATUS_CODE (\r
     EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
     (EFI_SOFTWARE_PEI_CORE | EFI_SW_PS_EC_RESET_NOT_AVAILABLE)\r
     );\r
+\r
+  //\r
+  // No reset PPIs are available yet.\r
+  //\r
   return  EFI_NOT_AVAILABLE_YET;\r
 }\r
 \r
@@ -63,7 +67,7 @@ PeiResetSystem (
 \r
   @param[in] ResetType      The type of reset to perform.\r
   @param[in] ResetStatus    The status code for the reset.\r
-  @param[in] DataSize       The size, in bytes, of WatchdogData.\r
+  @param[in] DataSize       The size, in bytes, of ResetData.\r
   @param[in] ResetData      For a ResetType of EfiResetCold, EfiResetWarm, or EfiResetShutdown\r
                             the data buffer starts with a Null-terminated string, optionally\r
                             followed by additional binary data. The string is a description\r
@@ -76,22 +80,24 @@ PeiResetSystem (
 VOID\r
 EFIAPI\r
 PeiResetSystem2 (\r
-  IN EFI_RESET_TYPE     ResetType,\r
-  IN EFI_STATUS         ResetStatus,\r
-  IN UINTN              DataSize,\r
-  IN VOID               *ResetData OPTIONAL\r
+  IN EFI_RESET_TYPE  ResetType,\r
+  IN EFI_STATUS      ResetStatus,\r
+  IN UINTN           DataSize,\r
+  IN VOID            *ResetData OPTIONAL\r
   )\r
 {\r
-  EFI_STATUS            Status;\r
-  EFI_PEI_RESET2_PPI    *Reset2Ppi;\r
+  EFI_STATUS          Status;\r
+  EFI_PEI_RESET2_PPI  *Reset2Ppi;\r
 \r
+  //\r
+  // Look for PEI Reset System 2 PPI\r
+  //\r
   Status = PeiServicesLocatePpi (\r
              &gEfiPeiReset2PpiGuid,\r
              0,\r
              NULL,\r
              (VOID **)&Reset2Ppi\r
              );\r
-\r
   if (!EFI_ERROR (Status)) {\r
     Reset2Ppi->ResetSystem (ResetType, ResetStatus, DataSize, ResetData);\r
     return;\r
@@ -105,4 +111,3 @@ PeiResetSystem2 (
     (EFI_SOFTWARE_PEI_CORE | EFI_SW_PS_EC_RESET_NOT_AVAILABLE)\r
     );\r
 }\r
-\r