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 55