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,
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,
};
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;
.execute_queue = &bitbang_execute_queue,
.speed = &dummy_speed,
- .register_commands = &dummy_register_commands,
.khz = &dummy_khz,
.speed_div = &dummy_speed_div,
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,
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,
/**
* 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
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,
};
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,
+ };
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)
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,
};
}
-#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)
{
.name = "rlink",
.init = rlink_init,
.quit = rlink_quit,
- .register_commands = rlink_register_commands,
.speed = rlink_speed,
.speed_div = rlink_speed_div,
.khz = rlink_khz,
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;
}
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,