VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Guid/JsonCapsule.h@ 99396

Last change on this file since 99396 was 85718, checked in by vboxsync, 5 years ago

Devices/EFI: Merge edk-stable202005 and make it build, bugref:4643

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

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette