]> git.sur5r.net Git - openocd/blobdiff - src/jtag/jtag.h
Simplify and improve parport_handle_parport_port_command:
[openocd] / src / jtag / jtag.h
index 9ce73471d8eb14c5da45046df7436d1f0d3488e5..c252433117718dd76764849452237943fc298584 100644 (file)
@@ -180,41 +180,10 @@ extern const char *jtag_tap_name(const jtag_tap_t *tap);
 extern jtag_tap_t* jtag_tap_by_string(const char* dotted_name);
 extern jtag_tap_t* jtag_tap_by_jim_obj(Jim_Interp* interp, Jim_Obj* obj);
 extern jtag_tap_t* jtag_tap_by_position(unsigned abs_position);
+extern jtag_tap_t* jtag_tap_next_enabled(jtag_tap_t* p);
 extern unsigned jtag_tap_count_enabled(void);
 extern unsigned jtag_tap_count(void);
 
-static __inline__ jtag_tap_t* jtag_tap_next_enabled(jtag_tap_t* p)
-{
-       if (p == NULL)
-       {
-               /* start at the head of list */
-               p = jtag_all_taps();
-       }
-       else
-       {
-               /* start *after* this one */
-               p = p->next_tap;
-       }
-       while (p)
-       {
-               if (p->enabled)
-               {
-                       break;
-               }
-               else
-               {
-                       p = p->next_tap;
-               }
-       }
-
-       return p;
-}
-
-
-enum reset_line_mode {
-       LINE_OPEN_DRAIN = 0x0,
-       LINE_PUSH_PULL  = 0x1,
-};
 
 /* 
  * There are three cases when JTAG_TRST_ASSERTED callback is invoked. The
@@ -243,11 +212,6 @@ struct jtag_tap_event_action_s
        jtag_tap_event_action_t* next;
 };
 
-/// @returns The current state of TRST.
-int jtag_get_trst(void);
-/// @returns The current state of SRST.
-int jtag_get_srst(void);
-
 /**
  * Defines the function signature requide for JTAG event callback
  * functions, which are added with jtag_register_event_callback()
@@ -286,6 +250,15 @@ int jtag_get_speed_readable(int *speed);
  */
 int jtag_set_speed(int speed);
 
+
+/// Attempt to configure the interface for the specified KHz.
+int jtag_config_khz(unsigned khz);
+/// Set the clock speed of the JTAG interface in KHz.
+void jtag_set_speed_khz(unsigned speed);
+/// Retreives the clock speed of the JTAG interface in KHz.
+unsigned jtag_get_speed_khz(void);
+
+
 enum reset_types {
        RESET_NONE            = 0x0,
        RESET_HAS_TRST        = 0x1,
@@ -300,6 +273,27 @@ enum reset_types {
 enum reset_types jtag_get_reset_config(void);
 void jtag_set_reset_config(enum reset_types type);
 
+void jtag_set_nsrst_delay(unsigned delay);
+unsigned jtag_get_nsrst_delay(void);
+
+void jtag_set_ntrst_delay(unsigned delay);
+unsigned jtag_get_ntrst_delay(void);
+
+/// @returns The current state of TRST.
+int jtag_get_trst(void);
+/// @returns The current state of SRST.
+int jtag_get_srst(void);
+
+/// Enable or disable data scan verification checking.
+void jtag_set_verify(bool enable);
+/// @returns True if data scan verification will be performed.
+bool jtag_will_verify(void);
+
+/// Enable or disable verification of IR scan checking.
+void jtag_set_verify_capture_ir(bool enable);
+/// @returns True if IR scan verification will be performed.
+bool jtag_will_verify_capture_ir(void);
+
 /**
  * Initialize interface upon startup.  Return a successful no-op upon
  * subsequent invocations.
@@ -627,23 +621,12 @@ void jtag_add_clocks(int num_cycles);
  */
 extern int jtag_execute_queue(void);
 
-/* same as jtag_execute_queue() but does not clear the error flag */
+/// same as jtag_execute_queue() but does not clear the error flag
 extern void jtag_execute_queue_noclear(void);
 
-/**
- * Set the current JTAG core execution error, unless one was set
- * by a previous call previously.  Driver or application code must
- * use jtag_error_clear to reset jtag_error once this routine has been
- * called with a non-zero error code.
- */
-void jtag_set_error(int error);
-/// @returns The current value of jtag_error
-int jtag_get_error(void);
-/**
- * Resets jtag_error to ERROR_OK, returning its previous value.
- * @returns The previous value of @c jtag_error.
- */
-int jtag_error_clear(void);
+/// @returns the number of times the scan queue has been flushed
+int jtag_get_flush_queue_count(void);
+
 
 /* can be implemented by hw+sw */
 extern int jtag_power_dropout(int* dropout);
@@ -707,23 +690,19 @@ extern void jtag_add_dr_out(jtag_tap_t* tap,
                tap_state_t end_state);
 
 
-/// @returns the number of times the scan queue has been flushed
-int jtag_get_flush_queue_count(void);
-
-void jtag_set_nsrst_delay(unsigned delay);
-unsigned jtag_get_nsrst_delay(void);
-
-void jtag_set_ntrst_delay(unsigned delay);
-unsigned jtag_get_ntrst_delay(void);
-
-int jtag_config_khz(unsigned khz);
-void jtag_set_speed_khz(unsigned speed);
-unsigned jtag_get_speed_khz(void);
-
-void jtag_set_verify(bool enable);
-bool jtag_will_verify(void);
-
-void jtag_set_verify_capture_ir(bool enable);
-bool jtag_will_verify_capture_ir(void);
+/**
+ * Set the current JTAG core execution error, unless one was set
+ * by a previous call previously.  Driver or application code must
+ * use jtag_error_clear to reset jtag_error once this routine has been
+ * called with a non-zero error code.
+ */
+void jtag_set_error(int error);
+/// @returns The current value of jtag_error
+int jtag_get_error(void);
+/**
+ * Resets jtag_error to ERROR_OK, returning its previous value.
+ * @returns The previous value of @c jtag_error.
+ */
+int jtag_error_clear(void);
 
 #endif /* JTAG_H */