/* Cache and manage the values of registers for GDB, the GNU debugger.
- Copyright (C) 1986-2017 Free Software Foundation, Inc.
+ Copyright (C) 1986-2018 Free Software Foundation, Inc.
This file is part of GDB.
extern ptid_t regcache_get_ptid (const struct regcache *regcache);
-/* Return REGCACHE's address space. */
-
-extern struct address_space *get_regcache_aspace (const struct regcache *);
-
enum register_status regcache_register_status (const struct regcache *regcache,
int regnum);
class regcache
{
public:
- regcache (gdbarch *gdbarch, address_space *aspace_)
- : regcache (gdbarch, aspace_, true)
+ regcache (gdbarch *gdbarch)
+ : regcache (gdbarch, nullptr, true)
{}
struct readonly_t {};
/* Return regcache's architecture. */
gdbarch *arch () const;
- address_space *aspace () const
+ /* Return REGCACHE's address space. */
+ const address_space *aspace () const
{
return m_aspace;
}
static void regcache_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid);
protected:
- regcache (gdbarch *gdbarch, address_space *aspace_, bool readonly_p_);
+ regcache (gdbarch *gdbarch, const address_space *aspace_, bool readonly_p_);
int num_raw_registers () const;
/* The address space of this register cache (for registers where it
makes sense, like PC or SP). */
- struct address_space *m_aspace;
+ const address_space * const m_aspace;
/* The register buffers. A read-only register cache can hold the
full [0 .. gdbarch_num_regs + gdbarch_num_pseudo_regs) while a read/write
cache can only be updated via the methods regcache_dup() and
regcache_cpy(). The actual contents are determined by the
reggroup_save and reggroup_restore methods. */
- bool m_readonly_p;
+ const bool m_readonly_p;
/* If this is a read-write cache, which thread's registers is
it connected to? */
ptid_t m_ptid;