Allow PPC users to select which PPC/RS6000 variant they're debugging
[deliverable/binutils-gdb.git] / gdb / remote-vx.c
index b9fe630d69615a0cfd326a5412110281c6d5ff71..9ad86d4562e939113305181e673e7701f25113bf 100644 (file)
@@ -1,5 +1,5 @@
 /* Memory-access and commands for remote VxWorks processes, for GDB.
-   Copyright 1990, 1991, 1992 Free Software Foundation, Inc.
+   Copyright (C) 1990-95, 1997-98, 1999 Free Software Foundation, Inc.
    Contributed by Wind River Systems and Cygnus Support.
 
 This file is part of GDB.
@@ -68,7 +68,14 @@ extern int stop_soon_quietly;                /* for wait_for_inferior */
 static int net_step ();
 static int net_ptrace_clnt_call ();    /* Forward decl */
 static enum clnt_stat net_clnt_call ();        /* Forward decl */
-extern struct target_ops vx_ops, vx_run_ops;   /* Forward declaration */
+
+/* Target ops structure for accessing memory and such over the net */
+
+static struct target_ops vx_ops;
+
+/* Target ops structure for accessing VxWorks child processes over the net */
+
+static struct target_ops vx_run_ops;
 
 /* Saved name of target host and called function for "info files".
    Both malloc'd.  */
@@ -691,7 +698,7 @@ vx_add_symbols (name, from_tty, text_addr, data_addr, bss_addr)
 
   /* It might be nice to suppress the breakpoint_re_set which happens here
      because we are going to do one again after the objfile_relocate.  */
-  objfile = symbol_file_add (name, from_tty, 0, 0, 0, 0);
+  objfile = symbol_file_add (name, from_tty, 0, 0, 0, 0, 0, 0);
 
   /* This is a (slightly cheesy) way of superceding the old symbols.  A less
      cheesy way would be to find the objfile with the same name and
@@ -1392,116 +1399,69 @@ vx_proc_open (name, from_tty)
   error ("Use the \"run\" command to start a VxWorks process.");
 }
 
-/* Target ops structure for accessing memory and such over the net */
-
-struct target_ops vx_ops ;
-
-static void init_vx_ops(void)
+static void
+init_vx_ops ()
 {
-  vx_ops.to_shortname =   "vxworks";
-  vx_ops.to_longname =   "VxWorks target memory via RPC over TCP/IP";
-  vx_ops.to_doc =   "Use VxWorks target memory.  \n\
-Specify the name of the machine to connect to.",
-    vx_ops.to_open =   vx_open;
-  vx_ops.to_close =   vx_close;
-  vx_ops.to_attach =   vx_attach;
-  vx_ops.to_detach =   0; /* vx_detach, */
-  vx_ops.to_resume =   0;
-  vx_ops.to_wait  =   0; /* resume, wait */
-  vx_ops.to_fetch_registers  =   0;
-  vx_ops.to_store_registers  =   0; /* read_reg, write_reg */
-  vx_ops.to_prepare_to_store =   0; /* prep_to_store, */
-  vx_ops.to_xfer_memory  =   vx_xfer_memory;
-  vx_ops.to_files_info  =   vx_files_info;
-  vx_ops.to_insert_breakpoint =   0;
-  vx_ops.to_remove_breakpoint =   0; /* insert_breakpoint, remove_breakpoint */
-  vx_ops.to_terminal_init  =   0;
-  vx_ops.to_terminal_inferior =   0;
-  vx_ops.to_terminal_ours_for_output =   0;
-  vx_ops.to_terminal_ours  =   0;
-  vx_ops.to_terminal_info  =   0;      /* terminal stuff */
-  vx_ops.to_kill  =   0; /* vx_kill, */
-  vx_ops.to_load  =   vx_load_command;
-  vx_ops.to_lookup_symbol =   vx_lookup_symbol;
-  vx_ops.to_create_inferior =   vx_create_inferior;
-  vx_ops.to_mourn_inferior =   0;  /* mourn_inferior */
-  vx_ops.to_can_run  =   0; /* can_run */
-  vx_ops.to_notice_signals =   0; /* notice_signals */
-  vx_ops.to_thread_alive  =   0; /* thread_alive */
-  vx_ops.to_stop  =   0;                               /* to_stop */
-  vx_ops.to_stratum =   core_stratum;
-  vx_ops.DONT_USE =   0; /* next */
-  vx_ops.to_has_all_memory =   1;
-  vx_ops.to_has_memory =   1;
-  vx_ops.to_has_stack =   0;
-  vx_ops.to_has_registers =   0;
-  vx_ops.to_has_execution =   0;       /* all mem, mem, stack, regs, exec */
-  vx_ops.to_sections =   0;
-  vx_ops.to_sections_end =   0;
-  vx_ops.to_magic =   OPS_MAGIC;               /* Always the last thing */
+  vx_ops.to_shortname = "vxworks";
+  vx_ops.to_longname = "VxWorks target memory via RPC over TCP/IP";
+  vx_ops.to_doc = "Use VxWorks target memory.  \n\
+Specify the name of the machine to connect to.";
+  vx_ops.to_open = vx_open;
+  vx_ops.to_close = vx_close;
+  vx_ops.to_attach = vx_attach;
+  vx_ops.to_xfer_memory = vx_xfer_memory;
+  vx_ops.to_files_info = vx_files_info;
+  vx_ops.to_load = vx_load_command;
+  vx_ops.to_lookup_symbol = vx_lookup_symbol;
+  vx_ops.to_create_inferior = vx_create_inferior;
+  vx_ops.to_stratum = core_stratum;
+  vx_ops.to_has_all_memory = 1;
+  vx_ops.to_has_memory = 1;
+  vx_ops.to_magic = OPS_MAGIC;         /* Always the last thing */
 };
 
