LoadFile.h revision 9b53707866442cb954f8466ff928a0d620e1712f
1/** @file
2  Load image file from fv to memory.
3
4  Copyright (c) 2006, Intel Corporation
5  All rights reserved. This program and the accompanying materials
6  are licensed and made available under the terms and conditions of the BSD License
7  which accompanies this distribution.  The full text of the license may be found at
8  http://opensource.org/licenses/bsd-license.php
9
10  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13  @par Revision Reference:
14  This PPI is defined in PI Version 1.00.
15
16**/
17
18#ifndef __LOAD_FILE_PPI_H__
19#define __LOAD_FILE_PPI_H__
20
21#define EFI_PEI_LOAD_FILE_PPI_GUID \
22  { 0xb9e0abfe, 0x5979, 0x4914, { 0x97, 0x7f, 0x6d, 0xee, 0x78, 0xc2, 0x78, 0xa6 } }
23
24
25typedef struct _EFI_PEI_LOAD_FILE_PPI EFI_PEI_LOAD_FILE_PPI;
26
27/**
28  This service is the single member function of EFI_LOAD_FILE_PPI. This service separates
29  image loading and relocating from the PEI Foundation.
30
31  @param This                 Interface pointer that implements
32                              the Load File PPI instance.
33
34  @param FileHandle           File handle of the file to load.
35                              Type EFI_PEI_FILE_HANDLE is defined in
36                              FfsFindNextFile().
37
38  @param ImageAddress         Pointer to the address of the
39                              loaded image.
40
41  @param ImageSize            Pointer to the size of the loaded
42                              image.
43
44  @param EntryPoint           Pointer to the entry point of the
45                              image.
46
47  @param AuthenticationState  On exit, points to the attestation
48                              authentication state of the image
49                              or 0 if no attestation was
50                              performed. The format of
51                              AuthenticationState is defined in
52                              EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI.ExtractSection()
53
54
55  @retval EFI_SUCCESS         The image was loaded successfully.
56
57  @retval EFI_OUT_OF_RESOURCES  There was not enough memory.
58
59  @retval EFI_LOAD_ERROR      There was no supported image in
60                              the file EFI_INVALID_PARAMETER
61                              FileHandle was not a valid
62                              firmware file handle.
63  @retval EFI_INVALID_PARAMETER   EntryPoint was NULL.
64
65  @retval EFI_NOT_SUPPORTED   An image requires relocations or
66                              is not memory mapped.
67
68**/
69typedef
70EFI_STATUS
71(EFIAPI *EFI_PEI_LOAD_FILE) (
72  IN CONST  EFI_PEI_LOAD_FILE_PPI   *This,
73  IN CONST  EFI_PEI_FILE_HANDLE     FileHandle,
74  OUT       EFI_PHYSICAL_ADDRESS    *ImageAddress,
75  OUT       UINT64                  *ImageSize,
76  OUT       EFI_PHYSICAL_ADDRESS    *EntryPoint,
77  OUT       UINT32                  *AuthenticationState
78);
79
80
81/**
82  This PPI is a pointer to the Load File service.
83  This service will be published by a PEIM. The PEI Foundation
84  will use this service to launch the known PEI module images.
85
86
87  @param LoadFile  Loads a PEIM into memory for subsequent
88                   execution. See the LoadFile() function
89                   description.
90
91**/
92struct _EFI_PEI_LOAD_FILE_PPI {
93  EFI_PEI_LOAD_FILE LoadFile;
94};
95
96extern EFI_GUID gEfiPeiLoadFilePpiGuid;
97
98#endif
99