jtag_libusb_bulk_read|write: return error code instead of size
[fw/openocd] / src / jtag / drivers / opendous.c
index 2f8b524f7cacc50f5e4ac073984387ae52ffc536..d5c279b08c2465152ec8fbf23687ce59c250d692 100644 (file)
@@ -234,12 +234,19 @@ static const struct command_registration opendous_command_handlers[] = {
        COMMAND_REGISTRATION_DONE
 };
 
-struct jtag_interface opendous_interface = {
+static struct jtag_interface opendous_interface = {
+       .execute_queue = opendous_execute_queue,
+};
+
+struct adapter_driver opendous_adapter_driver = {
        .name = "opendous",
+       .transports = jtag_only,
        .commands = opendous_command_handlers,
-       .execute_queue = opendous_execute_queue,
+
        .init = opendous_init,
        .quit = opendous_quit,
+
+       .jtag_ops = &opendous_interface,
 };
 
 static int opendous_execute_queue(void)
@@ -252,7 +259,7 @@ static int opendous_execute_queue(void)
        while (cmd != NULL) {
                switch (cmd->type) {
                        case JTAG_RUNTEST:
-                               DEBUG_JTAG_IO("runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, \
+                               LOG_DEBUG_IO("runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, \
                                        cmd->cmd.runtest->end_state);
 
                                if (cmd->cmd.runtest->end_state != -1)
@@ -261,7 +268,7 @@ static int opendous_execute_queue(void)
                                break;
 
                        case JTAG_TLR_RESET:
-                               DEBUG_JTAG_IO("statemove end in %i", cmd->cmd.statemove->end_state);
+                               LOG_DEBUG_IO("statemove end in %i", cmd->cmd.statemove->end_state);
 
                                if (cmd->cmd.statemove->end_state != -1)
                                        opendous_end_state(cmd->cmd.statemove->end_state);
@@ -269,7 +276,7 @@ static int opendous_execute_queue(void)
                                break;
 
                        case JTAG_PATHMOVE:
-                               DEBUG_JTAG_IO("pathmove: %i states, end in %i", \
+                               LOG_DEBUG_IO("pathmove: %i states, end in %i", \
                                        cmd->cmd.pathmove->num_states, \
                                        cmd->cmd.pathmove->path[cmd->cmd.pathmove->num_states - 1]);
 
@@ -277,13 +284,13 @@ static int opendous_execute_queue(void)
                                break;
 
                        case JTAG_SCAN:
-                               DEBUG_JTAG_IO("scan end in %i", cmd->cmd.scan->end_state);
+                               LOG_DEBUG_IO("scan end in %i", cmd->cmd.scan->end_state);
 
                                if (cmd->cmd.scan->end_state != -1)
                                        opendous_end_state(cmd->cmd.scan->end_state);
 
                                scan_size = jtag_build_buffer(cmd->cmd.scan, &buffer);
-                               DEBUG_JTAG_IO("scan input, length = %d", scan_size);
+                               LOG_DEBUG_IO("scan input, length = %d", scan_size);
 
 #ifdef _DEBUG_USB_COMMS_
                                opendous_debug_buffer(buffer, (scan_size + 7) / 8);
@@ -293,7 +300,7 @@ static int opendous_execute_queue(void)
                                break;
 
                        case JTAG_RESET:
-                               DEBUG_JTAG_IO("reset trst: %i srst %i", cmd->cmd.reset->trst, cmd->cmd.reset->srst);
+                               LOG_DEBUG_IO("reset trst: %i srst %i", cmd->cmd.reset->trst, cmd->cmd.reset->srst);
 
                                opendous_tap_execute();
 
@@ -303,7 +310,7 @@ static int opendous_execute_queue(void)
                                break;
 
                        case JTAG_SLEEP:
-                               DEBUG_JTAG_IO("sleep %" PRIi32, cmd->cmd.sleep->us);
+                               LOG_DEBUG_IO("sleep %" PRIi32, cmd->cmd.sleep->us);
                                opendous_tap_execute();
                                jtag_sleep(cmd->cmd.sleep->us);
                                break;
@@ -528,7 +535,7 @@ void opendous_simple_command(uint8_t command, uint8_t _data)
 {
        int result;
 
-       DEBUG_JTAG_IO("0x%02x 0x%02x", command, _data);
+       LOG_DEBUG_IO("0x%02x 0x%02x", command, _data);
 
        usb_out_buffer[0] = 2;
        usb_out_buffer[1] = 0;
@@ -597,7 +604,7 @@ void opendous_tap_append_step(int tms, int tdi)
 
 void opendous_tap_append_scan(int length, uint8_t *buffer, struct scan_command *command)
 {
-       DEBUG_JTAG_IO("append scan, length = %d", length);
+       LOG_DEBUG_IO("append scan, length = %d", length);
 
        struct pending_scan_result *pending_scan_result = &pending_scan_results_buffer[pending_scan_results_length];
        int i;
@@ -679,7 +686,7 @@ int opendous_tap_execute(void)
                        /* Copy to buffer */
                        buf_set_buf(tdo_buffer, first, buffer, 0, length);
 
-                       DEBUG_JTAG_IO("pending scan result, length = %d", length);
+                       LOG_DEBUG_IO("pending scan result, length = %d", length);
 
 #ifdef _DEBUG_USB_COMMS_
                        opendous_debug_buffer(buffer, byte_length_out);
@@ -763,14 +770,14 @@ int opendous_usb_write(struct opendous_jtag *opendous_jtag, int out_length)
                        LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE | LIBUSB_ENDPOINT_OUT,
                        FUNC_WRITE_DATA, 0, 0, (char *) usb_out_buffer, out_length, OPENDOUS_USB_TIMEOUT);
        } else {
-               result = jtag_libusb_bulk_write(opendous_jtag->usb_handle, OPENDOUS_WRITE_ENDPOINT, \
-                       (char *)usb_out_buffer, out_length, OPENDOUS_USB_TIMEOUT);
+               jtag_libusb_bulk_write(opendous_jtag->usb_handle, OPENDOUS_WRITE_ENDPOINT, \
+                       (char *)usb_out_buffer, out_length, OPENDOUS_USB_TIMEOUT, &result);
        }
 #ifdef _DEBUG_USB_COMMS_
        LOG_DEBUG("USB write end: %d bytes", result);
 #endif
 
-       DEBUG_JTAG_IO("opendous_usb_write, out_length = %d, result = %d", out_length, result);
+       LOG_DEBUG_IO("opendous_usb_write, out_length = %d, result = %d", out_length, result);
 
 #ifdef _DEBUG_USB_COMMS_
        opendous_debug_buffer(usb_out_buffer, out_length);
@@ -790,13 +797,13 @@ int opendous_usb_read(struct opendous_jtag *opendous_jtag)
                        LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE | LIBUSB_ENDPOINT_IN,
                        FUNC_READ_DATA, 0, 0, (char *) usb_in_buffer, OPENDOUS_IN_BUFFER_SIZE, OPENDOUS_USB_TIMEOUT);
        } else {
-               result = jtag_libusb_bulk_read(opendous_jtag->usb_handle, OPENDOUS_READ_ENDPOINT,
-                       (char *)usb_in_buffer, OPENDOUS_IN_BUFFER_SIZE, OPENDOUS_USB_TIMEOUT);
+               jtag_libusb_bulk_read(opendous_jtag->usb_handle, OPENDOUS_READ_ENDPOINT,
+                       (char *)usb_in_buffer, OPENDOUS_IN_BUFFER_SIZE, OPENDOUS_USB_TIMEOUT, &result);
        }
 #ifdef _DEBUG_USB_COMMS_
        LOG_DEBUG("USB read end: %d bytes", result);
 #endif
-       DEBUG_JTAG_IO("opendous_usb_read, result = %d", result);
+       LOG_DEBUG_IO("opendous_usb_read, result = %d", result);
 
 #ifdef _DEBUG_USB_COMMS_
        opendous_debug_buffer(usb_in_buffer, result);