Automatic date update in version.in
[platform/upstream/binutils.git] / gdb / minsyms.h
index 71670e3..807e5ee 100644 (file)
@@ -1,6 +1,6 @@
 /* Minimal symbol table definitions for GDB.
 
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -88,7 +88,6 @@ struct cleanup *make_cleanup_discard_minimal_symbols (void);
    ADDRESS - the address of the symbol
    MS_TYPE - the type of the symbol
    SECTION - the symbol's section
-   BFD_SECTION - the symbol's BFD section; used to find the
    appropriate obj_section for the minimal symbol.  This can be NULL.
    OBJFILE - the objfile associated with the minimal symbol.  */
 
@@ -99,14 +98,12 @@ struct minimal_symbol *prim_record_minimal_symbol_full
      CORE_ADDR address,
      enum minimal_symbol_type ms_type,
      int section,
-     asection *bfd_section,
      struct objfile *objfile);
 
 /* Like prim_record_minimal_symbol_full, but:
    - uses strlen to compute NAME_LEN,
-   - passes COPY_NAME = 0,
-   - passes SECTION = 0,
-   - and passes BFD_SECTION = NULL.
+   - passes COPY_NAME = 1,
+   - and passes a default SECTION, depending on the type
    
    This variant does not return the new symbol.  */
 
@@ -116,14 +113,13 @@ void prim_record_minimal_symbol (const char *, CORE_ADDR,
 
 /* Like prim_record_minimal_symbol_full, but:
    - uses strlen to compute NAME_LEN,
-   - passes COPY_NAME = 0.  */
+   - passes COPY_NAME = 1.  */
 
 struct minimal_symbol *prim_record_minimal_symbol_and_info
     (const char *,
      CORE_ADDR,
      enum minimal_symbol_type,
      int section,
-     asection *bfd_section,
      struct objfile *);
 
 /* Install the minimal symbols that have been collected into the given
@@ -140,12 +136,6 @@ void install_minimal_symbols (struct objfile *);
 
 void terminate_minimal_symbol_table (struct objfile *objfile);
 
-/* Sort all the minimal symbols in OBJFILE.  This should be only be
-   called after relocating symbols; it ensures that the minimal
-   symbols are properly sorted by address.  */
-
-void msymbols_sort (struct objfile *objfile);
-
 \f
 
 /* Compute a hash code for the string argument.  */
@@ -166,24 +156,21 @@ unsigned int msymbol_hash_iw (const char *);
 
 \f
 
-/* Return the objfile that holds the minimal symbol SYM.  Every
-   minimal symbols is held by some objfile; this will never return
-   NULL.  */
-
-struct objfile *msymbol_objfile (struct minimal_symbol *sym);
-
-\f
-
 /* Look through all the current minimal symbol tables and find the
    first minimal symbol that matches NAME.  If OBJF is non-NULL, limit
-   the search to that objfile.  If SFILE is non-NULL, the only file-scope
-   symbols considered will be from that source file (global symbols are
-   still preferred).  Returns a pointer to the minimal symbol that
-   matches, or NULL if no match is found.  */
+   the search to that objfile.  If SFILE is non-NULL, the only
+   file-scope symbols considered will be from that source file (global
+   symbols are still preferred).  Returns a bound minimal symbol that
+   matches, or an empty bound minimal symbol if no match is found.  */
 
-struct minimal_symbol *lookup_minimal_symbol (const char *,
-                                             const char *,
-                                             struct objfile *);
+struct bound_minimal_symbol lookup_minimal_symbol (const char *,
+                                                  const char *,
+                                                  struct objfile *);
+
+/* Like lookup_minimal_symbol, but searches all files and
+   objfiles.  */
+
+struct bound_minimal_symbol lookup_bound_minimal_symbol (const char *);
 
 /* Find the minimal symbol named NAME, and return both the minsym
    struct and its objfile.  This only checks the linkage name.  */
@@ -192,13 +179,14 @@ struct bound_minimal_symbol lookup_minimal_symbol_and_objfile (const char *);
 
 /* Look through all the current minimal symbol tables and find the
    first minimal symbol that matches NAME and has text type.  If OBJF
-   is non-NULL, limit the search to that objfile.  Returns a pointer
-   to the minimal symbol that matches, or NULL if no match is found.
+   is non-NULL, limit the search to that objfile.  Returns a bound
+   minimal symbol that matches, or an "empty" bound minimal symbol
+   otherwise.
 
    This function only searches the mangled (linkage) names.  */
 
-struct minimal_symbol *lookup_minimal_symbol_text (const char *,
-                                                  struct objfile *);
+struct bound_minimal_symbol lookup_minimal_symbol_text (const char *,
+                                                       struct objfile *);
 
 /* Look through all the current minimal symbol tables and find the
    first minimal symbol that matches NAME and is a solib trampoline.
@@ -208,7 +196,7 @@ struct minimal_symbol *lookup_minimal_symbol_text (const char *,
 
    This function only searches the mangled (linkage) names.  */
 
-struct minimal_symbol *lookup_minimal_symbol_solib_trampoline
+struct bound_minimal_symbol lookup_minimal_symbol_solib_trampoline
     (const char *,
      struct objfile *);
 
@@ -256,4 +244,12 @@ void iterate_over_minimal_symbols (struct objfile *objf,
                                                     void *),
                                   void *user_data);
 
+/* Compute the upper bound of MINSYM.  The upper bound is the last
+   address thought to be part of the symbol.  If the symbol has a
+   size, it is used.  Otherwise use the lesser of the next minimal
+   symbol in the same section, or the end of the section, as the end
+   of the function.  */
+
+CORE_ADDR minimal_symbol_upper_bound (struct bound_minimal_symbol minsym);
+
 #endif /* MINSYMS_H */