aboutsummaryrefslogtreecommitdiff
path: root/gdb/x86-linux-nat.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/x86-linux-nat.c')
-rw-r--r--gdb/x86-linux-nat.c80
1 files changed, 25 insertions, 55 deletions
diff --git a/gdb/x86-linux-nat.c b/gdb/x86-linux-nat.c
index a3bdaff..0910d00 100644
--- a/gdb/x86-linux-nat.c
+++ b/gdb/x86-linux-nat.c
@@ -27,7 +27,6 @@
#include <sys/uio.h>
#include "x86-nat.h"
-#include "linux-nat.h"
#ifndef __x86_64__
#include "i386-linux-nat.h"
#endif
@@ -78,14 +77,15 @@ x86_linux_new_fork (struct lwp_info *parent, pid_t child_pid)
}
-static void (*super_post_startup_inferior) (struct target_ops *self,
- ptid_t ptid);
+x86_linux_nat_target::~x86_linux_nat_target ()
+{
+}
-static void
-x86_linux_child_post_startup_inferior (struct target_ops *self, ptid_t ptid)
+void
+x86_linux_nat_target::post_startup_inferior (ptid_t ptid)
{
x86_cleanup_dregs ();
- super_post_startup_inferior (self, ptid);
+ linux_nat_target::post_startup_inferior (ptid);
}
#ifdef __x86_64__
@@ -102,8 +102,8 @@ x86_linux_child_post_startup_inferior (struct target_ops *self, ptid_t ptid)
/* Get Linux/x86 target description from running target. */
-static const struct target_desc *
-x86_linux_read_description (struct target_ops *ops)
+const struct target_desc *
+x86_linux_nat_target::read_description ()
{
int tid;
int is_64bit = 0;
@@ -212,9 +212,9 @@ x86_linux_read_description (struct target_ops *ops)
/* Enable branch tracing. */
-static struct btrace_target_info *
-x86_linux_enable_btrace (struct target_ops *self, ptid_t ptid,
- const struct btrace_config *conf)
+struct btrace_target_info *
+x86_linux_nat_target::enable_btrace (ptid_t ptid,
+ const struct btrace_config *conf)
{
struct btrace_target_info *tinfo = nullptr;
TRY
@@ -233,9 +233,8 @@ x86_linux_enable_btrace (struct target_ops *self, ptid_t ptid,
/* Disable branch tracing. */
-static void
-x86_linux_disable_btrace (struct target_ops *self,
- struct btrace_target_info *tinfo)
+void
+x86_linux_nat_target::disable_btrace (struct btrace_target_info *tinfo)
{
enum btrace_error errcode = linux_disable_btrace (tinfo);
@@ -245,28 +244,25 @@ x86_linux_disable_btrace (struct target_ops *self,
/* Teardown branch tracing. */
-static void
-x86_linux_teardown_btrace (struct target_ops *self,
- struct btrace_target_info *tinfo)
+void
+x86_linux_nat_target::teardown_btrace (struct btrace_target_info *tinfo)
{
/* Ignore errors. */
linux_disable_btrace (tinfo);
}
-static enum btrace_error
-x86_linux_read_btrace (struct target_ops *self,
- struct btrace_data *data,
- struct btrace_target_info *btinfo,
- enum btrace_read_type type)
+enum btrace_error
+x86_linux_nat_target::read_btrace (struct btrace_data *data,
+ struct btrace_target_info *btinfo,
+ enum btrace_read_type type)
{
return linux_read_btrace (data, btinfo, type);
}
/* See to_btrace_conf in target.h. */
-static const struct btrace_config *
-x86_linux_btrace_conf (struct target_ops *self,
- const struct btrace_target_info *btinfo)
+const struct btrace_config *
+x86_linux_nat_target::btrace_conf (const struct btrace_target_info *btinfo)
{
return linux_btrace_conf (btinfo);
}
@@ -315,16 +311,12 @@ x86_linux_get_thread_area (pid_t pid, void *addr, unsigned int *base_addr)
}
-/* Create an x86 GNU/Linux target. */
+/* Add an x86 GNU/Linux target. */
-struct target_ops *
-x86_linux_create_target (void)
+void
+x86_linux_add_target (linux_nat_target *t)
{
- /* Fill in the generic GNU/Linux methods. */
- struct target_ops *t = linux_target ();
-
/* Initialize the debug register function vectors. */
- x86_use_watchpoints (t);
x86_dr_low.set_control = x86_linux_dr_set_control;
x86_dr_low.set_addr = x86_linux_dr_set_addr;
x86_dr_low.get_addr = x86_linux_dr_get_addr;
@@ -332,29 +324,7 @@ x86_linux_create_target (void)
x86_dr_low.get_control = x86_linux_dr_get_control;
x86_set_debug_register_length (sizeof (void *));
- /* Override the GNU/Linux inferior startup hook. */
- super_post_startup_inferior = t->to_post_startup_inferior;
- t->to_post_startup_inferior = x86_linux_child_post_startup_inferior;
-
- /* Add the description reader. */
- t->to_read_description = x86_linux_read_description;
-
- /* Add btrace methods. */
- t->to_enable_btrace = x86_linux_enable_btrace;
- t->to_disable_btrace = x86_linux_disable_btrace;
- t->to_teardown_btrace = x86_linux_teardown_btrace;
- t->to_read_btrace = x86_linux_read_btrace;
- t->to_btrace_conf = x86_linux_btrace_conf;
-
- return t;
-}
-
-/* Add an x86 GNU/Linux target. */
-
-void
-x86_linux_add_target (struct target_ops *t)
-{
- linux_nat_add_target (t);
+ add_target (t);
linux_nat_set_new_thread (t, x86_linux_new_thread);
linux_nat_set_delete_thread (t, x86_linux_delete_thread);
linux_nat_set_new_fork (t, x86_linux_new_fork);