Automatic date update in version.in
[deliverable/binutils-gdb.git] / gdb / sparc-nat.h
CommitLineData
386c036b 1/* Native-dependent code for SPARC.
8b39fe56 2
3666a048 3 Copyright (C) 2003-2021 Free Software Foundation, Inc.
8b39fe56
MK
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
a9762ec7 9 the Free Software Foundation; either version 3 of the License, or
8b39fe56
MK
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
a9762ec7 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
8b39fe56 19
386c036b
MK
20#ifndef SPARC_NAT_H
21#define SPARC_NAT_H 1
8b39fe56 22
ab89b5a5
SM
23#include "target.h"
24
b4fd25c9
AA
25struct sparc_gregmap;
26struct sparc_fpregmap;
8b39fe56 27
b4fd25c9
AA
28extern const struct sparc_gregmap *sparc_gregmap;
29extern const struct sparc_fpregmap *sparc_fpregmap;
30extern void (*sparc_supply_gregset) (const struct sparc_gregmap *,
386c036b 31 struct regcache *, int , const void *);
b4fd25c9 32extern void (*sparc_collect_gregset) (const struct sparc_gregmap *,
386c036b 33 const struct regcache *, int, void *);
b4fd25c9 34extern void (*sparc_supply_fpregset) (const struct sparc_fpregmap *,
db75c717 35 struct regcache *, int , const void *);
b4fd25c9 36extern void (*sparc_collect_fpregset) (const struct sparc_fpregmap *,
db75c717 37 const struct regcache *, int , void *);
ec22ec34
UW
38extern int (*sparc_gregset_supplies_p) (struct gdbarch *gdbarch, int);
39extern int (*sparc_fpregset_supplies_p) (struct gdbarch *gdbarch, int);
8b39fe56 40
ec22ec34
UW
41extern int sparc32_gregset_supplies_p (struct gdbarch *gdbarch, int regnum);
42extern int sparc32_fpregset_supplies_p (struct gdbarch *gdbarch, int regnum);
386c036b 43
d1e93af6
SM
44extern void sparc_fetch_inferior_registers (process_stratum_target *proc_target,
45 regcache *, int);
46extern void sparc_store_inferior_registers (process_stratum_target *proc_target,
47 regcache *, int);
f6ac5f3d
PA
48
49extern target_xfer_status sparc_xfer_wcookie (enum target_object object,
50 const char *annex,
51 gdb_byte *readbuf,
52 const gdb_byte *writebuf,
53 ULONGEST offset,
54 ULONGEST len,
55 ULONGEST *xfered_len);
56
57/* A prototype generic SPARC target. The client can override
1b9445c2
MK
58 it with local methods. */
59
f6ac5f3d
PA
60template<typename BaseTarget>
61struct sparc_target : public BaseTarget
62{
63 void fetch_registers (struct regcache *regcache, int regnum) override
d1e93af6 64 { sparc_fetch_inferior_registers (this, regcache, regnum); }
f6ac5f3d
PA
65
66 void store_registers (struct regcache *regcache, int regnum) override
d1e93af6 67 { sparc_store_inferior_registers (this, regcache, regnum); }
f6ac5f3d
PA
68
69 enum target_xfer_status xfer_partial (enum target_object object,
70 const char *annex,
71 gdb_byte *readbuf,
72 const gdb_byte *writebuf,
73 ULONGEST offset, ULONGEST len,
74 ULONGEST *xfered_len) override
75 {
76 if (object == TARGET_OBJECT_WCOOKIE)
77 return sparc_xfer_wcookie (object, annex, readbuf, writebuf,
78 offset, len, xfered_len);
1b9445c2 79
c6a42d11
CB
80 return BaseTarget::xfer_partial (object, annex, readbuf, writebuf,
81 offset, len, xfered_len);
f6ac5f3d
PA
82 }
83};
6f7a27d5 84
386c036b 85#endif /* sparc-nat.h */
This page took 1.898853 seconds and 4 git commands to generate.