flash/nor/at91samd: Use 32-bit register writes for ST-Link compat
[fw/openocd] / src / server / startup.tcl
1 # SPDX-License-Identifier: GPL-2.0-or-later
2
3 # Defines basic Tcl procs for OpenOCD server modules
4
5 # Handle GDB 'R' packet. Can be overridden by configuration script,
6 # but it's not something one would expect target scripts to do
7 # normally
8 proc ocd_gdb_restart {target_id} {
9         # Fix!!! we're resetting all targets here! Really we should reset only
10         # one target
11         reset halt
12 }
13
14 lappend _telnet_autocomplete_skip prevent_cps
15 lappend _telnet_autocomplete_skip POST
16 lappend _telnet_autocomplete_skip Host:
17 proc prevent_cps {} {
18         echo "Possible SECURITY ATTACK detected."
19         echo "It looks like somebody is sending POST or Host: commands to OpenOCD."
20         echo "This is likely due to an attacker attempting to use Cross Protocol Scripting"
21         echo "to compromise your OpenOCD instance. Connection aborted."
22         exit
23 }
24
25 proc POST {args} { prevent_cps }
26 proc Host: {args} { prevent_cps }
27
28 # list of commands we don't want to appear in autocomplete
29 lappend _telnet_autocomplete_skip _telnet_autocomplete_helper
30
31 # helper for telnet autocomplete
32 proc _telnet_autocomplete_helper pattern {
33         set cmds [info commands $pattern]
34
35         # skip matches in variable '_telnet_autocomplete_skip'
36         foreach skip $::_telnet_autocomplete_skip {
37                 foreach n [lsearch -all -regexp $cmds "^$skip\$"] {
38                         set cmds [lreplace $cmds $n $n]
39                 }
40         }
41
42         return [lsort $cmds]
43 }