]> git.sur5r.net Git - openocd/blobdiff - src/jtag/jtag.h
pull up verify_capture_ir one level in api stack
[openocd] / src / jtag / jtag.h
index c0f94856b8ced9f49ad44aff771d23afddf84cff..656741f9b36b0cc800842c8f5c3db52f7e008ea0 100644 (file)
@@ -559,6 +559,8 @@ extern int  jtag_register_commands(struct command_context_s* cmd_ctx);
  *
  */
 extern void jtag_add_ir_scan(int num_fields, scan_field_t* fields, tap_state_t endstate);
+/* same as jtag_add_ir_scan except no verify is performed */
+extern void jtag_add_ir_scan_noverify(int num_fields, scan_field_t *fields, tap_state_t state);
 extern int  interface_jtag_add_ir_scan(int num_fields, scan_field_t* fields, tap_state_t endstate);
 extern void jtag_add_dr_scan(int num_fields, scan_field_t* fields, tap_state_t endstate);
 /* same as jtag_add_dr_scan but the scan is executed immediately. sets jtag_error if there
@@ -700,6 +702,9 @@ int  interface_jtag_add_clocks(int num_cycles);
  */
 extern int            jtag_execute_queue(void);
 
+/* same as jtag_execute_queue() but does not clear the error flag */
+extern void jtag_execute_queue_noclear(void);
+
 /* this flag is set when an error occurs while executing the queue. cleared
  * by jtag_execute_queue()
  *
@@ -708,6 +713,16 @@ extern int            jtag_execute_queue(void);
  */
 extern int jtag_error;
 
+static __inline__ void jtag_set_error(int error)
+{
+       if ((error==ERROR_OK)||(jtag_error!=ERROR_OK))
+       {
+               /* keep first error */
+               return;
+       }
+       jtag_error=error;
+}
+
 
 
 /* can be implemented by hw+sw */
@@ -716,7 +731,15 @@ extern int            jtag_power_dropout(int* dropout);
 extern int            jtag_srst_asserted(int* srst_asserted);
 
 /* JTAG support functions */
-extern void           jtag_set_check_value(scan_field_t* field, u8* value, u8* mask, error_handler_t* in_error_handler);
+struct invalidstruct
+{
+
+};
+
+extern void           jtag_set_check_value(scan_field_t* field, u8* value, u8* mask, struct invalidstruct *obsolete);
+/* execute jtag queue and check value and use mask if mask is != NULL. invokes
+ * jtag_set_error() with any error. */
+extern void jtag_check_value_mask(scan_field_t *field, u8 *value, u8 *mask);
 extern enum scan_type jtag_scan_type(scan_command_t* cmd);
 extern int            jtag_scan_size(scan_command_t* cmd);
 extern int            jtag_read_buffer(u8* buffer, scan_command_t* cmd);