diff options
Diffstat (limited to 'gdb/regcache.h')
-rw-r--r-- | gdb/regcache.h | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/gdb/regcache.h b/gdb/regcache.h index e2935ee..b8561d7 100644 --- a/gdb/regcache.h +++ b/gdb/regcache.h @@ -29,17 +29,20 @@ struct regset; struct gdbarch; struct address_space; class thread_info; +struct process_stratum_target; extern struct regcache *get_current_regcache (void); -extern struct regcache *get_thread_regcache (ptid_t ptid); +extern struct regcache *get_thread_regcache (process_stratum_target *target, + ptid_t ptid); /* Get the regcache of THREAD. */ extern struct regcache *get_thread_regcache (thread_info *thread); -extern struct regcache *get_thread_arch_regcache (ptid_t, struct gdbarch *); -extern struct regcache *get_thread_arch_aspace_regcache (ptid_t, - struct gdbarch *, - struct address_space *); +extern struct regcache *get_thread_arch_regcache + (process_stratum_target *targ, ptid_t, struct gdbarch *); +extern struct regcache *get_thread_arch_aspace_regcache + (process_stratum_target *target, ptid_t, + struct gdbarch *, struct address_space *); extern enum register_status regcache_raw_read_signed (struct regcache *regcache, @@ -385,13 +388,19 @@ public: this->m_ptid = ptid; } + process_stratum_target *target () const + { + return m_target; + } + /* Dump the contents of a register from the register cache to the target debug. */ void debug_print_register (const char *func, int regno); static void regcache_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid); protected: - regcache (gdbarch *gdbarch, const address_space *aspace_); + regcache (process_stratum_target *target, gdbarch *gdbarch, + const address_space *aspace); static std::forward_list<regcache *> current_regcache; @@ -421,14 +430,16 @@ private: /* If this is a read-write cache, which thread's registers is it connected to? */ + process_stratum_target *m_target; ptid_t m_ptid; friend struct regcache * - get_thread_arch_aspace_regcache (ptid_t ptid, struct gdbarch *gdbarch, + get_thread_arch_aspace_regcache (process_stratum_target *target, ptid_t ptid, + struct gdbarch *gdbarch, struct address_space *aspace); friend void - registers_changed_ptid (ptid_t ptid); + registers_changed_ptid (process_stratum_target *target, ptid_t ptid); }; class readonly_detached_regcache : public readable_regcache @@ -451,7 +462,8 @@ public: }; extern void registers_changed (void); -extern void registers_changed_ptid (ptid_t); +extern void registers_changed_ptid (process_stratum_target *target, + ptid_t ptid); /* Indicate that registers of THREAD may have changed, so invalidate the cache. */ |