Thu May 21 13:14:25 1998 John Metzler <jmetzler@cygnus.com>

* gnu-nat.c (init_gnu_ops): Initialization of target ops by assignment.
	(_initialize_gnu_nat):      Call new init
	* mac-nat.c (init_child_ops):          Ditto
	(_initialize_mac_nat):                 Ditto
	* monitor.c (init_base_monitor_ops):   Ditto
	(_initialize_remote_monitors) :        Ditto
	* ppc-bdm.c (init_bdm_ppc_ops):        Ditto
	(_initialize_bdm_ppc):                 Ditto
	* remote-adapt.c ( init_adapt_ops):    Ditto
	(_initialize_remote_adapt):            Ditto
	* remote-array.c (init_array_ops) :    Ditto
	(_initialize_array):                   Ditto
	* remote-bug (init_bug_ops) :          Ditto
	(_initialize_remote_bug):              Ditto
	* remote-e7000.c (init_e7000_ops):     Ditto
	(_initialize_remote_e7000) :           Ditto
	* remote-eb.c (init_eb_ops) :          Ditto
	(_initialize_remote_eb) :              Ditto
	*remote-es.c (init_es1800_ops) :       Ditto
	(init_es1800_child_ops) :              Ditto
	(_initialize_es1800) ;                 Ditto
	*remote-hms.c (init_hms_ops):          Ditto
	(_initialize_remote_hms) :             Ditto
	* remote-mm.c (init_mm_ops):           Ditto
	(_initialize_remote_mm) :              Ditto
	* remote-nindy.c (init_nindy_ops):     Ditto
	(_initialize_nindy):                   Ditto
	* remote_nrom.c (init_nrom_ops) :      Ditto
	(_initialize_remote_nrom) :            Ditto
	*remote-os9k (init_rombug_ops) :       Ditto
	(_initialize_remote_os9k) :            Ditto
	*remote-rdi.c (init_rdi_ops) :         Ditto
	(_initialize_remote_rdi) :             Ditto
	* remote-rdp.c (init_remote_rdp_ops) : Ditto
	(_initialize_remote_rdp) :             Ditto
	* remote-sds.c (init_sds_ops) :        Ditto
	(_initialize_remote_sds) :             Ditto
	* remote-sim.c (init_gdbsim_ops) :     Ditto
	(_initialize_remote_sim) :             Ditto
	* remote-st.c (init_st2000_ops):       Ditto
	(_initialize_remote_st2000):           Ditto
	*remote-udi.c (init_udi_ops) :         Ditto
	(_initialize_remote_udi) :             Ditto
	* remote-vx.c (init_vx_ops) :          Ditto
	(init_vx_run_ops) :                    Ditto
	(_initialize_vx) :                     Ditto
	* remote.c (init_remote_ops):          Ditto
	(init_extended_remote_ops):            Ditto
	(_initialize_remote):                  Ditto
	* sparcl-tdep.c (init_sparclite_ops):  Ditto
	(_initialize_sparcl_tdep):             Ditto
	* v850ice.c (init_850ice_ops):         Ditto
	(_initialize_v850ice):                 Ditto
	*win32-nat.c: (init_child_ops):        Ditto
	(_initialize_inftarg):                 Ditto
This commit is contained in:
John Metzler 1998-05-21 20:20:39 +00:00
parent 5e34097b8b
commit c719b71428
24 changed files with 1306 additions and 988 deletions

View file

@ -1,3 +1,60 @@
Thu May 21 13:14:25 1998 John Metzler <jmetzler@cygnus.com>
* gnu-nat.c (init_gnu_ops): Initialization of target ops by assignment.
(_initialize_gnu_nat): Call new init
* mac-nat.c (init_child_ops): Ditto
(_initialize_mac_nat): Ditto
* monitor.c (init_base_monitor_ops): Ditto
(_initialize_remote_monitors) : Ditto
* ppc-bdm.c (init_bdm_ppc_ops): Ditto
(_initialize_bdm_ppc): Ditto
* remote-adapt.c ( init_adapt_ops): Ditto
(_initialize_remote_adapt): Ditto
* remote-array.c (init_array_ops) : Ditto
(_initialize_array): Ditto
* remote-bug (init_bug_ops) : Ditto
(_initialize_remote_bug): Ditto
* remote-e7000.c (init_e7000_ops): Ditto
(_initialize_remote_e7000) : Ditto
* remote-eb.c (init_eb_ops) : Ditto
(_initialize_remote_eb) : Ditto
*remote-es.c (init_es1800_ops) : Ditto
(init_es1800_child_ops) : Ditto
(_initialize_es1800) ; Ditto
*remote-hms.c (init_hms_ops): Ditto
(_initialize_remote_hms) : Ditto
* remote-mm.c (init_mm_ops): Ditto
(_initialize_remote_mm) : Ditto
* remote-nindy.c (init_nindy_ops): Ditto
(_initialize_nindy): Ditto
* remote_nrom.c (init_nrom_ops) : Ditto
(_initialize_remote_nrom) : Ditto
*remote-os9k (init_rombug_ops) : Ditto
(_initialize_remote_os9k) : Ditto
*remote-rdi.c (init_rdi_ops) : Ditto
(_initialize_remote_rdi) : Ditto
* remote-rdp.c (init_remote_rdp_ops) : Ditto
(_initialize_remote_rdp) : Ditto
* remote-sds.c (init_sds_ops) : Ditto
(_initialize_remote_sds) : Ditto
* remote-sim.c (init_gdbsim_ops) : Ditto
(_initialize_remote_sim) : Ditto
* remote-st.c (init_st2000_ops): Ditto
(_initialize_remote_st2000): Ditto
*remote-udi.c (init_udi_ops) : Ditto
(_initialize_remote_udi) : Ditto
* remote-vx.c (init_vx_ops) : Ditto
(init_vx_run_ops) : Ditto
(_initialize_vx) : Ditto
* remote.c (init_remote_ops): Ditto
(init_extended_remote_ops): Ditto
(_initialize_remote): Ditto
* sparcl-tdep.c (init_sparclite_ops): Ditto
(_initialize_sparcl_tdep): Ditto
* v850ice.c (init_850ice_ops): Ditto
(_initialize_v850ice): Ditto
*win32-nat.c: (init_child_ops): Ditto
(_initialize_inftarg): Ditto
Wed May 20 15:29:41 1998 Gavin Koch <gavin@cygnus.com> Wed May 20 15:29:41 1998 Gavin Koch <gavin@cygnus.com>
* mips/tm-tx39.h (MIPS_DEFAULT_FPU_TYPE): Defined as MIPS_FPU_NONE. * mips/tm-tx39.h (MIPS_DEFAULT_FPU_TYPE): Defined as MIPS_FPU_NONE.

View file

