OpenADFortTk (including Open64 and OpenAnalysis references)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
libdwarf.h
Go to the documentation of this file.
1 /*
2 
3  Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved.
4 
5  This program is free software; you can redistribute it and/or modify it
6  under the terms of version 2 of the GNU General Public License as
7  published by the Free Software Foundation.
8 
9  This program is distributed in the hope that it would be useful, but
10  WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12 
13  Further, this software is distributed without any warranty that it is
14  free of the rightful claim of any third person regarding infringement
15  or the like. Any license provided herein, whether implied or
16  otherwise, applies only to this software file. Patent licenses, if
17  any, provided herein do not apply to combinations of this program with
18  other software, or any other product whatsoever.
19 
20  You should have received a copy of the GNU General Public License along
21  with this program; if not, write the Free Software Foundation, Inc., 59
22  Temple Place - Suite 330, Boston MA 02111-1307, USA.
23 
24  Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
25  Mountain View, CA 94043, or:
26 
27  http://www.sgi.com
28 
29  For further information regarding this notice, see:
30 
31  http://oss.sgi.com/projects/GenInfo/NoticeExplan
32 
33 */
34 
35 
36 #ifndef _LIBDWARF_H
37 #define _LIBDWARF_H
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 /*
42  libdwarf.h
43 
44  For libdwarf producers and consumers
45 
46  The interface is defined as having 8-byte signed and unsigned
47  values so it can handle 64-or-32bit target on 64-or-32bit host.
48  Addr is the native size: it represents pointers on
49  the host machine (not the target!).
50 
51  This contains declarations for types and all producer
52  and consumer functions.
53 
54  Function declarations are written on a single line each here
55  so one can use grep to each declaration in its entirety.
56  The declarations are a little harder to read this way, but...
57 
58 */
59 
60 #if (_MIPS_SZLONG == 64)
61 /* Special case for MIPS, so -64 (LP64) build gets simple -long-.
62  Non-MIPS LP64 or ILP64 environments should probably ensure
63  _MIPS_SZLONG set to 64 everywhere this header is #included.
64 */
65 typedef int Dwarf_Bool; /* boolean type */
66 typedef unsigned long Dwarf_Off; /* 4 or 8 byte file offset */
67 typedef unsigned long Dwarf_Unsigned; /* 4 or 8 byte unsigned value */
68 typedef unsigned short Dwarf_Half; /* 2 byte unsigned value */
69 typedef unsigned char Dwarf_Small; /* 1 byte unsigned value */
70 typedef signed long Dwarf_Signed; /* 4 or 8 byte signed value */
71 typedef unsigned long Dwarf_Addr; /* target memory address */
72 #else /* 32-bit */
73 /* This is for ILP32, allowing i/o of 64bit dwarf info.
74  Also should be fine for LP64 and ILP64 cases.
75 */
76 typedef int Dwarf_Bool; /* boolean type */
77 typedef unsigned long long Dwarf_Off; /* 8 byte file offset */
78 typedef unsigned long long Dwarf_Unsigned; /* 8 byte unsigned value*/
79 typedef unsigned short Dwarf_Half; /* 2 byte unsigned value */
80 typedef unsigned char Dwarf_Small; /* 1 byte unsigned value */
81 typedef signed long long Dwarf_Signed; /* 8 byte signed value */
82 typedef unsigned long long Dwarf_Addr; /* target memory address */
83 #endif
84 typedef void* Dwarf_Ptr; /* host machine pointer */
85 
86 /* uninterpreted block of data
87 */
88 typedef struct {
89  Dwarf_Unsigned bl_len; /* length of block */
90  Dwarf_Ptr bl_data; /* uninterpreted data */
91 } Dwarf_Block;
92 
93 
94 /* location record
95 */
96 typedef struct {
97  Dwarf_Small lr_atom; /* location operation */
98  Dwarf_Unsigned lr_number; /* operand */
99  Dwarf_Unsigned lr_number2; /* for OP_BREGx */
100  Dwarf_Unsigned lr_offset; /* offset in locexpr for OP_BRA etc */
101 } Dwarf_Loc;
102 
103 
104 /* location description
105 */
106 typedef struct {
107  Dwarf_Addr ld_lopc; /* beginning of active range */
108  Dwarf_Addr ld_hipc; /* end of active range */
109  Dwarf_Half ld_cents; /* count of location records */
110  Dwarf_Loc* ld_s; /* pointer to list of same */
111 } Dwarf_Locdesc;
112 
113 /* Frame description instructions expanded.
114 */
115 typedef struct {
116  Dwarf_Small fp_base_op;
117  Dwarf_Small fp_extended_op;
118  Dwarf_Half fp_register;
119  Dwarf_Unsigned fp_offset;
120  Dwarf_Off fp_instr_offset;
122 
123 /* DW_REG_TABLE_SIZE must reflect the number of registers
124  *(DW_FRAME_LAST_REG_NUM) as defined in dwarf.h
125  */
126 #define DW_REG_TABLE_SIZE 66
127 typedef struct {
128  struct {
129  Dwarf_Small dw_offset_relevant;
130  Dwarf_Half dw_regnum;
131  Dwarf_Addr dw_offset;
132  } rules[DW_REG_TABLE_SIZE];
134 
135 /* for DW_DLC_SYMBOLIC_RELOCATIONS output to caller
136  v2, adding drd_length: some relocations are 4 and
137  some 8 bytes (pointers are 8, section offsets 4) in
138  some dwarf environments. (MIPS relocations are all one
139  size in any given ABI.) Changing drd_type to an unsigned char
140  to keep struct size down.
141 */
143  dwarf_drt_none, /* should not get to caller */
144  dwarf_drt_data_reloc, /* simple normal relocation */
145  dwarf_drt_segment_rel, /* special reloc, exceptions*/
146  dwarf_drt_first_of_length_pair,/* this and drt_second
147  for .word end - begin
148  case */
150 };
153  unsigned char drd_type; /* cast to/from Dwarf_Rel_Type
154  to keep size small in struct */
155  unsigned char drd_length; /* length in bytes
156  of data being relocated. 4 for 32bit.
157  8 for 64bit data */
158  Dwarf_Unsigned drd_offset; /* where the data to reloc is */
159  Dwarf_Unsigned drd_symbol_index;
160 };
161 
162 /* Opaque types for Consumer Library. */
163 typedef struct Dwarf_Debug_s* Dwarf_Debug;
164 typedef struct Dwarf_Die_s* Dwarf_Die;
165 typedef struct Dwarf_Line_s* Dwarf_Line;
166 typedef struct Dwarf_Global_s* Dwarf_Global;
167 typedef struct Dwarf_Func_s* Dwarf_Func;
168 typedef struct Dwarf_Type_s* Dwarf_Type;
169 typedef struct Dwarf_Var_s* Dwarf_Var;
170 typedef struct Dwarf_Weak_s* Dwarf_Weak;
171 typedef struct Dwarf_Error_s* Dwarf_Error;
172 typedef struct Dwarf_Attribute_s* Dwarf_Attribute;
173 typedef struct Dwarf_Abbrev_s* Dwarf_Abbrev;
174 typedef struct Dwarf_Fde_s* Dwarf_Fde;
175 typedef struct Dwarf_Cie_s* Dwarf_Cie;
176 typedef struct Dwarf_Arange_s* Dwarf_Arange;
177 
178 /* Opaque types for Producer Library. */
179 typedef struct Dwarf_P_Debug_s* Dwarf_P_Debug;
180 typedef struct Dwarf_P_Die_s* Dwarf_P_Die;
181 typedef struct Dwarf_P_Attribute_s* Dwarf_P_Attribute;
182 typedef struct Dwarf_P_Fde_s* Dwarf_P_Fde;
183 typedef struct Dwarf_P_Expr_s* Dwarf_P_Expr;
184 typedef Dwarf_Unsigned Dwarf_Tag;
185 
186 
187 /* error handler function
188 */
189 typedef void (*Dwarf_Handler)(Dwarf_Error /*error*/, Dwarf_Ptr /*errarg*/);
190 
191 
192 /*
193  Dwarf_dealloc() alloc_type arguments.
194  Argument points to:
195 */
196 #define DW_DLA_STRING 0x01 /* char* */
197 #define DW_DLA_LOC 0x02 /* Dwarf_Loc */
198 #define DW_DLA_LOCDESC 0x03 /* Dwarf_Locdesc */
199 #define DW_DLA_ELLIST 0x04 /* Dwarf_Ellist (not used)*/
200 #define DW_DLA_BOUNDS 0x05 /* Dwarf_Bounds (not used) */
201 #define DW_DLA_BLOCK 0x06 /* Dwarf_Block */
202 #define DW_DLA_DEBUG 0x07 /* Dwarf_Debug */
203 #define DW_DLA_DIE 0x08 /* Dwarf_Die */
204 #define DW_DLA_LINE 0x09 /* Dwarf_Line */
205 #define DW_DLA_ATTR 0x0a /* Dwarf_Attribute */
206 #define DW_DLA_TYPE 0x0b /* Dwarf_Type (not used) */
207 #define DW_DLA_SUBSCR 0x0c /* Dwarf_Subscr (not used) */
208 #define DW_DLA_GLOBAL 0x0d /* Dwarf_Global */
209 #define DW_DLA_ERROR 0x0e /* Dwarf_Error */
210 #define DW_DLA_LIST 0x0f /* a list */
211 #define DW_DLA_LINEBUF 0x10 /* Dwarf_Line* (not used) */
212 #define DW_DLA_ARANGE 0x11 /* Dwarf_Arange */
213 #define DW_DLA_ABBREV 0x12 /* Dwarf_Abbrev */
214 #define DW_DLA_FRAME_OP 0x13 /* Dwarf_Frame_Op */
215 #define DW_DLA_CIE 0x14 /* Dwarf_Cie */
216 #define DW_DLA_FDE 0x15 /* Dwarf_Fde */
217 #define DW_DLA_LOC_BLOCK 0x16 /* Dwarf_Loc Block (not used) */
218 #define DW_DLA_FRAME_BLOCK 0x17 /* Dwarf_Frame Block (not used) */
219 #define DW_DLA_FUNC 0x18 /* Dwarf_Func */
220 #define DW_DLA_TYPENAME 0x19 /* Dwarf_Type */
221 #define DW_DLA_VAR 0x1a /* Dwarf_Var */
222 #define DW_DLA_WEAK 0x1b /* Dwarf_Weak */
223 #define DW_DLA_ADDR 0x1c /* Dwarf_Addr sized entries */
224 
225 /* The augmenter string for CIE */
226 #define DW_CIE_AUGMENTER_STRING_V0 "z"
227 
228 /* dwarf_init() access arguments
229 */
230 #define DW_DLC_READ 0 /* read only access */
231 #define DW_DLC_WRITE 1 /* write only access */
232 #define DW_DLC_RDWR 2 /* read/write access NOT SUPPORTED*/
233 
234 /* dwarf_init() access flag modifiers
235 */
236 #define DW_DLC_SIZE_64 0x40000000 /* 32-bit target */
237 #define DW_DLC_SIZE_32 0x20000000 /* 64-bit target */
238 
239 /* dwarf_init() access flag modifiers
240 */
241 #define DW_DLC_ISA_MIPS 0x00000000 /* MIPS target */
242 #define DW_DLC_ISA_IA64 0x01000000 /* IA64 target */
243 #define DW_DLC_STREAM_RELOCATIONS 0x02000000 /* old style binary relocs */
244 #define DW_DLC_SYMBOLIC_RELOCATIONS 0x04000000 /* usable with assem output */
245 #define DW_DLC_TARGET_BIGENDIAN 0x08000000 /* big endian target */
246 #define DW_DLC_TARGET_LITTLEENDIAN 0x00100000 /* little endian target */
247 
248 /* dwarf_pcline() slide arguments
249 */
250 #define DW_DLS_BACKWARD -1 /* slide backward to find line */
251 #define DW_DLS_NOSLIDE 0 /* match exactly without sliding */
252 #define DW_DLS_FORWARD 1 /* slide forward to find line */
253 
254 /* libdwarf error numbers
255 */
256 #define DW_DLE_NE 0 /* no error */
257 #define DW_DLE_VMM 1 /* dwarf format/library version mismatch */
258 #define DW_DLE_MAP 2 /* memory map failure */
259 #define DW_DLE_LEE 3 /* libelf error */
260 #define DW_DLE_NDS 4 /* no debug section */
261 #define DW_DLE_NLS 5 /* no line section */
262 #define DW_DLE_ID 6 /* invalid descriptor for query */
263 #define DW_DLE_IOF 7 /* I/O failure */
264 #define DW_DLE_MAF 8 /* memory allocation failure */
265 #define DW_DLE_IA 9 /* invalid argument */
266 #define DW_DLE_MDE 10 /* mangled debugging entry */
267 #define DW_DLE_MLE 11 /* mangled line number entry */
268 #define DW_DLE_FNO 12 /* file not open */
269 #define DW_DLE_FNR 13 /* file not a regular file */
270 #define DW_DLE_FWA 14 /* file open with wrong access */
271 #define DW_DLE_NOB 15 /* not an object file */
272 #define DW_DLE_MOF 16 /* mangled object file header */
273 #define DW_DLE_EOLL 17 /* end of location list entries */
274 #define DW_DLE_NOLL 18 /* no location list section */
275 #define DW_DLE_BADOFF 19 /* Invalid offset */
276 #define DW_DLE_EOS 20 /* end of section */
277 #define DW_DLE_ATRUNC 21 /* abbreviations section appears truncated*/
278 #define DW_DLE_BADBITC 22 /* Address size passed to dwarf bad*/
279  /* It is not an allowed size (64 or 32) */
280  /* Error codes defined by the current Libdwarf Implementation. */
281 #define DW_DLE_DBG_ALLOC 23
282 #define DW_DLE_FSTAT_ERROR 24
283 #define DW_DLE_FSTAT_MODE_ERROR 25
284 #define DW_DLE_INIT_ACCESS_WRONG 26
285 #define DW_DLE_ELF_BEGIN_ERROR 27
286 #define DW_DLE_ELF_GETEHDR_ERROR 28
287 #define DW_DLE_ELF_GETSHDR_ERROR 29
288 #define DW_DLE_ELF_STRPTR_ERROR 30
289 #define DW_DLE_DEBUG_INFO_DUPLICATE 31
290 #define DW_DLE_DEBUG_INFO_NULL 32
291 #define DW_DLE_DEBUG_ABBREV_DUPLICATE 33
292 #define DW_DLE_DEBUG_ABBREV_NULL 34
293 #define DW_DLE_DEBUG_ARANGES_DUPLICATE 35
294 #define DW_DLE_DEBUG_ARANGES_NULL 36
295 #define DW_DLE_DEBUG_LINE_DUPLICATE 37
296 #define DW_DLE_DEBUG_LINE_NULL 38
297 #define DW_DLE_DEBUG_LOC_DUPLICATE 39
298 #define DW_DLE_DEBUG_LOC_NULL 40
299 #define DW_DLE_DEBUG_MACINFO_DUPLICATE 41
300 #define DW_DLE_DEBUG_MACINFO_NULL 42
301 #define DW_DLE_DEBUG_PUBNAMES_DUPLICATE 43
302 #define DW_DLE_DEBUG_PUBNAMES_NULL 44
303 #define DW_DLE_DEBUG_STR_DUPLICATE 45
304 #define DW_DLE_DEBUG_STR_NULL 46
305 #define DW_DLE_CU_LENGTH_ERROR 47
306 #define DW_DLE_VERSION_STAMP_ERROR 48
307 #define DW_DLE_ABBREV_OFFSET_ERROR 49
308 #define DW_DLE_ADDRESS_SIZE_ERROR 50
309 #define DW_DLE_DEBUG_INFO_PTR_NULL 51
310 #define DW_DLE_DIE_NULL 52
311 #define DW_DLE_STRING_OFFSET_BAD 53
312 #define DW_DLE_DEBUG_LINE_LENGTH_BAD 54
313 #define DW_DLE_LINE_PROLOG_LENGTH_BAD 55
314 #define DW_DLE_LINE_NUM_OPERANDS_BAD 56
315 #define DW_DLE_LINE_SET_ADDR_ERROR 57
316 #define DW_DLE_LINE_EXT_OPCODE_BAD 58
317 #define DW_DLE_DWARF_LINE_NULL 59
318 #define DW_DLE_INCL_DIR_NUM_BAD 60
319 #define DW_DLE_LINE_FILE_NUM_BAD 61
320 #define DW_DLE_ALLOC_FAIL 62
321 #define DW_DLE_NO_CALLBACK_FUNC 63
322 #define DW_DLE_SECT_ALLOC 64
323 #define DW_DLE_FILE_ENTRY_ALLOC 65
324 #define DW_DLE_LINE_ALLOC 66
325 #define DW_DLE_FPGM_ALLOC 67
326 #define DW_DLE_INCDIR_ALLOC 68
327 #define DW_DLE_STRING_ALLOC 69
328 #define DW_DLE_CHUNK_ALLOC 70
329 #define DW_DLE_BYTEOFF_ERR 71
330 #define DW_DLE_CIE_ALLOC 72
331 #define DW_DLE_FDE_ALLOC 73
332 #define DW_DLE_REGNO_OVFL 74
333 #define DW_DLE_CIE_OFFS_ALLOC 75
334 #define DW_DLE_WRONG_ADDRESS 76
335 #define DW_DLE_EXTRA_NEIGHBORS 77
336 #define DW_DLE_WRONG_TAG 78
337 #define DW_DLE_DIE_ALLOC 79
338 #define DW_DLE_PARENT_EXISTS 80
339 #define DW_DLE_DBG_NULL 81
340 #define DW_DLE_DEBUGLINE_ERROR 82
341 #define DW_DLE_DEBUGFRAME_ERROR 83
342 #define DW_DLE_DEBUGINFO_ERROR 84
343 #define DW_DLE_ATTR_ALLOC 85
344 #define DW_DLE_ABBREV_ALLOC 86
345 #define DW_DLE_OFFSET_UFLW 87
346 #define DW_DLE_ELF_SECT_ERR 88
347 #define DW_DLE_DEBUG_FRAME_LENGTH_BAD 89
348 #define DW_DLE_FRAME_VERSION_BAD 90
349 #define DW_DLE_CIE_RET_ADDR_REG_ERROR 91
350 #define DW_DLE_FDE_NULL 92
351 #define DW_DLE_FDE_DBG_NULL 93
352 #define DW_DLE_CIE_NULL 94
353 #define DW_DLE_CIE_DBG_NULL 95
354 #define DW_DLE_FRAME_TABLE_COL_BAD 96
355 #define DW_DLE_PC_NOT_IN_FDE_RANGE 97
356 #define DW_DLE_CIE_INSTR_EXEC_ERROR 98
357 #define DW_DLE_FRAME_INSTR_EXEC_ERROR 99
358 #define DW_DLE_FDE_PTR_NULL 100
359 #define DW_DLE_RET_OP_LIST_NULL 101
360 #define DW_DLE_LINE_CONTEXT_NULL 102
361 #define DW_DLE_DBG_NO_CU_CONTEXT 103
362 #define DW_DLE_DIE_NO_CU_CONTEXT 104
363 #define DW_DLE_FIRST_DIE_NOT_CU 105
364 #define DW_DLE_NEXT_DIE_PTR_NULL 106
365 #define DW_DLE_DEBUG_FRAME_DUPLICATE 107
366 #define DW_DLE_DEBUG_FRAME_NULL 108
367 #define DW_DLE_ABBREV_DECODE_ERROR 109
368 #define DW_DLE_DWARF_ABBREV_NULL 110
369 #define DW_DLE_ATTR_NULL 111
370 #define DW_DLE_DIE_BAD 112
371 #define DW_DLE_DIE_ABBREV_BAD 113
372 #define DW_DLE_ATTR_FORM_BAD 114
373 #define DW_DLE_ATTR_NO_CU_CONTEXT 115
374 #define DW_DLE_ATTR_FORM_SIZE_BAD 116
375 #define DW_DLE_ATTR_DBG_NULL 117
376 #define DW_DLE_BAD_REF_FORM 118
377 #define DW_DLE_ATTR_FORM_OFFSET_BAD 119
378 #define DW_DLE_LINE_OFFSET_BAD 120
379 #define DW_DLE_DEBUG_STR_OFFSET_BAD 121
380 #define DW_DLE_STRING_PTR_NULL 122
381 #define DW_DLE_PUBNAMES_VERSION_ERROR 123
382 #define DW_DLE_PUBNAMES_LENGTH_BAD 124
383 #define DW_DLE_GLOBAL_NULL 125
384 #define DW_DLE_GLOBAL_CONTEXT_NULL 126
385 #define DW_DLE_DIR_INDEX_BAD 127
386 #define DW_DLE_LOC_EXPR_BAD 128
387 #define DW_DLE_DIE_LOC_EXPR_BAD 129
388 #define DW_DLE_ADDR_ALLOC 130
389 #define DW_DLE_OFFSET_BAD 131
390 #define DW_DLE_MAKE_CU_CONTEXT_FAIL 132
391 #define DW_DLE_REL_ALLOC 133
392 #define DW_DLE_ARANGE_OFFSET_BAD 134
393 #define DW_DLE_SEGMENT_SIZE_BAD 135
394 #define DW_DLE_ARANGE_LENGTH_BAD 136
395 #define DW_DLE_ARANGE_DECODE_ERROR 137
396 #define DW_DLE_ARANGES_NULL 138
397 #define DW_DLE_ARANGE_NULL 139
398 #define DW_DLE_NO_FILE_NAME 140
399 #define DW_DLE_NO_COMP_DIR 141
400 #define DW_DLE_CU_ADDRESS_SIZE_BAD 142
401 #define DW_DLE_INPUT_ATTR_BAD 143
402 #define DW_DLE_EXPR_NULL 144
403 #define DW_DLE_BAD_EXPR_OPCODE 145
404 #define DW_DLE_EXPR_LENGTH_BAD 146
405 #define DW_DLE_MULTIPLE_RELOC_IN_EXPR 147
406 #define DW_DLE_ELF_GETIDENT_ERROR 148
407 #define DW_DLE_NO_AT_MIPS_FDE 149
408 #define DW_DLE_NO_CIE_FOR_FDE 150
409 #define DW_DLE_DIE_ABBREV_LIST_NULL 151
410 #define DW_DLE_DEBUG_FUNCNAMES_DUPLICATE 152
411 #define DW_DLE_DEBUG_FUNCNAMES_NULL 153
412 #define DW_DLE_DEBUG_FUNCNAMES_VERSION_ERROR 154
413 #define DW_DLE_DEBUG_FUNCNAMES_LENGTH_BAD 155
414 #define DW_DLE_FUNC_NULL 156
415 #define DW_DLE_FUNC_CONTEXT_NULL 157
416 #define DW_DLE_DEBUG_TYPENAMES_DUPLICATE 158
417 #define DW_DLE_DEBUG_TYPENAMES_NULL 159
418 #define DW_DLE_DEBUG_TYPENAMES_VERSION_ERROR 160
419 #define DW_DLE_DEBUG_TYPENAMES_LENGTH_BAD 161
420 #define DW_DLE_TYPE_NULL 162
421 #define DW_DLE_TYPE_CONTEXT_NULL 163
422 #define DW_DLE_DEBUG_VARNAMES_DUPLICATE 164
423 #define DW_DLE_DEBUG_VARNAMES_NULL 165
424 #define DW_DLE_DEBUG_VARNAMES_VERSION_ERROR 166
425 #define DW_DLE_DEBUG_VARNAMES_LENGTH_BAD 167
426 #define DW_DLE_VAR_NULL 168
427 #define DW_DLE_VAR_CONTEXT_NULL 169
428 #define DW_DLE_DEBUG_WEAKNAMES_DUPLICATE 170
429 #define DW_DLE_DEBUG_WEAKNAMES_NULL 171
430 #define DW_DLE_DEBUG_WEAKNAMES_VERSION_ERROR 172
431 #define DW_DLE_DEBUG_WEAKNAMES_LENGTH_BAD 173
432 #define DW_DLE_WEAK_NULL 174
433 #define DW_DLE_WEAK_CONTEXT_NULL 175
434 #define DW_DLE_LOCDESC_COUNT_WRONG 176
435 #define DW_DLE_MACINFO_STRING_NULL 177
436 #define DW_DLE_MACINFO_STRING_EMPTY 178
437 #define DW_DLE_MACINFO_INTERNAL_ERROR_SPACE 179
438 #define DW_DLE_MACINFO_MALLOC_FAIL 180
439 #define DW_DLE_DEBUGMACINFO_ERROR 181
440 #define DW_DLE_DEBUG_MACRO_LENGTH_BAD 182
441 #define DW_DLE_DEBUG_MACRO_MAX_BAD 183
442 #define DW_DLE_DEBUG_MACRO_INTERNAL_ERR 184
443 #define DW_DLE_DEBUG_MACRO_MALLOC_SPACE 185
444 #define DW_DLE_DEBUG_MACRO_INCONSISTENT 186
445 #define DW_DLE_DF_NO_CIE_AUGMENTATION 187
446 #define DW_DLE_DF_REG_NUM_TOO_HIGH 188
447 #define DW_DLE_DF_MAKE_INSTR_NO_INIT 189
448 #define DW_DLE_DF_NEW_LOC_LESS_OLD_LOC 190
449 #define DW_DLE_DF_POP_EMPTY_STACK 191
450 #define DW_DLE_DF_ALLOC_FAIL 192
451 #define DW_DLE_DF_FRAME_DECODING_ERROR 193
452 
453  /* DW_DLE_LAST MUST EQUAL LAST ERROR NUMBER */
454 #define DW_DLE_LAST 193
455 #define DW_DLE_LO_USER 0x10000
456 
457  /* taken as meaning 'undefined value', this is not
458  a column or register number.
459  Only present at libdwarf runtime. Never on disk.
460  DW_FRAME_* Values present on disk are in dwarf.h
461  */
462 #define DW_FRAME_UNDEFINED_VAL 1034
463 
464  /* taken as meaning 'same value' as caller had, not a column
465  or register number
466  Only present at libdwarf runtime. Never on disk.
467  DW_FRAME_* Values present on disk are in dwarf.h
468  */
469 #define DW_FRAME_SAME_VAL 1035
470 
471 
472 
473 /* error return values
474 */
475 #define DW_DLV_BADADDR (~(Dwarf_Addr)0)
476  /* for functions returning target address */
477 
478 #define DW_DLV_NOCOUNT ((Dwarf_Signed)-1)
479  /* for functions returning count */
480 
481 #define DW_DLV_BADOFFSET (~(Dwarf_Off)0)
482  /* for functions returning offset */
483 
484 /* standard return values for functions */
485 #define DW_DLV_NO_ENTRY -1
486 #define DW_DLV_OK 0
487 #define DW_DLV_ERROR 1
488 
489 /* Special values for offset_into_exception_table field of dwarf fde's. */
490 /* The following value indicates that there is no Exception table offset
491  associated with a dwarf frame. */
492 #define DW_DLX_NO_EH_OFFSET (-1LL)
493 /* The following value indicates that the producer was unable to analyse the
494  source file to generate Exception tables for this function. */
495 #define DW_DLX_EH_OFFSET_UNAVAILABLE (-2LL)
496 
497 
498 /*===========================================================================*/
499 /* Dwarf consumer interface initialization and termination operations */
500 
501 /* non-elf initialization */
502 int dwarf_init(int /*fd*/,
503  Dwarf_Unsigned /*access*/,
504  Dwarf_Handler /*errhand*/,
505  Dwarf_Ptr /*errarg*/,
506  Dwarf_Debug * /*dbg*/,
507  Dwarf_Error* /*error*/);
508 
509 /* elf intialization */
510 int dwarf_elf_init(Elf* /*elf*/,
511  Dwarf_Unsigned /*access*/,
512  Dwarf_Handler /*errhand*/,
513  Dwarf_Ptr /*errarg*/,
514  Dwarf_Debug * /*dbg*/,
515  Dwarf_Error* /*error*/);
516 
517 /* Undocumented function for memory allocator. */
518 void dwarf_print_memory_stats(Dwarf_Debug /*dbg*/);
519 
520 
521 int dwarf_get_elf(Dwarf_Debug /*dbg*/,
522  Elf ** /*return_elfptr*/,
523  Dwarf_Error* /*error*/);
524 
525 int dwarf_finish(Dwarf_Debug /*dbg*/, Dwarf_Error* /*error*/);
526 
527 /* die traversal operations */
528 int dwarf_next_cu_header(Dwarf_Debug /*dbg*/,
529  Dwarf_Unsigned* /*cu_header_length*/,
530  Dwarf_Half* /*version_stamp*/,
531  Dwarf_Off* /*abbrev_offset*/,
532  Dwarf_Half* /*address_size*/,
533  Dwarf_Unsigned* /*next_cu_header_offset*/,
534  Dwarf_Error* /*error*/);
535 
536 int dwarf_siblingof(Dwarf_Debug /*dbg*/,
537  Dwarf_Die /*die*/,
538  Dwarf_Die* /*return_siblingdie*/,
539  Dwarf_Error* /*error*/);
540 
541 int dwarf_child(Dwarf_Die /*die*/,
542  Dwarf_Die* /*return_childdie*/,
543  Dwarf_Error* /*error*/);
544 
545 /* finding die given offset */
546 int dwarf_offdie(Dwarf_Debug /*dbg*/,
547  Dwarf_Off /*offset*/,
548  Dwarf_Die* /*return_die*/,
549  Dwarf_Error* /*error*/);
550 
551 /* higher level functions (Unimplemented) */
552 int dwarf_pcfile(Dwarf_Debug /*dbg*/,
553  Dwarf_Addr /*pc*/,
554  Dwarf_Die* /*return_die*/,
555  Dwarf_Error* /*error*/);
556 
557 /* Unimplemented */
558 int dwarf_pcsubr(Dwarf_Debug /*dbg*/,
559  Dwarf_Addr /*pc*/,
560  Dwarf_Die* /*return_die*/,
561  Dwarf_Error* /*error*/);
562 
563 /* Unimplemented */
564 int dwarf_pcscope(Dwarf_Debug /*dbg*/,
565  Dwarf_Addr /*pc*/,
566  Dwarf_Die* /*return_die*/,
567  Dwarf_Error* /*error*/);
568 
569 /* operations on DIEs */
570 int dwarf_tag(Dwarf_Die /*die*/,
571  Dwarf_Half* /*return_tag*/,
572  Dwarf_Error* /*error*/);
573 
574 /* utility? */
575 int dwarf_dieoffset(Dwarf_Die /*die*/,
576  Dwarf_Off* /*return_offset*/,
577  Dwarf_Error* /*error*/);
578 
579 int dwarf_die_CU_offset(Dwarf_Die /*die*/,
580  Dwarf_Off* /*return_offset*/,
581  Dwarf_Error* /*error*/);
582 
583 int dwarf_attr (Dwarf_Die /*die*/,
584  Dwarf_Half /*attr*/,
585  Dwarf_Attribute * /*returned_attr*/,
586  Dwarf_Error* /*error*/);
587 
588 int dwarf_diename(Dwarf_Die /*die*/,
589  char ** /*diename*/,
590  Dwarf_Error* /*error*/);
591 
592 /* convenience functions, alternative to using dwarf_attrlist() */
593 int dwarf_hasattr(Dwarf_Die /*die*/,
594  Dwarf_Half /*attr*/,
595  Dwarf_Bool * /*returned_bool*/,
596  Dwarf_Error* /*error*/);
597 
598 int dwarf_loclist(Dwarf_Attribute /*attr*/,
599  Dwarf_Locdesc** /*llbuf*/,
600  Dwarf_Signed * /*locCount*/,
601  Dwarf_Error* /*error*/);
602 
603 /* Unimplemented */
604 int dwarf_stringlen(Dwarf_Die /*die*/,
605  Dwarf_Locdesc ** /*returned_locdesc*/,
606  Dwarf_Error* /*error*/);
607 
608 /* Unimplemented */
609 int dwarf_subscrcnt(Dwarf_Die /*die*/,
610  Dwarf_Signed * /*returned_count*/,
611  Dwarf_Error* /*error*/);
612 
613 /* Unimplemented */
614 int dwarf_nthsubscr(Dwarf_Die /*die*/,
615  Dwarf_Unsigned /*ssndx*/,
616  Dwarf_Die * /*returned_die*/,
617  Dwarf_Error* /*error*/);
618 
619 int dwarf_lowpc(Dwarf_Die /*die*/,
620  Dwarf_Addr * /*returned_addr*/,
621  Dwarf_Error* /*error*/);
622 
623 int dwarf_highpc(Dwarf_Die /*die*/,
624  Dwarf_Addr * /*returned_addr*/,
625  Dwarf_Error* /*error*/);
626 
627 int dwarf_bytesize(Dwarf_Die /*die*/,
628  Dwarf_Unsigned * /*returned_size*/,
629  Dwarf_Error* /*error*/);
630 
631 /* Unimplemented */
632 int dwarf_isbitfield(Dwarf_Die /*die*/,
633  Dwarf_Bool * /*returned_bool*/,
634  Dwarf_Error* /*error*/);
635 
636 int dwarf_bitsize(Dwarf_Die /*die*/,
637  Dwarf_Unsigned * /*returned_size*/,
638  Dwarf_Error* /*error*/);
639 
640 int dwarf_bitoffset(Dwarf_Die /*die*/,
641  Dwarf_Unsigned * /*returned_offset*/,
642  Dwarf_Error* /*error*/);
643 
644 int dwarf_srclang(Dwarf_Die /*die*/,
645  Dwarf_Unsigned * /*returned_lang*/,
646  Dwarf_Error* /*error*/);
647 
648 int dwarf_arrayorder(Dwarf_Die /*die*/,
649  Dwarf_Unsigned * /*returned_order*/,
650  Dwarf_Error* /*error*/);
651 
652 /* end of convenience function list */
653 
654 /* this is the main interface to attributes of a DIE */
655 int dwarf_attrlist(Dwarf_Die /*die*/,
656  Dwarf_Attribute** /*attrbuf*/,
657  Dwarf_Signed * /*attrcount*/,
658  Dwarf_Error* /*error*/);
659 
660 /* query operations for attributes */
661 int dwarf_hasform(Dwarf_Attribute /*attr*/,
662  Dwarf_Half /*form*/,
663  Dwarf_Bool * /*returned_bool*/,
664  Dwarf_Error* /*error*/);
665 
666 int dwarf_whatform(Dwarf_Attribute /*attr*/,
667  Dwarf_Half * /*returned_form*/,
668  Dwarf_Error* /*error*/);
669 
670 int dwarf_whatattr(Dwarf_Attribute /*attr*/,
671  Dwarf_Half * /*returned_attr_num*/,
672  Dwarf_Error* /*error*/);
673 
674 /*
675  The following are concerned with the Primary Interface: getting
676  the actual data values. One function per 'kind' of FORM.
677 */
678  /*dwarf_formref returns, thru return_offset, a CU-relative offset
679  ** and does not allow DW_FORM_ref_addr*/
680 int dwarf_formref(Dwarf_Attribute /*attr*/,
681  Dwarf_Off* /*return_offset*/,
682  Dwarf_Error* /*error*/);
683  /*dwarf_global_formref returns, thru return_offset,
684  a debug_info-relative offset and does allow all reference forms*/
685 int dwarf_global_formref(Dwarf_Attribute /*attr*/,
686  Dwarf_Off* /*return_offset*/,
687  Dwarf_Error* /*error*/);
688 
689 int dwarf_formaddr(Dwarf_Attribute /*attr*/,
690  Dwarf_Addr * /*returned_addr*/,
691  Dwarf_Error* /*error*/);
692 
693 int dwarf_formflag(Dwarf_Attribute /*attr*/,
694  Dwarf_Bool * /*returned_bool*/,
695  Dwarf_Error* /*error*/);
696 
697 int dwarf_formudata(Dwarf_Attribute /*attr*/,
698  Dwarf_Unsigned * /*returned_val*/,
699  Dwarf_Error* /*error*/);
700 
701 int dwarf_formsdata(Dwarf_Attribute /*attr*/,
702  Dwarf_Signed * /*returned_val*/,
703  Dwarf_Error* /*error*/);
704 
705 int dwarf_formblock(Dwarf_Attribute /*attr*/,
706  Dwarf_Block ** /*returned_block*/,
707  Dwarf_Error* /*error*/);
708 
709 int dwarf_formstring(Dwarf_Attribute /*attr*/,
710  char ** /*returned_string*/,
711  Dwarf_Error* /*error*/);
712 
713 /* end attribute query operations. */
714 
715 /* line number operations */
716 /* dwarf_srclines is the normal interface */
717 int dwarf_srclines(Dwarf_Die /*die*/,
718  Dwarf_Line** /*linebuf*/,
719  Dwarf_Signed * /*linecount*/,
720  Dwarf_Error* /*error*/);
721 
722 int dwarf_srcfiles(Dwarf_Die /*die*/,
723  char*** /*srcfiles*/,
724  Dwarf_Signed * /*filecount*/,
725  Dwarf_Error* /*error*/);
726 
727 /* Unimplemented. */
728 int dwarf_dieline(Dwarf_Die /*die*/,
729  Dwarf_Line * /*returned_line*/,
730  Dwarf_Error * /*error*/);
731 
732 int dwarf_linebeginstatement(Dwarf_Line /*line*/,
733  Dwarf_Bool * /*returned_bool*/,
734  Dwarf_Error* /*error*/);
735 
736 int dwarf_lineendsequence(Dwarf_Line /*line*/,
737  Dwarf_Bool * /*returned_bool*/,
738  Dwarf_Error* /*error*/);
739 
740 int dwarf_lineno(Dwarf_Line /*line*/,
741  Dwarf_Unsigned * /*returned_lineno*/,
742  Dwarf_Error* /*error*/);
743 
744 int dwarf_lineaddr(Dwarf_Line /*line*/,
745  Dwarf_Addr * /*returned_addr*/,
746  Dwarf_Error* /*error*/);
747 
748 int dwarf_lineoff(Dwarf_Line /*line*/,
749  Dwarf_Signed * /*returned_lineoffset*/,
750  Dwarf_Error* /*error*/);
751 
752 int dwarf_linesrc(Dwarf_Line /*line*/,
753  char ** /*returned_name*/,
754  Dwarf_Error* /*error*/);
755 
756 int dwarf_lineblock(Dwarf_Line /*line*/,
757  Dwarf_Bool * /*returned_bool*/,
758  Dwarf_Error* /*error*/);
759 
760 /* tertiary interface to line info */
761 /* Unimplemented */
762 int dwarf_pclines(Dwarf_Debug /*dbg*/,
763  Dwarf_Addr /*pc*/,
764  Dwarf_Line** /*linebuf*/,
765  Dwarf_Signed * /*linecount*/,
766  Dwarf_Signed /*slide*/,
767  Dwarf_Error* /*error*/);
768 /* end line number operations */
769 
770 /* global name space operations (.debug_pubnames access) */
771 int dwarf_get_globals(Dwarf_Debug /*dbg*/,
772  Dwarf_Global** /*globals*/,
773  Dwarf_Signed * /*number_of_globals*/,
774  Dwarf_Error* /*error*/);
775 
776 int dwarf_globname(Dwarf_Global /*glob*/,
777  char ** /*returned_name*/,
778  Dwarf_Error* /*error*/);
779 
780 int dwarf_global_die_offset(Dwarf_Global /*global*/,
781  Dwarf_Off* /*return_offset*/,
782  Dwarf_Error * /*error*/);
783 
784 int dwarf_global_cu_offset(Dwarf_Global /*global*/,
785  Dwarf_Off* /*return_offset*/,
786  Dwarf_Error* /*error*/);
787 
788 int dwarf_global_name_offsets(Dwarf_Global /*global*/,
789  char ** /*returned_name*/,
790  Dwarf_Off* /*die_offset*/,
791  Dwarf_Off* /*cu_offset*/,
792  Dwarf_Error* /*error*/);
793 
794 /* Static function name operations. */
795 int dwarf_get_funcs(Dwarf_Debug /*dbg*/,
796  Dwarf_Func** /*funcs*/,
797  Dwarf_Signed * /*number_of_funcs*/,
798  Dwarf_Error* /*error*/);
799 
800 int dwarf_funcname(Dwarf_Func /*func*/,
801  char ** /*returned_name*/,
802  Dwarf_Error* /*error*/);
803 
804 int dwarf_func_die_offset(Dwarf_Func /*func*/,
805  Dwarf_Off* /*return_offset*/,
806  Dwarf_Error* /*error*/);
807 
808 int dwarf_func_cu_offset(Dwarf_Func /*func*/,
809  Dwarf_Off* /*return_offset*/,
810  Dwarf_Error* /*error*/);
811 
812 int dwarf_func_name_offsets(Dwarf_Func /*func*/,
813  char ** /*returned_name*/,
814  Dwarf_Off* /*die_offset*/,
815  Dwarf_Off* /*cu_offset*/,
816  Dwarf_Error* /*error*/);
817 
818 /* User-defined type name operations. */
819 int dwarf_get_types(Dwarf_Debug /*dbg*/,
820  Dwarf_Type** /*types*/,
821  Dwarf_Signed * /*number_of_types*/,
822  Dwarf_Error* /*error*/);
823 
824 int dwarf_typename(Dwarf_Type /*type*/,
825  char ** /*returned_name*/,
826  Dwarf_Error* /*error*/);
827 
828 int dwarf_type_die_offset(Dwarf_Type /*type*/,
829  Dwarf_Off* /*return_offset*/,
830  Dwarf_Error* /*error*/);
831 
832 int dwarf_type_cu_offset(Dwarf_Type /*type*/,
833  Dwarf_Off* /*return_offset*/,
834  Dwarf_Error* /*error*/);
835 
836 int dwarf_type_name_offsets(Dwarf_Type /*type*/,
837  char ** /*returned_name*/,
838  Dwarf_Off* /*die_offset*/,
839  Dwarf_Off* /*cu_offset*/,
840  Dwarf_Error* /*error*/);
841 
842 /* File-scope static variable name operations. */
843 int dwarf_get_vars(Dwarf_Debug /*dbg*/,
844  Dwarf_Var** /*vars*/,
845  Dwarf_Signed * /*number_of_vars*/,
846  Dwarf_Error* /*error*/);
847 
848 int dwarf_varname(Dwarf_Var /*var*/,
849  char ** /*returned_name*/,
850  Dwarf_Error* /*error*/);
851 
852 int dwarf_var_die_offset(Dwarf_Var /*var*/,
853  Dwarf_Off* /*return_offset*/,
854  Dwarf_Error* /*error*/);
855 
856 int dwarf_var_cu_offset(Dwarf_Var /*var*/,
857  Dwarf_Off* /*return_offset*/,
858  Dwarf_Error* /*error*/);
859 
860 int dwarf_var_name_offsets(Dwarf_Var /*var*/,
861  char ** /*returned_name*/,
862  Dwarf_Off* /*die_offset*/,
863  Dwarf_Off* /*cu_offset*/,
864  Dwarf_Error* /*error*/);
865 
866 /* weak name operations. */
867 int dwarf_get_weaks(Dwarf_Debug /*dbg*/,
868  Dwarf_Weak** /*weaks*/,
869  Dwarf_Signed * /*number_of_weaks*/,
870  Dwarf_Error* /*error*/);
871 
872 int dwarf_weakname(Dwarf_Weak /*weak*/,
873  char ** /*returned_name*/,
874  Dwarf_Error* /*error*/);
875 
876 int dwarf_weak_die_offset(Dwarf_Weak /*weak*/,
877  Dwarf_Off* /*return_offset*/,
878  Dwarf_Error* /*error*/);
879 
880 int dwarf_weak_cu_offset(Dwarf_Weak /*weak*/,
881  Dwarf_Off* /*return_offset*/,
882  Dwarf_Error* /*error*/);
883 
884 int dwarf_weak_name_offsets(Dwarf_Weak /*weak*/,
885  char ** /*returned_name*/,
886  Dwarf_Off* /*die_offset*/,
887  Dwarf_Off* /*cu_offset*/,
888  Dwarf_Error* /*error*/);
889 
890 /* location list section operation. (.debug_loc access) */
891 /* Unimplemented. */
892 int dwarf_get_loclist_entry(Dwarf_Debug /*dbg*/,
893  Dwarf_Unsigned /*offset*/,
894  Dwarf_Addr* /*hipc*/,
895  Dwarf_Addr* /*lopc*/,
896  Dwarf_Ptr* /*data*/,
897  Dwarf_Unsigned* /*entry_len*/,
898  Dwarf_Unsigned* /*next_entry*/,
899  Dwarf_Error* /*error*/);
900 
901 /* abbreviation section operations */
902 int dwarf_get_abbrev(Dwarf_Debug /*dbg*/,
903  Dwarf_Unsigned /*offset*/,
904  Dwarf_Abbrev * /*returned_abbrev*/,
905  Dwarf_Unsigned* /*length*/,
906  Dwarf_Unsigned* /*attr_count*/,
907  Dwarf_Error* /*error*/);
908 
909 int dwarf_get_abbrev_tag(Dwarf_Abbrev /*abbrev*/,
910  Dwarf_Half* /*return_tag_number*/,
911  Dwarf_Error* /*error*/);
912 int dwarf_get_abbrev_code(Dwarf_Abbrev /*abbrev*/,
913  Dwarf_Unsigned* /*return_code_number*/,
914  Dwarf_Error* /*error*/);
915 
916 int dwarf_get_abbrev_children_flag(Dwarf_Abbrev /*abbrev*/,
917  Dwarf_Signed* /*return_flag*/,
918  Dwarf_Error* /*error*/);
919 
920 int dwarf_get_abbrev_entry(Dwarf_Abbrev /*abbrev*/,
921  Dwarf_Signed /*index*/,
922  Dwarf_Half * /*returned_attr_num*/,
923  Dwarf_Signed* /*form*/,
924  Dwarf_Off* /*offset*/,
925  Dwarf_Error* /*error*/);
926 
927 /* consumer string section operation */
928 int dwarf_get_str(Dwarf_Debug /*dbg*/,
929  Dwarf_Off /*offset*/,
930  char** /*string*/,
931  Dwarf_Signed * /*strlen_of_string*/,
932  Dwarf_Error* /*error*/);
933 
934 /* Consumer op on gnu .eh_frame info */
936  Dwarf_Debug /*dbg*/,
937  Dwarf_Cie ** /*cie_data*/,
938  Dwarf_Signed * /*cie_element_count*/,
939  Dwarf_Fde ** /*fde_data*/,
940  Dwarf_Signed * /*fde_element_count*/,
941  Dwarf_Error * /*error*/);
942 
943 
944 /* consumer operations on frame info: .debug_frame */
945 int dwarf_get_fde_list(Dwarf_Debug /*dbg*/,
946  Dwarf_Cie** /*cie_data*/,
947  Dwarf_Signed* /*cie_element_count*/,
948  Dwarf_Fde** /*fde_data*/,
949  Dwarf_Signed* /*fde_element_count*/,
950  Dwarf_Error* /*error*/);
951 
952 
953 int dwarf_get_fde_range(Dwarf_Fde /*fde*/,
954  Dwarf_Addr* /*low_pc*/,
955  Dwarf_Unsigned* /*func_length*/,
956  Dwarf_Ptr* /*fde_bytes*/,
957  Dwarf_Unsigned* /*fde_byte_length*/,
958  Dwarf_Off* /*cie_offset*/,
959  Dwarf_Signed* /*cie_index*/,
960  Dwarf_Off* /*fde_offset*/,
961  Dwarf_Error* /*error*/);
962 
963 int dwarf_get_fde_exception_info(Dwarf_Fde /*fde*/,
964  Dwarf_Signed* /* offset_into_exception_tables */,
965  Dwarf_Error* /*error*/);
966 
967 int dwarf_get_cie_of_fde(Dwarf_Fde /*fde*/,
968  Dwarf_Cie * /*cie_returned*/,
969  Dwarf_Error* /*error*/);
970 
971 int dwarf_get_cie_info(Dwarf_Cie /*cie*/,
972  Dwarf_Unsigned * /*bytes_in_cie*/,
973  Dwarf_Small* /*version*/,
974  char ** /*augmenter*/,
975  Dwarf_Unsigned* /*code_alignment_factor*/,
976  Dwarf_Signed* /*data_alignment_factor*/,
977  Dwarf_Half* /*return_address_register_rule*/,
978  Dwarf_Ptr* /*initial_instructions*/,
979  Dwarf_Unsigned* /*initial_instructions_length*/,
980  Dwarf_Error* /*error*/);
981 
982 int dwarf_get_fde_instr_bytes(Dwarf_Fde /*fde*/,
983  Dwarf_Ptr * /*outinstrs*/, Dwarf_Unsigned * /*outlen*/,
984  Dwarf_Error * /*error*/);
985 
986 int dwarf_get_fde_info_for_all_regs(Dwarf_Fde /*fde*/,
987  Dwarf_Addr /*pc_requested*/,
988  Dwarf_Regtable* /*reg_table*/,
989  Dwarf_Addr* /*row_pc*/,
990  Dwarf_Error* /*error*/);
991 
992 int dwarf_get_fde_info_for_reg(Dwarf_Fde /*fde*/,
993  Dwarf_Half /*table_column*/,
994  Dwarf_Addr /*pc_requested*/,
995  Dwarf_Signed* /*offset_relevant*/,
996  Dwarf_Signed* /*register*/,
997  Dwarf_Signed* /*offset*/,
998  Dwarf_Addr* /*row_pc*/,
999  Dwarf_Error* /*error*/);
1000 
1001 int dwarf_get_fde_for_die(Dwarf_Debug /*dbg*/,
1002  Dwarf_Die /*subr_die */,
1003  Dwarf_Fde * /*returned_fde*/,
1004  Dwarf_Error* /*error*/);
1005 
1006 int dwarf_get_fde_n(Dwarf_Fde* /*fde_data*/,
1007  Dwarf_Unsigned /*fde_index*/,
1008  Dwarf_Fde * /*returned_fde*/,
1009  Dwarf_Error* /*error*/);
1010 
1011 int dwarf_get_fde_at_pc(Dwarf_Fde* /*fde_data*/,
1012  Dwarf_Addr /*pc_of_interest*/,
1013  Dwarf_Fde * /*returned_fde*/,
1014  Dwarf_Addr* /*lopc*/,
1015  Dwarf_Addr* /*hipc*/,
1016  Dwarf_Error* /*error*/);
1017 
1018 int dwarf_expand_frame_instructions(Dwarf_Debug /*dbg*/,
1019  Dwarf_Ptr /*instruction*/,
1020  Dwarf_Unsigned /*i_length*/,
1021  Dwarf_Frame_Op** /*returned_op_list*/,
1022  Dwarf_Signed* /*op_count*/,
1023  Dwarf_Error* /*error*/);
1024 
1025 /* Operations on .debug_aranges. */
1026 int dwarf_get_aranges(Dwarf_Debug /*dbg*/,
1027  Dwarf_Arange** /*aranges*/,
1028  Dwarf_Signed * /*arange_count*/,
1029  Dwarf_Error* /*error*/);
1030 
1031 
1032 
1033 int dwarf_get_arange(
1034  Dwarf_Arange* /*aranges*/,
1035  Dwarf_Unsigned /*arange_count*/,
1036  Dwarf_Addr /*address*/,
1037  Dwarf_Arange * /*returned_arange*/,
1038  Dwarf_Error* /*error*/);
1039 
1041  Dwarf_Arange /*arange*/,
1042  Dwarf_Off* /*return_offset*/,
1043  Dwarf_Error* /*error*/);
1044 
1046  Dwarf_Arange /*arange*/,
1047  Dwarf_Addr* /*start*/,
1048  Dwarf_Unsigned* /*length*/,
1049  Dwarf_Off* /*cu_die_offset*/,
1050  Dwarf_Error* /*error*/);
1051 
1052 
1053 /* consumer .debug_macinfo information interface.
1054 */
1056  Dwarf_Off dmd_offset; /* offset, in the section,
1057  of this macro info */
1058  Dwarf_Small dmd_type; /* the type, DW_MACINFO_define etc*/
1059  Dwarf_Signed dmd_lineno; /* the source line number where
1060  applicable and vend_def # if
1061  vendor_extension op
1062  */
1063 
1064  Dwarf_Signed dmd_fileindex;/* the source file index:
1065  applies to define undef start_file
1066  */
1067  char * dmd_macro; /* macro name (with value for defineop)
1068  string from vendor ext
1069  */
1070 };
1071 
1072 /* _dwarf_print_lines is for use by dwarfdump: it prints
1073  line info to stdout.
1074 */
1075 int _dwarf_print_lines(Dwarf_Die cu_die,Dwarf_Error * /*error*/);
1076 
1077 /* _dwarf_ld_sort_lines is for use solely by ld for
1078  rearranging lines in .debug_line in a .o created with a text
1079  section per function.
1080  -OPT:procedure_reorder=ON
1081  where ld-cord (cord(1)ing by ld,
1082  not by cord(1)) may have changed the function order.
1083 */
1085  void * orig_buffer,
1086  unsigned long buffer_len,
1087  int is_64_bit,
1088  int *any_change,
1089  int * err_code);
1090 
1091 /* Used by dwarfdump -v to print offsets, for debugging
1092  dwarf info
1093 */
1094 int _dwarf_fde_section_offset(Dwarf_Debug dbg,Dwarf_Fde in_fde,
1095  Dwarf_Off *fde_off, Dwarf_Off *cie_off,
1096  Dwarf_Error *err);
1097 
1098 /* Used by dwarfdump -v to print offsets, for debugging
1099  dwarf info
1100 */
1101 int _dwarf_cie_section_offset(Dwarf_Debug dbg,Dwarf_Cie in_cie,
1102  Dwarf_Off *cie_off,
1103  Dwarf_Error *err);
1104 
1105 
1106 
1107 
1109 
1110 int dwarf_get_macro(Dwarf_Debug /*dbg*/,
1111  char * /*requested_macro_name*/,
1112  Dwarf_Addr /*pc_of_request*/,
1113  char ** /*returned_macro_value*/,
1114  Dwarf_Error * /*error*/);
1115 
1116 int dwarf_get_all_defined_macros(Dwarf_Debug /*dbg*/,
1117  Dwarf_Addr /*pc_of_request*/,
1118  Dwarf_Signed * /*returned_count*/,
1119  char *** /*returned_pointers_to_macros*/,
1120  Dwarf_Error * /*error*/);
1121 
1122 char *dwarf_find_macro_value_start(char * /*macro_string*/);
1123 
1124 int dwarf_get_macro_details(Dwarf_Debug /*dbg*/,
1125  Dwarf_Off /*macro_offset*/,
1126  Dwarf_Unsigned /*maximum_count*/,
1127  Dwarf_Signed * /*entry_count*/,
1128  Dwarf_Macro_Details ** /*details*/,
1129  Dwarf_Error * /*err*/);
1130 
1131 
1132 int dwarf_get_address_size(Dwarf_Debug /*dbg*/,
1133  Dwarf_Half * /*addr_size*/,
1134  Dwarf_Error * /*error*/);
1135 
1136 /* utility operations */
1137 Dwarf_Unsigned dwarf_errno(Dwarf_Error /*error*/);
1138 
1139 char* dwarf_errmsg(Dwarf_Error /*error*/);
1140 
1141 /* stringcheck zero is default and means do all
1142 ** string length validity checks.
1143 ** Call with parameter value 1 to turn off many such checks (and
1144 ** increase performance).
1145 ** Call with zero for safest running.
1146 ** Actual value saved and returned is only 8 bits! Upper bits
1147 ** ignored by libdwarf (and zero on return).
1148 ** Returns previous value.
1149 */
1150 int dwarf_set_stringcheck(int /*stringcheck*/);
1151 
1152 /* Unimplemented */
1153 Dwarf_Handler dwarf_seterrhand(Dwarf_Debug /*dbg*/, Dwarf_Handler /*errhand*/);
1154 
1155 /* Unimplemented */
1156 Dwarf_Ptr dwarf_seterrarg(Dwarf_Debug /*dbg*/, Dwarf_Ptr /*errarg*/);
1157 
1158 void dwarf_dealloc(Dwarf_Debug /*dbg*/, void* /*space*/,
1159  Dwarf_Unsigned /*type*/);
1160 
1161 /* DWARF Producer Interface */
1162 
1163 typedef int (*Dwarf_Callback_Func)(
1164  char* /*name*/,
1165  int /*size*/,
1166  Dwarf_Unsigned /*type*/,
1167  Dwarf_Unsigned /*flags*/,
1168  Dwarf_Unsigned /*link*/,
1169  Dwarf_Unsigned /*info*/,
1170  int* /*sect name index*/,
1171  int* /*error*/);
1172 
1173 Dwarf_P_Debug dwarf_producer_init(
1174  Dwarf_Unsigned /*creation_flags*/,
1175  Dwarf_Callback_Func /*func*/,
1176  Dwarf_Handler /*errhand*/,
1177  Dwarf_Ptr /*errarg*/,
1178  Dwarf_Error* /*error*/);
1179 
1180 typedef int (*Dwarf_Callback_Func_b)(
1181  char* /*name*/,
1182  int /*size*/,
1183  Dwarf_Unsigned /*type*/,
1184  Dwarf_Unsigned /*flags*/,
1185  Dwarf_Unsigned /*link*/,
1186  Dwarf_Unsigned /*info*/,
1187  Dwarf_Unsigned* /*sect_name_index*/,
1188  int* /*error*/);
1189 
1190 
1191 Dwarf_P_Debug dwarf_producer_init_b(
1192  Dwarf_Unsigned /*flags*/,
1193  Dwarf_Callback_Func_b /*func*/,
1194  Dwarf_Handler /*errhand*/,
1195  Dwarf_Ptr /*errarg*/,
1196  Dwarf_Error * /*error*/);
1197 
1198 
1199 Dwarf_Signed dwarf_transform_to_disk_form(Dwarf_P_Debug /*dbg*/,
1200  Dwarf_Error* /*error*/);
1201 
1202 Dwarf_Ptr dwarf_get_section_bytes(Dwarf_P_Debug /*dbg*/,
1203  Dwarf_Signed /*dwarf_section*/,
1204  Dwarf_Signed* /*elf_section_index*/,
1205  Dwarf_Unsigned* /*length*/,
1206  Dwarf_Error* /*error*/);
1207 
1209  Dwarf_P_Debug /*dbg*/,
1210  Dwarf_Unsigned * /*count_of_relocation_sections*/,
1211  int * /*drd_buffer_version*/,
1212  Dwarf_Error* /*error*/);
1213 
1215  Dwarf_P_Debug /*dbg*/,
1216  Dwarf_Signed * /*elf_section_index*/,
1217  Dwarf_Signed * /*elf_section_index_link*/,
1218  Dwarf_Unsigned * /*relocation_buffer_count*/,
1219  Dwarf_Relocation_Data * /*reldata_buffer*/,
1220  Dwarf_Error* /*error*/);
1221 
1222 /* v1: no drd_length field, enum explicit */
1223 /* v2: has the drd_length field, enum value in uchar member */
1224 #define DWARF_DRD_BUFFER_VERSION 2
1225 
1226 void dwarf_reset_section_bytes(Dwarf_P_Debug /*dbg*/);
1227 
1228 Dwarf_Unsigned dwarf_producer_finish(Dwarf_P_Debug /*dbg*/,
1229  Dwarf_Error* /*error*/);
1230 
1231 /* Producer attribute addition functions. */
1232 Dwarf_P_Attribute dwarf_add_AT_targ_address(Dwarf_P_Debug /*dbg*/,
1233  Dwarf_P_Die /*ownerdie*/,
1234  Dwarf_Half /*attr*/,
1235  Dwarf_Unsigned /*pc_value*/,
1236  Dwarf_Signed /*sym_index*/,
1237  Dwarf_Error* /*error*/);
1238 
1239 Dwarf_P_Attribute dwarf_add_AT_targ_address_b(Dwarf_P_Debug /*dbg*/,
1240  Dwarf_P_Die /*ownerdie*/,
1241  Dwarf_Half /*attr*/,
1242  Dwarf_Unsigned /*pc_value*/,
1243  Dwarf_Unsigned /*sym_index*/,
1244  Dwarf_Error* /*error*/);
1245 
1246 Dwarf_P_Attribute dwarf_add_AT_unsigned_const(Dwarf_P_Debug /*dbg*/,
1247  Dwarf_P_Die /*ownerdie*/,
1248  Dwarf_Half /*attr*/,
1249  Dwarf_Unsigned /*value*/,
1250  Dwarf_Error* /*error*/);
1251 
1252 Dwarf_P_Attribute dwarf_add_AT_signed_const(Dwarf_P_Debug /*dbg*/,
1253  Dwarf_P_Die /*ownerdie*/,
1254  Dwarf_Half /*attr*/,
1255  Dwarf_Signed /*value*/,
1256  Dwarf_Error* /*error*/);
1257 
1258 Dwarf_P_Attribute dwarf_add_AT_reference(Dwarf_P_Debug /*dbg*/,
1259  Dwarf_P_Die /*ownerdie*/,
1260  Dwarf_Half /*attr*/,
1261  Dwarf_P_Die /*otherdie*/,
1262  Dwarf_Error* /*error*/);
1263 
1264 Dwarf_P_Attribute dwarf_add_AT_const_value_string(Dwarf_P_Die /*ownerdie*/,
1265  char* /*string_value*/,
1266  Dwarf_Error* /*error*/);
1267 
1268 Dwarf_P_Attribute dwarf_add_AT_location_expr(Dwarf_P_Debug /*dbg*/,
1269  Dwarf_P_Die /*ownerdie*/,
1270  Dwarf_Half /*attr*/,
1271  Dwarf_P_Expr /*loc_expr*/,
1272  Dwarf_Error* /*error*/);
1273 
1274 Dwarf_P_Attribute dwarf_add_AT_string(Dwarf_P_Debug /*dbg*/,
1275  Dwarf_P_Die /*ownerdie*/,
1276  Dwarf_Half /*attr*/,
1277  char* /*string*/,
1278  Dwarf_Error* /*error*/);
1279 
1280 Dwarf_P_Attribute dwarf_add_AT_flag(Dwarf_P_Debug /*dbg*/,
1281  Dwarf_P_Die /*ownerdie*/,
1282  Dwarf_Half /*attr*/,
1283  Dwarf_Small /*flag*/,
1284  Dwarf_Error* /*error*/);
1285 
1286 Dwarf_P_Attribute dwarf_add_AT_producer(Dwarf_P_Die /*ownerdie*/,
1287  char* /*producer_string*/,
1288  Dwarf_Error* /*error*/);
1289 
1290 Dwarf_P_Attribute dwarf_add_AT_const_value_signedint(Dwarf_P_Die /*ownerdie*/,
1291  Dwarf_Signed /*signed_value*/,
1292  Dwarf_Error* /*error*/);
1293 
1294 Dwarf_P_Attribute dwarf_add_AT_const_value_unsignedint(
1295  Dwarf_P_Die /*ownerdie*/,
1296  Dwarf_Unsigned /*unsigned_value*/,
1297  Dwarf_Error* /*error*/);
1298 
1299 Dwarf_P_Attribute dwarf_add_AT_comp_dir(Dwarf_P_Die /*ownerdie*/,
1300  char* /*current_working_directory*/,
1301  Dwarf_Error* /*error*/);
1302 
1303 Dwarf_P_Attribute dwarf_add_AT_name(Dwarf_P_Die /*die*/,
1304  char* /*name*/,
1305  Dwarf_Error* /*error*/);
1306 
1307 /* Producer line creation functions (.debug_line) */
1308 Dwarf_Unsigned dwarf_add_directory_decl(Dwarf_P_Debug /*dbg*/,
1309  char* /*name*/,
1310  Dwarf_Error* /*error*/);
1311 
1312 Dwarf_Unsigned dwarf_add_file_decl(Dwarf_P_Debug /*dbg*/,
1313  char* /*name*/,
1314  Dwarf_Unsigned /*dir_index*/,
1315  Dwarf_Unsigned /*time_last_modified*/,
1316  Dwarf_Unsigned /*length*/,
1317  Dwarf_Error* /*error*/);
1318 
1319 Dwarf_Unsigned dwarf_add_line_entry(Dwarf_P_Debug /*dbg*/,
1320  Dwarf_Unsigned /*file_index*/,
1321  Dwarf_Addr /*code_address*/,
1322  Dwarf_Unsigned /*lineno*/,
1323  Dwarf_Signed /*column_number*/,
1324  Dwarf_Bool /*is_source_stmt_begin*/,
1325  Dwarf_Bool /*is_basic_block_begin*/,
1326  Dwarf_Error* /*error*/);
1327 
1328 Dwarf_Unsigned dwarf_lne_set_address(Dwarf_P_Debug /*dbg*/,
1329  Dwarf_Unsigned /*offset*/,
1330  Dwarf_Unsigned /*symbol_index*/,
1331  Dwarf_Error* /*error*/);
1332 
1333 Dwarf_Unsigned dwarf_lne_end_sequence(Dwarf_P_Debug /*dbg*/,
1334  Dwarf_Addr /*end_address*/,
1335  Dwarf_Error* /*error*/);
1336 
1337 /* Producer .debug_frame functions */
1338 Dwarf_Unsigned dwarf_add_frame_cie(Dwarf_P_Debug /*dbg*/,
1339  char* /*augmenter*/,
1340  Dwarf_Small /*code_alignent_factor*/,
1341  Dwarf_Small /*data_alignment_factor*/,
1342  Dwarf_Small /*return_address_reg*/,
1343  Dwarf_Ptr /*initialization_bytes*/,
1344  Dwarf_Unsigned /*init_byte_len*/,
1345  Dwarf_Error* /*error*/);
1346 
1347 Dwarf_Unsigned dwarf_add_frame_fde(
1348  Dwarf_P_Debug /*dbg*/,
1349  Dwarf_P_Fde /*fde*/,
1350  Dwarf_P_Die /*corresponding subprogram die*/,
1351  Dwarf_Unsigned /*cie_to_use*/,
1352  Dwarf_Unsigned /*virt_addr_of_described_code*/,
1353  Dwarf_Unsigned /*length_of_code*/,
1354  Dwarf_Unsigned /*symbol_index*/,
1355  Dwarf_Error* /*error*/);
1356 
1357 Dwarf_Unsigned dwarf_add_frame_fde_b(
1358  Dwarf_P_Debug /*dbg*/,
1359  Dwarf_P_Fde /*fde*/,
1360  Dwarf_P_Die /*die*/,
1361  Dwarf_Unsigned /*cie*/,
1362  Dwarf_Addr /*virt_addr*/,
1363  Dwarf_Unsigned /*code_len*/,
1364  Dwarf_Unsigned /*sym_idx*/,
1365  Dwarf_Unsigned /*sym_idx_of_end*/,
1366  Dwarf_Addr /*offset_from_end_sym*/,
1367  Dwarf_Error* /*error*/);
1368 
1369 Dwarf_Unsigned dwarf_add_frame_info_b(
1370  Dwarf_P_Debug dbg /*dbg*/,
1371  Dwarf_P_Fde /*fde*/,
1372  Dwarf_P_Die /*die*/,
1373  Dwarf_Unsigned /*cie*/,
1374  Dwarf_Addr /*virt_addr*/,
1375  Dwarf_Unsigned /*code_len*/,
1376  Dwarf_Unsigned /*symidx*/,
1377  Dwarf_Unsigned /* end_symbol */,
1378  Dwarf_Addr /* offset_from_end_symbol */,
1379  Dwarf_Signed /*offset_into_exception_tables*/,
1380  Dwarf_Unsigned /*exception_table_symbol*/,
1381  Dwarf_Error* /*error*/);
1382 
1383 Dwarf_Unsigned dwarf_add_frame_info(
1384  Dwarf_P_Debug dbg /*dbg*/,
1385  Dwarf_P_Fde /*fde*/,
1386  Dwarf_P_Die /*die*/,
1387  Dwarf_Unsigned /*cie*/,
1388  Dwarf_Addr /*virt_addr*/,
1389  Dwarf_Unsigned /*code_len*/,
1390  Dwarf_Unsigned /*symidx*/,
1391  Dwarf_Signed /*offset_into_exception_tables*/,
1392  Dwarf_Unsigned /*exception_table_symbol*/,
1393  Dwarf_Error* /*error*/);
1394 
1395 Dwarf_P_Fde dwarf_add_fde_inst(
1396  Dwarf_P_Fde /*fde*/,
1397  Dwarf_Small /*op*/,
1398  Dwarf_Unsigned /*val1*/,
1399  Dwarf_Unsigned /*val2*/,
1400  Dwarf_Error* /*error*/);
1401 
1402 Dwarf_P_Fde dwarf_new_fde(Dwarf_P_Debug /*dbg*/, Dwarf_Error* /*error*/);
1403 
1404 Dwarf_P_Fde dwarf_fde_cfa_offset(
1405  Dwarf_P_Fde /*fde*/,
1406  Dwarf_Unsigned /*register_number*/,
1407  Dwarf_Signed /*offset*/,
1408  Dwarf_Error* /*error*/);
1409 
1410 /* die creation & addition routines */
1411 Dwarf_P_Die dwarf_new_die(
1412  Dwarf_P_Debug /*dbg*/,
1413  Dwarf_Tag /*tag*/,
1414  Dwarf_P_Die /*parent*/,
1415  Dwarf_P_Die /*child*/,
1416  Dwarf_P_Die /*left */,
1417  Dwarf_P_Die /*right*/,
1418  Dwarf_Error* /*error*/);
1419 
1420 Dwarf_Unsigned dwarf_add_die_to_debug(
1421  Dwarf_P_Debug /*dbg*/,
1422  Dwarf_P_Die /*die*/,
1423  Dwarf_Error* /*error*/);
1424 
1425 Dwarf_P_Die dwarf_die_link(
1426  Dwarf_P_Die /*die*/,
1427  Dwarf_P_Die /*parent*/,
1428  Dwarf_P_Die /*child*/,
1429  Dwarf_P_Die /*left*/,
1430  Dwarf_P_Die /*right*/,
1431  Dwarf_Error* /*error*/);
1432 
1433 /* Operations to create location expressions. */
1434 Dwarf_P_Expr dwarf_new_expr(Dwarf_P_Debug /*dbg*/, Dwarf_Error* /*error*/);
1435 
1436 Dwarf_Unsigned dwarf_add_expr_gen(
1437  Dwarf_P_Expr /*expr*/,
1438  Dwarf_Small /*opcode*/,
1439  Dwarf_Unsigned /*val1*/,
1440  Dwarf_Unsigned /*val2*/,
1441  Dwarf_Error* /*error*/);
1442 
1443 Dwarf_Unsigned dwarf_add_expr_addr(
1444  Dwarf_P_Expr /*expr*/,
1445  Dwarf_Unsigned /*addr*/,
1446  Dwarf_Signed /*sym_index*/,
1447  Dwarf_Error* /*error*/);
1448 
1449 Dwarf_Unsigned dwarf_add_expr_addr_b(
1450  Dwarf_P_Expr /*expr*/,
1451  Dwarf_Unsigned /*addr*/,
1452  Dwarf_Unsigned /*sym_index*/,
1453  Dwarf_Error* /*error*/);
1454 
1455 Dwarf_Unsigned dwarf_expr_current_offset(
1456  Dwarf_P_Expr /*expr*/,
1457  Dwarf_Error* /*error*/);
1458 
1459 Dwarf_Addr dwarf_expr_into_block(
1460  Dwarf_P_Expr /*expr*/,
1461  Dwarf_Unsigned* /*length*/,
1462  Dwarf_Error* /*error*/);
1463 
1464 Dwarf_Unsigned dwarf_add_arange(Dwarf_P_Debug /*dbg*/,
1465  Dwarf_Addr /*begin_address*/,
1466  Dwarf_Unsigned /*length*/,
1467  Dwarf_Signed /*symbol_index*/,
1468  Dwarf_Error* /*error*/);
1469 
1470 Dwarf_Unsigned dwarf_add_arange_b(
1471  Dwarf_P_Debug /*dbg*/,
1472  Dwarf_Addr /*begin_address*/,
1473  Dwarf_Unsigned /*length*/,
1474  Dwarf_Unsigned /*symbol_index*/,
1475  Dwarf_Unsigned /*end_symbol_index*/,
1476  Dwarf_Addr /*offset_from_end_symbol*/,
1477  Dwarf_Error * /*error*/);
1478 
1479 Dwarf_Unsigned dwarf_add_pubname(
1480  Dwarf_P_Debug /*dbg*/,
1481  Dwarf_P_Die /*die*/,
1482  char* /*pubname_name*/,
1483  Dwarf_Error* /*error*/);
1484 
1485 Dwarf_Unsigned dwarf_add_funcname(
1486  Dwarf_P_Debug /*dbg*/,
1487  Dwarf_P_Die /*die*/,
1488  char* /*func_name*/,
1489  Dwarf_Error* /*error*/);
1490 
1491 Dwarf_Unsigned dwarf_add_typename(
1492  Dwarf_P_Debug /*dbg*/,
1493  Dwarf_P_Die /*die*/,
1494  char* /*type_name*/,
1495  Dwarf_Error* /*error*/);
1496 
1497 Dwarf_Unsigned dwarf_add_varname(
1498  Dwarf_P_Debug /*dbg*/,
1499  Dwarf_P_Die /*die*/,
1500  char* /*var_name*/,
1501  Dwarf_Error* /*error*/);
1502 
1503 Dwarf_Unsigned dwarf_add_weakname(
1504  Dwarf_P_Debug /*dbg*/,
1505  Dwarf_P_Die /*die*/,
1506  char* /*weak_name*/,
1507  Dwarf_Error* /*error*/);
1508 
1509 /* .debug_macinfo producer functions
1510  Functions must be called in right order: the section is output
1511  In the order these are presented.
1512 */
1513 int dwarf_def_macro(Dwarf_P_Debug /*dbg*/,
1514  Dwarf_Unsigned /*line*/,
1515  char * /*macname, with (arglist), no space before (*/,
1516  char * /*macvalue*/,
1517  Dwarf_Error* /*error*/);
1518 
1519 int dwarf_undef_macro(Dwarf_P_Debug /*dbg*/,
1520  Dwarf_Unsigned /*line*/,
1521  char * /*macname, no arglist, of course*/,
1522  Dwarf_Error* /*error*/);
1523 
1524 int dwarf_start_macro_file(Dwarf_P_Debug /*dbg*/,
1525  Dwarf_Unsigned /*fileindex*/,
1526  Dwarf_Unsigned /*linenumber*/,
1527  Dwarf_Error* /*error*/);
1528 
1529 int dwarf_end_macro_file(Dwarf_P_Debug /*dbg*/,
1530  Dwarf_Error* /*error*/);
1531 
1532 int dwarf_vendor_ext(Dwarf_P_Debug /*dbg*/,
1533  Dwarf_Unsigned /*constant*/,
1534  char * /*string*/,
1535  Dwarf_Error* /*error*/);
1536 
1537 /* end macinfo producer functions */
1538 
1539 
1540 void dwarf_p_dealloc(void* /*space*/, Dwarf_Unsigned /*type*/);
1541 
1542 int dwarf_attr_offset(Dwarf_Die /*die*/,
1543  Dwarf_Attribute /*attr of above die*/,
1544  Dwarf_Off * /*returns offset thru this ptr */,
1545  Dwarf_Error * /*error*/);
1546 
1547 
1548 #ifdef __cplusplus
1549 }
1550 #endif
1551 #endif /* _LIBDWARF_H */
1552