1 /** @file 2 * 3 * Copyright (c) 2011, ARM Limited. All rights reserved. 4 * 5 * This program and the accompanying materials 6 * are licensed and made available under the terms and conditions of the BSD License 7 * which accompanies this distribution. The full text of the license may be found at 8 * http://opensource.org/licenses/bsd-license.php 9 * 10 * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 * 13 **/ 14 15 #include <PiPei.h> 16 #include <Library/PrePiHobListPointerLib.h> 17 #include <Library/DebugLib.h> 18 #include <Library/PcdLib.h> 19 20 // 21 // Have to use build system to set the original value in case we are running 22 // from FLASH and globals don't work. So if you do a GetHobList() and gHobList 23 // and gHobList is NULL the PCD default values are used. 24 // 25 VOID *gHobList = NULL; 26 27 28 /** 29 Returns the pointer to the HOB list. 30 31 This function returns the pointer to first HOB in the list. 32 33 @return The pointer to the HOB list. 34 35 **/ 36 VOID * 37 EFIAPI PrePeiGetHobList(VOID)38PrePeiGetHobList ( 39 VOID 40 ) 41 { 42 if (gHobList == NULL) { 43 return (VOID *)*(UINTN*)PcdGet32 (PcdPrePiHobBase); 44 } else { 45 return gHobList; 46 } 47 } 48 49 50 51 /** 52 Updates the pointer to the HOB list. 53 54 @param HobList Hob list pointer to store 55 56 **/ 57 EFI_STATUS 58 EFIAPI PrePeiSetHobList(IN VOID * HobList)59PrePeiSetHobList ( 60 IN VOID *HobList 61 ) 62 { 63 gHobList = HobList; 64 65 // 66 // If this code is running from ROM this could fail 67 // 68 return (gHobList == HobList) ? EFI_SUCCESS: EFI_UNSUPPORTED; 69 } 70