@ -67,7 +67,6 @@
#include "notify_S.h" #include "notify_S.h"
#include "process_reply_S.h" #include "process_reply_S.h"
#include "msg_reply_S.h" #include "msg_reply_S.h"
#include "exc_request_U.h" #include "exc_request_U.h"
#include "msg_U.h" #include "msg_U.h"
@ -2341,49 +2340,52 @@ gnu_xfer_memory (memaddr, myaddr, len, write, target)
extern void gnu_store_registers (int regno); extern void gnu_store_registers (int regno);
extern void gnu_fetch_registers (int regno); extern void gnu_fetch_registers (int regno);
struct target_ops gnu_ops = { struct target_ops gnu_ops ;
"GNU", /* to_shortname */
"GNU Hurd process", /* to_longname */
"GNU Hurd process", /* to_doc */
gnu_open, /* to_open */
0, /* to_close */
gnu_attach, /* to_attach */
gnu_detach, /* to_detach */
gnu_resume, /* to_resume */
gnu_wait, /* to_wait */
gnu_fetch_registers, /* to_fetch_registers */
gnu_store_registers, /* to_store_registers */
gnu_prepare_to_store, /* to_prepare_to_store */
gnu_xfer_memory, /* to_xfer_memory */
0, /* to_files_info */
memory_insert_breakpoint, /* to_insert_breakpoint */
memory_remove_breakpoint, /* to_remove_breakpoint */
gnu_terminal_init_inferior, /* to_terminal_init */
terminal_inferior, /* to_terminal_inferior */
terminal_ours_for_output, /* to_terminal_ours_for_output */
terminal_ours, /* to_terminal_ours */
child_terminal_info, /* to_terminal_info */
gnu_kill_inferior, /* to_kill */
0, /* to_load */
0, /* to_lookup_symbol */
gnu_create_inferior, /* to_create_inferior */ static void
gnu_mourn_inferior, /* to_mourn_inferior */ init_gnu_ops(void)
gnu_can_run, /* to_can_run */ {
0, /* to_notice_signals */ gnu_ops.to_shortname = "GNU"; /* to_shortname */
gnu_thread_alive, /* to_thread_alive */ gnu_ops.to_longname = "GNU Hurd process"; /* to_longname */
gnu_stop, /* to_stop */ gnu_ops.to_doc = "GNU Hurd process"; /* to_doc */
process_stratum, /* to_stratum */ gnu_ops.to_open = gnu_open; /* to_open */
0, /* to_next */ gnu_ops.to_close = 0; /* to_close */
1, /* to_has_all_memory */ gnu_ops.to_attach = gnu_attach; /* to_attach */
1, /* to_has_memory */ gnu_ops.to_detach = gnu_detach; /* to_detach */
1, /* to_has_stack */ gnu_ops.to_resume = gnu_resume; /* to_resume */
1, /* to_has_registers */ gnu_ops.to_wait = gnu_wait; /* to_wait */
1, /* to_has_execution */ gnu_ops.to_fetch_registers = gnu_fetch_registers; /* to_fetch_registers */
0, /* sections */ gnu_ops.to_store_registers = gnu_store_registers; /* to_store_registers */
0, /* sections_end */ gnu_ops.to_prepare_to_store = gnu_prepare_to_store; /* to_prepare_to_store */
OPS_MAGIC /* to_magic */ gnu_ops.to_xfer_memory = gnu_xfer_memory; /* to_xfer_memory */
}; gnu_ops.to_files_info = 0; /* to_files_info */
gnu_ops.to_insert_breakpoint = memory_insert_breakpoint;
gnu_ops.to_remove_breakpoint = memory_remove_breakpoint;
gnu_ops.to_terminal_init = gnu_terminal_init_inferior;
gnu_ops.to_terminal_inferior = terminal_inferior;
gnu_ops.to_terminal_ours_for_output = terminal_ours_for_output;
gnu_ops.to_terminal_ours = terminal_ours;
gnu_ops.to_terminal_info = child_terminal_info;
gnu_ops.to_kill = gnu_kill_inferior; /* to_kill */
gnu_ops.to_load = 0; /* to_load */
gnu_ops.to_lookup_symbol = 0; /* to_lookup_symbol */
gnu_ops.to_create_inferior = gnu_create_inferior; /* to_create_inferior */
gnu_ops.to_mourn_inferior = gnu_mourn_inferior; /* to_mourn_inferior */
gnu_ops.to_can_run = gnu_can_run; /* to_can_run */
gnu_ops.to_notice_signals = 0; /* to_notice_signals */
gnu_ops.to_thread_alive = gnu_thread_alive;/* to_thread_alive */
gnu_ops.to_stop = gnu_stop; /* to_stop */
gnu_ops.to_stratum = process_stratum; /* to_stratum */
gnu_ops.DONT_USE = 0; /* to_next */
gnu_ops.to_has_all_memory = 1; /* to_has_all_memory */
gnu_ops.to_has_memory = 1; /* to_has_memory */
gnu_ops.to_has_stack = 1; /* to_has_stack */
gnu_ops.to_has_registers = 1; /* to_has_registers */
gnu_ops.to_has_execution = 1; /* to_has_execution */
gnu_ops.to_sections = 0; /* sections */
gnu_ops.to_sections_end = 0; /* sections_end */
gnu_ops.to_magic = OPS_MAGIC ; /* to_magic */
} /* init_gnu_ops */
/* Return printable description of proc. */ /* Return printable description of proc. */
char *proc_string (struct proc *proc) char *proc_string (struct proc *proc)
@ -3132,9 +3134,8 @@ void
_initialize_gnu_nat () _initialize_gnu_nat ()
{ {
proc_server = getproc (); proc_server = getproc ();
init_gnu_ops() ;
add_target (&gnu_ops); add_target (&gnu_ops);
add_task_commands (); add_task_commands ();
add_thread_commands (); add_thread_commands ();

View file

@ -332,54 +332,55 @@ info_proc (args, from_tty)
} }
} }
struct target_ops child_ops = struct target_ops child_ops ;
static void init_child_ops(void)
{ {
"mac", /* to_shortname */ child_ops.to_shortname = "mac";
"MacOS application", /* to_longname */ child_ops.to_longname = "MacOS application";
"MacOS application (started by the \"run\" command).", /* to_doc */ child_ops.to_doc = "MacOS application (started by the \"run\" command).";
child_open, /* to_open */ child_ops.to_open = child_open;
child_close, /* to_close */ child_ops.to_close = child_close;
child_attach, /* to_attach */ child_ops.to_attach = child_attach;
child_detach, /* to_detach */ child_ops.to_detach = child_detach;
child_resume, /* to_resume */ child_ops.to_resume = child_resume;
child_wait, /* to_wait */ child_ops.to_wait = child_wait;
child_fetch_inferior_registers,/* to_fetch_registers */ child_ops.to_fetch_registers = child_fetch_inferior_registers;
child_store_inferior_registers,/* to_store_registers */ child_ops.to_store_registers = child_store_inferior_registers;
child_prepare_to_store, /* to_prepare_to_store */ child_ops.to_prepare_to_store = child_prepare_to_store;
child_xfer_memory, /* to_xfer_memory */ child_ops.to_xfer_memory = child_xfer_memory;
child_files_info, /* to_files_info */ child_ops.to_files_info = child_files_info;
memory_insert_breakpoint, /* to_insert_breakpoint */ child_ops.to_insert_breakpoint = memory_insert_breakpoint;
memory_remove_breakpoint, /* to_remove_breakpoint */ child_ops.to_remove_breakpoint = memory_remove_breakpoint;
0, /* to_terminal_init */ child_ops.to_terminal_init = 0;
0, /* to_terminal_inferior */ child_ops.to_terminal_inferior = 0;
0, /* to_terminal_ours_for_output */ child_ops.to_terminal_ours_for_output = 0;
0, /* to_terminal_ours */ child_ops.to_terminal_ours = 0;
0, /* to_terminal_info */ child_ops.to_terminal_info = 0;
child_kill_inferior, /* to_kill */ child_ops.to_kill = child_kill_inferior;
0, /* to_load */ child_ops.to_load = 0;
0, /* to_lookup_symbol */ child_ops.to_lookup_symbol = 0;
child_create_inferior, /* to_create_inferior */ child_ops.to_create_inferior = child_create_inferior;
child_mourn_inferior, /* to_mourn_inferior */ child_ops.to_mourn_inferior = child_mourn_inferior;
child_can_run, /* to_can_run */ child_ops.to_can_run = child_can_run;
0, /* to_notice_signals */ child_ops.to_notice_signals = 0;
0, /* to_thread_alive */ child_ops.to_thread_alive = 0;
child_stop, /* to_stop */ child_ops.to_stop = child_stop;
process_stratum, /* to_stratum */ child_ops.to_stratum = process_stratum;
0, /* to_next */ child_ops.DONT_USE = 0;
1, /* to_has_all_memory */ child_ops.to_has_all_memory = 1;
1, /* to_has_memory */ child_ops.to_has_memory = 1;
1, /* to_has_stack */ child_ops.to_has_stack = 1;
1, /* to_has_registers */ child_ops.to_has_registers = 1;
1, /* to_has_execution */ child_ops.to_has_execution = 1;
0, /* to_sections */ child_ops.to_sections = 0;
0, /* to_sections_end */ child_ops.to_sections_end = 0;
OPS_MAGIC /* to_magic */ child_ops.to_magic = OPS_MAGIC;
}; };
void void
_initialize_mac_nat () _initialize_mac_nat ()
{ {
add_target (&child_ops); init_child_ops() ;
add_info ("proc", info_proc, add_info ("proc", info_proc,
"Show information about processes."); "Show information about processes.");

View file

@ -306,54 +306,58 @@ bdm_ppc_store_registers (regno)
/* Define the target subroutine names */ /* Define the target subroutine names */
struct target_ops bdm_ppc_ops = { struct target_ops bdm_ppc_ops ;
"ocd", /* to_shortname */
"Remote target with On-Chip Debugging", /* to_longname */ static void init_bdm_ppc_ops(void)
"Use a remote target with On-Chip Debugging. To use a target box,\n\ {
bdm_ppc_ops.to_shortname = "ocd";
bdm_ppc_ops.to_longname = "Remote target with On-Chip Debugging";
bdm_ppc_ops.to_doc = "Use a remote target with On-Chip Debugging. To use a target box;\n\
specify the serial device it is connected to (e.g. /dev/ttya). To use\n\ specify the serial device it is connected to (e.g. /dev/ttya). To use\n\
a wiggler, specify wiggler and then the port it is connected to\n\ a wiggler, specify wiggler and then the port it is connected to\n\
(e.g. wiggler lpt1).", /* to_doc */ (e.g. wiggler lpt1)." ; /* to_doc */
bdm_ppc_open, /* to_open */ bdm_ppc_ops.to_open = bdm_ppc_open;
ocd_close, /* to_close */ bdm_ppc_ops.to_close = ocd_close;
NULL, /* to_attach */ bdm_ppc_ops.to_attach = NULL;
ocd_detach, /* to_detach */ bdm_ppc_ops.to_detach = ocd_detach;
ocd_resume, /* to_resume */ bdm_ppc_ops.to_resume = ocd_resume;
bdm_ppc_wait, /* to_wait */ bdm_ppc_ops.to_wait = bdm_ppc_wait;
bdm_ppc_fetch_registers, /* to_fetch_registers */ bdm_ppc_ops.to_fetch_registers = bdm_ppc_fetch_registers;
bdm_ppc_store_registers, /* to_store_registers */ bdm_ppc_ops.to_store_registers = bdm_ppc_store_registers;
ocd_prepare_to_store, /* to_prepare_to_store */ bdm_ppc_ops.to_prepare_to_store = ocd_prepare_to_store;
ocd_xfer_memory, /* to_xfer_memory */ bdm_ppc_ops.to_xfer_memory = ocd_xfer_memory;
ocd_files_info, /* to_files_info */ bdm_ppc_ops.to_files_info = ocd_files_info;
ocd_insert_breakpoint, /* to_insert_breakpoint */ bdm_ppc_ops.to_insert_breakpoint = ocd_insert_breakpoint;
ocd_remove_breakpoint, /* to_remove_breakpoint */ bdm_ppc_ops.to_remove_breakpoint = ocd_remove_breakpoint;
NULL, /* to_terminal_init */ bdm_ppc_ops.to_terminal_init = NULL;
NULL, /* to_terminal_inferior */ bdm_ppc_ops.to_terminal_inferior = NULL;
NULL, /* to_terminal_ours_for_output */ bdm_ppc_ops.to_terminal_ours_for_output = NULL;
NULL, /* to_terminal_ours */ bdm_ppc_ops.to_terminal_ours = NULL;
NULL, /* to_terminal_info */ bdm_ppc_ops.to_terminal_info = NULL;
ocd_kill, /* to_kill */ bdm_ppc_ops.to_kill = ocd_kill;
ocd_load, /* to_load */ bdm_ppc_ops.to_load = ocd_load;
NULL, /* to_lookup_symbol */ bdm_ppc_ops.to_lookup_symbol = NULL;
ocd_create_inferior, /* to_create_inferior */ bdm_ppc_ops.to_create_inferior = ocd_create_inferior;
ocd_mourn, /* to_mourn_inferior */ bdm_ppc_ops.to_mourn_inferior = ocd_mourn;
0, /* to_can_run */ bdm_ppc_ops.to_can_run = 0;
0, /* to_notice_signals */ bdm_ppc_ops.to_notice_signals = 0;
ocd_thread_alive, /* to_thread_alive */ bdm_ppc_ops.to_thread_alive = ocd_thread_alive;
ocd_stop, /* to_stop */ bdm_ppc_ops.to_stop = ocd_stop;
process_stratum, /* to_stratum */ bdm_ppc_ops.to_stratum = process_stratum;
NULL, /* to_next */ bdm_ppc_ops.DONT_USE = NULL;
1, /* to_has_all_memory */ bdm_ppc_ops.to_has_all_memory = 1;
1, /* to_has_memory */ bdm_ppc_ops.to_has_memory = 1;
1, /* to_has_stack */ bdm_ppc_ops.to_has_stack = 1;
1, /* to_has_registers */ bdm_ppc_ops.to_has_registers = 1;
1, /* to_has_execution */ bdm_ppc_ops.to_has_execution = 1;
NULL, /* sections */ bdm_ppc_ops.to_sections = NULL;
NULL, /* sections_end */ bdm_ppc_ops.to_sections_end = NULL;
OPS_MAGIC /* to_magic */ bdm_ppc_ops.to_magic = OPS_MAGIC ;
}; } /* init_bdm_ppc_ops */
void void
_initialize_bdm_ppc () _initialize_bdm_ppc ()
{ {
init_bdm_ppc_ops() ;
add_target (&bdm_ppc_ops); add_target (&bdm_ppc_ops);
} }

View file

@ -29,6 +29,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
o - I can't get 19200 baud rate to work. o - I can't get 19200 baud rate to work.
7/91 o - Freeze mode tracing can be done on a 29050. */ 7/91 o - Freeze mode tracing can be done on a 29050. */
#include "defs.h" #include "defs.h"
#include "gdb_string.h" #include "gdb_string.h"
#include "inferior.h" #include "inferior.h"
@ -42,6 +44,40 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "target.h" #include "target.h"
#include "gdbcore.h" #include "gdbcore.h"
/* This processor is getting rusty but I am trying to keep it
up to date at least with data structure changes.
Activate this block to compile just this file.
*/
#define COMPILE_CHECK 0
#if COMPILE_CHECK
#define Q_REGNUM 0
#define VAB_REGNUM 0
#define CPS_REGNUM 0
#define IPA_REGNUM 0
#define IPB_REGNUM 0
#define GR1_REGNUM 0
#define LR0_REGNUM 0
#define IPC_REGNUM 0
#define CR_REGNUM 0
#define BP_REGNUM 0
#define FC_REGNUM 0
#define INTE_REGNUM 0
#define EXO_REGNUM 0
#define GR96_REGNUM 0
#define NPC_REGNUM
#define FPE_REGNUM 0
#define PC2_REGNUM 0
#define FPS_REGNUM 0
#define ALU_REGNUM 0
#define LRU_REGNUM 0
#define TERMINAL int
#define RAW 1
#define ANYP 1
extern int a29k_freeze_mode ;
extern int processor_type ;
extern char * processor_name ;
#endif
/* External data declarations */ /* External data declarations */
extern int stop_soon_quietly; /* for wait_for_inferior */ extern int stop_soon_quietly; /* for wait_for_inferior */
@ -85,6 +121,7 @@ rawmode(desc, turnon)
int desc; int desc;
int turnon; int turnon;
{ {
TERMINAL sg; TERMINAL sg;
if (desc < 0) if (desc < 0)
@ -511,6 +548,7 @@ the baud rate, and the name of the program to run on the remote system.");
if (adapt_desc < 0) if (adapt_desc < 0)
perror_with_name (dev_name); perror_with_name (dev_name);
ioctl (adapt_desc, TIOCGETP, &sg); ioctl (adapt_desc, TIOCGETP, &sg);
#if ! defined(COMPILE_CHECK)
#ifdef HAVE_TERMIO #ifdef HAVE_TERMIO
sg.c_cc[VMIN] = 0; /* read with timeout. */ sg.c_cc[VMIN] = 0; /* read with timeout. */
sg.c_cc[VTIME] = timeout * 10; sg.c_cc[VTIME] = timeout * 10;
@ -525,7 +563,7 @@ the baud rate, and the name of the program to run on the remote system.");
ioctl (adapt_desc, TIOCSETP, &sg); ioctl (adapt_desc, TIOCSETP, &sg);
adapt_stream = fdopen (adapt_desc, "r+"); adapt_stream = fdopen (adapt_desc, "r+");
#endif /* compile_check */
push_target (&adapt_ops); push_target (&adapt_ops);
#ifndef HAVE_TERMIO #ifndef HAVE_TERMIO
@ -1325,34 +1363,55 @@ adapt_com (args, fromtty)
/* Define the target subroutine names */ /* Define the target subroutine names */
struct target_ops adapt_ops = { struct target_ops adapt_ops ;
"adapt", "Remote AMD `Adapt' target", static void init_adapt_ops(void)
"Remote debug an AMD 290*0 using an `Adapt' monitor via RS232", {
adapt_open, adapt_close, adapt_ops.to_shortname = "adapt";
adapt_attach, adapt_detach, adapt_resume, adapt_wait, adapt_ops.to_longname = "Remote AMD `Adapt' target";
adapt_fetch_register, adapt_store_register, adapt_ops.to_doc = "Remote debug an AMD 290*0 using an `Adapt' monitor via RS232";
adapt_prepare_to_store, adapt_ops.to_open = adapt_open;
adapt_xfer_inferior_memory, adapt_ops.to_close = adapt_close;
adapt_files_info, adapt_ops.to_attach = adapt_attach;
adapt_insert_breakpoint, adapt_remove_breakpoint, /* Breakpoints */ adapt_ops.to_detach = adapt_detach;
0, 0, 0, 0, 0, /* Terminal handling */ adapt_ops.to_resume = adapt_resume;
adapt_kill, /* FIXME, kill */ adapt_ops.to_wait = adapt_wait;
adapt_load, adapt_ops.to_fetch_registers = adapt_fetch_register;
0, /* lookup_symbol */ adapt_ops.to_store_registers = adapt_store_register;
adapt_create_inferior, /* create_inferior */ adapt_ops.to_prepare_to_store = adapt_prepare_to_store;
adapt_mourn, /* mourn_inferior FIXME */ adapt_ops.to_xfer_memory = adapt_xfer_inferior_memory;
0, /* can_run */ adapt_ops.to_files_info = adapt_files_info;
0, /* notice_signals */ adapt_ops.to_insert_breakpoint = adapt_insert_breakpoint;
0, /* to_stop */ adapt_ops.to_remove_breakpoint = adapt_remove_breakpoint;
process_stratum, 0, /* next */ adapt_ops.to_terminal_init = 0;
1, 1, 1, 1, 1, /* all mem, mem, stack, regs, exec */ adapt_ops.to_terminal_inferior = 0;
0,0, /* Section pointers */ adapt_ops.to_terminal_ours_for_output = 0;
OPS_MAGIC, /* Always the last thing */ adapt_ops.to_terminal_ours = 0;
}; adapt_ops.to_terminal_info = 0;
adapt_ops.to_kill = adapt_kill;
adapt_ops.to_load = adapt_load;
adapt_ops.to_lookup_symbol = 0;
adapt_ops.to_create_inferior = adapt_create_inferior;
adapt_ops.to_mourn_inferior = adapt_mourn;
adapt_ops.to_can_run = 0;
adapt_ops.to_notice_signals = 0;
adapt_ops.to_thread_alive = 0;
adapt_ops.to_stop = 0 ; /* process_stratum; */
adapt_ops.to_stratum = 0;
adapt_ops.DONT_USE = 0 ;
adapt_ops.to_has_all_memory = 1;
adapt_ops.to_has_memory = 1;
adapt_ops.to_has_stack = 1;
adapt_ops.to_has_registers = 1;
adapt_ops.to_has_execution = 0;
adapt_ops.to_sections = 0;
adapt_ops.to_sections_end = 0 ;
adapt_ops.to_magic = OPS_MAGIC;
} /* init_adapt_ops */
void void
_initialize_remote_adapt () _initialize_remote_adapt ()
{ {
init_adapt_ops() ;
add_target (&adapt_ops); add_target (&adapt_ops);
add_com ("adapt <command>", class_obscure, adapt_com, add_com ("adapt <command>", class_obscure, adapt_com,
"Send a command to the AMD Adapt remote monitor."); "Send a command to the AMD Adapt remote monitor.");

View file

@ -122,50 +122,52 @@ serial_t array_desc = NULL;
extern char *tmp_mips_processor_type; extern char *tmp_mips_processor_type;
extern int mips_set_processor_type(); extern int mips_set_processor_type();
static struct target_ops array_ops = { static struct target_ops array_ops ;
"array", /* to_shortname */ static void init_array_ops(void)
/* to_longname */ {
"Debug using the standard GDB remote protocol for the Array Tech target.", array_ops.to_shortname = "array";
/* to_doc */ array_ops.to_longname =
"Debug using the standard GDB remote protocol for the Array Tech target.\n\ "Debug using the standard GDB remote protocol for the Array Tech target.",
Specify the serial device it is connected to (e.g. /dev/ttya).", array_ops.to_doc =
array_open, /* to_open */ "Debug using the standard GDB remote protocol for the Array Tech target.\n\
array_close, /* to_close */ Specify the serial device it is connected to (e.g. /dev/ttya)." ;
NULL, /* to_attach */ array_ops.to_open = array_open;
array_detach, /* to_detach */ array_ops.to_close = array_close;
array_resume, /* to_resume */ array_ops.to_attach = NULL;
array_wait, /* to_wait */ array_ops.to_detach = array_detach;
array_fetch_registers, /* to_fetch_registers */ array_ops.to_resume = array_resume;
array_store_registers, /* to_store_registers */ array_ops.to_wait = array_wait;
array_prepare_to_store, /* to_prepare_to_store */ array_ops.to_fetch_registers = array_fetch_registers;
array_xfer_memory, /* to_xfer_memory */ array_ops.to_store_registers = array_store_registers;
array_files_info, /* to_files_info */ array_ops.to_prepare_to_store = array_prepare_to_store;
array_insert_breakpoint, /* to_insert_breakpoint */ array_ops.to_xfer_memory = array_xfer_memory;
array_remove_breakpoint, /* to_remove_breakpoint */ array_ops.to_files_info = array_files_info;
0, /* to_terminal_init */ array_ops.to_insert_breakpoint = array_insert_breakpoint;
0, /* to_terminal_inferior */ array_ops.to_remove_breakpoint = array_remove_breakpoint;
0, /* to_terminal_ours_for_output */ array_ops.to_terminal_init = 0;
0, /* to_terminal_ours */ array_ops.to_terminal_inferior = 0;
0, /* to_terminal_info */ array_ops.to_terminal_ours_for_output = 0;
array_kill, /* to_kill */ array_ops.to_terminal_ours = 0;
0, /* to_load */ array_ops.to_terminal_info = 0;
0, /* to_lookup_symbol */ array_ops.to_kill = array_kill;
array_create_inferior, /* to_create_inferior */ array_ops.to_load = 0;
array_mourn_inferior, /* to_mourn_inferior */ array_ops.to_lookup_symbol = 0;
0, /* to_can_run */ array_ops.to_create_inferior = array_create_inferior;
0, /* to_notice_signals */ array_ops.to_mourn_inferior = array_mourn_inferior;
0, /* to_thread_alive */ array_ops.to_can_run = 0;
0, /* to_stop */ array_ops.to_notice_signals = 0;
process_stratum, /* to_stratum */ array_ops.to_thread_alive = 0;
0, /* to_next */ array_ops.to_stop = 0;
1, /* to_has_all_memory */ array_ops.to_stratum = process_stratum;
1, /* to_has_memory */ array_ops.DONT_USE = 0;
1, /* to_has_stack */ array_ops.to_has_all_memory = 1;
1, /* to_has_registers */ array_ops.to_has_memory = 1;
1, /* to_has_execution */ array_ops.to_has_stack = 1;
0, /* sections */ array_ops.to_has_registers = 1;
0, /* sections_end */ array_ops.to_has_execution = 1;
OPS_MAGIC /* to_magic */ array_ops.to_sections = 0;
array_ops.to_sections_end = 0;
array_ops.to_magic = OPS_MAGIC;
}; };
/* /*
@ -1462,5 +1464,6 @@ _initialize_remote_monitors ()
void void
_initialize_array () _initialize_array ()
{ {
init_array_ops() ;
add_target (&array_ops); add_target (&array_ops);
} }

View file

@ -37,6 +37,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "remote-utils.h" #include "remote-utils.h"
extern int sleep(); extern int sleep();
/* External data declarations */ /* External data declarations */
@ -960,35 +961,56 @@ bug_clear_breakpoints ()
return(0); return(0);
} }
struct target_ops bug_ops = struct target_ops bug_ops ;
{
"bug", "Remote BUG monitor",
"Use the mvme187 board running the BUG monitor connected by a serial line.",
bug_open, gr_close, static void init_bug_ops(void)
0, gr_detach, bug_resume, bug_wait, /* attach */ {
bug_fetch_register, bug_store_register, bug_ops.to_shortname = "bug"; "Remote BUG monitor",
gr_prepare_to_store, bug_ops.to_longname = "Use the mvme187 board running the BUG monitor connected by a serial line.";
bug_xfer_memory, bug_ops.to_doc = " ";
gr_files_info, bug_ops.to_open = bug_open;
bug_insert_breakpoint, bug_remove_breakpoint, /* Breakpoints */ bug_ops.to_close = gr_close;
0, 0, 0, 0, 0, /* Terminal handling */ bug_ops.to_attach = 0;
gr_kill, /* FIXME, kill */ bug_ops.to_detach = gr_detach;
bug_load, bug_ops.to_resume = bug_resume;
0, /* lookup_symbol */ bug_ops.to_wait = bug_wait;
gr_create_inferior, /* create_inferior */ bug_ops.to_fetch_registers = bug_fetch_register;
gr_mourn, /* mourn_inferior FIXME */ bug_ops.to_store_registers = bug_store_register;
0, /* can_run */ bug_ops.to_prepare_to_store = gr_prepare_to_store;
0, /* notice_signals */ bug_ops.to_xfer_memory = bug_xfer_memory;
process_stratum, 0, /* next */ bug_ops.to_files_info = gr_files_info;
1, 1, 1, 1, 1, /* all mem, mem, stack, regs, exec */ bug_ops.to_insert_breakpoint = bug_insert_breakpoint;
0, 0, /* Section pointers */ bug_ops.to_remove_breakpoint = bug_remove_breakpoint;
OPS_MAGIC, /* Always the last thing */ bug_ops.to_terminal_init = 0;
}; bug_ops.to_terminal_inferior = 0;
bug_ops.to_terminal_ours_for_output = 0;
bug_ops.to_terminal_ours = 0;
bug_ops.to_terminal_info = 0;
bug_ops.to_kill = gr_kill;
bug_ops.to_load = bug_load;
bug_ops.to_lookup_symbol = 0;
bug_ops.to_create_inferior = gr_create_inferior;
bug_ops.to_mourn_inferior = gr_mourn;
bug_ops.to_can_run = 0;
bug_ops.to_notice_signals = 0;
bug_ops.to_thread_alive = 0 ;
bug_ops.to_stop = 0;
bug_ops.to_stratum = process_stratum ;
bug_ops.DONT_USE = 0;
bug_ops.to_has_all_memory = 1;
bug_ops.to_has_memory = 1;
bug_ops.to_has_stack = 1;
bug_ops.to_has_registers = 0;
bug_ops.to_has_execution = 0;
bug_ops.to_sections = 0 ;
bug_ops.to_sections_end = 0 ;
bug_ops.to_magic = OPS_MAGIC; /* Always the last thing */
} /* init_bug_ops */
void void
_initialize_remote_bug () _initialize_remote_bug ()
{ {
init_bug_ops() ;
add_target (&bug_ops); add_target (&bug_ops);
add_show_from_set add_show_from_set

View file

@ -974,36 +974,58 @@ eb_mourn_inferior ()
} }
/* Define the target subroutine names */ /* Define the target subroutine names */
struct target_ops eb_ops = { struct target_ops eb_ops ;
"amd-eb", "Remote serial AMD EBMON target", static void init_eb_ops(void)
"Use a remote computer running EBMON connected by a serial line.\n\ {
eb_ops.to_shortname = "amd-eb";
eb_ops.to_longname = "Remote serial AMD EBMON target";
eb_ops.to_doc = "Use a remote computer running EBMON connected by a serial line.\n\
Arguments are the name of the device for the serial line,\n\ Arguments are the name of the device for the serial line,\n\
the speed to connect at in bits per second, and the filename of the\n\ the speed to connect at in bits per second, and the filename of the\n\
executable as it exists on the remote computer. For example,\n\ executable as it exists on the remote computer. For example,\n\
target amd-eb /dev/ttya 9600 demo", target amd-eb /dev/ttya 9600 demo",
eb_open, eb_close, eb_ops.to_open = eb_open;
0, eb_detach, eb_resume, eb_wait, eb_ops.to_close = eb_close;
eb_fetch_register, eb_store_register, eb_ops.to_attach = 0;
eb_prepare_to_store, eb_ops.to_detach = eb_detach;
eb_xfer_inferior_memory, eb_files_info, eb_ops.to_resume = eb_resume;
0, 0, /* Breakpoints */ eb_ops.to_wait = eb_wait;
0, 0, 0, 0, 0, /* Terminal handling */ eb_ops.to_fetch_registers = eb_fetch_register;
eb_kill, eb_ops.to_store_registers = eb_store_register;
generic_load, /* load */ eb_ops.to_prepare_to_store = eb_prepare_to_store;
0, /* lookup_symbol */ eb_ops.to_xfer_memory = eb_xfer_inferior_memory;
eb_create_inferior, eb_ops.to_files_info = eb_files_info;
eb_mourn_inferior, eb_ops.to_insert_breakpoint = 0;
0, /* can_run */ eb_ops.to_remove_breakpoint = 0; /* Breakpoints */
0, /* notice_signals */ eb_ops.to_terminal_init = 0;
0, /* to_stop */ eb_ops.to_terminal_inferior = 0;
process_stratum, 0, /* next */ eb_ops.to_terminal_ours_for_output = 0;
1, 1, 1, 1, 1, /* all mem, mem, stack, regs, exec */ eb_ops.to_terminal_ours = 0;
0, 0, /* Section pointers */ eb_ops.to_terminal_info = 0; /* Terminal handling */
OPS_MAGIC, /* Always the last thing */ eb_ops.to_kill = eb_kill;
eb_ops.to_load = generic_load; /* load */
eb_ops.to_lookup_symbol = 0; /* lookup_symbol */
eb_ops.to_create_inferior = eb_create_inferior;
eb_ops.to_mourn_inferior = eb_mourn_inferior;
eb_ops.to_can_run = 0; /* can_run */
eb_ops.to_notice_signals = 0; /* notice_signals */
eb_ops.to_thread_alive = 0; /* thread-alive */
eb_ops.to_stop = 0; /* to_stop */
eb_ops.to_stratum = process_stratum;
eb_ops.DONT_USE = 0; /* next */
eb_ops.to_has_all_memory = 1;
eb_ops.to_has_memory = 1;
eb_ops.to_has_stack = 1;
eb_ops.to_has_registers = 1;
eb_ops.to_has_execution = 1; /* all mem, mem, stack, regs, exec */
eb_ops.to_sections = 0; /* sections */
eb_ops.to_sections_end = 0; /* sections end */
eb_ops.to_magic = OPS_MAGIC; /* Always the last thing */
}; };
void void
_initialize_remote_eb () _initialize_remote_eb ()
{ {
init_eb_ops() ;
add_target (&eb_ops); add_target (&eb_ops);
} }

View file

@ -2042,105 +2042,105 @@ es1800_child_detach (args, from_tty)
/* Define the target subroutine names */ /* Define the target subroutine names */
struct target_ops es1800_ops = struct target_ops es1800_ops ;
static void init_es1800_ops(void)
{ {
"es1800", /* to_shortname */ es1800_ops.to_shortname = "es1800";
/* to_longname */ es1800_ops.to_longname = "Remote serial target in ES1800-emulator protocol";
"Remote serial target in ES1800-emulator protocol", es1800_ops.to_doc = "Remote debugging on the es1800 emulator via a serial line.\n\
/* to_doc */ Specify the serial device it is connected to (e.g. /dev/ttya)." ;
"Remote debugging on the es1800 emulator via a serial line.\n\ es1800_ops.to_open = es1800_open;
Specify the serial device it is connected to (e.g. /dev/ttya).", es1800_ops.to_close = es1800_close;
es1800_open, /* to_open */ es1800_ops.to_attach = es1800_attach;
es1800_close, /* to_close */ es1800_ops.to_detach = es1800_detach;
es1800_attach, /* to_attach */ es1800_ops.to_resume = es1800_resume;
es1800_detach, /* to_detach */ es1800_ops.to_wait = NULL;
es1800_resume, /* to_resume */ es1800_ops.to_fetch_registers = NULL;
NULL, /* to_wait */ es1800_ops.to_store_registers = NULL;
NULL, /* to_fetch_registers */ es1800_ops.to_prepare_to_store = es1800_prepare_to_store;
NULL, /* to_store_registers */ es1800_ops.to_xfer_memory = es1800_xfer_inferior_memory;
es1800_prepare_to_store, /* to_prepare_to_store */ es1800_ops.to_files_info = es1800_files_info;
es1800_xfer_inferior_memory, /* to_xfer_memory */ es1800_ops.to_insert_breakpoint = es1800_insert_breakpoint;
es1800_files_info, /* to_files_info */ es1800_ops.to_remove_breakpoint = es1800_remove_breakpoint;
es1800_insert_breakpoint, /* to_insert_breakpoint */ es1800_ops.to_terminal_init = NULL;
es1800_remove_breakpoint, /* to_remove_breakpoint */ es1800_ops.to_terminal_inferior = NULL;
NULL, /* to_terminal_init */ es1800_ops.to_terminal_ours_for_output = NULL;
NULL, /* to_terminal_inferior */ es1800_ops.to_terminal_ours = NULL;
NULL, /* to_terminal_ours_for_output */ es1800_ops.to_terminal_info = NULL;
NULL, /* to_terminal_ours */ es1800_ops.to_kill = NULL;
NULL, /* to_terminal_info */ es1800_ops.to_load = es1800_load;
NULL, /* to_kill */ es1800_ops.to_lookup_symbol = NULL;
es1800_load, /* to_load */ es1800_ops.to_create_inferior = es1800_create_inferior;
NULL, /* to_lookup_symbol */ es1800_ops.to_mourn_inferior = NULL;
es1800_create_inferior, /* to_create_inferior */ es1800_ops.to_can_run = 0;
NULL, /* to_mourn_inferior */ es1800_ops.to_notice_signals = 0;
0, /* to_can_run */ es1800_ops.to_thread_alive = 0;
0, /* to_notice_signals */ es1800_ops.to_stop = 0;
0, /* to_thread_alive */ es1800_ops.to_stratum = core_stratum;
0, /* to_stop */ es1800_ops.DONT_USE = 0;
core_stratum, /* to_stratum */ es1800_ops.to_has_all_memory = 0;
0, /* to_next */ es1800_ops.to_has_memory = 1;
0, /* to_has_all_memory */ es1800_ops.to_has_stack = 0;
1, /* to_has_memory */ es1800_ops.to_has_registers = 0;
0, /* to_has_stack */ es1800_ops.to_has_execution = 0;
0, /* to_has_registers */ es1800_ops.to_sections = NULL;
0, /* to_has_execution */ es1800_ops.to_sections_end = NULL;
NULL, /* to_sections */ es1800_ops.to_magic = OPS_MAGIC ;
NULL, /* to_sections_end */ }
OPS_MAGIC /* to_magic (always last) */
};
/* Define the target subroutine names */ /* Define the target subroutine names */
struct target_ops es1800_child_ops = struct target_ops es1800_child_ops ;
static void init_es1800_child_ops(void)
{ {
"es1800_process", /* to_shortname */ es1800_ops.to_shortname = "es1800_process";
/* to_longname */ es1800_ops.to_longname = "Remote serial target in ES1800-emulator protocol";
"Remote serial target in ES1800-emulator protocol", es1800_ops.to_doc = "Remote debugging on the es1800 emulator via a serial line.\n\
/* to_doc */ Specify the serial device it is connected to (e.g. /dev/ttya).";
"Remote debugging on the es1800 emulator via a serial line.\n\ es1800_ops.to_open = es1800_child_open;
Specify the serial device it is connected to (e.g. /dev/ttya).", es1800_ops.to_close = NULL;
es1800_child_open, /* to_open */ es1800_ops.to_attach = es1800_attach;
NULL, /* to_close */ es1800_ops.to_detach = es1800_child_detach;
es1800_attach, /* to_attach */ es1800_ops.to_resume = es1800_resume;
es1800_child_detach, /* to_detach */ es1800_ops.to_wait = es1800_wait;
es1800_resume, /* to_resume */ es1800_ops.to_fetch_registers = es1800_fetch_register;
es1800_wait, /* to_wait */ es1800_ops.to_store_registers = es1800_store_register;
es1800_fetch_register, /* to_fetch_registers */ es1800_ops.to_prepare_to_store = es1800_prepare_to_store;
es1800_store_register, /* to_store_registers */ es1800_ops.to_xfer_memory = es1800_xfer_inferior_memory;
es1800_prepare_to_store, /* to_prepare_to_store */ es1800_ops.to_files_info = es1800_files_info;
es1800_xfer_inferior_memory, /* to_xfer_memory */ es1800_ops.to_insert_breakpoint = es1800_insert_breakpoint;
es1800_files_info, /* to_files_info */ es1800_ops.to_remove_breakpoint = es1800_remove_breakpoint;
es1800_insert_breakpoint, /* to_insert_breakpoint */ es1800_ops.to_terminal_init = NULL;
es1800_remove_breakpoint, /* to_remove_breakpoint */ es1800_ops.to_terminal_inferior = NULL;
NULL, /* to_terminal_init */ es1800_ops.to_terminal_ours_for_output = NULL;
NULL, /* to_terminal_inferior */ es1800_ops.to_terminal_ours = NULL;
NULL, /* to_terminal_ours_for_output */ es1800_ops.to_terminal_info = NULL;
NULL, /* to_terminal_ours */ es1800_ops.to_kill = es1800_kill;
NULL, /* to_terminal_info */ es1800_ops.to_load = es1800_load;
es1800_kill, /* to_kill */ es1800_ops.to_lookup_symbol = NULL;
es1800_load, /* to_load */ es1800_ops.to_create_inferior = es1800_create_inferior;
NULL, /* to_lookup_symbol */ es1800_ops.to_mourn_inferior = es1800_mourn_inferior;
es1800_create_inferior, /* to_create_inferior */ es1800_ops.to_can_run = 0;
es1800_mourn_inferior, /* to_mourn_inferior */ es1800_ops.to_notice_signals = 0;
0, /* to_can_run */ es1800_ops.to_thread_alive = 0;
0, /* notice_signals */ es1800_ops.to_stop = 0;
0, /* to_thread_alive */ es1800_ops.to_stratum = process_stratum;
0, /* to_stop */ es1800_ops.DONT_USE = 0;
process_stratum, /* to_stratum */ es1800_ops.to_has_all_memory = 1;
0, /* to_next */ es1800_ops.to_has_memory = 1;
1, /* to_has_all_memory */ es1800_ops.to_has_stack = 1;
1, /* to_has_memory */ es1800_ops.to_has_registers = 1;
1, /* to_has_stack */ es1800_ops.to_has_execution = 1;
1, /* to_has_registers */ es1800_ops.to_sections = NULL;
1, /* to_has_execution */ es1800_ops.to_sections_end = NULL;
NULL, /* to_sections */ es1800_ops.to_magic = OPS_MAGIC;
NULL, /* to_sections_end */ }
OPS_MAGIC /* to_magic (always last) */
};
void void
_initialize_es1800 () _initialize_es1800 ()
{ {
init_es1800_ops() ;
init_es1800_child_ops() ;
add_target (&es1800_ops); add_target (&es1800_ops);
add_target (&es1800_child_ops); add_target (&es1800_child_ops);
#ifdef PROVIDE_TRANSPARENT #ifdef PROVIDE_TRANSPARENT

View file

@ -1320,33 +1320,50 @@ hms_open (name, from_tty)
/* Define the target subroutine names */ /* 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", hms_ops.to_shortname = "hms";
"Use the H8 evaluation board running the HMS monitor connected\n\ hms_ops.to_longname = "Remote HMS monitor";
by a serial line.", hms_ops.to_doc = "Use the H8 evaluation board running the HMS monitor connected\n\
by a serial line.";
hms_open, hms_close, hms_ops.to_open = hms_open;
0, hms_detach, hms_resume, hms_wait, /* attach */ hms_ops.to_close = hms_close;
hms_fetch_register, hms_store_register, hms_ops.to_attach = 0;
hms_prepare_to_store, hms_ops.to_detach = hms_detach;
hms_xfer_inferior_memory, hms_ops.to_resume = hms_resume;
hms_files_info, hms_ops.to_wait = hms_wait;
hms_insert_breakpoint, hms_remove_breakpoint, /* Breakpoints */ hms_ops.to_fetch_registers = hms_fetch_register;
0, 0, 0, 0, 0, /* Terminal handling */ hms_ops.to_store_registers = hms_store_register;
hms_kill, /* FIXME, kill */ hms_ops.to_prepare_to_store = hms_prepare_to_store;
generic_load, hms_ops.to_xfer_memory = hms_xfer_inferior_memory;
0, /* lookup_symbol */ hms_ops.to_files_info = hms_files_info;
hms_create_inferior, /* create_inferior */ hms_ops.to_insert_breakpoint = hms_insert_breakpoint;
hms_mourn, /* mourn_inferior FIXME */ hms_ops.to_remove_breakpoint = hms_remove_breakpoint;
0, /* can_run */ hms_ops.to_terminal_init = 0;
0, /* notice_signals */ hms_ops.to_terminal_inferior = 0;
0, /* to_thread_alive */ hms_ops.to_terminal_ours_for_output = 0;
0, /* to_stop */ hms_ops.to_terminal_ours = 0;
process_stratum, 0, /* next */ hms_ops.to_terminal_info = 0;
1, 1, 1, 1, 1, /* all mem, mem, stack, regs, exec */ hms_ops.to_kill = hms_kill;
0, 0, /* Section pointers */ hms_ops.to_load = generic_load;
OPS_MAGIC, /* Always the last thing */ hms_ops.to_lookup_symbol = 0;
hms_ops.to_create_inferior = hms_create_inferior;
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_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 */ hms_quiet () /* FIXME - this routine can be removed after Dec '94 */
@ -1435,6 +1452,7 @@ remove_commands ()
void void
_initialize_remote_hms () _initialize_remote_hms ()
{ {
init_hms_ops() ;
add_target (&hms_ops); add_target (&hms_ops);
add_com ("hms <command>", class_obscure, hms_com, add_com ("hms <command>", class_obscure, hms_com,

View file

@ -1585,36 +1585,58 @@ CORE_ADDR *addr;
/****************************************************************************/ /****************************************************************************/
/* /*
* Define the target subroutine names * Define the target subroutine names
*/ */
struct target_ops mm_ops = { struct target_ops mm_ops ;
"minimon", "Remote AMD/Minimon target",
"Remote debug an AMD 290*0 using the MiniMon dbg core on the target", static void init_mm_ops(void)
mm_open, mm_close, {
mm_attach, mm_detach, mm_resume, mm_wait, mm_ops.to_shortname = "minimon";
mm_fetch_registers, mm_store_registers, mm_ops.to_longname = "Remote AMD/Minimon target";
mm_prepare_to_store, mm_ops.to_doc = "Remote debug an AMD 290*0 using the MiniMon dbg core on the target";
mm_xfer_inferior_memory, mm_ops.to_open = mm_open;
mm_files_info, mm_ops.to_close = mm_close;
mm_insert_breakpoint, mm_remove_breakpoint, /* Breakpoints */ mm_ops.to_attach = mm_attach;
0, 0, 0, 0, 0, /* Terminal handling */ mm_ops.to_detach = mm_detach;
mm_kill, /* FIXME, kill */ mm_ops.to_resume = mm_resume;
mm_load, mm_ops.to_wait = mm_wait;
0, /* lookup_symbol */ mm_ops.to_fetch_registers = mm_fetch_registers;
mm_create_inferior, /* create_inferior */ mm_ops.to_store_registers = mm_store_registers;
mm_mourn, /* mourn_inferior FIXME */ mm_ops.to_prepare_to_store = mm_prepare_to_store;
0, /* can_run */ mm_ops.to_xfer_memory = mm_xfer_inferior_memory;
0, /* notice_signals */ mm_ops.to_files_info = mm_files_info;
0, /* to_stop */ mm_ops.to_insert_breakpoint = mm_insert_breakpoint;
process_stratum, 0, /* next */ mm_ops.to_remove_breakpoint = mm_remove_breakpoint;
1, 1, 1, 1, 1, /* all mem, mem, stack, regs, exec */ mm_ops.to_terminal_init = 0;
0,0, /* sections, sections_end */ mm_ops.to_terminal_inferior = 0;
OPS_MAGIC, /* Always the last thing */ mm_ops.to_terminal_ours_for_output = 0;
mm_ops.to_terminal_ours = 0;
mm_ops.to_terminal_info = 0;
mm_ops.to_kill = mm_kill;
mm_ops.to_load = mm_load;
mm_ops.to_lookup_symbol = 0;
mm_ops.to_create_inferior = mm_create_inferior;
mm_ops.to_mourn_inferior = mm_mourn;
mm_ops.to_can_run = 0;
mm_ops.to_notice_signals = 0;
mm_ops.to_thread_alive = 0;
mm_ops.to_stop = 0;
mm_ops.to_stratum = process_stratum;
mm_ops.DONT_USE = 0;
mm_ops.to_has_all_memory = 1;
mm_ops.to_has_memory = 1;
mm_ops.to_has_stack = 1;
mm_ops.to_has_registers = 1;
mm_ops.to_has_execution = 1;
mm_ops.to_sections = 0;
mm_ops.to_sections_end = 0;
mm_ops.to_magic = OPS_MAGIC;
}; };
void void
_initialize_remote_mm() _initialize_remote_mm()
{ {
init_mm_ops() ;
add_target (&mm_ops); add_target (&mm_ops);
} }

View file

@ -766,42 +766,59 @@ nindy_before_main_loop ()
/* Define the target subroutine names */ /* Define the target subroutine names */
struct target_ops nindy_ops = { struct target_ops nindy_ops ;
"nindy", "Remote serial target in i960 NINDY-specific protocol", static void init_nindy_ops(void)
"Use a remote i960 system running NINDY connected by a serial line.\n\ {
nindy_ops.to_shortname = "nindy"; "Remote serial target in i960 NINDY-specific protocol",
nindy_ops.to_longname = "Use a remote i960 system running NINDY connected by a serial line.\n\
Specify the name of the device the serial line is connected to.\n\ Specify the name of the device the serial line is connected to.\n\
The speed (baud rate), whether to use the old NINDY protocol,\n\ The speed (baud rate), whether to use the old NINDY protocol,\n\
and whether to send a break on startup, are controlled by options\n\ and whether to send a break on startup, are controlled by options\n\
specified when you started GDB.", specified when you started GDB." ;
nindy_open, nindy_close, nindy_ops.to_doc = "";
0, nindy_ops.to_open = nindy_open;
nindy_detach, nindy_ops.to_close = nindy_close;
nindy_resume, nindy_ops.to_attach = 0;
nindy_wait, nindy_ops.to_detach = nindy_detach;
nindy_fetch_registers, nindy_store_registers, nindy_ops.to_resume = nindy_resume;
nindy_prepare_to_store, nindy_ops.to_wait = nindy_wait;
nindy_xfer_inferior_memory, nindy_files_info, nindy_ops.to_fetch_registers = nindy_fetch_registers;
memory_insert_breakpoint, nindy_ops.to_store_registers = nindy_store_registers;
memory_remove_breakpoint, nindy_ops.to_prepare_to_store = nindy_prepare_to_store;
0, 0, 0, 0, 0, /* Terminal crud */ nindy_ops.to_xfer_memory = nindy_xfer_inferior_memory;
nindy_kill, nindy_ops.to_files_info = nindy_files_info;
nindy_load, nindy_ops.to_insert_breakpoint = memory_insert_breakpoint;
0, /* lookup_symbol */ nindy_ops.to_remove_breakpoint = memory_remove_breakpoint;
nindy_create_inferior, nindy_ops.to_terminal_init = 0;
nindy_mourn_inferior, nindy_ops.to_terminal_inferior = 0;
0, /* can_run */ nindy_ops.to_terminal_ours_for_output = 0;
0, /* notice_signals */ nindy_ops.to_terminal_ours = 0;
0, /* to_thread_alive */ nindy_ops.to_terminal_info = 0; /* Terminal crud */
0, /* to_stop */ nindy_ops.to_kill = nindy_kill;
process_stratum, 0, /* next */ nindy_ops.to_load = nindy_load;
1, 1, 1, 1, 1, /* all mem, mem, stack, regs, exec */ nindy_ops.to_lookup_symbol = 0; /* lookup_symbol */
0, 0, /* Section pointers */ nindy_ops.to_create_inferior = nindy_create_inferior;
OPS_MAGIC, /* Always the last thing */ nindy_ops.to_mourn_inferior = nindy_mourn_inferior;
}; nindy_ops.to_can_run = 0; /* can_run */
nindy_ops.to_notice_signals = 0; /* notice_signals */
nindy_ops.to_thread_alive = 0; /* to_thread_alive */
nindy_ops.to_stop = 0; /* to_stop */
nindy_ops.to_stratum = process_stratum;
nindy_ops.DONT_USE = 0; /* next */
nindy_ops.to_has_all_memory = 1;
nindy_ops.to_has_memory = 1;
nindy_ops.to_has_stack = 1;
nindy_ops.to_has_registers = 1;
nindy_ops.to_has_execution = 1; /* all mem, mem, stack, regs, exec */
nindy_ops.to_sections = 0;
nindy_ops.to_sections_end = 0; /* Section pointers */
nindy_ops.to_magic = OPS_MAGIC; /* Always the last thing */
}
void void
_initialize_nindy () _initialize_nindy ()
{ {
init_nindy_ops() ;
add_target (&nindy_ops); add_target (&nindy_ops);
add_com ("reset", class_obscure, reset_command, add_com ("reset", class_obscure, reset_command,
"Send a 'break' to the remote target system.\n\ "Send a 'break' to the remote target system.\n\

View file

@ -1123,6 +1123,7 @@ connect_command (args, fromtty)
* through to a printf style function, we need can include formatting * through to a printf style function, we need can include formatting
* strings. We also need a CR or LF on the end. * strings. We also need a CR or LF on the end.
*/ */
#warning FIXME: monitor interface pattern strings, stale struct decl
struct monitor_ops rombug_cmds = { struct monitor_ops rombug_cmds = {
"g \r", /* execute or usually GO command */ "g \r", /* execute or usually GO command */
"g \r", /* continue command */ "g \r", /* continue command */
@ -1141,52 +1142,57 @@ struct monitor_ops rombug_cmds = {
".\r" /* optional command terminator */ ".\r" /* optional command terminator */
}; };
struct target_ops rombug_ops = { struct target_ops rombug_ops ;
"rombug",
"Microware's ROMBUG debug monitor", static void init_rombug_ops(void)
"Use a remote computer running the ROMBUG debug monitor.\n\ {
rombug_ops.to_shortname = "rombug";
rombug_ops.to_longname = "Microware's ROMBUG debug monitor";
rombug_ops.to_doc = "Use a remote computer running the ROMBUG debug monitor.\n\
Specify the serial device it is connected to (e.g. /dev/ttya).", Specify the serial device it is connected to (e.g. /dev/ttya).",
rombug_open, rombug_ops.to_open = rombug_open;
rombug_close, rombug_ops.to_close = rombug_close;
0, rombug_ops.to_attach = 0;
rombug_detach, rombug_ops.to_detach = rombug_detach;
rombug_resume, rombug_ops.to_resume = rombug_resume;
rombug_wait, rombug_ops.to_wait = rombug_wait;
rombug_fetch_register, rombug_ops.to_fetch_registers = rombug_fetch_register;
rombug_store_register, rombug_ops.to_store_registers = rombug_store_register;
rombug_prepare_to_store, rombug_ops.to_prepare_to_store = rombug_prepare_to_store;
rombug_xfer_inferior_memory, rombug_ops.to_xfer_memory = rombug_xfer_inferior_memory;
rombug_files_info, rombug_ops.to_files_info = rombug_files_info;
rombug_insert_breakpoint, rombug_ops.to_insert_breakpoint = rombug_insert_breakpoint;
rombug_remove_breakpoint, /* Breakpoints */ rombug_ops.to_remove_breakpoint = rombug_remove_breakpoint; /* Breakpoints */
0, rombug_ops.to_terminal_init = 0;
0, rombug_ops.to_terminal_inferior = 0;
0, rombug_ops.to_terminal_ours_for_output = 0;
0, rombug_ops.to_terminal_ours = 0;
0, /* Terminal handling */ rombug_ops.to_terminal_info = 0; /* Terminal handling */
rombug_kill, rombug_ops.to_kill = rombug_kill;
rombug_load, /* load */ rombug_ops.to_load = rombug_load; /* load */
rombug_link, /* lookup_symbol */ rombug_ops.to_lookup_symbol = rombug_link; /* lookup_symbol */
rombug_create_inferior, rombug_ops.to_create_inferior = rombug_create_inferior;
rombug_mourn_inferior, rombug_ops.to_mourn_inferior = rombug_mourn_inferior;
0, /* can_run */ rombug_ops.to_can_run = 0; /* can_run */
0, /* notice_signals */ rombug_ops.to_notice_signals = 0; /* notice_signals */
0, /* to_stop */ rombug_ops.to_thread_alive = 0;
process_stratum, rombug_ops.to_stop = 0; /* to_stop */
0, /* next */ rombug_ops.to_stratum = process_stratum;
1, rombug_ops.DONT_USE = 0; /* next */
1, rombug_ops.to_has_all_memory = 1;
1, rombug_ops.to_has_memory = 1;
1, rombug_ops.to_has_stack = 1;
1, /* has execution */ rombug_ops.to_has_registers = 1;
0, rombug_ops.to_has_execution = 1; /* has execution */
0, /* Section pointers */ rombug_ops.to_sections = 0;
OPS_MAGIC, /* Always the last thing */ rombug_ops.to_sections_end = 0; /* Section pointers */
}; rombug_ops.to_magic = OPS_MAGIC; /* Always the last thing */
}
void void
_initialize_remote_os9k () _initialize_remote_os9k ()
{ {
init_rombug_ops() ;
add_target (&rombug_ops); add_target (&rombug_ops);
add_show_from_set ( add_show_from_set (

View file

@ -924,53 +924,57 @@ rdi_error_signal (err)
/* Define the target operations structure. */ /* Define the target operations structure. */
struct target_ops arm_rdi_ops = { struct target_ops arm_rdi_ops ;
"rdi", /* to_shortname */
"ARM RDI", /* to_longname */ static void init_rdi_ops(void)
"Use a remote ARM-based computer, via the RDI library.\n\ {
Specify the serial device it is connected to (e.g. /dev/ttya).", /* to_doc */ arm_rdi_ops.to_shortname = "rdi";
arm_rdi_open, /* to_open */ arm_rdi_ops.to_longname = "ARM RDI";
arm_rdi_close, /* to_close */ arm_rdi_ops.to_doc = "Use a remote ARM-based computer; via the RDI library.\n\
NULL, /* to_attach */ Specify the serial device it is connected to (e.g. /dev/ttya)." ;
arm_rdi_detach, /* to_detach */ arm_rdi_ops.to_open = arm_rdi_open;
arm_rdi_resume, /* to_resume */ arm_rdi_ops.to_close = arm_rdi_close;
arm_rdi_wait, /* to_wait */ arm_rdi_ops.to_attach = NULL;
arm_rdi_fetch_registers, /* to_fetch_registers */ arm_rdi_ops.to_detach = arm_rdi_detach;
arm_rdi_store_registers, /* to_store_registers */ arm_rdi_ops.to_resume = arm_rdi_resume;
arm_rdi_prepare_to_store, /* to_prepare_to_store */ arm_rdi_ops.to_wait = arm_rdi_wait;
arm_rdi_xfer_memory, /* to_xfer_memory */ arm_rdi_ops.to_fetch_registers = arm_rdi_fetch_registers;
arm_rdi_files_info, /* to_files_info */ arm_rdi_ops.to_store_registers = arm_rdi_store_registers;
arm_rdi_insert_breakpoint, /* to_insert_breakpoint */ arm_rdi_ops.to_prepare_to_store = arm_rdi_prepare_to_store;
arm_rdi_remove_breakpoint, /* to_remove_breakpoint */ arm_rdi_ops.to_xfer_memory = arm_rdi_xfer_memory;
NULL, /* to_terminal_init */ arm_rdi_ops.to_files_info = arm_rdi_files_info;
NULL, /* to_terminal_inferior */ arm_rdi_ops.to_insert_breakpoint = arm_rdi_insert_breakpoint;
NULL, /* to_terminal_ours_for_output */ arm_rdi_ops.to_remove_breakpoint = arm_rdi_remove_breakpoint;
NULL, /* to_terminal_ours */ arm_rdi_ops.to_terminal_init = NULL;
NULL, /* to_terminal_info */ arm_rdi_ops.to_terminal_inferior = NULL;
arm_rdi_kill, /* to_kill */ arm_rdi_ops.to_terminal_ours_for_output = NULL;
generic_load, /* to_load */ arm_rdi_ops.to_terminal_ours = NULL;
NULL, /* to_lookup_symbol */ arm_rdi_ops.to_terminal_info = NULL;
arm_rdi_create_inferior, /* to_create_inferior */ arm_rdi_ops.to_kill = arm_rdi_kill;
arm_rdi_mourn_inferior, /* to_mourn_inferior */ arm_rdi_ops.to_load = generic_load;
0, /* to_can_run */ arm_rdi_ops.to_lookup_symbol = NULL;
0, /* to_notice_signals */ arm_rdi_ops.to_create_inferior = arm_rdi_create_inferior;
0, /* to_thread_alive */ arm_rdi_ops.to_mourn_inferior = arm_rdi_mourn_inferior;
0, /* to_stop */ arm_rdi_ops.to_can_run = 0;
process_stratum, /* to_stratum */ arm_rdi_ops.to_notice_signals = 0;
NULL, /* to_next */ arm_rdi_ops.to_thread_alive = 0;
1, /* to_has_all_memory */ arm_rdi_ops.to_stop = 0;
1, /* to_has_memory */ arm_rdi_ops.to_stratum = process_stratum;
1, /* to_has_stack */ arm_rdi_ops.DONT_USE = NULL;
1, /* to_has_registers */ arm_rdi_ops.to_has_all_memory = 1;
1, /* to_has_execution */ arm_rdi_ops.to_has_memory = 1;
NULL, /* sections */ arm_rdi_ops.to_has_stack = 1;
NULL, /* sections_end */ arm_rdi_ops.to_has_registers = 1;
OPS_MAGIC /* to_magic */ arm_rdi_ops.to_has_execution = 1;
}; arm_rdi_ops.to_sections = NULL;
arm_rdi_ops.to_sections_end = NULL;
arm_rdi_ops.to_magic = OPS_MAGIC ;
}
void void
_initialize_remote_rdi () _initialize_remote_rdi ()
{ {
init_rdi_ops() ;
add_target (&arm_rdi_ops); add_target (&arm_rdi_ops);
} }

View file

@ -1395,54 +1395,55 @@ remote_rdp_attach(args, from_tty)
/* Define the target subroutine names */ /* Define the target subroutine names */
struct target_ops remote_rdp_ops = struct target_ops remote_rdp_ops ;
static void init_remote_rdp_ops(void)
{ {
"rdp", /* to_shortname */ remote_rdp_ops.to_shortname = "rdp";
/* to_longname */ remote_rdp_ops.to_longname = "Remote Target using the RDProtocol";
"Remote Target using the RDProtocol", remote_rdp_ops.to_doc = "Use a remote ARM system which uses the ARM Remote Debugging Protocol";
/* to_doc */ remote_rdp_ops.to_open = remote_rdp_open;
"Use a remote ARM system which uses the ARM Remote Debugging Protocol", remote_rdp_ops.to_close = remote_rdp_close;
remote_rdp_open, /* to_open */ remote_rdp_ops.to_attach = remote_rdp_attach;
remote_rdp_close, /* to_close */ remote_rdp_ops.to_detach = NULL;
remote_rdp_attach, /* to_attach */ remote_rdp_ops.to_resume = remote_rdp_resume;
NULL, /* to_detach */ remote_rdp_ops.to_wait = remote_rdp_wait;
remote_rdp_resume, /* to_resume */ remote_rdp_ops.to_fetch_registers = remote_rdp_fetch_register;
remote_rdp_wait, /* to_wait */ remote_rdp_ops.to_store_registers = remote_rdp_store_register;
remote_rdp_fetch_register, /* to_fetch_registers */ remote_rdp_ops.to_prepare_to_store = remote_rdp_prepare_to_store;
remote_rdp_store_register, /* to_store_registers */ remote_rdp_ops.to_xfer_memory = remote_rdp_xfer_inferior_memory;
remote_rdp_prepare_to_store, /* to_prepare_to_store */ remote_rdp_ops.to_files_info = remote_rdp_files_info;
remote_rdp_xfer_inferior_memory, /* to_xfer_memory */ remote_rdp_ops.to_insert_breakpoint = remote_rdp_insert_breakpoint;
remote_rdp_files_info, /* to_files_info */ remote_rdp_ops.to_remove_breakpoint = remote_rdp_remove_breakpoint;
remote_rdp_insert_breakpoint, /* to_insert_breakpoint */ remote_rdp_ops.to_terminal_init = NULL;
remote_rdp_remove_breakpoint, /* to_remove_breakpoint */ remote_rdp_ops.to_terminal_inferior = NULL;
NULL, /* to_terminal_init */ remote_rdp_ops.to_terminal_ours_for_output = NULL;
NULL, /* to_terminal_inferior */ remote_rdp_ops.to_terminal_ours = NULL;
NULL, /* to_terminal_ours_for_output */ remote_rdp_ops.to_terminal_info = NULL;
NULL, /* to_terminal_ours */ remote_rdp_ops.to_kill = remote_rdp_kill;
NULL, /* to_terminal_info */ remote_rdp_ops.to_load = generic_load;
remote_rdp_kill, /* to_kill */ remote_rdp_ops.to_lookup_symbol = NULL;
generic_load, /* to_load */ remote_rdp_ops.to_create_inferior = remote_rdp_create_inferior;
NULL, /* to_lookup_symbol */ remote_rdp_ops.to_mourn_inferior = generic_mourn_inferior;
remote_rdp_create_inferior, /* to_create_inferior */ remote_rdp_ops.to_can_run = remote_rdp_can_run;
generic_mourn_inferior, /* to_mourn_inferior */ remote_rdp_ops.to_notice_signals = 0;
remote_rdp_can_run, /* to_can_run */ remote_rdp_ops.to_thread_alive = 0;
0, /* to_notice_signals */ remote_rdp_ops.to_stop = 0;
0, /* to_thread_alive */ remote_rdp_ops.to_stratum = process_stratum;
0, /* to_stop */ remote_rdp_ops.DONT_USE = NULL;
process_stratum, /* to_stratum */ remote_rdp_ops.to_has_all_memory = 1;
NULL, /* to_next */ remote_rdp_ops.to_has_memory = 1;
1, /* to_has_all_memory */ remote_rdp_ops.to_has_stack = 1;
1, /* to_has_memory */ remote_rdp_ops.to_has_registers = 1;
1, /* to_has_stack */ remote_rdp_ops.to_has_execution = 1;
1, /* to_has_registers */ remote_rdp_ops.to_sections = NULL;
1, /* to_has_execution */ remote_rdp_ops.to_sections_end = NULL;
NULL, /* sections */ remote_rdp_ops.to_magic = OPS_MAGIC;
NULL, /* sections_end */ }
OPS_MAGIC, /* to_magic */
};
void void
_initialize_remote_rdp () _initialize_remote_rdp ()
{ {
init_remote_rdp_ops() ;
add_target (&remote_rdp_ops); add_target (&remote_rdp_ops);
} }

View file

@ -1121,50 +1121,51 @@ sds_remove_breakpoint (addr, contents_cache)
/* Define the target operations vector. */ /* Define the target operations vector. */
static struct target_ops sds_ops = static struct target_ops sds_ops ;
static void init_sds_ops(void)
{ {
"sds", /* to_shortname */ sds_ops.to_shortname = "sds";
"Remote serial target with SDS protocol", /* to_longname */ sds_ops.to_longname = "Remote serial target with SDS protocol";
"Use a remote computer via a serial line, using the SDS protocol.\n\ sds_ops.to_doc = "Use a remote computer via a serial line; using the SDS protocol.\n\
Specify the serial device it is connected to (e.g. /dev/ttya).", /* to_doc */ Specify the serial device it is connected to (e.g. /dev/ttya).",
sds_open, /* to_open */ sds_ops.to_open = sds_open;
sds_close, /* to_close */ sds_ops.to_close = sds_close;
NULL, /* to_attach */ sds_ops.to_attach = NULL;
sds_detach, /* to_detach */ sds_ops.to_detach = sds_detach;
sds_resume, /* to_resume */ sds_ops.to_resume = sds_resume;
sds_wait, /* to_wait */ sds_ops.to_wait = sds_wait;
sds_fetch_registers, /* to_fetch_registers */ sds_ops.to_fetch_registers = sds_fetch_registers;
sds_store_registers, /* to_store_registers */ sds_ops.to_store_registers = sds_store_registers;
sds_prepare_to_store, /* to_prepare_to_store */ sds_ops.to_prepare_to_store = sds_prepare_to_store;
sds_xfer_memory, /* to_xfer_memory */ sds_ops.to_xfer_memory = sds_xfer_memory;
sds_files_info, /* to_files_info */ sds_ops.to_files_info = sds_files_info;
sds_insert_breakpoint, /* to_insert_breakpoint */ sds_ops.to_insert_breakpoint = sds_insert_breakpoint;
sds_remove_breakpoint, /* to_remove_breakpoint */ sds_ops.to_remove_breakpoint = sds_remove_breakpoint;
NULL, /* to_terminal_init */ sds_ops.to_terminal_init = NULL;
NULL, /* to_terminal_inferior */ sds_ops.to_terminal_inferior = NULL;
NULL, /* to_terminal_ours_for_output */ sds_ops.to_terminal_ours_for_output = NULL;
NULL, /* to_terminal_ours */ sds_ops.to_terminal_ours = NULL;
NULL, /* to_terminal_info */ sds_ops.to_terminal_info = NULL;
sds_kill, /* to_kill */ sds_ops.to_kill = sds_kill;
sds_load, /* to_load */ sds_ops.to_load = sds_load;
NULL, /* to_lookup_symbol */ sds_ops.to_lookup_symbol = NULL;
sds_create_inferior, /* to_create_inferior */ sds_ops.to_create_inferior = sds_create_inferior;
sds_mourn, /* to_mourn_inferior */ sds_ops.to_mourn_inferior = sds_mourn;
0, /* to_can_run */ sds_ops.to_can_run = 0;
0, /* to_notice_signals */ sds_ops.to_notice_signals = 0;
0, /* to_thread_alive */ sds_ops.to_thread_alive = 0;
0, /* to_stop */ sds_ops.to_stop = 0;
process_stratum, /* to_stratum */ sds_ops.to_stratum = process_stratum;
NULL, /* to_next */ sds_ops.DONT_USE = NULL;
1, /* to_has_all_memory */ sds_ops.to_has_all_memory = 1;
1, /* to_has_memory */ sds_ops.to_has_memory = 1;
1, /* to_has_stack */ sds_ops.to_has_stack = 1; /* to_has_stack */
1, /* to_has_registers */ sds_ops.to_has_registers = 1; sds_ops.to_has_execution = 1;
1, /* to_has_execution */ sds_ops.to_sections = NULL;
NULL, /* sections */ sds_ops.to_sections_end = NULL;
NULL, /* sections_end */ sds_ops.to_magic = OPS_MAGIC ;
OPS_MAGIC /* to_magic */ }
};
/* Put a command string, in args, out to the monitor and display the /* Put a command string, in args, out to the monitor and display the
reply message. */ reply message. */
@ -1202,6 +1203,7 @@ sds_command (args, from_tty)
void void
_initialize_remote_sds () _initialize_remote_sds ()
{ {
init_sds_ops() ;
add_target (&sds_ops); add_target (&sds_ops);
add_show_from_set (add_set_cmd ("sdstimeout", no_class, add_show_from_set (add_set_cmd ("sdstimeout", no_class,

View file

@ -915,52 +915,55 @@ simulator_command (args, from_tty)
/* Define the target subroutine names */ /* Define the target subroutine names */
struct target_ops gdbsim_ops = { struct target_ops gdbsim_ops ;
"sim", /* to_shortname */ static void init_gdbsim_ops(void)
"simulator", /* to_longname */ {
"Use the compiled-in simulator.", /* to_doc */ gdbsim_ops.to_shortname = "sim";
gdbsim_open, /* to_open */ gdbsim_ops.to_longname = "simulator";
gdbsim_close, /* to_close */ gdbsim_ops.to_doc = "Use the compiled-in simulator.";
NULL, /* to_attach */ gdbsim_ops.to_open = gdbsim_open;
gdbsim_detach, /* to_detach */ gdbsim_ops.to_close = gdbsim_close;
gdbsim_resume, /* to_resume */ gdbsim_ops.to_attach = NULL;
gdbsim_wait, /* to_wait */ gdbsim_ops.to_detach = gdbsim_detach;
gdbsim_fetch_register, /* to_fetch_registers */ gdbsim_ops.to_resume = gdbsim_resume;
gdbsim_store_register, /* to_store_registers */ gdbsim_ops.to_wait = gdbsim_wait;
gdbsim_prepare_to_store, /* to_prepare_to_store */ gdbsim_ops.to_fetch_registers = gdbsim_fetch_register;
gdbsim_xfer_inferior_memory, /* to_xfer_memory */ gdbsim_ops.to_store_registers = gdbsim_store_register;
gdbsim_files_info, /* to_files_info */ gdbsim_ops.to_prepare_to_store = gdbsim_prepare_to_store;
gdbsim_insert_breakpoint, /* to_insert_breakpoint */ gdbsim_ops.to_xfer_memory = gdbsim_xfer_inferior_memory;
gdbsim_remove_breakpoint, /* to_remove_breakpoint */ gdbsim_ops.to_files_info = gdbsim_files_info;
NULL, /* to_terminal_init */ gdbsim_ops.to_insert_breakpoint = gdbsim_insert_breakpoint;
NULL, /* to_terminal_inferior */ gdbsim_ops.to_remove_breakpoint = gdbsim_remove_breakpoint;
NULL, /* to_terminal_ours_for_output */ gdbsim_ops.to_terminal_init = NULL;
NULL, /* to_terminal_ours */ gdbsim_ops.to_terminal_inferior = NULL;
NULL, /* to_terminal_info */ gdbsim_ops.to_terminal_ours_for_output = NULL;
gdbsim_kill, /* to_kill */ gdbsim_ops.to_terminal_ours = NULL;
gdbsim_load, /* to_load */ gdbsim_ops.to_terminal_info = NULL;
NULL, /* to_lookup_symbol */ gdbsim_ops.to_kill = gdbsim_kill;
gdbsim_create_inferior, /* to_create_inferior */ gdbsim_ops.to_load = gdbsim_load;
gdbsim_mourn_inferior, /* to_mourn_inferior */ gdbsim_ops.to_lookup_symbol = NULL;
0, /* to_can_run */ gdbsim_ops.to_create_inferior = gdbsim_create_inferior;
0, /* to_notice_signals */ gdbsim_ops.to_mourn_inferior = gdbsim_mourn_inferior;
0, /* to_thread_alive */ gdbsim_ops.to_can_run = 0;
gdbsim_stop, /* to_stop */ gdbsim_ops.to_notice_signals = 0;
process_stratum, /* to_stratum */ gdbsim_ops.to_thread_alive = 0;
NULL, /* to_next */ gdbsim_ops.to_stop = gdbsim_stop;
1, /* to_has_all_memory */ gdbsim_ops.to_stratum = process_stratum;
1, /* to_has_memory */ gdbsim_ops.DONT_USE = NULL;
1, /* to_has_stack */ gdbsim_ops.to_has_all_memory = 1;
1, /* to_has_registers */ gdbsim_ops.to_has_memory = 1;
1, /* to_has_execution */ gdbsim_ops.to_has_stack = 1;
NULL, /* sections */ gdbsim_ops.to_has_registers = 1;
NULL, /* sections_end */ gdbsim_ops.to_has_execution = 1;
OPS_MAGIC, /* to_magic */ gdbsim_ops.to_sections = NULL;
}; gdbsim_ops.to_sections_end = NULL;
gdbsim_ops.to_magic = OPS_MAGIC;
}
void void
_initialize_remote_sim () _initialize_remote_sim ()
{ {
init_gdbsim_ops() ;
add_target (&gdbsim_ops); add_target (&gdbsim_ops);
add_com ("sim <command>", class_obscure, simulator_command, add_com ("sim <command>", class_obscure, simulator_command,

View file

@ -790,54 +790,59 @@ connect_command (args, fromtty)
/* Define the target subroutine names */ /* Define the target subroutine names */
struct target_ops st2000_ops = { struct target_ops st2000_ops ;
"st2000",
"Remote serial Tandem ST2000 target", static void init_st2000_ops(void)
"Use a remote computer running STDEBUG connected by a serial line,\n\ {
st2000_ops.to_shortname = "st2000";
st2000_ops.to_longname = "Remote serial Tandem ST2000 target";
st2000_ops.to_doc = "Use a remote computer running STDEBUG connected by a serial line;\n\
or a network connection.\n\ or a network connection.\n\
Arguments are the name of the device for the serial line,\n\ Arguments are the name of the device for the serial line,\n\
the speed to connect at in bits per second.", the speed to connect at in bits per second." ;
st2000_open, st2000_ops.to_open = st2000_open;
st2000_close, st2000_ops.to_close = st2000_close;
0, st2000_ops.to_attach = 0;
st2000_detach, st2000_ops.to_detach = st2000_detach;
st2000_resume, st2000_ops.to_resume = st2000_resume;
st2000_wait, st2000_ops.to_wait = st2000_wait;
st2000_fetch_register, st2000_ops.to_fetch_registers = st2000_fetch_register;
st2000_store_register, st2000_ops.to_store_registers = st2000_store_register;
st2000_prepare_to_store, st2000_ops.to_prepare_to_store = st2000_prepare_to_store;
st2000_xfer_inferior_memory, st2000_ops.to_xfer_memory = st2000_xfer_inferior_memory;
st2000_files_info, st2000_ops.to_files_info = st2000_files_info;
st2000_insert_breakpoint, st2000_ops.to_insert_breakpoint = st2000_insert_breakpoint;
st2000_remove_breakpoint, /* Breakpoints */ st2000_ops.to_remove_breakpoint = st2000_remove_breakpoint; /* Breakpoints */
0, st2000_ops.to_terminal_init = 0;
0, st2000_ops.to_terminal_inferior = 0;
0, st2000_ops.to_terminal_ours_for_output = 0;
0, st2000_ops.to_terminal_ours = 0;
0, /* Terminal handling */ st2000_ops.to_terminal_info = 0; /* Terminal handling */
st2000_kill, st2000_ops.to_kill = st2000_kill;
0, /* load */ st2000_ops.to_load = 0; /* load */
0, /* lookup_symbol */ st2000_ops.to_lookup_symbol = 0; /* lookup_symbol */
st2000_create_inferior, st2000_ops.to_create_inferior = st2000_create_inferior;
st2000_mourn_inferior, st2000_ops.to_mourn_inferior = st2000_mourn_inferior;
0, /* can_run */ st2000_ops.to_can_run = 0; /* can_run */
0, /* notice_signals */ st2000_ops.to_notice_signals = 0; /* notice_signals */
0, /* to_stop */ st2000_ops.to_thread_alive = 0; /* thread alive */
process_stratum, st2000_ops.to_stop = 0; /* to_stop */
0, /* next */ st2000_ops.to_stratum = process_stratum;
1, st2000_ops.DONT_USE = 0; /* next */
1, st2000_ops.to_has_all_memory = 1;
1, st2000_ops.to_has_memory = 1;
1, st2000_ops.to_has_stack = 1;
1, /* all mem, mem, stack, regs, exec */ st2000_ops.to_has_registers = 1;
0, st2000_ops.to_has_execution = 1; /* all mem, mem, stack, regs, exec */
0, /* Section pointers */ st2000_ops.to_sections = 0;
OPS_MAGIC, /* Always the last thing */ st2000_ops.to_sections_end = 0; /* Section pointers */
}; st2000_ops.to_magic = OPS_MAGIC; /* Always the last thing */
} ;
void void
_initialize_remote_st2000 () _initialize_remote_st2000 ()
{ {
init_st2000_ops() ;
add_target (&st2000_ops); add_target (&st2000_ops);
add_com ("st2000 <command>", class_obscure, st2000_command, add_com ("st2000 <command>", class_obscure, st2000_command,
"Send a command to the STDBUG monitor."); "Send a command to the STDBUG monitor.");

View file

@ -1621,18 +1621,21 @@ service_HIF(msg)
The RS/6000 doesn't like "extern" followed by "static"; SunOS The RS/6000 doesn't like "extern" followed by "static"; SunOS
/bin/cc doesn't like "static" twice. */ /bin/cc doesn't like "static" twice. */
struct target_ops udi_ops = { struct target_ops udi_ops ;
"udi",
"Remote UDI connected TIP", static void init_udi_ops(void)
"Remote debug an AMD 29k using UDI socket connection to TIP process.\n\ {
udi_ops.to_shortname = "udi";
udi_ops.to_longname = "Remote UDI connected TIP";
udi_ops.to_doc = "Remote debug an AMD 29k using UDI socket connection to TIP process.\n\
Arguments are\n\ Arguments are\n\
`configuration-id AF_INET hostname port-number'\n\ `configuration-id AF_INET hostname port-number'\n\
To connect via the network, where hostname and port-number specify the\n\ To connect via the network, where hostname and port-number specify the\n\
host and port where you can connect via UDI.\n\ host and port where you can connect via UDI.\n\
configuration-id is unused.\n\ configuration-id is unused.\n\
\n\ \n\
`configuration-id AF_UNIX socket-name tip-program'\n\ `configuration-id AF_UNIX socket-name tip-program'\n\
To connect using a local connection to the \"tip.exe\" program which is\n\ To connect using a local connection to the \"tip.exe\" program which is\n\
supplied by AMD. If socket-name specifies an AF_UNIX socket then the\n\ supplied by AMD. If socket-name specifies an AF_UNIX socket then the\n\
tip program must already be started; connect to it using that socket.\n\ tip program must already be started; connect to it using that socket.\n\
If not, start up tip-program, which should be the name of the tip\n\ If not, start up tip-program, which should be the name of the tip\n\
@ -1642,48 +1645,49 @@ Arguments are\n\
`configuration-id'\n\ `configuration-id'\n\
Look up the configuration in ./udi_soc or /etc/udi_soc, which\n\ Look up the configuration in ./udi_soc or /etc/udi_soc, which\n\
are files containing lines in the above formats. configuration-id is\n\ are files containing lines in the above formats. configuration-id is\n\
used to pick which line of the file to use.", used to pick which line of the file to use." ;
udi_open, udi_ops.to_open = udi_open;
udi_close, udi_ops.to_close = udi_close;
udi_attach, udi_ops.to_attach = udi_attach;
udi_detach, udi_ops.to_detach = udi_detach;
udi_resume, udi_ops.to_resume = udi_resume;
udi_wait, udi_ops.to_wait = udi_wait;
udi_fetch_registers, udi_ops.to_fetch_registers = udi_fetch_registers;
udi_store_registers, udi_ops.to_store_registers = udi_store_registers;
udi_prepare_to_store, udi_ops.to_prepare_to_store = udi_prepare_to_store;
udi_xfer_inferior_memory, udi_ops.to_xfer_memory = udi_xfer_inferior_memory;
udi_files_info, udi_ops.to_files_info = udi_files_info;
udi_insert_breakpoint, udi_ops.to_insert_breakpoint = udi_insert_breakpoint;
udi_remove_breakpoint, udi_ops.to_remove_breakpoint = udi_remove_breakpoint;
0, /* termial_init */ udi_ops.to_terminal_init = 0;
0, /* terminal_inferior */ udi_ops.to_terminal_inferior = 0;
0, /* terminal_ours_for_output */ udi_ops.to_terminal_ours_for_output = 0;
0, /* terminal_ours */ udi_ops.to_terminal_ours = 0;
0, /* terminal_info */ udi_ops.to_terminal_info = 0;
udi_kill, /* FIXME, kill */ udi_ops.to_kill = udi_kill;
udi_load, /* to_load */ udi_ops.to_load = udi_load;
0, /* lookup_symbol */ udi_ops.to_lookup_symbol = 0;
udi_create_inferior, udi_ops.to_create_inferior = udi_create_inferior;
udi_mourn, /* mourn_inferior FIXME */ udi_ops.to_mourn_inferior = udi_mourn;
0, /* can_run */ udi_ops.to_can_run = 0;
0, /* notice_signals */ udi_ops.to_notice_signals = 0;
0, /* to_thread_alive */ udi_ops.to_thread_alive = 0;
0, /* to_stop */ udi_ops.to_stop = 0;
process_stratum, udi_ops.to_stratum = process_stratum;
0, /* next */ udi_ops.DONT_USE = 0;
1, /* has_all_memory */ udi_ops.to_has_all_memory = 1;
1, /* has_memory */ udi_ops.to_has_memory = 1;
1, /* has_stack */ udi_ops.to_has_stack = 1;
1, /* has_registers */ udi_ops.to_has_registers = 1;
1, /* has_execution */ udi_ops.to_has_execution = 1;
0, /* sections */ udi_ops.to_sections = 0;
0, /* sections_end */ udi_ops.to_sections_end = 0;
OPS_MAGIC, /* Always the last thing */ udi_ops.to_magic = OPS_MAGIC;
}; };
void void
_initialize_remote_udi () _initialize_remote_udi ()
{ {
init_udi_ops() ;
add_target (&udi_ops); add_target (&udi_ops);
} }

View file

@ -1394,62 +1394,107 @@ vx_proc_open (name, from_tty)
/* Target ops structure for accessing memory and such over the net */ /* Target ops structure for accessing memory and such over the net */
struct target_ops vx_ops = { struct target_ops vx_ops ;
"vxworks", "VxWorks target memory via RPC over TCP/IP",
"Use VxWorks target memory. \n\ static void init_vx_ops(void)
{
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.", Specify the name of the machine to connect to.",
vx_open, vx_close, vx_attach, 0, /* vx_detach, */ vx_ops.to_open = vx_open;
0, 0, /* resume, wait */ vx_ops.to_close = vx_close;
0, 0, /* read_reg, write_reg */ vx_ops.to_attach = vx_attach;
0, /* prep_to_store, */ vx_ops.to_detach = 0; /* vx_detach, */
vx_xfer_memory, vx_files_info, vx_ops.to_resume = 0;
0, 0, /* insert_breakpoint, remove_breakpoint */ vx_ops.to_wait = 0; /* resume, wait */
0, 0, 0, 0, 0, /* terminal stuff */ vx_ops.to_fetch_registers = 0;
0, /* vx_kill, */ vx_ops.to_store_registers = 0; /* read_reg, write_reg */
vx_load_command, vx_ops.to_prepare_to_store = 0; /* prep_to_store, */
vx_lookup_symbol, vx_ops.to_xfer_memory = vx_xfer_memory;
vx_create_inferior, 0, /* mourn_inferior */ vx_ops.to_files_info = vx_files_info;
0, /* can_run */ vx_ops.to_insert_breakpoint = 0;
0, /* notice_signals */ vx_ops.to_remove_breakpoint = 0; /* insert_breakpoint, remove_breakpoint */
0, /* thread_alive */ vx_ops.to_terminal_init = 0;
0, /* to_stop */ vx_ops.to_terminal_inferior = 0;
core_stratum, 0, /* next */ vx_ops.to_terminal_ours_for_output = 0;
1, 1, 0, 0, 0, /* all mem, mem, stack, regs, exec */ vx_ops.to_terminal_ours = 0;
0, 0, /* Section pointers */ vx_ops.to_terminal_info = 0; /* terminal stuff */
OPS_MAGIC, /* Always the last thing */ 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 */
}; };
/* Target ops structure for accessing VxWorks child processes over the net */ /* Target ops structure for accessing VxWorks child processes over the net */
struct target_ops vx_run_ops = { struct target_ops vx_run_ops ;
"vxprocess", "VxWorks process",
"VxWorks process, started by the \"run\" command.", static void init_vx_run_ops(void)
vx_proc_open, vx_proc_close, 0, vx_detach, /* vx_attach */ {
vx_resume, vx_wait, vx_run_ops.to_shortname = "vxprocess";
vx_read_register, vx_write_register, vx_run_ops.to_longname = "VxWorks process";
vx_prepare_to_store, vx_run_ops.to_doc = "VxWorks process; started by the \"run\" command.",
vx_xfer_memory, vx_run_files_info, vx_run_ops.to_open = vx_proc_open;
vx_insert_breakpoint, vx_remove_breakpoint, vx_run_ops.to_close = vx_proc_close;
0, 0, 0, 0, 0, /* terminal stuff */ vx_run_ops.to_attach = 0;
vx_kill, vx_run_ops.to_detach = vx_detach;
vx_load_command, vx_run_ops.to_resume = vx_resume;
vx_lookup_symbol, vx_run_ops.to_wait = vx_wait;
0, vx_mourn_inferior, vx_run_ops.to_fetch_registers = vx_read_register;
0, /* can_run */ vx_run_ops.to_store_registers = vx_write_register;
0, /* notice_signals */ vx_run_ops.to_prepare_to_store = vx_prepare_to_store;
0, /* thread_alive */ vx_run_ops.to_xfer_memory = vx_xfer_memory;
0, /* to_stop */ vx_run_ops.to_files_info = vx_run_files_info;
process_stratum, 0, /* next */ vx_run_ops.to_insert_breakpoint = vx_insert_breakpoint;
0, /* all_mem--off to avoid spurious msg in "i files" */ vx_run_ops.to_remove_breakpoint = vx_remove_breakpoint;
1, 1, 1, 1, /* mem, stack, regs, exec */ vx_run_ops.to_terminal_init = 0;
0, 0, /* Section pointers */ vx_run_ops.to_terminal_inferior = 0;
OPS_MAGIC, /* Always the last thing */ 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;
}
/* ==> Remember when reading at end of file, there are two "ops" structs here. */ /* ==> Remember when reading at end of file, there are two "ops" structs here. */
void void
_initialize_vx () _initialize_vx ()
{ {
init_vx_ops() ;
init_vx_run_ops() ;
add_show_from_set add_show_from_set
(add_set_cmd ("vxworks-timeout", class_support, var_uinteger, (add_set_cmd ("vxworks-timeout", class_support, var_uinteger,
(char *) &rpcTimeout.tv_sec, (char *) &rpcTimeout.tv_sec,

View file

@ -275,15 +275,108 @@ static int remote_remove_breakpoint PARAMS ((CORE_ADDR, char *));
static int hexnumlen PARAMS ((ULONGEST num)); static int hexnumlen PARAMS ((ULONGEST num));
static struct target_ops remote_ops; /* Forward decl */
static struct target_ops extended_remote_ops; /* Forward decl */
/* exported functions */ /* exported functions */
extern int fromhex PARAMS ((int a)); extern int fromhex PARAMS ((int a));
extern void getpkt PARAMS ((char *buf, int forever)); extern void getpkt PARAMS ((char *buf, int forever));
extern int putpkt PARAMS ((char *buf)); extern int putpkt PARAMS ((char *buf));
/* Define the target subroutine names */
static struct target_ops remote_ops ;
static void init_remote_ops(void)
{
remote_ops.to_shortname = "remote";
remote_ops.to_longname = "Remote serial target in gdb-specific protocol";
remote_ops.to_doc = "Use a remote computer via a serial line; using a gdb-specific protocol.\n\
Specify the serial device it is connected to (e.g. /dev/ttya)." ;
remote_ops.to_open = remote_open;
remote_ops.to_close = remote_close;
remote_ops.to_attach = NULL;
remote_ops.to_detach = remote_detach;
remote_ops.to_resume = remote_resume;
remote_ops.to_wait = remote_wait;
remote_ops.to_fetch_registers = remote_fetch_registers;
remote_ops.to_store_registers = remote_store_registers;
remote_ops.to_prepare_to_store = remote_prepare_to_store;
remote_ops.to_xfer_memory = remote_xfer_memory;
remote_ops.to_files_info = remote_files_info;
remote_ops.to_insert_breakpoint = remote_insert_breakpoint;
remote_ops.to_remove_breakpoint = remote_remove_breakpoint;
remote_ops.to_terminal_init = NULL;
remote_ops.to_terminal_inferior = NULL;
remote_ops.to_terminal_ours_for_output = NULL;
remote_ops.to_terminal_ours = NULL;
remote_ops.to_terminal_info = NULL;
remote_ops.to_kill = remote_kill;
remote_ops.to_load = generic_load;
remote_ops.to_lookup_symbol = NULL;
remote_ops.to_create_inferior = NULL;
remote_ops.to_mourn_inferior = remote_mourn;
remote_ops.to_can_run = 0;
remote_ops.to_notice_signals = 0;
remote_ops.to_thread_alive = remote_thread_alive;
remote_ops.to_stop = 0;
remote_ops.to_stratum = process_stratum;
remote_ops.DONT_USE = NULL;
remote_ops.to_has_all_memory = 1;
remote_ops.to_has_memory = 1;
remote_ops.to_has_stack = 1;
remote_ops.to_has_registers = 1;
remote_ops.to_has_execution = 1;
remote_ops.to_sections = NULL;
remote_ops.to_sections_end = NULL;
remote_ops.to_magic = OPS_MAGIC ;
} /* init_remote_ops */
static struct target_ops extended_remote_ops ;
static void init_extended_remote_ops(void)
{
extended_remote_ops.to_shortname = "extended-remote";
extended_remote_ops.to_longname = "Extended remote serial target in gdb-specific protocol";
extended_remote_ops.to_doc = "Use a remote computer via a serial line; using a gdb-specific protocol.\n\
Specify the serial device it is connected to (e.g. /dev/ttya).",
extended_remote_ops.to_open = extended_remote_open;
extended_remote_ops.to_close = remote_close;
extended_remote_ops.to_attach = NULL;
extended_remote_ops.to_detach = remote_detach;
extended_remote_ops.to_resume = remote_resume;
extended_remote_ops.to_wait = remote_wait;
extended_remote_ops.to_fetch_registers = remote_fetch_registers;
extended_remote_ops.to_store_registers = remote_store_registers;
extended_remote_ops.to_prepare_to_store = remote_prepare_to_store;
extended_remote_ops.to_xfer_memory = remote_xfer_memory;
extended_remote_ops.to_files_info = remote_files_info;
extended_remote_ops.to_insert_breakpoint = remote_insert_breakpoint;
extended_remote_ops.to_remove_breakpoint = remote_remove_breakpoint;
extended_remote_ops.to_terminal_init = NULL;
extended_remote_ops.to_terminal_inferior = NULL;
extended_remote_ops.to_terminal_ours_for_output = NULL;
extended_remote_ops.to_terminal_ours = NULL;
extended_remote_ops.to_terminal_info = NULL;
extended_remote_ops.to_kill = remote_kill;
extended_remote_ops.to_load = generic_load;
extended_remote_ops.to_lookup_symbol = NULL;
extended_remote_ops.to_create_inferior = extended_remote_create_inferior;
extended_remote_ops.to_mourn_inferior = extended_remote_mourn;
extended_remote_ops.to_can_run = 0;
extended_remote_ops.to_notice_signals = 0;
extended_remote_ops.to_thread_alive = remote_thread_alive;
extended_remote_ops.to_stop = 0;
extended_remote_ops.to_stratum = process_stratum;
extended_remote_ops.DONT_USE = NULL;
extended_remote_ops.to_has_all_memory = 1;
extended_remote_ops.to_has_memory = 1;
extended_remote_ops.to_has_stack = 1;
extended_remote_ops.to_has_registers = 1;
extended_remote_ops.to_has_execution = 1;
extended_remote_ops.to_sections = NULL;
extended_remote_ops.to_sections_end = NULL;
extended_remote_ops.to_magic = OPS_MAGIC ;
}
/* This was 5 seconds, which is a long time to sit and wait. /* This was 5 seconds, which is a long time to sit and wait.
Unless this is going though some terminal server or multiplexer or Unless this is going though some terminal server or multiplexer or
@ -1311,6 +1404,16 @@ remote_xfer_memory(memaddr, myaddr, len, should_write, target)
int should_write; int should_write;
struct target_ops *target; /* ignored */ struct target_ops *target; /* ignored */
{ {
#ifdef REMOTE_TRANSLATE_XFER_ADDRESS
CORE_ADDR targaddr;
int targlen;
REMOTE_TRANSLATE_XFER_ADDRESS (memaddr, len, targaddr, targlen);
if (targlen == 0)
return 0;
memaddr = targaddr;
len = targlen;
#endif
return dcache_xfer_memory (remote_dcache, memaddr, myaddr, len, should_write); return dcache_xfer_memory (remote_dcache, memaddr, myaddr, len, should_write);
} }
@ -1881,100 +1984,6 @@ remote_remove_breakpoint (addr, contents_cache)
return memory_remove_breakpoint (addr, contents_cache); return memory_remove_breakpoint (addr, contents_cache);
#endif /* REMOTE_BREAKPOINT */ #endif /* REMOTE_BREAKPOINT */
} }
/* Define the target subroutine names */
static struct target_ops remote_ops =
{
"remote", /* to_shortname */
"Remote serial target in gdb-specific protocol", /* to_longname */
"Use a remote computer via a serial line, using a gdb-specific protocol.\n\
Specify the serial device it is connected to (e.g. /dev/ttya).", /* to_doc */
remote_open, /* to_open */
remote_close, /* to_close */
NULL, /* to_attach */
remote_detach, /* to_detach */
remote_resume, /* to_resume */
remote_wait, /* to_wait */
remote_fetch_registers, /* to_fetch_registers */
remote_store_registers, /* to_store_registers */
remote_prepare_to_store, /* to_prepare_to_store */
remote_xfer_memory, /* to_xfer_memory */
remote_files_info, /* to_files_info */
remote_insert_breakpoint, /* to_insert_breakpoint */
remote_remove_breakpoint, /* to_remove_breakpoint */
NULL, /* to_terminal_init */
NULL, /* to_terminal_inferior */
NULL, /* to_terminal_ours_for_output */
NULL, /* to_terminal_ours */
NULL, /* to_terminal_info */
remote_kill, /* to_kill */
generic_load, /* to_load */
NULL, /* to_lookup_symbol */
NULL, /* to_create_inferior */
remote_mourn, /* to_mourn_inferior */
0, /* to_can_run */
0, /* to_notice_signals */
remote_thread_alive, /* to_thread_alive */
0, /* to_stop */
process_stratum, /* to_stratum */
NULL, /* to_next */
1, /* to_has_all_memory */
1, /* to_has_memory */
1, /* to_has_stack */
1, /* to_has_registers */
1, /* to_has_execution */
NULL, /* sections */
NULL, /* sections_end */
OPS_MAGIC /* to_magic */
};
static struct target_ops extended_remote_ops =
{
"extended-remote", /* to_shortname */
"Extended remote serial target in gdb-specific protocol",/* to_longname */
"Use a remote computer via a serial line, using a gdb-specific protocol.\n\
Specify the serial device it is connected to (e.g. /dev/ttya).", /* to_doc */
extended_remote_open, /* to_open */
remote_close, /* to_close */
NULL, /* to_attach */
remote_detach, /* to_detach */
remote_resume, /* to_resume */
remote_wait, /* to_wait */
remote_fetch_registers, /* to_fetch_registers */
remote_store_registers, /* to_store_registers */
remote_prepare_to_store, /* to_prepare_to_store */
remote_xfer_memory, /* to_xfer_memory */
remote_files_info, /* to_files_info */
remote_insert_breakpoint, /* to_insert_breakpoint */
remote_remove_breakpoint, /* to_remove_breakpoint */
NULL, /* to_terminal_init */
NULL, /* to_terminal_inferior */
NULL, /* to_terminal_ours_for_output */
NULL, /* to_terminal_ours */
NULL, /* to_terminal_info */
remote_kill, /* to_kill */
generic_load, /* to_load */
NULL, /* to_lookup_symbol */
extended_remote_create_inferior,/* to_create_inferior */
extended_remote_mourn, /* to_mourn_inferior */
0, /* to_can_run */
0, /* to_notice_signals */
remote_thread_alive, /* to_thread_alive */
0, /* to_stop */
process_stratum, /* to_stratum */
NULL, /* to_next */
1, /* to_has_all_memory */
1, /* to_has_memory */
1, /* to_has_stack */
1, /* to_has_registers */
1, /* to_has_execution */
NULL, /* sections */
NULL, /* sections_end */
OPS_MAGIC /* to_magic */
};
/* Some targets are only capable of doing downloads, and afterwards they switch /* Some targets are only capable of doing downloads, and afterwards they switch
to the remote serial protocol. This function provides a clean way to get to the remote serial protocol. This function provides a clean way to get
@ -2011,9 +2020,12 @@ open_remote_target (name, from_tty, target, extended_p)
remote_open_1 (name, from_tty, target, extended_p); remote_open_1 (name, from_tty, target, extended_p);
} }
void void
_initialize_remote () _initialize_remote ()
{ {
init_remote_ops() ;
init_extended__remote_ops() ;
add_target (&remote_ops); add_target (&remote_ops);
add_target (&extended_remote_ops); add_target (&extended_remote_ops);

View file

@ -860,53 +860,56 @@ sparclite_download (filename, from_tty)
/* Define the target subroutine names */ /* Define the target subroutine names */
static struct target_ops sparclite_ops = static struct target_ops sparclite_ops ;
static void init_sparclite_ops(void)
{ {
"sparclite", /* to_shortname */ sparclite_ops.to_shortname = "sparclite";
"SPARClite remote target", /* to_longname */ sparclite_ops.to_longname = "SPARClite remote target";
"Use a remote SPARClite target board via a serial line, using a gdb-specific protocol.\n\ sparclite_ops.to_doc = "Use a remote SPARClite target board via a serial line; using a gdb-specific protocol.\n\
Specify the serial device it is connected to (e.g. /dev/ttya).", /* to_doc */ Specify the serial device it is connected to (e.g. /dev/ttya).";
sparclite_open, /* to_open */ sparclite_ops.to_open = sparclite_open;
sparclite_close, /* to_close */ sparclite_ops.to_close = sparclite_close;
0, /* to_attach */ sparclite_ops.to_attach = 0;
0, /* to_detach */ sparclite_ops.to_detach = 0;
0, /* to_resume */ sparclite_ops.to_resume = 0;
0, /* to_wait */ sparclite_ops.to_wait = 0;
0, /* to_fetch_registers */ sparclite_ops.to_fetch_registers = 0;
0, /* to_store_registers */ sparclite_ops.to_store_registers = 0;
0, /* to_prepare_to_store */ sparclite_ops.to_prepare_to_store = 0;
0, /* to_xfer_memory */ sparclite_ops.to_xfer_memory = 0;
0, /* to_files_info */ sparclite_ops.to_files_info = 0;
0, /* to_insert_breakpoint */ sparclite_ops.to_insert_breakpoint = 0;
0, /* to_remove_breakpoint */ sparclite_ops.to_remove_breakpoint = 0;
0, /* to_terminal_init */ sparclite_ops.to_terminal_init = 0;
0, /* to_terminal_inferior */ sparclite_ops.to_terminal_inferior = 0;
0, /* to_terminal_ours_for_output */ sparclite_ops.to_terminal_ours_for_output = 0;
0, /* to_terminal_ours */ sparclite_ops.to_terminal_ours = 0;
0, /* to_terminal_info */ sparclite_ops.to_terminal_info = 0;
0, /* to_kill */ sparclite_ops.to_kill = 0;
sparclite_download, /* to_load */ sparclite_ops.to_load = sparclite_download;
0, /* to_lookup_symbol */ sparclite_ops.to_lookup_symbol = 0;
0, /* to_create_inferior */ sparclite_ops.to_create_inferior = 0;
0, /* to_mourn_inferior */ sparclite_ops.to_mourn_inferior = 0;
0, /* to_can_run */ sparclite_ops.to_can_run = 0;
0, /* to_notice_signals */ sparclite_ops.to_notice_signals = 0;
0, /* to_thread_alive */ sparclite_ops.to_thread_alive = 0;
0, /* to_stop */ sparclite_ops.to_stop = 0;
download_stratum, /* to_stratum */ sparclite_ops.to_stratum = download_stratum;
0, /* to_next */ sparclite_ops.DONT_USE = 0;
0, /* to_has_all_memory */ sparclite_ops.to_has_all_memory = 0;
0, /* to_has_memory */ sparclite_ops.to_has_memory = 0;
0, /* to_has_stack */ sparclite_ops.to_has_stack = 0;
0, /* to_has_registers */ sparclite_ops.to_has_registers = 0;
0, /* to_has_execution */ sparclite_ops.to_has_execution = 0;
0, /* sections */ sparclite_ops.to_sections = 0;
0, /* sections_end */ sparclite_ops.to_sections_end = 0;
OPS_MAGIC /* to_magic */ sparclite_ops.to_magic = OPS_MAGIC ;
}; } /* init_sparclite_ops */
void void
_initialize_sparcl_tdep () _initialize_sparcl_tdep ()
{ {
init_sparclite_ops() ;
add_target (&sparclite_ops); add_target (&sparclite_ops);
} }

View file

@ -36,7 +36,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "gdbthread.h" #include "gdbthread.h"
#endif #endif
#define WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN
#include <windows.h> #include <windows.h>
/* Prototypes for local functions */ /* Prototypes for local functions */
@ -73,6 +73,8 @@ static int v850ice_remove_breakpoint PARAMS ((CORE_ADDR, char *));
static int ice_open = 0; static int ice_open = 0;
static struct target_ops v850ice_ops ;
#ifndef EXPORT #ifndef EXPORT
#define EXPORT __declspec(dllexport) #define EXPORT __declspec(dllexport)
#endif #endif
@ -151,7 +153,6 @@ EXPORT long __stdcall GdbCallBack (void);
#define StatHardBreak 10 /* hit hardware breakpoint */ #define StatHardBreak 10 /* hit hardware breakpoint */
#define StatFailure 11 /* an error occured in the last run/single */ #define StatFailure 11 /* an error occured in the last run/single */
extern struct target_ops v850ice_ops; /* Forward decl */
/* "pir", "tkcw", "chcw", "adtre" */ /* "pir", "tkcw", "chcw", "adtre" */
@ -501,51 +502,54 @@ v850ice_mourn ()
/* Define the target subroutine names */ /* Define the target subroutine names */
struct target_ops v850ice_ops = {
"ice", /* to_shortname */ static void init_850ice_ops(void)
"NEC V850 ICE interface", /* to_longname */ {
"Debug a system controlled by a NEC 850 ICE.", /* to_doc */ v850ice_ops.to_shortname = "ice";
v850ice_open, /* to_open */ v850ice_ops.to_longname = "NEC V850 ICE interface";
v850ice_close, /* to_close */ v850ice_ops.to_doc = "Debug a system controlled by a NEC 850 ICE.";
NULL, /* to_attach */ v850ice_ops.to_open = v850ice_open;
v850ice_detach, /* to_detach */ v850ice_ops.to_close = v850ice_close;
v850ice_resume, /* to_resume */ v850ice_ops.to_attach = NULL;
v850ice_wait, /* to_wait */ v850ice_ops.to_detach = v850ice_detach;
v850ice_fetch_registers, /* to_fetch_registers */ v850ice_ops.to_resume = v850ice_resume;
v850ice_store_registers, /* to_store_registers */ v850ice_ops.to_wait = v850ice_wait;
v850ice_prepare_to_store, /* to_prepare_to_store */ v850ice_ops.to_fetch_registers = v850ice_fetch_registers;
v850ice_xfer_memory, /* to_xfer_memory */ v850ice_ops.to_store_registers = v850ice_store_registers;
v850ice_files_info, /* to_files_info */ v850ice_ops.to_prepare_to_store = v850ice_prepare_to_store;
v850ice_insert_breakpoint, /* to_insert_breakpoint */ v850ice_ops.to_xfer_memory = v850ice_xfer_memory;
v850ice_remove_breakpoint, /* to_remove_breakpoint */ v850ice_ops.to_files_info = v850ice_files_info;
NULL, /* to_terminal_init */ v850ice_ops.to_insert_breakpoint = v850ice_insert_breakpoint;
NULL, /* to_terminal_inferior */ v850ice_ops.to_remove_breakpoint = v850ice_remove_breakpoint;
NULL, /* to_terminal_ours_for_output */ v850ice_ops.to_terminal_init = NULL;
NULL, /* to_terminal_ours */ v850ice_ops.to_terminal_inferior = NULL;
NULL, /* to_terminal_info */ v850ice_ops.to_terminal_ours_for_output = NULL;
v850ice_kill, /* to_kill */ v850ice_ops.to_terminal_ours = NULL;
generic_load, /* to_load */ v850ice_ops.to_terminal_info = NULL;
NULL, /* to_lookup_symbol */ v850ice_ops.to_kill = v850ice_kill;
NULL, /* to_create_inferior */ v850ice_ops.to_load = generic_load;
v850ice_mourn, /* to_mourn_inferior */ v850ice_ops.to_lookup_symbol = NULL;
0, /* to_can_run */ v850ice_ops.to_create_inferior = NULL;
0, /* to_notice_signals */ v850ice_ops.to_mourn_inferior = v850ice_mourn;
NULL, /* to_thread_alive */ v850ice_ops.to_can_run = 0;
0, /* to_stop */ v850ice_ops.to_notice_signals = 0;
process_stratum, /* to_stratum */ v850ice_ops.to_thread_alive = NULL;
NULL, /* to_next */ v850ice_ops.to_stop = 0;
1, /* to_has_all_memory */ v850ice_ops.to_stratum = process_stratum;
1, /* to_has_memory */ v850ice_ops.DONT_USE = NULL;
1, /* to_has_stack */ v850ice_ops.to_has_all_memory = 1;
1, /* to_has_registers */ v850ice_ops.to_has_memory = 1;
1, /* to_has_execution */ v850ice_ops.to_has_stack = 1;
NULL, /* sections */ v850ice_ops.to_has_registers = 1;
NULL, /* sections_end */ v850ice_ops.to_has_execution = 1;
OPS_MAGIC /* to_magic */ v850ice_ops.to_sections = NULL;
}; v850ice_ops.to_sections_end = NULL;
v850ice_ops.to_magic = OPS_MAGIC ;
}
void void
_initialize_v850ice () _initialize_v850ice ()
{ {
init_850ice_ops() ;
add_target (&v850ice_ops); add_target (&v850ice_ops);
} }

View file

@ -886,54 +886,57 @@ child_close ()
DEBUG_EVENTS (("gdb: child_close, inferior_pid=%d\n", inferior_pid)); DEBUG_EVENTS (("gdb: child_close, inferior_pid=%d\n", inferior_pid));
} }
struct target_ops child_ops = struct target_ops child_ops ;
static void init_child_ops(void)
{ {
"child", /* to_shortname */ child_ops.to_shortname = "child";
"Win32 child process", /* to_longname */ child_ops.to_longname = "Win32 child process";
"Win32 child process (started by the \"run\" command).", /* to_doc */ child_ops.to_doc = "Win32 child process (started by the \"run\" command).";
child_open, /* to_open */ child_ops.to_open = child_open;
child_close, /* to_close */ child_ops.to_close = child_close;
child_attach, /* to_attach */ child_ops.to_attach = child_attach;
child_detach, /* to_detach */ child_ops.to_detach = child_detach;
child_resume, /* to_resume */ child_ops.to_resume = child_resume;
child_wait, /* to_wait */ child_ops.to_wait = child_wait;
child_fetch_inferior_registers,/* to_fetch_registers */ child_ops.to_fetch_registers = child_fetch_inferior_registers;
child_store_inferior_registers,/* to_store_registers */ child_ops.to_store_registers = child_store_inferior_registers;
child_prepare_to_store, /* to_child_prepare_to_store */ child_ops.to_prepare_to_store = child_prepare_to_store;
child_xfer_memory, /* to_xfer_memory */ child_ops.to_xfer_memory = child_xfer_memory;
child_files_info, /* to_files_info */ child_ops.to_files_info = child_files_info;
memory_insert_breakpoint, /* to_insert_breakpoint */ child_ops.to_insert_breakpoint = memory_insert_breakpoint;
memory_remove_breakpoint, /* to_remove_breakpoint */ child_ops.to_remove_breakpoint = memory_remove_breakpoint;
terminal_init_inferior, /* to_terminal_init */ child_ops.to_terminal_init = terminal_init_inferior;
terminal_inferior, /* to_terminal_inferior */ child_ops.to_terminal_inferior = terminal_inferior;
terminal_ours_for_output, /* to_terminal_ours_for_output */ child_ops.to_terminal_ours_for_output = terminal_ours_for_output;
terminal_ours, /* to_terminal_ours */ child_ops.to_terminal_ours = terminal_ours;
child_terminal_info, /* to_terminal_info */ child_ops.to_terminal_info = child_terminal_info;
child_kill_inferior, /* to_kill */ child_ops.to_kill = child_kill_inferior;
0, /* to_load */ child_ops.to_load = 0;
0, /* to_lookup_symbol */ child_ops.to_lookup_symbol = 0;
child_create_inferior, /* to_create_inferior */ child_ops.to_create_inferior = child_create_inferior;
child_mourn_inferior, /* to_mourn_inferior */ child_ops.to_mourn_inferior = child_mourn_inferior;
child_can_run, /* to_can_run */ child_ops.to_can_run = child_can_run;
0, /* to_notice_signals */ child_ops.to_notice_signals = 0;
0, /* to_thread_alive */ child_ops.to_thread_alive = 0;
child_stop, /* to_stop */ child_ops.to_stop = child_stop;
process_stratum, /* to_stratum */ child_ops.to_stratum = process_stratum;
0, /* to_next */ child_ops.DONT_USE = 0;
1, /* to_has_all_memory */ child_ops.to_has_all_memory = 1;
1, /* to_has_memory */ child_ops.to_has_memory = 1;
1, /* to_has_stack */ child_ops.to_has_stack = 1;
1, /* to_has_registers */ child_ops.to_has_registers = 1;
1, /* to_has_execution */ child_ops.to_has_execution = 1;
0, /* to_sections */ child_ops.to_sections = 0;
0, /* to_sections_end */ child_ops.to_sections_end = 0;
OPS_MAGIC /* to_magic */ child_ops.to_magic = OPS_MAGIC;
}; }
void void
_initialize_inftarg () _initialize_inftarg ()
{ {
struct cmd_list_element *c; struct cmd_list_element *c;
init_child_ops() ;
add_show_from_set add_show_from_set
(add_set_cmd ("new-console", class_support, var_boolean, (add_set_cmd ("new-console", class_support, var_boolean,