diff options
author | Yao Qi <yao@codesourcery.com> | 2013-10-21 16:31:17 +0800 |
---|---|---|
committer | Yao Qi <yao@codesourcery.com> | 2013-11-20 12:41:25 +0800 |
commit | 3a8356ffac809056cb3650c50a00f4adb30cc147 (patch) | |
tree | 4cb0dadc6a7b290ee358e2cdb18c5bbf90adf69e | |
parent | b12039c63764299237a899c986be7a557aa62807 (diff) | |
download | gdb-3a8356ffac809056cb3650c50a00f4adb30cc147.zip gdb-3a8356ffac809056cb3650c50a00f4adb30cc147.tar.gz gdb-3a8356ffac809056cb3650c50a00f4adb30cc147.tar.bz2 |
Add REGISTRY for struct address_space.
This patch adds REGISTRY for struct address_space.
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.
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/progspace.c | 18 | ||||
-rw-r--r-- | 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 |