]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - EmbeddedPkg/ResetRuntimeDxe/reset.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / EmbeddedPkg / ResetRuntimeDxe / reset.c
... / ...
CommitLineData
1/** @file\r
2\r
3 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
4\r
5 SPDX-License-Identifier: BSD-2-Clause-Patent\r
6\r
7**/\r
8\r
9#include <PiDxe.h>\r
10#include <Protocol/Reset.h>\r
11#include <Library/DebugLib.h>\r
12#include <Library/UefiDriverEntryPoint.h>\r
13#include <Library/UefiBootServicesTableLib.h>\r
14#include <Library/EfiResetSystemLib.h>\r
15\r
16/**\r
17 Resets the entire platform.\r
18\r
19 @param ResetType The type of reset to perform.\r
20 @param ResetStatus The status code for the reset.\r
21 @param DataSize The size, in bytes, of WatchdogData.\r
22 @param ResetData For a ResetType of EfiResetCold, EfiResetWarm, or\r
23 EfiResetShutdown the data buffer starts with a Null-terminated\r
24 Unicode string, optionally followed by additional binary data.\r
25\r
26**/\r
27VOID\r
28EFIAPI\r
29ResetSystemViaLib (\r
30 IN EFI_RESET_TYPE ResetType,\r
31 IN EFI_STATUS ResetStatus,\r
32 IN UINTN DataSize,\r
33 IN VOID *ResetData OPTIONAL\r
34 )\r
35{\r
36 LibResetSystem (ResetType, ResetStatus, DataSize, ResetData);\r
37 return;\r
38}\r
39\r
40EFI_STATUS\r
41EFIAPI\r
42InitializeReset (\r
43 IN EFI_HANDLE ImageHandle,\r
44 IN EFI_SYSTEM_TABLE *SystemTable\r
45 )\r
46{\r
47 EFI_STATUS Status;\r
48 EFI_HANDLE Handle;\r
49\r
50 LibInitializeResetSystem (ImageHandle, SystemTable);\r
51\r
52 SystemTable->RuntimeServices->ResetSystem = ResetSystemViaLib;\r
53\r
54 Handle = NULL;\r
55 Status = gBS->InstallMultipleProtocolInterfaces (\r
56 &Handle,\r
57 &gEfiResetArchProtocolGuid,\r
58 NULL,\r
59 NULL\r
60 );\r
61 ASSERT_EFI_ERROR (Status);\r
62\r
63 return Status;\r
64}\r