+SR_PRIV int ser_name_is_hid(struct sr_serial_dev_inst *serial);
+extern SR_PRIV struct ser_lib_functions *ser_lib_funcs_hid;
+
+#ifdef HAVE_LIBHIDAPI
+struct vid_pid_item {
+ uint16_t vid, pid;
+};
+#define VID_PID_TERM ALL_ZERO
+
+struct ser_hid_chip_functions {
+ const char *chipname;
+ const char *chipdesc;
+ const struct vid_pid_item *vid_pid_items;
+ const int max_bytes_per_request;
+ int (*set_params)(struct sr_serial_dev_inst *serial,
+ int baudrate, int bits, int parity, int stopbits,
+ int flowcontrol, int rts, int dtr);
+ int (*read_bytes)(struct sr_serial_dev_inst *serial,
+ uint8_t *data, int space, unsigned int timeout);
+ int (*write_bytes)(struct sr_serial_dev_inst *serial,
+ const uint8_t *data, int space);
+ int (*flush)(struct sr_serial_dev_inst *serial);
+ int (*drain)(struct sr_serial_dev_inst *serial);
+};
+SR_PRIV const char *ser_hid_chip_find_name_vid_pid(uint16_t vid, uint16_t pid);
+#endif