Added PeCoffLoaderGetMachineType to the PeCoffGetEntryPointLibrary Class. Document to be updated. Added the PeCoffLoaderImageReadFromMemory() and PeCoffLoaderRelocateImageForRuntime () to the PcCoffLib. Updated EfiImage.h and removed EFI_IMAGE_OPTIONAL_HEADER and EFI_IMAGE_NT_HEADERS as they were replaced with checking the MachineType. PeCoffLib – Added checks for MachineType so the PeCoff lib can load any PE32 or PE32+ image. The relocations are still limited to IA32, X64, IPF, and EBC. I also added a re-relocator function to remove PeLoader Code from Runtime Lib. Even though there is only one instance of the re-relocator I wanted to get all the PeCoff loader code together. Replaced DEBUG_CODE() macro with DEBUG_CODE_START() and DEBUG_CODE_END() so you can debug through the DEBUG_CODE() macros. Also removed PE/COFF code and replaced with library usage. I also updated the IO Instrinsic lib to use _ReadWriteBarrior() to help with sync problems git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1103 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			91 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="UTF-8"?>
 | |
| <!--Copyright (c) 2006, Intel Corporation
 | |
| 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.-->
 | |
| <ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0">
 | |
|   <MsaHeader>
 | |
|     <ModuleName>Runtime</ModuleName>
 | |
|     <ModuleType>DXE_RUNTIME_DRIVER</ModuleType>
 | |
|     <GuidValue>B601F8C4-43B7-4784-95B1-F4226CB40CEE</GuidValue>
 | |
|     <Version>1.0</Version>
 | |
|     <Abstract>Component description file for Runtime module.</Abstract>
 | |
|     <Description>This module is used to produce the EFI runtime virtual switch over.</Description>
 | |
|     <Copyright>Copyright (c) 2006, Intel Corporation</Copyright>
 | |
|     <License>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.</License>
 | |
|     <Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052</Specification>
 | |
|   </MsaHeader>
 | |
|   <ModuleDefinitions>
 | |
|     <SupportedArchitectures>IA32 X64 IPF EBC</SupportedArchitectures>
 | |
|     <BinaryModule>false</BinaryModule>
 | |
|     <OutputFileBasename>Runtime</OutputFileBasename>
 | |
|   </ModuleDefinitions>
 | |
|   <LibraryClassDefinitions>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>BaseLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>UefiRuntimeLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>UefiDriverEntryPoint</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>DebugLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>ReportStatusCodeLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>BaseMemoryLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>EdkDxeSalLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>UefiRuntimeServicesTableLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>UefiBootServicesTableLib</Keyword>
 | |
|     </LibraryClass>
 | |
|   </LibraryClassDefinitions>
 | |
|   <SourceFiles>
 | |
|     <Filename>Runtime.dxs</Filename>
 | |
|     <Filename>Runtime.c</Filename>
 | |
|     <Filename>Runtime.h</Filename>
 | |
|     <Filename>Crc32.c</Filename>
 | |
|     <Filename SupArchList="IA32">Ia32/PeHotRelocateEx.c</Filename>
 | |
|     <Filename SupArchList="X64">x64/PeHotRelocateEx.c</Filename>
 | |
|     <Filename SupArchList="X64">x64/PeHotRelocateEx.h</Filename>
 | |
|     <Filename SupArchList="IPF">Ipf/PeHotRelocateEx.c</Filename>
 | |
|     <Filename SupArchList="IPF">Ipf/PeHotRelocateEx.h</Filename>
 | |
|   </SourceFiles>
 | |
|   <PackageDependencies>
 | |
|     <Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
 | |
|     <Package PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674"/>
 | |
|   </PackageDependencies>
 | |
|   <Protocols>
 | |
|     <Protocol Usage="ALWAYS_CONSUMED">
 | |
|       <ProtocolCName>gEfiLoadedImageProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|     <Protocol Usage="ALWAYS_CONSUMED">
 | |
|       <ProtocolCName>gEfiRuntimeArchProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|   </Protocols>
 | |
|   <Externs>
 | |
|     <Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
 | |
|     <Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
 | |
|     <Extern>
 | |
|       <ModuleEntryPoint>RuntimeDriverInitialize</ModuleEntryPoint>
 | |
|     </Extern>
 | |
|   </Externs>
 | |
| </ModuleSurfaceArea> |