]> Git Repo - binutils.git/blobdiff - gdb/remote-hms.c
* elf32-mips.c (_bfd_mips_elf_final_link): Handle the case where
[binutils.git] / gdb / remote-hms.c
index 24865056b0fe88a7fbf42d32bb54859e48a5e488..328fc01965c4173426a55710e379df9bdb1b7c6b 100644 (file)
@@ -17,7 +17,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
 #include "gdbcore.h"
@@ -82,54 +83,56 @@ static char *hms_inits[] =
 {"\003",                       /* Resets the prompt, and clears repeated cmds */
  NULL};
 
-static struct monitor_ops hms_cmds ;
-static void init_hms_cmds(void)
+static struct monitor_ops hms_cmds;
+
+static void
+init_hms_cmds (void)
 {
-  hms_cmds.flags =   MO_CLR_BREAK_USES_ADDR | MO_FILL_USES_ADDR | MO_GETMEM_NEEDS_RANGE;
-  hms_cmds.init =   hms_inits;         /* Init strings */
-  hms_cmds.cont =   "g\r";             /* continue command */
-  hms_cmds.step =   "s\r";             /* single step */
-  hms_cmds.stop =   "\003";            /* ^C interrupts the program */
-  hms_cmds.set_break =   "b %x\r";     /* set a breakpoint */
-  hms_cmds.clr_break =   "b - %x\r";   /* clear a breakpoint */
-  hms_cmds.clr_all_break =   "b -\r";  /* clear all breakpoints */
-  hms_cmds.fill =   "f %x %x %x\r";    /* fill (start end val) */
-  hms_cmds.setmem.cmdb =     "m.b %x=%x\r";    /* setmem.cmdb (addr, value) */
-  hms_cmds.setmem.cmdw =     "m.w %x=%x\r";    /* setmem.cmdw (addr, value) */
-  hms_cmds.setmem.cmdl =     NULL;     /* setmem.cmdl (addr, value) */
-  hms_cmds.setmem.cmdll =     NULL;    /* setmem.cmdll (addr, value) */
-  hms_cmds.setmem.resp_delim =     NULL;/* setreg.resp_delim */
-  hms_cmds.setmem.term =     NULL;     /* setreg.term */
-  hms_cmds.setmem.term_cmd =     NULL; /* setreg.term_cmd */
-  hms_cmds.getmem.cmdb =     "m.b %x %x\r";    /* getmem.cmdb (addr, addr) */
-  hms_cmds.getmem.cmdw =     "m.w %x %x\r";    /* getmem.cmdw (addr, addr) */
-  hms_cmds.getmem.cmdl =     NULL;     /* getmem.cmdl (addr, addr) */
-  hms_cmds.getmem.cmdll =     NULL;    /* getmem.cmdll (addr, addr) */
-  hms_cmds.getmem.resp_delim =     ": ";/* getmem.resp_delim */
-  hms_cmds.getmem.term =     ">";      /* getmem.term */
-  hms_cmds.getmem.term_cmd =     "\003";/* getmem.term_cmd */
-  hms_cmds.setreg.cmd =     "r %s=%x\r";/* setreg.cmd (name, value) */
-  hms_cmds.setreg.resp_delim =     NULL;/* setreg.resp_delim */
-  hms_cmds.setreg.term =     NULL;     /* setreg.term */
-  hms_cmds.setreg.term_cmd =     NULL; /* setreg.term_cmd */
-  hms_cmds.getreg.cmd =     "r %s\r";  /* getreg.cmd (name) */
-  hms_cmds.getreg.resp_delim =     " (";/* getreg.resp_delim */
-  hms_cmds.getreg.term =     ":";      /* getreg.term */
-  hms_cmds.getreg.term_cmd =     "\003";/* getreg.term_cmd */
-  hms_cmds.dump_registers =   "r\r";   /* dump_registers */
-  hms_cmds.register_pattern =   "\\(\\w+\\)=\\([0-9a-fA-F]+\\)";       /* register_pattern */
-  hms_cmds.supply_register =   hms_supply_register;    /* supply_register */
-  hms_cmds.load_routine =   NULL;      /* load_routine (defaults to SRECs) */
-  hms_cmds.load =   "tl\r";            /* download command */
-  hms_cmds.loadresp =   NULL;          /* load response */
-  hms_cmds.prompt =   ">";             /* monitor command prompt */
-  hms_cmds.line_term =   "\r";         /* end-of-command delimitor */
-  hms_cmds.cmd_end =   NULL;           /* optional command terminator */
-  hms_cmds.target =   &hms_ops;                /* target operations */
-  hms_cmds.stopbits =   SERIAL_1_STOPBITS;/* number of stop bits */
-  hms_cmds.regnames =   hms_regnames;  /* registers names */
-  hms_cmds.magic =   MONITOR_OPS_MAGIC;        /* magic */
-} /* init_hms-cmds */
+  hms_cmds.flags = MO_CLR_BREAK_USES_ADDR | MO_FILL_USES_ADDR | MO_GETMEM_NEEDS_RANGE;
+  hms_cmds.init = hms_inits;   /* Init strings */
+  hms_cmds.cont = "g\r";       /* continue command */
+  hms_cmds.step = "s\r";       /* single step */
+  hms_cmds.stop = "\003";      /* ^C interrupts the program */
+  hms_cmds.set_break = "b %x\r";       /* set a breakpoint */
+  hms_cmds.clr_break = "b - %x\r";     /* clear a breakpoint */
+  hms_cmds.clr_all_break = "b -\r";    /* clear all breakpoints */
+  hms_cmds.fill = "f %x %x %x\r";      /* fill (start end val) */
+  hms_cmds.setmem.cmdb = "m.b %x=%x\r";                /* setmem.cmdb (addr, value) */
+  hms_cmds.setmem.cmdw = "m.w %x=%x\r";                /* setmem.cmdw (addr, value) */
+  hms_cmds.setmem.cmdl = NULL; /* setmem.cmdl (addr, value) */
+  hms_cmds.setmem.cmdll = NULL;        /* setmem.cmdll (addr, value) */
+  hms_cmds.setmem.resp_delim = NULL;   /* setreg.resp_delim */
+  hms_cmds.setmem.term = NULL; /* setreg.term */
+  hms_cmds.setmem.term_cmd = NULL;     /* setreg.term_cmd */
+  hms_cmds.getmem.cmdb = "m.b %x %x\r";                /* getmem.cmdb (addr, addr) */
+  hms_cmds.getmem.cmdw = "m.w %x %x\r";                /* getmem.cmdw (addr, addr) */
+  hms_cmds.getmem.cmdl = NULL; /* getmem.cmdl (addr, addr) */
+  hms_cmds.getmem.cmdll = NULL;        /* getmem.cmdll (addr, addr) */
+  hms_cmds.getmem.resp_delim = ": ";   /* getmem.resp_delim */
+  hms_cmds.getmem.term = ">";  /* getmem.term */
+  hms_cmds.getmem.term_cmd = "\003";   /* getmem.term_cmd */
+  hms_cmds.setreg.cmd = "r %s=%x\r";   /* setreg.cmd (name, value) */
+  hms_cmds.setreg.resp_delim = NULL;   /* setreg.resp_delim */
+  hms_cmds.setreg.term = NULL; /* setreg.term */
+  hms_cmds.setreg.term_cmd = NULL;     /* setreg.term_cmd */
+  hms_cmds.getreg.cmd = "r %s\r";      /* getreg.cmd (name) */
+  hms_cmds.getreg.resp_delim = " (";   /* getreg.resp_delim */
+  hms_cmds.getreg.term = ":";  /* getreg.term */
+  hms_cmds.getreg.term_cmd = "\003";   /* getreg.term_cmd */
+  hms_cmds.dump_registers = "r\r";     /* dump_registers */
+  hms_cmds.register_pattern = "\\(\\w+\\)=\\([0-9a-fA-F]+\\)"; /* register_pattern */
+  hms_cmds.supply_register = hms_supply_register;      /* supply_register */
+  hms_cmds.load_routine = NULL;        /* load_routine (defaults to SRECs) */
+  hms_cmds.load = "tl\r";      /* download command */
+  hms_cmds.loadresp = NULL;    /* load response */
+  hms_cmds.prompt = ">";       /* monitor command prompt */
+  hms_cmds.line_term = "\r";   /* end-of-command delimitor */
+  hms_cmds.cmd_end = NULL;     /* optional command terminator */
+  hms_cmds.target = &hms_ops;  /* target operations */
+  hms_cmds.stopbits = SERIAL_1_STOPBITS;       /* number of stop bits */
+  hms_cmds.regnames = hms_regnames;    /* registers names */
+  hms_cmds.magic = MONITOR_OPS_MAGIC;  /* magic */
+}                              /* init_hms-cmds */
 
 static void
 hms_open (args, from_tty)
