| /** @file | |
| This file declares DXE Initial Program Load PPI. | |
| When the PEI core is done it calls the DXE IPL PPI to load the DXE Foundation. | |
| Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR> | |
| This program and the accompanying materials | |
| are licensed and made available under the terms and conditions of the BSD License | |
| which accompanies this distribution. The full text of the license may be found at | |
| http://opensource.org/licenses/bsd-license.php | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| @par Revision Reference: | |
| This PPI is introduced in PI Version 1.0. | |
| **/ | |
| #ifndef __DXE_IPL_H__ | |
| #define __DXE_IPL_H__ | |
| #define EFI_DXE_IPL_PPI_GUID \ | |
| { \ | |
| 0xae8ce5d, 0xe448, 0x4437, {0xa8, 0xd7, 0xeb, 0xf5, 0xf1, 0x94, 0xf7, 0x31 } \ | |
| } | |
| typedef struct _EFI_DXE_IPL_PPI EFI_DXE_IPL_PPI; | |
| /** | |
| The architectural PPI that the PEI Foundation invokes when | |
| there are no additional PEIMs to invoke. | |
| This function is invoked by the PEI Foundation. | |
| The PEI Foundation will invoke this service when there are | |
| no additional PEIMs to invoke in the system. | |
| If this PPI does not exist, it is an error condition and | |
| an ill-formed firmware set. The DXE IPL PPI should never | |
| return after having been invoked by the PEI Foundation. | |
| The DXE IPL PPI can do many things internally, including the following: | |
| - Invoke the DXE entry point from a firmware volume | |
| - Invoke the recovery processing modules | |
| - Invoke the S3 resume modules | |
| @param This Pointer to the DXE IPL PPI instance | |
| @param PeiServices Pointer to the PEI Services Table. | |
| @param HobList Pointer to the list of Hand-Off Block (HOB) entries. | |
| @retval EFI_SUCCESS Upon this return code, the PEI Foundation should enter | |
| some exception handling.Under normal circumstances, | |
| the DXE IPL PPI should not return. | |
| **/ | |
| typedef | |
| EFI_STATUS | |
| (EFIAPI *EFI_DXE_IPL_ENTRY)( | |
| IN CONST EFI_DXE_IPL_PPI *This, | |
| IN EFI_PEI_SERVICES **PeiServices, | |
| IN EFI_PEI_HOB_POINTERS HobList | |
| ); | |
| /// | |
| /// Final service to be invoked by the PEI Foundation. | |
| /// The DXE IPL PPI is responsible for locating and loading the DXE Foundation. | |
| /// The DXE IPL PPI may use PEI services to locate and load the DXE Foundation. | |
| /// | |
| struct _EFI_DXE_IPL_PPI { | |
| EFI_DXE_IPL_ENTRY Entry; | |
| }; | |
| extern EFI_GUID gEfiDxeIplPpiGuid; | |
| #endif |