run copyright.sh for 2011.
[deliverable/binutils-gdb.git] / gdb / gdbserver / regcache.h
CommitLineData
0a30fbc4 1/* Register support routines for the remote server for GDB.
7b6bb8da 2 Copyright (C) 2001, 2002, 2007, 2008, 2009, 2010, 2011
4c38e0a4 3 Free Software Foundation, Inc.
0a30fbc4
DJ
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
0a30fbc4
DJ
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/>. */
0a30fbc4
DJ
19
20#ifndef REGCACHE_H
21#define REGCACHE_H
22
0d62e5e8 23struct inferior_list_entry;
442ea881
PA
24struct thread_info;
25
26/* The data for the register cache. Note that we have one per
27 inferior; this is primarily for simplicity, as the performance
28 benefit is minimal. */
29
30struct regcache
31{
32 int registers_valid;
219f2f23 33 int registers_owned;
442ea881
PA
34 unsigned char *registers;
35};
d06f167a 36
219f2f23
PA
37struct regcache *init_register_cache (struct regcache *regcache,
38 unsigned char *regbuf);
39
40void regcache_cpy (struct regcache *dst, struct regcache *src);
41
c04a1aa8
DJ
42/* Create a new register cache for INFERIOR. */
43
442ea881
PA
44struct regcache *new_register_cache (void);
45
46struct regcache *get_thread_regcache (struct thread_info *thread, int fetch);
c04a1aa8
DJ
47
48/* Release all memory associated with the register cache for INFERIOR. */
49
442ea881 50void free_register_cache (struct regcache *regcache);
0d62e5e8
DJ
51
52/* Invalidate cached registers for one or all threads. */
53
54void regcache_invalidate_one (struct inferior_list_entry *);
55void regcache_invalidate (void);
c04a1aa8 56
0a30fbc4
DJ
57/* Convert all registers to a string in the currently specified remote
58 format. */
59
442ea881 60void registers_to_string (struct regcache *regcache, char *buf);
0a30fbc4
DJ
61
62/* Convert a string to register values and fill our register cache. */
63
442ea881 64void registers_from_string (struct regcache *regcache, char *buf);
0a30fbc4 65
219f2f23
PA
66CORE_ADDR regcache_read_pc (struct regcache *regcache);
67
68void regcache_write_pc (struct regcache *regcache, CORE_ADDR pc);
69
0a30fbc4
DJ
70/* Return a pointer to the description of register ``n''. */
71
72struct reg *find_register_by_number (int n);
73
0a30fbc4
DJ
74int register_size (int n);
75
219f2f23
PA
76int register_cache_size (void);
77
0a30fbc4
DJ
78int find_regno (const char *name);
79
9b4b61c8
UW
80/* The following two variables are set by auto-generated
81 code in the init_registers_... routines. */
0a30fbc4 82extern const char **gdbserver_expedite_regs;
9b4b61c8 83extern const char *gdbserver_xmltarget;
0a30fbc4 84
442ea881 85void supply_register (struct regcache *regcache, int n, const void *buf);
0729219d 86
442ea881
PA
87void supply_register_by_name (struct regcache *regcache,
88 const char *name, const void *buf);
0729219d 89
219f2f23
PA
90void supply_regblock (struct regcache *regcache, const void *buf);
91
442ea881 92void collect_register (struct regcache *regcache, int n, void *buf);
0729219d 93
442ea881 94void collect_register_as_string (struct regcache *regcache, int n, char *buf);
0d62e5e8 95
442ea881 96void collect_register_by_name (struct regcache *regcache, const char *name, void *buf);
0729219d 97
0a30fbc4 98#endif /* REGCACHE_H */
This page took 0.91996 seconds and 4 git commands to generate.