+++ /dev/null
-/*++ @file\r
- Entrypoint of AcpiResetDxe driver.\r
-\r
-Copyright (c) 2010, Intel Corporation \r
-All rights reserved. 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
-\r
-#include "Reset.h"\r
-\r
-EFI_ACPI_DESCRIPTION mAcpiDescription;\r
-\r
-/**\r
- Reset the system.\r
-\r
- @param[in] ResetType Warm or cold\r
- @param[in] ResetStatus Possible cause of reset\r
- @param[in] DataSize Size of ResetData in bytes\r
- @param[in] ResetData Optional Unicode string\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-EfiAcpiResetSystem (\r
- IN EFI_RESET_TYPE ResetType,\r
- IN EFI_STATUS ResetStatus,\r
- IN UINTN DataSize,\r
- IN CHAR16 *ResetData OPTIONAL\r
- )\r
-{\r
- AcpiResetSystem (ResetType, ResetStatus, DataSize, ResetData, &mAcpiDescription);\r
-}\r
-\r
-/**\r
- Initialize the state information for the Reset Architectural Protocol.\r
-\r
- @param[in] ImageHandle Image handle of the loaded driver\r
- @param[in] SystemTable Pointer to the System Table\r
-\r
- @retval EFI_SUCCESS Thread can be successfully created\r
- @retval EFI_UNSUPPORTED Cannot find the info to reset system\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-InitializeReset (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- )\r
-{\r
- EFI_STATUS Status;\r
- EFI_HANDLE Handle;\r
- //\r
- // Initialize AcpiDescription\r
- //\r
- if (!GetAcpiDescription (&mAcpiDescription)) {\r
- return EFI_UNSUPPORTED;\r
- }\r
-\r
- //\r
- // Make sure the Reset Architectural Protocol is not already installed in the system\r
- //\r
- ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gEfiResetArchProtocolGuid);\r
-\r
- //\r
- // Hook the runtime service table\r
- //\r
- SystemTable->RuntimeServices->ResetSystem = EfiAcpiResetSystem;\r
-\r
- //\r
- // Now install the Reset RT AP on a new handle\r
- //\r
- Handle = NULL;\r
- Status = gBS->InstallMultipleProtocolInterfaces (\r
- &Handle,\r
- &gEfiResetArchProtocolGuid,\r
- NULL,\r
- NULL\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
-\r
- return Status;\r
-}\r