]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Ppi/LoadFile.h
Add ReadMe.txt to specify that the EFI image FatBinPkg provides does not contain...
[mirror_edk2.git] / MdePkg / Include / Ppi / LoadFile.h
index f6d8a704ee731ff0ae4f6c15015465ff3656adc7..35aa2dfc2b7babb880021fc4d86dff3f94afc413 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
   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
   @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
 \r
 **/\r
 \r
-#ifndef __FV_FILE_LOADER_PPI_H__\r
-#define __FV_FILE_LOADER_PPI_H__\r
+#ifndef __LOAD_FILE_PPI_H__\r
+#define __LOAD_FILE_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
-#define EFI_PEI_FV_FILE_LOADER_GUID \\r
-  { \\r
-    0x7e1f0d85, 0x4ff, 0x4bb2, {0x86, 0x6a, 0x31, 0xa2, 0x99, 0x6a, 0x48, 0xa8 } \\r
-  }\r
 \r
 \r
-typedef struct _EFI_PEI_FV_FILE_LOADER_PPI  EFI_PEI_FV_FILE_LOADER_PPI;\r
+typedef struct _EFI_PEI_LOAD_FILE_PPI EFI_PEI_LOAD_FILE_PPI;\r
 \r
 /**\r
 \r
 /**\r
-  Loads a PEIM into memory for subsequent execution.\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
 \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
+  @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
 \r
-  @retval EFI_SUCCESS           The image was loaded successfully.\r
   @retval EFI_OUT_OF_RESOURCES  There was not enough memory.\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
+  @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
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_FV_LOAD_FILE) (\r
-  IN EFI_PEI_FV_FILE_LOADER_PPI                 *This,\r
-  IN  EFI_FFS_FILE_HEADER                       *FfsHeader,\r
-  OUT EFI_PHYSICAL_ADDRESS                      *ImageAddress,\r
-  OUT UINT64                                    *ImageSize,\r
-  OUT EFI_PHYSICAL_ADDRESS                      *EntryPoint\r
-  );\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
-  @par Ppi Description:\r
-  This PPI is a pointer to the Load File service. This service will be \r
-  published by a PEIM.The PEI Foundation will use this service to \r
-  launch the known non-XIP PE/COFF PEIM images.  This service may \r
-  depend upon the presence of the EFI_PEI_PERMANENT_MEMORY_INSTALLED_PPI.\r
-\r
-  @param FvLoadFile\r
-  Loads a PEIM into memory for subsequent execution\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
 **/\r
-struct _EFI_PEI_FV_FILE_LOADER_PPI {\r
-  EFI_PEI_FV_LOAD_FILE  FvLoadFile;\r
+struct _EFI_PEI_LOAD_FILE_PPI {\r
+  EFI_PEI_LOAD_FILE LoadFile;\r
 };\r
 \r
 };\r
 \r
-extern EFI_GUID gEfiPeiFvFileLoaderPpiGuid;\r
+extern EFI_GUID gEfiPeiLoadFilePpiGuid;\r
 \r
 #endif\r
 \r
 #endif\r