13#include <libusb-1.0/libusb.h>
19#define LOOPBACK_VENDOR_ID 0x0403
20#define LOOPBACK_USB_2_PRODUCT_ID 0xff0a
21#define LOOPBACK_USB_3_PRODUCT_ID 0xff0b
23#define MAXNUMUSBPORTS 20
24#define MAXSERIALNUMLEN 20
25#define MAX_DRIVER_NAME 64
31#define USB_2_CHANGEMODE 0xB0
32#define USB_2_CHANGEMODEIN 1
33#define USB_2_CHANGEMODEOUT 2
35#define USB_2_CHANGEMODEOUTSTAT 50
36#define USB_2_INITIALISATION 0
37#define USB_2_LOOPBACK 1
38#define USB_2_BENCHMARK 2
39#define USB_2_STATISTICS 3
40#define USB_2_CHANGELEDS 4
42#define USB_2_EPLOOPOUT 0x02
43#define USB_2_EPLOOPIN 0x86
45#define USB_2_EPBENCHIN 0x88
46#define USB_2_EPBENCHOUT 0x04
47#define USB_2_EPHISTORY 0x81
52#define USB_2_FSFIFOSIZE 64
53#define USB_2_HSFIFOSIZE 512
54#define USB_2_LOOPBACKFSBUFFERSIZE 64
55#define USB_2_LOOPBACKHSBUFFERSIZE 512
57#define USB_2_BENCHMARKFSBUFFERSIZE 2048
58#define USB_2_BENCHMARKHSBUFFERSIZE 32768
59#define USB_2_BENCHMARKHISTBUFFERSIZE 64
61#define READWRITECYCLES 10
62#define BENCHMARKCYCLES 10
66#define USB_3_EPLOOPOUT 0x01
67#define USB_3_EPLOOPIN 0x81
70#define USB_3_BENCHMARK_RW_BUFFER_SIZE 24576
71#define USB_3_BENCHMARK_RW_BUFFER_COUNT 2
73#define USB_3_BENCHMARK_BUFFER_SIZE 49512
74#define USB_3_BENCHMARK_BUFFER_COUNT 2
76#define USB_3_LOOPBACK_BUFFER_SIZE 1024
77#define USB_3_LOOPBACK_BUFFER_COUNT 64
139#define USB_3_DISPLAY_DISABLE 0
140#define USB_3_DISPLAY_ENABLE (1 << 8)
142#define LPM_ENTRY_DISABLE 0
143#define LPM_ENTRY_ENABLE (1 << 8)
145#define USB_3_PHY_ERROR_DECODE_EV (1 << 0)
146#define USB_3_PHY_ERROR_EB_OVR_EV (1 << 1)
147#define USB_3_PHY_ERROR_EB_UND_EV (1 << 2)
148#define USB_3_PHY_ERROR_DISPARITY_EV (1 << 3)
149#define USB_3_RX_ERROR_CRC5_EV (1 << 5)
150#define USB_3_RX_ERROR_CRC16_EV (1 << 6)
151#define USB_3_RX_ERROR_CRC32_EV (1 << 7)
152#define USB_3_TRAINING_ERROR_EV (1 << 8)
153#define USB_3_PHY_LOCK_EV (1 << 9)
155#define USB_3_HP_TIMEOUT_EN (1 << 0)
156#define USB_3_RX_SEQ_NUM_ERR_EN (1 << 1)
157#define USB_3_RX_HP_FAIL_EN (1 << 2)
158#define USB_3_MISSING_LGOOD_EN (1 << 3)
159#define USB_3_MISSING_LCRD_EN (1 << 4)
160#define USB_3_CREDIT_HP_TIMEOUT_EN (1 << 5)
161#define USB_3_PM_LC_TIMEOUT_EN (1 << 6)
162#define USB_3_TX_SEQ_NUM_ERR_EN (1 << 7)
163#define USB_3_HDR_ADV_TIMEOUT_EN (1 << 8)
164#define USB_3_HDR_ADV_HP_EN (1 << 9)
165#define USB_3_HDR_ADV_LCRD_EN (1 << 10)
166#define USB_3_HDR_ADV_LGO_EN (1 << 11)
198int SendUSB_2_VendorCommand ( libusb_device_handle* udev,
int ReqMode,
int Parameter,
unsigned char* bufferout,
int bufferSize );
199bool ConnectUSBPlug (
bool bReconnect,
int usbPlugIndex,
USB3_SPEED Speed,
USB_3_TEST_MODE TestMode, libusb_device_handle **handle_udev,
unsigned long *MaxTransferSize,
unsigned long *CurrentTransferSize ,
unsigned char **inBuffer,
unsigned char **outBuffer);
200int GetUSBDeviceInfo ( libusb_device_handle *udev,
char* serial,
unsigned int serial_size,
char* desc,
unsigned int desc_size,
float* fwVer);
207int LoopbackTest(libusb_device_handle *handle_udev,
int usbIndex,
int maxTransferSize,
unsigned char *inBuffer,
unsigned char *outBuffer);
@ USB_3_SET_DISP_MODE
Definition PassMarkUSB.h:119
@ USB_3_CONFIG_LPM_ENTRY
Definition PassMarkUSB.h:126
@ USB_3_GET_DEVICE_INFO
Definition PassMarkUSB.h:127
@ USB_3_SET_CONFIG
Definition PassMarkUSB.h:117
@ USB_3_GET_ERROR_COUNTS
Definition PassMarkUSB.h:121
@ USB_3_GET_CONFIG
Definition PassMarkUSB.h:118
@ USB_3_GET_VOLTAGE
Definition PassMarkUSB.h:122
@ USB_3_RESET_ERROR_COUNTERS
Definition PassMarkUSB.h:125
@ USB_3_RESERVED_DONOTUSE
Definition PassMarkUSB.h:123
@ USB_3_GET_MAX_SPEED
Definition PassMarkUSB.h:124
@ USB_3_CHANGELEDS
Definition PassMarkUSB.h:116
@ USB_3_CONF_ERROR_COUNTERS
Definition PassMarkUSB.h:120
void wait_USB(int wait_time)
libusb_context * USB_context
Definition PassMarkUSB.h:192
enum _DATA_PATTERN DATA_PATTERN
enum _USB_3_EP_TYPE USB_3_EP_TYPE
USBInfo usbInfo[MAXNUMUSBPORTS+1]
Definition PassMarkUSB.h:193
enum _USB_3_TEST_MODE USB_3_TEST_MODE
_USB_3_SPEED
Definition PassMarkUSB.h:131
@ USB_3_ST_UNKNOWN
Definition PassMarkUSB.h:132
@ USB_3_ST_FS
Definition PassMarkUSB.h:133
@ USB_3_ST_HS
Definition PassMarkUSB.h:134
@ USB_3_ST_SS
Definition PassMarkUSB.h:135
struct USBInfo * USBInfoPtr
_USB_3_TEST_MODE
Definition PassMarkUSB.h:80
@ USB_3_TEST_BENCHMARK_RW
Definition PassMarkUSB.h:84
@ USB_3_TEST_LOOPBACK
Definition PassMarkUSB.h:81
@ USB_3_TEST_BENCHMARK_WRITE
Definition PassMarkUSB.h:83
@ USB_3_TEST_BENCHMARK_READ
Definition PassMarkUSB.h:82
#define MAXSERIALNUMLEN
Definition PassMarkUSB.h:24
int LoopbackTest(libusb_device_handle *handle_udev, int usbIndex, int maxTransferSize, unsigned char *inBuffer, unsigned char *outBuffer)
enum _USB_3_SPEED USB3_SPEED
int GetUSBDeviceInfo(libusb_device_handle *udev, char *serial, unsigned int serial_size, char *desc, unsigned int desc_size, float *fwVer)
_DATA_PATTERN
Definition PassMarkUSB.h:179
@ INCREMENTINGBYTE
Definition PassMarkUSB.h:180
@ CONSTANTBYTE
Definition PassMarkUSB.h:182
@ RANDOMBYTE
Definition PassMarkUSB.h:181
bool ConnectUSBPlug(bool bReconnect, int usbPlugIndex, USB3_SPEED Speed, USB_3_TEST_MODE TestMode, libusb_device_handle **handle_udev, unsigned long *MaxTransferSize, unsigned long *CurrentTransferSize, unsigned char **inBuffer, unsigned char **outBuffer)
struct _BENCHMARK_RESULTS BENCHMARK_RESULTS
_USB_3_EP_TYPE
Definition PassMarkUSB.h:88
@ USB_3_EP_ISOCHRONOUS
Definition PassMarkUSB.h:90
@ USB_3_EP_INTERRUPT
Definition PassMarkUSB.h:92
@ USB_3_EP_CONTROL
Definition PassMarkUSB.h:89
@ USB_3_EP_BULK
Definition PassMarkUSB.h:91
#define MAXNUMUSBPORTS
Definition PassMarkUSB.h:23
int SendUSB_3_VendorCommand(libusb_device_handle *udev, int wValue, unsigned char *buf, long bufflen)
int SendUSB_2_VendorCommand(libusb_device_handle *udev, int ReqMode, int Parameter, unsigned char *bufferout, int bufferSize)
Definition PassMarkUSB.h:170
int speed
Definition PassMarkUSB.h:175
int type
Definition PassMarkUSB.h:174
int bus
Definition PassMarkUSB.h:172
float fwVer
Definition PassMarkUSB.h:176
char usbSerial[MAXSERIALNUMLEN]
Definition PassMarkUSB.h:171
int port
Definition PassMarkUSB.h:173
Definition PassMarkUSB.h:186
float MaxReadSpeed
Definition PassMarkUSB.h:187
float MaxWriteSpeed
Definition PassMarkUSB.h:188
Definition PassMarkUSB.h:97
unsigned char speed
Definition PassMarkUSB.h:108
unsigned char ss_burst_len
Definition PassMarkUSB.h:102
unsigned char iso_transactions_per_bus_interval
Definition PassMarkUSB.h:105
unsigned char hs_bulk_nak_interval
Definition PassMarkUSB.h:104
unsigned short buffer_size
Definition PassMarkUSB.h:110
unsigned short iso_bytes_per_bus_interval
Definition PassMarkUSB.h:106
unsigned char polling_interval
Definition PassMarkUSB.h:103
unsigned char ep_in
Definition PassMarkUSB.h:100
unsigned char test_mode
Definition PassMarkUSB.h:98
unsigned char ep_out
Definition PassMarkUSB.h:101
unsigned char buffer_count
Definition PassMarkUSB.h:109
unsigned char ep_type
Definition PassMarkUSB.h:99