TianoCore EDK2 master
Loading...
Searching...
No Matches
ResetSystem.h
Go to the documentation of this file.
1
9#ifndef _RESET_SYSTEM_H_
10#define _RESET_SYSTEM_H_
11
12#include <PiDxe.h>
13
14#include <Protocol/Reset.h>
18#include <Guid/CapsuleVendor.h>
19
20#include <Library/BaseLib.h>
21#include <Library/DebugLib.h>
22#include <Library/UefiLib.h>
30
31//
32// The maximum recurstion depth to ResetSystem() by reset notification handlers
33//
34#define MAX_RESET_NOTIFY_DEPTH 10
35
36typedef struct {
37 UINT32 Signature;
38 LIST_ENTRY Link;
39 EFI_RESET_SYSTEM ResetNotify;
41#define RESET_NOTIFY_ENTRY_SIGNATURE SIGNATURE_32('r', 's', 't', 'n')
42#define RESET_NOTIFY_ENTRY_FROM_LINK(a) CR (a, RESET_NOTIFY_ENTRY, Link, RESET_NOTIFY_ENTRY_SIGNATURE)
43
44typedef struct {
45 UINT32 Signature;
46 EFI_RESET_NOTIFICATION_PROTOCOL ResetNotification;
47 LIST_ENTRY ResetNotifies;
49#define RESET_NOTIFICATION_INSTANCE_SIGNATURE SIGNATURE_32('r', 's', 't', 'i')
50#define RESET_NOTIFICATION_INSTANCE_FROM_THIS(a) \
51 CR (a, RESET_NOTIFICATION_INSTANCE, ResetNotification, RESET_NOTIFICATION_INSTANCE_SIGNATURE)
52
66EFIAPI
68 IN EFI_HANDLE ImageHandle,
69 IN EFI_SYSTEM_TABLE *SystemTable
70 );
71
88VOID
89EFIAPI
91 IN EFI_RESET_TYPE ResetType,
92 IN EFI_STATUS ResetStatus,
93 IN UINTN DataSize,
94 IN VOID *ResetData OPTIONAL
95 );
96
97#endif
UINT64 UINTN
#define IN
Definition: Base.h:279
VOID EFIAPI RuntimeServiceResetSystem(IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
Definition: ResetSystem.c:227
EFI_STATUS EFIAPI InitializeResetSystem(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
Definition: ResetSystem.c:171
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
EFI_RESET_TYPE
VOID(EFIAPI * EFI_RESET_SYSTEM)(IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
Definition: UefiSpec.h:1089