#include <IOKit/pci/IOPCIFamilyDefinitions.h>

IOKit/pci/IOPCIFamilyDefinitions.h Kernel.framework

includes: TargetConditionals.h, os/availability.h, IOKit/IOTypes.h, Kernel/libkern/OSByteOrder.h
42 macros · 18 enums · 4 typedefs

macroIOPCIDefinitions_h

#define IOPCIDefinitions_h 

macrokIOPCIMatchKey

IOPCIDevice matching property names
#define kIOPCIMatchKey "IOPCIMatch"

macrokIOPCIPrimaryMatchKey

#define kIOPCIPrimaryMatchKey "IOPCIPrimaryMatch"

macrokIOPCISecondaryMatchKey

#define kIOPCISecondaryMatchKey "IOPCISecondaryMatch"

macrokIOPCIClassMatchKey

#define kIOPCIClassMatchKey "IOPCIClassMatch"

macrokIOPCIExpressCapabilitiesKey

pci express capabilities
#define kIOPCIExpressCapabilitiesKey "IOPCIExpressCapabilities"

macrokIOPCIExpressLinkStatusKey

pci express link status
#define kIOPCIExpressLinkStatusKey "IOPCIExpressLinkStatus"

macrokIOPCIExpressLinkCapabilitiesKey

pci express link capabilities
#define kIOPCIExpressLinkCapabilitiesKey "IOPCIExpressLinkCapabilities"

macrokIOPCIExpressDeviceCapabilitiesKey

pci express device capabilities
#define kIOPCIExpressDeviceCapabilitiesKey "IOPCIExpressDeviceCapabilities"

macrokIOPCIExpressSlotStatusKey

pci express slot status
#define kIOPCIExpressSlotStatusKey "IOPCIExpressSlotStatus"

macrokIOPCIExpressSlotCapabilitiesKey

pci express slot capabilities
#define kIOPCIExpressSlotCapabilitiesKey "IOPCIExpressSlotCapabilities"

macrokIOPCIExpressRootCapabilitiesKey

pci express root capabilities
#define kIOPCIExpressRootCapabilitiesKey "IOPCIExpressRootCapabilities"

macrokIOPCIExpressDeviceCapabilities2Key

pci express device capabilities 2
#define kIOPCIExpressDeviceCapabilities2Key "IOPCIExpressDeviceCapabilities2"

macrokIOPCIExpressLinkCapabilities2Key

pci express link capabilities 2
#define kIOPCIExpressLinkCapabilities2Key "IOPCIExpressLinkCapabilities2"

macrokIOPCIExpressSlotCapabilities2Key

pci express slot capabilities 2
#define kIOPCIExpressSlotCapabilities2Key "IOPCIExpressSlotCapabilities2"

macrokIOPCIPowerManagementCapabilitiesKey

Power Management Capabilities Register
#define kIOPCIPowerManagementCapabilitiesKey "IOPCIPowerManagementCapabilities"

macrokIOPCIMSIMessageControlKey

MSI Message Control Register
#define kIOPCIMSIMessageControlKey "IOPCIMSIMessageControl"

macrokIOPCIMSIXMessageControlKey

MSI-X Message Control Register
#define kIOPCIMSIXMessageControlKey "IOPCIMSIXMessageControl"

macrokIOPCIACSCapabilitiesKey

ACS Capability Register
#define kIOPCIACSCapabilitiesKey "IOPCIACSCapabilities"

macrokIOPCIL1PMCapabilitiesKey

L1PM Substates Capabilities Register
#define kIOPCIL1PMCapabilitiesKey "IOPCIL1PMCapabilities"

macrokIOPCIAERCapabilitiesKey

AER Capabilities and Control Register
#define kIOPCIAERCapabilitiesKey "IOPCIAERCapabilities"

macrokIOPCIFPBCapabilitiesKey

FPB Capability Register
#define kIOPCIFPBCapabilitiesKey "IOPCIFPBCapabilities"

macrokIOPCIPTMCapabilitiesKey

