68 IN VOID *EfiMemoryBegin,
70 IN VOID *EfiFreeMemoryBottom,
71 IN VOID *EfiFreeMemoryTop
77 Hob = EfiFreeMemoryBottom;
84 HobEnd->
HobType = EFI_HOB_TYPE_END_OF_HOB_LIST;
89 Hob->
BootMode = BOOT_WITH_FULL_CONFIGURATION;
116 if (HobLength > MAX_UINT16 - 0x7) {
120 HobLength = (UINT16)((HobLength + 0x7) & (~0x7));
136 HobEnd->
HobType = EFI_HOB_TYPE_END_OF_HOB_LIST;
163 IN UINT64 NumberOfBytes
169 ASSERT (Hob !=
NULL);
184 IN UINT64 NumberOfBytes,
192 if (ResourceAttribute ==
NULL) {
193 Resource = (EFI_RESOURCE_ATTRIBUTE_PRESENT |
194 EFI_RESOURCE_ATTRIBUTE_INITIALIZED |
195 EFI_RESOURCE_ATTRIBUTE_TESTED |
196 EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE);
198 Resource = *ResourceAttribute;
229 ASSERT (HobStart !=
NULL);
231 Hob.Raw = (UINT8 *)HobStart;
235 while (!END_OF_HOB_LIST (Hob)) {
236 if (Hob.Header->
HobType == Type) {
240 Hob.Raw = GET_NEXT_HOB (Hob);
297 GuidHob.Raw = (UINT8 *)HobStart;
298 while ((GuidHob.Raw =
GetNextHob (EFI_HOB_TYPE_GUID_EXTENSION, GuidHob.Raw)) !=
NULL) {
303 GuidHob.Raw = GET_NEXT_HOB (GuidHob);
351 return Hob.HandoffInformationTable->
BootMode;
371 Hob.HandoffInformationTable->
BootMode = BootMode;
395 IN UINT64 ModuleLength,
402 ((MemoryAllocationModule & (EFI_PAGE_SIZE - 1)) == 0) &&
403 ((ModuleLength & (EFI_PAGE_SIZE - 1)) == 0)
407 ASSERT (Hob !=
NULL);
459 ASSERT (Hob !=
NULL);
498 ASSERT (Data !=
NULL || DataLength == 0);
502 return CopyMem (HobData, Data, DataLength);
527 ASSERT (Hob !=
NULL);
562 ASSERT (Hob !=
NULL);
598 IN UINT32 AuthenticationStatus,
599 IN BOOLEAN ExtractedFv,
607 ASSERT (Hob !=
NULL);
659 IN UINT8 SizeOfMemorySpace,
660 IN UINT8 SizeOfIoSpace
666 ASSERT (Hob !=
NULL);
702 ((BaseAddress & (EFI_PAGE_SIZE - 1)) == 0) &&
703 ((Length & (EFI_PAGE_SIZE - 1)) == 0)
707 ASSERT (Hob !=
NULL);
739 while ((Hob.Raw =
GetNextHob (EFI_HOB_TYPE_MEMORY_ALLOCATION, Hob.Raw)) !=
NULL) {
758 Hob.Raw = GET_NEXT_HOB (Hob);
786 ((BaseAddress & (EFI_PAGE_SIZE - 1)) == 0) &&
787 ((Length & (EFI_PAGE_SIZE - 1)) == 0)
791 ASSERT (Hob !=
NULL);
808BuildExtractSectionHob (
816 Data.SectionGetInfo = SectionGetInfo;
817 Data.SectionExtraction = SectionExtraction;
832BuildPeCoffLoaderHob (
838 Ptr = &gPeCoffProtocol;
861 Info[5].
Type = EfiMaxMemoryType;
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
BOOLEAN EFIAPI CompareGuid(IN CONST GUID *Guid1, IN CONST GUID *Guid2)
GUID *EFIAPI CopyGuid(OUT GUID *DestinationGuid, IN CONST GUID *SourceGuid)
VOID *EFIAPI ZeroMem(OUT VOID *Buffer, IN UINTN Length)
VOID EFIAPI BuildFv2Hob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN CONST EFI_GUID *FvName, IN CONST EFI_GUID *FileName)
VOID * CreateHob(IN UINT16 HobType, IN UINT16 HobLength)
EFI_STATUS EFIAPI SetBootMode(IN EFI_BOOT_MODE BootMode)
VOID *EFIAPI GetFirstHob(IN UINT16 Type)
EFI_STATUS EFIAPI SetHobList(IN VOID *HobList)
VOID *EFIAPI GetFirstGuidHob(IN CONST EFI_GUID *Guid)
VOID *EFIAPI BuildGuidDataHob(IN CONST EFI_GUID *Guid, IN VOID *Data, IN UINTN DataLength)
VOID EFIAPI BuildModuleHob(IN CONST EFI_GUID *ModuleName, IN EFI_PHYSICAL_ADDRESS MemoryAllocationModule, IN UINT64 ModuleLength, IN EFI_PHYSICAL_ADDRESS EntryPoint)
VOID EFIAPI BuildCpuHob(IN UINT8 SizeOfMemorySpace, IN UINT8 SizeOfIoSpace)
VOID EFIAPI BuildResourceDescriptorHob(IN EFI_RESOURCE_TYPE ResourceType, IN EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute, IN EFI_PHYSICAL_ADDRESS PhysicalStart, IN UINT64 NumberOfBytes)
VOID EFIAPI BuildFvHob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
VOID *EFIAPI BuildGuidHob(IN CONST EFI_GUID *Guid, IN UINTN DataLength)
EFI_BOOT_MODE EFIAPI GetBootMode(VOID)
VOID BuildMemoryTypeInformationHob(VOID)
VOID UpdateStackHob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
VOID EFIAPI BuildFv3Hob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN UINT32 AuthenticationStatus, IN BOOLEAN ExtractedFv, IN CONST EFI_GUID *FvName OPTIONAL, IN CONST EFI_GUID *FileName OPTIONAL)
VOID EFIAPI BuildMemoryAllocationHob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN EFI_MEMORY_TYPE MemoryType)
VOID *EFIAPI GetNextHob(IN UINT16 Type, IN CONST VOID *HobStart)
VOID EFIAPI BuildCvHob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
VOID *EFIAPI GetNextGuidHob(IN CONST EFI_GUID *Guid, IN CONST VOID *HobStart)
VOID *EFIAPI GetHobList(VOID)
VOID EFIAPI BuildStackHob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
#define PcdGet32(TokenName)
RETURN_STATUS EFIAPI PeCoffLoaderLoadImage(IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext)
RETURN_STATUS EFIAPI PeCoffLoaderRelocateImage(IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext)
VOID EFIAPI PeCoffLoaderRelocateImageForRuntime(IN PHYSICAL_ADDRESS ImageBase, IN PHYSICAL_ADDRESS VirtImageBase, IN UINTN ImageSize, IN VOID *RelocationData)
RETURN_STATUS EFIAPI PeCoffLoaderUnloadImage(IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext)
RETURN_STATUS EFIAPI PeCoffLoaderGetImageInfo(IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext)
RETURN_STATUS EFIAPI PeCoffLoaderImageReadFromMemory(IN VOID *FileHandle, IN UINTN FileOffset, IN OUT UINTN *ReadSize, OUT VOID *Buffer)
#define EFI_HOB_HANDOFF_TABLE_VERSION
UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE
VOID EFIAPI BuildFvHobs(IN EFI_PHYSICAL_ADDRESS PhysicalStart, IN UINT64 NumberOfBytes, IN EFI_RESOURCE_ATTRIBUTE_TYPE *ResourceAttribute OPTIONAL)
UINT64 EFI_PHYSICAL_ADDRESS
EFI_PHYSICAL_ADDRESS BaseAddress
UINT32 AuthenticationStatus
EFI_PHYSICAL_ADDRESS BaseAddress
EFI_PHYSICAL_ADDRESS BaseAddress
EFI_PHYSICAL_ADDRESS EfiFreeMemoryBottom
EFI_PHYSICAL_ADDRESS EfiMemoryTop
EFI_PHYSICAL_ADDRESS EfiFreeMemoryTop
EFI_PHYSICAL_ADDRESS EfiMemoryBottom
EFI_HOB_GENERIC_HEADER Header
EFI_PHYSICAL_ADDRESS EfiEndOfHobList
EFI_PHYSICAL_ADDRESS MemoryBaseAddress
EFI_MEMORY_TYPE MemoryType
EFI_PHYSICAL_ADDRESS EntryPoint
EFI_HOB_MEMORY_ALLOCATION_HEADER MemoryAllocationHeader
EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor
EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor
EFI_PHYSICAL_ADDRESS PhysicalStart
EFI_RESOURCE_TYPE ResourceType
EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute
UINT32 NumberOfPages
The pages of this type memory.
UINT32 Type
EFI memory type defined in UEFI specification.