Commit | Line | Data |
---|---|---|
bbcf6351 CZ |
1 | /** @file\r |
2 | Guid & data structure used for Capsule process result variables\r | |
9095d37b LG |
3 | \r |
4 | Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r | |
9344f092 | 5 | SPDX-License-Identifier: BSD-2-Clause-Patent\r |
bbcf6351 CZ |
6 | \r |
7 | @par Revision Reference:\r | |
8 | GUIDs defined in UEFI 2.4 spec.\r | |
9 | \r | |
10 | **/\r | |
11 | \r | |
12 | \r | |
13 | #ifndef _CAPSULE_REPORT_GUID_H__\r | |
14 | #define _CAPSULE_REPORT_GUID_H__\r | |
15 | \r | |
16 | //\r | |
17 | // This is the GUID for capsule result variable.\r | |
18 | //\r | |
19 | #define EFI_CAPSULE_REPORT_GUID \\r | |
20 | { \\r | |
21 | 0x39b68c46, 0xf7fb, 0x441b, {0xb6, 0xec, 0x16, 0xb0, 0xf6, 0x98, 0x21, 0xf3 } \\r | |
22 | }\r | |
23 | \r | |
24 | \r | |
25 | typedef struct {\r | |
26 | \r | |
27 | ///\r | |
28 | /// Size in bytes of the variable including any data beyond header as specified by CapsuleGuid\r | |
29 | ///\r | |
30 | UINT32 VariableTotalSize;\r | |
31 | \r | |
32 | ///\r | |
33 | /// For alignment\r | |
34 | ///\r | |
35 | UINT32 Reserved;\r | |
36 | \r | |
37 | ///\r | |
38 | /// Guid from EFI_CAPSULE_HEADER\r | |
39 | ///\r | |
40 | EFI_GUID CapsuleGuid;\r | |
41 | \r | |
42 | ///\r | |
43 | /// Timestamp using system time when processing completed\r | |
44 | ///\r | |
45 | EFI_TIME CapsuleProcessed;\r | |
46 | \r | |
47 | ///\r | |
48 | /// Result of the capsule processing. Exact interpretation of any error code may depend\r | |
49 | /// upon type of capsule processed\r | |
50 | ///\r | |
51 | EFI_STATUS CapsuleStatus;\r | |
52 | } EFI_CAPSULE_RESULT_VARIABLE_HEADER;\r | |
53 | \r | |
54 | \r | |
55 | typedef struct {\r | |
56 | \r | |
57 | ///\r | |
58 | /// Version of this structure, currently 0x00000001\r | |
59 | ///\r | |
60 | UINT16 Version;\r | |
61 | \r | |
62 | ///\r | |
63 | /// The index of the payload within the FMP capsule which was processed to generate this report\r | |
64 | /// Starting from zero\r | |
65 | ///\r | |
66 | UINT8 PayloadIndex;\r | |
67 | \r | |
68 | ///\r | |
69 | /// The UpdateImageIndex from EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER\r | |
70 | /// (after unsigned conversion from UINT8 to UINT16).\r | |
71 | ///\r | |
72 | UINT8 UpdateImageIndex;\r | |
73 | \r | |
74 | ///\r | |
75 | /// The UpdateImageTypeId Guid from EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER.\r | |
76 | ///\r | |
77 | EFI_GUID UpdateImageTypeId;\r | |
78 | \r | |
79 | ///\r | |
80 | /// In case of capsule loaded from disk, the zero-terminated array containing file name of capsule that was processed.\r | |
9095d37b | 81 | /// 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\r |
bbcf6351 CZ |
82 | /// which is included in VariableTotalSize.\r |
83 | ///\r | |
84 | /// CHAR16 CapsuleFileName[];\r | |
85 | ///\r | |
86 | \r | |
87 | ///\r | |
9095d37b | 88 | /// This field will contain a zero-terminated CHAR16 string containing the text representation of the device path of device publishing Firmware Management Protocol\r |
bbcf6351 CZ |
89 | /// (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,\r |
90 | /// this field is required to contain a single 16-bit zero character which is included in VariableTotalSize.\r | |
91 | ///\r | |
92 | /// CHAR16 CapsuleTarget[];\r | |
93 | ///\r | |
94 | } EFI_CAPSULE_RESULT_VARIABLE_FMP;\r | |
95 | \r | |
154e243a OY |
96 | typedef struct {\r |
97 | \r | |
98 | ///\r | |
99 | /// Version of this structure, currently 0x00000001\r | |
100 | ///\r | |
101 | UINT32 Version;\r | |
102 | \r | |
103 | ///\r | |
104 | /// The unique identifier of the capsule whose processing result is recorded in this variable.\r | |
105 | /// 0x00000000 - 0xEFFFFFFF - Implementation Reserved\r | |
106 | /// 0xF0000000 - 0xFFFFFFFF - Specification Reserved\r | |
107 | /// #define REDFISH_DEFINED_JSON_SCHEMA 0xF000000\r | |
108 | /// The JSON payload shall conform to a Redfish-defined JSON schema, see DMTF-Redfish\r | |
109 | /// Specification.\r | |
110 | ///\r | |
111 | UINT32 CapsuleId;\r | |
112 | \r | |
113 | ///\r | |
114 | /// The length of Resp in bytes.\r | |
115 | ///\r | |
116 | UINT32 RespLength;\r | |
117 | \r | |
118 | ///\r | |
119 | /// Variable length buffer containing the replied JSON payload to the caller who delivered JSON\r | |
120 | /// capsule to system. The definition of the JSON schema used in the replied payload is beyond\r | |
121 | /// the scope of this specification.\r | |
122 | ///\r | |
123 | UINT8 Resp[];\r | |
124 | } EFI_CAPSULE_RESULT_VARIABLE_JSON;\r | |
bbcf6351 CZ |
125 | \r |
126 | extern EFI_GUID gEfiCapsuleReportGuid;\r | |
127 | \r | |
128 | #endif\r |