]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointer.c
ArmPlatformPkg/Sec: Clean and Move all declaration into 'SecInternal.h' (2)
[mirror_edk2.git] / ArmPlatformPkg / Library / PrePiHobListPointerLib / PrePiHobListPointer.c
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 Returns the pointer to the HOB list.
22
23 This function returns the pointer to first HOB in the list.
24
25 @return The pointer to the HOB list.
26
27 **/
28 VOID *
29 EFIAPI
30 PrePeiGetHobList (
31 VOID
32 )
33 {
34 return (VOID *)*(UINTN*)(PcdGet32 (PcdCPUCoresNonSecStackBase) +
35 PcdGet32 (PcdCPUCoresNonSecStackSize) -
36 PcdGet32 (PcdPeiGlobalVariableSize) +
37 PcdGet32 (PcdHobListPtrGlobalOffset));
38 }
39
40
41
42 /**
43 Updates the pointer to the HOB list.
44
45 @param HobList Hob list pointer to store
46
47 **/
48 EFI_STATUS
49 EFIAPI
50 PrePeiSetHobList (
51 IN VOID *HobList
52 )
53 {
54 UINTN* HobListPtr;
55
56 HobListPtr = (UINTN*)(PcdGet32 (PcdCPUCoresNonSecStackBase) +
57 PcdGet32 (PcdCPUCoresNonSecStackSize) -
58 PcdGet32 (PcdPeiGlobalVariableSize) +
59 PcdGet32 (PcdHobListPtrGlobalOffset));
60
61 *HobListPtr = (UINTN)HobList;
62
63 return EFI_SUCCESS;
64 }
65