/* Implement the read_memory target_ops method. */
-static int
-lynx_read_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
+int
+lynx_process_target::read_memory (CORE_ADDR memaddr, unsigned char *myaddr,
+ int len)
{
/* On LynxOS, memory reads needs to be performed in chunks the size
of int types, and they should also be aligned accordingly. */
/* Implement the write_memory target_ops method. */
-static int
-lynx_write_memory (CORE_ADDR memaddr, const unsigned char *myaddr, int len)
+int
+lynx_process_target::write_memory (CORE_ADDR memaddr,
+ const unsigned char *myaddr, int len)
{
/* On LynxOS, memory writes needs to be performed in chunks the size
of int types, and they should also be aligned accordingly. */
{
/* We need to read the memory at this address in order to preserve
the data that we are not overwriting. */
- lynx_read_memory (addr, (unsigned char *) &buf, xfer_size);
+ read_memory (addr, (unsigned char *) &buf, xfer_size);
if (errno)
return errno;
}
/* Implement the kill_request target_ops method. */
-static void
-lynx_request_interrupt (void)
+void
+lynx_process_target::request_interrupt ()
{
ptid_t inferior_ptid = ptid_of (get_first_thread ());
kill (lynx_ptid_get_pid (inferior_ptid), SIGINT);
}
+bool
+lynx_process_target::supports_hardware_single_step ()
+{
+ return true;
+}
+
+const gdb_byte *
+lynx_process_target::sw_breakpoint_from_kind (int kind, int *size)
+{
+ error (_("Target does not implement the sw_breakpoint_from_kind op"));
+}
+
/* The LynxOS target ops object. */
static lynx_process_target the_lynx_target;
-/* The LynxOS target_ops vector. */
-
-static process_stratum_target lynx_target_ops = {
- lynx_read_memory,
- lynx_write_memory,
- NULL, /* look_up_symbols */
- lynx_request_interrupt,
- NULL, /* read_auxv */
- NULL, /* supports_z_point_type */
- NULL, /* insert_point */
- NULL, /* remove_point */
- NULL, /* stopped_by_sw_breakpoint */
- NULL, /* supports_stopped_by_sw_breakpoint */
- NULL, /* stopped_by_hw_breakpoint */
- NULL, /* supports_stopped_by_hw_breakpoint */
- target_can_do_hardware_single_step,
- NULL, /* stopped_by_watchpoint */
- NULL, /* stopped_data_address */
- NULL, /* read_offsets */
- NULL, /* get_tls_address */
- NULL, /* hostio_last_error */
- NULL, /* qxfer_osdata */
- NULL, /* qxfer_siginfo */
- NULL, /* supports_non_stop */
- NULL, /* async */
- NULL, /* start_non_stop */
- NULL, /* supports_multi_process */
- NULL, /* supports_fork_events */
- NULL, /* supports_vfork_events */
- NULL, /* supports_exec_events */
- NULL, /* handle_new_gdb_connection */
- NULL, /* handle_monitor_command */
- NULL, /* core_of_thread */
- NULL, /* read_loadmap */
- NULL, /* process_qsupported */
- NULL, /* supports_tracepoints */
- NULL, /* read_pc */
- NULL, /* write_pc */
- NULL, /* thread_stopped */
- NULL, /* get_tib_address */
- NULL, /* pause_all */
- NULL, /* unpause_all */
- NULL, /* stabilize_threads */
- NULL, /* install_fast_tracepoint_jump_pad */
- NULL, /* emit_ops */
- NULL, /* supports_disable_randomization */
- NULL, /* get_min_fast_tracepoint_insn_len */
- NULL, /* qxfer_libraries_svr4 */
- NULL, /* support_agent */
- NULL, /* enable_btrace */
- NULL, /* disable_btrace */
- NULL, /* read_btrace */
- NULL, /* read_btrace_conf */
- NULL, /* supports_range_stepping */
- NULL, /* pid_to_exec_file */
- NULL, /* multifs_open */
- NULL, /* multifs_unlink */
- NULL, /* multifs_readlink */
- NULL, /* breakpoint_kind_from_pc */
- NULL, /* sw_breakpoint_from_kind */
- NULL, /* thread_name */
- NULL, /* breakpoint_kind_from_current_state */
- NULL, /* supports_software_single_step */
- NULL, /* supports_catch_syscall */
- NULL, /* get_ipa_tdesc_idx */
- NULL, /* thread_handle */
- &the_lynx_target,
-};
-
void
initialize_low (void)
{
- set_target_ops (&lynx_target_ops);
+ set_target_ops (&the_lynx_target);
the_low_target.arch_setup ();
}