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_dap.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_dap.c')
-rw-r--r-- | src/target/arm_dap.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/target/arm_dap.c b/src/target/arm_dap.c index 56442f1..a9277e7 100644 --- a/src/target/arm_dap.c +++ b/src/target/arm_dap.c @@ -265,17 +265,13 @@ static int dap_create(Jim_GetOptInfo *goi) if (transport_is_hla()) dap_commands[0].chain = NULL; - e = register_commands(cmd_ctx, NULL, dap_commands); + e = register_commands_with_data(cmd_ctx, NULL, dap_commands, dap); if (ERROR_OK != e) return JIM_ERR; - struct command *c = command_find_in_context(cmd_ctx, cp); - assert(c); - command_set_handler_data(c, dap); - list_add_tail(&dap->lh, &all_dap); - return (ERROR_OK == e) ? JIM_OK : JIM_ERR; + return JIM_OK; } static int jim_dap_create(Jim_Interp *interp, int argc, Jim_Obj *const *argv) |