2005-04-21 16:53:53 +02:00
|
|
|
/*
|
|
|
|
pci.h
|
|
|
|
|
|
|
|
Created: Jan 2000 by Philip Homburg <philip@cs.vu.nl>
|
|
|
|
*/
|
|
|
|
|
2005-05-11 11:02:00 +02:00
|
|
|
/* tempory functions: to be replaced later (see pci_intel.h) */
|
|
|
|
_PROTOTYPE( unsigned pci_inb, (U16_t port) );
|
|
|
|
_PROTOTYPE( unsigned pci_inw, (U16_t port) );
|
|
|
|
_PROTOTYPE( unsigned pci_inl, (U16_t port) );
|
|
|
|
|
|
|
|
_PROTOTYPE( void pci_outb, (U16_t port, U8_t value) );
|
|
|
|
_PROTOTYPE( void pci_outw, (U16_t port, U16_t value) );
|
|
|
|
_PROTOTYPE( void pci_outl, (U16_t port, U32_t value) );
|
|
|
|
|
2005-04-21 16:53:53 +02:00
|
|
|
struct pci_vendor
|
|
|
|
{
|
|
|
|
u16_t vid;
|
|
|
|
char *name;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct pci_device
|
|
|
|
{
|
|
|
|
u16_t vid;
|
|
|
|
u16_t did;
|
|
|
|
char *name;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct pci_baseclass
|
|
|
|
{
|
|
|
|
u8_t baseclass;
|
|
|
|
char *name;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct pci_subclass
|
|
|
|
{
|
|
|
|
u8_t baseclass;
|
|
|
|
u8_t subclass;
|
|
|
|
u16_t infclass;
|
|
|
|
char *name;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct pci_intel_ctrl
|
|
|
|
{
|
|
|
|
u16_t vid;
|
|
|
|
u16_t did;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct pci_isabridge
|
|
|
|
{
|
|
|
|
u16_t vid;
|
|
|
|
u16_t did;
|
|
|
|
int checkclass;
|
|
|
|
int type;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct pci_pcibridge
|
|
|
|
{
|
|
|
|
u16_t vid;
|
|
|
|
u16_t did;
|
|
|
|
int type;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define PCI_IB_PIIX 1 /* Intel PIIX compatible ISA bridge */
|
|
|
|
#define PCI_IB_VIA 2 /* VIA compatible ISA bridge */
|
|
|
|
#define PCI_IB_AMD 3 /* AMD compatible ISA bridge */
|
|
|
|
#define PCI_IB_SIS 4 /* SIS compatible ISA bridge */
|
|
|
|
|
2006-01-12 15:46:12 +01:00
|
|
|
#define PCI_PPB_STD 1 /* Standard PCI-to-PCI bridge */
|
|
|
|
#define PCI_PPB_CB 2 /* Cardbus bridge */
|
|
|
|
/* Still needed? */
|
2005-08-25 14:49:22 +02:00
|
|
|
#define PCI_AGPB_VIA 3 /* VIA compatible AGP bridge */
|
2005-04-21 16:53:53 +02:00
|
|
|
|
|
|
|
extern struct pci_vendor pci_vendor_table[];
|
|
|
|
extern struct pci_device pci_device_table[];
|
|
|
|
extern struct pci_baseclass pci_baseclass_table[];
|
|
|
|
extern struct pci_subclass pci_subclass_table[];
|
2006-03-07 15:14:53 +01:00
|
|
|
#if 0
|
2005-04-21 16:53:53 +02:00
|
|
|
extern struct pci_intel_ctrl pci_intel_ctrl[];
|
2006-03-07 15:14:53 +01:00
|
|
|
#endif
|
2005-04-21 16:53:53 +02:00
|
|
|
extern struct pci_isabridge pci_isabridge[];
|
|
|
|
extern struct pci_pcibridge pci_pcibridge[];
|
|
|
|
|
2006-01-12 15:46:12 +01:00
|
|
|
/* Utility functions */
|
2007-04-24 14:55:37 +02:00
|
|
|
_PROTOTYPE( int pci_reserve2, (int devind, endpoint_t proc) );
|
|
|
|
_PROTOTYPE( void pci_release, (endpoint_t proc) );
|
2006-10-20 17:01:32 +02:00
|
|
|
_PROTOTYPE( int pci_first_dev_a, (struct rs_pci *aclp, int *devindp,
|
|
|
|
u16_t *vidp, u16_t *didp) );
|
|
|
|
_PROTOTYPE( int pci_next_dev_a, (struct rs_pci *aclp, int *devindp,
|
|
|
|
u16_t *vidp, u16_t *didp) );
|
2006-01-12 15:46:12 +01:00
|
|
|
|
2008-02-22 16:56:12 +01:00
|
|
|
_PROTOTYPE( int pci_attr_r8_s, (int devind, int port, u8_t *vp) );
|
|
|
|
_PROTOTYPE( int pci_attr_r32_s, (int devind, int port, u32_t *vp) );
|
|
|
|
_PROTOTYPE( int pci_slot_name_s, (int devind, char **cpp) );
|
|
|
|
_PROTOTYPE( int pci_ids_s, (int devind, u16_t *vidp, u16_t *didp) );
|
|
|
|
|
2005-04-21 16:53:53 +02:00
|
|
|
/*
|
|
|
|
* $PchId: pci.h,v 1.4 2001/12/06 20:21:22 philip Exp $
|
|
|
|
*/
|