]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Foundation/Library/Dxe/Hob/Hob.c
EdkCompatibilityPkg: Remove EdkCompatibilityPkg
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / Dxe / Hob / Hob.c
diff --git a/EdkCompatibilityPkg/Foundation/Library/Dxe/Hob/Hob.c b/EdkCompatibilityPkg/Foundation/Library/Dxe/Hob/Hob.c
deleted file mode 100644 (file)
index ae35d99..0000000
+++ /dev/null
@@ -1,540 +0,0 @@
-/*++\r
-\r
-Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials                          \r
-are licensed and made available under the terms and conditions of the BSD License         \r
-which accompanies this distribution.  The full text of the license may be found at        \r
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
-\r
-Module Name:\r
-\r
-  hob.c\r
-\r
-Abstract:\r
-\r
-  Support for hob operation\r
-\r
---*/\r
-\r
-#include "Tiano.h"\r
-#include "EfiDriverLib.h"\r
-#include "PeiHob.h"\r
-#include EFI_GUID_DEFINITION (IoBaseHob)\r
-#include EFI_GUID_DEFINITION (MemoryAllocationHob)\r
-\r
-VOID *\r
-GetHob (\r
-  IN UINT16  Type,\r
-  IN VOID    *HobStart\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function returns the first instance of a HOB type in a HOB list.\r
-  \r
-Arguments:\r
-\r
-  Type          The HOB type to return.\r
-  HobStart      The first HOB in the HOB list.\r
-    \r
-Returns:\r
-\r
-  HobStart      There were no HOBs found with the requested type.\r
-  else          Returns the first HOB with the matching type.\r
-\r
---*/\r
-{\r
-  EFI_PEI_HOB_POINTERS  Hob;\r
-\r
-  Hob.Raw = HobStart;\r
-  //\r
-  // Return input if not found\r
-  //\r
-  if (HobStart == NULL) {\r
-    return HobStart;\r
-  }\r
-\r
-  //\r
-  // Parse the HOB list, stop if end of list or matching type found.\r
-  //\r
-  while (!END_OF_HOB_LIST (Hob)) {\r
-\r
-    if (Hob.Header->HobType == Type) {\r
-      break;\r
-    }\r
-\r
-    Hob.Raw = GET_NEXT_HOB (Hob);\r
-  }\r
-  \r
-  //\r
-  // Return input if not found\r
-  //\r
-  if (END_OF_HOB_LIST (Hob)) {\r
-    return HobStart;\r
-  }\r
-\r
-  return (VOID *) (Hob.Raw);\r
-}\r
-\r
-UINTN\r
-GetHobListSize (\r
-  IN VOID  *HobStart\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Get size of hob list.\r
-\r
-Arguments:\r
-\r
-  HobStart      - Start pointer of hob list\r
-\r
-Returns:\r
-\r
-  Size of hob list.\r
-\r
---*/\r
-{\r
-  EFI_PEI_HOB_POINTERS  Hob;\r
-  UINTN                 Size;\r
-\r
-  Hob.Raw = HobStart;\r
-  Size    = 0;\r
-\r
-  while (Hob.Header->HobType != EFI_HOB_TYPE_END_OF_HOB_LIST) {\r
-    Size += Hob.Header->HobLength;\r
-    Hob.Raw += Hob.Header->HobLength;\r
-  }\r
-\r
-  Size += Hob.Header->HobLength;\r
-\r
-  return Size;\r
-}\r
-\r
-UINT32\r
-GetHobVersion (\r
-  IN VOID  *HobStart\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Get hob version.\r
-\r
-Arguments:\r
-\r
-  HobStart      - Start pointer of hob list\r
-\r
-Returns:\r
-\r
-  Hob version.\r
-\r
---*/\r
-{\r
-  EFI_PEI_HOB_POINTERS  Hob;\r
-\r
-  Hob.Raw = HobStart;\r
-  return Hob.HandoffInformationTable->Version;\r
-}\r
-\r
-EFI_STATUS\r
-GetHobBootMode (\r
-  IN  VOID           *HobStart,\r
-  OUT EFI_BOOT_MODE  *BootMode\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Get current boot mode.\r
-\r
-Arguments:\r
-\r
-  HobStart      - Start pointer of hob list\r
-  \r
-  BootMode      - Current boot mode recorded in PHIT hob\r
-\r
-Returns:\r
-\r
-  EFI_NOT_FOUND     - Invalid hob header\r
-  \r
-  EFI_SUCCESS       - Boot mode found\r
-\r
---*/\r
-{\r
-  EFI_PEI_HOB_POINTERS  Hob;\r
-\r
-  Hob.Raw = HobStart;\r
-  if (Hob.Header->HobType != EFI_HOB_TYPE_HANDOFF) {\r
-    return EFI_NOT_FOUND;\r
-  }\r
-\r
-  *BootMode = Hob.HandoffInformationTable->BootMode;\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-GetCpuHobInfo (\r
-  IN  VOID   *HobStart,\r
-  OUT UINT8  *SizeOfMemorySpace,\r
-  OUT UINT8  *SizeOfIoSpace\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Get information recorded in CPU hob (Memory space size, Io space size)\r
-\r
-Arguments:\r
-\r
-  HobStart            - Start pointer of hob list\r
-  \r
-  SizeOfMemorySpace   - Size of memory size\r
-  \r
-  SizeOfIoSpace       - Size of IO size\r
-\r
-Returns:\r
-\r
-  EFI_NOT_FOUND     - CPU hob not found\r
-  \r
-  EFI_SUCCESS       - CPU hob found and information got.\r
-\r
---*/\r
-{\r
-  EFI_PEI_HOB_POINTERS  CpuHob;\r
-\r
-  CpuHob.Raw  = HobStart;\r
-  CpuHob.Raw  = GetHob (EFI_HOB_TYPE_CPU, CpuHob.Raw);\r
-  if (CpuHob.Header->HobType != EFI_HOB_TYPE_CPU) {\r
-    return EFI_NOT_FOUND;\r
-  }\r
-\r
-  *SizeOfMemorySpace  = CpuHob.Cpu->SizeOfMemorySpace;\r
-  *SizeOfIoSpace      = CpuHob.Cpu->SizeOfIoSpace;\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-GetDxeCoreHobInfo (\r
-  IN  VOID                  *HobStart,\r
-  OUT EFI_PHYSICAL_ADDRESS  *BaseAddress,\r
-  OUT UINT64                *Length,\r
-  OUT VOID                  **EntryPoint,\r
-  OUT EFI_GUID              **FileName\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Get memory allocation hob created for DXE core and extract its information\r
-\r
-Arguments:\r
-\r
-  HobStart        - Start pointer of the hob list\r
-  BaseAddress     - Start address of memory allocated for DXE core\r
-  Length          - Length of memory allocated for DXE core\r
-  EntryPoint      - DXE core file name\r
-  FileName        - File Name\r
-\r
-Returns:\r
-\r
-  EFI_NOT_FOUND   - DxeCoreHob not found  \r
-  EFI_SUCCESS     - DxeCoreHob found and information got\r
-\r
---*/\r
-{\r
-  EFI_PEI_HOB_POINTERS  DxeCoreHob;\r
-  \r
-  \r
-  DxeCoreHob.Raw  = HobStart;\r
-  DxeCoreHob.Raw  = GetHob (EFI_HOB_TYPE_MEMORY_ALLOCATION, DxeCoreHob.Raw);\r
-  while (DxeCoreHob.Header->HobType == EFI_HOB_TYPE_MEMORY_ALLOCATION && \r
-         !EfiCompareGuid (&DxeCoreHob.MemoryAllocationModule->MemoryAllocationHeader.Name, \r
-                          &gEfiHobMemeryAllocModuleGuid)) {\r
-\r
-    DxeCoreHob.Raw  = GET_NEXT_HOB (DxeCoreHob);\r
-    DxeCoreHob.Raw  = GetHob (EFI_HOB_TYPE_MEMORY_ALLOCATION, DxeCoreHob.Raw);\r
-\r
-  }\r
-\r
-  if (DxeCoreHob.Header->HobType != EFI_HOB_TYPE_MEMORY_ALLOCATION) {\r
-    return EFI_NOT_FOUND;\r
-  }\r
-\r
-  *BaseAddress  = DxeCoreHob.MemoryAllocationModule->MemoryAllocationHeader.MemoryBaseAddress;\r
-  *Length       = DxeCoreHob.MemoryAllocationModule->MemoryAllocationHeader.MemoryLength;\r
-  *EntryPoint   = (VOID *) (UINTN) DxeCoreHob.MemoryAllocationModule->EntryPoint;\r
-  *FileName     = &DxeCoreHob.MemoryAllocationModule->ModuleName;\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-GetNextFirmwareVolumeHob (\r
-  IN OUT VOID                  **HobStart,\r
-  OUT    EFI_PHYSICAL_ADDRESS  *BaseAddress,\r
-  OUT    UINT64                *Length\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Get next firmware volume hob from HobStart\r
-\r
-Arguments:\r
-\r
-  HobStart        - Start pointer of hob list\r
-  \r
-  BaseAddress     - Start address of next firmware volume\r
-  \r
-  Length          - Length of next firmware volume\r
-\r
-Returns:\r
-\r
-  EFI_NOT_FOUND   - Next firmware volume not found\r
-  \r
-  EFI_SUCCESS     - Next firmware volume found with address information\r
-\r
---*/\r
-{\r
-  EFI_PEI_HOB_POINTERS  FirmwareVolumeHob;\r
-\r
-  FirmwareVolumeHob.Raw = *HobStart;\r
-  if (END_OF_HOB_LIST (FirmwareVolumeHob)) {\r
-    return EFI_NOT_FOUND;\r
-  }\r
-\r
-  FirmwareVolumeHob.Raw = GetHob (EFI_HOB_TYPE_FV, *HobStart);\r
-  if (FirmwareVolumeHob.Header->HobType != EFI_HOB_TYPE_FV) {\r
-    return EFI_NOT_FOUND;\r
-  }\r
-\r
-  *BaseAddress  = FirmwareVolumeHob.FirmwareVolume->BaseAddress;\r
-  *Length       = FirmwareVolumeHob.FirmwareVolume->Length;\r
-\r
-  *HobStart     = GET_NEXT_HOB (FirmwareVolumeHob);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-#if (PI_SPECIFICATION_VERSION >= 0x00010000)\r
-EFI_STATUS\r
-GetNextFirmwareVolume2Hob (\r
-  IN OUT VOID                  **HobStart,\r
-  OUT    EFI_PHYSICAL_ADDRESS  *BaseAddress,\r
-  OUT    UINT64                *Length,\r
-  OUT    EFI_GUID              *FileName\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Get next firmware volume2 hob from HobStart\r
-\r
-Arguments:\r
-\r
-  HobStart        - Start pointer of hob list\r
-  \r
-  BaseAddress     - Start address of next firmware volume\r
-  \r
-  Length          - Length of next firmware volume\r
-\r
-Returns:\r
-\r
-  EFI_NOT_FOUND   - Next firmware volume not found\r
-  \r
-  EFI_SUCCESS     - Next firmware volume found with address information\r
-\r
---*/\r
-{\r
-  EFI_PEI_HOB_POINTERS  FirmwareVolumeHob;\r
-\r
-  FirmwareVolumeHob.Raw = *HobStart;\r
-  if (END_OF_HOB_LIST (FirmwareVolumeHob)) {\r
-    return EFI_NOT_FOUND;\r
-  }\r
-\r
-  FirmwareVolumeHob.Raw = GetHob (EFI_HOB_TYPE_FV2, *HobStart);\r
-  if (FirmwareVolumeHob.Header->HobType != EFI_HOB_TYPE_FV2) {\r
-    return EFI_NOT_FOUND;\r
-  }\r
-\r
-  *BaseAddress  = FirmwareVolumeHob.FirmwareVolume2->BaseAddress;\r
-  *Length       = FirmwareVolumeHob.FirmwareVolume2->Length;\r
-  EfiCommonLibCopyMem(FileName,&FirmwareVolumeHob.FirmwareVolume2->FileName,sizeof(EFI_GUID));\r
-\r
-  *HobStart     = GET_NEXT_HOB (FirmwareVolumeHob);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-#endif\r
-\r
-EFI_STATUS\r
-GetNextGuidHob (\r
-  IN OUT VOID      **HobStart,\r
-  IN     EFI_GUID  * Guid,\r
-  OUT    VOID      **Buffer,\r
-  OUT    UINTN     *BufferSize OPTIONAL\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-  Get the next guid hob.\r
-  \r
-Arguments:\r
-  HobStart        A pointer to the start hob.\r
-  Guid            A pointer to a guid.\r
-  Buffer          A pointer to the buffer.\r
-  BufferSize      Buffer size.\r
-  \r
-Returns:\r
-  Status code.\r
-\r
-  EFI_NOT_FOUND          - Next Guid hob not found\r
-  \r
-  EFI_SUCCESS            - Next Guid hob found and data for this Guid got\r
-  \r
-  EFI_INVALID_PARAMETER  - invalid parameter\r
-\r
---*/\r
-{\r
-  EFI_STATUS            Status;\r
-  EFI_PEI_HOB_POINTERS  GuidHob;\r
-\r
-  if (Buffer == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  for (Status = EFI_NOT_FOUND; EFI_ERROR (Status);) {\r
-\r
-    GuidHob.Raw = *HobStart;\r
-    if (END_OF_HOB_LIST (GuidHob)) {\r
-      return EFI_NOT_FOUND;\r
-    }\r
-\r
-    GuidHob.Raw = GetHob (EFI_HOB_TYPE_GUID_EXTENSION, *HobStart);\r
-    if (GuidHob.Header->HobType == EFI_HOB_TYPE_GUID_EXTENSION) {\r
-      if (EfiCompareGuid (Guid, &GuidHob.Guid->Name)) {\r
-        Status  = EFI_SUCCESS;\r
-        *Buffer = (VOID *) ((UINT8 *) (&GuidHob.Guid->Name) + sizeof (EFI_GUID));\r
-        if (BufferSize != NULL) {\r
-          *BufferSize = GuidHob.Header->HobLength - sizeof (EFI_HOB_GUID_TYPE);\r
-        }\r
-      }\r
-    }\r
-\r
-    *HobStart = GET_NEXT_HOB (GuidHob);\r
-  }\r
-\r
-  return Status;\r
-}\r
-\r
-\r
-#define PAL_ENTRY_HOB {0xe53cb8cc, 0xd62c, 0x4f74, {0xbd, 0xda, 0x31, 0xe5, 0x8d, 0xe5, 0x3e, 0x2}}\r
-EFI_GUID  gPalEntryHob = PAL_ENTRY_HOB;\r
-\r
-EFI_STATUS\r
-GetPalEntryHobInfo (\r
-  IN  VOID                  *HobStart,\r
-  OUT EFI_PHYSICAL_ADDRESS  *PalEntry\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Get PAL entry from PalEntryHob\r
-\r
-Arguments:\r
-\r
-  HobStart      - Start pointer of hob list\r
-  \r
-  PalEntry      - Pointer to PAL entry\r
-\r
-Returns:\r
-\r
-  Status code.\r
-\r
---*/\r
-{\r
-  VOID        *Buffer;\r
-  UINTN       BufferSize;\r
-  EFI_STATUS  Status;\r
-  VOID        *HobStart2;\r
-\r
-  //\r
-  // Initialize 'Buffer' to NULL before usage\r
-  //\r
-  Buffer = NULL;\r
-  HobStart2 = HobStart;\r
-  Status = GetNextGuidHob (\r
-            &HobStart2,\r
-            &gPalEntryHob,\r
-            &Buffer,\r
-            &BufferSize\r
-            );\r
-  if (EFI_ERROR (Status) || (Buffer == NULL)) {\r
-    //\r
-    // Failed to get HOB for gPalEntryHob\r
-    //\r
-    return EFI_NOT_FOUND;\r
-  }\r
-  *PalEntry = *((EFI_PHYSICAL_ADDRESS *) Buffer);\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-\r
-EFI_STATUS\r
-GetIoPortSpaceAddressHobInfo (\r
-  IN  VOID                  *HobStart,\r
-  OUT EFI_PHYSICAL_ADDRESS  *IoPortSpaceAddress\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Get IO port space address from IoBaseHob.\r
-\r
-Arguments:\r
-\r
-  HobStart              - Start pointer of hob list\r
-  \r
-  IoPortSpaceAddress    - IO port space address\r
-\r
-Returns:\r
-\r
-  Status code\r
-\r
---*/\r
-{\r
-\r
-  VOID        *Buffer;\r
-  UINTN       BufferSize;\r
-  EFI_STATUS  Status;\r
-  VOID        *HobStart2;\r
-\r
-  //\r
-  // Initialize 'Buffer' to NULL before usage\r
-  //\r
-  Buffer = NULL;\r
-  HobStart2 = HobStart;\r
-  Status = GetNextGuidHob (\r
-            &HobStart2,\r
-            &gEfiIoBaseHobGuid,\r
-            &Buffer,\r
-            &BufferSize\r
-            );\r
-  if (EFI_ERROR (Status) || (Buffer == NULL)) {\r
-    //\r
-    // Failed to get HOB for gEfiIoBaseHobGuid\r
-    //\r
-    return EFI_NOT_FOUND;\r
-  }\r
-\r
-  *IoPortSpaceAddress = *((EFI_PHYSICAL_ADDRESS *) Buffer);\r
-  return EFI_SUCCESS;\r
-}\r