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