jtag API error handling refactoring.
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Thu, 7 May 2009 13:04:13 +0000 (13:04 +0000)
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Thu, 7 May 2009 13:04:13 +0000 (13:04 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@1638 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/jtag/jtag.c
src/jtag/jtag.h

index 242eb56bf6b3fd0d6a12ab78eef3688b0253c406..981f47e128bb794c365172df3f82587ee74d145c 100644 (file)
@@ -42,7 +42,7 @@
 #include <strings.h>
 #endif
 
-static void jtag_execute_queue_noclear(void);
+
 
 /* note that this is not marked as static as it must be available from outside jtag.c for those
    that implement the jtag_xxx() minidriver layer
@@ -1446,7 +1446,7 @@ int MINIDRIVER(interface_jtag_execute_queue)(void)
        return retval;
 }
 
-static void jtag_execute_queue_noclear(void)
+void jtag_execute_queue_noclear(void)
 {
        int retval=interface_jtag_execute_queue();
        /* we keep the first error */
index c0f94856b8ced9f49ad44aff771d23afddf84cff..ce11d592df1df87f3b665a38265808b3ae38b3fb 100644 (file)
@@ -700,6 +700,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 +711,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 */