/* Native-dependent code for SPARC.
- Copyright (C) 2003-2014 Free Software Foundation, Inc.
+ Copyright (C) 2003-2016 Free Software Foundation, Inc.
This file is part of GDB.
#include "regcache.h"
#include "target.h"
-#include "gdb_assert.h"
#include <signal.h>
-#include <string.h>
#include <sys/ptrace.h>
#include "gdb_wait.h"
#ifdef HAVE_MACHINE_REG_H
#endif
/* Register set description. */
-const struct sparc_gregset *sparc_gregset;
-const struct sparc_fpregset *sparc_fpregset;
-void (*sparc_supply_gregset) (const struct sparc_gregset *,
+const struct sparc_gregmap *sparc_gregmap;
+const struct sparc_fpregmap *sparc_fpregmap;
+void (*sparc_supply_gregset) (const struct sparc_gregmap *,
struct regcache *, int , const void *);
-void (*sparc_collect_gregset) (const struct sparc_gregset *,
+void (*sparc_collect_gregset) (const struct sparc_gregmap *,
const struct regcache *, int, void *);
-void (*sparc_supply_fpregset) (const struct sparc_fpregset *,
+void (*sparc_supply_fpregset) (const struct sparc_fpregmap *,
struct regcache *, int , const void *);
-void (*sparc_collect_fpregset) (const struct sparc_fpregset *,
+void (*sparc_collect_fpregset) (const struct sparc_fpregmap *,
const struct regcache *, int , void *);
int (*sparc_gregset_supplies_p) (struct gdbarch *, int);
int (*sparc_fpregset_supplies_p) (struct gdbarch *, int);
if (ptrace (PTRACE_GETREGS, pid, (PTRACE_TYPE_ARG3) ®s, 0) == -1)
perror_with_name (_("Couldn't get registers"));
- sparc_supply_gregset (sparc_gregset, regcache, -1, ®s);
+ sparc_supply_gregset (sparc_gregmap, regcache, -1, ®s);
if (regnum != -1)
return;
}
if (ptrace (PTRACE_GETFPREGS, pid, (PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
perror_with_name (_("Couldn't get floating point status"));
- sparc_supply_fpregset (sparc_fpregset, regcache, -1, &fpregs);
+ sparc_supply_fpregset (sparc_fpregmap, regcache, -1, &fpregs);
}
}
if (ptrace (PTRACE_GETREGS, pid, (PTRACE_TYPE_ARG3) ®s, 0) == -1)
perror_with_name (_("Couldn't get registers"));
- sparc_collect_gregset (sparc_gregset, regcache, regnum, ®s);
+ sparc_collect_gregset (sparc_gregmap, regcache, regnum, ®s);
if (ptrace (PTRACE_SETREGS, pid, (PTRACE_TYPE_ARG3) ®s, 0) == -1)
perror_with_name (_("Couldn't write registers"));
perror_with_name (_("Couldn't get floating-point registers"));
memcpy (&saved_fpregs, &fpregs, sizeof (fpregs));
- sparc_collect_fpregset (sparc_fpregset, regcache, regnum, &fpregs);
+ sparc_collect_fpregset (sparc_fpregmap, regcache, regnum, &fpregs);
/* Writing the floating-point registers will fail on NetBSD with
EINVAL if the inferior process doesn't have an FPU state
later). Since release 3.6, OpenBSD uses a fully randomized
cookie. */
{
- int pid;
-
- pid = ptid_get_lwp (inferior_ptid);
- if (pid == 0)
- pid = ptid_get_pid (inferior_ptid);
+ int pid = ptid_get_pid (inferior_ptid);
/* Sanity check. The proper type for a cookie is register_t, but
we can't assume that this type exists on all systems supported
_initialize_sparc_nat (void)
{
/* Deafult to using SunOS 4 register sets. */
- if (sparc_gregset == NULL)
- sparc_gregset = &sparc32_sunos4_gregset;
- if (sparc_fpregset == NULL)
- sparc_fpregset = &sparc32_sunos4_fpregset;
+ if (sparc_gregmap == NULL)
+ sparc_gregmap = &sparc32_sunos4_gregmap;
+ if (sparc_fpregmap == NULL)
+ sparc_fpregmap = &sparc32_sunos4_fpregmap;
if (sparc_supply_gregset == NULL)
sparc_supply_gregset = sparc32_supply_gregset;
if (sparc_collect_gregset == NULL)