TianoCore EDK2 master
Loading...
Searching...
No Matches
FaultTolerantWriteSmmCommon.h
Go to the documentation of this file.
1
10#ifndef __SMM_FTW_COMMON_H__
11#define __SMM_FTW_COMMON_H__
12
15
16#define FTW_FUNCTION_GET_MAX_BLOCK_SIZE 1
17#define FTW_FUNCTION_ALLOCATE 2
18#define FTW_FUNCTION_WRITE 3
19#define FTW_FUNCTION_RESTART 4
20#define FTW_FUNCTION_ABORT 5
21#define FTW_FUNCTION_GET_LAST_WRITE 6
22
23typedef struct {
24 UINTN Function;
25 EFI_STATUS ReturnStatus;
26 UINT8 Data[1];
28
32#define SMM_COMMUNICATE_HEADER_SIZE (OFFSET_OF (EFI_MM_COMMUNICATE_HEADER, Data))
33
37#define SMM_FTW_COMMUNICATE_HEADER_SIZE (OFFSET_OF (SMM_FTW_COMMUNICATE_FUNCTION_HEADER, Data))
38
39typedef struct {
40 UINTN BlockSize;
42
43typedef struct {
44 EFI_GUID CallerId;
45 UINTN PrivateDataSize;
46 UINTN NumberOfWrites;
48
49typedef struct {
50 EFI_LBA Lba;
51 UINTN Offset;
52 UINTN PrivateDataSize;
53 EFI_PHYSICAL_ADDRESS FvbBaseAddress;
54 EFI_FVB_ATTRIBUTES_2 FvbAttributes;
55 UINTN Length;
56 UINT8 Data[1];
58
59typedef struct {
60 EFI_PHYSICAL_ADDRESS FvbBaseAddress;
61 EFI_FVB_ATTRIBUTES_2 FvbAttributes;
63
64typedef struct {
65 EFI_GUID CallerId;
66 EFI_LBA Lba;
67 UINTN Offset;
68 UINTN Length;
69 UINTN PrivateDataSize;
70 BOOLEAN Complete;
71 UINT8 Data[1];
73
84 VOID
85 );
86
96BOOLEAN
99 IN UINT64 Length
100 );
101
105VOID
107 VOID
108 );
109
110#endif
UINT64 UINTN
VOID FtwNotifySmmReady(VOID)
BOOLEAN FtwSmmIsPrimaryBufferValid(IN EFI_PHYSICAL_ADDRESS Buffer, IN UINT64 Length)
EFI_STATUS MmFaultTolerantWriteInitialize(VOID)
#define IN
Definition: Base.h:279
UINT32 EFI_FVB_ATTRIBUTES_2
UINT64 EFI_PHYSICAL_ADDRESS
Definition: UefiBaseType.h:50
UINT64 EFI_LBA
Definition: UefiBaseType.h:45
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
Definition: Base.h:213