Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Gary Benson <gbenson@redhat.com>
To: gdb-patches@sourceware.org
Subject: [PATCH 14/15] Introduce common_get_thread_regcache
Date: Wed, 09 Jul 2014 11:25:00 -0000	[thread overview]
Message-ID: <1404902255-11101-15-git-send-email-gbenson@redhat.com> (raw)
In-Reply-To: <1404902255-11101-1-git-send-email-gbenson@redhat.com>

This introduces common_get_thread_regcache so that we can simplify
nat/linux-btrace.c.  A better long term solution would be unify the
regcache code, but this is sufficient for now.

gdb/
2014-07-09  Tom Tromey  <tromey@redhat.com>
	    Gary Benson  <gbenson@redhat.com>

	* regcache.h (common_get_thread_regcache): Declare.
	* regcache.c (common_get_thread_regcache): New function.
	* nat/linux-btrace.h (common_get_thread_regcache): Declare.
	* nat/linux-btrace.c (perf_event_read_bts): Use
	common_get_thread_regcache.

gdb/gdbserver/
2014-07-09  Tom Tromey  <tromey@redhat.com>

	* regcache.c (common_get_thread_regcache): New function.
---
 gdb/ChangeLog            |    9 +++++++++
 gdb/gdbserver/ChangeLog  |    4 ++++
 gdb/gdbserver/regcache.c |    8 ++++++++
 gdb/nat/linux-btrace.c   |    6 +-----
 gdb/nat/linux-btrace.h   |    5 +++++
 gdb/regcache.c           |    7 +++++++
 gdb/regcache.h           |    1 +
 7 files changed, 35 insertions(+), 5 deletions(-)

diff --git a/gdb/gdbserver/regcache.c b/gdb/gdbserver/regcache.c
index bed10b4..6f1cb39 100644
--- a/gdb/gdbserver/regcache.c
+++ b/gdb/gdbserver/regcache.c
@@ -65,6 +65,14 @@ get_thread_regcache (struct thread_info *thread, int fetch)
   return regcache;
 }
 
