summaryrefslogtreecommitdiff
path: root/src/jtag/adapter.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/jtag/adapter.c')
-rw-r--r--src/jtag/adapter.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/jtag/adapter.c b/src/jtag/adapter.c
index 50e2a022..15b3ddc2 100644
--- a/src/jtag/adapter.c
+++ b/src/jtag/adapter.c
@@ -35,6 +35,7 @@
#include "minidriver.h"
#include "interface.h"
#include "interfaces.h"
+#include "transport.h"
#ifdef HAVE_STRINGS_H
#include <strings.h>
@@ -92,6 +93,25 @@ static int default_srst_asserted(int *srst_asserted)
return ERROR_OK;
}
+COMMAND_HANDLER(interface_transport_command)
+{
+ char **transports;
+ int retval;
+
+ retval = CALL_COMMAND_HANDLER(transport_list_parse, &transports);
+ if (retval != ERROR_OK) {
+ return retval;
+
+ retval = allow_transports(CMD_CTX, (const char **)transports);
+ if (retval != ERROR_OK) {
+ for (unsigned i = 0; transports[i]; i++)
+ free(transports[i]);
+ free(transports);
+ }
+ }
+ return retval;
+}
+
COMMAND_HANDLER(handle_interface_list_command)
{
if (strcmp(CMD_NAME, "interface_list") == 0 && CMD_ARGC > 0)
@@ -452,6 +472,13 @@ static const struct command_registration interface_command_handlers[] = {
.usage = "driver_name",
},
{
+ .name = "interface_transports",
+ .handler = interface_transport_command,
+ .mode = COMMAND_CONFIG,
+ .help = "Declare transports the interface supports.",
+ .usage = "transport ... ",
+ },
+ {
.name = "interface_list",
.handler = handle_interface_list_command,
.mode = COMMAND_ANY,