projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make input_fd be per UI
[deliverable/binutils-gdb.git]
/
gdb
/
mips64obsd-nat.c
diff --git
a/gdb/mips64obsd-nat.c
b/gdb/mips64obsd-nat.c
index eee3e5ea66cd7537400e7b59b705907cdec84a7f..48464642363a41d6edc94103f61716d935b87f48 100644
(file)
--- a/
gdb/mips64obsd-nat.c
+++ b/
gdb/mips64obsd-nat.c
@@
-1,12
+1,12
@@
/* Native-dependent code for OpenBSD/mips64.
/* Native-dependent code for OpenBSD/mips64.
- Copyright
2004
Free Software Foundation, Inc.
+ Copyright
(C) 2004-2016
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 "inferior.h"
#include "defs.h"
#include "inferior.h"
@@
-28,9
+26,14
@@
#include <sys/ptrace.h>
#include <machine/reg.h>
#include <sys/ptrace.h>
#include <machine/reg.h>
+#include "mips-tdep.h"
#include "inf-ptrace.h"
#include "inf-ptrace.h"
+#include "obsd-nat.h"
-#define MIPS64OBSD_NUM_REGS 73
+/* Shorthand for some register numbers used below. */
+#define MIPS_PC_REGNUM MIPS_EMBED_PC_REGNUM
+#define MIPS_FP0_REGNUM MIPS_EMBED_FP0_REGNUM
+#define MIPS_FSR_REGNUM MIPS_EMBED_FP0_REGNUM + 32
/* Supply the general-purpose registers stored in GREGS to REGCACHE. */
/* Supply the general-purpose registers stored in GREGS to REGCACHE. */
@@
-40,8
+43,11
@@
mips64obsd_supply_gregset (struct regcache *regcache, const void *gregs)
const char *regs = gregs;
int regnum;
const char *regs = gregs;
int regnum;
- for (regnum =
0; regnum < MIPS64OBSD_NUM_REGS
; regnum++)
+ for (regnum =
MIPS_ZERO_REGNUM; regnum <= MIPS_PC_REGNUM
; regnum++)
regcache_raw_supply (regcache, regnum, regs + regnum * 8);
regcache_raw_supply (regcache, regnum, regs + regnum * 8);
+
+ for (regnum = MIPS_FP0_REGNUM; regnum <= MIPS_FSR_REGNUM; regnum++)
+ regcache_raw_supply (regcache, regnum, regs + (regnum + 2) * 8);
}
/* Collect the general-purpose registers from REGCACHE and store them
}
/* Collect the general-purpose registers from REGCACHE and store them
@@
-54,11
+60,17
@@
mips64obsd_collect_gregset (const struct regcache *regcache,
char *regs = gregs;
int i;
char *regs = gregs;
int i;
- for (i =
0; i <= MIPS64OBSD_NUM_REGS
; i++)
+ for (i =
MIPS_ZERO_REGNUM; i <= MIPS_PC_REGNUM
; i++)
{
if (regnum == -1 || regnum == i)
regcache_raw_collect (regcache, i, regs + i * 8);
}
{
if (regnum == -1 || regnum == i)
regcache_raw_collect (regcache, i, regs + i * 8);
}
+
+ for (i = MIPS_FP0_REGNUM; i <= MIPS_FSR_REGNUM; i++)
+ {
+ if (regnum == -1 || regnum == i)
+ regcache_raw_collect (regcache, i, regs + (i + 2) * 8);
+ }
}
\f
}
\f
@@
-66,34
+78,36
@@
mips64obsd_collect_gregset (const struct regcache *regcache,
for all registers. */
static void
for all registers. */
static void
-mips64obsd_fetch_inferior_registers (int regnum)
+mips64obsd_fetch_inferior_registers (struct target_ops *ops,
+ struct regcache *regcache, int regnum)
{
struct reg regs;
{
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")
);
- mips64obsd_supply_gregset (
current_
regcache, ®s);
+ mips64obsd_supply_gregset (regcache, ®s);
}
/* Store register REGNUM back into the inferior. If REGNUM is -1, do
this for all registers. */
static void
}
/* Store register REGNUM back into the inferior. If REGNUM is -1, do
this for all registers. */
static void
-mips64obsd_store_inferior_registers (int regnum)
+mips64obsd_store_inferior_registers (struct target_ops *ops,
+ struct regcache *regcache, int regnum)
{
struct reg regs;
{
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")
);
- mips64obsd_collect_gregset (
current_
regcache, ®s, regnum);
+ mips64obsd_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")
);
}
\f
}
\f
@@
-108,5
+122,5
@@
_initialize_mips64obsd_nat (void)
t = inf_ptrace_target ();
t->to_fetch_registers = mips64obsd_fetch_inferior_registers;
t->to_store_registers = mips64obsd_store_inferior_registers;
t = inf_ptrace_target ();
t->to_fetch_registers = mips64obsd_fetch_inferior_registers;
t->to_store_registers = mips64obsd_store_inferior_registers;
- add_target (t);
+
obsd_
add_target (t);
}
}
This page took
0.026049 seconds
and
4
git commands to generate.