summaryrefslogtreecommitdiffstats
path: root/EmulatorPkg/Library/ThunkPpiList/ThunkPpiList.c
diff options
context:
space:
mode:
authorjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2011-06-28 16:47:23 +0000
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2011-06-28 16:47:23 +0000
commitbb89ec1a7ec2f8d35033df9e47b3604925da3bd3 (patch)
tree32d38e02ccab98dbac4c3014a12ac365775e8eb3 /EmulatorPkg/Library/ThunkPpiList/ThunkPpiList.c
parentd3e0289ccf641481f2cbdcbb0d5868c393b7edbb (diff)
downloadedk2-bb89ec1a7ec2f8d35033df9e47b3604925da3bd3.tar.gz
edk2-bb89ec1a7ec2f8d35033df9e47b3604925da3bd3.tar.bz2
edk2-bb89ec1a7ec2f8d35033df9e47b3604925da3bd3.zip
InOsEmuPkg: Rename package to EmulatorPkg & Sec to Host
* Rename InOsEmuPkg to EmulatorPkg * Rename Unix/Sec to Unix/Host Signed-off-by: jljusten Reviewed-by: andrewfish Reviewed-by: geekboy15a git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11918 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'EmulatorPkg/Library/ThunkPpiList/ThunkPpiList.c')
-rw-r--r--EmulatorPkg/Library/ThunkPpiList/ThunkPpiList.c76
1 files changed, 76 insertions, 0 deletions
diff --git a/EmulatorPkg/Library/ThunkPpiList/ThunkPpiList.c b/EmulatorPkg/Library/ThunkPpiList/ThunkPpiList.c
new file mode 100644
index 0000000000..3c2fd93e7f
--- /dev/null
+++ b/EmulatorPkg/Library/ThunkPpiList/ThunkPpiList.c
@@ -0,0 +1,76 @@
+/** @file
+ Emulator Thunk to abstract OS services from pure EFI code
+
+ Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>
+ Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
+
+ 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/BaseLib.h>
+#include <Library/MemoryAllocationLib.h>
+
+
+UINTN gThunkPpiListSize = 0;
+EFI_PEI_PPI_DESCRIPTOR *gThunkPpiList = NULL;
+
+
+
+EFI_PEI_PPI_DESCRIPTOR *
+GetThunkPpiList (
+ VOID
+ )
+{
+ UINTN Index;
+
+ if (gThunkPpiList == NULL) {
+ return NULL;
+ }
+
+ Index = (gThunkPpiListSize/sizeof (EFI_PEI_PPI_DESCRIPTOR)) - 1;
+ gThunkPpiList[Index].Flags |= EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;
+
+ return gThunkPpiList;
+}
+
+
+EFI_STATUS
+EFIAPI
+AddThunkPpi (
+ IN UINTN Flags,
+ IN EFI_GUID *Guid,
+ IN VOID *Ppi
+ )
+{
+ UINTN Index;
+
+ gThunkPpiList = ReallocatePool (
+ gThunkPpiListSize,
+ gThunkPpiListSize + sizeof (EFI_PEI_PPI_DESCRIPTOR),
+ gThunkPpiList
+ );
+ if (gThunkPpiList == NULL) {
+ return EFI_OUT_OF_RESOURCES;
+ }
+
+ Index = (gThunkPpiListSize/sizeof (EFI_PEI_PPI_DESCRIPTOR));
+ gThunkPpiList[Index].Flags = Flags;
+ gThunkPpiList[Index].Guid = Guid;
+ gThunkPpiList[Index].Ppi = Ppi;
+ gThunkPpiListSize += sizeof (EFI_PEI_PPI_DESCRIPTOR);
+
+ return EFI_SUCCESS;
+}
+
+
+
+
+