/*++\r
\r
-Copyright (c) 2006 - 2008, Intel Corporation \r
+Copyright (c) 2006 - 2009, Intel Corporation \r
+Portions copyright (c) 2008-2009 Apple Inc.\r
All rights reserved. This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
Include file for host API based SEC\r
\r
--*/\r
-#include "PiPei.h"\r
-#include "Uefi/UefiSpec.h"\r
+#include <FrameworkPei.h>\r
\r
#include <Protocol/UnixThunk.h>\r
-#include <Pi/PiFirmwareVolume.h>\r
#include <Ppi/StatusCode.h>\r
\r
#include <Library/PeCoffLib.h>\r
#include <Library/PrintLib.h>\r
#include <Library/PcdLib.h>\r
#include <Library/DebugLib.h>\r
+#include <Library/ReportStatusCodeLib.h>\r
\r
#define STACK_SIZE 0x20000 \r
\r
} UNIX_SYSTEM_MEMORY;\r
\r
\r
+#define MAX_IMAGE_CONTEXT_TO_MOD_HANDLE_ARRAY_SIZE 0x100\r
+\r
+typedef struct {\r
+ PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext;\r
+ VOID *ModHandle;\r
+} IMAGE_CONTEXT_TO_MOD_HANDLE;\r
+\r
\r
EFI_STATUS\r
EFIAPI\r
-SecWinNtPeiLoadFile (\r
+SecUnixPeiLoadFile (\r
VOID *Pe32Data, // TODO: add IN/OUT modifier to Pe32Data\r
EFI_PHYSICAL_ADDRESS *ImageAddress, // TODO: add IN/OUT modifier to ImageAddress\r
UINT64 *ImageSize, // TODO: add IN/OUT modifier to ImageSize\r
\r
EFI_STATUS\r
EFIAPI\r
-SecWinNtPeiAutoScan (\r
+SecUnixPeiAutoScan (\r
IN UINTN Index,\r
OUT EFI_PHYSICAL_ADDRESS *MemoryBase,\r
OUT UINT64 *MemorySize\r
\r
VOID *\r
EFIAPI\r
-SecWinNtWinNtThunkAddress (\r
+SecUnixUnixThunkAddress (\r
VOID\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
-SecWinNtWinNtFwhAddress (\r
+SecUnixUnixFwhAddress (\r
IN OUT UINT64 *FwhSize,\r
IN OUT EFI_PHYSICAL_ADDRESS *FwhBase\r
)\r
EFI_STATUS\r
EFIAPI\r
SecPeiReportStatusCode (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN EFI_STATUS_CODE_TYPE CodeType,\r
IN EFI_STATUS_CODE_VALUE Value,\r
IN UINT32 Instance,\r
- IN EFI_GUID * CallerId,\r
- IN EFI_STATUS_CODE_DATA * Data OPTIONAL\r
+ IN CONST EFI_GUID *CallerId,\r
+ IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL\r
)\r
/*++\r
\r
--*/\r
;\r
\r
-INTN\r
-EFIAPI\r
+int\r
main (\r
- IN INTN Argc,\r
- IN CHAR8 **Argv,\r
- IN CHAR8 **Envp\r
+ IN int Argc,\r
+ IN char **Argv,\r
+ IN char **Envp\r
)\r
/*++\r
\r
\r
EFI_STATUS\r
EFIAPI\r
-SecWinNtPeCoffLoaderLoadAsDll (\r
+SecUnixPeCoffLoaderLoadAsDll (\r
IN CHAR8 *PdbFileName,\r
IN VOID **ImageEntryPoint,\r
OUT VOID **ModHandle\r
\r
EFI_STATUS\r
EFIAPI\r
-SecWinNtPeCoffLoaderFreeLibrary (\r
+SecUnixPeCoffLoaderFreeLibrary (\r
OUT VOID *ModHandle\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
-SecWinNtFdAddress (\r
+SecUnixFdAddress (\r
IN UINTN Index,\r
IN OUT EFI_PHYSICAL_ADDRESS *FdBase,\r
IN OUT UINT64 *FdSize\r
IN UINTN CopySize\r
);\r
\r
+\r
+RETURN_STATUS\r
+EFIAPI\r
+SecPeCoffGetEntryPoint (\r
+ IN VOID *Pe32Data,\r
+ IN OUT VOID **EntryPoint\r
+ );\r
+\r
+VOID\r
+EFIAPI\r
+SecPeCoffRelocateImageExtraAction (\r
+ IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
+ );\r
+\r
+VOID\r
+EFIAPI\r
+SecPeCoffLoaderUnloadImageExtraAction (\r
+ IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
+ );\r
+\r
+\r
extern EFI_UNIX_THUNK_PROTOCOL *gUnix;\r