1. PostCodeLib.

Rename BasePostCodeLib80 to BasePostCodeLibPort80. 
		Fix typos in macro POST_CODE() and POST_CODE_WITH_DESCRIPTION()
	2. DebugLib
		Change the parameter type of LineNumber of DebugAssert() from “INTN” to “UINTN” to follow MWG.
		Add type cast “(EFI_GUID *)” in macro ASSERT_PROTCOL_ALREADY_INSTALLED () to follow MWG.
	3. BasePeCoffLib/
		Add library function header for all the interfaces in MWG.
		Add missing ASSERT()s.
	4. PciLib
		Add ASSERT()s in PciRead/WriteBuffer() to check cross PCI function access.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@557 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8
2006-06-19 07:40:23 +00:00
parent f014786935
commit cd14fe3dcf
22 changed files with 404 additions and 115 deletions

View File

@@ -17,38 +17,49 @@
/**
Loads a PE/COFF image into memory.
Retrieves and returns a pointer to the entry point to a PE/COFF image that has been loaded
into system memory with the PE/COFF Loader Library functions.
@param Pe32Data Pointer to a PE/COFF Image
@param EntryPoint Pointer to the entry point of the PE/COFF image
Retrieves the entry point to the PE/COFF image specified by Pe32Data and returns this entry
point in EntryPoint. If the entry point could not be retrieved from the PE/COFF image, then
return RETURN_INVALID_PARAMETER. Otherwise return RETURN_SUCCESS.
If Pe32Data is NULL, then ASSERT().
If EntryPoint is NULL, then ASSERT().
@retval EFI_SUCCESS if the EntryPoint was returned
@retval EFI_INVALID_PARAMETER if the EntryPoint could not be found from Pe32Data
@param Pe32Data Pointer to the PE/COFF image that is loaded in system memory.
@param EntryPoint Pointer to entry point to the PE/COFF image to return.
@retval RETURN_SUCCESS EntryPoint was returned.
@retval RETURN_INVALID_PARAMETER The entry point could not be found in the PE/COFF image.
**/
RETURN_STATUS
EFIAPI
PeCoffLoaderGetEntryPoint (
IN VOID *Pe32Data,
IN OUT VOID **EntryPoint
IN VOID *Pe32Data,
OUT VOID **EntryPoint
)
{
EFI_IMAGE_DOS_HEADER *DosHeader;
EFI_IMAGE_NT_HEADERS *PeHeader;
ASSERT (Pe32Data != NULL);
ASSERT (EntryPoint != NULL);
DosHeader = (EFI_IMAGE_DOS_HEADER *)Pe32Data;
if (DosHeader->e_magic == EFI_IMAGE_DOS_SIGNATURE) {
//
// DOS image header is present, so read the PE header after the DOS image header
// DOS image header is present, so read the PE header after the DOS image header.
//
PeHeader = (EFI_IMAGE_NT_HEADERS *) ((UINTN) Pe32Data + (UINTN) ((DosHeader->e_lfanew) & 0x0ffff));
} else {
//
// DOS image header is not present, so PE header is at the image base
// DOS image header is not present, so PE header is at the image base.
//
PeHeader = (EFI_IMAGE_NT_HEADERS *) Pe32Data;
}
*EntryPoint = (VOID *) ((UINTN) Pe32Data + (UINTN) (PeHeader->OptionalHeader.AddressOfEntryPoint & 0x0ffffffff));
return RETURN_SUCCESS;
}