-/* Target ops structure for accessing VxWorks child processes over the net */
-
-struct target_ops vx_run_ops ;
-
-static void init_vx_run_ops(void)
+static void
+init_vx_run_ops ()
 {
-  vx_run_ops.to_shortname =   "vxprocess";
-  vx_run_ops.to_longname =   "VxWorks process";
-  vx_run_ops.to_doc =   "VxWorks process; started by the \"run\" command.",
-    vx_run_ops.to_open =   vx_proc_open;
-  vx_run_ops.to_close =   vx_proc_close;
-  vx_run_ops.to_attach =   0;
-  vx_run_ops.to_detach =   vx_detach; 
-  vx_run_ops.to_resume =   vx_resume;
-  vx_run_ops.to_wait  =   vx_wait;
-  vx_run_ops.to_fetch_registers  =   vx_read_register;
-  vx_run_ops.to_store_registers  =   vx_write_register;
-  vx_run_ops.to_prepare_to_store =   vx_prepare_to_store;
-  vx_run_ops.to_xfer_memory  =   vx_xfer_memory;
-  vx_run_ops.to_files_info  =   vx_run_files_info;
-  vx_run_ops.to_insert_breakpoint =   vx_insert_breakpoint;
-  vx_run_ops.to_remove_breakpoint =   vx_remove_breakpoint;
-  vx_run_ops.to_terminal_init  =   0;
-  vx_run_ops.to_terminal_inferior =   0;
-  vx_run_ops.to_terminal_ours_for_output =   0;
-  vx_run_ops.to_terminal_ours  =   0;
-  vx_run_ops.to_terminal_info  =   0;
-  vx_run_ops.to_kill  =   vx_kill;
-  vx_run_ops.to_load  =   vx_load_command;
-  vx_run_ops.to_lookup_symbol =   vx_lookup_symbol;
-  vx_run_ops.to_create_inferior =   0;
-  vx_run_ops.to_mourn_inferior =   vx_mourn_inferior ;
-  vx_run_ops.to_can_run =   0; 
-  vx_run_ops.to_notice_signals  =   0; 
-  vx_run_ops.to_thread_alive =   0; 
-  vx_run_ops.to_stop  =   0;   
-  vx_run_ops.to_stratum  =   process_stratum;
-  vx_run_ops.DONT_USE =   0; 
-  vx_run_ops.to_has_all_memory =   0; 
-  vx_run_ops.to_has_memory =   1;
-  vx_run_ops.to_has_stack =   1;
-  vx_run_ops.to_has_registers =   1;
-  vx_run_ops.to_has_execution =   1;   
-  vx_run_ops.to_sections =   0;
-  vx_run_ops.to_sections_end =   0;    
-  vx_run_ops.to_magic =   OPS_MAGIC;   
+  vx_run_ops.to_shortname = "vxprocess";
+  vx_run_ops.to_longname = "VxWorks process";
+  vx_run_ops.to_doc = "VxWorks process; started by the \"run\" command.";
+  vx_run_ops.to_open = vx_proc_open;
+  vx_run_ops.to_close = vx_proc_close;
+  vx_run_ops.to_detach = vx_detach;
+  vx_run_ops.to_resume = vx_resume;
+  vx_run_ops.to_wait = vx_wait;
+  vx_run_ops.to_fetch_registers = vx_read_register;
+  vx_run_ops.to_store_registers = vx_write_register;
+  vx_run_ops.to_prepare_to_store = vx_prepare_to_store;
+  vx_run_ops.to_xfer_memory = vx_xfer_memory;
+  vx_run_ops.to_files_info = vx_run_files_info;
+  vx_run_ops.to_insert_breakpoint = vx_insert_breakpoint;
+  vx_run_ops.to_remove_breakpoint = vx_remove_breakpoint;
+  vx_run_ops.to_kill = vx_kill;
+  vx_run_ops.to_load = vx_load_command;
+  vx_run_ops.to_lookup_symbol = vx_lookup_symbol;
+  vx_run_ops.to_mourn_inferior = vx_mourn_inferior ;
+  vx_run_ops.to_stratum = process_stratum;
+  vx_run_ops.to_has_memory = 1;
+  vx_run_ops.to_has_stack = 1;
+  vx_run_ops.to_has_registers = 1;
+  vx_run_ops.to_has_execution = 1;     
+  vx_run_ops.to_magic = OPS_MAGIC;     
 }
-/* ==> Remember when reading at end of file, there are two "ops" structs here. */
 \f
 void
 _initialize_vx ()
 {
-  init_vx_ops() ;
-  init_vx_run_ops() ;
+  init_vx_ops ();
+  add_target (&vx_ops);
+  init_vx_run_ops ();
+  add_target (&vx_run_ops);
+
   add_show_from_set
     (add_set_cmd ("vxworks-timeout", class_support, var_uinteger,
                  (char *) &rpcTimeout.tv_sec,
                  "Set seconds to wait for rpc calls to return.\n\
 Set the number of seconds to wait for rpc calls to return.", &setlist),
      &showlist);
-
-  add_target (&vx_ops);
-  add_target (&vx_run_ops);
 }
This page took 0.027062 seconds and 4 git commands to generate.