73 lines
1.9 KiB
C
73 lines
1.9 KiB
C
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.h,v 3.8 2002/09/16 16:55:33 tsi Exp $ */
|
|
|
|
#ifndef _XF86_PCI_BUS_H
|
|
#define _XF86_PCI_BUS_H
|
|
|
|
#define PCITAG_SPECIAL pciTag(0xFF,0xFF,0xFF)
|
|
|
|
typedef struct {
|
|
CARD32 command;
|
|
CARD32 base[6];
|
|
CARD32 biosBase;
|
|
} pciSave, *pciSavePtr;
|
|
|
|
typedef void (*SetBitsProcPtr)(PCITAG, int, CARD32, CARD32);
|
|
typedef void (*WriteProcPtr)(PCITAG, int, CARD32);
|
|
|
|
typedef struct {
|
|
PCITAG tag;
|
|
WriteProcPtr func;
|
|
CARD32 ctrl;
|
|
} pciArg;
|
|
|
|
typedef struct {
|
|
int busnum;
|
|
int devnum;
|
|
int funcnum;
|
|
pciArg arg;
|
|
xf86AccessRec ioAccess;
|
|
xf86AccessRec io_memAccess;
|
|
xf86AccessRec memAccess;
|
|
pciSave save;
|
|
pciSave restore;
|
|
Bool ctrl;
|
|
} pciAccRec, *pciAccPtr;
|
|
|
|
typedef union {
|
|
CARD16 control;
|
|
} pciBridgesSave, *pciBridgesSavePtr;
|
|
|
|
typedef struct pciBusRec {
|
|
int brbus, brdev, brfunc; /* ID of the bridge to this bus */
|
|
int primary, secondary, subordinate;
|
|
int subclass; /* bridge type */
|
|
int interface;
|
|
resPtr preferred_io; /* I/O range */
|
|
resPtr preferred_mem; /* non-prefetchable memory range */
|
|
resPtr preferred_pmem; /* prefetchable memory range */
|
|
resPtr io; /* for subtractive PCI-PCI bridges */
|
|
resPtr mem;
|
|
resPtr pmem;
|
|
int brcontrol; /* bridge_control byte */
|
|
struct pciBusRec *next;
|
|
} PciBusRec, *PciBusPtr;
|
|
|
|
void xf86PciProbe(void);
|
|
void ValidatePci(void);
|
|
resList GetImplicitPciResources(int entityIndex);
|
|
void initPciState(void);
|
|
void initPciBusState(void);
|
|
void DisablePciAccess(void);
|
|
void DisablePciBusAccess(void);
|
|
void PciStateEnter(void);
|
|
void PciBusStateEnter(void);
|
|
void PciStateLeave(void);
|
|
void PciBusStateLeave(void);
|
|
resPtr ResourceBrokerInitPci(resPtr *osRes);
|
|
void pciConvertRange2Host(int entityIndex, resRange *pRange);
|
|
void isaConvertRange2Host(resRange *pRange);
|
|
|
|
extern pciAccPtr * xf86PciAccInfo;
|
|
|
|
#endif /* _XF86_PCI_BUS_H */
|