aboutsummaryrefslogtreecommitdiff
path: root/sim/common
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-07-05 19:06:38 +0000
committerMike Frysinger <vapier@gentoo.org>2011-07-05 19:06:38 +0000
commit2419798b808521c666c29abc9b816154a979d69e (patch)
tree17bb3de27399d93aa661d0ad8622ef4a3bbc7564 /sim/common
parent52cb9dfed024ca2df3a1a7f7340e7faa07321db3 (diff)
downloadfsf-binutils-gdb-2419798b808521c666c29abc9b816154a979d69e.zip
fsf-binutils-gdb-2419798b808521c666c29abc9b816154a979d69e.tar.gz
fsf-binutils-gdb-2419798b808521c666c29abc9b816154a979d69e.tar.bz2
sim: start a unified sim_do_command
Since sim_do_command for many people simply calls sim_args_command, start a unified version of it. For people who handle their own options, they could switch to this by using sim_add_option_table instead. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'sim/common')
-rw-r--r--sim/common/ChangeLog6
-rw-r--r--sim/common/Make-common.in4
-rw-r--r--sim/common/sim-command.c33
3 files changed, 43 insertions, 0 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index 821248d..f4f8231 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,3 +1,9 @@
+2011-07-05 Mike Frysinger <vapier@gentoo.org>
+
+ * sim-command.c: New file.
+ * Make-common.in (SIM_NEW_COMMON_OBJS): Add sim-command.o.
+ (sim-command.o): New rule.
+
2011-05-27 Mike Frysinger <vapier@gentoo.org>
* sim-options.c (standard_option_handler): Remove arg[0] check
diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in
index 351f4a0..42e3192 100644
--- a/sim/common/Make-common.in
+++ b/sim/common/Make-common.in
@@ -162,6 +162,7 @@ SIM_COMMON_HW_OBJS = \
SIM_NEW_COMMON_OBJS = \
sim-arange.o \
sim-bits.o \
+ sim-command.o \
sim-config.o \
sim-core.o \
sim-endian.o \
@@ -425,6 +426,9 @@ sim-bits.o: $(srccom)/sim-bits.c $(sim-bits_h) $(sim-n-bits_h) \
$(SIM_EXTRA_DEPS)
$(CC) -c $(srccom)/sim-bits.c $(ALL_CFLAGS)
+sim-command.o: $(srccom)/sim-command.c $(sim_main_headers)
+ $(CC) -c $(srccom)/sim-command.c $(ALL_CFLAGS)
+
sim-config.o: $(srccom)/sim-config.c $(sim-config_h) sim-main.h \
$(SIM_EXTRA_DEPS)
$(CC) -c $(srccom)/sim-config.c $(ALL_CFLAGS)
diff --git a/sim/common/sim-command.c b/sim/common/sim-command.c
new file mode 100644
index 0000000..b6d0a19
--- /dev/null
+++ b/sim/common/sim-command.c
@@ -0,0 +1,33 @@
+/* Miscellaneous simulator utilities.
+
+ Copyright (C) 2005-2011 Free Software Foundation, Inc.
+ Contributed by Analog Devices, Inc.
+
+ This file is part of simulators.
+
+ 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 3 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 <http://www.gnu.org/licenses/>. */
+
+#include "sim-main.h"
+#include "sim-utils.h"
+
+/* Generic implementation of sim_do_command that works with simulators
+ which add custom options via sim_add_option_table(). */
+
+void
+sim_do_command (SIM_DESC sd, char *cmd)
+{
+ if (sim_args_command (sd, cmd) != SIM_RC_OK)
+ sim_io_eprintf (sd, "Unknown sim command: \"%s\". Try \"sim help\".\n",
+ cmd);
+}