]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/gdbserver/tdesc.h
Fix PR remote/19840: gdb crashes on reverse-stepi
[thirdparty/binutils-gdb.git] / gdb / gdbserver / tdesc.h
1 /* Target description definitions for remote server for GDB.
2 Copyright (C) 2012-2016 Free Software Foundation, Inc.
3
4 This file is part of GDB.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
18
19 #ifndef TDESC_H
20 #define TDESC_H
21
22 struct reg;
23
24 /* A target description. */
25
26 struct target_desc
27 {
28 /* An array of NUM_REGISTERS elements of register definitions that
29 describe the inferior's register set. */
30 struct reg *reg_defs;
31
32 /* The number of registers in inferior's register set (and thus in
33 the regcache). */
34 int num_registers;
35
36 /* The register cache size, in bytes. */
37 int registers_size;
38
39 /* An array of register names. These are the "expedite" registers:
40 registers whose values are sent along with stop replies. */
41 const char **expedite_regs;
42
43 /* Defines what to return when looking for the "target.xml" file in
44 response to qXfer:features:read. Its contents can either be
45 verbatim XML code (prefixed with a '@') or else the name of the
46 actual XML file to be used in place of "target.xml". */
47 const char *xmltarget;
48 };
49
50 /* Copy target description SRC to DEST. */
51
52 void copy_target_description (struct target_desc *dest,
53 const struct target_desc *src);
54
55 /* Initialize TDESC. */
56
57 void init_target_desc (struct target_desc *tdesc);
58
59 /* Return the current inferior's target description. Never returns
60 NULL. */
61
62 const struct target_desc *current_target_desc (void);
63
64 #endif /* TDESC_H */