]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UnixPkg/Sec/SecMain.h
Integrate patch from Andrew Fish to make it run on OS X.
[mirror_edk2.git] / UnixPkg / Sec / SecMain.h
index 236a50ee43bfb04eb832612647df1404fbdc1185..c7a72c93a6b0bbeaab3c3b4dc41b550ea0632b2c 100644 (file)
@@ -1,6 +1,7 @@
 /*++\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
@@ -28,6 +29,7 @@ Abstract:
 #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
@@ -42,10 +44,17 @@ typedef struct {
 } 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
@@ -73,7 +82,7 @@ Returns:
 \r
 EFI_STATUS\r
 EFIAPI\r
-SecWinNtPeiAutoScan (\r
+SecUnixPeiAutoScan (\r
   IN  UINTN                 Index,\r
   OUT EFI_PHYSICAL_ADDRESS  *MemoryBase,\r
   OUT UINT64                *MemorySize\r
@@ -99,7 +108,7 @@ Returns:
 \r
 VOID *\r
 EFIAPI\r
-SecWinNtWinNtThunkAddress (\r
+SecUnixUnixThunkAddress (\r
   VOID\r
   )\r
 /*++\r
@@ -122,7 +131,7 @@ Returns:
 \r
 EFI_STATUS\r
 EFIAPI\r
-SecWinNtWinNtFwhAddress (\r
+SecUnixUnixFwhAddress (\r
   IN OUT UINT64                *FwhSize,\r
   IN OUT EFI_PHYSICAL_ADDRESS  *FwhBase\r
   )\r
@@ -147,12 +156,12 @@ Returns:
 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
@@ -176,12 +185,11 @@ Returns:
 --*/\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
@@ -331,7 +339,7 @@ Returns:
 \r
 EFI_STATUS\r
 EFIAPI\r
-SecWinNtPeCoffLoaderLoadAsDll (\r
+SecUnixPeCoffLoaderLoadAsDll (\r
   IN CHAR8    *PdbFileName,\r
   IN VOID     **ImageEntryPoint,\r
   OUT VOID    **ModHandle\r
@@ -357,7 +365,7 @@ Returns:
 \r
 EFI_STATUS\r
 EFIAPI\r
-SecWinNtPeCoffLoaderFreeLibrary (\r
+SecUnixPeCoffLoaderFreeLibrary (\r
   OUT VOID    *ModHandle\r
   )\r
 /*++\r
@@ -379,7 +387,7 @@ Returns:
 \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
@@ -509,4 +517,25 @@ SecTemporaryRamSupport (
   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