pci.h

来自「WinCE 3.0 BSP, 包含Inter SA1110, Intel_815」· C头文件 代码 · 共 96 行

H
96
字号
/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (c) 1995, 1996, 1997, 1998  Microsoft Corporation

Module Name:  
    pci.h

Abstract:  
    Function declarations for high level PCI configuration.

Functions:


Notes: 

--*/
#ifndef PCI_H
#define PCI_H

typedef struct tagPCIHostBridgeWindowInfoRec {
	DWORD dwMemWinBase;
	DWORD dwMemWinSize;
	DWORD dwIOWinBase;
	DWORD dwIOWinSize;
	BYTE fPCIMemTargetSupported;
} PCIHostBridgeWindowInfoRec;

typedef struct tagPCIMapInfoRec {
	DWORD dwPCIMemBase;
	DWORD dwPCIMemLimit;
	DWORD dwPCIIOBase;
	DWORD dwPCIIOLimit;
} PCIMapInfoRec;

typedef struct tagPCIDevAddrRec {
	BYTE bBusNo;
	BYTE bDevNo;
	BYTE bFuncNo;
	BYTE bParentBusNo;
	BYTE bParentDevNo;
	BYTE bParentFuncNo;
} PCIDevAddrRec;

typedef struct tagPCIDevIDRec {
	WORD wVendorID;
	WORD wDeviceID;
	WORD wSubsystemVendorID;
	WORD wSubsystemID;
} PCIDevIDRec;
	


/* These error codes are returned as error codes from PCI routines to		*/
/*	indicate an error condition on the bus.  These are generated from the	*/
/*	PCI configuration space status register for a given device.				*/
#define PCIE_PARITY_ERROR 0x8000
	/* Indicates that PERR# was asserted on the interface					*/
#define PCIE_SYSTEM_ERROR 0x4000
	/* Indicates that SERR# was asserted on the interface					*/
#define PCIE_MASTER_ABORT 0x2000
	/* Indicates that the interface terminated the transaction with a		*/
	/*	master abort while acting as a master								*/
#define PCIE_TARGET_ABORT_MASTER 0x1000
	/* Indicates that the interface, while acting as a master, received a	*/
	/*	target abort.														*/
#define PCIE_TARGET_ABORT_TARGET 0x0800
	/* Indicates that the interface, while acting as a target, caused a		*/
	/*	target abort														*/
#define PCIE_MASTER_PARITY_ERROR 0x0100
	/* Indicates that a parity error was detected while the interface was	*/
	/*	acting as master.													*/
#define PCIE_MASK (PCIE_PARITY_ERROR | PCIE_SYSTEM_ERROR | PCIE_MASTER_ABORT | \
	PCIE_TARGET_ABORT_MASTER | PCIE_TARGET_ABORT_TARGET | PCIE_MASTER_PARITY_ERROR )
	/* This constant is used to clear PCI errors after they have been read	*/
	/*	by writing 1's to the used bits.  It is also used to mask off		*/
	/*	unused bits of the error register when returning errors.			*/



/* Functions called in sdbtest.c */
int ScanNextPCIDevice( PCIDevAddrRec *pPCIDevice );
int FindNextPCIDevice( PCIDevIDRec *pPCIDevID, PCIDevAddrRec *pCurDevice );
int FindPCIParentDevice( PCIDevAddrRec *pTargetDevice );
int EnumeratePCIBuses( PCIDevAddrRec *pCurBridge, BYTE *pbLastBusNo );
int ListPCIDevices( void );
int MapPCIWindows( PCIMapInfoRec *pPCIMapInfo, PCIDevAddrRec *pCurDevice, PCIDevAddrRec *pTargetDevice );
WORD GetPCIBridgeStatus( PCIDevAddrRec *pPCIDevice );
void ClearPCIBridgeStatus( PCIDevAddrRec *pPCIDevice );
void PrintPCIError( WORD wPCIErrorCode );
int SetPCIBridgeWindows( PCIDevAddrRec *pBridge, PCIMapInfoRec *pPCIMapInfo );

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?