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