This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] sim: start a unified sim_do_command
- From: Mike Frysinger <vapier at gentoo dot org>
- To: gdb-patches at sourceware dot org
- Cc: toolchain-devel at blackfin dot uclinux dot org
- Date: Sun, 19 Jun 2011 16:42:19 -0400
- Subject: [PATCH] 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>
sim/common/:
2011-06-19 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.
sim/bfin/:
2011-06-19 Mike Frysinger <vapier@gentoo.org>
* interp.c (sim_do_command): Delete.
sim/cris/:
2011-06-19 Mike Frysinger <vapier@gentoo.org>
* sim-if.c (sim_do_command): Delete.
sim/frv/:
2011-06-19 Mike Frysinger <vapier@gentoo.org>
* sim-if.c (sim_do_command): Delete.
sim/h8300/:
2011-06-19 Mike Frysinger <vapier@gentoo.org>
* compile.c (sim_do_command): Delete.
sim/iq2000/:
2011-06-19 Mike Frysinger <vapier@gentoo.org>
* sim-if.c (sim_do_command): Delete.
sim/lm32/:
2011-06-19 Mike Frysinger <vapier@gentoo.org>
* sim-if.c (sim_do_command): Delete.
sim/m32r/:
2011-06-19 Mike Frysinger <vapier@gentoo.org>
* sim-if.c (sim_do_command): Delete.
sim/m68hc11/:
2011-06-19 Mike Frysinger <vapier@gentoo.org>
* interp.c (sim_do_command): Delete.
sim/mips/:
2011-06-19 Mike Frysinger <vapier@gentoo.org>
* interp.c (sim_do_command): Delete.
sim/mn10300/:
2011-06-19 Mike Frysinger <vapier@gentoo.org>
* interp.c (sim_do_command): Delete.
sim/sh64/:
2011-06-19 Mike Frysinger <vapier@gentoo.org>
* sim-if.c (sim_do_command): Delete.
sim/v850/:
2011-06-19 Mike Frysinger <vapier@gentoo.org>
* interp.c (sim_do_command): Delete.
---
sim/bfin/interp.c | 7 ------
sim/common/Make-common.in | 4 +++
sim/common/sim-command.c | 33 ++++++++++++++++++++++++++++++
sim/cris/sim-if.c | 7 ------
sim/frv/sim-if.c | 9 --------
sim/h8300/compile.c | 7 ------
sim/iq2000/sim-if.c | 12 -----------
sim/lm32/sim-if.c | 9 --------
sim/m32r/sim-if.c | 48 ---------------------------------------------
sim/m68hc11/interp.c | 27 -------------------------
sim/mips/interp.c | 10 ---------
sim/mn10300/interp.c | 17 ---------------
sim/sh64/sim-if.c | 10 ---------
sim/v850/interp.c | 19 -----------------
14 files changed, 37 insertions(+), 182 deletions(-)
create mode 100644 sim/common/sim-command.c
diff --git a/sim/bfin/interp.c b/sim/bfin/interp.c
index d0a4e22..5b270d4 100644
--- a/sim/bfin/interp.c
+++ b/sim/bfin/interp.c
@@ -1241,10 +1241,3 @@ sim_create_inferior (SIM_DESC sd, struct bfd *abfd,
return SIM_RC_OK;
}
-
-void
-sim_do_command (SIM_DESC sd, char *cmd)
-{
- if (sim_args_command (sd, cmd) != SIM_RC_OK)
- sim_io_eprintf (sd, "Unknown command `%s'\n", cmd);
-}
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);
+}
diff --git a/sim/cris/sim-if.c b/sim/cris/sim-if.c
index 9dc7e34..64a758c 100644
--- a/sim/cris/sim-if.c
+++ b/sim/cris/sim-if.c
@@ -1094,13 +1094,6 @@ sim_create_inferior (SIM_DESC sd, struct bfd *abfd,
return SIM_RC_OK;
}
-
-void
-sim_do_command (SIM_DESC sd, char *cmd)
-{
- if (sim_args_command (sd, cmd) != SIM_RC_OK)
- sim_io_eprintf (sd, "Unknown command `%s'\n", cmd);
-}
/* Disassemble an instruction. */
diff --git a/sim/frv/sim-if.c b/sim/frv/sim-if.c
index 2d15965..37cc23a 100644
--- a/sim/frv/sim-if.c
+++ b/sim/frv/sim-if.c
@@ -240,12 +240,3 @@ sim_create_inferior (sd, abfd, argv, envp)
return SIM_RC_OK;
}
-
-void
-sim_do_command (sd, cmd)
- SIM_DESC sd;
- char *cmd;
-{
- if (sim_args_command (sd, cmd) != SIM_RC_OK)
- sim_io_eprintf (sd, "Unknown command `%s'\n", cmd);
-}
diff --git a/sim/h8300/compile.c b/sim/h8300/compile.c
index b249080..7b4a5fa 100644
--- a/sim/h8300/compile.c
+++ b/sim/h8300/compile.c
@@ -5108,13 +5108,6 @@ sim_create_inferior (SIM_DESC sd, struct bfd *abfd, char **argv, char **env)
}
void
-sim_do_command (SIM_DESC sd, char *cmd)
-{
- (*sim_callback->printf_filtered) (sim_callback,
- "This simulator does not accept any commands.\n");
-}
-
-void
sim_set_callbacks (struct host_callback_struct *ptr)
{
sim_callback = ptr;
diff --git a/sim/iq2000/sim-if.c b/sim/iq2000/sim-if.c
index 0efae1a..e0ff86b 100644
--- a/sim/iq2000/sim-if.c
+++ b/sim/iq2000/sim-if.c
@@ -189,15 +189,3 @@ sim_create_inferior (sd, abfd, argv, envp)
return SIM_RC_OK;
}
-
-void
-sim_do_command (sd, cmd)
- SIM_DESC sd;
- char *cmd;
-{
- if (sim_args_command (sd, cmd) != SIM_RC_OK)
- sim_io_eprintf (sd, "Unknown command `%s'\n", cmd);
-}
-
-
-
diff --git a/sim/lm32/sim-if.c b/sim/lm32/sim-if.c
index 6d3c734..d9bb219 100644
--- a/sim/lm32/sim-if.c
+++ b/sim/lm32/sim-if.c
@@ -279,12 +279,3 @@ sim_create_inferior (sd, abfd, argv, envp)
return SIM_RC_OK;
}
-
-void
-sim_do_command (sd, cmd)
- SIM_DESC sd;
- char *cmd;
-{
- if (sim_args_command (sd, cmd) != SIM_RC_OK)
- sim_io_eprintf (sd, "Unknown command `%s'\n", cmd);
-}
diff --git a/sim/m32r/sim-if.c b/sim/m32r/sim-if.c
index 6235abd..610bd85 100644
--- a/sim/m32r/sim-if.c
+++ b/sim/m32r/sim-if.c
@@ -256,51 +256,3 @@ print_m32r_misc_cpu (SIM_CPU *cpu, int verbose)
CPU_M32R_MISC_PROFILE (cpu)->parallel_count));
}
}
-
-void
-sim_do_command (sd, cmd)
- SIM_DESC sd;
- char *cmd;
-{
- char **argv;
-
- if (cmd == NULL)
- return;
-
- argv = buildargv (cmd);
-
- if (argv[0] != NULL
- && strcasecmp (argv[0], "info") == 0
- && argv[1] != NULL
- && strncasecmp (argv[1], "reg", 3) == 0)
- {
- SI val;
-
- /* We only support printing bbpsw,bbpc here as there is no equivalent
- functionality in gdb. */
- if (argv[2] == NULL)
- sim_io_eprintf (sd, "Missing register in `%s'\n", cmd);
- else if (argv[3] != NULL)
- sim_io_eprintf (sd, "Too many arguments in `%s'\n", cmd);
- else if (strcasecmp (argv[2], "bbpsw") == 0)
- {
- val = m32rbf_h_cr_get (STATE_CPU (sd, 0), H_CR_BBPSW);
- sim_io_printf (sd, "bbpsw 0x%x %d\n", val, val);
- }
- else if (strcasecmp (argv[2], "bbpc") == 0)
- {
- val = m32rbf_h_cr_get (STATE_CPU (sd, 0), H_CR_BBPC);
- sim_io_printf (sd, "bbpc 0x%x %d\n", val, val);
- }
- else
- sim_io_eprintf (sd, "Printing of register `%s' not supported with `sim info'\n",
- argv[2]);
- }
- else
- {
- if (sim_args_command (sd, cmd) != SIM_RC_OK)
- sim_io_eprintf (sd, "Unknown sim command `%s'\n", cmd);
- }
-
- freeargv (argv);
-}
diff --git a/sim/m68hc11/interp.c b/sim/m68hc11/interp.c
index b4d17c3..d391286 100644
--- a/sim/m68hc11/interp.c
+++ b/sim/m68hc11/interp.c
@@ -711,33 +711,6 @@ sim_size (int s)
;
}
-void
-sim_do_command (SIM_DESC sd, char *cmd)
-{
- char *mm_cmd = "memory-map";
- char *int_cmd = "interrupt";
- sim_cpu *cpu;
-
- cpu = STATE_CPU (sd, 0);
- /* Commands available from GDB: */
- if (sim_args_command (sd, cmd) != SIM_RC_OK)
- {
- if (strncmp (cmd, "info", sizeof ("info") - 1) == 0)
- sim_get_info (sd, &cmd[4]);
- else if (strncmp (cmd, mm_cmd, strlen (mm_cmd) == 0))
- sim_io_eprintf (sd,
- "`memory-map' command replaced by `sim memory'\n");
- else if (strncmp (cmd, int_cmd, strlen (int_cmd)) == 0)
- sim_io_eprintf (sd, "`interrupt' command replaced by `sim watch'\n");
- else
- sim_io_eprintf (sd, "Unknown command `%s'\n", cmd);
- }
-
- /* If the architecture changed, re-configure. */
- if (STATE_ARCHITECTURE (sd) != cpu->cpu_configured_arch)
- sim_hw_configure (sd);
-}
-
/* Halt the simulator after just one instruction */
static void
diff --git a/sim/mips/interp.c b/sim/mips/interp.c
index 492ae60..edd4250 100644
--- a/sim/mips/interp.c
+++ b/sim/mips/interp.c
@@ -1142,16 +1142,6 @@ sim_create_inferior (sd, abfd, argv,env)
return SIM_RC_OK;
}
-void
-sim_do_command (sd,cmd)
- SIM_DESC sd;
- char *cmd;
-{
- if (sim_args_command (sd, cmd) != SIM_RC_OK)
- sim_io_printf (sd, "Error: \"%s\" is not a valid MIPS simulator command.\n",
- cmd);
-}
-
/*---------------------------------------------------------------------------*/
/*-- Private simulator support interface ------------------------------------*/
/*---------------------------------------------------------------------------*/
diff --git a/sim/mn10300/interp.c b/sim/mn10300/interp.c
index 1230bf5..e06ae59 100644
--- a/sim/mn10300/interp.c
+++ b/sim/mn10300/interp.c
@@ -328,23 +328,6 @@ sim_create_inferior (SIM_DESC sd,
return SIM_RC_OK;
}
-void
-sim_do_command (SIM_DESC sd, char *cmd)
-{
- char *mm_cmd = "memory-map";
- char *int_cmd = "interrupt";
-
- if (sim_args_command (sd, cmd) != SIM_RC_OK)
- {
- if (strncmp (cmd, mm_cmd, strlen (mm_cmd) == 0))
- sim_io_eprintf (sd, "`memory-map' command replaced by `sim memory'\n");
- else if (strncmp (cmd, int_cmd, strlen (int_cmd)) == 0)
- sim_io_eprintf (sd, "`interrupt' command replaced by `sim watch'\n");
- else
- sim_io_eprintf (sd, "Unknown command `%s'\n", cmd);
- }
-}
-
/* FIXME These would more efficient to use than load_mem/store_mem,
but need to be changed to use the memory map. */
diff --git a/sim/sh64/sim-if.c b/sim/sh64/sim-if.c
index 3c3ce6e..b85f20c 100644
--- a/sim/sh64/sim-if.c
+++ b/sim/sh64/sim-if.c
@@ -193,16 +193,6 @@ sim_create_inferior (sd, abfd, argv, envp)
return SIM_RC_OK;
}
-
-void
-sim_do_command (sd, cmd)
- SIM_DESC sd;
- char *cmd;
-{
- if (sim_args_command (sd, cmd) != SIM_RC_OK)
- sim_io_eprintf (sd, "Unknown command `%s'\n", cmd);
-}
-
/* Disassemble an instruction. */
diff --git a/sim/v850/interp.c b/sim/v850/interp.c
index 21b587e..2c11307 100644
--- a/sim/v850/interp.c
+++ b/sim/v850/interp.c
@@ -329,22 +329,3 @@ sim_store_register (sd, rn, memory, length)
State.regs[rn] = T2H_4 (*(unsigned32*)memory);
return length;
}
-
-void
-sim_do_command (sd, cmd)
- SIM_DESC sd;
- char *cmd;
-{
- char *mm_cmd = "memory-map";
- char *int_cmd = "interrupt";
-
- if (sim_args_command (sd, cmd) != SIM_RC_OK)
- {
- if (strncmp (cmd, mm_cmd, strlen (mm_cmd) == 0))
- sim_io_eprintf (sd, "`memory-map' command replaced by `sim memory'\n");
- else if (strncmp (cmd, int_cmd, strlen (int_cmd)) == 0)
- sim_io_eprintf (sd, "`interrupt' command replaced by `sim watch'\n");
- else
- sim_io_eprintf (sd, "Unknown command `%s'\n", cmd);
- }
-}
--
1.7.5.3