From 8d46720cda288f498787a706bb2518e6f852b9f1 Mon Sep 17 00:00:00 2001 From: Zachary T Welch Date: Fri, 20 Nov 2009 22:01:59 -0800 Subject: [PATCH] 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. --- src/jtag/amt_jtagaccel.c | 7 +------ src/jtag/arm-jtag-ew.c | 10 ++++----- src/jtag/dummy.c | 6 ------ src/jtag/ft2232.c | 8 +------- src/jtag/gw16012.c | 7 +------ src/jtag/interface.h | 4 +--- src/jtag/jlink.c | 10 ++++----- src/jtag/parport.c | 28 ++++++++++++------------- src/jtag/presto.c | 10 ++++----- src/jtag/rlink/rlink.c | 44 ---------------------------------------- src/jtag/tcl.c | 5 +++-- src/jtag/vsllink.c | 8 ++------ 12 files changed, 34 insertions(+), 113 deletions(-) diff --git a/src/jtag/amt_jtagaccel.c b/src/jtag/amt_jtagaccel.c index c3f327950..d26482a61 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 ef2b04f2a..46c310705 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 051679009..11b6f71ae 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 d145505a3..73cbaf3c6 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 0e495f924..b827fd53a 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 05e4048b1..d55782ad8 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 24fb0e896..9b2326bdb 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 abf0d2969..e5f56113f 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 }; - -static int parport_register_commands(struct command_context *cmd_ctx) -{ - return register_commands(cmd_ctx, NULL, 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, -}; + .name = "parport", + + .commands = parport_command_handlers, + + .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 dc40750df..f4e689c2a 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 6fb721d5e..bb33ad8fa 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 "); - 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 81dbdb591..6b420211c 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 8287e84a9..cc3308f57 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,