00001
00002
00003
00004
00005
00006
00007 #include <minix/rs.h>
00008
00009
00010 _PROTOTYPE( unsigned pci_inb, (U16_t port) );
00011 _PROTOTYPE( unsigned pci_inw, (U16_t port) );
00012 _PROTOTYPE( unsigned pci_inl, (U16_t port) );
00013
00014 _PROTOTYPE( void pci_outb, (U16_t port, U8_t value) );
00015 _PROTOTYPE( void pci_outw, (U16_t port, U16_t value) );
00016 _PROTOTYPE( void pci_outl, (U16_t port, U32_t value) );
00017
00018 struct pci_vendor
00019 {
00020 u16_t vid;
00021 char *name;
00022 };
00023
00024 struct pci_device
00025 {
00026 u16_t vid;
00027 u16_t did;
00028 char *name;
00029 };
00030
00031 struct pci_baseclass
00032 {
00033 u8_t baseclass;
00034 char *name;
00035 };
00036
00037 struct pci_subclass
00038 {
00039 u8_t baseclass;
00040 u8_t subclass;
00041 u16_t infclass;
00042 char *name;
00043 };
00044
00045 struct pci_intel_ctrl
00046 {
00047 u16_t vid;
00048 u16_t did;
00049 };
00050
00051 struct pci_isabridge
00052 {
00053 u16_t vid;
00054 u16_t did;
00055 int checkclass;
00056 int type;
00057 };
00058
00059 struct pci_pcibridge
00060 {
00061 u16_t vid;
00062 u16_t did;
00063 int type;
00064 };
00065
00066 struct pci_acl
00067 {
00068 int inuse;
00069 struct rs_pci acl;
00070 };
00071
00072 #define NR_DRIVERS NR_SYS_PROCS
00073
00074 #define PCI_IB_PIIX 1
00075 #define PCI_IB_VIA 2
00076 #define PCI_IB_AMD 3
00077 #define PCI_IB_SIS 4
00078
00079 #define PCI_PPB_STD 1
00080 #define PCI_PPB_CB 2
00081
00082 #define PCI_AGPB_VIA 3
00083
00084 extern struct pci_vendor pci_vendor_table[];
00085 extern struct pci_device pci_device_table[];
00086 extern struct pci_baseclass pci_baseclass_table[];
00087 extern struct pci_subclass pci_subclass_table[];
00088 #if 0
00089 extern struct pci_intel_ctrl pci_intel_ctrl[];
00090 #endif
00091 extern struct pci_isabridge pci_isabridge[];
00092 extern struct pci_pcibridge pci_pcibridge[];
00093
00094
00095 _PROTOTYPE( int sef_cb_init_fresh, (int type, sef_init_info_t *info) );
00096 _PROTOTYPE( int map_service, (struct rprocpub *rpub) );
00097 _PROTOTYPE( int pci_reserve2, (int devind, endpoint_t proc) );
00098 _PROTOTYPE( void pci_release, (endpoint_t proc) );
00099 _PROTOTYPE( int pci_first_dev_a, (struct rs_pci *aclp, int *devindp,
00100 u16_t *vidp, u16_t *didp) );
00101 _PROTOTYPE( int pci_next_dev_a, (struct rs_pci *aclp, int *devindp,
00102 u16_t *vidp, u16_t *didp) );
00103
00104 _PROTOTYPE( int pci_attr_r8_s, (int devind, int port, u8_t *vp) );
00105 _PROTOTYPE( int pci_attr_r32_s, (int devind, int port, u32_t *vp) );
00106 _PROTOTYPE( int pci_slot_name_s, (int devind, char **cpp) );
00107 _PROTOTYPE( int pci_ids_s, (int devind, u16_t *vidp, u16_t *didp) );
00108
00109
00110
00111