projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Makefile.in (HFILES_NO_SRCDIR): Remove "common/gdb_dirent.h".
[deliverable/binutils-gdb.git]
/
gdb
/
m68kbsd-nat.c
diff --git
a/gdb/m68kbsd-nat.c
b/gdb/m68kbsd-nat.c
index 34e94b4e2f96736f30947a488e290d3eb968e372..37929595a30ee791e4546ad28ae9bc57532d13d1 100644
(file)
--- a/
gdb/m68kbsd-nat.c
+++ b/
gdb/m68kbsd-nat.c
@@
-1,12
+1,12
@@
/* Native-dependent code for Motorola 68000 BSD's.
/* Native-dependent code for Motorola 68000 BSD's.
- Copyright
2004
Free Software Foundation, Inc.
+ Copyright
(C) 2004-2013
Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version
2
of the License, or
+ the Free Software Foundation; either version
3
of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
(at your option) any later version.
This program is distributed in the hope that it will be useful,
@@
-15,9
+15,7
@@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "defs.h"
#include "gdbcore.h"
#include "defs.h"
#include "gdbcore.h"
@@
-30,6
+28,7
@@
#include <machine/reg.h>
#include "m68k-tdep.h"
#include <machine/reg.h>
#include "m68k-tdep.h"
+#include "inf-ptrace.h"
static int
m68kbsd_gregset_supplies_p (int regnum)
static int
m68kbsd_gregset_supplies_p (int regnum)
@@
-60,12
+59,13
@@
m68kbsd_supply_gregset (struct regcache *regcache, const void *gregs)
static void
m68kbsd_supply_fpregset (struct regcache *regcache, const void *fpregs)
{
static void
m68kbsd_supply_fpregset (struct regcache *regcache, const void *fpregs)
{
+ struct gdbarch *gdbarch = get_regcache_arch (regcache);
const char *regs = fpregs;
int regnum;
for (regnum = M68K_FP0_REGNUM; regnum <= M68K_FPI_REGNUM; regnum++)
regcache_raw_supply (regcache, regnum,
const char *regs = fpregs;
int regnum;
for (regnum = M68K_FP0_REGNUM; regnum <= M68K_FPI_REGNUM; regnum++)
regcache_raw_supply (regcache, regnum,
- regs + m68kbsd_fpreg_offset (regnum));
+ regs + m68kbsd_fpreg_offset (
gdbarch,
regnum));
}
/* Collect the general-purpose registers from REGCACHE and store them
}
/* Collect the general-purpose registers from REGCACHE and store them
@@
-92,13
+92,15
@@
static void
m68kbsd_collect_fpregset (struct regcache *regcache,
void *fpregs, int regnum)
{
m68kbsd_collect_fpregset (struct regcache *regcache,
void *fpregs, int regnum)
{
+ struct gdbarch *gdbarch = get_regcache_arch (regcache);
char *regs = fpregs;
int i;
for (i = M68K_FP0_REGNUM; i <= M68K_FPI_REGNUM; i++)
{
if (regnum == -1 || regnum == i)
char *regs = fpregs;
int i;
for (i = M68K_FP0_REGNUM; i <= M68K_FPI_REGNUM; i++)
{
if (regnum == -1 || regnum == i)
- regcache_raw_collect (regcache, i, regs + m68kbsd_fpreg_offset (i));
+ regcache_raw_collect (regcache, i,
+ regs + m68kbsd_fpreg_offset (gdbarch, i));
}
}
\f
}
}
\f
@@
-106,66
+108,68
@@
m68kbsd_collect_fpregset (struct regcache *regcache,
/* Fetch register REGNUM from the inferior. If REGNUM is -1, do this
for all registers (including the floating-point registers). */
/* Fetch register REGNUM from the inferior. If REGNUM is -1, do this
for all registers (including the floating-point registers). */
-void
-fetch_inferior_registers (int regnum)
+static void
+m68kbsd_fetch_inferior_registers (struct target_ops *ops,
+ struct regcache *regcache, int regnum)
{
if (regnum == -1 || m68kbsd_gregset_supplies_p (regnum))
{
struct reg regs;
{
if (regnum == -1 || m68kbsd_gregset_supplies_p (regnum))
{
struct reg regs;
- if (ptrace (PT_GETREGS,
PIDGET
(inferior_ptid),
+ if (ptrace (PT_GETREGS,
ptid_get_pid
(inferior_ptid),
(PTRACE_TYPE_ARG3) ®s, 0) == -1)
(PTRACE_TYPE_ARG3) ®s, 0) == -1)
- perror_with_name (
"Couldn't get registers"
);
+ perror_with_name (
_("Couldn't get registers")
);
- m68kbsd_supply_gregset (
current_
regcache, ®s);
+ m68kbsd_supply_gregset (regcache, ®s);
}
if (regnum == -1 || m68kbsd_fpregset_supplies_p (regnum))
{
struct fpreg fpregs;
}
if (regnum == -1 || m68kbsd_fpregset_supplies_p (regnum))
{
struct fpreg fpregs;
- if (ptrace (PT_GETFPREGS,
PIDGET
(inferior_ptid),
+ if (ptrace (PT_GETFPREGS,
ptid_get_pid
(inferior_ptid),
(PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
(PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
- perror_with_name (
"Couldn't get floating point status"
);
+ perror_with_name (
_("Couldn't get floating point status")
);
- m68kbsd_supply_fpregset (
current_
regcache, &fpregs);
+ m68kbsd_supply_fpregset (regcache, &fpregs);
}
}
/* Store register REGNUM back into the inferior. If REGNUM is -1, do
this for all registers (including the floating-point registers). */
}
}
/* Store register REGNUM back into the inferior. If REGNUM is -1, do
this for all registers (including the floating-point registers). */
-void
-store_inferior_registers (int regnum)
+static void
+m68kbsd_store_inferior_registers (struct target_ops *ops,
+ struct regcache *regcache, int regnum)
{
if (regnum == -1 || m68kbsd_gregset_supplies_p (regnum))
{
struct reg regs;
{
if (regnum == -1 || m68kbsd_gregset_supplies_p (regnum))
{
struct reg regs;
- if (ptrace (PT_GETREGS,
PIDGET
(inferior_ptid),
+ if (ptrace (PT_GETREGS,
ptid_get_pid
(inferior_ptid),
(PTRACE_TYPE_ARG3) ®s, 0) == -1)
(PTRACE_TYPE_ARG3) ®s, 0) == -1)
- perror_with_name (
"Couldn't get registers"
);
+ perror_with_name (
_("Couldn't get registers")
);
- m68kbsd_collect_gregset (
current_
regcache, ®s, regnum);
+ m68kbsd_collect_gregset (regcache, ®s, regnum);
- if (ptrace (PT_SETREGS,
PIDGET
(inferior_ptid),
+ if (ptrace (PT_SETREGS,
ptid_get_pid
(inferior_ptid),
(PTRACE_TYPE_ARG3) ®s, 0) == -1)
(PTRACE_TYPE_ARG3) ®s, 0) == -1)
- perror_with_name (
"Couldn't write registers"
);
+ perror_with_name (
_("Couldn't write registers")
);
}
if (regnum == -1 || m68kbsd_fpregset_supplies_p (regnum))
{
struct fpreg fpregs;
}
if (regnum == -1 || m68kbsd_fpregset_supplies_p (regnum))
{
struct fpreg fpregs;
- if (ptrace (PT_GETFPREGS,
PIDGET
(inferior_ptid),
+ if (ptrace (PT_GETFPREGS,
ptid_get_pid
(inferior_ptid),
(PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
(PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
- perror_with_name (
"Couldn't get floating point status"
);
+ perror_with_name (
_("Couldn't get floating point status")
);
- m68kbsd_collect_fpregset (
current_
regcache, &fpregs, regnum);
+ m68kbsd_collect_fpregset (regcache, &fpregs, regnum);
- if (ptrace (PT_SETFPREGS,
PIDGET
(inferior_ptid),
+ if (ptrace (PT_SETFPREGS,
ptid_get_pid
(inferior_ptid),
(PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
(PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
- perror_with_name (
"Couldn't write floating point status"
);
+ perror_with_name (
_("Couldn't write floating point status")
);
}
}
\f
}
}
\f
@@
-223,6
+227,13
@@
void _initialize_m68kbsd_nat (void);
void
_initialize_m68kbsd_nat (void)
{
void
_initialize_m68kbsd_nat (void)
{
+ struct target_ops *t;
+
+ t = inf_ptrace_target ();
+ t->to_fetch_registers = m68kbsd_fetch_inferior_registers;
+ t->to_store_registers = m68kbsd_store_inferior_registers;
+ add_target (t);
+
/* Support debugging kernel virtual memory images. */
bsd_kvm_add_target (m68kbsd_supply_pcb);
}
/* Support debugging kernel virtual memory images. */
bsd_kvm_add_target (m68kbsd_supply_pcb);
}
This page took
0.026853 seconds
and
4
git commands to generate.