]> git.sur5r.net Git - openocd/blobdiff - src/helper/command.h
target: use correct target in target-prefixed commands and event handlers
[openocd] / src / helper / command.h
index f696ab823bc16811623ee4b3e34325c83850f91a..1a26c069956af15e6d3302b444ccc5ff8d8e4aca 100644 (file)
@@ -49,7 +49,15 @@ struct command_context {
        Jim_Interp *interp;
        enum command_mode mode;
        struct command *commands;
-       int current_target;
+       struct target *current_target;
+               /* The target set by 'targets xx' command or the latest created */
+       struct target *current_target_override;
+               /* If set overrides current_target
+                * It happens during processing of
+                *      1) a target prefixed command
+                *      2) an event handler
+                * Pay attention to reentrancy when setting override.
+                */
        command_output_handler_t output_handler;
        void *output_handler_priv;
 };
@@ -168,6 +176,11 @@ struct command {
        command_handler_t handler;
        Jim_CmdProc *jim_handler;
        void *jim_handler_data;
+               /* Currently used only for target of target-prefixed cmd.
+                * Native OpenOCD commands use jim_handler_data exclusively
+                * as a target override.
+                * Jim handlers outside of target cmd tree can use
+                * jim_handler_data for any handler specific data */
        enum command_mode mode;
        struct command *next;
 };