| /** @file | |
| Metadata Handler Library. | |
| Copyright (c) 2025, Arm Limited. All rights reserved. | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef METADATA_HANDLER_LIB_H_ | |
| #define METADATA_HANDLER_LIB_H_ | |
| #include <Library/MetadataObjLib.h> | |
| /** Query the MetadataObjLib for metadata matching the input (Type/Token). | |
| If the metadata exists, return it. | |
| Otherwise: | |
| - Generate a new metadata object | |
| - Add it to the MetadataObjLib | |
| - return it | |
| @param[in] Root Root of the Metadata information. | |
| @param[in] Type METADATA_TYPE of the entry to generate. | |
| @param[in] Token Token uniquely identifying an entry among other | |
| objects with the input METADATA_TYPE. | |
| @param[in] Context Optional context to use during the Metadata generation. | |
| @param[in, out] Metadata On input, can contain METADATA_TYPE-specific information. | |
| On output and if success, contains the generated | |
| Metadata object. | |
| @param[in] MetadataSize Size of the input Metadata. | |
| @retval EFI_SUCCESS Success. | |
| @retval EFI_INVALID_PARAMETER A parameter is invalid. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| MetadataHandlerGenerate ( | |
| IN METADATA_ROOT_HANDLE Root, | |
| IN METADATA_TYPE Type, | |
| IN CM_OBJECT_TOKEN Token, | |
| IN VOID *Context, | |
| IN OUT VOID *Metadata, | |
| IN UINT32 MetadataSize | |
| ); | |
| /** Validate the Metadata. | |
| @param[in] Root Root of the Metadata information. | |
| @retval EFI_SUCCESS Success. | |
| @retval EFI_INVALID_PARAMETER A parameter is invalid. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| MetadataHandlerValidate ( | |
| IN METADATA_ROOT_HANDLE Root | |
| ); | |
| #endif // METADATA_HANDLER_LIB_H_ |