X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FInclude%2FPpi%2FLoadFile.h;h=39ad72ea81cd6042d9849518428a5416d931b210;hb=d71325128666d393addfaffa0ddf467bedc01eea;hp=f6d8a704ee731ff0ae4f6c15015465ff3656adc7;hpb=0647c9adf92c6a8712091607a73b2768327a865d;p=mirror_edk2.git diff --git a/MdePkg/Include/Ppi/LoadFile.h b/MdePkg/Include/Ppi/LoadFile.h index f6d8a704ee..39ad72ea81 100644 --- a/MdePkg/Include/Ppi/LoadFile.h +++ b/MdePkg/Include/Ppi/LoadFile.h @@ -10,63 +10,89 @@ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - Module Name: LoadFile.h - @par Revision Reference: - This PPI is defined in PEI CIS spec Version 0.91. + This PPI is defined in PI Version 1.00. **/ -#ifndef __FV_FILE_LOADER_PPI_H__ -#define __FV_FILE_LOADER_PPI_H__ +#ifndef __LOAD_FILE_PPI_H__ +#define __LOAD_FILE_PPI_H__ + +#define EFI_PEI_LOAD_FILE_PPI_GUID \ + { 0xb9e0abfe, 0x5979, 0x4914, { 0x97, 0x7f, 0x6d, 0xee, 0x78, 0xc2, 0x78, 0xa6 } } -#define EFI_PEI_FV_FILE_LOADER_GUID \ - { \ - 0x7e1f0d85, 0x4ff, 0x4bb2, {0x86, 0x6a, 0x31, 0xa2, 0x99, 0x6a, 0x48, 0xa8 } \ - } -typedef struct _EFI_PEI_FV_FILE_LOADER_PPI EFI_PEI_FV_FILE_LOADER_PPI; +typedef struct _EFI_PEI_LOAD_FILE_PPI EFI_PEI_LOAD_FILE_PPI; /** Loads a PEIM into memory for subsequent execution. - @param This Interface pointer that implements the Load File PPI instance. - @param FfsHeader Pointer to the FFS header of the file to load. - @param ImageAddress Pointer to the address of the loaded Image - @param ImageSize Pointer to the size of the loaded image. - @param EntryPoint Pointer to the entry point of the image. + This service is the single member function of EFI_LOAD_FILE_PPI. This service separates + image loading and relocating from the PEI Foundation. + + @param This Interface pointer that implements + the Load File PPI instance. + + @param FileHandle File handle of the file to load. + Type EFI_PEI_FILE_HANDLE is defined in + FfsFindNextFile(). + + @param ImageAddress Pointer to the address of the + loaded image. + + @param ImageSize Pointer to the size of the loaded + image. + + @param EntryPoint Pointer to the entry point of the + image. + + @param AuthenticationState On exit, points to the attestation + authentication state of the image + or 0 if no attestation was + performed. The format of + AuthenticationState is defined in + EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI.ExtractSection() + + + @retval EFI_SUCCESS The image was loaded successfully. - @retval EFI_SUCCESS The image was loaded successfully. @retval EFI_OUT_OF_RESOURCES There was not enough memory. - @retval EFI_INVALID_PARAMETER The contents of the FFS file did not - contain a valid PE/COFF image that could be loaded. + @retval EFI_LOAD_ERROR There was no supported image in + the file. + @retval EFI_INVALID_PARAMETER EntryPoint was NULL. + Or FileHandle was not a valid firmware file handle. + @retval EFI_NOT_SUPPORTED An image requires relocations or + is not memory mapped. + **/ typedef EFI_STATUS -(EFIAPI *EFI_PEI_FV_LOAD_FILE) ( - IN EFI_PEI_FV_FILE_LOADER_PPI *This, - IN EFI_FFS_FILE_HEADER *FfsHeader, - OUT EFI_PHYSICAL_ADDRESS *ImageAddress, - OUT UINT64 *ImageSize, - OUT EFI_PHYSICAL_ADDRESS *EntryPoint - ); +(EFIAPI *EFI_PEI_LOAD_FILE)( + IN CONST EFI_PEI_LOAD_FILE_PPI *This, + IN CONST EFI_PEI_FILE_HANDLE FileHandle, + OUT EFI_PHYSICAL_ADDRESS *ImageAddress, + OUT UINT64 *ImageSize, + OUT EFI_PHYSICAL_ADDRESS *EntryPoint, + OUT UINT32 *AuthenticationState +); -/** - @par Ppi Description: - This PPI is a pointer to the Load File service. This service will be - published by a PEIM.The PEI Foundation will use this service to - launch the known non-XIP PE/COFF PEIM images. This service may - depend upon the presence of the EFI_PEI_PERMANENT_MEMORY_INSTALLED_PPI. - - @param FvLoadFile - Loads a PEIM into memory for subsequent execution +/** + This PPI is a pointer to the Load File service. + This service will be published by a PEIM. The PEI Foundation + will use this service to launch the known PEI module images. + + + @param LoadFile Loads a PEIM into memory for subsequent + execution. See the LoadFile() function + description. + **/ -struct _EFI_PEI_FV_FILE_LOADER_PPI { - EFI_PEI_FV_LOAD_FILE FvLoadFile; +struct _EFI_PEI_LOAD_FILE_PPI { + EFI_PEI_LOAD_FILE LoadFile; }; -extern EFI_GUID gEfiPeiFvFileLoaderPpiGuid; +extern EFI_GUID gEfiPeiLoadFilePpiGuid; #endif