/*++\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 <Guid/PeiPeCoffLoader.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 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_PEI_SERVICES **PeiServices,\r
+ IN EFI_STATUS_CODE_TYPE CodeType,\r
+ IN EFI_STATUS_CODE_VALUE Value,\r
+ IN UINT32 Instance,\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 OUT UINT64 *FdSize,\r
+ IN OUT EFI_PHYSICAL_ADDRESS *FixUp\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- Index - TODO: add argument description\r
- FdBase - TODO: add argument description\r
- FdSize - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
;\r
\r
EFI_STATUS\r
\r
EFI_STATUS\r
EFIAPI\r
-SecNt32PeCoffGetImageInfo (\r
- IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
+SecTemporaryRamSupport (\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase,\r
+ IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase,\r
+ IN UINTN CopySize\r
);\r
\r
-EFI_STATUS\r
-EFIAPI\r
-SecNt32PeCoffLoadImage (\r
- IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
- );\r
\r
-EFI_STATUS\r
+RETURN_STATUS\r
EFIAPI\r
-SecNt32PeCoffRelocateImage (\r
- IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
+SecPeCoffGetEntryPoint (\r
+ IN VOID *Pe32Data,\r
+ IN OUT VOID **EntryPoint\r
);\r
\r
-EFI_STATUS\r
+VOID\r
EFIAPI\r
-SecNt32PeCoffUnloadimage (\r
- IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
- IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
+SecPeCoffRelocateImageExtraAction (\r
+ IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
);\r
\r
-EFI_STATUS\r
+VOID\r
EFIAPI\r
-SecTemporaryRamSupport (\r
- IN CONST EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase,\r
- IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase,\r
- IN UINTN CopySize\r
+SecPeCoffLoaderUnloadImageExtraAction (\r
+ IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
);\r
\r
-typedef struct {\r
- EFI_PEI_PE_COFF_LOADER_PROTOCOL PeCoff;\r
- VOID *ModHandle;\r
-} EFI_PEI_PE_COFF_LOADER_PROTOCOL_INSTANCE;\r
+\r
+\r
+VOID SetTimer (UINT64 PeriodMs, VOID (*CallBack)(UINT64 DeltaMs));\r
+void msSleep (unsigned long Milliseconds);\r
+void GetLocalTime (EFI_TIME *Time);\r
+void TzSet (void);\r
+long GetTimeZone(void);\r
+int GetDayLight(void);\r
+int GetErrno(void);\r
+\r
+\r
\r
extern EFI_UNIX_THUNK_PROTOCOL *gUnix;\r