ReactOS 0.4.17-dev-1196-gb6224c3
pci.h File Reference
#include <pshpack1.h>
#include <poppack.h>
Include dependency graph for pci.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _PIN_INFO
 
struct  _SLOT_INFO
 
struct  _PCI_IRQ_ROUTING_TABLE
 
struct  _PCI_REGISTRY_INFO
 
struct  _PCI_CARD_DESCRIPTOR
 

Macros

#define PCI_HACK_KEEP_DECODES_ON_STOP   0x0000000000000002LL
 
#define PCI_HACK_LOCK_RESOURCES   0x0000000000000004LL
 
#define PCI_HACK_NO_ENUM_AT_ALL   0x0000000000000008LL
 
#define PCI_HACK_ENUM_NO_RESOURCE   0x0000000000000010LL
 
#define PCI_HACK_AVOID_D1D2_FOR_SLD   0x0000000000000020LL
 
#define PCI_HACK_NEVER_DISCONNECT   0x0000000000000040LL
 
#define PCI_HACK_DONT_DISABLE   0x0000000000000080LL
 
#define PCI_HACK_MULTIFUNCTION   0x0000000000000100LL
 
#define PCI_HACK_UNUSED_200   0x0000000000000200LL
 
#define PCI_HACK_IGNORE_NON_STICKY_ISA   0x0000000000000400LL
 
#define PCI_HACK_UNUSED_800   0x0000000000000800LL
 
#define PCI_HACK_DOUBLE_DECKER   0x0000000000001000LL
 
#define PCI_HACK_ONE_CHILD   0x0000000000002000LL
 
#define PCI_HACK_PRESERVE_COMMAND   0x0000000000004000LL
 
#define PCI_HACK_DEFAULT_CARDBUS_WINDOWS   0x0000000000008000LL
 
#define PCI_HACK_CB_SHARE_CMD_BITS   0x0000000000010000LL
 
#define PCI_HACK_IGNORE_ROOT_TOPOLOGY   0x0000000000020000LL
 
#define PCI_HACK_SUBTRACTIVE_DECODE   0x0000000000040000LL
 
#define PCI_HACK_NO_EXPRESS_CAP   0x0000000000080000LL
 
#define PCI_HACK_NO_ASPM_FOR_EXPRESS_LINK   0x0000000000100000LL
 
#define PCI_HACK_CLEAR_INT_DISABLE_FOR_MSI   0x0000000000200000LL
 
#define PCI_HACK_NO_SUBSYSTEM   0x0000000000400000LL
 
#define PCI_HACK_COMMAND_REWRITE   0x0000000000800000LL
 
#define PCI_HACK_AVOID_HARDWARE_ISA_BIT   0x0000000001000000LL
 
#define PCI_HACK_FORCE_BRIDGE_WINDOW_ALIGNMENT   0x0000000002000000LL
 
#define PCI_HACK_NOT_MSI_HT_CONVERTER   0x0000000004000000LL
 
#define PCI_HACK_PCI_HACK_SBR_ON_LINK_STATE_CHANGE   0x0000000008000000LL
 
#define PCI_HACK_PCI_HACK_LINK_DISABLE_ON_SLOT_PWRDN   0x0000000010000000LL
 
#define PCI_HACK_NO_PM_CAPS   0x0000000020000000LL
 
#define PCI_HACK_NEVER_POWER_DOWN   0x0000000040000000LL
 
#define PCI_HACK_NO_SUBSYSTEM_AFTER_D3   0x0000000080000000LL
 
#define PCI_HACK_VIDEO_LEGACY_DECODE   0x0000000100000000LL
 
#define PCI_HACK_FAKE_CLASS_CODE   0x0000000200000000LL
 
#define PCI_HACK_UNUSED_40000000   0x0000000400000000LL
 
#define PCI_HACK_DISABLE_IDE_NATIVE_MODE   0x0000000800000000LL
 
#define PCI_HACK_FAIL_QUERY_REMOVE   0x0000001000000000LL
 
#define PCI_HACK_CRITICAL_DEVICE   0x0000002000000000LL
 
#define PCI_HACK_NOT_CRITICAL_DEVICE   0x0000004000000000LL
 
#define PCI_HACK_BROKEN_SUBTRACTIVE_DECODE   0x0000008000000000LL
 
#define PCI_HACK_NO_REVISION_AFTER_D3   0x0000010000000000LL
 
#define PCI_HACK_ENABLE_MSI_MAPPING   0x0000020000000000LL
 
#define PCI_HACK_DISABLE_PM_DOWNSTREAM_PCI_BRIDGE   0x0000040000000000LL
 
