diff options
author | Antonio Borneo <borneo.antonio@gmail.com> | 2020-05-12 11:52:56 +0200 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2021-04-18 15:33:23 +0100 |
commit | 428938993742f4f961cdc948593d9553f721c321 (patch) | |
tree | 7a0373acf08898f0df43fd6acc726e4c66f54f02 /src/target/target.c | |
parent | 7cd679a2de697065bbd36cde9042516ccf20f0f1 (diff) | |
download | riscv-openocd-428938993742f4f961cdc948593d9553f721c321.zip riscv-openocd-428938993742f4f961cdc948593d9553f721c321.tar.gz riscv-openocd-428938993742f4f961cdc948593d9553f721c321.tar.bz2 |
helper/command: override target only on target prefixed cmds
In current code the current target is overridden whenever
jim_handler_data is not NULL. This happens not only with target
prefixed commands, but also with cti, dap and swo/tpiu prefixed
commands.
While this is not causing any run-time issue, by now, the
behaviour is tricky and makes the code cryptic.
Add a specific field to struct command for the target override so
the content of jim_handler_data can be restricted to command
specific data only (today only cti, dap and swo/tpiu).
Extend the API register_commands() to specify the presence of
either the command data or the override target.
The new API makes obsolete calling command_set_handler_data() to
set jim_handler_data, so remove it.
Change-Id: Icc323faf754b0546a72208f90abd9e68ff2ef52f
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/5667
Tested-by: jenkins
Reviewed-by: Oleksij Rempel <linux@rempel-privat.de>
Diffstat (limited to 'src/target/target.c')
-rw-r--r-- | src/target/target.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/target/target.c b/src/target/target.c index 619a8b4..fa033d3 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -5871,7 +5871,7 @@ static int target_create(Jim_GetOptInfo *goi) }, COMMAND_REGISTRATION_DONE }; - e = register_commands(cmd_ctx, NULL, target_commands); + e = register_commands_override_target(cmd_ctx, NULL, target_commands, target); if (e != ERROR_OK) { if (target->type->deinit_target) target->type->deinit_target(target); @@ -5884,10 +5884,6 @@ static int target_create(Jim_GetOptInfo *goi) return JIM_ERR; } - struct command *c = command_find_in_context(cmd_ctx, cp); - assert(c); - command_set_handler_data(c, target); - /* append to end of list */ append_to_list_all_targets(target); |