-/* JTAG interface */
-extern int jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_state endstate, error_handler_t *error_handler);
-extern int jtag_add_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate, error_handler_t *error_handler);
-extern int jtag_add_plain_ir_scan(int num_fields, scan_field_t *fields, enum tap_state endstate, error_handler_t *error_handler);
-extern int jtag_add_plain_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate, error_handler_t *error_handler);
-extern int jtag_add_statemove(enum tap_state endstate);
-extern int jtag_add_pathmove(int num_states, enum tap_state *path);
-extern int jtag_add_runtest(int num_cycles, enum tap_state endstate);
+/* JTAG interface, can be implemented with a software or hardware fifo */
+extern void jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_state endstate);
+extern int interface_jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_state endstate);
+extern void jtag_add_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate);
+extern int interface_jtag_add_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate);
+extern void jtag_add_plain_ir_scan(int num_fields, scan_field_t *fields, enum tap_state endstate);
+extern int interface_jtag_add_plain_ir_scan(int num_fields, scan_field_t *fields, enum tap_state endstate);
+extern void jtag_add_plain_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate);
+extern int interface_jtag_add_plain_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate);
+/* execute a state transition within the JTAG standard, but the exact path
+ * path that is taken is undefined. Many implementations use precisely
+ * 7 clocks to perform a transition, but it could be more or less
+ * than that.
+ *
+ * The following assertions are made about certain common state moves:
+ *
+ * - A state move from Pause-[ID]R to Pause-[ID]R should always go through
+ * Update-[ID]R and Capture-[ID]R before returning to Pause-[ID]R, otherwise
+ * there's no way force a register update, if you can't go to Run-Test/Idle for
+ * some reason.
+ *
+ * - A state move from Pause-[ID]R to Shift-[ID]R must not go through
+ * Update-[ID]R.
+ *
+ * - Run-Test/Idle must not be entered unless requested, because R-T/I may have
+ * side effects.
+ *
+ * NB! a jtag_add_statemove() to the current state is not
+ * a no-operation.
+ */
+extern void jtag_add_statemove(enum tap_state endstate);
+extern int interface_jtag_add_statemove(enum tap_state endstate);
+/* A list of unambigious single clock state transitions, not
+ * all drivers can support this, but it is required for e.g.
+ * XScale and Xilinx support
+ *
+ * Note! TAP_TLR must not be used in the path!
+ *
+ * Note that the first on the list must be reachable
+ * via a single transition from the current state.
+ */
+extern void jtag_add_pathmove(int num_states, enum tap_state *path);
+extern int interface_jtag_add_pathmove(int num_states, enum tap_state *path);
+/* go to TAP_RTI, if we're not already there and cycle
+ * precisely num_cycles in the TAP_RTI after which move
+ * to the end state, if it is != TAP_RTI
+ */
+extern void jtag_add_runtest(int num_cycles, enum tap_state endstate);
+extern int interface_jtag_add_runtest(int num_cycles, enum tap_state endstate);
+/* If it fails and one of the error messages below are returned, nothing is
+ * added to the queue and jtag_execute() won't return an error code.
+ *
+ * ERROR_JTAG_RESET_WOULD_ASSERT_TRST
+ * ERROR_JTAG_RESET_CANT_SRST
+ *
+ * All other error codes will result in jtag_execute_queue() returning
+ * an error.
+ */