summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/jtag/arm-jtag-ew.c30
-rw-r--r--src/jtag/dummy.c69
-rw-r--r--src/jtag/jlink.c32
-rw-r--r--src/jtag/presto.c56
-rw-r--r--src/jtag/usbprog.c29
5 files changed, 76 insertions, 140 deletions
diff --git a/src/jtag/arm-jtag-ew.c b/src/jtag/arm-jtag-ew.c
index 18b353ac..46dacc6d 100644
--- a/src/jtag/arm-jtag-ew.c
+++ b/src/jtag/arm-jtag-ew.c
@@ -55,14 +55,6 @@
static uint8_t usb_in_buffer[ARMJTAGEW_IN_BUFFER_SIZE];
static uint8_t usb_out_buffer[ARMJTAGEW_OUT_BUFFER_SIZE];
-/* External interface functions */
-static int armjtagew_execute_queue(void);
-static int armjtagew_speed(int speed);
-static int armjtagew_khz(int khz, int *jtag_speed);
-static int armjtagew_register_commands(struct command_context *cmd_ctx);
-static int armjtagew_init(void);
-static int armjtagew_quit(void);
-
/* Queue command functions */
static void armjtagew_end_state(tap_state_t state);
static void armjtagew_state_move(void);
@@ -105,18 +97,6 @@ static struct armjtagew* armjtagew_handle;
/***************************************************************************/
/* External interface implementation */
-struct jtag_interface armjtagew_interface =
-{
- .name = "arm-jtag-ew",
- .execute_queue = armjtagew_execute_queue,
- .speed = armjtagew_speed,
- .khz = armjtagew_khz,
- .register_commands = armjtagew_register_commands,
- .init = armjtagew_init,
- .quit = armjtagew_quit
-};
-
-
static int armjtagew_execute_queue(void)
{
struct jtag_command *cmd = jtag_command_queue;
@@ -529,6 +509,16 @@ static int armjtagew_register_commands(struct command_context *cmd_ctx)
return ERROR_OK;
}
+struct jtag_interface armjtagew_interface = {
+ .name = "arm-jtag-ew",
+ .execute_queue = &armjtagew_execute_queue,
+ .speed = &armjtagew_speed,
+ .khz = &armjtagew_khz,
+ .register_commands = &armjtagew_register_commands,
+ .init = &armjtagew_init,
+ .quit = &armjtagew_quit,
+ };
+
/***************************************************************************/
/* ARM-JTAG-EW tap functions */
diff --git a/src/jtag/dummy.c b/src/jtag/dummy.c
index 324ea7e9..05167900 100644
--- a/src/jtag/dummy.c
+++ b/src/jtag/dummy.c
@@ -35,45 +35,6 @@ static int clock_count; /* count clocks in any stable state, only stable
static uint32_t dummy_data;
-static int dummy_speed(int speed);
-static int dummy_register_commands(struct command_context *cmd_ctx);
-static int dummy_init(void);
-static int dummy_quit(void);
-static int dummy_khz(int khz, int *jtag_speed);
-static int dummy_speed_div(int speed, int *khz);
-
-
-/* The dummy driver is used to easily check the code path
- * where the target is unresponsive.
- */
-struct jtag_interface dummy_interface =
-{
- .name = "dummy",
-
- .execute_queue = bitbang_execute_queue,
-
- .speed = dummy_speed,
- .register_commands = dummy_register_commands,
- .khz = dummy_khz,
- .speed_div = dummy_speed_div,
-
- .init = dummy_init,
- .quit = dummy_quit,
-};
-
-static int dummy_read(void);
-static void dummy_write(int tck, int tms, int tdi);
-static void dummy_reset(int trst, int srst);
-static void dummy_led(int on);
-
-static struct bitbang_interface dummy_bitbang =
-{
- .read = dummy_read,
- .write = dummy_write,
- .reset = dummy_reset,
- .blink = dummy_led
-};
-
static int dummy_read(void)
{
int data = 1 & dummy_data;
@@ -129,6 +90,18 @@ static void dummy_reset(int trst, int srst)
LOG_DEBUG("reset to: %s", tap_state_name(dummy_state));
}
+static void dummy_led(int on)
+{
+}
+
+static struct bitbang_interface dummy_bitbang = {
+ .read = &dummy_read,
+ .write = &dummy_write,
+ .reset = &dummy_reset,
+ .blink = &dummy_led,
+ };
+
+
static int dummy_khz(int khz, int *jtag_speed)
{
if (khz == 0)
@@ -178,7 +151,19 @@ static int dummy_quit(void)
return ERROR_OK;
}
-static void dummy_led(int on)
-{
-}
+/* The dummy driver is used to easily check the code path
+ * where the target is unresponsive.
+ */
+struct jtag_interface dummy_interface = {
+ .name = "dummy",
+
+ .execute_queue = &bitbang_execute_queue,
+
+ .speed = &dummy_speed,
+ .register_commands = &dummy_register_commands,
+ .khz = &dummy_khz,
+ .speed_div = &dummy_speed_div,
+ .init = &dummy_init,
+ .quit = &dummy_quit,
+ };
diff --git a/src/jtag/jlink.c b/src/jtag/jlink.c
index dbbddb86..ebc9acd2 100644
--- a/src/jtag/jlink.c
+++ b/src/jtag/jlink.c
@@ -82,15 +82,6 @@ static uint8_t usb_emu_result_buffer[JLINK_EMU_RESULT_BUFFER_SIZE];
/* max speed 12MHz v5.0 jlink */
#define JLINK_MAX_SPEED 12000
-/* External interface functions */
-static int jlink_execute_queue(void);
-static int jlink_speed(int speed);
-static int jlink_speed_div(int speed, int* khz);
-static int jlink_khz(int khz, int *jtag_speed);
-static int jlink_register_commands(struct command_context *cmd_ctx);
-static int jlink_init(void);
-static int jlink_quit(void);
-
/* Queue command functions */
static void jlink_end_state(tap_state_t state);
static void jlink_state_move(void);
@@ -134,18 +125,6 @@ static struct jlink* jlink_handle;
/***************************************************************************/
/* External interface implementation */
-struct jtag_interface jlink_interface =
-{
- .name = "jlink",
- .execute_queue = jlink_execute_queue,
- .speed = jlink_speed,
- .speed_div = jlink_speed_div,
- .khz = jlink_khz,
- .register_commands = jlink_register_commands,
- .init = jlink_init,
- .quit = jlink_quit
-};
-
static void jlink_execute_runtest(struct jtag_command *cmd)
{
DEBUG_JTAG_IO("runtest %i cycles, end in %i",
@@ -661,6 +640,17 @@ static int jlink_register_commands(struct command_context *cmd_ctx)
return ERROR_OK;
}
+struct jtag_interface jlink_interface = {
+ .name = "jlink",
+ .execute_queue = &jlink_execute_queue,
+ .speed = &jlink_speed,
+ .speed_div = &jlink_speed_div,
+ .khz = &jlink_khz,
+ .register_commands = &jlink_register_commands,
+ .init = &jlink_init,
+ .quit = &jlink_quit,
+ };
+
/***************************************************************************/
/* J-Link tap functions */
diff --git a/src/jtag/presto.c b/src/jtag/presto.c
index 1d6bc1db..437e2c08 100644
--- a/src/jtag/presto.c
+++ b/src/jtag/presto.c
@@ -39,42 +39,6 @@
#error "BUG: either FTD2XX and LIBFTDI has to be used"
#endif
-static int presto_jtag_speed(int speed);
-static int presto_jtag_khz(int khz, int *jtag_speed);
-static int presto_jtag_speed_div(int speed, int *khz);
-static int presto_jtag_register_commands(struct command_context *cmd_ctx);
-static int presto_jtag_init(void);
-static int presto_jtag_quit(void);
-
-struct jtag_interface presto_interface =
-{
- .name = "presto",
- .execute_queue = bitq_execute_queue,
- .speed = presto_jtag_speed,
- .khz = presto_jtag_khz,
- .speed_div = presto_jtag_speed_div,
- .register_commands = presto_jtag_register_commands,
- .init = presto_jtag_init,
- .quit = presto_jtag_quit,
-};
-
-static int presto_bitq_out(int tms, int tdi, int tdo_req);
-static int presto_bitq_flush(void);
-static int presto_bitq_sleep(unsigned long us);
-static int presto_bitq_reset(int trst, int srst);
-static int presto_bitq_in_rdy(void);
-static int presto_bitq_in(void);
-
-static struct bitq_interface presto_bitq =
-{
- .out = presto_bitq_out,
- .flush = presto_bitq_flush,
- .sleep = presto_bitq_sleep,
- .reset = presto_bitq_reset,
- .in_rdy = presto_bitq_in_rdy,
- .in = presto_bitq_in,
-};
-
/* -------------------------------------------------------------------------- */
#define FT_DEVICE_NAME_LEN 64
@@ -699,6 +663,15 @@ static int presto_bitq_reset(int trst, int srst)
return 0;
}
+static struct bitq_interface presto_bitq = {
+ .out = &presto_bitq_out,
+ .flush = &presto_bitq_flush,
+ .sleep = &presto_bitq_sleep,
+ .reset = &presto_bitq_reset,
+ .in_rdy = &presto_bitq_in_rdy,
+ .in = &presto_bitq_in,
+ };
+
/* -------------------------------------------------------------------------- */
static int presto_jtag_khz(int khz, int *jtag_speed)
@@ -807,3 +780,14 @@ static int presto_jtag_quit(void)
return ERROR_OK;
}
+
+struct jtag_interface presto_interface = {
+ .name = "presto",
+ .execute_queue = &bitq_execute_queue,
+ .speed = &presto_jtag_speed,
+ .khz = &presto_jtag_khz,
+ .speed_div = &presto_jtag_speed_div,
+ .register_commands = &presto_jtag_register_commands,
+ .init = &presto_jtag_init,
+ .quit = &presto_jtag_quit,
+ };
diff --git a/src/jtag/usbprog.c b/src/jtag/usbprog.c
index 10dfe061..e8c0eadf 100644
--- a/src/jtag/usbprog.c
+++ b/src/jtag/usbprog.c
@@ -49,28 +49,12 @@
#define TCK_BIT 2
#define TMS_BIT 1
-static int usbprog_execute_queue(void);
-static int usbprog_speed(int speed);
-static int usbprog_register_commands(struct command_context *cmd_ctx);
-static int usbprog_init(void);
-static int usbprog_quit(void);
-
static void usbprog_end_state(tap_state_t state);
static void usbprog_state_move(void);
static void usbprog_path_move(struct pathmove_command *cmd);
static void usbprog_runtest(int num_cycles);
static void usbprog_scan(bool ir_scan, enum scan_type type, uint8_t *buffer, int scan_size);
-struct jtag_interface usbprog_interface =
-{
- .name = "usbprog",
- .execute_queue = usbprog_execute_queue,
- .speed = usbprog_speed,
- .register_commands = usbprog_register_commands,
- .init = usbprog_init,
- .quit = usbprog_quit
-};
-
#define UNKOWN_COMMAND 0x00
#define PORT_DIRECTION 0x01
#define PORT_SET 0x02
@@ -120,11 +104,6 @@ static int usbprog_speed(int speed)
return ERROR_OK;
}
-static int usbprog_register_commands(struct command_context *cmd_ctx)
-{
- return ERROR_OK;
-}
-
static int usbprog_execute_queue(void)
{
struct jtag_command *cmd = jtag_command_queue; /* currently processed command */
@@ -688,3 +667,11 @@ static void usbprog_jtag_tms_send(struct usbprog_jtag *usbprog_jtag)
tms_chain_index = 0;
}
}
+
+struct jtag_interface usbprog_interface = {
+ .name = "usbprog",
+ .execute_queue = &usbprog_execute_queue,
+ .speed = &usbprog_speed,
+ .init = &usbprog_init,
+ .quit = &usbprog_quit
+ };