• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /** @file
2   Guid & data structure used for Capsule process result variables
3 
4   Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
5   This program and the accompanying materials
6   are licensed and made available under the terms and conditions of the BSD License
7   which accompanies this distribution.  The full text of the license may be found at
8   http://opensource.org/licenses/bsd-license.php
9 
10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13   @par Revision Reference:
14   GUIDs defined in UEFI 2.4 spec.
15 
16 **/
17 
18 
19 #ifndef _CAPSULE_REPORT_GUID_H__
20 #define _CAPSULE_REPORT_GUID_H__
21 
22 //
23 // This is the GUID for capsule result variable.
24 //
25 #define EFI_CAPSULE_REPORT_GUID \
26   { \
27     0x39b68c46, 0xf7fb, 0x441b, {0xb6, 0xec, 0x16, 0xb0, 0xf6, 0x98, 0x21, 0xf3 } \
28   }
29 
30 
31 typedef struct {
32 
33   ///
34   /// Size in bytes of the variable including any data beyond header as specified by CapsuleGuid
35   ///
36   UINT32     VariableTotalSize;
37 
38   ///
39   /// For alignment
40   ///
41   UINT32     Reserved;
42 
43   ///
44   /// Guid from EFI_CAPSULE_HEADER
45   ///
46   EFI_GUID   CapsuleGuid;
47 
48   ///
49   /// Timestamp using system time when processing completed
50   ///
51   EFI_TIME   CapsuleProcessed;
52 
53   ///
54   /// Result of the capsule processing. Exact interpretation of any error code may depend
55   /// upon type of capsule processed
56   ///
57   EFI_STATUS CapsuleStatus;
58 } EFI_CAPSULE_RESULT_VARIABLE_HEADER;
59 
60 
61 typedef struct {
62 
63   ///
64   /// Version of this structure, currently 0x00000001
65   ///
66   UINT16   Version;
67 
68   ///
69   /// The index of the payload within the FMP capsule which was processed to generate this report
70   /// Starting from zero
71   ///
72   UINT8    PayloadIndex;
73 
74   ///
75   /// The UpdateImageIndex from EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER
76   /// (after unsigned conversion from UINT8 to UINT16).
77   ///
78   UINT8    UpdateImageIndex;
79 
80   ///
81   /// The UpdateImageTypeId Guid from EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER.
82   ///
83   EFI_GUID UpdateImageTypeId;
84 
85   ///
86   /// In case of capsule loaded from disk, the zero-terminated array containing file name of capsule that was processed.
87   /// In case of capsule submitted directly to UpdateCapsule() there is no file name, and this field is required to contain a single 16-bit zero character
88   ///  which is included in VariableTotalSize.
89   ///
90   /// CHAR16 CapsuleFileName[];
91   ///
92 
93   ///
94   /// This field will contain a zero-terminated CHAR16 string containing the text representation of the device path of device publishing Firmware Management Protocol
95   /// (if present). In case where device path is not present and the target is not otherwise known to firmware, or when payload was blocked by policy, or skipped,
96   /// this field is required to contain a single 16-bit zero character which is included in VariableTotalSize.
97   ///
98   /// CHAR16 CapsuleTarget[];
99   ///
100 } EFI_CAPSULE_RESULT_VARIABLE_FMP;
101 
102 
103 extern EFI_GUID gEfiCapsuleReportGuid;
104 
105 #endif
106