[PCI]: Add PCI IRQ Routing Table structure to Shared, Internal PCI Header (based...
[reactos.git] / reactos / include / reactos / drivers / pci / pci.h
index 6f524ad..5833675 100644 (file)
 #define PCI_HACK_ENABLE_MSI_MAPPING                         0x0000020000000000LL
 #define PCI_HACK_DISABLE_PM_DOWNSTREAM_PCI_BRIDGE           0x0000040000000000LL
 
+//
+// Bit encodes for PCI_COMMON_CONFIG.u.type1.BridgeControl
+//
+#define PCI_ENABLE_BRIDGE_PARITY_ERROR                      0x0001
+#define PCI_ENABLE_BRIDGE_SERR                              0x0002
+#define PCI_ENABLE_BRIDGE_ISA                               0x0004
+#define PCI_ENABLE_BRIDGE_VGA                               0x0008
+#define PCI_ENABLE_BRIDGE_MASTER_ABORT_SERR                 0x0020
+#define PCI_ASSERT_BRIDGE_RESET                             0x0040
+#define PCI_ENABLE_BRIDGE_VGA_16BIT                         0x0010
+
+//
+// PCI IRQ Routing Table in BIOS/Registry (Signature: PIR$)
+//
+#include <pshpack1.h>
+typedef struct _PIN_INFO
+{
+    UCHAR Link;
+    USHORT InterruptMap;
+} PIN_INFO, *PPIN_INFO;
+    
+typedef struct _SLOT_INFO
+{
+    UCHAR BusNumber;
+    UCHAR DeviceNumber;
+    PIN_INFO PinInfo[4];
+    UCHAR SlotNumber;
+    UCHAR Reserved;
+} SLOT_INFO, *PSLOT_INFO;
+
+typedef struct _PCI_IRQ_ROUTING_TABLE
+{
+    ULONG Signature;
+    USHORT Version;
+    USHORT TableSize;
+    UCHAR RouterBus;
+    UCHAR RouterDevFunc;
+    USHORT ExclusiveIRQs;
+    ULONG CompatibleRouter;
+    ULONG MiniportData;
+    UCHAR Reserved[11];
+    UCHAR Checksum;
+    SLOT_INFO Slot[ANYSIZE_ARRAY];
+} PCI_IRQ_ROUTING_TABLE, *PPCI_IRQ_ROUTING_TABLE;
+#include <poppack.h>
+
+//
+// PCI Registry Information
+//
+typedef struct _PCI_REGISTRY_INFO
+{
+    UCHAR MajorRevision;
+    UCHAR MinorRevision;
+    UCHAR NoBuses; // Number Of Buses
+    UCHAR HardwareMechanism;
+} PCI_REGISTRY_INFO, *PPCI_REGISTRY_INFO;
+
+//
+// PCI Card Descriptor in Registry
+//
+typedef struct _PCI_CARD_DESCRIPTOR
+{
+    ULONG Flags;
+    USHORT VendorID;
+    USHORT DeviceID;
+    USHORT RevisionID;
+    USHORT SubsystemVendorID;
+    USHORT SubsystemID;
+    USHORT Reserved;
+} PCI_CARD_DESCRIPTOR, *PPCI_CARD_DESCRIPTOR;
+
 /* EOF */