| /** @file | |
| * | |
| * Copyright (c) 2011, ARM Limited. All rights reserved. | |
| * | |
| * This program and the accompanying materials | |
| * are licensed and made available under the terms and conditions of the BSD License | |
| * which accompanies this distribution. The full text of the license may be found at | |
| * http://opensource.org/licenses/bsd-license.php | |
| * | |
| * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| * | |
| **/ | |
| #include <PiPei.h> | |
| #include <Library/PrePiHobListPointerLib.h> | |
| #include <Library/DebugLib.h> | |
| #include <Library/PcdLib.h> | |
| // | |
| // Have to use build system to set the original value in case we are running | |
| // from FLASH and globals don't work. So if you do a GetHobList() and gHobList | |
| // and gHobList is NULL the PCD default values are used. | |
| // | |
| VOID *gHobList = NULL; | |
| /** | |
| Returns the pointer to the HOB list. | |
| This function returns the pointer to first HOB in the list. | |
| @return The pointer to the HOB list. | |
| **/ | |
| VOID * | |
| EFIAPI | |
| PrePeiGetHobList ( | |
| VOID | |
| ) | |
| { | |
| if (gHobList == NULL) { | |
| return (VOID *)*(UINTN*)PcdGet32 (PcdPrePiHobBase); | |
| } else { | |
| return gHobList; | |
| } | |
| } | |
| /** | |
| Updates the pointer to the HOB list. | |
| @param HobList Hob list pointer to store | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| PrePeiSetHobList ( | |
| IN VOID *HobList | |
| ) | |
| { | |
| gHobList = HobList; | |
| // | |
| // If this code is running from ROM this could fail | |
| // | |
| return (gHobList == HobList) ? EFI_SUCCESS: EFI_UNSUPPORTED; | |
| } |