X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fjtag%2Fdrivers%2Fparport.c;h=8e44dcb797761891301c6c2847ed1bee7c5564b7;hp=e61b20b3af6569996d1e41ee5e9afd634506c7c2;hb=HEAD;hpb=28c24a5c41c47a66e9310912f88148814f730a25
diff --git a/src/jtag/drivers/parport.c b/src/jtag/drivers/parport.c
index e61b20b3af..d26a51048f 100644
--- a/src/jtag/drivers/parport.c
+++ b/src/jtag/drivers/parport.c
@@ -1,28 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
/***************************************************************************
* Copyright (C) 2005 by Dominic Rath *
* Dominic.Rath@gmx.de *
* *
* Copyright (C) 2008 by Spencer Oliver *
* spen@spen-soft.co.uk *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see . *
***************************************************************************/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
+#include
#include
#include "bitbang.h"
@@ -272,7 +262,7 @@ static int parport_init(void)
cur_cable = cables;
- if (parport_cable == NULL) {
+ if (!parport_cable) {
parport_cable = strdup("wiggler");
LOG_WARNING("No parport cable specified, using default 'wiggler'");
}
@@ -421,9 +411,13 @@ COMMAND_HANDLER(parport_handle_parport_cable_command)
return ERROR_OK;
/* only if the cable name wasn't overwritten by cmdline */
- if (parport_cable == 0) {
+ if (!parport_cable) {
/* REVISIT first verify that it's listed in cables[] ... */
parport_cable = malloc(strlen(CMD_ARGV[0]) + sizeof(char));
+ if (!parport_cable) {
+ LOG_ERROR("Out of memory");
+ return ERROR_FAIL;
+ }
strcpy(parport_cable, CMD_ARGV[0]);
}
@@ -457,9 +451,9 @@ COMMAND_HANDLER(parport_handle_parport_toggling_time_command)
}
parport_toggling_time_ns = ns;
- retval = jtag_get_speed(&wait_states);
+ retval = adapter_get_speed(&wait_states);
if (retval != ERROR_OK) {
- /* if jtag_get_speed fails then the clock_mode
+ /* if adapter_get_speed fails then the clock_mode
* has not been configured, this happens if parport_toggling_time is
* called before the adapter speed is set */
LOG_INFO("no parport speed set - defaulting to zero wait states");
@@ -473,9 +467,9 @@ COMMAND_HANDLER(parport_handle_parport_toggling_time_command)
return ERROR_OK;
}
-static const struct command_registration parport_command_handlers[] = {
+static const struct command_registration parport_subcommand_handlers[] = {
{
- .name = "parport_port",
+ .name = "port",
.handler = parport_handle_parport_port_command,
.mode = COMMAND_CONFIG,
.help = "Display the address of the I/O port (e.g. 0x378) "
@@ -484,7 +478,7 @@ static const struct command_registration parport_command_handlers[] = {
.usage = "[port_number]",
},
{
- .name = "parport_cable",
+ .name = "cable",
.handler = parport_handle_parport_cable_command,
.mode = COMMAND_CONFIG,
.help = "Set the layout of the parallel port cable "
@@ -493,7 +487,7 @@ static const struct command_registration parport_command_handlers[] = {
.usage = "[layout]",
},
{
- .name = "parport_write_on_exit",
+ .name = "write_on_exit",
.handler = parport_handle_write_on_exit_command,
.mode = COMMAND_CONFIG,
.help = "Configure the parallel driver to write "
@@ -501,7 +495,7 @@ static const struct command_registration parport_command_handlers[] = {
.usage = "('on'|'off')",
},
{
- .name = "parport_toggling_time",
+ .name = "toggling_time",
.handler = parport_handle_parport_toggling_time_command,
.mode = COMMAND_CONFIG,
.help = "Displays or assigns how many nanoseconds it "
@@ -511,6 +505,17 @@ static const struct command_registration parport_command_handlers[] = {
COMMAND_REGISTRATION_DONE
};
+static const struct command_registration parport_command_handlers[] = {
+ {
+ .name = "parport",
+ .mode = COMMAND_ANY,
+ .help = "perform parport management",
+ .chain = parport_subcommand_handlers,
+ .usage = "",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+
static struct jtag_interface parport_interface = {
.supported = DEBUG_CAP_TMS_SEQ,
.execute_queue = bitbang_execute_queue,