* gas/mips/mips.exp (run_dump_test_arch): Check for the presence
[deliverable/binutils-gdb.git] / gdb / symfile.h
index afa92cdb149c3d812a865f35bb9afa460f258c73..c9f4e65509537a31fe4c7bff4a805ee5e0ddf8da 100644 (file)
@@ -212,21 +212,31 @@ struct quick_symbol_functions
      named NAME.  If no such symbol exists in OBJFILE, return NULL.  */
   const char *(*find_symbol_file) (struct objfile *objfile, const char *name);
 
-  /* This method is specific to Ada.  It walks the partial symbol
-     tables of OBJFILE looking for a name match.  WILD_MATCH and
-     IS_NAME_SUFFIX are predicate functions that the implementation
-     may call to check for a match.
-
-     This function is completely ad hoc and new implementations should
-     refer to the psymtab implementation to see what to do.  */
-  void (*map_ada_symtabs) (struct objfile *objfile,
-                          int (*wild_match) (const char *, int, const char *),
-                          int (*is_name_suffix) (const char *),
-                          void (*callback) (struct objfile *,
-                                            struct symtab *, void *),
-                          const char *name, int global,
-                          domain_enum namespace, int wild,
-                          void *data);
+  /* Find global or static symbols in all tables that are in NAMESPACE 
+     and for which MATCH (symbol name, NAME) == 0, passing each to 
+     CALLBACK, reading in partial symbol symbol tables as needed.  Look
+     through global symbols if GLOBAL and otherwise static symbols.  
+     Passes NAME, NAMESPACE, and DATA to CALLBACK with each symbol
+     found.  After each block is processed, passes NULL to CALLBACK.
+     MATCH must be weaker than strcmp_iw in the sense that
+     strcmp_iw(x,y) == 0 --> MATCH(x,y) == 0.  ORDERED_COMPARE, if
+     non-null, must be an ordering relation compatible with strcmp_iw
+     in the sense that  
+            strcmp(x,y) == 0 --> ORDERED_COMPARE(x,y) == 0 
+     and 
+            strcmp(x,y) <= 0 --> ORDERED_COMPARE(x,y) <= 0
+     (allowing strcmp(x,y) < 0 while ORDERED_COMPARE(x, y) == 0). 
+     CALLBACK returns 0 to indicate that the scan should continue, or
+     non-zero to indicate that the scan should be terminated.  */
+
+  void (*map_matching_symbols) (const char *name, domain_enum namespace,
+                               struct objfile *, int global,
+                               int (*callback) (struct block *,
+                                                struct symbol *, void *),
+                               void *data,
+                               int (*match) (const char *, const char *),
+                               int (*ordered_compare) (const char *,
+                                                       const char *));
 
   /* Expand all symbol tables in OBJFILE matching some criteria.
 
@@ -374,7 +384,7 @@ extern struct symfile_segment_data *default_symfile_segments (bfd *abfd);
 extern bfd_byte *default_symfile_relocate (struct objfile *objfile,
                                            asection *sectp, bfd_byte *buf);
 
-extern struct symtab *allocate_symtab (char *, struct objfile *);
+extern struct symtab *allocate_symtab (const char *, struct objfile *);
 
 extern void add_symtab_fns (const struct sym_fns *);
 
This page took 0.024576 seconds and 4 git commands to generate.