summaryrefslogtreecommitdiff
path: root/gdbserver/target.h
diff options
context:
space:
mode:
authorTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2020-02-17 16:11:57 +0100
committerTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2020-02-20 17:35:10 +0100
commit0dc587d42590c568bea6bb1953362539c2f79d3b (patch)
treebf2f556d52a9267cb9c2390049f773cf9f73bdde /gdbserver/target.h
parentd7abedf7e7d18c8a32f63b0e44bee4a4f3b581ba (diff)
downloadbinutils-gdb-0dc587d42590c568bea6bb1953362539c2f79d3b.tar.gz
gdbserver: turn non-stop and async target ops into methods
gdbserver/ChangeLog: 2020-02-20 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> Turn process_stratum_target's supports_non_stop, async, and start_non_stop ops into methods of process_target. * target.h (struct process_stratum_target): Remove the target ops. (class process_target): Add the target ops. (target_supports_non_stop): Update the macro. (target_async): Update the macro. (start_non_stop): Remove declaration. * target.cc (process_target::supports_non_stop): Define. (process_target::async): Define. (process_target::start_non_stop): Define. (start_non_stop): Remove. Update the derived classes and callers below. * server.cc (handle_qxfer_siginfo): Update. (handle_query): Update. * linux-low.cc (linux_target_ops): Update. (linux_supports_non_stop): Turn into ... (linux_process_target::supports_non_stop): ... this. (linux_async): Turn into ... (linux_process_target::async): ... this. (linux_start_non_stop): Turn into ... (linux_process_target::start_non_stop): ... this. * linux-low.h (class linux_process_target): Update. * lynx-low.cc (lynx_target_ops): Update. * nto-low.cc (nto_target_ops): Update. (nto_supports_non_stop): Remove; rely on the default behavior instead. * win32-low.cc (win32_target_ops): Update.
Diffstat (limited to 'gdbserver/target.h')
-rw-r--r--gdbserver/target.h29
1 files changed, 13 insertions, 16 deletions
diff --git a/gdbserver/target.h b/gdbserver/target.h
index 1ad0005c8f4..d3ee4452b63 100644
--- a/gdbserver/target.h
+++ b/gdbserver/target.h
@@ -70,16 +70,6 @@ class process_target;
shared code. */
struct process_stratum_target
{
- int (*supports_non_stop) (void);
-
- /* Enables async target events. Returns the previous enable
- state. */
- int (*async) (int enable);
-
- /* Switch to non-stop (1) or all-stop (0) mode. Return 0 on
- success, -1 otherwise. */
- int (*start_non_stop) (int);
-
/* Returns true if the target supports multi-process debugging. */
int (*supports_multi_process) (void);
@@ -485,6 +475,17 @@ public:
virtual int qxfer_siginfo (const char *annex, unsigned char *readbuf,
unsigned const char *writebuf,
CORE_ADDR offset, int len);
+
+ /* Return true if non-stop mode is supported. */
+ virtual bool supports_non_stop ();
+
+ /* Enables async target events. Returns the previous enable
+ state. */
+ virtual bool async (bool enable);
+
+ /* Switch to non-stop (ENABLE == true) or all-stop (ENABLE == false)
+ mode. Return 0 on success, -1 otherwise. */
+ virtual int start_non_stop (bool enable);
};
extern process_stratum_target *the_target;
@@ -537,10 +538,10 @@ int kill_inferior (process_info *proc);
the_target->pt->join (pid)
#define target_supports_non_stop() \
- (the_target->supports_non_stop ? (*the_target->supports_non_stop ) () : 0)
+ the_target->pt->supports_non_stop ()
#define target_async(enable) \
- (the_target->async ? (*the_target->async) (enable) : 0)
+ the_target->pt->async (enable)
#define target_process_qsupported(features, count) \
do \
@@ -696,10 +697,6 @@ target_read_btrace_conf (struct btrace_target_info *tinfo,
(the_target->supports_software_single_step ? \
(*the_target->supports_software_single_step) () : 0)
-/* Start non-stop mode, returns 0 on success, -1 on failure. */
-
-int start_non_stop (int nonstop);
-
ptid_t mywait (ptid_t ptid, struct target_waitstatus *ourstatus, int options,
int connected_wait);