TianoCore EDK2 master
Loading...
Searching...
No Matches
ResetSystem.c File Reference
#include "ResetSystem.h"

Go to the source code of this file.

Functions

EFI_STATUS EFIAPI RegisterResetNotify (IN EFI_RESET_NOTIFICATION_PROTOCOL *This, IN EFI_RESET_SYSTEM ResetFunction)
 
EFI_STATUS EFIAPI UnregisterResetNotify (IN EFI_RESET_NOTIFICATION_PROTOCOL *This, IN EFI_RESET_SYSTEM ResetFunction)
 
EFI_STATUS EFIAPI InitializeResetSystem (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
 
VOID EFIAPI RuntimeServiceResetSystem (IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
 

Variables

GLOBAL_REMOVE_IF_UNREFERENCED CHAR16 * mResetTypeStr []
 
UINTN mResetNotifyDepth = 0
 
RESET_NOTIFICATION_INSTANCE mResetNotification
 
RESET_NOTIFICATION_INSTANCE mPlatformSpecificResetFilter
 
RESET_NOTIFICATION_INSTANCE mPlatformSpecificResetHandler
 

Detailed Description

Reset Architectural and Reset Notification protocols implementation.

Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file ResetSystem.c.

Function Documentation

◆ InitializeResetSystem()

EFI_STATUS EFIAPI InitializeResetSystem ( IN EFI_HANDLE  ImageHandle,
IN EFI_SYSTEM_TABLE SystemTable 
)

The driver's entry point.

It initializes the Reset Architectural Protocol.

Parameters
[in]ImageHandleThe firmware allocated handle for the EFI image.
[in]SystemTableA pointer to the EFI System Table.
Return values
EFI_SUCCESSThe entry point is executed successfully.
otherCannot install ResetArch protocol.

Definition at line 171 of file ResetSystem.c.

◆ RegisterResetNotify()

EFI_STATUS EFIAPI RegisterResetNotify ( IN EFI_RESET_NOTIFICATION_PROTOCOL This,
IN EFI_RESET_SYSTEM  ResetFunction 
)

Register a notification function to be called when ResetSystem() is called.

The RegisterResetNotify() function registers a notification function that is called when ResetSystem()is called and prior to completing the reset of the platform. The registered functions must not perform a platform reset themselves. These notifications are intended only for the notification of components which may need some special-purpose maintenance prior to the platform resetting. The list of registered reset notification functions are processed if ResetSystem()is called before ExitBootServices(). The list of registered reset notification functions is ignored if ResetSystem()is called after ExitBootServices().

Parameters
[in]ThisA pointer to the EFI_RESET_NOTIFICATION_PROTOCOL instance.
[in]ResetFunctionPoints to the function to be called when a ResetSystem() is executed.
Return values
EFI_SUCCESSThe reset notification function was successfully registered.
EFI_INVALID_PARAMETERResetFunction is NULL.
EFI_OUT_OF_RESOURCESThere are not enough resources available to register the reset notification function.
EFI_ALREADY_STARTEDThe reset notification function specified by ResetFunction has already been registered.

Definition at line 44 of file ResetSystem.c.

◆ RuntimeServiceResetSystem()

VOID EFIAPI RuntimeServiceResetSystem ( IN EFI_RESET_TYPE  ResetType,
IN EFI_STATUS  ResetStatus,
IN UINTN  DataSize,
IN VOID *ResetData  OPTIONAL 
)

Resets the entire platform.

Parameters
[in]ResetTypeThe type of reset to perform.
[in]ResetStatusThe status code for the reset.
[in]DataSizeThe size, in bytes, of ResetData.
[in]ResetDataFor 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. For a ResetType of EfiResetPlatformSpecific the data buffer also starts with a Null-terminated string that is followed by an EFI_GUID that describes the specific type of reset to perform.

Definition at line 227 of file ResetSystem.c.

◆ UnregisterResetNotify()

EFI_STATUS EFIAPI UnregisterResetNotify ( IN EFI_RESET_NOTIFICATION_PROTOCOL This,
IN EFI_RESET_SYSTEM  ResetFunction 
)

Unregister a notification function.

The UnregisterResetNotify() function removes the previously registered notification using RegisterResetNotify().

Parameters
[in]ThisA pointer to the EFI_RESET_NOTIFICATION_PROTOCOL instance.
[in]ResetFunctionThe pointer to the ResetFunction being unregistered.
Return values
EFI_SUCCESSThe reset notification function was unregistered.
EFI_INVALID_PARAMETERResetFunction is NULL.
EFI_INVALID_PARAMETERThe reset notification function specified by ResetFunction was not previously registered using RegisterResetNotify().

Definition at line 99 of file ResetSystem.c.

Variable Documentation

◆ mPlatformSpecificResetFilter

RESET_NOTIFICATION_INSTANCE mPlatformSpecificResetFilter
Initial value:
= {
RESET_NOTIFICATION_INSTANCE_SIGNATURE,
{
},
}
EFI_STATUS EFIAPI RegisterResetNotify(IN EDKII_PLATFORM_SPECIFIC_RESET_FILTER_PPI *This, IN EFI_RESET_SYSTEM ResetFunction)
Definition: ResetSystem.c:96
EFI_STATUS EFIAPI UnregisterResetNotify(IN EDKII_PLATFORM_SPECIFIC_RESET_FILTER_PPI *This, IN EFI_RESET_SYSTEM ResetFunction)
Definition: ResetSystem.c:186

Definition at line 139 of file ResetSystem.c.

◆ mPlatformSpecificResetHandler

RESET_NOTIFICATION_INSTANCE mPlatformSpecificResetHandler
Initial value:
= {
RESET_NOTIFICATION_INSTANCE_SIGNATURE,
{
},
}

Definition at line 148 of file ResetSystem.c.

◆ mResetNotification

RESET_NOTIFICATION_INSTANCE mResetNotification
Initial value:
= {
RESET_NOTIFICATION_INSTANCE_SIGNATURE,
{
},
}

Definition at line 130 of file ResetSystem.c.

◆ mResetNotifyDepth

UINTN mResetNotifyDepth = 0

Definition at line 19 of file ResetSystem.c.

◆ mResetTypeStr

GLOBAL_REMOVE_IF_UNREFERENCED CHAR16* mResetTypeStr[]
Initial value:
= {
L"Cold", L"Warm", L"Shutdown", L"PlatformSpecific"
}

Definition at line 12 of file ResetSystem.c.