#define PCI_HACK_DISABLE_HOT_PLUG   0x0000080000000000LL
 
#define PCI_HACK_IGNORE_AER_CAPABILITY   0x0000100000000000LL
 
#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
 
#define PCI_IRQ_ROUTING_TABLE_SIGNATURE   'RIP$'
 
#define PCI_IRQ_ROUTING_TABLE_VERSION   0x0100
 
#define PCI_GET_NUM_OF_BUSES(PciRegInfo)
 Retrieves the corrected number of buses from the PCI_REGISTRY_INFO structure.
 

Typedefs

typedef struct _PIN_INFO PIN_INFO
 
typedef struct _PIN_INFO * PPIN_INFO
 
typedef struct _SLOT_INFO SLOT_INFO
 
typedef struct _SLOT_INFO * PSLOT_INFO
 
typedef struct _PCI_IRQ_ROUTING_TABLE PCI_IRQ_ROUTING_TABLE
 
typedef struct _PCI_IRQ_ROUTING_TABLE * PPCI_IRQ_ROUTING_TABLE
 
typedef struct _PCI_REGISTRY_INFO PCI_REGISTRY_INFO
 
typedef struct _PCI_REGISTRY_INFO * PPCI_REGISTRY_INFO
 
typedef struct _PCI_CARD_DESCRIPTOR PCI_CARD_DESCRIPTOR
 
typedef struct _PCI_CARD_DESCRIPTOR * PPCI_CARD_DESCRIPTOR
 

Macro Definition Documentation

◆ PCI_ASSERT_BRIDGE_RESET

#define PCI_ASSERT_BRIDGE_RESET   0x0040

Definition at line 65 of file pci.h.

◆ PCI_ENABLE_BRIDGE_ISA

#define PCI_ENABLE_BRIDGE_ISA   0x0004

Definition at line 62 of file pci.h.

◆ PCI_ENABLE_BRIDGE_MASTER_ABORT_SERR

#define PCI_ENABLE_BRIDGE_MASTER_ABORT_SERR   0x0020

Definition at line 64 of file pci.h.

◆ PCI_ENABLE_BRIDGE_PARITY_ERROR

#define PCI_ENABLE_BRIDGE_PARITY_ERROR   0x0001

Definition at line 60 of file pci.h.

◆ PCI_ENABLE_BRIDGE_SERR

#define PCI_ENABLE_BRIDGE_SERR   0x0002

Definition at line 61 of file pci.h.

◆ PCI_ENABLE_BRIDGE_VGA

#define PCI_ENABLE_BRIDGE_VGA   0x0008

Definition at line 63 of file pci.h.

◆ PCI_ENABLE_BRIDGE_VGA_16BIT

#define PCI_ENABLE_BRIDGE_VGA_16BIT   0x0010

Definition at line 66 of file pci.h.

◆ PCI_GET_NUM_OF_BUSES

#define PCI_GET_NUM_OF_BUSES (   PciRegInfo)
Value:
((USHORT)((PciRegInfo)->NoBuses ? (PciRegInfo)->NoBuses : \
((PciRegInfo)->MajorRevision | (PciRegInfo)->MinorRevision) ? (PCI_MAX_BRIDGE_NUMBER + 1) : 0))
unsigned short USHORT
Definition: pedump.c:61
#define PCI_MAX_BRIDGE_NUMBER
Definition: iotypes.h:3615

Retrieves the corrected number of buses from the PCI_REGISTRY_INFO structure.

PCI_REGISTRY_INFO::NoBuses is a UCHAR (0-255). Thus, this member would wrap to 0 for a system having exactly the maximum number of allowed PCI buses (256). In order to distinguish this case from the one where no PCI system (and no bus) is present, verify the Major/MinorRevision values. If they are initialized (and NoBuses == 0), this means that the system actually has 256 buses.

Definition at line 127 of file pci.h.

◆ PCI_HACK_AVOID_D1D2_FOR_SLD

#define PCI_HACK_AVOID_D1D2_FOR_SLD   0x0000000000000020LL

Definition at line 16 of file pci.h.

◆ PCI_HACK_AVOID_HARDWARE_ISA_BIT

#define PCI_HACK_AVOID_HARDWARE_ISA_BIT   0x0000000001000000LL

Definition at line 35 of file pci.h.

◆ PCI_HACK_BROKEN_SUBTRACTIVE_DECODE

#define PCI_HACK_BROKEN_SUBTRACTIVE_DECODE   0x0000008000000000LL

Definition at line 50 of file pci.h.

