GDB (xrefs)
/tmp/gdb-7.10/gdb/sparc64-linux-nat.c
Go to the documentation of this file.
1 /* Native-dependent code for GNU/Linux UltraSPARC.
2 
3  Copyright (C) 2003-2015 Free Software Foundation, Inc.
4 
5  This file is part of GDB.
6 
7  This program is free software; you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation; either version 3 of the License, or
10  (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 
20 #include "defs.h"
21 #include "regcache.h"
22 
23 #include <sys/procfs.h>
24 #include "gregset.h"
25 
26 #include "sparc64-tdep.h"
27 #include "sparc-tdep.h"
28 #include "sparc-nat.h"
29 #include "inferior.h"
30 #include "target.h"
31 #include "linux-nat.h"
32 
33 static const struct sparc_gregmap sparc64_linux_ptrace_gregmap =
34 {
35  16 * 8, /* "tstate" */
36  17 * 8, /* %pc */
37  18 * 8, /* %npc */
38  19 * 8, /* %y */
39  -1, /* %wim */
40  -1, /* %tbr */
41  0 * 8, /* %g1 */
42  -1, /* %l0 */
43  4 /* sizeof (%y) */
44 };
45 
46 
47 void
49 {
50  sparc64_supply_gregset (sparc_gregmap, regcache, -1, gregs);
51 }
52 
53 void
55 {
56  sparc64_supply_fpregset (&sparc64_bsd_fpregmap, regcache, -1, fpregs);
57 }
58 
59 void
60 fill_gregset (const struct regcache *regcache, prgregset_t *gregs, int regnum)
61 {
62  sparc64_collect_gregset (sparc_gregmap, regcache, regnum, gregs);
63 }
64 
65 void
67  prfpregset_t *fpregs, int regnum)
68 {
69  sparc64_collect_fpregset (&sparc64_bsd_fpregmap, regcache, regnum, fpregs);
70 }
71 
72 /* Provide a prototype to silence -Wmissing-prototypes. */
74 
75 void
77 {
78  struct target_ops *t;
79 
80  /* Fill in the generic GNU/Linux methods. */
81  t = linux_target ();
82 
84 
85  /* Add our register access methods. */
88 
89  /* Register the target. */
91 
93 }
void sparc64_collect_fpregset(const struct sparc_fpregmap *fpregmap, const struct regcache *regcache, int regnum, void *fpregs)
void fill_fpregset(const struct regcache *regcache, prfpregset_t *fpregs, int regnum)
void _initialize_sparc64_linux_nat(void)
void sparc_store_inferior_registers(struct target_ops *ops, struct regcache *regcache, int regnum)
Definition: sparc-nat.c:192
void sparc64_collect_gregset(const struct sparc_gregmap *gregmap, const struct regcache *regcache, int regnum, void *gregs)
void sparc64_supply_gregset(const struct sparc_gregmap *gregmap, struct regcache *regcache, int regnum, const void *gregs)
const struct sparc_fpregmap sparc64_bsd_fpregmap
gdb_fpregset_t prfpregset_t
void supply_fpregset(struct regcache *regcache, const prfpregset_t *fpregs)
void sparc64_supply_fpregset(const struct sparc_fpregmap *fpregmap, struct regcache *regcache, int regnum, const void *fpregs)
void sparc_fetch_inferior_registers(struct target_ops *ops, struct regcache *regcache, int regnum)
Definition: sparc-nat.c:137
void supply_gregset(struct regcache *regcache, const prgregset_t *gregs)
void linux_nat_add_target(struct target_ops *t)
Definition: linux-nat.c:4972
int regnum
Definition: aarch64-tdep.c:69
struct target_ops * linux_target(void)
Definition: linux-nat.c:4544
static const struct sparc_gregmap sparc64_linux_ptrace_gregmap
gdb_gregset_t prgregset_t
void(* to_fetch_registers)(struct target_ops *, struct regcache *, int) TARGET_DEFAULT_IGNORE()
Definition: target.h:472
void fill_gregset(const struct regcache *regcache, prgregset_t *gregs, int regnum)
void(* to_store_registers)(struct target_ops *, struct regcache *, int) TARGET_DEFAULT_NORETURN(noprocess())
Definition: target.h:474