mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-11-04 12:54:17 +00:00 
			
		
		
		
	git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			178 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			178 lines
		
	
	
		
			5.6 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:
 | 
						|
 | 
						|
    IsaAcpi.h
 | 
						|
    
 | 
						|
Abstract:
 | 
						|
 | 
						|
    EFI ISA Acpi Protocol
 | 
						|
 | 
						|
Revision History
 | 
						|
 | 
						|
--*/
 | 
						|
 | 
						|
#ifndef _ISA_ACPI_H_
 | 
						|
#define _ISA_ACPI_H_
 | 
						|
 | 
						|
#define EFI_ISA_ACPI_PROTOCOL_GUID \
 | 
						|
		{ 0x64a892dc, 0x5561, 0x4536, { 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55 } }
 | 
						|
 | 
						|
typedef struct _EFI_ISA_ACPI_PROTOCOL EFI_ISA_ACPI_PROTOCOL;
 | 
						|
 | 
						|
//
 | 
						|
// Resource Attribute definition
 | 
						|
//
 | 
						|
#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_EDGE_SENSITIVE   0x01
 | 
						|
#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_EDGE_SENSITIVE    0x02
 | 
						|
#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_LEVEL_SENSITIVE  0x04
 | 
						|
#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_LEVEL_SENSITIVE   0x08
 | 
						|
 | 
						|
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_MASK                 0x03
 | 
						|
 | 
						|
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_COMPATIBILITY        0x00
 | 
						|
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_A                    0x01
 | 
						|
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_B                    0x02
 | 
						|
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_F                    0x03
 | 
						|
#define EFI_ISA_ACPI_DMA_COUNT_BY_BYTE                   0x04
 | 
						|
#define EFI_ISA_ACPI_DMA_COUNT_BY_WORD                   0x08
 | 
						|
#define EFI_ISA_ACPI_DMA_BUS_MASTER                      0x10
 | 
						|
#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT             0x20
 | 
						|
#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT  0x40
 | 
						|
#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_16_BIT            0x80
 | 
						|
 | 
						|
#define EFI_ISA_ACPI_MEMORY_WIDTH_MASK                   0x03
 | 
						|
 | 
						|
#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT                  0x00
 | 
						|
#define EFI_ISA_ACPI_MEMORY_WIDTH_16_BIT                 0x01
 | 
						|
#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT_AND_16_BIT       0x02
 | 
						|
#define EFI_ISA_ACPI_MEMORY_WRITEABLE                    0x04
 | 
						|
#define EFI_ISA_ACPI_MEMORY_CACHEABLE                    0x08
 | 
						|
#define EFI_ISA_ACPI_MEMORY_SHADOWABLE                   0x10
 | 
						|
#define EFI_ISA_ACPI_MEMORY_EXPANSION_ROM                0x20
 | 
						|
 | 
						|
#define EFI_ISA_ACPI_IO_DECODE_10_BITS                   0x01
 | 
						|
#define EFI_ISA_ACPI_IO_DECODE_16_BITS                   0x02
 | 
						|
 | 
						|
//
 | 
						|
// Resource List definition: 
 | 
						|
// at first, the resource was defined as below
 | 
						|
// but in the future, it will be defined again that follow ACPI spec: ACPI resource type
 | 
						|
// so that, in this driver, we can interpret the ACPI table and get the ISA device information. 
 | 
						|
//
 | 
						|
 
 | 
						|
typedef enum {
 | 
						|
  EfiIsaAcpiResourceEndOfList,
 | 
						|
  EfiIsaAcpiResourceIo,
 | 
						|
  EfiIsaAcpiResourceMemory,
 | 
						|
  EfiIsaAcpiResourceDma,
 | 
						|
  EfiIsaAcpiResourceInterrupt
 | 
						|
} EFI_ISA_ACPI_RESOURCE_TYPE;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  EFI_ISA_ACPI_RESOURCE_TYPE  Type;
 | 
						|
  UINT32                      Attribute;
 | 
						|
  UINT32                      StartRange;
 | 
						|
  UINT32                      EndRange;
 | 
						|
} EFI_ISA_ACPI_RESOURCE;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  UINT32                      HID;
 | 
						|
  UINT32                      UID;
 | 
						|
} EFI_ISA_ACPI_DEVICE_ID;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  EFI_ISA_ACPI_DEVICE_ID      Device;
 | 
						|
  EFI_ISA_ACPI_RESOURCE       *ResourceItem;
 | 
						|
} EFI_ISA_ACPI_RESOURCE_LIST;
 | 
						|
 | 
						|
