]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Include/Guid/FaultTolerantWrite.h
MdeModulePkg SmiHandlerProfile: Use fixed data type in data structure
[mirror_edk2.git] / MdeModulePkg / Include / Guid / FaultTolerantWrite.h
1 /** @file
2 Define the GUID gEdkiiFaultTolerantWriteGuid that will be used to build
3 FAULT_TOLERANT_WRITE_LAST_WRITE_DATA GUID hob and install PPI to inform the check
4 for FTW last write data has been done. The GUID hob will be only built if FTW last write was
5 still in progress with SpareComplete set and DestinationComplete not set.
6
7 Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
8 This program and the accompanying materials are licensed and made available under
9 the terms and conditions of the BSD License that accompanies this distribution.
10 The full text of the license may be found at
11 http://opensource.org/licenses/bsd-license.php.
12
13 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
14 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15
16 **/
17
18 #ifndef _FAULT_TOLERANT_WRITE_H_
19 #define _FAULT_TOLERANT_WRITE_H_
20
21 #define EDKII_FAULT_TOLERANT_WRITE_GUID \
22 { \
23 0x1d3e9cb8, 0x43af, 0x490b, { 0x83, 0xa, 0x35, 0x16, 0xaa, 0x53, 0x20, 0x47 } \
24 }
25
26 //
27 // FTW Last write data. It will be used as gEdkiiFaultTolerantWriteGuid GUID hob data.
28 //
29 typedef struct {
30 ///
31 /// Target address to be updated in FTW last write.
32 ///
33 EFI_PHYSICAL_ADDRESS TargetAddress;
34 ///
35 /// Spare address to back up the updated buffer.
36 ///
37 EFI_PHYSICAL_ADDRESS SpareAddress;
38 ///
39 /// The length of data that have been backed up in spare block.
40 /// It is also the length of target block that has been erased.
41 ///
42 UINT64 Length;
43 } FAULT_TOLERANT_WRITE_LAST_WRITE_DATA;
44
45 //
46 // This GUID will be used to install PPI to inform the check for FTW last write data has been done.
47 // The related FAULT_TOLERANT_WRITE_LAST_WRITE_DATA GUID hob will be only built if
48 // FTW last write was still in progress with SpareComplete set and DestinationComplete not set.
49 // It means the target buffer has been backed up in spare block, then target block has been erased,
50 // but the target buffer has not been writen in target block from spare block.
51 //
52 extern EFI_GUID gEdkiiFaultTolerantWriteGuid;
53
54 #endif