summaryrefslogtreecommitdiff
path: root/gdbserver/target.h
diff options
context:
space:
mode:
authorTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2020-02-17 16:12:01 +0100
committerTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2020-02-20 17:35:17 +0100
commit79597bdd56f380555ed7075b39a9280a17bd7e90 (patch)
tree596147d06b37580578c6cd27b4e5ac245201f193 /gdbserver/target.h
parentc0245cb999ec9692db1947240e865988a0c19c82 (diff)
downloadbinutils-gdb-79597bdd56f380555ed7075b39a9280a17bd7e90.tar.gz
gdbserver: turn btrace-related target ops into methods
gdbserver/ChangeLog: 2020-02-20 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> Turn process_stratum_target's btrace-related ops (enable_btrace, disable_btrace, read_btrace, read_btrace_conf) into methods of process_target. * target.h (struct process_stratum_target): Remove the target ops. (class process_target): Add the target ops. (target_enable_btrace): Update. (target_disable_btrace): Update. (target_read_btrace): Update. (target_read_btrace_conf): Update. * target.cc (process_target::enable_btrace): Define. (process_target::disable_btrace): Define. (process_target::read_btrace): Define. (process_target::read_btrace_conf): Define. Update the derived classes and callers below. * linux-low.cc (linux_target_ops): Update. (linux_process_target:enable_btrace): Define as a wrapper around linux_enable_btrace. (linux_low_disable_btrace): Turn into ... (linux_process_target::disable_btrace): ... this. (linux_low_read_btrace): Turn into ... (linux_process_target::read_btrace): ... this. (linux_low_btrace_conf): Turn into ... (linux_process_target::read_btrace_conf): ... this. * linux-low.h (class linux_process_target): Update. * lynx-low.cc (lynx_target_ops): Update. * nto-low.cc (nto_target_ops): Update. * win32-low.cc (win32_target_ops): Update.
Diffstat (limited to 'gdbserver/target.h')
-rw-r--r--gdbserver/target.h61
1 files changed, 25 insertions, 36 deletions
diff --git a/gdbserver/target.h b/gdbserver/target.h
index 8a1c12260f1..9d7c599b1e6 100644
--- a/gdbserver/target.h
+++ b/gdbserver/target.h
@@ -70,26 +70,6 @@ class process_target;
shared code. */
struct process_stratum_target
{
- /* Enable branch tracing for PTID based on CONF and allocate a branch trace
- target information struct for reading and for disabling branch trace. */
- struct btrace_target_info *(*enable_btrace)
- (ptid_t ptid, const struct btrace_config *conf);
-
- /* Disable branch tracing.
- Returns zero on success, non-zero otherwise. */
- int (*disable_btrace) (struct btrace_target_info *tinfo);
-
- /* Read branch trace data into buffer.
- Return 0 on success; print an error message into BUFFER and return -1,
- otherwise. */
- int (*read_btrace) (struct btrace_target_info *, struct buffer *,
- enum btrace_read_type type);
-
- /* Read the branch trace configuration into BUFFER.
- Return 0 on success; print an error message into BUFFER and return -1
- otherwise. */
- int (*read_btrace_conf) (const struct btrace_target_info *, struct buffer *);
-
/* Return true if target supports range stepping. */
int (*supports_range_stepping) (void);
@@ -497,6 +477,27 @@ public:
/* Return true if target supports debugging agent. */
virtual bool supports_agent ();
+
+ /* Enable branch tracing for PTID based on CONF and allocate a branch trace
+ target information struct for reading and for disabling branch trace. */
+ virtual btrace_target_info *enable_btrace (ptid_t ptid,
+ const btrace_config *conf);
+
+ /* Disable branch tracing.
+ Returns zero on success, non-zero otherwise. */
+ virtual int disable_btrace (btrace_target_info *tinfo);
+
+ /* Read branch trace data into buffer.
+ Return 0 on success; print an error message into BUFFER and return -1,
+ otherwise. */
+ virtual int read_btrace (btrace_target_info *tinfo, buffer *buf,
+ enum btrace_read_type type);
+
+ /* Read the branch trace configuration into BUFFER.
+ Return 0 on success; print an error message into BUFFER and return -1
+ otherwise. */
+ virtual int read_btrace_conf (const btrace_target_info *tinfo,
+ buffer *buf);
};
extern process_stratum_target *the_target;
@@ -612,19 +613,13 @@ int kill_inferior (process_info *proc);
static inline struct btrace_target_info *
target_enable_btrace (ptid_t ptid, const struct btrace_config *conf)
{
- if (the_target->enable_btrace == nullptr)
- error (_("Target does not support branch tracing."));
-
- return (*the_target->enable_btrace) (ptid, conf);
+ return the_target->pt->enable_btrace (ptid, conf);
}
static inline int
target_disable_btrace (struct btrace_target_info *tinfo)
{
- if (the_target->disable_btrace == nullptr)
- error (_("Target does not support branch tracing."));
-
- return (*the_target->disable_btrace) (tinfo);
+ return the_target->pt->disable_btrace (tinfo);
}
static inline int
@@ -632,20 +627,14 @@ target_read_btrace (struct btrace_target_info *tinfo,
struct buffer *buffer,
enum btrace_read_type type)
{
- if (the_target->read_btrace == nullptr)
- error (_("Target does not support branch tracing."));
-
- return (*the_target->read_btrace) (tinfo, buffer, type);
+ return the_target->pt->read_btrace (tinfo, buffer, type);
}
static inline int
target_read_btrace_conf (struct btrace_target_info *tinfo,
struct buffer *buffer)
{
- if (the_target->read_btrace_conf == nullptr)
- error (_("Target does not support branch tracing."));
-
- return (*the_target->read_btrace_conf) (tinfo, buffer);
+ return the_target->pt->read_btrace_conf (tinfo, buffer);
}
#define target_supports_range_stepping() \