summaryrefslogtreecommitdiff
path: root/src/jtag/core.c
diff options
context:
space:
mode:
authorzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2009-06-09 08:40:46 +0000
committerzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2009-06-09 08:40:46 +0000
commitf9596e96c9835101343603b7ad9c02682b3e7485 (patch)
treefbdb51ff46d8d9d1647a356ab9d8a1e20d7899f9 /src/jtag/core.c
parent6dc2c2ce970863a079f101d84a0c47b37b682c76 (diff)
downloadopenocd+libswd-f9596e96c9835101343603b7ad9c02682b3e7485.tar.gz
openocd+libswd-f9596e96c9835101343603b7ad9c02682b3e7485.tar.bz2
openocd+libswd-f9596e96c9835101343603b7ad9c02682b3e7485.tar.xz
openocd+libswd-f9596e96c9835101343603b7ad9c02682b3e7485.zip
Move the jtag_error helper routines out of header file:
- Makes jtag_error static, add new get helper function for completeness. - Improve and add documentation and style for these helpers. git-svn-id: svn://svn.berlios.de/openocd/trunk@2162 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/jtag/core.c')
-rw-r--r--src/jtag/core.c33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/jtag/core.c b/src/jtag/core.c
index 0a587487..85b2a32e 100644
--- a/src/jtag/core.c
+++ b/src/jtag/core.c
@@ -46,10 +46,17 @@ static int jtag_flush_queue_count;
static void jtag_add_scan_check(void (*jtag_add_scan)(int in_num_fields, const scan_field_t *in_fields, tap_state_t state),
int in_num_fields, scan_field_t *in_fields, tap_state_t state);
-/* note that this is not marked as static as it must be available from outside core.c for those
- that implement the jtag_xxx() minidriver layer
-*/
-int jtag_error=ERROR_OK;
+/**
+ * The jtag_error variable is set when an error occurs while executing
+ * the queue. Application code may set this using jtag_set_error(),
+ * when an error occurs during processing that should be reported during
+ * jtag_execute_queue().
+ *
+ * Tts value may be checked with jtag_get_error() and cleared with
+ * jtag_error_clear(). This value is returned (and cleared) by
+ * jtag_execute_queue().
+ */
+static int jtag_error = ERROR_OK;
char* jtag_event_strings[] =
{
@@ -101,6 +108,24 @@ struct jtag_interface_s *jtag = NULL;
jtag_interface_t *jtag_interface = NULL;
int jtag_speed = 0;
+void jtag_set_error(int error)
+{
+ if ((error == ERROR_OK) || (jtag_error != ERROR_OK))
+ return;
+ jtag_error = error;
+}
+int jtag_get_error(void)
+{
+ return jtag_error;
+}
+int jtag_error_clear(void)
+{
+ int temp = jtag_error;
+ jtag_error = ERROR_OK;
+ return temp;
+}
+
+
jtag_tap_t *jtag_all_taps(void)
{
return __jtag_all_taps;