PTM Capability Register
#define kIOPCIPTMCapabilitiesKey "IOPCIPTMCapabilities"

macrokIOPCIDeviceMemoryArrayKey

#define kIOPCIDeviceMemoryArrayKey "IODeviceMemory"

macrokIOPCIDeviceMemoryMapBase

base address of the device's memory map
#define kIOPCIDeviceMemoryMapBase "IOPCIDeviceMemoryMapBase"

macrokIOPCIDeviceMemoryMapSize

size of device memory map
#define kIOPCIDeviceMemoryMapSize "IOPCIDeviceMemoryMapSize"

macrokIOPCIDeviceMapperPageSize

mapper page size
#define kIOPCIDeviceMapperPageSize "IOPCIDeviceMapperPageSize"

macrokIOPCITunnelCompatibleKey

IOPCIDevice matching property names
#define kIOPCITunnelCompatibleKey "IOPCITunnelCompatible"

macrokIOPCITunnelledKey

#define kIOPCITunnelledKey "IOPCITunnelled"

macrokIOPCITunnelL1EnableKey

#define kIOPCITunnelL1EnableKey "IOPCITunnelL1Enable"

macrokIOPCITunnelRootDeviceModelIDKey

#define kIOPCITunnelRootDeviceModelIDKey "IOPCITunnelRootDeviceModelID"

macrokIOPCITunnelRootDeviceVendorIDKey

#define kIOPCITunnelRootDeviceVendorIDKey "IOPCITunnelRootDeviceVendorID"

macrokIOPCIPauseCompatibleKey

#define kIOPCIPauseCompatibleKey "IOPCIPauseCompatible"

macrokIOPMPCIConfigSpaceVolatileKey

Properties that can be set on the IOPCIDevice property to control PCI default config space save on sleep. If false, config space will not be save/restored on power state transitions
#define kIOPMPCIConfigSpaceVolatileKey "IOPMPCIConfigSpaceVolatile"

macrokIOPMPCISleepLinkDisableKey

property to disable express link on sleep
#define kIOPMPCISleepLinkDisableKey "IOPMPCISleepLinkDisable"

macrokIOPMPCISleepResetKey

property to issue a secondary bus reset on sleep
#define kIOPMPCISleepResetKey "IOPMPCISleepReset"

macrokIOPCIRetrainLinkMaskKey

property to provide bitmask for link train while scanning
#define kIOPCIRetrainLinkMaskKey "IOPCIRetrainLinkMask"

macrokIOPCIRetrainLinkKey

property to issue a link retrain while on wake
#define kIOPCIRetrainLinkKey "IOPCIRetrainLink"

macrokIOPCIEndpointPrsnt

property to check if endpoint is present on bridge
#define kIOPCIEndpointPrsnt "IOPCIEndpointPrsnt"

macrokIOPCIWaitForLinkUpKey

property to change the wait time for link up from spec default
#define kIOPCIWaitForLinkUpKey "wait-for-link-up"

macrokIOPCIDeviceCrashResetType

property to override the dext crash reset type
#define kIOPCIDeviceCrashResetType "IOPCIDeviceCrashResetType"

macrokIOPCIKernelMemoryAccess

property to route driverkit memory accesses through the kernel
#define kIOPCIKernelMemoryAccess "IOPCIKernelMemoryAccess"

enum(anonymous)

bits getInterruptType result
underlying type unsigned int
kIOInterruptTypePCIMessaged65536
kIOInterruptTypePCIMessagedX131072

enum(anonymous)