◆ PCI_HACK_CB_SHARE_CMD_BITS

#define PCI_HACK_CB_SHARE_CMD_BITS   0x0000000000010000LL

Definition at line 27 of file pci.h.

◆ PCI_HACK_CLEAR_INT_DISABLE_FOR_MSI

#define PCI_HACK_CLEAR_INT_DISABLE_FOR_MSI   0x0000000000200000LL

Definition at line 32 of file pci.h.

◆ PCI_HACK_COMMAND_REWRITE

#define PCI_HACK_COMMAND_REWRITE   0x0000000000800000LL

Definition at line 34 of file pci.h.

◆ PCI_HACK_CRITICAL_DEVICE

#define PCI_HACK_CRITICAL_DEVICE   0x0000002000000000LL

Definition at line 48 of file pci.h.

◆ PCI_HACK_DEFAULT_CARDBUS_WINDOWS

#define PCI_HACK_DEFAULT_CARDBUS_WINDOWS   0x0000000000008000LL

Definition at line 26 of file pci.h.

◆ PCI_HACK_DISABLE_HOT_PLUG

#define PCI_HACK_DISABLE_HOT_PLUG   0x0000080000000000LL

Definition at line 54 of file pci.h.

◆ PCI_HACK_DISABLE_IDE_NATIVE_MODE

#define PCI_HACK_DISABLE_IDE_NATIVE_MODE   0x0000000800000000LL

Definition at line 46 of file pci.h.

◆ PCI_HACK_DISABLE_PM_DOWNSTREAM_PCI_BRIDGE

#define PCI_HACK_DISABLE_PM_DOWNSTREAM_PCI_BRIDGE   0x0000040000000000LL

Definition at line 53 of file pci.h.

◆ PCI_HACK_DONT_DISABLE

#define PCI_HACK_DONT_DISABLE   0x0000000000000080LL

Definition at line 18 of file pci.h.

◆ PCI_HACK_DOUBLE_DECKER

#define PCI_HACK_DOUBLE_DECKER   0x0000000000001000LL

Definition at line 23 of file pci.h.

◆ PCI_HACK_ENABLE_MSI_MAPPING

#define PCI_HACK_ENABLE_MSI_MAPPING   0x0000020000000000LL

Definition at line 52 of file pci.h.

◆ PCI_HACK_ENUM_NO_RESOURCE

#define PCI_HACK_ENUM_NO_RESOURCE   0x0000000000000010LL

Definition at line 15 of file pci.h.

◆ PCI_HACK_FAIL_QUERY_REMOVE

#define PCI_HACK_FAIL_QUERY_REMOVE   0x0000001000000000LL

Definition at line 47 of file pci.h.

◆ PCI_HACK_FAKE_CLASS_CODE

#define PCI_HACK_FAKE_CLASS_CODE   0x0000000200000000LL

Definition at line 44 of file pci.h.

◆ PCI_HACK_FORCE_BRIDGE_WINDOW_ALIGNMENT

#define PCI_HACK_FORCE_BRIDGE_WINDOW_ALIGNMENT   0x0000000002000000LL

Definition at line 36 of file pci.h.

◆ PCI_HACK_IGNORE_AER_CAPABILITY

#define PCI_HACK_IGNORE_AER_CAPABILITY   0x0000100000000000LL

Definition at line 55 of file pci.h.

◆ PCI_HACK_IGNORE_NON_STICKY_ISA

#define PCI_HACK_IGNORE_NON_STICKY_ISA   0x0000000000000400LL

Definition at line 21 of file pci.h.

◆ PCI_HACK_IGNORE_ROOT_TOPOLOGY

#define PCI_HACK_IGNORE_ROOT_TOPOLOGY   0x0000000000020000LL

Definition at line 28 of file pci.h.

◆ PCI_HACK_KEEP_DECODES_ON_STOP

#define PCI_HACK_KEEP_DECODES_ON_STOP   0x0000000000000002LL

Definition at line 12 of file pci.h.

◆ PCI_HACK_LOCK_RESOURCES

#define PCI_HACK_LOCK_RESOURCES   0x0000000000000004LL

Definition at line 13 of file pci.h.

◆ PCI_HACK_MULTIFUNCTION

#define PCI_HACK_MULTIFUNCTION   0x0000000000000100LL

Definition at line 19 of file pci.h.

◆ PCI_HACK_NEVER_DISCONNECT

#define PCI_HACK_NEVER_DISCONNECT   0x0000000000000040LL

Definition at line 17 of file pci.h.

◆ PCI_HACK_NEVER_POWER_DOWN

