/** @file\r
Master header file for DxeIpl PEIM. All source files in this module should\r
- include this file for common defininitions.\r
+ include this file for common definitions.\r
\r
-Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
+Copyright (c) 2006 - 2009, Intel Corporation. <BR>\r
All rights reserved. This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
#include <Library/CacheMaintenanceLib.h>\r
#include <Library/UefiDecompressLib.h>\r
#include <Library/ExtractGuidedSectionLib.h>\r
-#include <Library/PeiServicesTablePointerLib.h>\r
#include <Library/BaseMemoryLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
#include <Library/PcdLib.h>\r
\r
\r
//\r
-// This macro aligns the ActualSize with a given alignment and is used to \r
-// calculate the size an image occupies.\r
+// This PPI is installed to indicate the end of the PEI usage of memory \r
//\r
-#define GET_OCCUPIED_SIZE(ActualSize, Alignment) ((ActualSize + (Alignment - 1)) & ~(Alignment - 1))\r
+extern CONST EFI_PEI_PPI_DESCRIPTOR gEndOfPeiSignalPpi;\r
+\r
\r
-//\r
-// Indicate whether DxeIpl has been shadowed to memory.\r
-//\r
-extern BOOLEAN gInMemory;\r
\r
/**\r
Loads and relocates a PE/COFF image into memory.\r
\r
\r
/**\r
- Find DxeCore driver from all First Volumes.\r
+ Searches DxeCore in all firmware Volumes and loads the first\r
+ instance that contains DxeCore.\r
\r
- @param FileHandle Pointer to FFS file to search.\r
+ @return FileHandle of DxeCore to load DxeCore.\r
\r
- @return EFI_SUCESS Success to find the FFS in specificed FV\r
- @return others Fail to find the FFS in specificed FV\r
-\r
**/\r
-EFI_STATUS\r
+EFI_PEI_FILE_HANDLE\r
DxeIplFindDxeCore (\r
- OUT EFI_PEI_FILE_HANDLE *FileHandle\r
+ VOID\r
);\r
\r
\r
-\r
/**\r
- This function simply retrieves the function pointer of ImageRead in\r
- ImageContext structure.\r
- \r
- @param ImageContext A pointer to the structure of \r
- PE_COFF_LOADER_IMAGE_CONTEXT\r
- \r
- @retval EFI_SUCCESS This function always return EFI_SUCCESS.\r
+ Support routine for the PE/COFF Loader that reads a buffer from a PE/COFF file\r
+\r
+ @param FileHandle The handle to the PE/COFF file \r
+ @param FileOffset The offset, in bytes, into the file to read \r
+ @param ReadSize The number of bytes to read from the file starting at \r
+ FileOffset \r
+ @param Buffer A pointer to the buffer to read the data into. \r
+\r
+ @retval EFI_SUCCESS ReadSize bytes of data were read into Buffer from the \r
+ PE/COFF file starting at FileOffset\r
\r
**/\r
EFI_STATUS\r
-GetImageReadFunction (\r
- IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
+EFIAPI\r
+PeiImageRead (\r
+ IN VOID *FileHandle,\r
+ IN UINTN FileOffset,\r
+ IN OUT UINTN *ReadSize,\r
+ OUT VOID *Buffer\r
);\r
\r
\r
EFI_STATUS\r
EFIAPI\r
DxeLoadCore (\r
- IN EFI_DXE_IPL_PPI *This,\r
+ IN CONST EFI_DXE_IPL_PPI *This,\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_HOB_POINTERS HobList\r
);\r
\r
This function performs a CPU architecture specific operations to execute\r
the entry point of DxeCore with the parameters of HobList.\r
- It also intalls EFI_END_OF_PEI_PPI to signal the end of PEI phase.\r
+ It also installs EFI_END_OF_PEI_PPI to signal the end of PEI phase.\r
\r
- @param DxeCoreEntryPoint The entrypoint of DxeCore.\r
+ @param DxeCoreEntryPoint The entry point of DxeCore.\r
@param HobList The start of HobList passed to DxeCore.\r
- @param EndOfPeiSignal The PPI descriptor for EFI_END_OF_PEI_PPI.\r
\r
**/\r
VOID\r
HandOffToDxeCore (\r
IN EFI_PHYSICAL_ADDRESS DxeCoreEntryPoint,\r
- IN EFI_PEI_HOB_POINTERS HobList,\r
- IN EFI_PEI_PPI_DESCRIPTOR *EndOfPeiSignal\r
+ IN EFI_PEI_HOB_POINTERS HobList\r
);\r
\r
\r
\r
**/\r
EFI_STATUS\r
+EFIAPI\r
CustomGuidedSectionExtract (\r
IN CONST EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *This,\r
IN CONST VOID *InputSection,\r
/**\r
Decompresses a section to the output buffer.\r
\r
- This function lookes up the compression type field in the input section and\r
+ This function looks up the compression type field in the input section and\r
applies the appropriate compression algorithm to compress the section to a\r
callee allocated buffer.\r
\r
OUT UINTN *OutputSize\r
);\r
\r
-/**\r
- Initializes the Dxe Ipl PPI\r
-\r
- @param FfsHandle The handle of FFS file.\r
- @param PeiServices General purpose services available to\r
- every PEIM.\r
- @return EFI_SUCESS\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-PeimInitializeDxeIpl (\r
- IN EFI_PEI_FILE_HANDLE FfsHandle,\r
- IN EFI_PEI_SERVICES **PeiServices\r
- );\r
-\r
-\r
#endif\r