Definitions of PCI Config Registers
underlying type unsigned int
kIOPCIConfigurationOffsetVendorID0
kIOPCIConfigurationOffsetDeviceID2
kIOPCIConfigurationOffsetCommand4
kIOPCIConfigurationOffsetStatus6
kIOPCIConfigurationOffsetRevisionID8
kIOPCIConfigurationOffsetClassCode9
kIOPCIConfigurationOffsetCacheLineSize12
kIOPCIConfigurationOffsetLatencyTimer13
kIOPCIConfigurationOffsetHeaderType14
kIOPCIConfigurationOffsetBIST15
kIOPCIConfigurationOffsetBaseAddress016
kIOPCIConfigurationOffsetBaseAddress120
kIOPCIConfigurationOffsetBaseAddress224
kIOPCIConfigurationOffsetBaseAddress328
kIOPCIConfigurationOffsetBaseAddress432
kIOPCIConfigurationOffsetBaseAddress536
kIOPCIConfigurationOffsetCardBusCISPtr40
kIOPCIConfigurationOffsetSubSystemVendorID44
kIOPCIConfigurationOffsetSubSystemID46
kIOPCIConfigurationOffsetExpansionROMBase48
kIOPCIConfigurationOffsetCapabilitiesPtr52
kIOPCIConfigurationOffsetInterruptLine60
kIOPCIConfigurationOffsetInterruptPin61
kIOPCIConfigurationOffsetMinimumGrant62
kIOPCIConfigurationOffsetMaximumLatency63

enum(anonymous)

Definitions of Capabilities PCI Config Register
underlying type unsigned int
kIOPCICapabilityIDOffset0
kIOPCINextCapabilityOffset1
kIOPCICapabilityIDPowerManagement1
kIOPCICapabilityIDAGP2
kIOPCICapabilityIDVitalProductData3
kIOPCICapabilityIDSlotID4
kIOPCICapabilityIDMSI5
kIOPCICapabilityIDCPCIHotswap6
kIOPCICapabilityIDPCIX7
kIOPCICapabilityIDLDT8
kIOPCICapabilityIDVendorSpecific9
kIOPCICapabilityIDDebugPort10
kIOPCICapabilityIDCPCIResourceControl11
kIOPCICapabilityIDHotplug12
kIOPCICapabilityIDAGP814
kIOPCICapabilityIDSecure15
kIOPCICapabilityIDPCIExpress16
kIOPCICapabilityIDMSIX17
kIOPCICapabilityIDSATAConfiguration18
kIOPCICapabilityIDAF19
kIOPCICapabilityIDEnhancedAllocation20
kIOPCICapabilityIDFPB21
kIOPCIExpressCapabilityIDErrorReporting4294967295
kIOPCIExpressCapabilityIDVirtualChannel4294967294
kIOPCIExpressCapabilityIDDeviceSerialNumber4294967293
kIOPCIExpressCapabilityIDPowerBudget4294967292
kIOPCIExpressCapabilityIDRCLinkDeclaration4294967291
kIOPCIExpressCapabilityIDRCInternalLinkCtrl4294967290
kIOPCIExpressCapabilityIDRCECEndpointAssociation4294967289
kIOPCIExpressCapabilityIDMFVC4294967288
kIOPCIExpressCapabilityIDVC_MFVCPresent4294967287
kIOPCIExpressCapabilityIDRootComplexRegBlock4294967286
kIOPCIExpressCapabilityIDVSEC4294967285
kIOPCIExpressCapabilityIDCAC4294967284
kIOPCIExpressCapabilityIDAccessControlServices4294967283
kIOPCIExpressCapabilityIDAlternativeRoutingID4294967282
kIOPCIExpressCapabilityIDATS4294967281
kIOPCIExpressCapabilityIDSRIOV4294967280
kIOPCIExpressCapabilityIDMRIOV4294967279
kIOPCIExpressCapabilityIDMulticast4294967278
kIOPCIExpressCapabilityIDPRI4294967277
kIOPCIExpressCapabilityIDAMD4294967276
kIOPCIExpressCapabilityIDResizableBAR4294967275
kIOPCIExpressCapabilityIDDPA4294967274
kIOPCIExpressCapabilityIDTPHRequester4294967273
kIOPCIExpressCapabilityIDLatencyTolerenceReporting4294967272
kIOPCIExpressCapabilityIDSPCIe4294967271
kIOPCIExpressCapabilityIDPMUX4294967270
kIOPCIExpressCapabilityIDPASID4294967269
kIOPCIExpressCapabilityIDLNR4294967268
kIOPCIExpressCapabilityIDDPC4294967267
kIOPCIExpressCapabilityIDL1PMSubstates4294967266
kIOPCIExpressCapabilityIDPrecisionTimeManagement4294967265
kIOPCIExpressCapabilityIDMPCIe4294967264
kIOPCIExpressCapabilityIDFRSQueueing4294967263
kIOPCIExpressCapabilityIDReadinessTimeReporting4294967262
kIOPCIExpressCapabilityIDDVSEC4294967261
kIOPCIExpressCapabilityIDVFResizableBAR4294967260
kIOPCIExpressCapabilityIDDataLinkFeature4294967259
kIOPCIExpressCapabilityIDPL16GTs4294967258
kIOPCIExpressCapabilityIDLaneMarginingRx4294967257
kIOPCIExpressCapabilityIDHierarchyID4294967256
kIOPCIExpressCapabilityIDNPEM4294967255
kIOPCIExpressCapabilityIDPL32GTs4294967254
kIOPCIExpressCapabilityIDAlternateProtocol4294967253
kIOPCIExpressCapabilityIDSFI4294967252

