]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Ppi/LoadFile.h
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2882 6f19259b...
[mirror_edk2.git] / MdePkg / Include / Ppi / LoadFile.h
index af02be7c9e6aaade43bd778c9c319b4d5d294696..542724b9ded377bc70a4fe881e89af5b0cb6f446 100644 (file)
   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
 \r
-  Module Name:  LoadFile.h\r
-\r
   @par Revision Reference:\r
-  This PPI is defined in PEI CIS spec Version 0.91.\r
+  This PPI is defined in PI Version 1.00.\r
 \r
 **/\r
 \r
 #ifndef __FV_FILE_LOADER_PPI_H__\r
 #define __FV_FILE_LOADER_PPI_H__\r
 \r
+#define EFI_PEI_LOAD_FILE_PPI_GUID \\r
+  { 0xb9e0abfe, 0x5979, 0x4914, { 0x97, 0x7f, 0x6d, 0xee, 0x78, 0xc2, 0x78, 0xa6 } }\r
+\r
+\r
+typedef struct _EFI_PEI_LOAD_FILE_PPI EFI_PEI_LOAD_FILE_PPI;\r
+\r
+/**\r
+  This service is the single member function of EFI_LOAD_FILE_PPI. This service separates\r
+  image loading and relocating from the PEI Foundation.\r
+  \r
+  @param This                 Interface pointer that implements\r
+                              the Load File PPI instance.\r
+\r
+  @param FileHandle           File handle of the file to load.\r
+                              Type EFI_PEI_FILE_HANDLE is defined in\r
+                              FfsFindNextFile().\r
+\r
+  @param ImageAddress         Pointer to the address of the\r
+                              loaded image.\r
+\r
+  @param ImageSize            Pointer to the size of the loaded\r
+                              image.\r
+\r
+  @param EntryPoint           Pointer to the entry point of the\r
+                              image.\r
+\r
+  @param AuthenticationState  On exit, points to the attestation\r
+                              authentication state of the image\r
+                              or 0 if no attestation was\r
+                              performed. The format of\r
+                              AuthenticationState is defined in\r
+                              EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI.ExtractSection()\r
+\r
+\r
+  @retval EFI_SUCCESS         The image was loaded successfully.\r
+\r
+  @retval EFI_OUT_OF_RESOURCES  There was not enough memory.\r
+\r
+  @retval EFI_LOAD_ERROR      There was no supported image in\r
+                              the file EFI_INVALID_PARAMETER\r
+                              FileHandle was not a valid\r
+                              firmware file handle.\r
+  @retval EFI_INVALID_PARAMETER   EntryPoint was NULL.\r
+\r
+  @retval EFI_NOT_SUPPORTED   An image requires relocations or\r
+                              is not memory mapped.\r
+   \r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_PEI_LOAD_FILE) (\r
+  IN CONST  EFI_PEI_LOAD_FILE_PPI   *This,\r
+  IN CONST  EFI_PEI_FILE_HANDLE     FileHandle,\r
+  OUT       EFI_PHYSICAL_ADDRESS    *ImageAddress,\r
+  OUT       UINT64                  *ImageSize,\r
+  OUT       EFI_PHYSICAL_ADDRESS    *EntryPoint,\r
+  OUT       UINT32                  *AuthenticationState\r
+);\r
+\r
+\r
+/**\r
+  This PPI is a pointer to the Load File service.\r
+  This service will be published by a PEIM. The PEI Foundation\r
+  will use this service to launch the known PEI module images.\r
+  \r
+  \r
+  @param LoadFile  Loads a PEIM into memory for subsequent\r
+                   execution. See the LoadFile() function\r
+                   description.\r
+  \r
+**/\r
+struct _EFI_PEI_LOAD_FILE_PPI {\r
+  EFI_PEI_LOAD_FILE LoadFile;\r
+};\r
+\r
+\r
+\r
 #define EFI_PEI_FV_FILE_LOADER_GUID \\r
   { \\r
     0x7e1f0d85, 0x4ff, 0x4bb2, {0x86, 0x6a, 0x31, 0xa2, 0x99, 0x6a, 0x48, 0xa8 } \\r
@@ -30,22 +105,16 @@ typedef struct _EFI_PEI_FV_FILE_LOADER_PPI  EFI_PEI_FV_FILE_LOADER_PPI;
 /**\r
   Loads a PEIM into memory for subsequent execution.\r
 \r
-  @param  This Interface pointer that implements the Load File PPI instance.\r
-  \r
-  @param  FfsHeader Pointer to the FFS header of the file to load.\r
-  \r
-  @param  ImageAddress Pointer to the address of the loaded Image\r
-  \r
-  @param  ImageSize Pointer to the size of the loaded image.\r
-  \r
-  @param  EntryPoint Pointer to the entry point of the image.\r
+  @param  This           Interface pointer that implements the Load File PPI instance.\r
+  @param  FfsHeader      Pointer to the FFS header of the file to load.\r
+  @param  ImageAddress   Pointer to the address of the loaded Image\r
+  @param  ImageSize      Pointer to the size of the loaded image.\r
+  @param  EntryPoint     Pointer to the entry point of the image.\r
 \r
-  @retval EFI_SUCCESS The image was loaded successfully.\r
-  \r
-  @retval EFI_OUT_OF_RESOURCES There was not enough memory.\r
-  \r
-  @retval EFI_INVALID_PARAMETER The contents of the FFS file did not \r
-  contain a valid PE/COFF image that could be loaded.\r
+  @retval EFI_SUCCESS           The image was loaded successfully.\r
+  @retval EFI_OUT_OF_RESOURCES  There was not enough memory.\r
+  @retval EFI_INVALID_PARAMETER The contents of the FFS file did not\r
+                                contain a valid PE/COFF image that could be loaded.\r
 \r
 **/\r
 typedef\r