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 - 2018, Intel Corporation. All rights reserved.<BR> 8 SPDX-License-Identifier: BSD-2-Clause-Patent 9 10 **/ 11 12 #ifndef _FAULT_TOLERANT_WRITE_H_ 13 #define _FAULT_TOLERANT_WRITE_H_ 14 15 #define EDKII_FAULT_TOLERANT_WRITE_GUID \ 16 { \ 17 0x1d3e9cb8, 0x43af, 0x490b, { 0x83, 0xa, 0x35, 0x16, 0xaa, 0x53, 0x20, 0x47 } \ 18 } 19 20 // 21 // FTW Last write data. It will be used as gEdkiiFaultTolerantWriteGuid GUID hob data. 22 // 23 typedef struct { 24 /// 25 /// Target address to be updated in FTW last write. 26 /// 27 EFI_PHYSICAL_ADDRESS TargetAddress; 28 /// 29 /// Spare address to back up the updated buffer. 30 /// 31 EFI_PHYSICAL_ADDRESS SpareAddress; 32 /// 33 /// The length of data that have been backed up in spare block. 34 /// It is also the length of target block that has been erased. 35 /// 36 UINT64 Length; 37 } FAULT_TOLERANT_WRITE_LAST_WRITE_DATA; 38 39 // 40 // This GUID will be used to install PPI to inform the check for FTW last write data has been done. 41 // The related FAULT_TOLERANT_WRITE_LAST_WRITE_DATA GUID hob will be only built if 42 // FTW last write was still in progress with SpareComplete set and DestinationComplete not set. 43 // It means the target buffer has been backed up in spare block, then target block has been erased, 44 // but the target buffer has not been writen in target block from spare block. 45 // 46 extern EFI_GUID gEdkiiFaultTolerantWriteGuid; 47 48 #endif 49