]> git.proxmox.com Git - mirror_edk2.git/blame - EmulatorPkg/ThunkPpiToProtocolPei/ThunkPpiToProtocolPei.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / EmulatorPkg / ThunkPpiToProtocolPei / ThunkPpiToProtocolPei.c
CommitLineData
949f388f 1/*++ @file\r
2 UEFI/PI PEIM to abstract construction of firmware volume in a Unix environment.\r
3\r
4Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
5Portions copyright (c) 2010 - 2011, Apple Inc. All rights reserved.\r
e3ba31da 6SPDX-License-Identifier: BSD-2-Clause-Patent\r
949f388f 7\r
8**/\r
9\r
10#include <PiPei.h>\r
11\r
12#include <Library/DebugLib.h>\r
13#include <Library/PeimEntryPoint.h>\r
14#include <Library/HobLib.h>\r
15#include <Library/PeiServicesLib.h>\r
16#include <Library/PeiServicesTablePointerLib.h>\r
17\r
18#include <Ppi/EmuThunk.h>\r
19#include <Protocol/EmuThunk.h>\r
20\r
949f388f 21EFI_STATUS\r
22EFIAPI\r
23PeiInitialzeThunkPpiToProtocolPei (\r
a550d468
MK
24 IN EFI_PEI_FILE_HANDLE FileHandle,\r
25 IN CONST EFI_PEI_SERVICES **PeiServices\r
949f388f 26 )\r
a550d468 27\r
949f388f 28/*++\r
29\r
30Routine Description:\r
31\r
32 Perform a call-back into the SEC simulator to get Unix Stuff\r
33\r
34Arguments:\r
35\r
36 PeiServices - General purpose services available to every PEIM.\r
d18d8a1d 37\r
949f388f 38Returns:\r
39\r
40 None\r
41\r
42**/\r
43{\r
44 EFI_STATUS Status;\r
45 EFI_PEI_PPI_DESCRIPTOR *PpiDescriptor;\r
46 EMU_THUNK_PPI *Thunk;\r
47 VOID *Ptr;\r
48\r
9c7da8d8 49 DEBUG ((DEBUG_ERROR, "Emu Thunk PEIM Loaded\n"));\r
949f388f 50\r
51 Status = PeiServicesLocatePpi (\r
a550d468
MK
52 &gEmuThunkPpiGuid, // GUID\r
53 0, // INSTANCE\r
54 &PpiDescriptor, // EFI_PEI_PPI_DESCRIPTOR\r
55 (VOID **)&Thunk // PPI\r
56 );\r
949f388f 57 ASSERT_EFI_ERROR (Status);\r
58\r
59 Ptr = Thunk->Thunk ();\r
60\r
61 BuildGuidDataHob (\r
62 &gEmuThunkProtocolGuid, // Guid\r
63 &Ptr, // Buffer\r
64 sizeof (VOID *) // Sizeof Buffer\r
65 );\r
66 return Status;\r
67}\r