]> git.proxmox.com Git - mirror_edk2.git/blame - EmulatorPkg/Library/ThunkPpiList/ThunkPpiList.c
EmulatorPkg/PeiEmuSerialPortLib: Update the INF file Guid
[mirror_edk2.git] / EmulatorPkg / Library / ThunkPpiList / ThunkPpiList.c
CommitLineData
949f388f 1/** @file\r
2 Emulator Thunk to abstract OS services from pure EFI code\r
3\r
4 Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>\r
b8800fc5 5 Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
d18d8a1d 6\r
e3ba31da 7 SPDX-License-Identifier: BSD-2-Clause-Patent\r
949f388f 8\r
9**/\r
10\r
11#include <PiPei.h>\r
12#include <Library/BaseLib.h>\r
b8800fc5 13#include <Library/MemoryAllocationLib.h>\r
949f388f 14\r
15\r
16UINTN gThunkPpiListSize = 0;\r
17EFI_PEI_PPI_DESCRIPTOR *gThunkPpiList = NULL;\r
18\r
19\r
20\r
21EFI_PEI_PPI_DESCRIPTOR *\r
22GetThunkPpiList (\r
23 VOID\r
24 )\r
25{\r
26 UINTN Index;\r
d18d8a1d 27\r
949f388f 28 if (gThunkPpiList == NULL) {\r
29 return NULL;\r
30 }\r
31\r
32 Index = (gThunkPpiListSize/sizeof (EFI_PEI_PPI_DESCRIPTOR)) - 1;\r
33 gThunkPpiList[Index].Flags |= EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;\r
d18d8a1d 34\r
949f388f 35 return gThunkPpiList;\r
36}\r
37\r
38\r
39EFI_STATUS\r
40EFIAPI\r
41AddThunkPpi (\r
42 IN UINTN Flags,\r
43 IN EFI_GUID *Guid,\r
44 IN VOID *Ppi\r
45 )\r
46{\r
47 UINTN Index;\r
b8800fc5 48\r
49 gThunkPpiList = ReallocatePool (\r
50 gThunkPpiListSize,\r
51 gThunkPpiListSize + sizeof (EFI_PEI_PPI_DESCRIPTOR),\r
52 gThunkPpiList\r
53 );\r
949f388f 54 if (gThunkPpiList == NULL) {\r
55 return EFI_OUT_OF_RESOURCES;\r
56 }\r
d18d8a1d 57\r
949f388f 58 Index = (gThunkPpiListSize/sizeof (EFI_PEI_PPI_DESCRIPTOR));\r
59 gThunkPpiList[Index].Flags = Flags;\r
60 gThunkPpiList[Index].Guid = Guid;\r
61 gThunkPpiList[Index].Ppi = Ppi;\r
62 gThunkPpiListSize += sizeof (EFI_PEI_PPI_DESCRIPTOR);\r
63\r
64 return EFI_SUCCESS;\r
65}\r
66\r
67\r
68\r
69\r
70\r