]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/Guid/CapsuleReport.h
23c124df25ed382cd8bc77c6904857519322df71
[mirror_edk2.git] / MdePkg / Include / Guid / CapsuleReport.h
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