This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 06/10] Add REGISTRY for struct address_space.
- From: Yao Qi <yao at codesourcery dot com>
- To: Doug Evans <dje at google dot com>
- Cc: gdb-patches <gdb-patches at sourceware dot org>
- Date: Wed, 20 Nov 2013 12:44:30 +0800
- Subject: Re: [PATCH 06/10] Add REGISTRY for struct address_space.
- Authentication-results: sourceware.org; auth=none
- References: <1383458049-20893-1-git-send-email-yao at codesourcery dot com> <1383458049-20893-7-git-send-email-yao at codesourcery dot com> <CADPb22Rf8ksnEpK0Hi6GKK4CpD5wb5bVnZr3w6ZRdXo8o1Aq-A at mail dot gmail dot com>
On 11/18/2013 04:55 AM, Doug Evans wrote:
> Ok.
>
> [Maybe struct address_space could be kept in progspace.c, dunno.
> Perhaps a later patch requires moving it to a header.]
Right, 'struct address_space' could be still kept in progspace.c.
Update the patch and push it.
--
Yao (éå)
gdb:
2013-11-20 Yao Qi <yao@codesourcery.com>
* progspace.c (struct address_space): Update comments.
<REGISTRY_FIELDS>: New fields.
DEFINE_REGISTRY for address_space.
(new_address_space): Call address_space_alloc_data.
(free_address_space): Call address_space_free_data.
* progspace.h: Use DECLARE_REGISTRY.
---
gdb/ChangeLog | 9 +++++++++
gdb/progspace.c | 18 ++++++++++++++----
gdb/progspace.h | 5 +++++
3 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1362295..e8df902 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,14 @@
2013-11-20 Yao Qi <yao@codesourcery.com>
+ * progspace.c (struct address_space): Update comments.
+ <REGISTRY_FIELDS>: New fields.
+ DEFINE_REGISTRY for address_space.
+ (new_address_space): Call address_space_alloc_data.
+ (free_address_space): Call address_space_free_data.
+ * progspace.h: Use DECLARE_REGISTRY.
+
+2013-11-20 Yao Qi <yao@codesourcery.com>
+
* Makefile.in (SFILES):Add target-dcache.c.
(HFILES_NO_SRCDIR): Add target-dcache.h.
(COMMON_OBS): Add target-dcache.o.
diff --git a/gdb/progspace.c b/gdb/progspace.c
index 6e72211..303e88e 100644
--- a/gdb/progspace.c
+++ b/gdb/progspace.c
@@ -44,17 +44,25 @@ static int highest_address_space_num;
DEFINE_REGISTRY (program_space, REGISTRY_ACCESS_FIELD)
-
-
-/* An address space. Currently this is not used for much other than
- for comparing if pspaces/inferior/threads see the same address
+/* An address space. It is used for comparing if pspaces/inferior/threads
+ see the same address space and for associating caches to each address
space. */
struct address_space
{
int num;
+
+ /* Per aspace data-pointers required by other GDB modules. */
+ REGISTRY_FIELDS;
};
+/* Keep a registry of per-address_space data-pointers required by other GDB
+ modules. */
+
+DEFINE_REGISTRY (address_space, REGISTRY_ACCESS_FIELD)
+
+
+
/* Create a new address space object, and add it to the list. */
struct address_space *
@@ -64,6 +72,7 @@ new_address_space (void)
aspace = XZALLOC (struct address_space);
aspace->num = ++highest_address_space_num;
+ address_space_alloc_data (aspace);
return aspace;
}
@@ -89,6 +98,7 @@ maybe_new_address_space (void)
static void
free_address_space (struct address_space *aspace)
{
+ address_space_free_data (aspace);
xfree (aspace);
}
diff --git a/gdb/progspace.h b/gdb/progspace.h
index f24a569..04ac374 100644
--- a/gdb/progspace.h
+++ b/gdb/progspace.h
@@ -304,4 +304,9 @@ extern void clear_program_space_solib_cache (struct program_space *);
DECLARE_REGISTRY (program_space);
+/* Keep a registry of per-aspace data-pointers required by other GDB
+ modules. */
+
+DECLARE_REGISTRY (address_space);
+
#endif
--
1.7.7.6