git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5004 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			95 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  This file declares EFI Incompatible PCI Device Support Protocol
 | 
						|
  This protocol allows the PCI bus driver to support resource allocation for some PCI devices that do not comply
 | 
						|
  with the PCI Specification.
 | 
						|
  The EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL is used by the PCI bus driver
 | 
						|
  to support resource allocation for some PCI devices that do not comply with the PCI Specification.
 | 
						|
  This protocol can find some incompatible PCI devices and report their special resource
 | 
						|
  requirements to the PCI bus driver. The generic PCI bus driver does not have prior knowledge of
 | 
						|
  any incompatible PCI devices. It interfaces with the
 | 
						|
  EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL to find out if a device is
 | 
						|
  incompatible and to obtain the special configuration requirements for a specific incompatible PCI
 | 
						|
  device.
 | 
						|
  This protocol is optional, and only one instance of this protocol can be present in the system. If a
 | 
						|
  platform supports this protocol, this protocol is produced by a Driver Execution Environment
 | 
						|
  (DXE) driver and must be made available before the Boot Device Selection (BDS) phase. The PCI
 | 
						|
  bus driver will look for the presence of this protocol before it begins PCI enumeration.
 | 
						|
 | 
						|
  Copyright (c) 2007, 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:  IncompatiblePciDeviceSupport.h
 | 
						|
 | 
						|
  @par Revision Reference:
 | 
						|
  This protocol is defined in Framework of EFI PCI Platform Support Specification.
 | 
						|
  Version0.9
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef _INCOMPATIBLE_PCI_DEVICE_SUPPORT_H_
 | 
						|
#define _INCOMPATIBLE_PCI_DEVICE_SUPPORT_H_
 | 
						|
 | 
						|
#include <PiDxe.h>
 | 
						|
 | 
						|
#define EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL_GUID \
 | 
						|
        {0xeb23f55a, 0x7863, 0x4ac2, {0x8d, 0x3d, 0x95, 0x65, 0x35, 0xde, 0x03, 0x75} }
 | 
						|
 | 
						|
typedef struct _EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL;
 | 
						|
 | 
						|
/**
 | 
						|
  Returns a list of ACPI resource descriptors that detail the special
 | 
						|
  resource configuration requirements for an incompatible PCI device.
 | 
						|
 | 
						|
  @param  This                  Pointer to the EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL instance.
 | 
						|
  @param  VendorID              A unique ID to identify the manufacturer of the PCI device.
 | 
						|
  @param  DeviceID              A unique ID to identify the particular PCI device.
 | 
						|
  @param  RevisionID            A PCI device-specific revision identifier.
 | 
						|
  @param  SubsystemVendorId     Specifies the subsystem vendor ID.
 | 
						|
  @param  SubsystemDeviceId     Specifies the subsystem device ID.
 | 
						|
  @param  Configuration         A list of ACPI resource descriptors that detail
 | 
						|
                                the configuration requirement.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The function always returns EFI_SUCCESS.
 | 
						|
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_CHECK_DEVICE) (
 | 
						|
  IN EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL   *This,
 | 
						|
  IN  UINTN                                         VendorId,
 | 
						|
  IN  UINTN                                         DeviceId,
 | 
						|
  IN  UINTN                                         Revision,
 | 
						|
  IN  UINTN                                         SubVendorId,OPTIONAL
 | 
						|
  IN  UINTN                                         SubDeviceId,OPTIONAL
 | 
						|
  OUT VOID                                          **Configuration
 | 
						|
);
 | 
						|
 | 
						|
 | 
						|
//
 | 
						|
// Interface structure for the Incompatible PCI Device Support Protocol
 | 
						|
//
 | 
						|
/**
 | 
						|
  @par Protocol Description:
 | 
						|
  This protocol can find some incompatible PCI devices and report their
 | 
						|
  special resource requirements to the PCI bus driver.
 | 
						|
 | 
						|
  @param CheckDevice
 | 
						|
  Returns a list of ACPI resource descriptors that detail any special
 | 
						|
  resource configuration requirements if the specified device is a recognized
 | 
						|
  incompatible PCI device.
 | 
						|
 | 
						|
**/
 | 
						|
struct _EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL {
 | 
						|
  EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_CHECK_DEVICE      CheckDevice;
 | 
						|
};
 | 
						|
 | 
						|
extern EFI_GUID gEfiIncompatiblePciDeviceSupportProtocolGuid;
 | 
						|
 | 
						|
#endif
 |