openocd/src/helper
Tomas Vanek bb9d9c6026 target: use correct target in target-prefixed commands and event handlers
This change contains an alternative to Matthias Welwarsky's #4130
(target-prefixed commands) and to #4293 (event handlers).

get_current_target() must retrieve the target associated to the current
command. If no target associated, the current target of the command
context is used as a fallback.

Many Tcl event handlers work with the current target as if it were
the target issuing the event.

current_target in command_context is a number and has to be converted
to a pointer in every get_current_target() call.

The solution:
- Replace current_target in command_context by a target pointer
- Add another target pointer current_target_override
- get_current_target() returns current_target_override if set, otherwise
	current_target
- Save, set and restore current_target_override to the current prefix
	in run_command()
- Save, set and restore current_target_override to the event invoking
	target in target_handle_event()

While on it use calloc when allocating a new command_context.

Change-Id: I9a82102e94dcac063743834a1d28da861b2e74ea
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Suggested-by: Matthias Welwarsky <matthias.welwarsky@sysgo.com>
Reviewed-on: http://openocd.zylin.com/4295
Tested-by: jenkins
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
2018-03-03 08:40:09 +00:00
..
bin2char.sh Fix some problems with the bin2char utility 2014-08-02 09:01:32 +00:00
binarybuffer.c helper: Code cleanup for hexify() 2016-12-08 12:34:53 +00:00
binarybuffer.h helper: Code cleanup for hexify() 2016-12-08 12:34:53 +00:00
command.c target: use correct target in target-prefixed commands and event handlers 2018-03-03 08:40:09 +00:00
command.h target: use correct target in target-prefixed commands and event handlers 2018-03-03 08:40:09 +00:00
configuration.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
configuration.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
fileio.c Handle improperly build image files gracefully 2018-02-14 08:27:01 +00:00
fileio.h Handle improperly build image files gracefully 2018-02-14 08:27:01 +00:00
ioutil_stubs.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
ioutil.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
ioutil.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
jep106.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
jep106.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
jep106.inc helper: Update jep106 database to JEP106AT 2016-12-08 12:30:14 +00:00
jim-nvp.c jim-nvp: Make Jim_GetOpt_String const-correct 2016-02-29 20:32:31 +00:00
jim-nvp.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
list.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
log.c Fix typo in comment. 2017-10-03 11:19:26 +01:00
log.h log: Add a new debug level (4) for verbose I/O debug 2017-08-10 09:29:06 +01:00
Makefile.am helper,rtos,server: Restore missing warning flags 2017-01-15 10:16:16 +00:00
options.c helper/options: Add missing #include for MinGW and MSYS2 2017-10-03 11:18:20 +01:00
replacements.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
replacements.h Add read buffer to bitbang, improving performance. 2018-01-25 16:44:06 +00:00
startup.tcl Tcl exception codes cleanup, shutdown command amendments 2015-04-14 12:11:48 +01:00
system.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
time_support_common.c Fix usage of timeval_ms() 2016-07-19 10:45:16 +01:00
time_support.c Add timeval_compare helper function 2018-01-25 16:43:45 +00:00
time_support.h Add timeval_compare helper function 2018-01-25 16:43:45 +00:00
types.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
update_jep106.pl helper: Add converter from JEP106 ID to manufacturer name 2016-01-22 15:02:16 +00:00
util.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
util.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00