MdePkg/Include: Add two new APIs in HobLib.h

This commit is to add two new APIs in HobLib.h:
GetNextMemoryAllocationGuidHob ()
TagMemoryAllocationHobWithGuid ()

The UEFI_PI_SPEC defines the EFI_GUID Name in the
EFI_HOB_MEMORY_ALLOCATION_HEADER as:
A GUID that defines the memory allocation region’s type
and purpose, as well as other fields within the memory
allocation HOB.

Currently there is no API in HobLib to handle this Name
GUID in EFI_HOB_MEMORY_ALLOCATION_HEADER, and the code
logic is common. So the following 2 APIs are added to:

1.The GetNextMemoryAllocationGuidHob () returns the next
instance of the Memory Allocation HOB with the matched
GUID from a starting HOB pointer.

2.The TagMemoryAllocationHobWithGuid () searchs the HOB
list for the Memory Allocation HOB with a matching base
address and set the Name GUID. Then the instance of the
tagged Memory Allocation HOB with matched base address is
returned.

Signed-off-by: Dun Tan <dun.tan@intel.com>
This commit is contained in:
Dun Tan
2025-04-10 14:37:24 +08:00
committed by mergify[bot]
parent cd76265f1a
commit 3872c38049

View File

@@ -473,6 +473,53 @@ BuildMemoryAllocationHob (
IN EFI_MEMORY_TYPE MemoryType
);
/**
Returns the next instance of the Memory Allocation HOB with the matched GUID from
the starting HOB.
This function searches the first instance of a HOB from the starting HOB pointer.
Such HOB should satisfy two conditions:
Its HOB type is EFI_HOB_TYPE_MEMORY_ALLOCATION and its GUID Name equals to input Guid.
If there does not exist such HOB from the starting HOB pointer, it will return NULL.
If Guid is NULL, then ASSERT().
If HobStart is NULL, then ASSERT().
@param Guid The GUID to match with in the HOB list.
@param HobStart The starting HOB pointer to search from.
@retval !NULL The next instance of the Memory Allocation HOB with matched GUID from the starting HOB.
@retval NULL NULL is returned if the matching Memory Allocation HOB is not found.
**/
VOID *
EFIAPI
GetNextMemoryAllocationGuidHob (
IN CONST EFI_GUID *Guid,
IN CONST VOID *HobStart
);
/**
Search the HOB list for the Memory Allocation HOB with a matching base address
and set the Name GUID. If there does not exist such Memory Allocation HOB in the
HOB list, it will return NULL.
If Guid is NULL, then ASSERT().
@param BaseAddress BaseAddress of Memory Allocation HOB to set Name to Guid.
@param Guid Pointer to the GUID to set in the matching Memory Allocation GUID.
@retval !NULL The instance of the tagged Memory Allocation HOB with matched base address.
@retval NULL NULL is returned if the matching Memory Allocation HOB is not found.
**/
VOID *
EFIAPI
TagMemoryAllocationHobWithGuid (
IN EFI_PHYSICAL_ADDRESS BaseAddress,
IN CONST EFI_GUID *Guid
);
/**
Returns the type of a HOB.