//
 | 
						|
// Prototypes for the ISA ACPI Protocol
 | 
						|
//
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_ISA_ACPI_DEVICE_ENUMERATE) (
 | 
						|
  IN EFI_ISA_ACPI_PROTOCOL           *This,
 | 
						|
  OUT EFI_ISA_ACPI_DEVICE_ID         **Device
 | 
						|
  );
 | 
						|
  
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_ISA_ACPI_SET_DEVICE_POWER) (
 | 
						|
  IN EFI_ISA_ACPI_PROTOCOL           *This,
 | 
						|
  IN EFI_ISA_ACPI_DEVICE_ID          *Device,
 | 
						|
  IN BOOLEAN                         OnOff
 | 
						|
  );
 | 
						|
  
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_ISA_ACPI_GET_CUR_RESOURCE) (
 | 
						|
  IN EFI_ISA_ACPI_PROTOCOL           *This,
 | 
						|
  IN EFI_ISA_ACPI_DEVICE_ID          *Device,
 | 
						|
  OUT EFI_ISA_ACPI_RESOURCE_LIST     **ResourceList
 | 
						|
  );
 | 
						|
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_ISA_ACPI_GET_POS_RESOURCE) (
 | 
						|
  IN EFI_ISA_ACPI_PROTOCOL           *This,
 | 
						|
  IN EFI_ISA_ACPI_DEVICE_ID          *Device,
 | 
						|
  OUT EFI_ISA_ACPI_RESOURCE_LIST     **ResourceList
 | 
						|
  );
 | 
						|
  
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_ISA_ACPI_SET_RESOURCE) (
 | 
						|
  IN EFI_ISA_ACPI_PROTOCOL           *This,
 | 
						|
  IN EFI_ISA_ACPI_DEVICE_ID          *Device,
 | 
						|
  IN EFI_ISA_ACPI_RESOURCE_LIST      *ResourceList
 | 
						|
  );    
 | 
						|
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_ISA_ACPI_ENABLE_DEVICE) (
 | 
						|
  IN EFI_ISA_ACPI_PROTOCOL           *This,
 | 
						|
  IN EFI_ISA_ACPI_DEVICE_ID          *Device,
 | 
						|
  IN BOOLEAN                         Enable
 | 
						|
  );    
 | 
						|
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_ISA_ACPI_INIT_DEVICE) (
 | 
						|
  IN EFI_ISA_ACPI_PROTOCOL           *This,
 | 
						|
  IN EFI_ISA_ACPI_DEVICE_ID          *Device
 | 
						|
  );  
 | 
						|
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_ISA_ACPI_INTERFACE_INIT) (
 | 
						|
  IN EFI_ISA_ACPI_PROTOCOL           *This
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Interface structure for the ISA ACPI Protocol
 | 
						|
//
 | 
						|
struct _EFI_ISA_ACPI_PROTOCOL {
 | 
						|
  EFI_ISA_ACPI_DEVICE_ENUMERATE     DeviceEnumerate;
 | 
						|
  EFI_ISA_ACPI_SET_DEVICE_POWER     SetPower;
 | 
						|
  EFI_ISA_ACPI_GET_CUR_RESOURCE     GetCurResource;
 | 
						|
  EFI_ISA_ACPI_GET_POS_RESOURCE     GetPosResource;
 | 
						|
  EFI_ISA_ACPI_SET_RESOURCE         SetResource;
 | 
						|
  EFI_ISA_ACPI_ENABLE_DEVICE        EnableDevice;
 | 
						|
  EFI_ISA_ACPI_INIT_DEVICE          InitDevice;
 | 
						|
  EFI_ISA_ACPI_INTERFACE_INIT       InterfaceInit;
 | 
						|
};
 | 
						|
 | 
						|
extern EFI_GUID gEfiIsaAcpiProtocolGuid;
 | 
						|
  
 | 
						|
#endif
 |