3 * \brief PCI Bus Driver
\r
4 * \author John Hodge (thePowersGang)
\r
10 * \brief PCI Class Codes
\r
14 PCI_CLASS_PRE20 = 0x00,
\r
18 PCI_CLASS_MULTIMEDIA,
\r
25 PCI_CLASS_PROCESSORS,
\r
26 PCI_CLASS_SERIALBUS,
\r
27 PCI_CLASS_MISC = 0xFF
\r
30 enum ePCIOverClasses
\r
32 PCI_OC_PCIBRIDGE = 0x060400,
\r
33 PCI_OC_SCSI = 0x010000
\r
36 typedef int tPCIDev;
\r
39 * \brief Count PCI Devices
\r
41 * Counts the number of devices with specified Vendor and Device IDs
\r
43 extern int PCI_CountDevices(Uint16 VendorID, Uint16 DeviceID);
\r
44 extern tPCIDev PCI_GetDevice(Uint16 VendorID, Uint16 DeviceID, int index);
\r
46 * \param ClassCode (Class:SubClass:PI)
\r
48 extern tPCIDev PCI_GetDeviceByClass(Uint32 ClassCode, Uint32 Mask, tPCIDev prev);
\r
50 extern int PCI_GetDeviceInfo(tPCIDev id, Uint16 *Vendor, Uint16 *Device, Uint32 *Class);
\r
51 extern int PCI_GetDeviceVersion(tPCIDev id, Uint8 *Revision);
\r
52 extern int PCI_GetDeviceSubsys(tPCIDev id, Uint16 *SubsystemVendor, Uint16 *SubsystemID);
\r
54 extern Uint32 PCI_ConfigRead(tPCIDev id, int Offset, int Size);
\r
55 extern void PCI_ConfigWrite(tPCIDev id, int Offset, int Size, Uint32 Value);
\r
57 extern Uint8 PCI_GetIRQ(tPCIDev id);
\r
58 extern Uint32 PCI_GetBAR(tPCIDev id, int BAR);
\r
59 //extern Uint16 PCI_AssignPort(tPCIDev id, int bar, int count);
\r