Home | History | Annotate | Download | only in Guid
      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