openocd/src/target
Tim Newsome db16b3dc5b Call poll at a fixed interval.
The existing implementation blocks in select() for a fixed amount of
time. This change tracks when the next event (likely poll()) wants to be
run, and uses a shorter timeout in select() if necessary.

Also track all these timeouts using milliseconds as returned by
timeval_ms() instead of `struct timeval` to simplify the code.

This feature is helpful if poll() wants to do something like sample PCs
or memory values for basically the entire time that otherwise OpenOCD
would be hung in select(). See
https://github.com/riscv/riscv-openocd/pull/541 for an example of that.
The RISC-V code using this change will be upstreamed some day, too.

Signed-off-by: Tim Newsome <tim@sifive.com>
Change-Id: I67104a7cf69ed07c8399c14aa55963fc5116a67d
Reviewed-on: http://openocd.zylin.com/6363
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2021-07-31 10:08:47 +01:00
..
openrisc openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
riscv openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
Makefile.am oocd_trace: drop the code, deprecated in v0.10.0 2021-03-19 21:55:15 +00:00
a64_disassembler.c target/aarch64: a64 disassembler 2020-10-03 11:21:15 +01:00
a64_disassembler.h target/aarch64: a64 disassembler 2020-10-03 11:21:15 +01:00
aarch64.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
aarch64.h target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
adi_v5_dapdirect.c adi_v5_dapdirect: fix connect under reset 2020-02-24 10:28:46 +00:00
adi_v5_jtag.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
adi_v5_swd.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
algorithm.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
algorithm.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
arc.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
arc.h target: fix some minor typo 2021-05-22 10:06:45 +01:00
arc_cmd.c helper/jim-nvp: comply with coding style [2/2] 2021-06-04 17:40:48 +01:00
arc_cmd.h Introduce ARCv2 architecture related code 2020-02-27 06:46:51 +00:00
arc_jtag.c openocd: fix doxygen parameters of functions 2021-01-13 11:33:53 +00:00
arc_jtag.h Introduce ARCv2 architecture related code 2020-02-27 06:46:51 +00:00
arc_mem.c openocd: fix simple cases of Yoda condition 2021-07-20 14:55:24 +01:00
arc_mem.h Introduce ARCv2 architecture related code 2020-02-27 06:46:51 +00:00
arm.h openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm7_9_common.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm7_9_common.h target/arm926ejs: fix memory leaks 2020-07-08 22:07:38 +01:00
arm7tdmi.c target/arm: optimize architecture flags 2021-06-18 23:12:54 +01:00
arm7tdmi.h target/arm7tdmi: fix memory leak of register cache 2020-07-26 20:12:48 +01:00
arm9tdmi.c target/arm: optimize architecture flags 2021-06-18 23:12:54 +01:00
arm9tdmi.h target: fix memory leaks on targets based on arm9tdmi 2020-07-26 20:12:21 +01:00
arm11.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm11.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm11_dbgtap.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm11_dbgtap.h target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
arm720t.c target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
arm720t.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm920t.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm920t.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
arm926ejs.c target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
arm926ejs.h target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
arm946e.c target: declare local symbols as static 2020-11-04 17:39:17 +00:00
arm946e.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm966e.c target: use proper format with uint32_t 2020-09-05 17:12:39 +01:00
arm966e.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm_adi_v5.c arm_adi_v5: Added Cortex-A76 identifiers 2021-07-24 10:39:35 +01:00
arm_adi_v5.h openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
arm_cti.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm_cti.h armv8: valgrind memleak fixes 2018-04-10 09:13:02 +01:00
arm_dap.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm_disassembler.c target/arm: opcodes: rename CamelCase symbols and uppercase variables 2021-07-20 14:52:49 +01:00
arm_disassembler.h target/arm: opcodes: rename CamelCase symbols and uppercase variables 2021-07-20 14:52:49 +01:00
arm_dpm.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm_dpm.h target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
arm_jtag.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm_jtag.h target/arm926ejs: fix memory leaks 2020-07-08 22:07:38 +01:00
arm_opcodes.h target/arm: opcodes: rename CamelCase symbols and uppercase variables 2021-07-20 14:52:49 +01:00
arm_semihosting.c openocd: manually fix Yoda conditions 2021-07-20 14:55:43 +01:00
arm_semihosting.h Rework/update ARM semihosting 2018-06-04 09:16:08 +01:00
arm_simulator.c target/arm: opcodes: rename CamelCase symbols and uppercase variables 2021-07-20 14:52:49 +01:00
arm_simulator.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm_tpiu_swo.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm_tpiu_swo.h armv7m_trace: get rid of the old tpiu code 2021-03-10 21:34:04 +00:00
armv4_5.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
armv4_5.h target/cortex_a: add hypervisor mode 2020-03-12 10:11:19 +00:00
armv4_5_cache.c helper/command: change prototype of command_print/command_print_sameline 2019-05-14 19:37:11 +01:00
armv4_5_cache.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
armv4_5_mmu.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
armv4_5_mmu.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
armv7a.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
armv7a.h target/adiv5: Large Physical Address Extension 2021-07-02 17:12:11 +01:00
armv7a_cache.c target: declare local symbols as static 2020-11-04 17:39:17 +00:00
armv7a_cache.h target: use proper format with uint32_t 2020-09-05 17:12:39 +01:00
armv7a_cache_l2x.c help text: remove trailing space 2021-05-29 21:34:55 +01:00
armv7a_cache_l2x.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
armv7a_mmu.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
armv7a_mmu.h armv7a_mmu: Do not restrict virtual addresses to uint32_t 2019-06-12 15:14:44 +01:00
armv7m.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
armv7m.h armv7m: replace flag 'stlink' with 'is_hla_target' 2021-06-26 14:41:15 +01:00
armv7m_trace.c armv7m_trace: get rid of the old tpiu code 2021-03-10 21:34:04 +00:00
armv7m_trace.h armv7m_trace: get rid of the old tpiu code 2021-03-10 21:34:04 +00:00
armv8.c openocd: fix Yoda conditions with checkpatch 2021-07-24 10:38:31 +01:00
armv8.h target/adiv5: Large Physical Address Extension 2021-07-02 17:12:11 +01:00
armv8_cache.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
armv8_cache.h aarch64: add cache handling functions 2017-02-10 14:01:39 +01:00
armv8_dpm.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
armv8_dpm.h target/aarch64: fix watchpoint management 2021-05-22 10:04:20 +01:00
armv8_opcodes.c target/armv8_opcodes: use T32 instructions when the PE is in AArch32 state 2020-03-12 09:47:08 +00:00
armv8_opcodes.h target/arm: opcodes: rename CamelCase symbols and uppercase variables 2021-07-20 14:52:49 +01:00
avr32_ap7k.c target: rename CamelCase symbols 2021-07-24 10:37:25 +01:00
avr32_ap7k.h target: rename CamelCase symbols 2021-07-24 10:37:25 +01:00
avr32_jtag.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
avr32_jtag.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
avr32_mem.c target: fix some minor typo 2021-05-22 10:06:45 +01:00
avr32_mem.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
avr32_regs.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
avr32_regs.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
avrt.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
avrt.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
breakpoints.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
breakpoints.h target: Rename 'linked_BRP' to 'linked_brp' 2021-06-18 23:10:57 +01:00
cortex_a.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
cortex_a.h target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
cortex_m.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
cortex_m.h target/cortex_m: rename CamelCase symbol 2021-07-20 14:52:38 +01:00
dsp563xx.c target: rename CamelCase symbols 2021-07-24 10:37:25 +01:00
dsp563xx.h target/dsp563xx: Use bool data type for 'hardware_breakpoints_cleared' 2021-06-26 14:40:34 +01:00
dsp563xx_once.c coding style: wrap lines longer than 120 chars 2020-05-09 14:40:52 +01:00
dsp563xx_once.h coding style: fix space around pointer's asterisk 2020-02-24 10:30:36 +00:00
dsp5680xx.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
dsp5680xx.h target: rename CamelCase symbols 2021-07-24 10:37:25 +01:00
embeddedice.c jtag: remove minidriver code and minidriver-dummy 2021-03-19 21:56:06 +00:00
embeddedice.h target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
esirisc.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
esirisc.h target: rename CamelCase symbols 2021-07-24 10:37:25 +01:00
esirisc_jtag.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
esirisc_jtag.h esirisc: support eSi-Trace 2018-12-12 08:47:44 +00:00
esirisc_regs.h target: rename CamelCase symbols 2021-07-24 10:37:25 +01:00
esirisc_trace.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
esirisc_trace.h esirisc: support eSi-Trace 2018-12-12 08:47:44 +00:00
etb.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
etb.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
etm.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
etm.h target: fix minor typos and duplicated words 2020-07-26 23:09:45 +01:00
etm_dummy.c helper/command: change prototype of command_print/command_print_sameline 2019-05-14 19:37:11 +01:00
etm_dummy.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
fa526.c target: fix memory leaks on targets based on arm9tdmi 2020-07-26 20:12:21 +01:00
feroceon.c target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
hla_target.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
image.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
image.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
lakemont.c openocd: fix Yoda conditions with checkpatch 2021-07-24 10:38:31 +01:00
lakemont.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
ls1_sap.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
mem_ap.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
mips32.c Use boolean argument for register_get_by_name() 2021-06-18 23:14:27 +01:00
mips32.h target/mips: rename CamelCase symbols 2021-07-20 14:53:03 +01:00
mips32_dmaacc.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
mips32_dmaacc.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
mips32_pracc.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
mips32_pracc.h target/mips: Remove typedef'd struct 2021-03-10 21:30:04 +00:00
mips64.c coding style: fix space separation 2020-07-08 22:08:08 +01:00
mips64.h mips: Add MIPS64 support 2019-11-28 16:59:15 +00:00
mips64_pracc.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
mips64_pracc.h mips: Add MIPS64 support 2019-11-28 16:59:15 +00:00
mips_ejtag.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
mips_ejtag.h target/mips: rename CamelCase symbols 2021-07-20 14:53:03 +01:00
mips_m4k.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
mips_m4k.h mips32: add micromips isa handling 2017-05-08 18:04:56 +01:00
mips_mips64.c openocd: fix simple cases of Yoda condition 2021-07-20 14:55:24 +01:00
mips_mips64.h mips64: Add generic mips64 target support 2019-11-28 19:49:10 +00:00
nds32.c openocd: fix Yoda conditions with checkpatch 2021-07-24 10:38:31 +01:00
nds32.h openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
nds32_aice.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
nds32_aice.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_cmd.c openocd: fix Yoda conditions with checkpatch 2021-07-24 10:38:31 +01:00
nds32_cmd.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_disassembler.c openocd: manually fix Yoda conditions 2021-07-20 14:55:43 +01:00
nds32_disassembler.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_edm.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
nds32_insn.h target/nds32: use lowercase for C variables 2021-07-20 14:54:27 +01:00
nds32_reg.c target: use proper format with uint32_t 2020-09-05 17:12:39 +01:00
nds32_reg.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_tlb.c target/nds32: rename CamelCase symbols 2021-07-20 14:53:12 +01:00
nds32_tlb.h target/nds32: rename CamelCase symbols 2021-07-20 14:53:12 +01:00
nds32_v2.c openocd: fix Yoda conditions with checkpatch 2021-07-24 10:38:31 +01:00
nds32_v2.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_v3.c openocd: fix simple cases of Yoda condition 2021-07-20 14:55:24 +01:00
nds32_v3.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_v3_common.c openocd: fix Yoda conditions with checkpatch 2021-07-24 10:38:31 +01:00
nds32_v3_common.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_v3m.c openocd: fix simple cases of Yoda condition 2021-07-20 14:55:24 +01:00
nds32_v3m.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
quark_d20xx.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
quark_x10xx.c target: quark_x10xx: miscellaneous cleanups 2018-01-13 09:25:12 +00:00
register.c target/register: Minor code cleanup 2021-06-18 23:14:09 +01:00
register.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
rtt.c Add initial RTT support 2020-12-02 23:15:52 +00:00
rtt.h Add initial RTT support 2020-12-02 23:15:52 +00:00
semihosting_common.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
semihosting_common.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
smp.c openocd: fix simple cases of Yoda condition 2021-07-20 14:55:24 +01:00
smp.h openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
startup.tcl target/startup.tcl: Do not use 'Yoda conditions' 2021-06-04 17:46:48 +01:00
stm8.c target/stm8: Remove unused member 'stm8_common' 2021-07-02 17:12:38 +01:00
stm8.h target/stm8: Make 'stm8_command_handlers' static 2021-05-08 09:49:32 +01:00
target.c Call poll at a fixed interval. 2021-07-31 10:08:47 +01:00
target.h Call poll at a fixed interval. 2021-07-31 10:08:47 +01:00
target_request.c openocd: manually remove NULL comparisons 2021-07-24 10:38:19 +01:00
target_request.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
target_type.h Add target_data_bits(). 2021-06-04 17:45:58 +01:00
testee.c command_registration: add empty usage field to chained commands 2019-04-07 08:17:36 +01:00
trace.c target: avoid checking for non NULL pointer to free it 2020-09-05 20:47:11 +01:00
trace.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
x86_32_common.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
x86_32_common.h target: lakemon: implement assert_reset and deassert_reset 2018-01-13 09:25:34 +00:00
xscale.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
xscale.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00