]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/DxeCoreHobLib/HobLib.c
Fixed build issues for DxeCoreHobLib and BaseUefiDecompressLib.
[mirror_edk2.git] / MdePkg / Library / DxeCoreHobLib / HobLib.c
index c8ac8b49521e1ff45502da6d9e9e02ab3358d226..d94225e0a4037861ebfd85287203fb27607b6ecf 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   HOB Library.\r
 \r
-  Copyright (c) 2006, Intel Corporation<BR>\r
+  Copyright (c) 2006 - 2007, Intel Corporation<BR>\r
   All rights reserved. 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
 **/\r
 \r
 \r
+//\r
+// The package level header files this module uses\r
+//\r
+#include <PiDxe.h>\r
+//\r
+// The protocols, PPI and GUID defintions for this module\r
+//\r
+//\r
+// The Library classes this module consumes\r
+//\r
+#include <Library/HobLib.h>\r
+#include <Library/DebugLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
 \r
-extern VOID *gHobList;\r
-\r
+#include "InternalHobLib.h"\r
 \r
 /**\r
   Returns the pointer to the HOB list.\r
@@ -39,7 +51,7 @@ GetHobList (
 /**\r
   Returns the next instance of a HOB type from the starting HOB.\r
 \r
-  This function searches the first instance of a HOB type from the starting HOB pointer. \r
+  This function searches the first instance of a HOB type from the starting HOB pointer.\r
   If there does not exist such HOB type from the starting HOB pointer, it will return NULL.\r
   In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer\r
   unconditionally: it returns HobStart back if HobStart itself meets the requirement;\r
@@ -62,7 +74,7 @@ GetNextHob (
   EFI_PEI_HOB_POINTERS  Hob;\r
 \r
   ASSERT (HobStart != NULL);\r
-   \r
+\r
   Hob.Raw = (UINT8 *) HobStart;\r
   //\r
   // Parse the HOB list until end of list or matching type is found.\r
@@ -79,8 +91,8 @@ GetNextHob (
 /**\r
   Returns the first instance of a HOB type among the whole HOB list.\r
 \r
-  This function searches the first instance of a HOB type among the whole HOB list. \r
-  If there does not exist such HOB type in the HOB list, it will return NULL. \r
+  This function searches the first instance of a HOB type among the whole HOB list.\r
+  If there does not exist such HOB type in the HOB list, it will return NULL.\r
 \r
   @param  Type          The HOB type to return.\r
 \r
@@ -100,10 +112,10 @@ GetFirstHob (
 }\r
 \r
 /**\r
-  This function searches the first instance of a HOB from the starting HOB pointer. \r
-  Such HOB should satisfy two conditions: \r
-  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid. \r
-  If there does not exist such HOB from the starting HOB pointer, it will return NULL. \r
+  This function searches the first instance of a HOB from the starting HOB pointer.\r
+  Such HOB should satisfy two conditions:\r
+  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.\r
+  If there does not exist such HOB from the starting HOB pointer, it will return NULL.\r
   Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()\r
   to extract the data section and its size info respectively.\r
   In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer\r
@@ -138,7 +150,7 @@ GetNextGuidHob (
 }\r
 \r
 /**\r
-  This function searches the first instance of a HOB among the whole HOB list. \r
+  This function searches the first instance of a HOB among the whole HOB list.\r
   Such HOB should satisfy two conditions:\r
   its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.\r
   If there does not exist such HOB from the starting HOB pointer, it will return NULL.\r
@@ -163,6 +175,29 @@ GetFirstGuidHob (
   return GetNextGuidHob (Guid, HobList);\r
 }\r
 \r
+/**\r
+  Get the Boot Mode from the HOB list.\r
+\r
+  This function returns the system boot mode information from the\r
+  PHIT HOB in HOB list.\r
+\r
+  @param  VOID\r
+\r
+  @return The Boot Mode.\r
+\r
+**/\r
+EFI_BOOT_MODE\r
+EFIAPI\r
+GetBootModeHob (\r
+  VOID\r
+  )\r
+{\r
+  EFI_HOB_HANDOFF_INFO_TABLE    *HandOffHob;\r
+\r
+  HandOffHob = (EFI_HOB_HANDOFF_INFO_TABLE *) GetHobList ();\r
+\r
+  return  HandOffHob->BootMode;\r
+}\r
 /**\r
   Builds a HOB for a loaded PE32 module.\r
 \r
@@ -175,7 +210,7 @@ GetFirstGuidHob (
   @param  ModuleName              The GUID File Name of the module.\r
   @param  MemoryAllocationModule  The 64 bit physical address of the module.\r
   @param  ModuleLength            The length of the module in bytes.\r
-  @param  EntryPoint              The 64 bit physical address of the module\92s entry point.\r
+  @param  EntryPoint              The 64 bit physical address of the module's entry point.\r
 \r
 **/\r
 VOID\r
@@ -225,8 +260,8 @@ BuildResourceDescriptorHob (
 /**\r
   Builds a GUID HOB with a certain data length.\r
 \r
-  This function builds a customized HOB tagged with a GUID for identification \r
-  and returns the start address of GUID HOB data so that caller can fill the customized data. \r
+  This function builds a customized HOB tagged with a GUID for identification\r
+  and returns the start address of GUID HOB data so that caller can fill the customized data.\r
   The HOB Header and Name field is already stripped.\r
   It can only be invoked during PEI phase;\r
   for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.\r