#include <sgidefs.h>
#include "nat/gdb_ptrace.h"
#include <asm/ptrace.h>
+#include "inf-ptrace.h"
#include "nat/mips-linux-watch.h"
-#include "features/mips-linux.c"
-#include "features/mips-dsp-linux.c"
-#include "features/mips64-linux.c"
-#include "features/mips64-dsp-linux.c"
-
#ifndef PTRACE_GET_THREAD_AREA
#define PTRACE_GET_THREAD_AREA 25
#endif
void
supply_gregset (struct regcache *regcache, const gdb_gregset_t *gregsetp)
{
- if (mips_isa_regsize (get_regcache_arch (regcache)) == 4)
+ if (mips_isa_regsize (regcache->arch ()) == 4)
mips_supply_gregset (regcache, (const mips_elf_gregset_t *) gregsetp);
else
mips64_supply_gregset (regcache, (const mips64_elf_gregset_t *) gregsetp);
fill_gregset (const struct regcache *regcache,
gdb_gregset_t *gregsetp, int regno)
{
- if (mips_isa_regsize (get_regcache_arch (regcache)) == 4)
+ if (mips_isa_regsize (regcache->arch ()) == 4)
mips_fill_gregset (regcache, (mips_elf_gregset_t *) gregsetp, regno);
else
mips64_fill_gregset (regcache, (mips64_elf_gregset_t *) gregsetp, regno);
void
supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *fpregsetp)
{
- if (mips_isa_regsize (get_regcache_arch (regcache)) == 4)
+ if (mips_isa_regsize (regcache->arch ()) == 4)
mips_supply_fpregset (regcache, (const mips_elf_fpregset_t *) fpregsetp);
else
mips64_supply_fpregset (regcache,
fill_fpregset (const struct regcache *regcache,
gdb_fpregset_t *fpregsetp, int regno)
{
- if (mips_isa_regsize (get_regcache_arch (regcache)) == 4)
+ if (mips_isa_regsize (regcache->arch ()) == 4)
mips_fill_fpregset (regcache, (mips_elf_fpregset_t *) fpregsetp, regno);
else
mips64_fill_fpregset (regcache,
mips64_linux_regsets_fetch_registers (struct target_ops *ops,
struct regcache *regcache, int regno)
{
- struct gdbarch *gdbarch = get_regcache_arch (regcache);
+ struct gdbarch *gdbarch = regcache->arch ();
int is_fp, is_dsp;
int have_dsp;
int regi;
else
is_dsp = 0;
- tid = ptid_get_lwp (inferior_ptid);
- if (tid == 0)
- tid = ptid_get_pid (inferior_ptid);
+ tid = get_ptrace_pid (regcache_get_ptid (regcache));
if (regno == -1 || (!is_fp && !is_dsp))
{
mips64_linux_regsets_store_registers (struct target_ops *ops,
struct regcache *regcache, int regno)
{
- struct gdbarch *gdbarch = get_regcache_arch (regcache);
+ struct gdbarch *gdbarch = regcache->arch ();
int is_fp, is_dsp;
int have_dsp;
int regi;
else
is_dsp = 0;
- tid = ptid_get_lwp (inferior_ptid);
- if (tid == 0)
- tid = ptid_get_pid (inferior_ptid);
+ tid = get_ptrace_pid (regcache_get_ptid (regcache));
if (regno == -1 || (!is_fp && !is_dsp))
{
static void
mips_linux_new_thread (struct lwp_info *lp)
{
- int tid;
+ long tid = lp->ptid.lwp ();
- if (!mips_linux_read_watch_registers (ptid_get_lwp (inferior_ptid),
+ if (!mips_linux_read_watch_registers (tid,
&watch_readback,
&watch_readback_valid, 0))
return;
- tid = ptid_get_lwp (lp->ptid);
if (ptrace (PTRACE_SET_WATCH_REGS, tid, &watch_mirror, NULL) == -1)
perror_with_name (_("Couldn't write debug register"));
}
super_close (self);
}
-void _initialize_mips_linux_nat (void);
-
void
_initialize_mips_linux_nat (void)
{
linux_nat_add_target (t);
linux_nat_set_new_thread (t, mips_linux_new_thread);
-
- /* Initialize the standard target descriptions. */
- initialize_tdesc_mips_linux ();
- initialize_tdesc_mips_dsp_linux ();
- initialize_tdesc_mips64_linux ();
- initialize_tdesc_mips64_dsp_linux ();
}