]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Guid/JsonCapsule.h
MdePkg: Apply uncrustify changes
[mirror_edk2.git] / MdePkg / Include / Guid / JsonCapsule.h
CommitLineData
154e243a
OY
1/** @file\r
2Guid & data structure for tables defined for reporting firmware configuration data to EFI\r
3Configuration Tables and also for processing JSON payload capsule.\r
4\r
5\r
6Copyright (c) 2020, American Megatrends International LLC. All rights reserved.<BR>\r
7SPDX-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
154e243a
OY
34#pragma pack(1)\r
35\r
36typedef struct {\r
37 ///\r
38 /// Version of the structure, initially 0x00000001.\r
39 ///\r
2f88bd3a 40 UINT32 Version;\r
154e243a
OY
41\r
42 ///\r
43 /// The unique identifier of this capsule.\r
44 ///\r
2f88bd3a 45 UINT32 CapsuleId;\r
154e243a
OY
46\r
47 ///\r
48 /// The length of the JSON payload immediately following this header, in bytes.\r
49 ///\r
2f88bd3a 50 UINT32 PayloadLength;\r
154e243a
OY
51\r
52 ///\r
53 /// Variable length buffer containing the JSON payload that should be parsed and applied to the system. The\r
54 /// definition of the JSON schema used in the payload is beyond the scope of this specification.\r
55 ///\r
2f88bd3a 56 UINT8 Payload[];\r
154e243a
OY
57} EFI_JSON_CAPSULE_HEADER;\r
58\r
59typedef struct {\r
60 ///\r
61 /// The length of the following ConfigData, in bytes.\r
62 ///\r
2f88bd3a 63 UINT32 ConfigDataLength;\r
154e243a
OY
64\r
65 ///\r
66 /// Variable length buffer containing the JSON payload that describes one group of configuration data within\r
67 /// current system. The definition of the JSON schema used in this payload is beyond the scope of this specification.\r
68 ///\r
2f88bd3a 69 UINT8 ConfigData[];\r
154e243a
OY
70} EFI_JSON_CONFIG_DATA_ITEM;\r
71\r
72typedef struct {\r
73 ///\r
74 /// Version of the structure, initially 0x00000001.\r
75 ///\r
2f88bd3a 76 UINT32 Version;\r
154e243a
OY
77\r
78 ///\r
79 ////The total length of EFI_JSON_CAPSULE_CONFIG_DATA, in bytes.\r
80 ///\r
2f88bd3a 81 UINT32 TotalLength;\r
154e243a
OY
82\r
83 ///\r
84 /// Array of configuration data groups.\r
85 ///\r
2f88bd3a 86 EFI_JSON_CONFIG_DATA_ITEM ConfigDataList[];\r
154e243a
OY
87} EFI_JSON_CAPSULE_CONFIG_DATA;\r
88\r
89#pragma pack()\r
90\r
2f88bd3a
MK
91extern EFI_GUID gEfiJsonConfigDataTableGuid;\r
92extern EFI_GUID gEfiJsonCapsuleDataTableGuid;\r
93extern EFI_GUID gEfiJsonCapsuleResultTableGuid;\r
94extern EFI_GUID gEfiJsonCapsuleIdGuid;\r
154e243a
OY
95\r
96#endif\r