60 #if !defined(PLX_MSWINDOWS)
61 #define RtlZeroMemory(pDest, count) memset((pDest), 0, (count))
62 #define RtlCopyMemory(pDest, pSrc, count) memcpy((pDest), (pSrc), (count))
63 #define RtlFillMemory(pDest, count, value) memset((pDest), (value), (count))
67 #define PLX_PTR_TO_INT( ptr ) ((PLX_UINT_PTR)(ptr))
70 #define PLX_INT_TO_PTR( int ) ((VOID*)(PLX_UINT_PTR)(int))
73 #if defined(PLX_BIG_ENDIAN)
74 #define PLX_LE_DATA_32(value) EndianSwap32( (value) )
75 #define PLX_BE_DATA_32(value) (value)
77 #define PLX_LE_DATA_32(value) (value)
78 #define PLX_BE_DATA_32(value) EndianSwap32( (value) )
82 #if (PLX_SIZE_64 == 4)
83 #define PLX_64_HIGH_32(value) 0
84 #define PLX_64_LOW_32(value) ((U32)(value))
86 #if defined(PLX_BIG_ENDIAN)
87 #define PLX_64_HIGH_32(value) ((U32)((U64)value))
88 #define PLX_64_LOW_32(value) ((U32)(((U64)value) >> 32))
90 #define PLX_CAST_64_TO_8_PTR( ptr64 ) (U8*) ((U8*)(ptr64) + (7*sizeof(U8)))
91 #define PLX_CAST_64_TO_16_PTR( ptr64 ) (U16*)((U8*)(ptr64) + (6*sizeof(U8)))
92 #define PLX_CAST_64_TO_32_PTR( ptr64 ) (U32*)((U8*)(ptr64) + sizeof(U32))
94 #define PLX_LE_U32_BIT( pos ) ((U32)(1 << (31 - (pos))))
96 #define PLX_64_HIGH_32(value) ((U32)(((U64)value) >> 32))
97 #define PLX_64_LOW_32(value) ((U32)((U64)value))
99 #define PLX_CAST_64_TO_8_PTR( ptr64 ) (U8*) (ptr64)
100 #define PLX_CAST_64_TO_16_PTR( ptr64 ) (U16*)(ptr64)
101 #define PLX_CAST_64_TO_32_PTR( ptr64 ) (U32*)(ptr64)
103 #define PLX_LE_U32_BIT( pos ) ((U32)(1 << (pos)))
117 #if (!defined(PLX_MSWINDOWS)) || defined(PLX_VXD_DRIVER)
118 #if !defined(BOOLEAN) && !defined(__ACTYPES_H__)
123 #if !defined(PLX_MSWINDOWS)
130 #define NULL ((VOID *) 0x0)
141 #if defined(PLX_MSWINDOWS)
142 #define PLX_TIMEOUT_INFINITE INFINITE
143 #elif defined(PLX_LINUX) || defined(PLX_LINUX_DRIVER)
144 #define PLX_TIMEOUT_INFINITE MAX_SCHEDULE_TIMEOUT
158 #define Plx_ms_to_jiffies( ms ) ( ((ms) * HZ) / 1000 )
159 #define Plx_jiffies_to_ms( jiff ) ( ((jiff) * 1000) / HZ )
170 typedef enum _PLX_API_MODE
173 PLX_API_MODE_I2C_AARDVARK,
179 typedef enum _PLX_ACCESS_TYPE
189 typedef enum _PLX_CHIP_FAMILY
193 PLX_FAMILY_BRIDGE_P2L,
194 PLX_FAMILY_BRIDGE_PCI_P2P,
195 PLX_FAMILY_BRIDGE_PCIE_P2P,
197 PLX_FAMILY_ALTAIR_XL,
199 PLX_FAMILY_VEGA_LITE,
207 PLX_FAMILY_CAPELLA_1,
213 typedef enum _PLX_FLAG_PORT
215 PLX_FLAG_PORT_NT_LINK_1 = 63,
216 PLX_FLAG_PORT_NT_LINK_0 = 62,
217 PLX_FLAG_PORT_NT_VIRTUAL_1 = 61,
218 PLX_FLAG_PORT_NT_VIRTUAL_0 = 60,
219 PLX_FLAG_PORT_NT_DS_P2P = 59,
220 PLX_FLAG_PORT_DMA_RAM = 58,
221 PLX_FLAG_PORT_DMA_3 = 57,
222 PLX_FLAG_PORT_DMA_2 = 56,
223 PLX_FLAG_PORT_DMA_1 = 55,
224 PLX_FLAG_PORT_DMA_0 = 54,
225 PLX_FLAG_PORT_PCIE_TO_USB = 53,
226 PLX_FLAG_PORT_USB = 52,
227 PLX_FLAG_PORT_ALUT_3 = 51,
228 PLX_FLAG_PORT_ALUT_2 = 50,
229 PLX_FLAG_PORT_ALUT_1 = 49,
230 PLX_FLAG_PORT_ALUT_0 = 48,
231 PLX_FLAG_PORT_VS_REGS_S5 = 47,
232 PLX_FLAG_PORT_VS_REGS_S4 = 46,
233 PLX_FLAG_PORT_VS_REGS_S3 = 45,
234 PLX_FLAG_PORT_VS_REGS_S2 = 44,
235 PLX_FLAG_PORT_VS_REGS_S1 = 43,
236 PLX_FLAG_PORT_VS_REGS_S0 = 42,
237 PLX_FLAG_PORT_MAX = 41
242 typedef enum _PLX_STATE
249 PLX_STATE_UNINITIALIZED,
250 PLX_STATE_INITIALIZING,
251 PLX_STATE_INITIALIZED,
260 PLX_STATE_MARKED_FOR_DELETE,
261 PLX_STATE_OK_TO_DELETE,
266 PLX_STATE_REQUESTING,
271 PLX_STATE_COMPLETING,
273 PLX_STATE_CONNECTING,
275 PLX_STATE_DISCONNECTING,
276 PLX_STATE_DISCONNECTED
281 typedef enum _PLX_BAR_FLAG
283 PLX_BAR_FLAG_MEM = (1 << 0),
284 PLX_BAR_FLAG_IO = (1 << 1),
285 PLX_BAR_FLAG_BELOW_1MB = (1 << 2),
286 PLX_BAR_FLAG_32_BIT = (1 << 3),
287 PLX_BAR_FLAG_64_BIT = (1 << 4),
288 PLX_BAR_FLAG_PREFETCHABLE = (1 << 5),
289 PLX_BAR_FLAG_UPPER_32 = (1 << 6),
290 PLX_BAR_FLAG_PROBED = (1 << 7)
295 typedef enum _PLX_EEPROM_STATUS
297 PLX_EEPROM_STATUS_NONE = 0,
298 PLX_EEPROM_STATUS_VALID = 1,
299 PLX_EEPROM_STATUS_INVALID_DATA = 2,
300 PLX_EEPROM_STATUS_BLANK = PLX_EEPROM_STATUS_INVALID_DATA,
301 PLX_EEPROM_STATUS_CRC_ERROR = PLX_EEPROM_STATUS_INVALID_DATA
306 typedef enum _PLX_EEPROM_PORT
308 PLX_EEPROM_PORT_NONE = 0,
309 PLX_EEPROM_PORT_NT_VIRT_0 = 254,
310 PLX_EEPROM_PORT_NT_LINK_0 = 253,
311 PLX_EEPROM_PORT_NT_VIRT_1 = 252,
312 PLX_EEPROM_PORT_NT_LINK_1 = 251,
313 PLX_EEPROM_PORT_DMA_0 = 250,
314 PLX_EEPROM_PORT_DMA_1 = 249,
315 PLX_EEPROM_PORT_DMA_2 = 248,
316 PLX_EEPROM_PORT_DMA_3 = 247,
317 PLX_EEPROM_PORT_SHARED_MEM = 246
322 typedef enum _PLX_CRC_STATUS
326 PLX_CRC_UNSUPPORTED = 2,
332 typedef enum _PLX_LINK_SPEED
334 PLX_LINK_SPEED_2_5_GBPS = 1,
335 PLX_LINK_SPEED_5_0_GBPS = 2,
336 PLX_LINK_SPEED_8_0_GBPS = 3,
337 PLX_PCIE_GEN_1_0 = PLX_LINK_SPEED_2_5_GBPS,
338 PLX_PCIE_GEN_2_0 = PLX_LINK_SPEED_5_0_GBPS,
339 PLX_PCIE_GEN_3_0 = PLX_LINK_SPEED_8_0_GBPS
344 typedef enum _PLX_IRQ_TYPE
346 PLX_IRQ_TYPE_NONE = 0,
347 PLX_IRQ_TYPE_UNKNOWN = 1,
348 PLX_IRQ_TYPE_INTX = 2,
349 PLX_IRQ_TYPE_MSI = 3,
350 PLX_IRQ_TYPE_MSIX = 4
355 typedef enum _PLX_PORT_TYPE
357 PLX_PORT_UNKNOWN = 0xFF,
358 PLX_PORT_ENDPOINT = 0,
359 PLX_PORT_LEGACY_ENDPOINT = 1,
360 PLX_PORT_ROOT_PORT = 4,
361 PLX_PORT_UPSTREAM = 5,
362 PLX_PORT_DOWNSTREAM = 6,
363 PLX_PORT_PCIE_TO_PCI_BRIDGE = 7,
364 PLX_PORT_PCI_TO_PCIE_BRIDGE = 8,
365 PLX_PORT_ROOT_ENDPOINT = 9,
366 PLX_PORT_ROOT_EVENT_COLL = 10
371 typedef enum _PLX_NT_PORT_TYPE
373 PLX_NT_PORT_NONE = 0,
374 PLX_NT_PORT_PRIMARY = 1,
375 PLX_NT_PORT_SECONDARY = 2,
376 PLX_NT_PORT_VIRTUAL = PLX_NT_PORT_PRIMARY,
377 PLX_NT_PORT_LINK = PLX_NT_PORT_SECONDARY,
378 PLX_NT_PORT_UNKOWN = 0xFF
383 typedef enum _PLX_NT_CONFIG_TYPE
385 PLX_NT_CONFIG_TYPE_NONE = 0,
386 PLX_NT_CONFIG_TYPE_LINK_DOWN,
387 PLX_NT_CONFIG_TYPE_STANDARD,
388 PLX_NT_CONFIG_TYPE_BACK_TO_BACK
389 } PLX_NT_CONFIG_TYPE;
393 typedef enum _PLX_NT_LUT_FLAG
395 PLX_NT_LUT_FLAG_NONE = 0,
396 PLX_NT_LUT_FLAG_NO_SNOOP = (1 << 0),
397 PLX_NT_LUT_FLAG_READ = (1 << 1),
398 PLX_NT_LUT_FLAG_WRITE = (1 << 2)
403 typedef enum _PLX_DMA_COMMAND
413 typedef enum _PLX_DMA_DIR
415 PLX_DMA_PCI_TO_LOC = 0,
416 PLX_DMA_LOC_TO_PCI = 1,
417 PLX_DMA_USER_TO_PCI = PLX_DMA_PCI_TO_LOC,
418 PLX_DMA_PCI_TO_USER = PLX_DMA_LOC_TO_PCI
423 typedef enum _PLX_DMA_DESCR_MODE
425 PLX_DMA_MODE_BLOCK = 0,
426 PLX_DMA_MODE_SGL = 1,
427 PLX_DMA_MODE_SGL_INTERNAL = 2
428 } PLX_DMA_DESCR_MODE;
432 typedef enum _PLX_DMA_RING_DELAY_TIME
434 PLX_DMA_RING_DELAY_0 = 0,
435 PLX_DMA_RING_DELAY_1us = 1,
436 PLX_DMA_RING_DELAY_2us = 2,
437 PLX_DMA_RING_DELAY_8us = 3,
438 PLX_DMA_RING_DELAY_32us = 4,
439 PLX_DMA_RING_DELAY_128us = 5,
440 PLX_DMA_RING_DELAY_512us = 6,
441 PLX_DMA_RING_DELAY_1ms = 7
442 } PLX_DMA_RING_DELAY_TIME;
446 typedef enum _PLX_DMA_MAX_SRC_TSIZE
448 PLX_DMA_MAX_SRC_TSIZE_64B = 0,
449 PLX_DMA_MAX_SRC_TSIZE_128B = 1,
450 PLX_DMA_MAX_SRC_TSIZE_256B = 2,
451 PLX_DMA_MAX_SRC_TSIZE_512B = 3,
452 PLX_DMA_MAX_SRC_TSIZE_1K = 4,
453 PLX_DMA_MAX_SRC_TSIZE_2K = 5,
454 PLX_DMA_MAX_SRC_TSIZE_4K = 7
455 } PLX_DMA_SRC_MAX_TSIZE;
459 typedef enum _PLX_PERF_CMD
467 typedef enum _PLX_SWITCH_MODE
469 PLX_SWITCH_MODE_STANDARD = 0,
470 PLX_SWITCH_MODE_MULTI_HOST = 2
475 #if !defined(PLX_MSWINDOWS)
476 typedef enum _DEVICE_POWER_STATE
478 PowerDeviceUnspecified = 0,
484 } DEVICE_POWER_STATE;
511 PLX_API_MODE ApiMode;
573 U16 MaxPayloadSupported;
583 U8 VS_UpstreamPortNum[8];
584 U32 VS_DownstreamPorts[8];
586 U8 bMgmtPortActiveEn;
587 U8 MgmtPortNumActive;
588 U8 bMgmtPortRedundantEn;
589 U8 MgmtPortNumRedundant;
647 PLX_DRIVER_HANDLE hDevice;
675 U8 DmaImmedStopDone :4;
676 U8 DmaInvalidDescr :4;
679 U8 MuOutboundPost :1;
680 U8 MuOutboundOverflow :1;
681 U8 TargetRetryAbort :1;
688 U8 NTV_LE_Correctable :1;
689 U8 NTV_LE_Uncorrectable :1;
690 U8 NTV_LE_LinkStateChange :1;
691 U8 NTV_LE_UncorrErrorMsg :1;
692 U8 HotPlugAttention :1;
693 U8 HotPlugPowerFault :1;
694 U8 HotPlugMrlSensor :1;
695 U8 HotPlugChangeDetect :1;
696 U8 HotPlugCmdCompleted :1;
704 U8 CplStatusWriteBack :1;
705 U8 DescriptorMode :2;
706 U8 DescriptorPollMode :1;
708 U8 RingWrapDelayTime :3;
709 U8 RelOrderDescrRead :1;
710 U8 RelOrderDescrWrite :1;
711 U8 RelOrderDataReadReq :1;
712 U8 RelOrderDataWrite :1;
713 U8 NoSnoopDescrRead :1;
714 U8 NoSnoopDescrWrite :1;
715 U8 NoSnoopDataReadReq :1;
716 U8 NoSnoopDataWrite :1;
717 U8 MaxSrcXferSize :3;
718 U8 MaxDestWriteSize :3;
720 U8 MaxPendingReadReq :6;
721 U8 DescriptorPollTime;
722 U8 MaxDescriptorFetch;
723 U16 ReadReqDelayClocks;
732 U8 ConstAddrLocal :1;
733 U8 WriteInvalidMode :1;
736 U8 FastTerminateMode :1;
737 U8 ClearCountMode :1;
738 U8 DualAddressMode :1;
741 U8 ValidStopControl :1;
758 U8 bConstAddrDest :1;
760 U8 bIgnoreBlockInt :1;
777 U32 IngressPostedHeader;
779 U32 IngressNonpostedDW;
780 U32 IngressCplHeader;
786 U32 EgressPostedHeader;
788 U32 EgressNonpostedDW;
797 U32 Prev_IngressPostedHeader;
798 U32 Prev_IngressPostedDW;
799 U32 Prev_IngressNonpostedDW;
800 U32 Prev_IngressCplHeader;
801 U32 Prev_IngressCplDW;
802 U32 Prev_IngressDllp;
806 U32 Prev_EgressPostedHeader;
807 U32 Prev_EgressPostedDW;
808 U32 Prev_EgressNonpostedDW;
809 U32 Prev_EgressCplHeader;
810 U32 Prev_EgressCplDW;
819 S64 IngressTotalBytes;
820 long double IngressTotalByteRate;
821 S64 IngressCplAvgPerReadReq;
822 S64 IngressCplAvgBytesPerTlp;
823 S64 IngressPayloadReadBytes;
824 S64 IngressPayloadReadBytesAvg;
825 S64 IngressPayloadWriteBytes;
826 S64 IngressPayloadWriteBytesAvg;
827 S64 IngressPayloadTotalBytes;
828 double IngressPayloadAvgPerTlp;
829 long double IngressPayloadByteRate;
830 long double IngressLinkUtilization;
832 S64 EgressTotalBytes;
833 long double EgressTotalByteRate;
834 S64 EgressCplAvgPerReadReq;
835 S64 EgressCplAvgBytesPerTlp;
836 S64 EgressPayloadReadBytes;
837 S64 EgressPayloadReadBytesAvg;
838 S64 EgressPayloadWriteBytes;
839 S64 EgressPayloadWriteBytesAvg;
840 S64 EgressPayloadTotalBytes;
841 double EgressPayloadAvgPerTlp;
842 long double EgressPayloadByteRate;
843 long double EgressLinkUtilization;
Definition: PlxTypes.h:657
Definition: PlxTypes.h:579
Definition: PlxTypes.h:604
Definition: PlxTypes.h:817
Definition: PlxTypes.h:594
Definition: PlxTypes.h:666
Definition: PlxTypes.h:701
Definition: PlxTypes.h:531
Definition: PlxTypes.h:765
Definition: PlxTypes.h:748
Definition: PlxTypes.h:541
Definition: PlxTypes.h:643
Definition: PlxTypes.h:489
Definition: PlxTypes.h:616
Definition: PlxTypes.h:553
Definition: PlxTypes.h:563
Definition: PlxTypes.h:509