gdb
[deliverable/binutils-gdb.git] / gdb / solib-svr4.h
CommitLineData
13437d4b 1/* Handle shared libraries for GDB, the GNU Debugger.
e4bbbda8 2
0b302171 3 Copyright (C) 2000, 2004, 2006-2012 Free Software Foundation, Inc.
13437d4b
KB
4
5 This file is part of GDB.
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
a9762ec7 9 the Free Software Foundation; either version 3 of the License, or
13437d4b
KB
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
a9762ec7 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
13437d4b 19
82b38f72
MK
20#ifndef SOLIB_SVR4_H
21#define SOLIB_SVR4_H
db1ea9ba 22
da3331ec 23struct objfile;
7d522c90
DJ
24struct target_so_ops;
25
26extern struct target_so_ops svr4_so_ops;
da3331ec 27
13437d4b
KB
28/* Critical offsets and sizes which describe struct r_debug and
29 struct link_map on SVR4-like targets. All offsets and sizes are
30 in bytes unless otherwise specified. */
31
32struct link_map_offsets
33 {
e4cd0d6a
MK
34 /* Offset and size of r_debug.r_version. */
35 int r_version_offset, r_version_size;
13437d4b 36
e4cd0d6a 37 /* Offset of r_debug.r_map. */
13437d4b
KB
38 int r_map_offset;
39
7cd25cfc
DJ
40 /* Offset of r_debug.r_brk. */
41 int r_brk_offset;
42
e4cd0d6a
MK
43 /* Offset of r_debug.r_ldsomap. */
44 int r_ldsomap_offset;
13437d4b
KB
45
46 /* Size of struct link_map (or equivalent), or at least enough of it
47 to be able to obtain the fields below. */
48 int link_map_size;
49
50 /* Offset to l_addr field in struct link_map. */
51 int l_addr_offset;
52
cc10cae3
AO
53 /* Offset to l_ld field in struct link_map. */
54 int l_ld_offset;
55
13437d4b
KB
56 /* Offset to l_next field in struct link_map. */
57 int l_next_offset;
58
13437d4b
KB
59 /* Offset to l_prev field in struct link_map. */
60 int l_prev_offset;
61
13437d4b
KB
62 /* Offset to l_name field in struct link_map. */
63 int l_name_offset;
13437d4b
KB
64 };
65
e5e2b9ff
KB
66/* set_solib_svr4_fetch_link_map_offsets() is intended to be called by
67 a <arch>_gdbarch_init() function. It is used to establish an
68 architecture specific link_map_offsets fetcher for the architecture
69 being defined. */
70
71extern void set_solib_svr4_fetch_link_map_offsets
72 (struct gdbarch *gdbarch, struct link_map_offsets *(*func) (void));
21479ded 73
550633cb
EZ
74/* This function is called by thread_db.c. Return the address of the
75 link map for the given objfile. */
76extern CORE_ADDR svr4_fetch_objfile_link_map (struct objfile *objfile);
77
e4bbbda8
MK
78/* Fetch (and possibly build) an appropriate `struct link_map_offsets'
79 for ILP32 and LP64 SVR4 systems. */
80extern struct link_map_offsets *svr4_ilp32_fetch_link_map_offsets (void);
81extern struct link_map_offsets *svr4_lp64_fetch_link_map_offsets (void);
db1ea9ba 82
7d522c90
DJ
83/* Return 1 if PC lies in the dynamic symbol resolution code of the
84 SVR4 run time loader. */
85int svr4_in_dynsym_resolve_code (CORE_ADDR pc);
86
82b38f72 87#endif /* solib-svr4.h */
This page took 1.114323 seconds and 4 git commands to generate.