mirror of https://github.com/acidanthera/audk.git
97 lines
3.0 KiB
C
97 lines
3.0 KiB
C
/** @file
|
|
Guid & data structure for tables defined for reporting firmware configuration data to EFI
|
|
Configuration Tables and also for processing JSON payload capsule.
|
|
|
|
|
|
Copyright (c) 2020, American Megatrends International LLC. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef __JSON_CAPSULE_GUID_H__
|
|
#define __JSON_CAPSULE_GUID_H__
|
|
|
|
//
|
|
// The address reported in the table entry identified by EFI_JSON_CAPSULE_DATA_TABLE_GUID will be
|
|
// referenced as physical and will not be fixed up when transition from preboot to runtime phase. The
|
|
// addresses reported in these table entries identified by EFI_JSON_CONFIG_DATA_TABLE_GUID and
|
|
// EFI_JSON_CAPSULE_RESULT_TABLE_GUID will be referenced as virtual and will be fixed up when
|
|
// transition from preboot to runtime phase.
|
|
//
|
|
#define EFI_JSON_CONFIG_DATA_TABLE_GUID \
|
|
{0x87367f87, 0x1119, 0x41ce, \
|
|
{0xaa, 0xec, 0x8b, 0xe0, 0x11, 0x1f, 0x55, 0x8a }}
|
|
#define EFI_JSON_CAPSULE_DATA_TABLE_GUID \
|
|
{0x35e7a725, 0x8dd2, 0x4cac, \
|
|
{0x80, 0x11, 0x33, 0xcd, 0xa8, 0x10, 0x90, 0x56 }}
|
|
#define EFI_JSON_CAPSULE_RESULT_TABLE_GUID \
|
|
{0xdbc461c3, 0xb3de, 0x422a,\
|
|
{0xb9, 0xb4, 0x98, 0x86, 0xfd, 0x49, 0xa1, 0xe5 }}
|
|
#define EFI_JSON_CAPSULE_ID_GUID \
|
|
{0x67d6f4cd, 0xd6b8, 0x4573, \
|
|
{0xbf, 0x4a, 0xde, 0x5e, 0x25, 0x2d, 0x61, 0xae }}
|
|
|
|
#pragma pack(1)
|
|
|
|
typedef struct {
|
|
///
|
|
/// Version of the structure, initially 0x00000001.
|
|
///
|
|
UINT32 Version;
|
|
|
|
///
|
|
/// The unique identifier of this capsule.
|
|
///
|
|
UINT32 CapsuleId;
|
|
|
|
///
|
|
/// The length of the JSON payload immediately following this header, in bytes.
|
|
///
|
|
UINT32 PayloadLength;
|
|
|
|
///
|
|
/// Variable length buffer containing the JSON payload that should be parsed and applied to the system. The
|
|
/// definition of the JSON schema used in the payload is beyond the scope of this specification.
|
|
///
|
|
UINT8 Payload[];
|
|
} EFI_JSON_CAPSULE_HEADER;
|
|
|
|
typedef struct {
|
|
///
|
|
/// The length of the following ConfigData, in bytes.
|
|
///
|
|
UINT32 ConfigDataLength;
|
|
|
|
///
|
|
/// Variable length buffer containing the JSON payload that describes one group of configuration data within
|
|
/// current system. The definition of the JSON schema used in this payload is beyond the scope of this specification.
|
|
///
|
|
UINT8 ConfigData[];
|
|
} EFI_JSON_CONFIG_DATA_ITEM;
|
|
|
|
typedef struct {
|
|
///
|
|
/// Version of the structure, initially 0x00000001.
|
|
///
|
|
UINT32 Version;
|
|
|
|
///
|
|
////The total length of EFI_JSON_CAPSULE_CONFIG_DATA, in bytes.
|
|
///
|
|
UINT32 TotalLength;
|
|
|
|
///
|
|
/// Array of configuration data groups.
|
|
///
|
|
EFI_JSON_CONFIG_DATA_ITEM ConfigDataList[];
|
|
} EFI_JSON_CAPSULE_CONFIG_DATA;
|
|
|
|
#pragma pack()
|
|
|
|
extern EFI_GUID gEfiJsonConfigDataTableGuid;
|
|
extern EFI_GUID gEfiJsonCapsuleDataTableGuid;
|
|
extern EFI_GUID gEfiJsonCapsuleResultTableGuid;
|
|
extern EFI_GUID gEfiJsonCapsuleIdGuid;
|
|
|
|
#endif
|