This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 06/10] Add REGISTRY for struct address_space.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]