Home | History | Annotate | Download | only in include
      1 /**
      2  * This file is part of the mingw-w64 runtime package.
      3  * No warranty is given; refer to the file DISCLAIMER within this package.
      4  */
      5 
      6 #ifndef _PCIPROP_
      7 #define _PCIPROP_
      8 
      9 #include <winapifamily.h>
     10 #include <devpropdef.h>
     11 
     12 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
     13 
     14 #define DEFINE_PCI_ROOT_BUS_DEVPKEY(_DPKNAME, _PID) DEFINE_DEVPROPKEY ((_DPKNAME), 0xd817fc28, 0x793e, 0x4b9e, 0x99, 0x70, 0x46, 0x9d, 0x8b, 0xe6, 0x30, 0x73, (_PID))
     15 #define DEFINE_PCI_DEVICE_DEVPKEY(_DPKNAME, _PID) DEFINE_DEVPROPKEY ((_DPKNAME), 0x3ab22e31, 0x8264, 0x4b4e, 0x9a, 0xf5, 0xa8, 0xd2, 0xd8, 0xe3, 0x3e, 0x62, (_PID))
     16 
     17 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_SecondaryInterface, 1);
     18 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_CurrentSpeedAndMode, 2);
     19 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_SupportedSpeedsAndModes, 3);
     20 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_DeviceIDMessagingCapable, 4);
     21 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_SecondaryBusWidth, 5);
     22 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_ExtendedConfigAvailable, 6);
     23 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_ExtendedPCIConfigOpRegionSupport, 7);
     24 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_ASPMSupport, 8);
     25 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_ClockPowerManagementSupport, 9);
     26 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_PCISegmentGroupsSupport, 10);
     27 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_MSISupport, 11);
     28 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_PCIExpressNativeHotPlugControl, 12);
     29 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_SHPCNativeHotPlugControl, 13);
     30 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_PCIExpressNativePMEControl, 14);
     31 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_PCIExpressAERControl, 15);
     32 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_PCIExpressCapabilityControl, 16);
     33 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_NativePciExpressControl, 17);
     34 DEFINE_PCI_ROOT_BUS_DEVPKEY (DEVPKEY_PciRootBus_SystemMsiSupport, 18);
     35 
     36 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_DeviceType, 1);
     37 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_CurrentSpeedAndMode, 2);
     38 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_BaseClass, 3);
     39 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_SubClass, 4);
     40 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_ProgIf, 5);
     41 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_CurrentPayloadSize, 6);
     42 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_MaxPayloadSize, 7);
     43 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_MaxReadRequestSize, 8);
     44 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_CurrentLinkSpeed, 9);
     45 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_CurrentLinkWidth, 10);
     46 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_MaxLinkSpeed, 11);
     47 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_MaxLinkWidth, 12);
     48 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_ExpressSpecVersion, 13);
     49 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_InterruptSupport, 14);
     50 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_InterruptMessageMaximum, 15);
     51 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_BarTypes, 16);
     52 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_AERCapabilityPresent, 17);
     53 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_FirmwareErrorHandling, 18);
     54 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_Uncorrectable_Error_Mask, 19);
     55 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_Uncorrectable_Error_Severity, 20);
     56 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_Correctable_Error_Mask, 21);
     57 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_ECRC_Errors, 22);
     58 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_Error_Reporting, 23);
     59 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_RootError_Reporting, 24);
     60 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_S0WakeupSupported, 25);
     61 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_SriovSupport, 26);
     62 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_Label_Id, 27);
     63 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_Label_String, 28);
     64 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_AcsSupport, 29);
     65 DEFINE_PCI_DEVICE_DEVPKEY (DEVPKEY_PciDevice_AriSupport, 30);
     66 
     67 #define DevProp_PciRootBus_SecondaryInterface_PciConventional 0
     68 #define DevProp_PciRootBus_SecondaryInterface_PciXMode1 1
     69 #define DevProp_PciRootBus_SecondaryInterface_PciXMode2 2
     70 #define DevProp_PciRootBus_SecondaryInterface_PciExpress 3
     71 
     72 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_Conventional_33Mhz 0
     73 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_Conventional_66Mhz 1
     74 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_Mode1_66Mhz 2
     75 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_Mode1_100Mhz 3
     76 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_Mode1_133Mhz 4
     77 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_Mode1_ECC_66Mhz 5
     78 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_Mode1_ECC_100Mhz 6
     79 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_Mode1_ECC_133Mhz 7
     80 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_266_Mode2_66Mhz 8
     81 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_266_Mode2_100Mhz 9
     82 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_266_Mode2_133Mhz 10
     83 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_533_Mode2_66Mhz 11
     84 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_533_Mode2_100Mhz 12
     85 #define DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_533_Mode2_133Mhz 13
     86 
     87 #define DevProp_PciRootBus_SupportedSpeedsAndModes_Pci_Conventional_33Mhz 1
     88 #define DevProp_PciRootBus_SupportedSpeedsAndModes_Pci_Conventional_66Mhz 2
     89 #define DevProp_PciRootBus_SupportedSpeedsAndModes_Pci_X_66Mhz 4
     90 #define DevProp_PciRootBus_SupportedSpeedsAndModes_Pci_X_133Mhz 8
     91 #define DevProp_PciRootBus_SupportedSpeedsAndModes_Pci_X_266Mhz 16
     92 #define DevProp_PciRootBus_SupportedSpeedsAndModes_Pci_X_533Mhz 32
     93 
     94 #define DevProp_PciRootBus_BusWidth_32Bits 0
     95 #define DevProp_PciRootBus_BusWidth_64Bits 1
     96 
     97 #define DevProp_PciDevice_DeviceType_PciConventional 0
     98 #define DevProp_PciDevice_DeviceType_PciX 1
     99 #define DevProp_PciDevice_DeviceType_PciExpressEndpoint 2
    100 #define DevProp_PciDevice_DeviceType_PciExpressLegacyEndpoint 3
    101 #define DevProp_PciDevice_DeviceType_PciExpressRootComplexIntegratedEndpoint 4
    102 #define DevProp_PciDevice_DeviceType_PciExpressTreatedAsPci 5
    103 #define DevProp_PciDevice_BridgeType_PciConventional 6
    104 #define DevProp_PciDevice_BridgeType_PciX 7
    105 #define DevProp_PciDevice_BridgeType_PciExpressRootPort 8
    106 #define DevProp_PciDevice_BridgeType_PciExpressUpstreamSwitchPort 9
    107 #define DevProp_PciDevice_BridgeType_PciExpressDownstreamSwitchPort 10
    108 #define DevProp_PciDevice_BridgeType_PciExpressToPciXBridge 11
    109 #define DevProp_PciDevice_BridgeType_PciXToExpressBridge 12
    110 #define DevProp_PciDevice_BridgeType_PciExpressTreatedAsPci 13
    111 
    112 #define DevProp_PciDevice_CurrentSpeedAndMode_Pci_Conventional_33MHz 0
    113 #define DevProp_PciDevice_CurrentSpeedAndMode_Pci_Conventional_66MHz 1
    114 
    115 #define DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode_Conventional_Pci 0x0
    116 #define DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode1_66Mhz 0x1
    117 #define DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode1_100Mhz 0x2
    118 #define DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode1_133MHZ 0x3
    119 #define DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode1_ECC_66Mhz 0x5
    120 #define DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode1_ECC_100Mhz 0x6
    121 #define DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode1_ECC_133Mhz 0x7
    122 #define DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode2_266_66MHz 0x9
    123 #define DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode2_266_100MHz 0xa
    124 #define DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode2_266_133MHz 0xb
    125 #define DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode2_533_66MHz 0xd
    126 #define DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode2_533_100MHz 0xe
    127 #define DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode2_533_133MHz 0xf
    128 
    129 #define DevProp_PciExpressDevice_PayloadOrRequestSize_128Bytes 0
    130 #define DevProp_PciExpressDevice_PayloadOrRequestSize_256Bytes 1
    131 #define DevProp_PciExpressDevice_PayloadOrRequestSize_512Bytes 2
    132 #define DevProp_PciExpressDevice_PayloadOrRequestSize_1024Bytes 3
    133 #define DevProp_PciExpressDevice_PayloadOrRequestSize_2048Bytes 4
    134 #define DevProp_PciExpressDevice_PayloadOrRequestSize_4096Bytes 5
    135 
    136 #define DevProp_PciExpressDevice_LinkSpeed_TwoAndHalf_Gbps 1
    137 #define DevProp_PciExpressDevice_LinkSpeed_Five_Gbps 2
    138 
    139 #define DevProp_PciExpressDevice_LinkWidth_By_1 1
    140 #define DevProp_PciExpressDevice_LinkWidth_By_2 2
    141 #define DevProp_PciExpressDevice_LinkWidth_By_4 4
    142 #define DevProp_PciExpressDevice_LinkWidth_By_8 8
    143 #define DevProp_PciExpressDevice_LinkWidth_By_12 12
    144 #define DevProp_PciExpressDevice_LinkWidth_By_16 16
    145 #define DevProp_PciExpressDevice_LinkWidth_By_32 32
    146 
    147 #define DevProp_PciExpressDevice_LinkSpeed_TwoAndHalf_Gbps 1
    148 
    149 #define DevProp_PciExpressDevice_Spec_Version_10 1
    150 #define DevProp_PciExpressDevice_Spec_Version_11 2
    151 
    152 #define DevProp_PciDevice_InterruptType_LineBased 1
    153 #define DevProp_PciDevice_InterruptType_Msi 2
    154 #define DevProp_PciDevice_InterruptType_MsiX 4
    155 
    156 #define DevProp_PciDevice_IoBarCount(_PD) ((_PD) & 0xff)
    157 #define DevProp_PciDevice_NonPrefetchable_MemoryBarCount(_PD) (((_PD) >> 8) & 0xff)
    158 #define DevProp_PciDevice_32BitPrefetchable_MemoryBarCount(_PD) (((_PD) >> 16) & 0xff)
    159 #define DevProp_PciDevice_64BitPrefetchable_MemoryBarCount(_PD) (((_PD) >> 24) & 0xff)
    160 
    161 #define DevProp_PciDevice_SriovSupport_Ok 0x0
    162 #define DevProp_PciDevice_SriovSupport_MissingAcs 0x1
    163 #define DevProp_PciDevice_SriovSupport_MissingPfDriver 0x2
    164 #define DevProp_PciDevice_SriovSupport_NoBusResource 0x3
    165 #define DevProp_PciDevice_SriovSupport_DidntGetVfBarSpace 0x4
    166 
    167 #define DevProp_PciDevice_AcsSupport_Present 0x0
    168 #define DevProp_PciDevice_AcsSupport_NotNeeded 0x1
    169 #define DevProp_PciDevice_AcsSupport_Missing 0x2
    170 
    171 #endif
    172 #endif
    173