aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAntonio Borneo <borneo.antonio@gmail.com>2024-12-01 00:01:00 +0100
committerAntonio Borneo <borneo.antonio@gmail.com>2025-03-15 10:20:47 +0000
commit427528069806b20c05c78f935529bd62308351a9 (patch)
treee995b28378a655a540a884e66ad014fc353b6160 /src
parent6beb6280af985e79094501af5cb66d1a33019544 (diff)
downloadriscv-openocd-427528069806b20c05c78f935529bd62308351a9.zip
riscv-openocd-427528069806b20c05c78f935529bd62308351a9.tar.gz
riscv-openocd-427528069806b20c05c78f935529bd62308351a9.tar.bz2
adapter: simplify command 'adapter list'
The code of command 'adapter list' is called by command 'adapter driver' to list the available drivers in case of error. This dual possible entry points require a conditional check on the number of command line arguments, reducing the code readability. Split the command in a simpler code for the command 'adapter list' that only checks the command line, and move in a common helper the code that list the drivers. While there, fix the output and the comments to report 'adapter driver' instead of 'debug adapters'; we are not parsing the HW to know which adapter is present. Change-Id: I17538e86dc4a31a9589d404e49dcc65a29393390 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/8672 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src')
-rw-r--r--src/jtag/adapter.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/jtag/adapter.c b/src/jtag/adapter.c
index db3d3b0..2fcbd60 100644
--- a/src/jtag/adapter.c
+++ b/src/jtag/adapter.c
@@ -392,12 +392,8 @@ COMMAND_HANDLER(handle_adapter_name)
return ERROR_OK;
}
-COMMAND_HANDLER(handle_adapter_list_command)
+COMMAND_HANDLER(dump_adapter_driver_list)
{
- if (strcmp(CMD_NAME, "list") == 0 && CMD_ARGC > 0)
- return ERROR_COMMAND_SYNTAX_ERROR;
-
- command_print(CMD, "The following debug adapters are available:");
for (unsigned int i = 0; adapter_drivers[i]; i++) {
const char *name = adapter_drivers[i]->name;
command_print(CMD, "%u: %s", i + 1, name);
@@ -406,6 +402,14 @@ COMMAND_HANDLER(handle_adapter_list_command)
return ERROR_OK;
}
+COMMAND_HANDLER(handle_adapter_list_command)
+{
+ if (CMD_ARGC)
+ return ERROR_COMMAND_SYNTAX_ERROR;
+
+ return CALL_COMMAND_HANDLER(dump_adapter_driver_list);
+}
+
COMMAND_HANDLER(handle_adapter_driver_command)
{
int retval;
@@ -440,7 +444,8 @@ COMMAND_HANDLER(handle_adapter_driver_command)
*/
LOG_ERROR("The specified debug interface was not found (%s)",
CMD_ARGV[0]);
- CALL_COMMAND_HANDLER(handle_adapter_list_command);
+ command_print(CMD, "The following adapter drivers are available:");
+ CALL_COMMAND_HANDLER(dump_adapter_driver_list);
return ERROR_JTAG_INVALID_INTERFACE;
}