xref: /haiku/src/kits/debugger/dwarf/Dwarf.h (revision 3c08adef21129761f27ae654a1c5d1705786691a)
1 /*
2  * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3  * Copyright 2013, Rene Gollent, rene@gollent.com.
4  * Distributed under the terms of the MIT License.
5  */
6 #ifndef DWARF_H
7 #define DWARF_H
8 
9 // tag
10 enum {
11 	DW_TAG_array_type				= 0x01,
12 	DW_TAG_class_type				= 0x02,
13 	DW_TAG_entry_point				= 0x03,
14 	DW_TAG_enumeration_type			= 0x04,
15 	DW_TAG_formal_parameter			= 0x05,
16 	DW_TAG_imported_declaration		= 0x08,
17 	DW_TAG_label					= 0x0a,
18 	DW_TAG_lexical_block			= 0x0b,
19 	DW_TAG_member					= 0x0d,
20 	DW_TAG_pointer_type				= 0x0f,
21 	DW_TAG_reference_type			= 0x10,
22 	DW_TAG_compile_unit				= 0x11,
23 	DW_TAG_string_type				= 0x12,
24 	DW_TAG_structure_type			= 0x13,
25 	DW_TAG_subroutine_type			= 0x15,
26 	DW_TAG_typedef					= 0x16,
27 	DW_TAG_union_type				= 0x17,
28 	DW_TAG_unspecified_parameters	= 0x18,
29 	DW_TAG_variant					= 0x19,
30 	DW_TAG_common_block				= 0x1a,
31 	DW_TAG_common_inclusion			= 0x1b,
32 	DW_TAG_inheritance				= 0x1c,
33 	DW_TAG_inlined_subroutine		= 0x1d,
34 	DW_TAG_module					= 0x1e,
35 	DW_TAG_ptr_to_member_type		= 0x1f,
36 	DW_TAG_set_type					= 0x20,
37 	DW_TAG_subrange_type			= 0x21,
38 	DW_TAG_with_stmt				= 0x22,
39 	DW_TAG_access_declaration		= 0x23,
40 	DW_TAG_base_type				= 0x24,
41 	DW_TAG_catch_block				= 0x25,
42 	DW_TAG_const_type				= 0x26,
43 	DW_TAG_constant					= 0x27,
44 	DW_TAG_enumerator				= 0x28,
45 	DW_TAG_file_type				= 0x29,
46 	DW_TAG_friend					= 0x2a,
47 	DW_TAG_namelist					= 0x2b,
48 	DW_TAG_namelist_item			= 0x2c,
49 	DW_TAG_packed_type				= 0x2d,
50 	DW_TAG_subprogram				= 0x2e,
51 	DW_TAG_template_type_parameter	= 0x2f,
52 	DW_TAG_template_value_parameter	= 0x30,
53 	DW_TAG_thrown_type				= 0x31,
54 	DW_TAG_try_block				= 0x32,
55 	DW_TAG_variant_part				= 0x33,
56 	DW_TAG_variable					= 0x34,
57 	DW_TAG_volatile_type			= 0x35,
58 	DW_TAG_dwarf_procedure			= 0x36,
59 	DW_TAG_restrict_type			= 0x37,
60 	DW_TAG_interface_type			= 0x38,
61 	DW_TAG_namespace				= 0x39,
62 	DW_TAG_imported_module			= 0x3a,
63 	DW_TAG_unspecified_type			= 0x3b,
64 	DW_TAG_partial_unit				= 0x3c,
65 	DW_TAG_imported_unit			= 0x3d,
66 	DW_TAG_condition				= 0x3f,
67 	DW_TAG_shared_type				= 0x40,
68 	DW_TAG_type_unit				= 0x41,
69 	DW_TAG_rvalue_reference_type	= 0x42,
70 	DW_TAG_template_alias			= 0x43,
71 	DW_TAG_lo_user					= 0x4080,
72 	DW_TAG_GNU_template_template_param
73 									= 0x4106,
74 	DW_TAG_GNU_template_parameter_pack
75 									= 0x4107,
76 	DW_TAG_GNU_formal_parameter_pack
77 									= 0x4108,
78 	DW_TAG_GNU_call_site			= 0x4109,
79 	DW_TAG_GNU_call_site_parameter	= 0x410a,
80 	DW_TAG_hi_user					= 0xffff
81 };
82 
83 // has children flag value
84 enum {
85 	DW_CHILDREN_no	= 0x00,
86 	DW_CHILDREN_yes	= 0x01
87 };
88 
89 // attribute name
90 enum {
91 	DW_AT_sibling				= 0x01,		// reference
92 	DW_AT_location				= 0x02,		// block, loclistptr
93 	DW_AT_name					= 0x03,		// string
94 	DW_AT_ordering				= 0x09,		// constant
95 	DW_AT_byte_size				= 0x0b,		// block, constant, reference
96 	DW_AT_bit_offset			= 0x0c,		// block, constant, reference
97 	DW_AT_bit_size				= 0x0d,		// block, constant, reference
98 	DW_AT_stmt_list				= 0x10,		// lineptr
99 	DW_AT_low_pc				= 0x11,		// address
100 	DW_AT_high_pc				= 0x12,		// address
101 	DW_AT_language				= 0x13,		// constant
102 	DW_AT_discr					= 0x15,		// reference
103 	DW_AT_discr_value			= 0x16,		// constant
104 	DW_AT_visibility			= 0x17,		// constant
105 	DW_AT_import				= 0x18,		// reference
106 	DW_AT_string_length			= 0x19,		// block, loclistptr
107 	DW_AT_common_reference		= 0x1a,		// reference
108 	DW_AT_comp_dir				= 0x1b,		// string
109 	DW_AT_const_value			= 0x1c,		// block, constant, string
110 	DW_AT_containing_type		= 0x1d,		// reference
111 	DW_AT_default_value			= 0x1e,		// reference
112 	DW_AT_inline				= 0x20,		// constant
113 	DW_AT_is_optional			= 0x21,		// flag
114 	DW_AT_lower_bound			= 0x22,		// block, constant, reference
115 	DW_AT_producer				= 0x25,		// string
116 	DW_AT_prototyped			= 0x27,		// flag
117 	DW_AT_return_addr			= 0x2a,		// block, loclistptr
118 	DW_AT_start_scope			= 0x2c,		// constant
119 	DW_AT_bit_stride			= 0x2e,		// constant
120 	DW_AT_upper_bound			= 0x2f,		// block, constant, reference
121 	DW_AT_abstract_origin		= 0x31,		// reference
122 	DW_AT_accessibility			= 0x32,		// constant
123 	DW_AT_address_class			= 0x33,		// constant
124 	DW_AT_artificial			= 0x34,		// flag
125 	DW_AT_base_types			= 0x35,		// reference
126 	DW_AT_calling_convention	= 0x36,		// constant
127 	DW_AT_count					= 0x37,		// block, constant, reference
128 	DW_AT_data_member_location	= 0x38,		// block, constant, loclistptr
129 	DW_AT_decl_column			= 0x39,		// constant
130 	DW_AT_decl_file				= 0x3a,		// constant
131 	DW_AT_decl_line				= 0x3b,		// constant
132 	DW_AT_declaration			= 0x3c,		// flag
133 	DW_AT_discr_list			= 0x3d,		// block
134 	DW_AT_encoding				= 0x3e,		// constant
135 	DW_AT_external				= 0x3f,		// flag
136 	DW_AT_frame_base			= 0x40,		// block, loclistptr
137 	DW_AT_friend				= 0x41,		// reference
138 	DW_AT_identifier_case		= 0x42,		// constant
139 	DW_AT_macro_info			= 0x43,		// macptr
140 	DW_AT_namelist_item			= 0x44,		// block
141 	DW_AT_priority				= 0x45,		// reference
142 	DW_AT_segment				= 0x46,		// block, loclistptr
143 	DW_AT_specification			= 0x47,		// reference
144 	DW_AT_static_link			= 0x48,		// block, loclistptr
145 	DW_AT_type					= 0x49,		// reference
146 	DW_AT_use_location			= 0x4a,		// block, loclistptr
147 	DW_AT_variable_parameter	= 0x4b,		// flag
148 	DW_AT_virtuality			= 0x4c,		// constant
149 	DW_AT_vtable_elem_location	= 0x4d,		// block, loclistptr
150 	DW_AT_allocated				= 0x4e,		// block, constant, reference
151 	DW_AT_associated			= 0x4f,		// block, constant, reference
152 	DW_AT_data_location			= 0x50,		// block
153 	DW_AT_byte_stride			= 0x51,		// block, constant, reference
154 	DW_AT_entry_pc				= 0x52,		// address
155 	DW_AT_use_UTF8				= 0x53,		// flag
156 	DW_AT_extension				= 0x54,		// reference
157 	DW_AT_ranges				= 0x55,		// rangelistptr
158 	DW_AT_trampoline			= 0x56,		// address, flag, reference, string
159 	DW_AT_call_column			= 0x57,		// constant
160 	DW_AT_call_file				= 0x58,		// constant
161 	DW_AT_call_line				= 0x59,		// constant
162 	DW_AT_description			= 0x5a,		// string
163 	DW_AT_binary_scale			= 0x5b,		// constant
164 	DW_AT_decimal_scale			= 0x5c,		// constant
165 	DW_AT_small					= 0x5d,		// reference
166 	DW_AT_decimal_sign			= 0x5e,		// constant
167 	DW_AT_digit_count			= 0x5f,		// constant
168 	DW_AT_picture_string		= 0x60,		// string
169 	DW_AT_mutable				= 0x61,		// flag
170 	DW_AT_threads_scaled		= 0x62,		// flag
171 	DW_AT_explicit				= 0x63,		// flag
172 	DW_AT_object_pointer		= 0x64,		// reference
173 	DW_AT_endianity				= 0x65,		// constant
174 	DW_AT_elemental				= 0x66,		// flag
175 	DW_AT_pure					= 0x67,		// flag
176 	DW_AT_recursive				= 0x68,		// flag
177 	DW_AT_signature				= 0x69,		// reference
178 	DW_AT_main_subprogram		= 0x6a,		// flag
179 	DW_AT_data_bit_offset		= 0x6b,		// constant
180 	DW_AT_const_expr			= 0x6c,		// flag
181 	DW_AT_enum_class			= 0x6d,		// flag
182 	DW_AT_linkage_name			= 0x6e,		// string
183 	// TODO: proposed DWARF5 final values
184 /*	DW_AT_call_site_value		= 0x6f,		// exprloc
185 	DW_AT_call_site_data_value	= 0x70,		// exprloc
186 	DW_AT_call_site_target		= 0x71,		// exprloc
187 	DW_AT_call_site_target_clobbered
188 								= 0x72,		// exprloc
189 	DW_AT_tail_call				= 0x73,		// flag
190 	DW_AT_all_tail_call_sites	= 0x74,		// flag
191 	DW_AT_all_call_sites		= 0x75,		// flag
192 	DW_AT_all_source_call_sites	= 0x76,		// flag
193 */
194 	DW_AT_lo_user				= 0x2000,
195 	DW_AT_call_site_value		= 0x2111,	// exprloc
196 	DW_AT_call_site_data_value
197 								= 0x2112,	// exprloc
198 	DW_AT_call_site_target
199 								= 0x2113,	// exprloc
200 	DW_AT_call_site_target_clobbered
201 								= 0x2114,	// exprloc
202 	DW_AT_tail_call				= 0x2115,	// flag
203 	DW_AT_all_tail_call_sites
204 								= 0x2116,	// flag
205 	DW_AT_all_call_sites		= 0x2117,	// flag
206 	DW_AT_all_source_call_sites
207 								= 0x2118,	// flag
208 	DW_AT_hi_user				= 0x3fff
209 };
210 
211 // attribute form
212 enum {
213 	DW_FORM_addr		= 0x01,	// address
214 	DW_FORM_block2		= 0x03,	// block
215 	DW_FORM_block4		= 0x04,	// block
216 	DW_FORM_data2		= 0x05,	// constant
217 	DW_FORM_data4		= 0x06,	// constant, lineptr, loclistptr, macptr,
218 								// rangelistptr
219 	DW_FORM_data8		= 0x07,	// constant, lineptr, loclistptr, macptr,
220 								// rangelistptr
221 	DW_FORM_string		= 0x08,	// string
222 	DW_FORM_block		= 0x09,	// block
223 	DW_FORM_block1		= 0x0a,	// block
224 	DW_FORM_data1		= 0x0b,	// constant
225 	DW_FORM_flag		= 0x0c,	// flag
226 	DW_FORM_sdata		= 0x0d,	// constant
227 	DW_FORM_strp		= 0x0e,	// string
228 	DW_FORM_udata		= 0x0f,	// constant
229 	DW_FORM_ref_addr	= 0x10,	// reference
230 	DW_FORM_ref1		= 0x11,	// reference
231 	DW_FORM_ref2		= 0x12,	// reference
232 	DW_FORM_ref4		= 0x13,	// reference
233 	DW_FORM_ref8		= 0x14,	// reference
234 	DW_FORM_ref_udata	= 0x15,	// reference
235 	DW_FORM_indirect	= 0x16,	// form in .debug_info
236 	DW_FORM_sec_offset	= 0x17, // lineptr, loclistptr, macptr, rangelistptr
237 	DW_FORM_exprloc		= 0x18,	// dwarf expression
238 	DW_FORM_flag_present
239 						= 0x19,	// flag
240 	DW_FORM_ref_sig8	= 0x20	// reference
241 
242 };
243 
244 // expression operation
245 enum {
246 	DW_OP_addr					= 0x03,
247 	DW_OP_deref					= 0x06,
248 	DW_OP_const1u				= 0x08,
249 	DW_OP_const1s				= 0x09,
250 	DW_OP_const2u				= 0x0a,
251 	DW_OP_const2s				= 0x0b,
252 	DW_OP_const4u				= 0x0c,
253 	DW_OP_const4s				= 0x0d,
254 	DW_OP_const8u				= 0x0e,
255 	DW_OP_const8s				= 0x0f,
256 	DW_OP_constu				= 0x10,
257 	DW_OP_consts				= 0x11,
258 	DW_OP_dup					= 0x12,
259 	DW_OP_drop					= 0x13,
260 	DW_OP_over					= 0x14,
261 	DW_OP_pick					= 0x15,
262 	DW_OP_swap					= 0x16,
263 	DW_OP_rot					= 0x17,
264 	DW_OP_xderef				= 0x18,
265 	DW_OP_abs					= 0x19,
266 	DW_OP_and					= 0x1a,
267 	DW_OP_div					= 0x1b,
268 	DW_OP_minus					= 0x1c,
269 	DW_OP_mod					= 0x1d,
270 	DW_OP_mul					= 0x1e,
271 	DW_OP_neg					= 0x1f,
272 	DW_OP_not					= 0x20,
273 	DW_OP_or					= 0x21,
274 	DW_OP_plus					= 0x22,
275 	DW_OP_plus_uconst			= 0x23,
276 	DW_OP_shl					= 0x24,
277 	DW_OP_shr					= 0x25,
278 	DW_OP_shra					= 0x26,
279 	DW_OP_xor					= 0x27,
280 	DW_OP_skip					= 0x2f,
281 	DW_OP_bra					= 0x28,
282 	DW_OP_eq					= 0x29,
283 	DW_OP_ge					= 0x2a,
284 	DW_OP_gt					= 0x2b,
285 	DW_OP_le					= 0x2c,
286 	DW_OP_lt					= 0x2d,
287 	DW_OP_ne					= 0x2e,
288 	DW_OP_lit0					= 0x30,
289 	DW_OP_lit1					= 0x31,
290 	DW_OP_lit31					= 0x4f,
291 	DW_OP_reg0					= 0x50,
292 	DW_OP_reg1					= 0x51,
293 	DW_OP_reg31					= 0x6f,
294 	DW_OP_breg0					= 0x70,
295 	DW_OP_breg1					= 0x71,
296 	DW_OP_breg31				= 0x8f,
297 	DW_OP_regx					= 0x90,
298 	DW_OP_fbreg					= 0x91,
299 	DW_OP_bregx					= 0x92,
300 	DW_OP_piece					= 0x93,
301 	DW_OP_deref_size			= 0x94,
302 	DW_OP_xderef_size			= 0x95,
303 	DW_OP_nop					= 0x96,
304 	DW_OP_push_object_address	= 0x97,
305 	DW_OP_call2					= 0x98,
306 	DW_OP_call4					= 0x99,
307 	DW_OP_call_ref				= 0x9a,
308 	DW_OP_form_tls_address		= 0x9b,
309 	DW_OP_call_frame_cfa		= 0x9c,
310 	DW_OP_bit_piece				= 0x9d,
311 	DW_OP_implicit_value		= 0x9e,
312 	DW_OP_stack_value			= 0x9f,
313 	DW_OP_lo_user				= 0xe0,
314 	DW_OP_hi_user				= 0xff
315 };
316 
317 // base type
318 enum {
319 	DW_ATE_address			= 0x01,
320 	DW_ATE_boolean			= 0x02,
321 	DW_ATE_complex_float	= 0x03,
322 	DW_ATE_float			= 0x04,
323 	DW_ATE_signed			= 0x05,
324 	DW_ATE_signed_char		= 0x06,
325 	DW_ATE_unsigned			= 0x07,
326 	DW_ATE_unsigned_char	= 0x08,
327 	DW_ATE_imaginary_float	= 0x09,
328 	DW_ATE_packed_decimal	= 0x0a,
329 	DW_ATE_numeric_string	= 0x0b,
330 	DW_ATE_edited			= 0x0c,
331 	DW_ATE_signed_fixed		= 0x0d,
332 	DW_ATE_unsigned_fixed	= 0x0e,
333 	DW_ATE_decimal_float	= 0x0f,
334 	DW_ATE_lo_user			= 0x80,
335 	DW_ATE_hi_user			= 0xff
336 };
337 
338 // decimal sign
339 enum {
340 	DW_DS_unsigned				= 0x01,
341 	DW_DS_leading_overpunch		= 0x02,
342 	DW_DS_trailing_overpunch	= 0x03,
343 	DW_DS_leading_separate		= 0x04,
344 	DW_DS_trailing_separate		= 0x05
345 };
346 
347 // endianess
348 enum {
349 	DW_END_default		= 0x00,
350 	DW_END_big			= 0x01,
351 	DW_END_little		= 0x02,
352 	DW_END_lo_user		= 0x40,
353 	DW_END_hi_user		= 0xff
354 };
355 
356 // accessibility
357 enum {
358 	DW_ACCESS_public	= 0x01,
359 	DW_ACCESS_protected	= 0x02,
360 	DW_ACCESS_private	= 0x03
361 };
362 
363 // visibility
364 enum {
365 	DW_VIS_local		= 0x01,
366 	DW_VIS_exported		= 0x02,
367 	DW_VIS_qualified	= 0x03
368 };
369 
370 // virtuality
371 enum {
372 	DW_VIRTUALITY_none			= 0x00,
373 	DW_VIRTUALITY_virtual		= 0x01,
374 	DW_VIRTUALITY_pure_virtual	= 0x02
375 };
376 
377 // source language
378 enum {
379 	DW_LANG_C89				= 0x0001,
380 	DW_LANG_C				= 0x0002,
381 	DW_LANG_Ada83			= 0x0003,
382 	DW_LANG_C_plus_plus		= 0x0004,
383 	DW_LANG_Cobol74			= 0x0005,
384 	DW_LANG_Cobol85			= 0x0006,
385 	DW_LANG_Fortran77		= 0x0007,
386 	DW_LANG_Fortran90		= 0x0008,
387 	DW_LANG_Pascal83		= 0x0009,
388 	DW_LANG_Modula2			= 0x000a,
389 	DW_LANG_Java			= 0x000b,
390 	DW_LANG_C99				= 0x000c,
391 	DW_LANG_Ada95			= 0x000d,
392 	DW_LANG_Fortran95		= 0x000e,
393 	DW_LANG_PLI				= 0x000f,
394 	DW_LANG_ObjC			= 0x0010,
395 	DW_LANG_ObjC_plus_plus	= 0x0011,
396 	DW_LANG_UPC				= 0x0012,
397 	DW_LANG_D				= 0x0013,
398 	DW_LANG_lo_user			= 0x8000,
399 	DW_LANG_hi_user			= 0xffff
400 };
401 
402 // identifier case
403 enum {
404 	DW_ID_case_sensitive	= 0x00,
405 	DW_ID_up_case			= 0x01,
406 	DW_ID_down_case			= 0x02,
407 	DW_ID_case_insensitive	= 0x03
408 };
409 
410 // calling convention
411 enum {
412 	DW_CC_normal	= 0x01,
413 	DW_CC_program	= 0x02,
414 	DW_CC_nocall	= 0x03,
415 	DW_CC_lo_user	= 0x40,
416 	DW_CC_hi_user	= 0xff
417 };
418 
419 // inlining
420 enum {
421 	DW_INL_not_inlined			= 0x00,
422 	DW_INL_inlined				= 0x01,
423 	DW_INL_declared_not_inlined	= 0x02,
424 	DW_INL_declared_inlined		= 0x03
425 };
426 
427 // array ordering
428 enum {
429 	DW_ORD_row_major			= 0x00,
430 	DW_ORD_col_major			= 0x01
431 };
432 
433 // discriminant descriptor
434 enum {
435 	DW_DSC_label			= 0x00,
436 	DW_DSC_range			= 0x01
437 };
438 
439 // line number standard opcode
440 enum {
441 	DW_LNS_copy					= 0x01,
442 	DW_LNS_advance_pc			= 0x02,
443 	DW_LNS_advance_line			= 0x03,
444 	DW_LNS_set_file				= 0x04,
445 	DW_LNS_set_column			= 0x05,
446 	DW_LNS_negate_stmt			= 0x06,
447 	DW_LNS_set_basic_block		= 0x07,
448 	DW_LNS_const_add_pc			= 0x08,
449 	DW_LNS_fixed_advance_pc		= 0x09,
450 	DW_LNS_set_prologue_end		= 0x0a,
451 	DW_LNS_set_epilogue_begin	= 0x0b,
452 	DW_LNS_set_isa				= 0x0c
453 };
454 
455 // line number extended opcode
456 enum {
457 	DW_LNE_end_sequence			= 0x01,
458 	DW_LNE_set_address			= 0x02,
459 	DW_LNE_define_file			= 0x03,
460 	DW_LNE_set_discriminator 	= 0x04,
461 	DW_LNE_lo_user				= 0x80,
462 	DW_LNE_hi_user				= 0xff
463 };
464 
465 // macro information type
466 enum {
467 	DW_MACINFO_define		= 0x01,
468 	DW_MACINFO_undef		= 0x02,
469 	DW_MACINFO_start_file	= 0x03,
470 	DW_MACINFO_end_file		= 0x04,
471 	DW_MACINFO_vendor_ext	= 0xff
472 };
473 
474 // call frame instruction (high 2 bits for the first 3 items, low 6 bits for
475 // the remaining ones)
476 enum {
477 	DW_CFA_advance_loc			= 0x1,	// high 2 bits
478 	DW_CFA_offset				= 0x2,	// high 2 bits
479 	DW_CFA_restore				= 0x3,	// high 2 bits
480 	DW_CFA_nop					= 0,	// whole byte
481 	DW_CFA_set_loc				= 0x01,
482 	DW_CFA_advance_loc1			= 0x02,
483 	DW_CFA_advance_loc2			= 0x03,
484 	DW_CFA_advance_loc4			= 0x04,
485 	DW_CFA_offset_extended		= 0x05,
486 	DW_CFA_restore_extended		= 0x06,
487 	DW_CFA_undefined			= 0x07,
488 	DW_CFA_same_value			= 0x08,
489 	DW_CFA_register				= 0x09,
490 	DW_CFA_remember_state		= 0x0a,
491 	DW_CFA_restore_state		= 0x0b,
492 	DW_CFA_def_cfa				= 0x0c,
493 	DW_CFA_def_cfa_register		= 0x0d,
494 	DW_CFA_def_cfa_offset		= 0x0e,
495 	DW_CFA_def_cfa_expression	= 0x0f,
496 	DW_CFA_expression			= 0x10,
497 	DW_CFA_offset_extended_sf	= 0x11,
498 	DW_CFA_def_cfa_sf			= 0x12,
499 	DW_CFA_def_cfa_offset_sf	= 0x13,
500 	DW_CFA_val_offset			= 0x14,
501 	DW_CFA_val_offset_sf		= 0x15,
502 	DW_CFA_val_expression		= 0x16,
503 	DW_CFA_lo_user				= 0x1c,
504 	DW_CFA_hi_user				= 0x3f,
505 
506 	// extensions
507     DW_CFA_MIPS_advance_loc8	= 0x1d,
508     DW_CFA_GNU_window_save		= 0x2d,
509     DW_CFA_GNU_args_size		= 0x2e,
510     DW_CFA_GNU_negative_offset_extended	= 0x2f
511 };
512 
513 
514 enum dwarf_reference_type {
515 	dwarf_reference_type_local = 0,
516 	dwarf_reference_type_global,
517 	dwarf_reference_type_signature
518 };
519 
520 
521 #endif	// DWARF_H
522