This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]