target: rewrite commands 'configure' and 'cget' as COMMAND_HANDLER

Rewrite only the command, but still use the old jimtcl specific
code shared with 'target create'.

Change-Id: Ie5e1c9eb237531121c2d143d1732cf281dfdc9ff
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/8828
Tested-by: jenkins
This commit is contained in:
Antonio Borneo
2023-12-02 23:40:56 +01:00
parent 29e4a36622
commit 1d9b34baa3

View File

@@ -5223,22 +5223,28 @@ no_params:
return JIM_OK;
}
static int jim_target_configure(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
COMMAND_HANDLER(handle_target_configure)
{
struct command *c = jim_to_command(interp);
if (!CMD_ARGC)
return ERROR_COMMAND_SYNTAX_ERROR;
struct jim_getopt_info goi;
jim_getopt_setup(&goi, interp, argc - 1, argv + 1);
goi.is_configure = !strcmp(c->name, "configure");
if (goi.argc < 1) {
Jim_WrongNumArgs(goi.interp, goi.argc, goi.argv,
"missing: -option ...");
return JIM_ERR;
}
struct command_context *cmd_ctx = current_command_context(interp);
assert(cmd_ctx);
struct target *target = get_current_target(cmd_ctx);
return target_configure(&goi, target);
jim_getopt_setup(&goi, CMD_CTX->interp, CMD_ARGC, CMD_JIMTCL_ARGV);
goi.is_configure = !strcmp(CMD_NAME, "configure");
struct target *target = get_current_target(CMD_CTX);
int e = target_configure(&goi, target);
int reslen;
const char *result = Jim_GetString(Jim_GetResult(CMD_CTX->interp), &reslen);
if (reslen > 0)
command_print(CMD, "%s", result);
if (e != JIM_OK)
return ERROR_FAIL;
return ERROR_OK;
}
COMMAND_HANDLER(handle_target_examine)
@@ -5491,14 +5497,14 @@ static const struct command_registration target_instance_command_handlers[] = {
{
.name = "configure",
.mode = COMMAND_ANY,
.jim_handler = jim_target_configure,
.handler = handle_target_configure,
.help = "configure a new target for use",
.usage = "[target_attribute ...]",
},
{
.name = "cget",
.mode = COMMAND_ANY,
.jim_handler = jim_target_configure,
.handler = handle_target_configure,
.help = "returns the specified target attribute",
.usage = "target_attribute",
},