@@ -144,7 +147,7 @@ int write_dos_tick_delay;
 void
 _initialize_remote_hms ()
 {
-  init_hms_cmds() ;
+  init_hms_cmds ();
   init_monitor_ops (&hms_ops);
 
   hms_ops.to_shortname = "hms";
@@ -157,7 +160,6 @@ Specify the serial device it is connected to (e.g. /dev/ttya).";
   add_target (&hms_ops);
 }
 
-
 #if 0
 /* This is kept here because we used to support the H8/500 in this module,
    and I haven't done the H8/500 yet */
@@ -412,7 +414,7 @@ hms_create_inferior (execfile, args, env)
     error ("Can't pass arguments to remote hms process.");
 
   if (execfile == 0 || exec_bfd == 0)
-    error ("No exec file specified");
+    error ("No executable file specified");
 
   entry_pt = (int) bfd_get_start_address (exec_bfd);
   check_open ();
@@ -1320,33 +1322,75 @@ hms_open (name, from_tty)
 
 /* Define the target subroutine names */
 
-struct target_ops hms_ops =
+struct target_ops hms_ops;
+
+static void
+init_hms_ops (void)
 {
-  "hms", "Remote HMS monitor",
-  "Use the H8 evaluation board running the HMS monitor connected\n\
-by a serial line.",
-
-  hms_open, hms_close,
-  0, hms_detach, hms_resume, hms_wait, /* attach */
-  hms_fetch_register, hms_store_register,
-  hms_prepare_to_store,
-  hms_xfer_inferior_memory,
-  hms_files_info,
-  hms_insert_breakpoint, hms_remove_breakpoint,                /* Breakpoints */
-  0, 0, 0, 0, 0,               /* Terminal handling */
-  hms_kill,                    /* FIXME, kill */
-  generic_load,
-  0,                           /* lookup_symbol */
-  hms_create_inferior,         /* create_inferior */
-  hms_mourn,                   /* mourn_inferior FIXME */
-  0,                           /* can_run */
-  0,                           /* notice_signals */
-  0,                           /* to_thread_alive */
-  0,                           /* to_stop */
-  process_stratum, 0,          /* next */
-  1, 1, 1, 1, 1,               /* all mem, mem, stack, regs, exec */
-  0, 0,                                /* Section pointers */
-  OPS_MAGIC,                   /* Always the last thing */
+  hms_ops.to_shortname = "hms";
+  hms_ops.to_longname = "Remote HMS monitor";
+  hms_ops.to_doc = "Use the H8 evaluation board running the HMS monitor connected\n\
+by a serial line.";
+  hms_ops.to_open = hms_open;
+  hms_ops.to_close = hms_close;
+  hms_ops.to_attach = 0;
+  hms_ops.to_post_attach = NULL;
+  hms_ops.to_require_attach = NULL;
+  hms_ops.to_detach = hms_detach;
+  hms_ops.to_require_detach = NULL;
+  hms_ops.to_resume = hms_resume;
+  hms_ops.to_wait = hms_wait;
+  hms_ops.to_post_wait = NULL;
+  hms_ops.to_fetch_registers = hms_fetch_register;
+  hms_ops.to_store_registers = hms_store_register;
+  hms_ops.to_prepare_to_store = hms_prepare_to_store;
+  hms_ops.to_xfer_memory = hms_xfer_inferior_memory;
+  hms_ops.to_files_info = hms_files_info;
+  hms_ops.to_insert_breakpoint = hms_insert_breakpoint;
+  hms_ops.to_remove_breakpoint = hms_remove_breakpoint;
+  hms_ops.to_terminal_init = 0;
+  hms_ops.to_terminal_inferior = 0;
+  hms_ops.to_terminal_ours_for_output = 0;
+  hms_ops.to_terminal_ours = 0;
+  hms_ops.to_terminal_info = 0;
+  hms_ops.to_kill = hms_kill;
+  hms_ops.to_load = generic_load;
+  hms_ops.to_lookup_symbol = 0;
+  hms_ops.to_create_inferior = hms_create_inferior;
+  hms_ops.to_post_startup_inferior = NULL;
+  hms_ops.to_acknowledge_created_inferior = NULL;
+  hms_ops.to_clone_and_follow_inferior = NULL;
+  hms_ops.to_post_follow_inferior_by_clone = NULL;
+  hms_ops.to_insert_fork_catchpoint = NULL;
+  hms_ops.to_remove_fork_catchpoint = NULL;
+  hms_ops.to_insert_vfork_catchpoint = NULL;
+  hms_ops.to_remove_vfork_catchpoint = NULL;
+  hms_ops.to_has_forked = NULL;
+  hms_ops.to_has_vforked = NULL;
+  hms_ops.to_can_follow_vfork_prior_to_exec = NULL;
+  hms_ops.to_post_follow_vfork = NULL;
+  hms_ops.to_insert_exec_catchpoint = NULL;
+  hms_ops.to_remove_exec_catchpoint = NULL;
+  hms_ops.to_has_execd = NULL;
+  hms_ops.to_reported_exec_events_per_exec_call = NULL;
+  hms_ops.to_has_exited = NULL;
+  hms_ops.to_mourn_inferior = hms_mourn;
+  hms_ops.to_can_run = 0;
+  hms_ops.to_notice_signals = 0;
+  hms_ops.to_thread_alive = 0;
+  hms_ops.to_stop = 0;
+  hms_ops.to_pid_to_exec_file = NULL;
+  hms_ops.to_core_file_to_sym_file = NULL;
+  hms_ops.to_stratum = process_stratum;
+  hms_ops.DONT_USE = 0;
+  hms_ops.to_has_all_memory = 1;
+  hms_ops.to_has_memory = 1;
+  hms_ops.to_has_stack = 1;
+  hms_ops.to_has_registers = 1;
+  hms_ops.to_has_execution = 1;
+  hms_ops.to_sections = 0;
+  hms_ops.to_sections_end = 0;
+  hms_ops.to_magic = OPS_MAGIC;
 };
 
 hms_quiet ()                   /* FIXME - this routine can be removed after Dec '94 */
@@ -1435,6 +1479,7 @@ remove_commands ()
 void
 _initialize_remote_hms ()
 {
+  init_hms_ops ();
   add_target (&hms_ops);
 
   add_com ("hms <command>", class_obscure, hms_com,
@@ -1453,4 +1498,3 @@ _initialize_remote_hms ()
   dev_name = NULL;
 }
 #endif
-
This page took 0.035665 seconds and 4 git commands to generate.