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/arm_tpiu_swo.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/arm_tpiu_swo.c')
-rw-r--r-- | src/target/arm_tpiu_swo.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/target/arm_tpiu_swo.c b/src/target/arm_tpiu_swo.c index 543b4f0..186ce5d 100644 --- a/src/target/arm_tpiu_swo.c +++ b/src/target/arm_tpiu_swo.c @@ -886,14 +886,10 @@ static int arm_tpiu_swo_create(Jim_Interp *interp, struct arm_tpiu_swo_object *o }, COMMAND_REGISTRATION_DONE }; - e = register_commands(cmd_ctx, NULL, obj_commands); + e = register_commands_with_data(cmd_ctx, NULL, obj_commands, obj); if (ERROR_OK != e) return JIM_ERR; - struct command *c = command_find_in_context(cmd_ctx, obj->name); - assert(c); - command_set_handler_data(c, obj); - list_add_tail(&obj->lh, &all_tpiu_swo); return JIM_OK; |