X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Falpha-linux-nat.c;h=5fd7a932ce134d688ef8bd8b5a0aae810b839162;hb=e822f2cda9bc484adb5f8860050640a5c6f1ced9;hp=66e2a96aed7dd8005bb6dde27e6803028481a095;hpb=618f726fcb851883a0094aa7fa17003889b7189f;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/alpha-linux-nat.c b/gdb/alpha-linux-nat.c index 66e2a96aed..5fd7a932ce 100644 --- a/gdb/alpha-linux-nat.c +++ b/gdb/alpha-linux-nat.c @@ -1,5 +1,5 @@ /* Low level Alpha GNU/Linux interface, for GDB when running native. - Copyright (C) 2005-2016 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -19,9 +19,10 @@ #include "defs.h" #include "target.h" #include "regcache.h" -#include "linux-nat.h" +#include "linux-nat-trad.h" #include "alpha-tdep.h" +#include "gdbarch.h" #include "nat/gdb_ptrace.h" #include @@ -32,6 +33,15 @@ /* The address of UNIQUE for ptrace. */ #define ALPHA_UNIQUE_PTRACE_ADDR 65 +class alpha_linux_nat_target final : public linux_nat_trad_target +{ +protected: + /* Override linux_nat_trad_target methods. */ + CORE_ADDR register_u_offset (struct gdbarch *gdbarch, + int regno, int store_p) override; +}; + +static alpha_linux_nat_target the_alpha_linux_nat_target; /* See the comment in m68k-tdep.c regarding the utility of these functions. */ @@ -77,9 +87,9 @@ fill_fpregset (const struct regcache *regcache, alpha_fill_fp_regs (regcache, regno, regp, regp + 31); } - -static CORE_ADDR -alpha_linux_register_u_offset (struct gdbarch *gdbarch, int regno, int store_p) +CORE_ADDR +alpha_linux_nat_target::register_u_offset (struct gdbarch *gdbarch, + int regno, int store_p) { if (regno == gdbarch_pc_regnum (gdbarch)) return PC; @@ -91,10 +101,10 @@ alpha_linux_register_u_offset (struct gdbarch *gdbarch, int regno, int store_p) return FPR_BASE + regno - gdbarch_fp0_regnum (gdbarch); } -void _initialize_alpha_linux_nat (void); - +void _initialize_alpha_linux_nat (); void -_initialize_alpha_linux_nat (void) +_initialize_alpha_linux_nat () { - linux_nat_add_target (linux_trad_target (alpha_linux_register_u_offset)); + linux_target = &the_alpha_linux_nat_target; + add_inf_child_target (&the_alpha_linux_nat_target); }