/* Shared library declarations for GDB, the GNU Debugger.
Copyright (C) 1992, 1993, 1995, 1998, 1999, 2000, 2001, 2003, 2005, 2007,
- 2008, 2009 Free Software Foundation, Inc.
+ 2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of GDB.
struct so_list;
struct target_ops;
struct target_so_ops;
+struct program_space;
/* Called when we free all symtabs, to free the shared library information
as well. */
addresses to which they are linked, and sufficient information to
read in their symbols at a later time. */
-extern void solib_create_inferior_hook (void);
+extern void solib_create_inferior_hook (int from_tty);
/* If ADDR lies in a shared library, return its name. */
-extern char *solib_name_from_address (CORE_ADDR);
+extern char *solib_name_from_address (struct program_space *, CORE_ADDR);
+
+/* Return 1 if ADDR lies within SOLIB. */
+
+extern int solib_contains_address_p (const struct so_list *, CORE_ADDR);
+
+/* Return whether the data starting at VADDR, size SIZE, must be kept
+ in a core file for shared libraries loaded before "gcore" is used
+ to be handled correctly when the core file is loaded. This only
+ applies when the section would otherwise not be kept in the core
+ file (in particular, for readonly sections). */
+
+extern int solib_keep_data_in_core (CORE_ADDR vaddr, unsigned long size);
/* Return 1 if PC lies in the dynamic symbol resolution code of the
run time loader. */
extern void set_solib_ops (struct gdbarch *gdbarch,
struct target_so_ops *new_ops);
+/* Return non-zero if NAME is the libpthread shared library. */
+
+extern int libpthread_name_p (const char *name);
+
#endif /* SOLIB_H */