Kernel - Reworked PCI API to be cleaner
[tpg/acess2.git] / Kernel / include / drv_pci.h
index b539430..9697df0 100644 (file)
@@ -1,12 +1,16 @@
-/*\r
- * Acess 2\r
- * PCI Bus Driver\r
- * drv_pci.h\r
+/**\r
+ * \file drv_pci.h\r
+ * \brief PCI Bus Driver\r
+ * \author John Hodge (thePowersGang)\r
  */\r
 #ifndef _DRV_PCI_H\r
 #define _DRV_PCI_H\r
 \r
-enum e_PciClasses {\r
+/**\r
+ * \brief PCI Class Codes\r
+ */\r
+enum ePCIClasses\r
+{\r
        PCI_CLASS_PRE20 = 0x00,\r
        PCI_CLASS_STORAGE,\r
        PCI_CLASS_NETWORK,\r
@@ -22,21 +26,33 @@ enum e_PciClasses {
        PCI_CLASS_SERIALBUS,\r
        PCI_CLASS_MISC = 0xFF\r
 };\r
-enum e_PciOverClasses {\r
+\r
+enum ePCIOverClasses\r
+{\r
        PCI_OC_PCIBRIDGE = 0x0604,\r
        PCI_OC_SCSI = 0x0100\r
 };\r
 \r
+typedef int    tPCIDev;\r
+\r
+/**\r
+ * \brief Count PCI Devices\r
+ * \r
+ * Counts the number of devices with specified Vendor and Device IDs\r
+ */\r
+extern int     PCI_CountDevices(Uint16 VendorID, Uint16 DeviceID);\r
+extern tPCIDev PCI_GetDevice(Uint16 VendorID, Uint16 DeviceID, int index);\r
+extern tPCIDev PCI_GetDeviceByClass(Uint16 ClassCode, Uint16 Mask, tPCIDev prev);\r
+\r
+extern int     PCI_GetDeviceInfo(tPCIDev id, Uint16 *Vendor, Uint16 *Device, Uint16 *Class);\r
+extern int     PCI_GetDeviceVersion(tPCIDev id, Uint8 *Revision, Uint8 *ProgIF);\r
+extern int     PCI_GetDeviceSubsys(tPCIDev id, Uint16 *SubsystemVendor, Uint16 *SubsystemID);\r
+\r
+extern Uint32  PCI_ConfigRead(tPCIDev id, int Offset, int Size);\r
+extern void    PCI_ConfigWrite(tPCIDev id, int Offset, int Size, Uint32 Value);\r
 \r
-extern int     PCI_CountDevices(Uint16 vendor, Uint16 device, Uint16 fcn);\r
-extern int     PCI_GetDevice(Uint16 vendor, Uint16 device, Uint16 fcn, int idx);\r
-extern int     PCI_GetDeviceByClass(Uint16 class, Uint16 mask, int prev);\r
-extern Uint8   PCI_GetIRQ(int id);\r
-extern Uint32  PCI_GetBAR0(int id);\r
-extern Uint32  PCI_GetBAR1(int id);\r
-extern Uint32  PCI_GetBAR3(int id);\r
-extern Uint32  PCI_GetBAR4(int id);\r
-extern Uint32  PCI_GetBAR5(int id);\r
-extern Uint16  PCI_AssignPort(int id, int bar, int count);\r
+extern Uint8   PCI_GetIRQ(tPCIDev id);\r
+extern Uint32  PCI_GetBAR(tPCIDev id, int BAR);\r
+//extern Uint16        PCI_AssignPort(tPCIDev id, int bar, int count);\r
 \r
 #endif\r

UCC git Repository :: git.ucc.asn.au