+SR_PRIV int kecheng_kc_330b_log_info_get(const struct sr_dev_inst *sdi,
+ unsigned char *buf)
+{
+ struct sr_usb_dev_inst *usb;
+ int len, ret;
+
+ sr_dbg("Getting logging info.");
+
+ usb = sdi->conn;
+ buf[0] = CMD_GET_LOG_INFO;
+ ret = libusb_bulk_transfer(usb->devhdl, EP_OUT, buf, 1, &len, 5);
+ if (ret != 0 || len != 1) {
+ sr_dbg("Failed to get status: %s", libusb_error_name(ret));
+ return SR_ERR;
+ }
+
+ ret = libusb_bulk_transfer(usb->devhdl, EP_IN, buf, 9, &len, 10);
+ if (ret != 0 || len != 9) {
+ sr_dbg("Failed to get status (no ack): %s", libusb_error_name(ret));
+ return SR_ERR;
+ }
+ if (buf[0] != (CMD_GET_LOG_INFO | 0x80) || buf[1] > 6) {
+ sr_dbg("Failed to get log info: invalid response 0x%2.x", buf[0]);
+ return SR_ERR;
+ }
+
+ return SR_OK;
+}
+
+SR_PRIV int kecheng_kc_330b_log_date_time_get(const struct sr_dev_inst *sdi,