diff options
author | Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> | 2020-02-17 16:11:57 +0100 |
---|---|---|
committer | Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> | 2020-02-20 17:35:10 +0100 |
commit | 0dc587d42590c568bea6bb1953362539c2f79d3b (patch) | |
tree | bf2f556d52a9267cb9c2390049f773cf9f73bdde /gdbserver/target.h | |
parent | d7abedf7e7d18c8a32f63b0e44bee4a4f3b581ba (diff) | |
download | gdb-0dc587d42590c568bea6bb1953362539c2f79d3b.zip gdb-0dc587d42590c568bea6bb1953362539c2f79d3b.tar.gz gdb-0dc587d42590c568bea6bb1953362539c2f79d3b.tar.bz2 |
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.h | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/gdbserver/target.h b/gdbserver/target.h index 1ad0005..d3ee445 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); |