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__archive__
parent
6dc2c2ce97
commit
f9596e96c9
|
@ -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;
|
||||
|
|
|
@ -578,36 +578,19 @@ extern int jtag_execute_queue(void);
|
|||
extern void jtag_execute_queue_noclear(void);
|
||||
|
||||
/**
|
||||
* The jtag_error variable is set when an error occurs while executing
|
||||
* the queue.
|
||||
*
|
||||
* This flag can also be set from application code, if an error happens
|
||||
* during processing that should be reported during jtag_execute_queue().
|
||||
*
|
||||
* It is cleared by jtag_execute_queue().
|
||||
* 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.
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
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.
|
||||
*/
|
||||
static inline int jtag_error_clear(void)
|
||||
{
|
||||
int temp = jtag_error;
|
||||
jtag_error = ERROR_OK;
|
||||
return temp;
|
||||
}
|
||||
int jtag_error_clear(void);
|
||||
|
||||
/* can be implemented by hw+sw */
|
||||
extern int jtag_power_dropout(int* dropout);
|
||||
|
|
Loading…
Reference in New Issue