Code Scrub DxeIpl module.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5502 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -21,10 +21,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#include <Ppi/EndOfPeiPhase.h>
|
||||
#include <Ppi/MemoryDiscovered.h>
|
||||
#include <Ppi/ReadOnlyVariable2.h>
|
||||
#include <Guid/MemoryTypeInformation.h>
|
||||
#include <Ppi/Decompress.h>
|
||||
#include <Ppi/FirmwareVolumeInfo.h>
|
||||
#include <Ppi/GuidedSectionExtraction.h>
|
||||
|
||||
#include <Guid/MemoryTypeInformation.h>
|
||||
#include <Guid/MemoryAllocationHob.h>
|
||||
#include <Guid/FirmwareFileSystem2.h>
|
||||
|
||||
@@ -48,13 +49,18 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#define STACK_SIZE 0x20000
|
||||
#define BSP_STORE_SIZE 0x4000
|
||||
|
||||
|
||||
//
|
||||
// This macro aligns the ActualSize with a given alignment and is used to
|
||||
// calculate the size an image occupies.
|
||||
//
|
||||
#define GET_OCCUPIED_SIZE(ActualSize, Alignment) ((ActualSize + (Alignment - 1)) & ~(Alignment - 1))
|
||||
|
||||
//
|
||||
// Indicate whether DxeIpl has been shadowed to memory.
|
||||
//
|
||||
extern BOOLEAN gInMemory;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
Loads and relocates a PE/COFF image into memory.
|
||||
|
||||
@@ -109,7 +115,6 @@ GetImageReadFunction (
|
||||
);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
Main entry point to last PEIM
|
||||
|
||||
@@ -168,7 +173,98 @@ UpdateStackHob (
|
||||
IN UINT64 Length
|
||||
);
|
||||
|
||||
/**
|
||||
The ExtractSection() function processes the input section and
|
||||
returns a pointer to the section contents. If the section being
|
||||
extracted does not require processing (if the section
|
||||
GuidedSectionHeader.Attributes has the
|
||||
EFI_GUIDED_SECTION_PROCESSING_REQUIRED field cleared), then
|
||||
OutputBuffer is just updated to point to the start of the
|
||||
section's contents. Otherwise, *Buffer must be allocated
|
||||
from PEI permanent memory.
|
||||
|
||||
@param This Indicates the
|
||||
EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI instance.
|
||||
Buffer containing the input GUIDed section to be
|
||||
processed. OutputBuffer OutputBuffer is
|
||||
allocated from PEI permanent memory and contains
|
||||
the new section stream.
|
||||
@param InputSection A pointer to the input buffer, which contains
|
||||
the input section to be processed.
|
||||
@param OutputBuffer A pointer to a caller-allocated buffer, whose
|
||||
size is specified by the contents of OutputSize.
|
||||
@param OutputSize A pointer to a caller-allocated
|
||||
UINTN in which the size of *OutputBuffer
|
||||
allocation is stored. If the function
|
||||
returns anything other than EFI_SUCCESS,
|
||||
the value of OutputSize is undefined.
|
||||
@param AuthenticationStatus A pointer to a caller-allocated
|
||||
UINT32 that indicates the
|
||||
authentication status of the
|
||||
output buffer. If the input
|
||||
section's GuidedSectionHeader.
|
||||
Attributes field has the
|
||||
EFI_GUIDED_SECTION_AUTH_STATUS_VALID
|
||||
bit as clear,
|
||||
AuthenticationStatus must return
|
||||
zero. These bits reflect the
|
||||
status of the extraction
|
||||
operation. If the function
|
||||
returns anything other than
|
||||
EFI_SUCCESS, the value of
|
||||
AuthenticationStatus is
|
||||
undefined.
|
||||
|
||||
@retval EFI_SUCCESS The InputSection was
|
||||
successfully processed and the
|
||||
section contents were returned.
|
||||
|
||||
@retval EFI_OUT_OF_RESOURCES The system has insufficient
|
||||
resources to process the request.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER The GUID in InputSection does
|
||||
not match this instance of the
|
||||
GUIDed Section Extraction PPI.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
CustomGuidedSectionExtract (
|
||||
IN CONST EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *This,
|
||||
IN CONST VOID *InputSection,
|
||||
OUT VOID **OutputBuffer,
|
||||
OUT UINTN *OutputSize,
|
||||
OUT UINT32 *AuthenticationStatus
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Decompresses a section to the output buffer.
|
||||
|
||||
This function lookes up the compression type field in the input section and
|
||||
applies the appropriate compression algorithm to compress the section to a
|
||||
callee allocated buffer.
|
||||
|
||||
@param This Points to this instance of the
|
||||
EFI_PEI_DECOMPRESS_PEI PPI.
|
||||
@param CompressionSection Points to the compressed section.
|
||||
@param OutputBuffer Holds the returned pointer to the decompressed
|
||||
sections.
|
||||
@param OutputSize Holds the returned size of the decompress
|
||||
section streams.
|
||||
|
||||
@retval EFI_SUCCESS The section was decompressed successfully.
|
||||
OutputBuffer contains the resulting data and
|
||||
OutputSize contains the resulting size.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
Decompress (
|
||||
IN CONST EFI_PEI_DECOMPRESS_PPI *This,
|
||||
IN CONST EFI_COMPRESSION_SECTION *CompressionSection,
|
||||
OUT VOID **OutputBuffer,
|
||||
OUT UINTN *OutputSize
|
||||
);
|
||||
|
||||
/**
|
||||
Initializes the Dxe Ipl PPI
|
||||
|
Reference in New Issue
Block a user