1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
/** @file
Metadata Object Library.
Copyright (c) 2025, Arm Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef METADATA_OBJ_H_
#define METADATA_OBJ_H_
#include <Library/MetadataObjLib.h>
/** Metadata Entry.
Store the generated Metadata along the associated CmObj/Token
in this structure.
**/
typedef struct MetadataEntry {
/// List entry
LIST_ENTRY List;
/// Metadata Type
METADATA_TYPE Type;
/// Token
CM_OBJECT_TOKEN Token;
/// Metadata. Must be interpreted per-METADATA_TYPE
VOID *Metadata;
} METADATA_ENTRY;
/** Metadata Object Type.
There is one entry for for each METADATA_TYPE.
**/
typedef struct MetadataList {
/// Per-METADATA_TYPE list of METADATA_ENTRY struct
LIST_ENTRY List;
} METADATA_LIST;
/** Metadata static information.
There is one entry for for each METADATA_TYPE.
**/
typedef struct MetadataStaticInfo {
/// Expected size for this METADATA_TYPE
UINT32 ExpectedSize;
} METADATA_STATIC_INFO;
/** Metadata Root.
All the METADATA_ENTRY are attached to a root.
**/
typedef struct MetadataRoot {
/// Array of METADATA_LIST. One entry for each MetadataType.
METADATA_LIST MetadataList[MetadataTypeMax];
} METADATA_ROOT;
#endif // METADATA_OBJ_H_
|