From 17a9dea53a71e9d7e241262725f3dd707b620d37 Mon Sep 17 00:00:00 2001 From: Zachary T Welch Date: Mon, 23 Nov 2009 15:03:04 -0800 Subject: add jim_handler to command_registration Adding jim_handler field to command_registration allows removing the register_jim helper. All command registrations now go through the register_command{,s}() functions. --- src/target/target.c | 68 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 23 deletions(-) (limited to 'src/target/target.c') diff --git a/src/target/target.c b/src/target/target.c index e999e68c..4a9095a6 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -777,12 +777,14 @@ int target_init(struct command_context *cmd_ctx) target->type->mcr = default_mcr; } else { - /* FIX! multiple targets will generally register global commands - * multiple times. Only register this one if *one* of the - * targets need the command. Hmm... make it a command on the - * Jim Tcl target object? - */ - register_jim(cmd_ctx, "mcr", jim_mcrmrc, "write coprocessor "); + const struct command_registration mcr_cmd = { + .name = "mcr", + .mode = COMMAND_EXEC, + .jim_handler = &jim_mcrmrc, + .help = "write coprocessor", + .usage = " ", + }; + register_command(cmd_ctx, NULL, &mcr_cmd); } if (target->type->mrc == NULL) @@ -790,7 +792,13 @@ int target_init(struct command_context *cmd_ctx) target->type->mrc = default_mrc; } else { - register_jim(cmd_ctx, "mrc", jim_mcrmrc, "read coprocessor "); + const struct command_registration mrc_cmd = { + .name = "mrc", + .jim_handler = &jim_mcrmrc, + .help = "read coprocessor", + .usage = " ", + }; + register_command(cmd_ctx, NULL, &mrc_cmd); } @@ -4377,14 +4385,14 @@ static int target_create(Jim_GetOptInfo *goi) } /* now - create the new target name command */ - e = Jim_CreateCommand(goi->interp, - /* name */ - cp, - tcl_target_func, /* C function */ - target, /* private data */ - NULL); /* no del proc */ - - return e; + const struct command_registration target_command = { + .name = cp, + .jim_handler = &tcl_target_func, + .jim_handler_data = target, + .help = "target command group", + }; + struct command *c = register_command(cmd_ctx, NULL, &target_command); + return (NULL != c) ? ERROR_OK : ERROR_FAIL; } static int jim_target(Jim_Interp *interp, int argc, Jim_Obj *const *argv) @@ -4773,12 +4781,17 @@ static const struct command_registration target_command_handlers[] = { "or list targets (no parameters)", .usage = "[]", }, + { + .name = "target", + .mode = COMMAND_CONFIG, + .jim_handler = &jim_target, + .help = "configure target", + }, COMMAND_REGISTRATION_DONE }; int target_register_commands(struct command_context *cmd_ctx) { - register_jim(cmd_ctx, "target", jim_target, "configure target"); return register_commands(cmd_ctx, NULL, target_command_handlers); } @@ -4967,6 +4980,22 @@ static const struct command_registration target_exec_command_handlers[] = { .mode = COMMAND_EXEC, .usage = " [offset] [type]", }, + { + .name = "ocd_mem2array", + .mode = COMMAND_EXEC, + .jim_handler = &jim_mem2array, + .help = "read memory and return as a TCL array " + "for script processing", + .usage = "
", + }, + { + .name = "ocd_array2mem", + .mode = COMMAND_EXEC, + .jim_handler = &jim_array2mem, + .help = "convert a TCL array to memory locations " + "and write the values", + .usage = "
", + }, COMMAND_REGISTRATION_DONE }; int target_register_user_commands(struct command_context *cmd_ctx) @@ -4978,13 +5007,6 @@ int target_register_user_commands(struct command_context *cmd_ctx) if ((retval = trace_register_commands(cmd_ctx)) != ERROR_OK) return retval; - register_jim(cmd_ctx, "ocd_mem2array", jim_mem2array, - "read memory and return as a TCL array for script processing " - "
"); - - register_jim(cmd_ctx, "ocd_array2mem", jim_array2mem, - "convert a TCL array to memory locations and write the values " - "
"); return register_commands(cmd_ctx, NULL, target_exec_command_handlers); } -- cgit v1.2.3