From 4df60ea54fd2ee5bf97586f453165ab3533a1aec Mon Sep 17 00:00:00 2001 From: bbahnsen Date: Tue, 23 May 2006 22:00:58 +0000 Subject: [PATCH] Refactor the PeCoffLoader into a library. Add PeiRebase Tool. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@247 6f19259b-4bc3-4df7-8a09-765794883524 --- Tools/Source/TianoTools/GenFvImage/build.xml | 26 +-- .../{GenFvImage => PeCoffLoader}/BasePeCoff.c | 0 .../Common/EfiImage.h | 0 .../Ia32/PeCoffLoaderEx.c | 0 .../Ipf/PeCoffLoaderEx.c | 0 .../X64/PeCoffLoaderEx.c | 0 .../Source/TianoTools/PeCoffLoader/build.xml | 203 ++++++++++++++++++ .../TianoTools/PeiRebase/PeiRebaseExe.c | 21 +- Tools/Source/TianoTools/PeiRebase/build.xml | 155 +++++++++++++ Tools/Source/TianoTools/build.xml | 6 +- 10 files changed, 380 insertions(+), 31 deletions(-) rename Tools/Source/TianoTools/{GenFvImage => PeCoffLoader}/BasePeCoff.c (100%) rename Tools/Source/TianoTools/{GenFvImage => PeCoffLoader}/Common/EfiImage.h (100%) rename Tools/Source/TianoTools/{GenFvImage => PeCoffLoader}/Ia32/PeCoffLoaderEx.c (100%) rename Tools/Source/TianoTools/{GenFvImage => PeCoffLoader}/Ipf/PeCoffLoaderEx.c (100%) rename Tools/Source/TianoTools/{GenFvImage => PeCoffLoader}/X64/PeCoffLoaderEx.c (100%) create mode 100644 Tools/Source/TianoTools/PeCoffLoader/build.xml create mode 100644 Tools/Source/TianoTools/PeiRebase/build.xml diff --git a/Tools/Source/TianoTools/GenFvImage/build.xml b/Tools/Source/TianoTools/GenFvImage/build.xml index c0ba17ab83..d29a2eca97 100644 --- a/Tools/Source/TianoTools/GenFvImage/build.xml +++ b/Tools/Source/TianoTools/GenFvImage/build.xml @@ -15,7 +15,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. Copyright (c) 2006, Intel Corporation --> - + @@ -123,7 +123,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + includes="${FileSet}"/> @@ -134,7 +134,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - + @@ -153,9 +153,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + includes="${FileSet}"/> @@ -166,7 +164,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - + @@ -177,7 +175,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. @@ -186,9 +183,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + includes="${FileSet}"/> @@ -198,7 +193,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - + @@ -209,7 +204,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. @@ -218,9 +212,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + includes="${FileSet}"/> @@ -230,7 +222,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - + diff --git a/Tools/Source/TianoTools/GenFvImage/BasePeCoff.c b/Tools/Source/TianoTools/PeCoffLoader/BasePeCoff.c similarity index 100% rename from Tools/Source/TianoTools/GenFvImage/BasePeCoff.c rename to Tools/Source/TianoTools/PeCoffLoader/BasePeCoff.c diff --git a/Tools/Source/TianoTools/GenFvImage/Common/EfiImage.h b/Tools/Source/TianoTools/PeCoffLoader/Common/EfiImage.h similarity index 100% rename from Tools/Source/TianoTools/GenFvImage/Common/EfiImage.h rename to Tools/Source/TianoTools/PeCoffLoader/Common/EfiImage.h diff --git a/Tools/Source/TianoTools/GenFvImage/Ia32/PeCoffLoaderEx.c b/Tools/Source/TianoTools/PeCoffLoader/Ia32/PeCoffLoaderEx.c similarity index 100% rename from Tools/Source/TianoTools/GenFvImage/Ia32/PeCoffLoaderEx.c rename to Tools/Source/TianoTools/PeCoffLoader/Ia32/PeCoffLoaderEx.c diff --git a/Tools/Source/TianoTools/GenFvImage/Ipf/PeCoffLoaderEx.c b/Tools/Source/TianoTools/PeCoffLoader/Ipf/PeCoffLoaderEx.c similarity index 100% rename from Tools/Source/TianoTools/GenFvImage/Ipf/PeCoffLoaderEx.c rename to Tools/Source/TianoTools/PeCoffLoader/Ipf/PeCoffLoaderEx.c diff --git a/Tools/Source/TianoTools/GenFvImage/X64/PeCoffLoaderEx.c b/Tools/Source/TianoTools/PeCoffLoader/X64/PeCoffLoaderEx.c similarity index 100% rename from Tools/Source/TianoTools/GenFvImage/X64/PeCoffLoaderEx.c rename to Tools/Source/TianoTools/PeCoffLoader/X64/PeCoffLoaderEx.c diff --git a/Tools/Source/TianoTools/PeCoffLoader/build.xml b/Tools/Source/TianoTools/PeCoffLoader/build.xml new file mode 100644 index 0000000000..7106bce7a5 --- /dev/null +++ b/Tools/Source/TianoTools/PeCoffLoader/build.xml @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unsupported Operating System + Please Contact Intel Corporation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tools/Source/TianoTools/PeiRebase/PeiRebaseExe.c b/Tools/Source/TianoTools/PeiRebase/PeiRebaseExe.c index e9511644a6..7dc95d60af 100644 --- a/Tools/Source/TianoTools/PeiRebase/PeiRebaseExe.c +++ b/Tools/Source/TianoTools/PeiRebase/PeiRebaseExe.c @@ -29,7 +29,6 @@ Abstract: #include #include "CommonLib.h" #include "ParseInf.h" -// #include #include "FvLib.h" #include "EfiUtilityMsgs.h" @@ -38,8 +37,6 @@ Abstract: #include "PeiRebaseExe.h" -extern PEI_PE_COFF_LOADER_PROTOCOL mPeCoffLoader; - EFI_STATUS ReadHeader ( IN FILE *InputFile, @@ -491,7 +488,7 @@ Returns: --*/ { EFI_STATUS Status; - EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT ImageContext; + PE_COFF_LOADER_IMAGE_CONTEXT ImageContext; UINTN MemoryImagePointer; UINTN MemoryImagePointerAligned; EFI_PHYSICAL_ADDRESS ImageAddress; @@ -570,9 +567,9 @@ Returns: // memset (&ImageContext, 0, sizeof (ImageContext)); ImageContext.Handle = (VOID *) ((UINTN) CurrentPe32Section.Pe32Section + sizeof (EFI_PE32_SECTION)); - ImageContext.ImageRead = (EFI_PEI_PE_COFF_LOADER_READ_FILE) FfsRebaseImageRead; + ImageContext.ImageRead = (PE_COFF_LOADER_READ_FILE) FfsRebaseImageRead; - Status = mPeCoffLoader.GetImageInfo (&mPeCoffLoader, &ImageContext); + Status = PeCoffLoaderGetImageInfo (&ImageContext); if (EFI_ERROR (Status)) { Error (NULL, 0, 0, "GetImageInfo() call failed on rebase", FileGuidString); @@ -593,7 +590,7 @@ Returns: ImageContext.ImageAddress = MemoryImagePointerAligned; - Status = mPeCoffLoader.LoadImage (&mPeCoffLoader, &ImageContext); + Status = PeCoffLoaderLoadImage (&ImageContext); if (EFI_ERROR (Status)) { Error (NULL, 0, 0, "LoadImage() call failed on rebase", FileGuidString); free ((VOID *) MemoryImagePointer); @@ -601,7 +598,7 @@ Returns: } ImageContext.DestinationAddress = NewPe32BaseAddress; - Status = mPeCoffLoader.RelocateImage (&mPeCoffLoader, &ImageContext); + Status = PeCoffLoaderRelocateImage (&ImageContext); if (EFI_ERROR (Status)) { Error (NULL, 0, 0, "RelocateImage() call failed on rebase", FileGuidString); free ((VOID *) MemoryImagePointer); @@ -802,9 +799,9 @@ Returns: // memset (&ImageContext, 0, sizeof (ImageContext)); ImageContext.Handle = (VOID *) TEBuffer; - ImageContext.ImageRead = (EFI_PEI_PE_COFF_LOADER_READ_FILE) FfsRebaseImageRead; + ImageContext.ImageRead = (PE_COFF_LOADER_READ_FILE) FfsRebaseImageRead; - Status = mPeCoffLoader.GetImageInfo (&mPeCoffLoader, &ImageContext); + Status = PeCoffLoaderGetImageInfo (&ImageContext); if (EFI_ERROR (Status)) { Error (NULL, 0, 0, "GetImageInfo() call failed on rebase of TE image", FileGuidString); @@ -825,7 +822,7 @@ Returns: ImageContext.ImageAddress = MemoryImagePointerAligned; - Status = mPeCoffLoader.LoadImage (&mPeCoffLoader, &ImageContext); + Status = PeCoffLoaderLoadImage (&ImageContext); if (EFI_ERROR (Status)) { Error (NULL, 0, 0, "LoadImage() call failed on rebase of TE image", FileGuidString); free (TEBuffer); @@ -834,7 +831,7 @@ Returns: } ImageContext.DestinationAddress = NewPe32BaseAddress; - Status = mPeCoffLoader.RelocateImage (&mPeCoffLoader, &ImageContext); + Status = PeCoffLoaderRelocateImage (&ImageContext); if (EFI_ERROR (Status)) { Error (NULL, 0, 0, "RelocateImage() call failed on rebase of TE image", FileGuidString); free ((VOID *) MemoryImagePointer); diff --git a/Tools/Source/TianoTools/PeiRebase/build.xml b/Tools/Source/TianoTools/PeiRebase/build.xml new file mode 100644 index 0000000000..b49193ce3d --- /dev/null +++ b/Tools/Source/TianoTools/PeiRebase/build.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unsupported Operating System + Please Contact Intel Corporation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tools/Source/TianoTools/build.xml b/Tools/Source/TianoTools/build.xml index d5446f138d..129e99ff9d 100644 --- a/Tools/Source/TianoTools/build.xml +++ b/Tools/Source/TianoTools/build.xml @@ -22,6 +22,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + @@ -92,14 +94,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + includes="${Libs}"/> + excludes="${Libs}"/> -- 2.39.2