2007-06-13 13:11:23 +02:00
|
|
|
/** @file
|
|
|
|
This file declares DXE Initial Program Load PPI.
|
2008-07-16 12:44:37 +02:00
|
|
|
When the PEI core is done it calls the DXE IPL PPI to load the DXE Foundation.
|
2007-06-13 13:11:23 +02:00
|
|
|
|
2008-07-16 12:44:37 +02:00
|
|
|
Copyright (c) 2006 - 2008, Intel Corporation
|
2007-06-13 13:11:23 +02:00
|
|
|
All rights reserved. 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:
|
2008-10-28 14:04:40 +01:00
|
|
|
This PPI is introduced in PI Version 1.0.
|
2007-06-13 13:11:23 +02:00
|
|
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
#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.
|
|
|
|
|
2008-09-04 11:15:21 +02:00
|
|
|
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
|
|
|
|
|
2007-06-13 13:11:23 +02:00
|
|
|
@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.
|
|
|
|
|
2008-07-16 12:44:37 +02:00
|
|
|
@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.
|
2007-06-13 13:11:23 +02:00
|
|
|
|
|
|
|
**/
|
|
|
|
typedef
|
|
|
|
EFI_STATUS
|
2008-06-24 09:14:18 +02:00
|
|
|
(EFIAPI *EFI_DXE_IPL_ENTRY)(
|
2008-09-04 11:15:21 +02:00
|
|
|
IN CONST EFI_DXE_IPL_PPI *This,
|
2007-06-13 13:11:23 +02:00
|
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
|
|
IN EFI_PEI_HOB_POINTERS HobList
|
|
|
|
);
|
|
|
|
|
2008-09-04 11:15:21 +02:00
|
|
|
///
|
|
|
|
/// 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.
|
|
|
|
///
|
2007-06-13 13:11:23 +02:00
|
|
|
struct _EFI_DXE_IPL_PPI {
|
|
|
|
EFI_DXE_IPL_ENTRY Entry;
|
|
|
|
};
|
|
|
|
|
|
|
|
extern EFI_GUID gEfiDxeIplPpiGuid;
|
|
|
|
|
|
|
|
#endif
|