#define PCI_HACK_NEVER_POWER_DOWN   0x0000000040000000LL

Definition at line 41 of file pci.h.

◆ PCI_HACK_NO_ASPM_FOR_EXPRESS_LINK

#define PCI_HACK_NO_ASPM_FOR_EXPRESS_LINK   0x0000000000100000LL

Definition at line 31 of file pci.h.

◆ PCI_HACK_NO_ENUM_AT_ALL

#define PCI_HACK_NO_ENUM_AT_ALL   0x0000000000000008LL

Definition at line 14 of file pci.h.

◆ PCI_HACK_NO_EXPRESS_CAP

#define PCI_HACK_NO_EXPRESS_CAP   0x0000000000080000LL

Definition at line 30 of file pci.h.

◆ PCI_HACK_NO_PM_CAPS

#define PCI_HACK_NO_PM_CAPS   0x0000000020000000LL

Definition at line 40 of file pci.h.

◆ PCI_HACK_NO_REVISION_AFTER_D3

#define PCI_HACK_NO_REVISION_AFTER_D3   0x0000010000000000LL

Definition at line 51 of file pci.h.

◆ PCI_HACK_NO_SUBSYSTEM

#define PCI_HACK_NO_SUBSYSTEM   0x0000000000400000LL

Definition at line 33 of file pci.h.

◆ PCI_HACK_NO_SUBSYSTEM_AFTER_D3

#define PCI_HACK_NO_SUBSYSTEM_AFTER_D3   0x0000000080000000LL

Definition at line 42 of file pci.h.

◆ PCI_HACK_NOT_CRITICAL_DEVICE

#define PCI_HACK_NOT_CRITICAL_DEVICE   0x0000004000000000LL

Definition at line 49 of file pci.h.

◆ PCI_HACK_NOT_MSI_HT_CONVERTER

#define PCI_HACK_NOT_MSI_HT_CONVERTER   0x0000000004000000LL

Definition at line 37 of file pci.h.

◆ PCI_HACK_ONE_CHILD

#define PCI_HACK_ONE_CHILD   0x0000000000002000LL

Definition at line 24 of file pci.h.

◆ PCI_HACK_PCI_HACK_LINK_DISABLE_ON_SLOT_PWRDN

#define PCI_HACK_PCI_HACK_LINK_DISABLE_ON_SLOT_PWRDN   0x0000000010000000LL

Definition at line 39 of file pci.h.

◆ PCI_HACK_PCI_HACK_SBR_ON_LINK_STATE_CHANGE

#define PCI_HACK_PCI_HACK_SBR_ON_LINK_STATE_CHANGE   0x0000000008000000LL

Definition at line 38 of file pci.h.

◆ PCI_HACK_PRESERVE_COMMAND

#define PCI_HACK_PRESERVE_COMMAND   0x0000000000004000LL

Definition at line 25 of file pci.h.

◆ PCI_HACK_SUBTRACTIVE_DECODE

#define PCI_HACK_SUBTRACTIVE_DECODE   0x0000000000040000LL

Definition at line 29 of file pci.h.

◆ PCI_HACK_UNUSED_200

#define PCI_HACK_UNUSED_200   0x0000000000000200LL

Definition at line 20 of file pci.h.

◆ PCI_HACK_UNUSED_40000000

#define PCI_HACK_UNUSED_40000000   0x0000000400000000LL

Definition at line 45 of file pci.h.

◆ PCI_HACK_UNUSED_800

#define PCI_HACK_UNUSED_800   0x0000000000000800LL

Definition at line 22 of file pci.h.

◆ PCI_HACK_VIDEO_LEGACY_DECODE

#define PCI_HACK_VIDEO_LEGACY_DECODE   0x0000000100000000LL

Definition at line 43 of file pci.h.

◆ PCI_IRQ_ROUTING_TABLE_SIGNATURE

#define PCI_IRQ_ROUTING_TABLE_SIGNATURE   'RIP$'

Definition at line 87 of file pci.h.

◆ PCI_IRQ_ROUTING_TABLE_VERSION

#define PCI_IRQ_ROUTING_TABLE_VERSION   0x0100

Definition at line 88 of file pci.h.

Typedef Documentation

◆ PCI_CARD_DESCRIPTOR

◆ PCI_IRQ_ROUTING_TABLE

◆ PCI_REGISTRY_INFO

◆ PIN_INFO

◆ PPCI_CARD_DESCRIPTOR

◆ PPCI_IRQ_ROUTING_TABLE

◆ PPCI_REGISTRY_INFO

◆ PPIN_INFO

◆ PSLOT_INFO

◆ SLOT_INFO