enum(anonymous)

Command register definitions
underlying type unsigned int
kIOPCICommandIOSpace1
kIOPCICommandMemorySpace2
kIOPCICommandBusLead4
kIOPCICommandBusMaster4
kIOPCICommandSpecialCycles8
kIOPCICommandMemWrInvalidate16
kIOPCICommandPaletteSnoop32
kIOPCICommandParityError64
kIOPCICommandAddressStepping128
kIOPCICommandSERR256
kIOPCICommandFastBack2Back512
kIOPCICommandInterruptDisable1024

enum(anonymous)

Status register definitions
underlying type unsigned int
kIOPCIStatusInterrupt8
kIOPCIStatusCapabilities16
kIOPCIStatusPCI6632
kIOPCIStatusUDF64
kIOPCIStatusFastBack2Back128
kIOPCIStatusDevSel00
kIOPCIStatusDevSel1512
kIOPCIStatusDevSel21024
kIOPCIStatusDevSel31536
kIOPCIStatusTargetAbortCapable2048
kIOPCIStatusTargetAbortActive4096
kIOPCIStatusLeadAbortActive8192
kIOPCIStatusMasterAbortActive8192
kIOPCIStatusSERRActive16384
kIOPCIStatusParityErrActive32768

enum(anonymous)

underlying type unsigned int
kPCI2PCIOffsetPrimaryBus24
kPCI2PCIOffsetSecondaryBus25
kPCI2PCIOffsetSubordinateBus26
kPCI2PCIOffsetSecondaryLT27
kPCI2PCIOffsetIORange28
kPCI2PCIOffsetMemoryRange32
kPCI2PCIOffsetPrefetchMemoryRange36
kPCI2PCIOffsetPrefetchUpperBase40
kPCI2PCIOffsetPrefetchUpperLimit44
kPCI2PCIOffsetUpperIORange48
kPCI2PCIOffsetBridgeControl62

enum(anonymous)

constants which are part of the PCI Bus Power Management Spec.
underlying type unsigned int
kPCIPMCPMESupportFromD3Cold32768capabilities bits in the 16 bit capabilities register
kPCIPMCPMESupportFromD3Hot16384
kPCIPMCPMESupportFromD28192
kPCIPMCPMESupportFromD14096
kPCIPMCPMESupportFromD02048
kPCIPMCD2Support1024
kPCIPMCD1Support512
kPCIPMCD3Support1

enum(anonymous)

underlying type unsigned int
kPCIPMCSPMEStatus32768bits in the power management control/status register
kPCIPMCSPMEEnable256
kPCIPMCSPowerStateMask3
kPCIPMCSPowerStateD33
kPCIPMCSPowerStateD22
kPCIPMCSPowerStateD11
kPCIPMCSPowerStateD00
kPCIPMCSDefaultEnableBits4294967295
kPCIPMCSPMEDisableInS365536
kPCIPMCSPMEWakeReason131072

