Implement write_async_safe for mi_console_file (PR 22299)
[deliverable/binutils-gdb.git] / gdb / minsyms.h
index e763f62aa36b7c5934bd86f2997a1787968dada9..a2b7ddd7035e0d00c65c8ff0184993dbc26d269a 100644 (file)
@@ -1,6 +1,6 @@
 /* Minimal symbol table definitions for GDB.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,6 +20,8 @@
 #ifndef MINSYMS_H
 #define MINSYMS_H
 
+struct type;
+
 /* Several lookup functions return both a minimal symbol and the
    objfile in which it is found.  This structure is used in these
    cases.  */
@@ -157,9 +159,14 @@ void terminate_minimal_symbol_table (struct objfile *objfile);
 
 \f
 
-/* Return whether MSYMBOL is a function/method.  */
+/* Return whether MSYMBOL is a function/method.  If FUNC_ADDRESS_P is
+   non-NULL, and the MSYMBOL is a function, then *FUNC_ADDRESS_P is
+   set to the function's address, already resolved if MINSYM points to
+   a function descriptor.  */
 
-bool msymbol_is_text (minimal_symbol *msymbol);
+bool msymbol_is_function (struct objfile *objfile,
+                         minimal_symbol *minsym,
+                         CORE_ADDR *func_address_p = NULL);
 
 /* Compute a hash code for the string argument.  */
 
@@ -175,7 +182,7 @@ unsigned int msymbol_hash_iw (const char *);
    requirements.  */
 
 #define SYMBOL_HASH_NEXT(hash, c)                      \
-  ((hash) * 67 + tolower ((unsigned char) (c)) - 113)
+  ((hash) * 67 + TOLOWER ((unsigned char) (c)) - 113)
 
 \f
 
@@ -196,7 +203,7 @@ struct bound_minimal_symbol lookup_minimal_symbol (const char *,
 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.  */
+   struct and its objfile.  */
 
 struct bound_minimal_symbol lookup_minimal_symbol_and_objfile (const char *);
 
@@ -258,14 +265,11 @@ struct bound_minimal_symbol lookup_minimal_symbol_by_pc (CORE_ADDR);
    are considered.  The caller is responsible for canonicalizing NAME,
    should that need to be done.
 
-   For each matching symbol, CALLBACK is called with the symbol and
-   USER_DATA as arguments.  */
+   For each matching symbol, CALLBACK is called with the symbol.  */
 
-void iterate_over_minimal_symbols (struct objfile *objf,
-                                  const char *name,
-                                  void (*callback) (struct minimal_symbol *,
-                                                    void *),
-                                  void *user_data);
+void iterate_over_minimal_symbols
+    (struct objfile *objf, const lookup_name_info &name,
+     gdb::function_view<void (struct minimal_symbol *)> callback);
 
 /* 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
@@ -275,4 +279,11 @@ void iterate_over_minimal_symbols (struct objfile *objf,
 
 CORE_ADDR minimal_symbol_upper_bound (struct bound_minimal_symbol minsym);
 
+/* Return the type of MSYMBOL, a minimal symbol of OBJFILE.  If
+   ADDRESS_P is not NULL, set it to the MSYMBOL's resolved
+   address.  */
+
+type *find_minsym_type_and_address (minimal_symbol *msymbol, objfile *objf,
+                                   CORE_ADDR *address_p);
+
 #endif /* MINSYMS_H */
This page took 0.026278 seconds and 4 git commands to generate.