summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZachary T Welch <zw@superlucidity.net>2009-11-20 22:01:59 -0800
committerZachary T Welch <zw@superlucidity.net>2009-11-24 21:37:33 -0800
commit8d46720cda288f498787a706bb2518e6f852b9f1 (patch)
treeeab7c9b46857d882666e9e97127194a2c14fd6cc
parentfc2d9f87615b7a5562cb9cd58fb95953e5d89818 (diff)
downloadopenocd_libswd-8d46720cda288f498787a706bb2518e6f852b9f1.tar.gz
openocd_libswd-8d46720cda288f498787a706bb2518e6f852b9f1.tar.bz2
openocd_libswd-8d46720cda288f498787a706bb2518e6f852b9f1.tar.xz
openocd_libswd-8d46720cda288f498787a706bb2518e6f852b9f1.zip
remove register_callbacks from jtag interface
Changes the jtag_interface->register_callbacks field to a list of commands to be registered. Changes callback to invocation of register_commands() with that command registration list. Removes all JTAG interface driver register_command callback functions, which the previous commits had converted into identical calls.
-rw-r--r--src/jtag/amt_jtagaccel.c7
-rw-r--r--src/jtag/arm-jtag-ew.c10
-rw-r--r--src/jtag/dummy.c6
-rw-r--r--src/jtag/ft2232.c8
-rw-r--r--src/jtag/gw16012.c7
-rw-r--r--src/jtag/interface.h4
-rw-r--r--src/jtag/jlink.c10
-rw-r--r--src/jtag/parport.c26
-rw-r--r--src/jtag/presto.c10
-rw-r--r--src/jtag/rlink/rlink.c44
-rw-r--r--src/jtag/tcl.c5
-rw-r--r--src/jtag/vsllink.c8
12 files changed, 33 insertions, 112 deletions
diff --git a/src/jtag/amt_jtagaccel.c b/src/jtag/amt_jtagaccel.c
index c3f32795..d26482a6 100644
--- a/src/jtag/amt_jtagaccel.c
+++ b/src/jtag/amt_jtagaccel.c
@@ -558,14 +558,9 @@ static const struct command_registration amtjtagaccel_command_handlers[] = {
COMMAND_REGISTRATION_DONE
};
-static int amt_jtagaccel_register_commands(struct command_context *cmd_ctx)
-{
- return register_commands(cmd_ctx, NULL, amtjtagaccel_command_handlers);
-}
-
struct jtag_interface amt_jtagaccel_interface = {
.name = "amt_jtagaccel",
- .register_commands = &amt_jtagaccel_register_commands,
+ .commands = amtjtagaccel_command_handlers,
.init = &amt_jtagaccel_init,
.quit = &amt_jtagaccel_quit,
.speed = &amt_jtagaccel_speed,
diff --git a/src/jtag/arm-jtag-ew.c b/src/jtag/arm-jtag-ew.c
index ef2b04f2..46c31070 100644
--- a/src/jtag/arm-jtag-ew.c
+++ b/src/jtag/arm-jtag-ew.c
@@ -512,17 +512,15 @@ static const struct command_registration armjtagew_command_handlers[] = {
COMMAND_REGISTRATION_DONE
};
-static int armjtagew_register_commands(struct command_context *cmd_ctx)
-{
- return register_commands(cmd_ctx, NULL, armjtagew_command_handlers);
-}
-
struct jtag_interface armjtagew_interface = {
.name = "arm-jtag-ew",
+
+ .commands = armjtagew_command_handlers,
+
.execute_queue = &armjtagew_execute_queue,
.speed = &armjtagew_speed,
.khz = &armjtagew_khz,
- .register_commands = &armjtagew_register_commands,
+
.init = &armjtagew_init,
.quit = &armjtagew_quit,
};
diff --git a/src/jtag/dummy.c b/src/jtag/dummy.c
index 05167900..11b6f71a 100644
--- a/src/jtag/dummy.c
+++ b/src/jtag/dummy.c
@@ -134,11 +134,6 @@ static int dummy_speed(int speed)
return ERROR_OK;
}
-static int dummy_register_commands(struct command_context *cmd_ctx)
-{
- return ERROR_OK;
-}
-
static int dummy_init(void)
{
bitbang_interface = &dummy_bitbang;
@@ -160,7 +155,6 @@ struct jtag_interface dummy_interface = {
.execute_queue = &bitbang_execute_queue,
.speed = &dummy_speed,
- .register_commands = &dummy_register_commands,
.khz = &dummy_khz,
.speed_div = &dummy_speed_div,
diff --git a/src/jtag/ft2232.c b/src/jtag/ft2232.c
index d145505a..73cbaf3c 100644
--- a/src/jtag/ft2232.c
+++ b/src/jtag/ft2232.c
@@ -4009,15 +4009,9 @@ static const struct command_registration ft2232_command_handlers[] = {
COMMAND_REGISTRATION_DONE
};
-static int ft2232_register_commands(struct command_context* cmd_ctx)
-{
- return register_commands(cmd_ctx, NULL, ft2232_command_handlers);
-}
-
-
struct jtag_interface ft2232_interface = {
.name = "ft2232",
- .register_commands = &ft2232_register_commands,
+ .commands = ft2232_command_handlers,
.init = &ft2232_init,
.quit = &ft2232_quit,
.speed = &ft2232_speed,
diff --git a/src/jtag/gw16012.c b/src/jtag/gw16012.c
index 0e495f92..b827fd53 100644
--- a/src/jtag/gw16012.c
+++ b/src/jtag/gw16012.c
@@ -573,14 +573,9 @@ static const struct command_registration gw16012_command_handlers[] = {
COMMAND_REGISTRATION_DONE
};
-static int gw16012_register_commands(struct command_context *cmd_ctx)
-{
- return register_commands(cmd_ctx, NULL, gw16012_command_handlers);
-}
-
struct jtag_interface gw16012_interface = {
.name = "gw16012",
- .register_commands = &gw16012_register_commands,
+ .commands = gw16012_command_handlers,
.init = &gw16012_init,
.quit = &gw16012_quit,
.speed = &gw16012_speed,
diff --git a/src/jtag/interface.h b/src/jtag/interface.h
index 05e4048b..d55782ad 100644
--- a/src/jtag/interface.h
+++ b/src/jtag/interface.h
@@ -204,10 +204,8 @@ struct jtag_interface {
/**
* The interface driver may register additional commands to expose
* additional features not covered by the standard command set.
- * @param cmd_ctx The context in which commands should be registered.
- * @returns ERROR_OK on success, or an error code on failure.
*/
- int (*register_commands)(struct command_context* cmd_ctx);
+ const struct command_registration *commands;
/**
* Interface driver must initalize any resources and connect to a
diff --git a/src/jtag/jlink.c b/src/jtag/jlink.c
index 24fb0e89..9b2326bd 100644
--- a/src/jtag/jlink.c
+++ b/src/jtag/jlink.c
@@ -644,18 +644,16 @@ static const struct command_registration jlink_command_handlers[] = {
COMMAND_REGISTRATION_DONE
};
-static int jlink_register_commands(struct command_context *cmd_ctx)
-{
- return register_commands(cmd_ctx, NULL, jlink_command_handlers);
-}
-
struct jtag_interface jlink_interface = {
.name = "jlink",
+
+ .commands = jlink_command_handlers,
+
.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,
};
diff --git a/src/jtag/parport.c b/src/jtag/parport.c
index abf0d296..e5f56113 100644
--- a/src/jtag/parport.c
+++ b/src/jtag/parport.c
@@ -517,19 +517,17 @@ static const struct command_registration parport_command_handlers[] = {
COMMAND_REGISTRATION_DONE
};
+struct jtag_interface parport_interface = {
+ .name = "parport",
-static int parport_register_commands(struct command_context *cmd_ctx)
-{
- return register_commands(cmd_ctx, NULL, parport_command_handlers);
-}
+ .commands = parport_command_handlers,
-struct jtag_interface parport_interface = {
- .name = "parport",
- .register_commands = parport_register_commands,
- .init = parport_init,
- .quit = parport_quit,
- .khz = parport_khz,
- .speed_div = parport_speed_div,
- .speed = parport_speed,
- .execute_queue = bitbang_execute_queue,
-};
+ .init = &parport_init,
+ .quit = &parport_quit,
+
+ .khz = &parport_khz,
+ .speed_div = &parport_speed_div,
+ .speed = &parport_speed,
+
+ .execute_queue = &bitbang_execute_queue,
+ };
diff --git a/src/jtag/presto.c b/src/jtag/presto.c
index dc40750d..f4e689c2 100644
--- a/src/jtag/presto.c
+++ b/src/jtag/presto.c
@@ -750,11 +750,6 @@ static const struct command_registration presto_command_handlers[] = {
COMMAND_REGISTRATION_DONE
};
-static int presto_jtag_register_commands(struct command_context *cmd_ctx)
-{
- return register_commands(cmd_ctx, NULL, presto_command_handlers);
-}
-
static int presto_jtag_init(void)
{
if (presto_open(presto_serial) != ERROR_OK)
@@ -792,11 +787,14 @@ static int presto_jtag_quit(void)
struct jtag_interface presto_interface = {
.name = "presto",
+
+ .commands = presto_command_handlers,
+
.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/rlink/rlink.c b/src/jtag/rlink/rlink.c
index 6fb721d5..bb33ad8f 100644
--- a/src/jtag/rlink/rlink.c
+++ b/src/jtag/rlink/rlink.c
@@ -1568,49 +1568,6 @@ int rlink_khz(
}
-#if 0
-static
-int
-handle_dtc_directory_command(
- struct command_context *cmd_ctx,
- char *cmd,
- char **args,
- int argc
-) {
- if (argc != 1) {
- LOG_ERROR("expected exactly one argument to rlink_dtc_directory <directory-path>");
- return(ERROR_INVALID_ARGUMENTS);
- }
-
- printf("handle_dtc_directory_command called with \"%s\"\n", args[0]);
-
- return(ERROR_OK);
-}
-#endif
-
-
-static
-int rlink_register_commands(struct command_context *cmd_ctx)
-{
-
-#ifdef _DEBUG_JTAG_IO_
- LOG_DEBUG("rlink_register_commands called with cmd_ctx=%p\n", cmd_ctx);
-#endif
-
-#if 0
- register_command(
- cmd_ctx, NULL,
- "rlink_dtc_directory",
- handle_dtc_directory_command,
- COMMAND_CONFIG,
- "The directory in which to search for DTC load images"
-);
-#endif
-
- return ERROR_OK;
-}
-
-
static
int rlink_init(void)
{
@@ -1848,7 +1805,6 @@ struct jtag_interface rlink_interface =
.name = "rlink",
.init = rlink_init,
.quit = rlink_quit,
- .register_commands = rlink_register_commands,
.speed = rlink_speed,
.speed_div = rlink_speed_div,
.khz = rlink_khz,
diff --git a/src/jtag/tcl.c b/src/jtag/tcl.c
index 81dbdb59..6b420211 100644
--- a/src/jtag/tcl.c
+++ b/src/jtag/tcl.c
@@ -636,9 +636,10 @@ COMMAND_HANDLER(handle_interface_command)
if (strcmp(CMD_ARGV[0], jtag_interfaces[i]->name) != 0)
continue;
- if (NULL != jtag_interfaces[i]->register_commands)
+ if (NULL != jtag_interfaces[i]->commands)
{
- int retval = jtag_interfaces[i]->register_commands(CMD_CTX);
+ int retval = register_commands(CMD_CTX, NULL,
+ jtag_interfaces[i]->commands);
if (ERROR_OK != retval)
return retval;
}
diff --git a/src/jtag/vsllink.c b/src/jtag/vsllink.c
index 8287e84a..cc3308f5 100644
--- a/src/jtag/vsllink.c
+++ b/src/jtag/vsllink.c
@@ -1890,14 +1890,10 @@ static const struct command_registration vsllink_command_handlers[] = {
COMMAND_REGISTRATION_DONE
};
-static int vsllink_register_commands(struct command_context *cmd_ctx)
-{
- return register_commands(cmd_ctx, NULL, vsllink_command_handlers);
-}
-
struct jtag_interface vsllink_interface = {
.name = "vsllink",
- .register_commands = &vsllink_register_commands,
+ .commands = vsllink_command_handlers,
+
.init = &vsllink_init,
.quit = &vsllink_quit,
.khz = &vsllink_khz,