+/* See common/linux-btrace.h.  */
+
+struct regcache *
+common_get_thread_regcache (ptid_t ptid)
+{
+  return get_thread_regcache (find_thread_ptid (ptid), 1);
+}
+
 void
 regcache_invalidate_thread (struct thread_info *thread)
 {
diff --git a/gdb/nat/linux-btrace.c b/gdb/nat/linux-btrace.c
index 188220b..dd7744b 100644
--- a/gdb/nat/linux-btrace.c
+++ b/gdb/nat/linux-btrace.c
@@ -184,11 +184,7 @@ perf_event_read_bts (struct btrace_target_info* tinfo, const uint8_t *begin,
   gdb_assert (start <= end);
 
   /* The first block ends at the current pc.  */
-#ifdef GDBSERVER
-  regcache = get_thread_regcache (find_thread_ptid (tinfo->ptid), 1);
-#else
-  regcache = get_thread_regcache (tinfo->ptid);
-#endif
+  regcache = common_get_thread_regcache (tinfo->ptid);
   block.end = regcache_read_pc (regcache);
 
   /* The buffer may contain a partial record as its last entry (i.e. when the
diff --git a/gdb/nat/linux-btrace.h b/gdb/nat/linux-btrace.h
index 12e9b60..85cd88b 100644
--- a/gdb/nat/linux-btrace.h
+++ b/gdb/nat/linux-btrace.h
@@ -33,6 +33,11 @@
 #  include <linux/perf_event.h>
 #endif
 
+/* A hack until we have an independent regcache.  This must be
+   provided by the user.  */
+
+extern struct regcache *common_get_thread_regcache (ptid_t ptid);
+
 /* Branch trace target information per thread.  */
 struct btrace_target_info
 {
diff --git a/gdb/regcache.c b/gdb/regcache.c
index 5ee90b0..047f8f4 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -537,6 +537,13 @@ get_current_regcache (void)
   return get_thread_regcache (inferior_ptid);
 }
 
+/* See common/linux-btrace.h.  */
+
+struct regcache *
+common_get_thread_regcache (ptid_t ptid)
+{
+  return get_thread_regcache (ptid);
+}
 
 /* Observer for the target_changed event.  */
 
diff --git a/gdb/regcache.h b/gdb/regcache.h
index 8423f57..9679691 100644
--- a/gdb/regcache.h
+++ b/gdb/regcache.h
@@ -25,6 +25,7 @@ struct gdbarch;
 struct address_space;
 
 extern struct regcache *get_current_regcache (void);
+extern struct regcache *common_get_thread_regcache (ptid_t ptid);
 extern struct regcache *get_thread_regcache (ptid_t ptid);
 extern struct regcache *get_thread_arch_regcache (ptid_t, struct gdbarch *);
 extern struct regcache *get_thread_arch_aspace_regcache (ptid_t,
-- 
1.7.1


  parent reply	other threads:[~2014-07-09 11:25 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-09 11:25 [PATCH 00/15] Common code cleanups Gary Benson
2014-07-09 10:38 ` [PATCH 04/15] Introduce common-types.h Gary Benson
2014-07-09 10:38 ` [PATCH 01/15] Introduce common/errors.h Gary Benson
2014-07-09 10:38 ` [PATCH 02/15] Remove some GDBSERVER checks from linux-ptrace Gary Benson
2014-07-09 17:27   ` Breazeal, Don
2014-07-09 18:20     ` Gary Benson
2014-07-09 18:23       ` Breazeal, Don
2014-07-11 19:30   ` Doug Evans
2014-07-15 12:30     ` Gary Benson
2014-07-09 10:38 ` [PATCH 03/15] Make gdbserver CORE_ADDR unsigned Gary Benson
2014-07-11 19:34   ` Doug Evans
2014-07-09 10:39 ` [PATCH 09/15] Mostly remove GDBSERVER from linux-waitpid.c Gary Benson
2014-07-14 19:01   ` Doug Evans
2014-07-15 17:17     ` Gary Benson
2014-07-09 10:39 ` [PATCH 15/15] Finally remove GDBSERVER (mostly) from linux-btrace.c Gary Benson
2014-07-09 10:39 ` [PATCH 11/15] More target unification Gary Benson
2014-07-14 19:17   ` Doug Evans
2014-07-16 10:23     ` Gary Benson
2014-07-09 10:41 ` [PATCH 07/15] Remove GDBSERVER use from nat/i386-dregs.c Gary Benson
2014-07-10 17:49   ` Tom Tromey
2014-07-11 12:57     ` Gary Benson
2014-07-11 15:38       ` Tom Tromey
2014-07-14  8:36         ` Gary Benson
2014-07-14 18:49   ` Doug Evans
2014-07-09 10:41 ` [PATCH 06/15] Remove simple GDBSERVER uses from common, nat and target Gary Benson
2014-07-14 18:49   ` Doug Evans
2014-07-15 15:42     ` Gary Benson
2014-07-09 10:41 ` [PATCH 10/15] Add target/target.h Gary Benson
2014-07-10 17:50   ` Tom Tromey
2014-07-16  8:55     ` Gary Benson
2014-07-17 16:49       ` Tom Tromey
2014-07-09 10:41 ` [PATCH 08/15] Make btrace-common.h not use GDBSERVER Gary Benson
2014-07-14 18:59   ` Doug Evans
2014-07-09 10:52 ` [PATCH 05/15] Introduce and use debug_printf and debug_vprintf Gary Benson
2014-07-11 19:57   ` Doug Evans
2014-07-15 15:21     ` Gary Benson
2014-07-09 11:25 ` [PATCH 12/15] Add target/symbol.h, update users Gary Benson
2014-07-10 17:52   ` Tom Tromey
2014-07-10 18:55     ` Doug Evans
2014-07-10 19:16       ` Tom Tromey
2014-07-11 13:25         ` Gary Benson
2014-07-11 19:29           ` Doug Evans
2014-07-16 13:01             ` Gary Benson
2014-07-17 18:14               ` Tom Tromey
2014-07-16 10:38     ` Gary Benson
2014-07-17 16:50       ` Tom Tromey
2014-07-09 11:25 ` Gary Benson [this message]
2014-07-14 20:32   ` [PATCH 14/15] Introduce common_get_thread_regcache Doug Evans
2014-07-16 13:32     ` Gary Benson
2014-07-09 11:32 ` [PATCH 13/15] Finally remove GDBSERVER (mostly) from agent.c Gary Benson
2014-07-14 19:35   ` Doug Evans

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1404902255-11101-15-git-send-email-gbenson@redhat.com \
    --to=gbenson@redhat.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox