fix jtag_add_callback() args. The first argument is nothing special, it's just another generic argument.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2290 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
oharboe
2009-06-19 08:18:36 +00:00
parent a1c14646cb
commit 333642fcff
16 changed files with 56 additions and 49 deletions
+7 -7
View File
@@ -353,23 +353,23 @@ void jtag_add_plain_ir_scan(int in_num_fields, const scan_field_t *in_fields,
jtag_set_error(retval);
}
void jtag_add_callback(jtag_callback1_t f, uint8_t *in)
void jtag_add_callback(jtag_callback1_t f, jtag_callback_data_t data0)
{
interface_jtag_add_callback(f, in);
interface_jtag_add_callback(f, data0);
}
void jtag_add_callback4(jtag_callback_t f, uint8_t *in,
void jtag_add_callback4(jtag_callback_t f, jtag_callback_data_t data0,
jtag_callback_data_t data1, jtag_callback_data_t data2,
jtag_callback_data_t data3)
{
interface_jtag_add_callback4(f, in, data1, data2, data3);
interface_jtag_add_callback4(f, data0, data1, data2, data3);
}
int jtag_check_value_inner(uint8_t *captured, uint8_t *in_check_value, uint8_t *in_check_mask, int num_bits);
static int jtag_check_value_mask_callback(uint8_t *in, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3)
static int jtag_check_value_mask_callback(jtag_callback_data_t data0, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3)
{
return jtag_check_value_inner(in, (uint8_t *)data1, (uint8_t *)data2, (int)data3);
return jtag_check_value_inner((uint8_t *)data0, (uint8_t *)data1, (uint8_t *)data2, (int)data3);
}
static void jtag_add_scan_check(void (*jtag_add_scan)(int in_num_fields, const scan_field_t *in_fields, tap_state_t state),
@@ -393,7 +393,7 @@ static void jtag_add_scan_check(void (*jtag_add_scan)(int in_num_fields, const s
if ((in_fields[i].check_value != NULL) && (in_fields[i].in_value != NULL))
{
/* this is synchronous for a minidriver */
jtag_add_callback4(jtag_check_value_mask_callback, in_fields[i].in_value,
jtag_add_callback4(jtag_check_value_mask_callback, (jtag_callback_data_t)in_fields[i].in_value,
(jtag_callback_data_t)in_fields[i].check_value,
(jtag_callback_data_t)in_fields[i].check_mask,
(jtag_callback_data_t)in_fields[i].num_bits);
+8 -8
View File
@@ -40,7 +40,7 @@ struct jtag_callback_entry
struct jtag_callback_entry *next;
jtag_callback_t callback;
uint8_t *in;
jtag_callback_data_t data0;
jtag_callback_data_t data1;
jtag_callback_data_t data2;
jtag_callback_data_t data3;
@@ -465,13 +465,13 @@ int interface_jtag_add_sleep(uint32_t us)
}
/* add callback to end of queue */
void interface_jtag_add_callback4(jtag_callback_t callback, uint8_t *in, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3)
void interface_jtag_add_callback4(jtag_callback_t callback, jtag_callback_data_t data0, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3)
{
struct jtag_callback_entry *entry=cmd_queue_alloc(sizeof(struct jtag_callback_entry));
entry->next=NULL;
entry->callback=callback;
entry->in=in;
entry->data0=data0;
entry->data1=data1;
entry->data2=data2;
entry->data3=data3;
@@ -495,7 +495,7 @@ int interface_jtag_execute_queue(void)
struct jtag_callback_entry *entry;
for (entry=jtag_callback_queue_head; entry!=NULL; entry=entry->next)
{
retval=entry->callback(entry->in, entry->data1, entry->data2, entry->data3);
retval=entry->callback(entry->data0, entry->data1, entry->data2, entry->data3);
if (retval!=ERROR_OK)
break;
}
@@ -507,14 +507,14 @@ int interface_jtag_execute_queue(void)
return retval;
}
static int jtag_convert_to_callback4(uint8_t *in, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3)
static int jtag_convert_to_callback4(jtag_callback_data_t data0, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3)
{
((jtag_callback1_t)data1)(in);
((jtag_callback1_t)data1)(data0);
return ERROR_OK;
}
void interface_jtag_add_callback(jtag_callback1_t callback, uint8_t *in)
void interface_jtag_add_callback(jtag_callback1_t callback, jtag_callback_data_t data0)
{
jtag_add_callback4(jtag_convert_to_callback4, in, (jtag_callback_data_t)callback, 0, 0);
jtag_add_callback4(jtag_convert_to_callback4, data0, (jtag_callback_data_t)callback, 0, 0);
}
+9 -9
View File
@@ -384,6 +384,11 @@ extern void jtag_add_dr_scan_check(int num_fields, scan_field_t* fields, tap_sta
*/
extern void jtag_add_plain_dr_scan(int num_fields, const scan_field_t* fields, tap_state_t endstate);
/**
* Defines the type of data passed to the jtag_callback_t interface.
* The underlying type must allow storing an @c int or pointer type.
*/
typedef intptr_t jtag_callback_data_t;
/**
* Defines a simple JTAG callback that can allow conversions on data
@@ -393,17 +398,12 @@ extern void jtag_add_plain_dr_scan(int num_fields, const scan_field_t* fields, t
* For conversion types or checks that can fail, use the more complete
* variant: jtag_callback_t.
*/
typedef void (*jtag_callback1_t)(uint8_t *in);
typedef void (*jtag_callback1_t)(jtag_callback_data_t data0);
/// A simpler version of jtag_add_callback4().
extern void jtag_add_callback(jtag_callback1_t, uint8_t *in);
extern void jtag_add_callback(jtag_callback1_t, jtag_callback_data_t data0);
/**
* Defines the type of data passed to the jtag_callback_t interface.
* The underlying type must allow storing an @c int or pointer type.
*/
typedef intptr_t jtag_callback_data_t;
/**
* Defines the interface of the JTAG callback mechanism.
@@ -414,7 +414,7 @@ typedef intptr_t jtag_callback_data_t;
* @param data3 An integer big enough to use as an @c int or a pointer.
* @returns an error code
*/
typedef int (*jtag_callback_t)(uint8_t *in, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3);
typedef int (*jtag_callback_t)(jtag_callback_data_t data0, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3);
/**
@@ -445,7 +445,7 @@ typedef int (*jtag_callback_t)(uint8_t *in, jtag_callback_data_t data1, jtag_cal
* @param data3 An integer big enough to use as an @c int or a pointer.
*
*/
extern void jtag_add_callback4(jtag_callback_t f, uint8_t *in,
extern void jtag_add_callback4(jtag_callback_t f, jtag_callback_data_t data0,
jtag_callback_data_t data1, jtag_callback_data_t data2,
jtag_callback_data_t data3);
+2 -2
View File
@@ -85,9 +85,9 @@ extern void interface_jtag_add_dr_out(jtag_tap_t* tap,
int num_fields, const int* num_bits, const uint32_t* value,
tap_state_t end_state);
extern void interface_jtag_add_callback(jtag_callback1_t f, uint8_t *in);
extern void interface_jtag_add_callback(jtag_callback1_t f, jtag_callback_data_t data0);
extern void interface_jtag_add_callback4(jtag_callback_t f, uint8_t *in,
extern void interface_jtag_add_callback4(jtag_callback_t f, jtag_callback_data_t data0,
jtag_callback_data_t data1, jtag_callback_data_t data2,
jtag_callback_data_t data3);