MdeModulePkg: Add a new API ResetSystem for DXE ResetSystemLib

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1460

Add a new API ResetSystem for DXE ResetSystemLib. So the consumer of
ResetSystemLib can use this API to reset system with additional reset
data.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Zhichao Gao 2019-02-21 08:59:40 +08:00 committed by Liming Gao
parent 23812dcea9
commit 6b20fd3d94
1 changed files with 27 additions and 1 deletions

View File

@ -1,7 +1,7 @@
/** @file /** @file
DXE Reset System Library instance that calls gRT->ResetSystem(). DXE Reset System Library instance that calls gRT->ResetSystem().
Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.<BR> Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at which accompanies this distribution. The full text of the license may be found at
@ -96,3 +96,29 @@ ResetPlatformSpecific (
{ {
gRT->ResetSystem (EfiResetPlatformSpecific, EFI_SUCCESS, DataSize, ResetData); gRT->ResetSystem (EfiResetPlatformSpecific, EFI_SUCCESS, DataSize, ResetData);
} }
/**
The ResetSystem function 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
ResetSystem (
IN EFI_RESET_TYPE ResetType,
IN EFI_STATUS ResetStatus,
IN UINTN DataSize,
IN VOID *ResetData OPTIONAL
)
{
gRT->ResetSystem (ResetType, ResetStatus, DataSize, ResetData);
}