enum(anonymous)

underlying type unsigned int
kIOPCISlotCapabilitiesBitAttentionButtonPresent1
kIOPCISlotCapabilitiesBitPowerControllerPresent2
kIOPCISlotCapabilitiesBitMRLSensorPresent4
kIOPCISlotCapabilitiesBitAttentionIndicatorPresent8
kIOPCISlotCapabilitiesBitPowerIndicatorPresent16
kIOPCISlotCapabilitiesBitHotPlugSurprise32
kIOPCISlotCapabilitiesBitHotPlugCapable64
kIOPCISlotCapabilitiesBitElectromechanicalInterlockPresent131072
kIOPCISlotCapabilitiesBitNoCommandCompletedSupport262144

enum(anonymous)

underlying type unsigned int
kIOPCISlotStatusAttentionButtonPressed1
kIOPCISlotStatusPowerFaultDetected2
kIOPCISlotStatusMRLSensorChanged4
kIOPCISlotStatusPresenceDetectChanged8
kIOPCISlotStatusCommandCompleted16
kIOPCISlotStatusMRLSensorState32
kIOPCISlotStatusPresenceDetectState64
kIOPCISlotStatusElectromechanicalInterlockState128
kIOPCISlotStatusDataLinkLayerStateChanged256

enum(anonymous)

PCIe error bits
underlying type unsigned int
kIOPCIAERCapCapHeaderOffset0
kIOPCIAERCapUncErrStatusOffset4
kIOPCIAERCapUncErrMaskOffset8
kIOPCIAERCapUncErrSeverityOffset12
kIOPCIAERCapCorErrStatusOffset16
kIOPCIAERCapCorErrMaskOffset20
kIOPCIAERCapCapControlOffset24
kIOPCIAERCapHdrLogDW0Offset28
kIOPCIAERCapHdrLogDW1Offset32
kIOPCIAERCapHdrLogDW2Offset36
kIOPCIAERCapHdrLogDW3Offset40
kIOPCIAERCapRootErrCmdOffset44
kIOPCIAERCapRootErrStatusOffset48
kIOPCIAERCapErrSourceIDOffset52
kIOPCIAERCapTLPPrefixLogDW0Offset56
kIOPCIAERCapTLPPrefixLogDW1Offset60
kIOPCIAERCapTLPPrefixLogDW2Offset64
kIOPCIAERCapTLPPrefixLogDW3Offset68

enum(anonymous)

underlying type unsigned int
kIOPCIUncorrectableErrorBitDataLinkProtocol4
kIOPCIUncorrectableErrorBitSurpriseDown5
kIOPCIUncorrectableErrorBitPoisonedTLP12
kIOPCIUncorrectableErrorBitFlowControlProtocol13
kIOPCIUncorrectableErrorBitCompletionTimeout14
kIOPCIUncorrectableErrorBitCompleterAbort15
kIOPCIUncorrectableErrorBitUnexpectedCompletion16
kIOPCIUncorrectableErrorBitReceiverOverflow17
kIOPCIUncorrectableErrorBitMalformedTLP18
kIOPCIUncorrectableErrorBitECRC19
kIOPCIUncorrectableErrorBitUnsupportedRequest20
kIOPCIUncorrectableErrorBitACSViolation21
kIOPCIUncorrectableErrorBitInternal22
kIOPCIUncorrectableErrorBitMCBlockedTLP23
kIOPCIUncorrectableErrorBitAtomicOpEgressBlocked24
kIOPCIUncorrectableErrorBitTLPPrefixBlocked25

enum(anonymous)

underlying type unsigned int
kIOPCICorrectableErrorBitReceiver0
kIOPCICorrectableErrorBitBadTLP6
kIOPCICorrectableErrorBitBadDLLP7
kIOPCICorrectableErrorBitReplayNumRollover8
kIOPCICorrectableErrorBitReplayTimerTimeout12
kIOPCICorrectableErrorBitAdvisoryNonFatal13
kIOPCICorrectableErrorBitCorrectedInternal14
kIOPCICorrectableErrorBitHeaderLogOverflow15

