aboutsummaryrefslogtreecommitdiff
path: root/gdb/objfiles.h
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2003-08-21 22:35:33 +0000
committerMark Kettenis <kettenis@gnu.org>2003-08-21 22:35:33 +0000
commit0d0e1a63ef41342561755ff20bad14d778925152 (patch)
treec9cbe1a29625e351a2a6a0bb6efc15e8fc76b08d /gdb/objfiles.h
parentd90cf509bd4aee2e024979a75685826a5289ba22 (diff)
downloadgdb-0d0e1a63ef41342561755ff20bad14d778925152.zip
gdb-0d0e1a63ef41342561755ff20bad14d778925152.tar.gz
gdb-0d0e1a63ef41342561755ff20bad14d778925152.tar.bz2
* objfiles.h (struct objfile): Add memebers `data' and `num_data'.
(register_objfile_data, set_objfile_data, objfile_data): New prototypes. * objfiles.c (objfile_alloc_data, objfile_free_data): New prototypes. (allocate_objfile): Call objfile_alloc_data. (free_objfile): Call objfile_free_data. (struct objfile_data): New. (struct objfile_data_registration): New. (struct objfile_data_registry): New. (objfile_data_registry): New variable. (register_objfile_data): New function. (objfile_alloc_data, objfile_free_data): New functions. (set_objfile_data, objfile_data): New functions. * dwarf2-frame.c (dwarf2_frame_data): New variable. (dwarf2_frame_find_fde, add_fde): Use new per-objfile data mechanism. (_initialize_dwarf2_frame): New function and prototype.
Diffstat (limited to 'gdb/objfiles.h')
-rw-r--r--gdb/objfiles.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index f747a68..80e61c5 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -379,6 +379,13 @@ struct objfile
void *obj_private;
+ /* Per objfile data-pointers required by other GDB modules. */
+ /* FIXME: kettenis/20030711: This mechanism could replace
+ sym_stab_info, sym_private and obj_private entirely. */
+
+ void **data;
+ unsigned num_data;
+
/* Set of relocation offsets to apply to each section.
Currently on the psymbol_obstack (which makes no sense, but I'm
not sure it's harming anything).
@@ -565,6 +572,16 @@ extern int in_plt_section (CORE_ADDR, char *);
extern int is_in_import_list (char *, struct objfile *);
+/* Keep a registry of per-objfile data-pointers required by other GDB
+ modules. */
+
+extern const struct objfile_data *register_objfile_data (void);
+extern void set_objfile_data (struct objfile *objfile,
+ const struct objfile_data *data, void *value);
+extern void *objfile_data (struct objfile *objfile,
+ const struct objfile_data *data);
+
+
/* Traverse all object files. ALL_OBJFILES_SAFE works even if you delete
the objfile during the traversal. */