diff options
author | John Metzler <jmetzler@cygnus> | 1998-05-21 20:20:39 +0000 |
---|---|---|
committer | John Metzler <jmetzler@cygnus> | 1998-05-21 20:20:39 +0000 |
commit | c719b71428c79aa3f92dbb59d67df6d4bda139c3 (patch) | |
tree | 7a0f22aaaaa024bbbbc5fd724c0fa97df269be44 /gdb/remote.c | |
parent | 5e34097b8b81e3d25e1a4b9b3d16ddd54fafb26c (diff) | |
download | gdb-c719b71428c79aa3f92dbb59d67df6d4bda139c3.zip gdb-c719b71428c79aa3f92dbb59d67df6d4bda139c3.tar.gz gdb-c719b71428c79aa3f92dbb59d67df6d4bda139c3.tar.bz2 |
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
Diffstat (limited to 'gdb/remote.c')
-rw-r--r-- | gdb/remote.c | 206 |
1 files changed, 109 insertions, 97 deletions
diff --git a/gdb/remote.c b/gdb/remote.c index c1d8ec1..8f94e16 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -275,15 +275,108 @@ static int remote_remove_breakpoint PARAMS ((CORE_ADDR, char *)); 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 */ extern int fromhex PARAMS ((int a)); extern void getpkt PARAMS ((char *buf, int forever)); 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. 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; 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); } @@ -1881,100 +1984,6 @@ remote_remove_breakpoint (addr, contents_cache) return memory_remove_breakpoint (addr, contents_cache); #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 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); } + void _initialize_remote () { + init_remote_ops() ; + init_extended__remote_ops() ; add_target (&remote_ops); add_target (&extended_remote_ops); |