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>
This commit is contained in:
+11
-6
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user