| Index: gdb/gdbserver/regcache.h
|
| diff --git a/gdb/gdbserver/regcache.h b/gdb/gdbserver/regcache.h
|
| index d52012cc868d11e1cd719500fbf3a99edf137526..48c57a2c2ef9f441dfcac300f95c8c855fa8c60d 100644
|
| --- a/gdb/gdbserver/regcache.h
|
| +++ b/gdb/gdbserver/regcache.h
|
| @@ -1,5 +1,5 @@
|
| /* Register support routines for the remote server for GDB.
|
| - Copyright (C) 2001-2002, 2007-2012 Free Software Foundation, Inc.
|
| + Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
|
|
| This file is part of GDB.
|
|
|
| @@ -21,6 +21,7 @@
|
|
|
| struct inferior_list_entry;
|
| struct thread_info;
|
| +struct target_desc;
|
|
|
| /* The register exists, it has a value, but we don't know what it is.
|
| Used when inspecting traceframes. */
|
| @@ -35,6 +36,9 @@ struct thread_info;
|
|
|
| struct regcache
|
| {
|
| + /* The regcache's target description. */
|
| + const struct target_desc *tdesc;
|
| +
|
| /* Whether the REGISTERS buffer's contents are valid. If false, we
|
| haven't fetched the registers from the target yet. Not that this
|
| register cache is _not_ pass-through, unlike GDB's. Note that
|
| @@ -50,13 +54,14 @@ struct regcache
|
| };
|
|
|
| struct regcache *init_register_cache (struct regcache *regcache,
|
| + const struct target_desc *tdesc,
|
| unsigned char *regbuf);
|
|
|
| void regcache_cpy (struct regcache *dst, struct regcache *src);
|
|
|
| /* Create a new register cache for INFERIOR. */
|
|
|
| -struct regcache *new_register_cache (void);
|
| +struct regcache *new_register_cache (const struct target_desc *tdesc);
|
|
|
| struct regcache *get_thread_regcache (struct thread_info *thread, int fetch);
|
|
|
| @@ -64,11 +69,20 @@ struct regcache *get_thread_regcache (struct thread_info *thread, int fetch);
|
|
|
| void free_register_cache (struct regcache *regcache);
|
|
|
| -/* Invalidate cached registers for one or all threads. */
|
| +/* Invalidate cached registers for one thread. */
|
| +
|
| +void regcache_invalidate_thread (struct thread_info *);
|
| +
|
| +/* Invalidate cached registers for all threads of the current
|
| + process. */
|
|
|
| -void regcache_invalidate_one (struct inferior_list_entry *);
|
| void regcache_invalidate (void);
|
|
|
| +/* Invalidate and release the register cache of all threads of the
|
| + current process. */
|
| +
|
| +void regcache_release (void);
|
| +
|
| /* Convert all registers to a string in the currently specified remote
|
| format. */
|
|
|
| @@ -84,18 +98,13 @@ void regcache_write_pc (struct regcache *regcache, CORE_ADDR pc);
|
|
|
| /* Return a pointer to the description of register ``n''. */
|
|
|
| -struct reg *find_register_by_number (int n);
|
| -
|
| -int register_size (int n);
|
| +struct reg *find_register_by_number (const struct target_desc *tdesc, int n);
|
|
|
| -int register_cache_size (void);
|
| +int register_cache_size (const struct target_desc *tdesc);
|
|
|
| -int find_regno (const char *name);
|
| +int register_size (const struct target_desc *tdesc, int n);
|
|
|
| -/* The following two variables are set by auto-generated
|
| - code in the init_registers_... routines. */
|
| -extern const char **gdbserver_expedite_regs;
|
| -extern const char *gdbserver_xmltarget;
|
| +int find_regno (const struct target_desc *tdesc, const char *name);
|
|
|
| void supply_register (struct regcache *regcache, int n, const void *buf);
|
|
|
|
|