/** @file This library will provide services for handling HOB data. Copyright (c) 2024, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef HOB_PARSER_LIB_H_ #define HOB_PARSER_LIB_H_ /** * Add HOB into HOB list @param[in] Hob The HOB to be added into the HOB list. **/ VOID AddNewHob ( IN EFI_PEI_HOB_POINTERS *Hob ); /** Found the Resource Descriptor HOB that contains a range (Base, Top) @param[in] HobList Hob start address @param[in] Base Memory start address @param[in] Top Memory end address. @retval The pointer to the Resource Descriptor HOB. **/ EFI_HOB_RESOURCE_DESCRIPTOR * FindResourceDescriptorByRange ( IN VOID *HobList, IN EFI_PHYSICAL_ADDRESS Base, IN EFI_PHYSICAL_ADDRESS Top ); /** Find the highest below 4G memory resource descriptor, except the input Resource Descriptor. @param[in] HobList Hob start address @param[in] MinimalNeededSize Minimal needed size. @param[in] ExceptResourceHob Ignore this Resource Descriptor. @retval The pointer to the Resource Descriptor HOB. **/ EFI_HOB_RESOURCE_DESCRIPTOR * FindAnotherHighestBelow4GResourceDescriptor ( IN VOID *HobList, IN UINTN MinimalNeededSize, IN EFI_HOB_RESOURCE_DESCRIPTOR *ExceptResourceHob ); /** Check the HOB and decide if it is need inside Payload Payload maintainer may make decision which HOB is need or needn't Then add the check logic in the function. @param[in] Hob The HOB to check @retval TRUE If HOB is need inside Payload @retval FALSE If HOB is needn't inside Payload **/ BOOLEAN IsHobNeed ( EFI_PEI_HOB_POINTERS Hob ); #endif