PciBus cannot build for now for some definition missing. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2852 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			629 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			629 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*++
 | 
						|
 | 
						|
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.             
 | 
						|
 | 
						|
Module Name:
 | 
						|
 | 
						|
  PciEnumerator.h
 | 
						|
  
 | 
						|
Abstract:
 | 
						|
 | 
						|
  PCI Bus Driver
 | 
						|
 | 
						|
Revision History
 | 
						|
 | 
						|
--*/
 | 
						|
 | 
						|
#ifndef _EFI_PCI_ENUMERATOR_H
 | 
						|
#define _EFI_PCI_ENUMERATOR_H
 | 
						|
 | 
						|
#include "PciResourceSupport.h"
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
PciEnumerator (
 | 
						|
  IN EFI_HANDLE                    Controller
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  Controller  - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
PciRootBridgeEnumerator (
 | 
						|
  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL  *PciResAlloc,
 | 
						|
  IN PCI_IO_DEVICE                                     *RootBridgeDev
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  PciResAlloc   - TODO: add argument description
 | 
						|
  RootBridgeDev - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
ProcessOptionRom (
 | 
						|
  IN PCI_IO_DEVICE *Bridge,
 | 
						|
  IN UINT64        RomBase,
 | 
						|
  IN UINT64        MaxLength
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  Bridge    - TODO: add argument description
 | 
						|
  RomBase   - TODO: add argument description
 | 
						|
  MaxLength - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
PciAssignBusNumber (
 | 
						|
  IN PCI_IO_DEVICE                      *Bridge,
 | 
						|
  IN UINT8                              StartBusNumber,
 | 
						|
  OUT UINT8                             *SubBusNumber
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  Bridge          - TODO: add argument description
 | 
						|
  StartBusNumber  - TODO: add argument description
 | 
						|
  SubBusNumber    - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
DetermineRootBridgeAttributes (
 | 
						|
  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *PciResAlloc,
 | 
						|
  IN PCI_IO_DEVICE                                    *RootBridgeDev
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  PciResAlloc   - TODO: add argument description
 | 
						|
  RootBridgeDev - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
UINT64
 | 
						|
GetMaxOptionRomSize (
 | 
						|
  IN PCI_IO_DEVICE   *Bridge
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  Bridge  - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
PciHostBridgeDeviceAttribute (
 | 
						|
  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *PciResAlloc
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  PciResAlloc - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
GetResourceAllocationStatus (
 | 
						|
  VOID        *AcpiConfig,
 | 
						|
  OUT UINT64  *IoResStatus,
 | 
						|
  OUT UINT64  *Mem32ResStatus,
 | 
						|
  OUT UINT64  *PMem32ResStatus,
 | 
						|
  OUT UINT64  *Mem64ResStatus,
 | 
						|
  OUT UINT64  *PMem64ResStatus
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  AcpiConfig      - TODO: add argument description
 | 
						|
  IoResStatus     - TODO: add argument description
 | 
						|
  Mem32ResStatus  - TODO: add argument description
 | 
						|
  PMem32ResStatus - TODO: add argument description
 | 
						|
  Mem64ResStatus  - TODO: add argument description
 | 
						|
  PMem64ResStatus - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
RejectPciDevice (
 | 
						|
  IN PCI_IO_DEVICE       *PciDevice
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  PciDevice - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
BOOLEAN
 | 
						|
IsRejectiveDevice (
 | 
						|
  IN  PCI_RESOURCE_NODE   *PciResNode
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  PciResNode  - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
PCI_RESOURCE_NODE *
 | 
						|
GetLargerConsumerDevice (
 | 
						|
  IN  PCI_RESOURCE_NODE   *PciResNode1,
 | 
						|
  IN  PCI_RESOURCE_NODE   *PciResNode2
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  PciResNode1 - TODO: add argument description
 | 
						|
  PciResNode2 - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
PCI_RESOURCE_NODE *
 | 
						|
GetMaxResourceConsumerDevice (
 | 
						|
  IN  PCI_RESOURCE_NODE   *ResPool
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  ResPool - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
PciHostBridgeAdjustAllocation (
 | 
						|
  IN  PCI_RESOURCE_NODE   *IoPool,
 | 
						|
  IN  PCI_RESOURCE_NODE   *Mem32Pool,
 | 
						|
  IN  PCI_RESOURCE_NODE   *PMem32Pool,
 | 
						|
  IN  PCI_RESOURCE_NODE   *Mem64Pool,
 | 
						|
  IN  PCI_RESOURCE_NODE   *PMem64Pool,
 | 
						|
  IN  UINT64              IoResStatus,
 | 
						|
  IN  UINT64              Mem32ResStatus,
 | 
						|
  IN  UINT64              PMem32ResStatus,
 | 
						|
  IN  UINT64              Mem64ResStatus,
 | 
						|
  IN  UINT64              PMem64ResStatus
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  IoPool          - TODO: add argument description
 | 
						|
  Mem32Pool       - TODO: add argument description
 | 
						|
  PMem32Pool      - TODO: add argument description
 | 
						|
  Mem64Pool       - TODO: add argument description
 | 
						|
  PMem64Pool      - TODO: add argument description
 | 
						|
  IoResStatus     - TODO: add argument description
 | 
						|
  Mem32ResStatus  - TODO: add argument description
 | 
						|
  PMem32ResStatus - TODO: add argument description
 | 
						|
  Mem64ResStatus  - TODO: add argument description
 | 
						|
  PMem64ResStatus - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
ConstructAcpiResourceRequestor (
 | 
						|
  IN PCI_IO_DEVICE      *Bridge,
 | 
						|
  IN PCI_RESOURCE_NODE  *IoNode,
 | 
						|
  IN PCI_RESOURCE_NODE  *Mem32Node,
 | 
						|
  IN PCI_RESOURCE_NODE  *PMem32Node,
 | 
						|
  IN PCI_RESOURCE_NODE  *Mem64Node,
 | 
						|
  IN PCI_RESOURCE_NODE  *PMem64Node,
 | 
						|
  OUT VOID              **pConfig
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  Bridge      - TODO: add argument description
 | 
						|
  IoNode      - TODO: add argument description
 | 
						|
  Mem32Node   - TODO: add argument description
 | 
						|
  PMem32Node  - TODO: add argument description
 | 
						|
  Mem64Node   - TODO: add argument description
 | 
						|
  PMem64Node  - TODO: add argument description
 | 
						|
  pConfig     - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
GetResourceBase (
 | 
						|
  IN VOID     *pConfig,
 | 
						|
  OUT UINT64  *IoBase,
 | 
						|
  OUT UINT64  *Mem32Base,
 | 
						|
  OUT UINT64  *PMem32Base,
 | 
						|
  OUT UINT64  *Mem64Base,
 | 
						|
  OUT UINT64  *PMem64Base
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  pConfig     - TODO: add argument description
 | 
						|
  IoBase      - TODO: add argument description
 | 
						|
  Mem32Base   - TODO: add argument description
 | 
						|
  PMem32Base  - TODO: add argument description
 | 
						|
  Mem64Base   - TODO: add argument description
 | 
						|
  PMem64Base  - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
PciBridgeEnumerator (
 | 
						|
  IN PCI_IO_DEVICE                                     *BridgeDev
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  BridgeDev - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
PciBridgeResourceAllocator (
 | 
						|
  IN PCI_IO_DEVICE  *Bridge
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  Bridge  - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
GetResourceBaseFromBridge (
 | 
						|
  IN  PCI_IO_DEVICE *Bridge,
 | 
						|
  OUT UINT64        *IoBase,
 | 
						|
  OUT UINT64        *Mem32Base,
 | 
						|
  OUT UINT64        *PMem32Base,
 | 
						|
  OUT UINT64        *Mem64Base,
 | 
						|
  OUT UINT64        *PMem64Base
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  Bridge      - TODO: add argument description
 | 
						|
  IoBase      - TODO: add argument description
 | 
						|
  Mem32Base   - TODO: add argument description
 | 
						|
  PMem32Base  - TODO: add argument description
 | 
						|
  Mem64Base   - TODO: add argument description
 | 
						|
  PMem64Base  - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
PciHostBridgeP2CProcess (
 | 
						|
  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *PciResAlloc
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  PciResAlloc - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
NotifyPhase (
 | 
						|
  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *PciResAlloc,
 | 
						|
  EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE       Phase
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  PciResAlloc - TODO: add argument description
 | 
						|
  Phase       - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
PreprocessController (
 | 
						|
  IN PCI_IO_DEVICE                                  *Bridge,
 | 
						|
  IN UINT8                                          Bus,
 | 
						|
  IN UINT8                                          Device,
 | 
						|
  IN UINT8                                          Func,
 | 
						|
  IN EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE   Phase
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  Bridge  - TODO: add argument description
 | 
						|
  Bus     - TODO: add argument description
 | 
						|
  Device  - TODO: add argument description
 | 
						|
  Func    - TODO: add argument description
 | 
						|
  Phase   - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
PciHotPlugRequestNotify (
 | 
						|
  IN EFI_PCI_HOTPLUG_REQUEST_PROTOCOL * This,
 | 
						|
  IN EFI_PCI_HOTPLUG_OPERATION        Operation,
 | 
						|
  IN EFI_HANDLE                       Controller,
 | 
						|
  IN EFI_DEVICE_PATH_PROTOCOL         * RemainingDevicePath OPTIONAL,
 | 
						|
  IN OUT UINT8                        *NumberOfChildren,
 | 
						|
  IN OUT EFI_HANDLE                   * ChildHandleBuffer
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  This                - TODO: add argument description
 | 
						|
  Operation           - TODO: add argument description
 | 
						|
  Controller          - TODO: add argument description
 | 
						|
  RemainingDevicePath - TODO: add argument description
 | 
						|
  NumberOfChildren    - TODO: add argument description
 | 
						|
  ChildHandleBuffer   - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
BOOLEAN
 | 
						|
SearchHostBridgeHandle (
 | 
						|
  IN EFI_HANDLE RootBridgeHandle
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  RootBridgeHandle  - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
AddHostBridgeEnumerator (
 | 
						|
  IN EFI_HANDLE HostBridgeHandle
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  HostBridgeHandle  - TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
#endif
 |