jtag API error handling refactoring.

git-svn-id: svn://svn.berlios.de/openocd/trunk@1638 b42882b7-edfa-0310-969c-e2dbd0fdcd60
__archive__
oharboe 2009-05-07 13:04:13 +00:00
parent 146b6462a3
commit c4ee880715
2 changed files with 15 additions and 2 deletions

View File

@ -42,7 +42,7 @@
#include <strings.h> #include <strings.h>
#endif #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 /* 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 that implement the jtag_xxx() minidriver layer
@ -1446,7 +1446,7 @@ int MINIDRIVER(interface_jtag_execute_queue)(void)
return retval; return retval;
} }
static void jtag_execute_queue_noclear(void) void jtag_execute_queue_noclear(void)
{ {
int retval=interface_jtag_execute_queue(); int retval=interface_jtag_execute_queue();
/* we keep the first error */ /* we keep the first error */

View File

@ -700,6 +700,9 @@ int interface_jtag_add_clocks(int num_cycles);
*/ */
extern int jtag_execute_queue(void); 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 /* this flag is set when an error occurs while executing the queue. cleared
* by jtag_execute_queue() * by jtag_execute_queue()
* *
@ -708,6 +711,16 @@ extern int jtag_execute_queue(void);
*/ */
extern int jtag_error; 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 */ /* can be implemented by hw+sw */