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
		
			
				
	
	
		
			165 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="UTF-8"?>
 | |
| <ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 | |
|   <MsaHeader>
 | |
|     <ModuleName>PciBus</ModuleName>
 | |
|     <ModuleType>DXE_DRIVER</ModuleType>
 | |
|     <GuidValue>93B80004-9FB3-11d4-9A3A-0090273FC14D</GuidValue>
 | |
|     <Version>1.0</Version>
 | |
|     <Abstract>Component description file for PciBus module.</Abstract>
 | |
|     <Description>PCI bus driver. This module will probe all PCI devices and allocate MMIO and IO
 | |
|        space for these devices.</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>PciBus</OutputFileBasename>
 | |
|   </ModuleDefinitions>
 | |
|   <LibraryClassDefinitions>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>DebugLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>UefiDriverModelLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>UefiDriverEntryPoint</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>BaseLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>UefiLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>BaseMemoryLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>ReportStatusCodeLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>MemoryAllocationLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>UefiBootServicesTableLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>DevicePathLib</Keyword>
 | |
|     </LibraryClass>
 | |
|     <LibraryClass Usage="ALWAYS_CONSUMED">
 | |
|       <Keyword>PeCoffGetEntryPointLib</Keyword>
 | |
|     </LibraryClass>
 | |
|   </LibraryClassDefinitions>
 | |
|   <SourceFiles>
 | |
|     <Filename>PciBus.h</Filename>
 | |
|     <Filename>PciIo.h</Filename>
 | |
|     <Filename>PciCommand.h</Filename>
 | |
|     <Filename>PciDeviceSupport.h</Filename>
 | |
|     <Filename>PciResourceSupport.h</Filename>
 | |
|     <Filename>PciEnumerator.h</Filename>
 | |
|     <Filename>PciEnumeratorSupport.h</Filename>
 | |
|     <Filename>PciOptionRomSupport.h</Filename>
 | |
|     <Filename>PciRomTable.h</Filename>
 | |
|     <Filename>PciHotPlugSupport.h</Filename>
 | |
|     <Filename>PciLib.h</Filename>
 | |
|     <Filename>PciHotPlugSupport.c</Filename>
 | |
|     <Filename>PciRomTable.c</Filename>
 | |
|     <Filename>PciDriverOverride.h</Filename>
 | |
|     <Filename>PciPowerManagement.h</Filename>
 | |
|     <Filename>PciPowerManagement.c</Filename>
 | |
|     <Filename>PciDriverOverride.c</Filename>
 | |
|     <Filename>PciOptionRomSupport.c</Filename>
 | |
|     <Filename>PciEnumerator.c</Filename>
 | |
|     <Filename>PciEnumeratorSupport.c</Filename>
 | |
|     <Filename>PciResourceSupport.c</Filename>
 | |
|     <Filename>PciCommand.c</Filename>
 | |
|     <Filename>ComponentName.h</Filename>
 | |
|     <Filename>ComponentName.c</Filename>
 | |
|     <Filename>PciDeviceSupport.c</Filename>
 | |
|     <Filename>pcibus.c</Filename>
 | |
|     <Filename>PciIo.c</Filename>
 | |
|     <Filename>PciLib.c</Filename>
 | |
|     <Filename ToolCode="DUMMY">LightPciLib.c</Filename>
 | |
|   </SourceFiles>
 | |
|   <PackageDependencies>
 | |
|     <Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
 | |
|     <Package PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674"/>
 | |
|   </PackageDependencies>
 | |
|   <Protocols>
 | |
|     <Protocol Usage="TO_START">
 | |
|       <ProtocolCName>gEfiDevicePathProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|     <Protocol Usage="TO_START">
 | |
|       <ProtocolCName>gEfiPciRootBridgeIoProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|     <Protocol Usage="TO_START">
 | |
|       <ProtocolCName>gEfiPciPlatformProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|     <Protocol Usage="TO_START">
 | |
|       <ProtocolCName>gEfiIncompatiblePciDeviceSupportProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|     <Protocol Usage="TO_START">
 | |
|       <ProtocolCName>gEfiPciHostBridgeResourceAllocationProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|     <Protocol Usage="TO_START">
 | |
|       <ProtocolCName>gEfiPciHotPlugInitProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|     <Protocol Usage="TO_START">
 | |
|       <ProtocolCName>gEfiDecompressProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|     <Protocol Usage="TO_START">
 | |
|       <ProtocolCName>gEfiLoadedImageProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|     <Protocol Usage="TO_START">
 | |
|       <ProtocolCName>gEfiUgaIoProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|     <Protocol Usage="BY_START">
 | |
|       <ProtocolCName>gEfiPciIoProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|     <Protocol Usage="BY_START">
 | |
|       <ProtocolCName>gEfiBusSpecificDriverOverrideProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|     <Protocol Usage="ALWAYS_PRODUCED">
 | |
|       <ProtocolCName>gEfiPciHotPlugRequestProtocolGuid</ProtocolCName>
 | |
|     </Protocol>
 | |
|   </Protocols>
 | |
|   <SystemTables>
 | |
|     <SystemTableCNames Usage="ALWAYS_CONSUMED">
 | |
|       <SystemTableCName>gEfiUgaIoProtocolGuid</SystemTableCName>
 | |
|     </SystemTableCNames>
 | |
|     <SystemTableCNames Usage="SOMETIMES_CONSUMED">
 | |
|       <SystemTableCName>gEfiPciOptionRomTableGuid</SystemTableCName>
 | |
|     </SystemTableCNames>
 | |
|   </SystemTables>
 | |
|   <Guids>
 | |
|     <GuidCNames Usage="SOMETIMES_CONSUMED">
 | |
|       <GuidCName>gEfiPciOptionRomTableGuid</GuidCName>
 | |
|     </GuidCNames>
 | |
|     <GuidCNames Usage="SOMETIMES_CONSUMED">
 | |
|       <GuidCName>gEfiStatusCodeSpecificDataGuid</GuidCName>
 | |
|     </GuidCNames>
 | |
|     <GuidCNames Usage="PRIVATE">
 | |
|       <GuidCName>gEfiPciHotplugDeviceGuid</GuidCName>
 | |
|     </GuidCNames>
 | |
|   </Guids>
 | |
|   <Externs>
 | |
|     <Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
 | |
|     <Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
 | |
|     <Extern>
 | |
|       <ModuleEntryPoint>PciBusEntryPoint</ModuleEntryPoint>
 | |
|     </Extern>
 | |
|     <Extern>
 | |
|       <DriverBinding>gPciBusDriverBinding</DriverBinding>
 | |
|     </Extern>
 | |
|     <Extern>
 | |
|       <ComponentName>gPciBusComponentName</ComponentName>
 | |
|     </Extern>
 | |
|   </Externs>
 | |
| </ModuleSurfaceArea> |