Home | History | Annotate | Download | only in MultiPlatformLib
      1 /** @file
      2   Platform Hob access interface for multiplatform.
      3 
      4   Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>
      5 
      6   This program and the accompanying materials are licensed and made available under
      8   the terms and conditions of the BSD License that accompanies this distribution.
     10   The full text of the license may be found at
     12   http://opensource.org/licenses/bsd-license.php.
     14 
     16   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     18   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     20 
     22 
     24 **/
     25 
     26 #include <MultiPlatformLib.h>
     27 
     28 /**
     29   Returns the Platform Info of the platform from the HOB.
     30 
     31   @param PeiServices         General purpose services available to every PEIM.
     32   @param PlatformInfoHob     Pointer to the PLATFORM_INFO_HOB Pointer
     33 
     34   @retval EFI_SUCCESS        The function completed successfully.
     35   @retval EFI_NOT_FOUND      PlatformInfoHob data doesn't exist, use default instead.
     36 
     37 **/
     38 EFI_STATUS
     39 GetPlatformInfoHob (
     40   IN CONST EFI_PEI_SERVICES           **PeiServices,
     41   OUT EFI_PLATFORM_INFO_HOB     **PlatformInfoHob
     42   )
     43 {
     44   EFI_PEI_HOB_POINTERS        GuidHob;
     45 
     46   //
     47   // Find the PlatformInfo HOB
     48   //
     49   GuidHob.Raw = GetHobList ();
     50   if (GuidHob.Raw == NULL) {
     51     return EFI_NOT_FOUND;
     52   }
     53 
     54   if ((GuidHob.Raw = GetNextGuidHob (&gEfiPlatformInfoGuid, GuidHob.Raw)) != NULL) {
     55     *PlatformInfoHob = GET_GUID_HOB_DATA (GuidHob.Guid);
     56   }
     57 
     58   //
     59   // PlatformInfo PEIM should provide this HOB data, if not ASSERT and return error.
     60   //
     61   ASSERT (*PlatformInfoHob != NULL);
     62   if (!(*PlatformInfoHob)) {
     63     return EFI_NOT_FOUND;
     64   }
     65 
     66   return EFI_SUCCESS;
     67 }
     68 
     69