enumtIOPCILinkSpeed

underlying type unsigned int
kIOPCILinkSpeed_2_5_GTs1Gen 1
kIOPCILinkSpeed_5_GTs2Gen 2
kIOPCILinkSpeed_8_GTs3Gen 3
kIOPCILinkSpeed_16_GTs4Gen 4
kIOPCILinkSpeed_32_GTs5Gen 5

typedeftIOPCILinkSpeed

typedef enum tIOPCILinkSpeed tIOPCILinkSpeed;

enumtIOPCIDeviceResetTypes

@enum tIOPCIDeviceResetTypes @constant kIOPCIDeviceResetTypeHotReset Issues a hot reset to the device without power being removed from the device. This will issue a hot reset from its upstream bridge by setting the secondary bus reset bit in the bridge's control register. @constant kIOPCIDeviceResetTypeWarmReset Issues a warm reset to the device without power being removed from the device, if a platform specific function exists. @constant kIOPCIDeviceResetTypeWarmResetDisable Performs the first half of a warm reset (e.g. assert PERST#), if a platform specific function exists. Upon completion, the device is unusable until the caller requests reset with type kIOPCIDeviceResetTypeWarmResetEnable. This type facilitates the generation of a cold reset, i.e. by removing power before using kIOPCIDeviceResetTypeWarmResetDisable and re-applying it before using kIOPCIDeviceResetTypeWarmResetEnable. @constant kIOPCIDeviceResetTypeWarmResetEnable Completes the warm reset operation initiated with type kIOPCIDeviceResetTypeWarmResetDisable (e.g. deassert PERST#). See kIOPCIDeviceResetTypeWarmResetDisable for more details. @constant kIOPCIDeviceResetTypeFunctionReset Issues a function-level reset, if supported.
underlying type unsigned int
kIOPCIDeviceResetTypeHotReset1
kIOPCIDeviceResetTypeWarmReset2
kIOPCIDeviceResetTypeWarmResetDisable4
kIOPCIDeviceResetTypeWarmResetEnable8
kIOPCIDeviceResetTypeFunctionReset16

typedeftIOPCIDeviceResetTypes

typedef enum tIOPCIDeviceResetTypes tIOPCIDeviceResetTypes;

enumtIOPCIDeviceResetOptions

@enum tIOPCIDeviceResetOptions @constant kIOPCIDeviceResetOptionNone No options selected @constant kIOPCIDeviceResetOptionTerminate Terminate the IOPCIDevice(s) that were reset and re-probe the bus. This will stop any attached client drivers. Devices with reset-initiated personality changes should use this option. This option causes the reset function to initiate the asynchronous termination process, but not block on its completion.
underlying type unsigned int
kIOPCIDeviceResetOptionNone0
kIOPCIDeviceResetOptionTerminate1

typedeftIOPCIDeviceResetOptions

typedef enum tIOPCIDeviceResetOptions tIOPCIDeviceResetOptions;

enumtIOPCILinkControlASPMBits

underlying type unsigned int
kIOPCILinkControlASPMBitsDisabled0
kIOPCILinkControlASPMBitsL0s1
kIOPCILinkControlASPMBitsL12
kIOPCILinkControlASPMBitsL0sL13

enumtIOPCIAccessOptions

@enum tIOPCIAccessOptions @brief Options passed to memory space accessor functions @constant kIOPCIAccessLatencyTolerantHint Hint to host software that this PCIe access is not in a performance critical section, and host software is permitted to offload the access to a DMA engine in order to free the CPU for other work to optimize overall system performance. Use of this hint may increase the latency of the memory space accessor function.
underlying type unsigned int
kIOPCIAccessLatencyTolerantHint1

typedeftIOPCIAccessOptions

typedef enum tIOPCIAccessOptions tIOPCIAccessOptions;