]>
Commit | Line | Data |
---|---|---|
154e243a OY |
1 | /** @file\r |
2 | Guid & data structure for tables defined for reporting firmware configuration data to EFI\r | |
3 | Configuration Tables and also for processing JSON payload capsule.\r | |
4 | \r | |
5 | \r | |
6 | Copyright (c) 2020, American Megatrends International LLC. All rights reserved.<BR>\r | |
7 | SPDX-License-Identifier: BSD-2-Clause-Patent\r | |
8 | \r | |
9 | **/\r | |
10 | \r | |
11 | #ifndef __JSON_CAPSULE_GUID_H__\r | |
12 | #define __JSON_CAPSULE_GUID_H__\r | |
13 | \r | |
14 | //\r | |
15 | // The address reported in the table entry identified by EFI_JSON_CAPSULE_DATA_TABLE_GUID will be\r | |
16 | // referenced as physical and will not be fixed up when transition from preboot to runtime phase. The\r | |
17 | // addresses reported in these table entries identified by EFI_JSON_CONFIG_DATA_TABLE_GUID and\r | |
18 | // EFI_JSON_CAPSULE_RESULT_TABLE_GUID will be referenced as virtual and will be fixed up when\r | |
19 | // transition from preboot to runtime phase.\r | |
20 | //\r | |
21 | #define EFI_JSON_CONFIG_DATA_TABLE_GUID \\r | |
22 | {0x87367f87, 0x1119, 0x41ce, \\r | |
23 | {0xaa, 0xec, 0x8b, 0xe0, 0x11, 0x1f, 0x55, 0x8a }}\r | |
24 | #define EFI_JSON_CAPSULE_DATA_TABLE_GUID \\r | |
25 | {0x35e7a725, 0x8dd2, 0x4cac, \\r | |
26 | {0x80, 0x11, 0x33, 0xcd, 0xa8, 0x10, 0x90, 0x56 }}\r | |
27 | #define EFI_JSON_CAPSULE_RESULT_TABLE_GUID \\r | |
28 | {0xdbc461c3, 0xb3de, 0x422a,\\r | |
29 | {0xb9, 0xb4, 0x98, 0x86, 0xfd, 0x49, 0xa1, 0xe5 }}\r | |
30 | #define EFI_JSON_CAPSULE_ID_GUID \\r | |
31 | {0x67d6f4cd, 0xd6b8, 0x4573, \\r | |
32 | {0xbf, 0x4a, 0xde, 0x5e, 0x25, 0x2d, 0x61, 0xae }}\r | |
33 | \r | |
34 | \r | |
35 | #pragma pack(1)\r | |
36 | \r | |
37 | typedef struct {\r | |
38 | ///\r | |
39 | /// Version of the structure, initially 0x00000001.\r | |
40 | ///\r | |
41 | UINT32 Version;\r | |
42 | \r | |
43 | ///\r | |
44 | /// The unique identifier of this capsule.\r | |
45 | ///\r | |
46 | UINT32 CapsuleId;\r | |
47 | \r | |
48 | ///\r | |
49 | /// The length of the JSON payload immediately following this header, in bytes.\r | |
50 | ///\r | |
51 | UINT32 PayloadLength;\r | |
52 | \r | |
53 | ///\r | |
54 | /// Variable length buffer containing the JSON payload that should be parsed and applied to the system. The\r | |
55 | /// definition of the JSON schema used in the payload is beyond the scope of this specification.\r | |
56 | ///\r | |
57 | UINT8 Payload[];\r | |
58 | } EFI_JSON_CAPSULE_HEADER;\r | |
59 | \r | |
60 | typedef struct {\r | |
61 | ///\r | |
62 | /// The length of the following ConfigData, in bytes.\r | |
63 | ///\r | |
64 | UINT32 ConfigDataLength;\r | |
65 | \r | |
66 | ///\r | |
67 | /// Variable length buffer containing the JSON payload that describes one group of configuration data within\r | |
68 | /// current system. The definition of the JSON schema used in this payload is beyond the scope of this specification.\r | |
69 | ///\r | |
70 | UINT8 ConfigData[];\r | |
71 | } EFI_JSON_CONFIG_DATA_ITEM;\r | |
72 | \r | |
73 | typedef struct {\r | |
74 | ///\r | |
75 | /// Version of the structure, initially 0x00000001.\r | |
76 | ///\r | |
77 | UINT32 Version;\r | |
78 | \r | |
79 | ///\r | |
80 | ////The total length of EFI_JSON_CAPSULE_CONFIG_DATA, in bytes.\r | |
81 | ///\r | |
82 | UINT32 TotalLength;\r | |
83 | \r | |
84 | ///\r | |
85 | /// Array of configuration data groups.\r | |
86 | ///\r | |
87 | EFI_JSON_CONFIG_DATA_ITEM ConfigDataList[];\r | |
88 | } EFI_JSON_CAPSULE_CONFIG_DATA;\r | |
89 | \r | |
90 | #pragma pack()\r | |
91 | \r | |
92 | extern EFI_GUID gEfiJsonConfigDataTableGuid;\r | |
93 | extern EFI_GUID gEfiJsonCapsuleDataTableGuid;\r | |
94 | extern EFI_GUID gEfiJsonCapsuleResultTableGuid;\r | |
95 | extern EFI_GUID gEfiJsonCapsuleIdGuid;\r | |
96 | \r | |
97 | \r | |
98 | #endif\r |