X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fsolist.h;h=8e5c4321855ec2befe8c2580ee61eb510d1b0c5f;hb=5fc684199ed5eb61abc705b948df8bb46d2ee7cc;hp=141fd7fc0050b72823ad89c0fe305f2d73b35844;hpb=d7fa2ae2549091f294e6dd103a57ddf1219dfe6c;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/solist.h b/gdb/solist.h index 141fd7fc00..8e5c432185 100644 --- a/gdb/solist.h +++ b/gdb/solist.h @@ -1,5 +1,6 @@ /* Shared library declarations for GDB, the GNU Debugger. - Copyright 1990, 91, 92, 93, 94, 95, 96, 98, 1999, 2000 + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, + 2001 Free Software Foundation, Inc. This file is part of GDB. @@ -19,6 +20,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef SOLIST_H +#define SOLIST_H + #define SO_NAME_MAX_PATH_SIZE 512 /* FIXME: Should be dynamic */ /* Forward declaration for target specific link map information. This @@ -51,7 +55,9 @@ struct so_list /* The following fields of the structure are built from information gathered from the shared object file itself, and - are initialized when we actually add it to our symbol tables. */ + are set when we actually add it to our symbol tables. + + current_sos must initialize these fields to 0. */ bfd *abfd; char symbols_loaded; /* flag: symbols read in yet? */ @@ -93,6 +99,12 @@ struct target_so_ops /* Determine if PC lies in the dynamic symbol resolution code of the run time loader */ int (*in_dynsym_resolve_code) (CORE_ADDR pc); + + /* Extra hook for finding and opening a solib. Convenience function + for remote debuggers finding host libs */ + int (*find_and_open_solib) (char *soname, + unsigned o_flags, char **temp_pathname); + }; void free_so (struct so_list *so); @@ -116,3 +128,7 @@ extern struct target_so_ops *current_target_so_ops; (current_target_so_ops->open_symbol_file_object) #define TARGET_SO_IN_DYNSYM_RESOLVE_CODE \ (current_target_so_ops->in_dynsym_resolve_code) +#define TARGET_SO_FIND_AND_OPEN_SOLIB \ + (current_target_so_ops->find_and_open_solib) + +#endif