]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointer.c
OvmfPkg/RiscVVirt: Add PrePiHobListPointerLib library
[mirror_edk2.git] / OvmfPkg / RiscVVirt / Library / PrePiHobListPointerLib / PrePiHobListPointer.c
1 /** @file
2 *
3 * Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
4 * SPDX-License-Identifier: BSD-2-Clause-Patent
5 *
6 **/
7
8 #include <PiPei.h>
9 #include <Library/PrePiHobListPointerLib.h>
10 #include <Library/DebugLib.h>
11 #include <Library/HobLib.h>
12 #include <Library/BaseRiscVSbiLib.h>
13
14 /**
15 Returns the pointer to the HOB list.
16
17 This function returns the pointer to first HOB in the list.
18
19 @return The pointer to the HOB list.
20
21 **/
22 VOID *
23 EFIAPI
24 PrePeiGetHobList (
25 VOID
26 )
27 {
28 EFI_RISCV_FIRMWARE_CONTEXT *FirmwareContext;
29
30 FirmwareContext = NULL;
31 GetFirmwareContextPointer (&FirmwareContext);
32
33 if (FirmwareContext == NULL) {
34 DEBUG ((DEBUG_ERROR, "%a: Firmware Context is NULL\n", __FUNCTION__));
35 return NULL;
36 }
37
38 return (VOID *)FirmwareContext->PrePiHobList;
39 }
40
41 /**
42 Updates the pointer to the HOB list.
43
44 @param HobList Hob list pointer to store
45
46 **/
47 EFI_STATUS
48 EFIAPI
49 PrePeiSetHobList (
50 IN VOID *HobList
51 )
52 {
53 EFI_RISCV_FIRMWARE_CONTEXT *FirmwareContext;
54
55 FirmwareContext = NULL;
56 GetFirmwareContextPointer (&FirmwareContext);
57
58 if (FirmwareContext == NULL) {
59 DEBUG ((DEBUG_ERROR, "%a: Firmware Context is NULL\n", __FUNCTION__));
60 return EFI_NOT_READY;
61 }
62
63 FirmwareContext->PrePiHobList = HobList;
64 return EFI_SUCCESS;
65 }