1260684Skaiw/*- 2260684Skaiw * Copyright (c) 2007 John Birrell (jb@freebsd.org) 3260684Skaiw * Copyright (c) 2009 Kai Wang 4260684Skaiw * All rights reserved. 5260684Skaiw * 6260684Skaiw * Redistribution and use in source and binary forms, with or without 7260684Skaiw * modification, are permitted provided that the following conditions 8260684Skaiw * are met: 9260684Skaiw * 1. Redistributions of source code must retain the above copyright 10260684Skaiw * notice, this list of conditions and the following disclaimer. 11260684Skaiw * 2. Redistributions in binary form must reproduce the above copyright 12260684Skaiw * notice, this list of conditions and the following disclaimer in the 13260684Skaiw * documentation and/or other materials provided with the distribution. 14260684Skaiw * 15260684Skaiw * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16260684Skaiw * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17260684Skaiw * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18260684Skaiw * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19260684Skaiw * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20260684Skaiw * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21260684Skaiw * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22260684Skaiw * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23260684Skaiw * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24260684Skaiw * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25260684Skaiw * SUCH DAMAGE. 26260684Skaiw */ 27260684Skaiw 28260684Skaiw#include "_libdwarf.h" 29260684Skaiw 30367466SdimELFTC_VCSID("$Id: dwarf_dump.c 3749 2019-06-28 01:10:44Z emaste $"); 31260684Skaiw 32260684Skaiwint 33260684Skaiwdwarf_get_ACCESS_name(unsigned access, const char **s) 34260684Skaiw{ 35260684Skaiw 36260684Skaiw assert(s != NULL); 37260684Skaiw 38260684Skaiw switch (access) { 39260684Skaiw case DW_ACCESS_public: 40260684Skaiw *s = "DW_ACCESS_public"; break; 41260684Skaiw case DW_ACCESS_protected: 42260684Skaiw *s = "DW_ACCESS_protected"; break; 43260684Skaiw case DW_ACCESS_private: 44260684Skaiw *s = "DW_ACCESS_private"; break; 45260684Skaiw default: 46260684Skaiw return (DW_DLV_NO_ENTRY); 47260684Skaiw } 48260684Skaiw 49260684Skaiw return (DW_DLV_OK); 50260684Skaiw} 51260684Skaiw 52260684Skaiwint 53260684Skaiwdwarf_get_AT_name(unsigned attr, const char **s) 54260684Skaiw{ 55260684Skaiw 56260684Skaiw assert(s != NULL); 57260684Skaiw 58260684Skaiw switch (attr) { 59260684Skaiw case DW_AT_abstract_origin: 60260684Skaiw *s = "DW_AT_abstract_origin"; break; 61260684Skaiw case DW_AT_accessibility: 62260684Skaiw *s = "DW_AT_accessibility"; break; 63260684Skaiw case DW_AT_address_class: 64260684Skaiw *s = "DW_AT_address_class"; break; 65260684Skaiw case DW_AT_artificial: 66260684Skaiw *s = "DW_AT_artificial"; break; 67260684Skaiw case DW_AT_allocated: 68260684Skaiw *s = "DW_AT_allocated"; break; 69260684Skaiw case DW_AT_associated: 70260684Skaiw *s = "DW_AT_associated"; break; 71260684Skaiw case DW_AT_base_types: 72260684Skaiw *s = "DW_AT_base_types"; break; 73260684Skaiw case DW_AT_binary_scale: 74260684Skaiw *s = "DW_AT_binary_scale"; break; 75260684Skaiw case DW_AT_bit_offset: 76260684Skaiw *s = "DW_AT_bit_offset"; break; 77260684Skaiw case DW_AT_bit_size: 78260684Skaiw *s = "DW_AT_bit_size"; break; 79260684Skaiw case DW_AT_bit_stride: 80260684Skaiw *s = "DW_AT_bit_stride"; break; 81260684Skaiw case DW_AT_byte_size: 82260684Skaiw *s = "DW_AT_byte_size"; break; 83260684Skaiw case DW_AT_byte_stride: 84260684Skaiw *s = "DW_AT_byte_stride"; break; 85260684Skaiw case DW_AT_calling_convention: 86260684Skaiw *s = "DW_AT_calling_convention"; break; 87260684Skaiw case DW_AT_common_reference: 88260684Skaiw *s = "DW_AT_common_reference"; break; 89260684Skaiw case DW_AT_comp_dir: 90260684Skaiw *s = "DW_AT_comp_dir"; break; 91260684Skaiw case DW_AT_const_expr: 92260684Skaiw *s = "DW_AT_const_expr"; break; 93260684Skaiw case DW_AT_const_value: 94260684Skaiw *s = "DW_AT_const_value"; break; 95260684Skaiw case DW_AT_containing_type: 96260684Skaiw *s = "DW_AT_containing_type"; break; 97260684Skaiw case DW_AT_count: 98260684Skaiw *s = "DW_AT_count"; break; 99260684Skaiw case DW_AT_call_column: 100260684Skaiw *s = "DW_AT_call_column"; break; 101260684Skaiw case DW_AT_call_file: 102260684Skaiw *s = "DW_AT_call_file"; break; 103260684Skaiw case DW_AT_call_line: 104260684Skaiw *s = "DW_AT_call_line"; break; 105260684Skaiw case DW_AT_data_bit_offset: 106260684Skaiw *s = "DW_AT_data_bit_offset"; break; 107260684Skaiw case DW_AT_data_location: 108260684Skaiw *s = "DW_AT_data_location"; break; 109260684Skaiw case DW_AT_data_member_location: 110260684Skaiw *s = "DW_AT_data_member_location"; break; 111260684Skaiw case DW_AT_decl_column: 112260684Skaiw *s = "DW_AT_decl_column"; break; 113260684Skaiw case DW_AT_decl_file: 114260684Skaiw *s = "DW_AT_decl_file"; break; 115260684Skaiw case DW_AT_decl_line: 116260684Skaiw *s = "DW_AT_decl_line"; break; 117260684Skaiw case DW_AT_declaration: 118260684Skaiw *s = "DW_AT_declaration"; break; 119260684Skaiw case DW_AT_default_value: 120260684Skaiw *s = "DW_AT_default_value"; break; 121260684Skaiw case DW_AT_decimal_scale: 122260684Skaiw *s = "DW_AT_decimal_scale"; break; 123260684Skaiw case DW_AT_decimal_sign: 124260684Skaiw *s = "DW_AT_decimal_sign"; break; 125260684Skaiw case DW_AT_description: 126260684Skaiw *s = "DW_AT_description"; break; 127260684Skaiw case DW_AT_digit_count: 128260684Skaiw *s = "DW_AT_digit_count"; break; 129260684Skaiw case DW_AT_discr: 130260684Skaiw *s = "DW_AT_discr"; break; 131260684Skaiw case DW_AT_discr_list: 132260684Skaiw *s = "DW_AT_discr_list"; break; 133260684Skaiw case DW_AT_discr_value: 134260684Skaiw *s = "DW_AT_discr_value"; break; 135260684Skaiw case DW_AT_element_list: 136260684Skaiw *s = "DW_AT_element_list"; break; 137260684Skaiw case DW_AT_encoding: 138260684Skaiw *s = "DW_AT_encoding"; break; 139260684Skaiw case DW_AT_enum_class: 140260684Skaiw *s = "DW_AT_enum_class"; break; 141260684Skaiw case DW_AT_external: 142260684Skaiw *s = "DW_AT_external"; break; 143260684Skaiw case DW_AT_entry_pc: 144260684Skaiw *s = "DW_AT_entry_pc"; break; 145260684Skaiw case DW_AT_extension: 146260684Skaiw *s = "DW_AT_extension"; break; 147260684Skaiw case DW_AT_explicit: 148260684Skaiw *s = "DW_AT_explicit"; break; 149260684Skaiw case DW_AT_endianity: 150260684Skaiw *s = "DW_AT_endianity"; break; 151260684Skaiw case DW_AT_elemental: 152260684Skaiw *s = "DW_AT_elemental"; break; 153260684Skaiw case DW_AT_frame_base: 154260684Skaiw *s = "DW_AT_frame_base"; break; 155260684Skaiw case DW_AT_friend: 156260684Skaiw *s = "DW_AT_friend"; break; 157260684Skaiw case DW_AT_high_pc: 158260684Skaiw *s = "DW_AT_high_pc"; break; 159260684Skaiw case DW_AT_hi_user: 160260684Skaiw *s = "DW_AT_hi_user"; break; 161260684Skaiw case DW_AT_identifier_case: 162260684Skaiw *s = "DW_AT_identifier_case"; break; 163260684Skaiw case DW_AT_import: 164260684Skaiw *s = "DW_AT_import"; break; 165260684Skaiw case DW_AT_inline: 166260684Skaiw *s = "DW_AT_inline"; break; 167260684Skaiw case DW_AT_is_optional: 168260684Skaiw *s = "DW_AT_is_optional"; break; 169260684Skaiw case DW_AT_language: 170260684Skaiw *s = "DW_AT_language"; break; 171260684Skaiw case DW_AT_linkage_name: 172260684Skaiw *s = "DW_AT_linkage_name"; break; 173260684Skaiw case DW_AT_lo_user: 174260684Skaiw *s = "DW_AT_lo_user"; break; 175260684Skaiw case DW_AT_location: 176260684Skaiw *s = "DW_AT_location"; break; 177260684Skaiw case DW_AT_low_pc: 178260684Skaiw *s = "DW_AT_low_pc"; break; 179260684Skaiw case DW_AT_lower_bound: 180260684Skaiw *s = "DW_AT_lower_bound"; break; 181260684Skaiw case DW_AT_macro_info: 182260684Skaiw *s = "DW_AT_macro_info"; break; 183260684Skaiw case DW_AT_main_subprogram: 184260684Skaiw *s = "DW_AT_main_subprogram"; break; 185260684Skaiw case DW_AT_mutable: 186260684Skaiw *s = "DW_AT_mutable"; break; 187260684Skaiw case DW_AT_member: 188260684Skaiw *s = "DW_AT_member"; break; 189260684Skaiw case DW_AT_name: 190260684Skaiw *s = "DW_AT_name"; break; 191260684Skaiw case DW_AT_namelist_item: 192260684Skaiw *s = "DW_AT_namelist_item"; break; 193260684Skaiw case DW_AT_ordering: 194260684Skaiw *s = "DW_AT_ordering"; break; 195260684Skaiw case DW_AT_object_pointer: 196260684Skaiw *s = "DW_AT_object_pointer"; break; 197260684Skaiw case DW_AT_priority: 198260684Skaiw *s = "DW_AT_priority"; break; 199260684Skaiw case DW_AT_producer: 200260684Skaiw *s = "DW_AT_producer"; break; 201260684Skaiw case DW_AT_prototyped: 202260684Skaiw *s = "DW_AT_prototyped"; break; 203260684Skaiw case DW_AT_picture_string: 204260684Skaiw *s = "DW_AT_picture_string"; break; 205260684Skaiw case DW_AT_pure: 206260684Skaiw *s = "DW_AT_pure"; break; 207260684Skaiw case DW_AT_return_addr: 208260684Skaiw *s = "DW_AT_return_addr"; break; 209260684Skaiw case DW_AT_ranges: 210260684Skaiw *s = "DW_AT_ranges"; break; 211260684Skaiw case DW_AT_recursive: 212260684Skaiw *s = "DW_AT_recursive"; break; 213260684Skaiw case DW_AT_segment: 214260684Skaiw *s = "DW_AT_segment"; break; 215260684Skaiw case DW_AT_sibling: 216260684Skaiw *s = "DW_AT_sibling"; break; 217260684Skaiw case DW_AT_signature: 218260684Skaiw *s = "DW_AT_signature"; break; 219260684Skaiw case DW_AT_specification: 220260684Skaiw *s = "DW_AT_specification"; break; 221260684Skaiw case DW_AT_start_scope: 222260684Skaiw *s = "DW_AT_start_scope"; break; 223260684Skaiw case DW_AT_static_link: 224260684Skaiw *s = "DW_AT_static_link"; break; 225260684Skaiw case DW_AT_stmt_list: 226260684Skaiw *s = "DW_AT_stmt_list"; break; 227260684Skaiw case DW_AT_string_length: 228260684Skaiw *s = "DW_AT_string_length"; break; 229260684Skaiw case DW_AT_subscr_data: 230260684Skaiw *s = "DW_AT_subscr_data"; break; 231260684Skaiw case DW_AT_small: 232260684Skaiw *s = "DW_AT_small"; break; 233260684Skaiw case DW_AT_type: 234260684Skaiw *s = "DW_AT_type"; break; 235260684Skaiw case DW_AT_trampoline: 236260684Skaiw *s = "DW_AT_trampoline"; break; 237260684Skaiw case DW_AT_threads_scaled: 238260684Skaiw *s = "DW_AT_threads_scaled"; break; 239260684Skaiw case DW_AT_upper_bound: 240260684Skaiw *s = "DW_AT_upper_bound"; break; 241260684Skaiw case DW_AT_use_location: 242260684Skaiw *s = "DW_AT_use_location"; break; 243260684Skaiw case DW_AT_use_UTF8: 244260684Skaiw *s = "DW_AT_use_UTF8"; break; 245260684Skaiw case DW_AT_variable_parameter: 246260684Skaiw *s = "DW_AT_variable_parameter"; break; 247260684Skaiw case DW_AT_virtuality: 248260684Skaiw *s = "DW_AT_virtuality"; break; 249260684Skaiw case DW_AT_visibility: 250260684Skaiw *s = "DW_AT_visibility"; break; 251260684Skaiw case DW_AT_vtable_elem_location: 252260684Skaiw *s = "DW_AT_vtable_elem_location"; break; 253276371Semaste case DW_AT_sf_names: 254276371Semaste *s = "DW_AT_sf_names"; break; 255276371Semaste case DW_AT_src_info: 256276371Semaste *s = "DW_AT_src_info"; break; 257276371Semaste case DW_AT_mac_info: 258276371Semaste *s = "DW_AT_mac_info"; break; 259276371Semaste case DW_AT_src_coords: 260276371Semaste *s = "DW_AT_src_coords"; break; 261276371Semaste case DW_AT_body_begin: 262276371Semaste *s = "DW_AT_body_begin"; break; 263276371Semaste case DW_AT_body_end: 264276371Semaste *s = "DW_AT_body_end"; break; 265317623Semaste case DW_AT_MIPS_fde: 266317623Semaste *s = "DW_AT_MIPS_fde"; break; 267317623Semaste case DW_AT_MIPS_loop_begin: 268317623Semaste *s = "DW_AT_MIPS_loop_begin"; break; 269317623Semaste case DW_AT_MIPS_tail_loop_begin: 270317623Semaste *s = "DW_AT_MIPS_tail_loop_begin"; break; 271317623Semaste case DW_AT_MIPS_epilog_begin: 272317623Semaste *s = "DW_AT_MIPS_epilog_begin"; break; 273317623Semaste case DW_AT_MIPS_loop_unroll_factor: 274317623Semaste *s = "DW_AT_MIPS_loop_unroll_factor"; break; 275317623Semaste case DW_AT_MIPS_software_pipeline_depth: 276317623Semaste *s = "DW_AT_MIPS_software_pipeline_depth"; break; 277317623Semaste case DW_AT_MIPS_linkage_name: 278317623Semaste *s = "DW_AT_MIPS_linkage_name"; break; 279317623Semaste case DW_AT_MIPS_stride: 280317623Semaste *s = "DW_AT_MIPS_stride"; break; 281317623Semaste case DW_AT_MIPS_abstract_name: 282317623Semaste *s = "DW_AT_MIPS_abstract_name"; break; 283317623Semaste case DW_AT_MIPS_clone_origin: 284317623Semaste *s = "DW_AT_MIPS_clone_origin"; break; 285317623Semaste case DW_AT_MIPS_has_inlines: 286317623Semaste *s = "DW_AT_MIPS_has_inlines"; break; 287317623Semaste case DW_AT_MIPS_stride_byte: 288317623Semaste *s = "DW_AT_MIPS_stride_byte"; break; 289317623Semaste case DW_AT_MIPS_stride_elem: 290317623Semaste *s = "DW_AT_MIPS_stride_elem"; break; 291317623Semaste case DW_AT_MIPS_ptr_dopetype: 292317623Semaste *s = "DW_AT_MIPS_ptr_dopetype"; break; 293317623Semaste case DW_AT_MIPS_allocatable_dopetype: 294317623Semaste *s = "DW_AT_MIPS_allocatable_dopetype"; break; 295317623Semaste case DW_AT_MIPS_assumed_shape_dopetype: 296317623Semaste *s = "DW_AT_MIPS_assumed_shape_dopetype"; break; 297317623Semaste case DW_AT_MIPS_assumed_size: 298317623Semaste *s = "DW_AT_MIPS_assumed_size"; break; 299276371Semaste case DW_AT_GNU_vector: 300276371Semaste *s = "DW_AT_GNU_vector"; break; 301276371Semaste case DW_AT_GNU_guarded_by: 302276371Semaste *s = "DW_AT_GNU_guarded_by"; break; 303276371Semaste case DW_AT_GNU_pt_guarded_by: 304276371Semaste *s = "DW_AT_GNU_pt_guarded_by"; break; 305276371Semaste case DW_AT_GNU_guarded: 306276371Semaste *s = "DW_AT_GNU_guarded"; break; 307276371Semaste case DW_AT_GNU_pt_guarded: 308276371Semaste *s = "DW_AT_GNU_pt_guarded"; break; 309276371Semaste case DW_AT_GNU_locks_excluded: 310276371Semaste *s = "DW_AT_GNU_locks_excluded"; break; 311276371Semaste case DW_AT_GNU_exclusive_locks_required: 312276371Semaste *s = "DW_AT_GNU_exclusive_locks_required"; break; 313276371Semaste case DW_AT_GNU_shared_locks_required: 314276371Semaste *s = "DW_AT_GNU_shared_locks_required"; break; 315276371Semaste case DW_AT_GNU_odr_signature: 316276371Semaste *s = "DW_AT_GNU_odr_signature"; break; 317276371Semaste case DW_AT_GNU_template_name: 318276371Semaste *s = "DW_AT_GNU_template_name"; break; 319276371Semaste case DW_AT_GNU_call_site_value: 320276371Semaste *s = "DW_AT_GNU_call_site_value"; break; 321276371Semaste case DW_AT_GNU_call_site_data_value: 322276371Semaste *s = "DW_AT_GNU_call_site_data_value"; break; 323276371Semaste case DW_AT_GNU_call_site_target: 324276371Semaste *s = "DW_AT_GNU_call_site_target"; break; 325276371Semaste case DW_AT_GNU_call_site_target_clobbered: 326276371Semaste *s = "DW_AT_GNU_call_site_target_clobbered"; break; 327276371Semaste case DW_AT_GNU_tail_call: 328276371Semaste *s = "DW_AT_GNU_tail_call"; break; 329276371Semaste case DW_AT_GNU_all_tail_call_sites: 330276371Semaste *s = "DW_AT_GNU_all_tail_call_sites"; break; 331276371Semaste case DW_AT_GNU_all_call_sites: 332276371Semaste *s = "DW_AT_GNU_all_call_sites"; break; 333276371Semaste case DW_AT_GNU_all_source_call_sites: 334276371Semaste *s = "DW_AT_GNU_all_source_call_sites"; break; 335306372Smarkj case DW_AT_APPLE_optimized: 336306372Smarkj *s = "DW_AT_APPLE_optimized"; break; 337306372Smarkj case DW_AT_APPLE_flags: 338306372Smarkj *s = "DW_AT_APPLE_flags"; break; 339306372Smarkj case DW_AT_APPLE_isa: 340306372Smarkj *s = "DW_AT_APPLE_isa"; break; 341306372Smarkj case DW_AT_APPLE_block: 342306372Smarkj *s = "DW_AT_APPLE_block"; break; 343306372Smarkj case DW_AT_APPLE_major_runtime_vers: 344306372Smarkj *s = "DW_AT_APPLE_major_runtime_vers"; break; 345306372Smarkj case DW_AT_APPLE_runtime_class: 346306372Smarkj *s = "DW_AT_APPLE_runtime_class"; break; 347306372Smarkj case DW_AT_APPLE_omit_frame_ptr: 348306372Smarkj *s = "DW_AT_APPLE_omit_frame_ptr"; break; 349306372Smarkj case DW_AT_APPLE_property_name: 350306372Smarkj *s = "DW_AT_APPLE_property_name"; break; 351306372Smarkj case DW_AT_APPLE_property_getter: 352306372Smarkj *s = "DW_AT_APPLE_property_getter"; break; 353306372Smarkj case DW_AT_APPLE_property_setter: 354306372Smarkj *s = "DW_AT_APPLE_property_setter"; break; 355306372Smarkj case DW_AT_APPLE_property_attribute: 356306372Smarkj *s = "DW_AT_APPLE_property_attribute"; break; 357306372Smarkj case DW_AT_APPLE_objc_complete_type: 358306372Smarkj *s = "DW_AT_APPLE_objc_complete_type"; break; 359306372Smarkj case DW_AT_APPLE_property: 360306372Smarkj *s = "DW_AT_APPLE_property"; break; 361260684Skaiw default: 362260684Skaiw return (DW_DLV_NO_ENTRY); 363260684Skaiw } 364260684Skaiw 365260684Skaiw return (DW_DLV_OK); 366260684Skaiw} 367260684Skaiw 368260684Skaiwint 369260684Skaiwdwarf_get_ATE_name(unsigned ate, const char **s) 370260684Skaiw{ 371260684Skaiw 372260684Skaiw assert(s != NULL); 373260684Skaiw 374260684Skaiw switch(ate) { 375260684Skaiw case DW_ATE_address: 376260684Skaiw *s = "DW_ATE_address"; break; 377260684Skaiw case DW_ATE_boolean: 378260684Skaiw *s = "DW_ATE_boolean"; break; 379260684Skaiw case DW_ATE_complex_float: 380260684Skaiw *s = "DW_ATE_complex_float"; break; 381260684Skaiw case DW_ATE_float: 382260684Skaiw *s = "DW_ATE_float"; break; 383260684Skaiw case DW_ATE_signed: 384260684Skaiw *s = "DW_ATE_signed"; break; 385260684Skaiw case DW_ATE_signed_char: 386260684Skaiw *s = "DW_ATE_signed_char"; break; 387260684Skaiw case DW_ATE_unsigned: 388260684Skaiw *s = "DW_ATE_unsigned"; break; 389260684Skaiw case DW_ATE_unsigned_char: 390260684Skaiw *s = "DW_ATE_unsigned_char"; break; 391260684Skaiw case DW_ATE_imaginary_float: 392260684Skaiw *s = "DW_ATE_imaginary_float"; break; 393260684Skaiw case DW_ATE_packed_decimal: 394260684Skaiw *s = "DW_ATE_packed_decimal"; break; 395260684Skaiw case DW_ATE_numeric_string: 396260684Skaiw *s = "DW_ATE_numeric_string"; break; 397260684Skaiw case DW_ATE_edited: 398260684Skaiw *s = "DW_ATE_edited"; break; 399260684Skaiw case DW_ATE_signed_fixed: 400260684Skaiw *s = "DW_ATE_signed_fixed"; break; 401260684Skaiw case DW_ATE_unsigned_fixed: 402260684Skaiw *s = "DW_ATE_unsigned_fixed"; break; 403260684Skaiw case DW_ATE_decimal_float: 404260684Skaiw *s = "DW_ATE_decimal_float"; break; 405260684Skaiw case DW_ATE_lo_user: 406260684Skaiw *s = "DW_ATE_lo_user"; break; 407260684Skaiw case DW_ATE_hi_user: 408260684Skaiw *s = "DW_ATE_hi_user"; break; 409260684Skaiw default: 410260684Skaiw return (DW_DLV_NO_ENTRY); 411260684Skaiw } 412260684Skaiw 413260684Skaiw return (DW_DLV_OK); 414260684Skaiw} 415260684Skaiw 416260684Skaiwint 417260684Skaiwdwarf_get_CC_name(unsigned cc, const char **s) 418260684Skaiw{ 419260684Skaiw 420260684Skaiw assert(s != NULL); 421260684Skaiw 422260684Skaiw switch (cc) { 423260684Skaiw case DW_CC_normal: 424260684Skaiw *s = "DW_CC_normal"; break; 425260684Skaiw case DW_CC_program: 426260684Skaiw *s = "DW_CC_program"; break; 427260684Skaiw case DW_CC_nocall: 428260684Skaiw *s = "DW_CC_nocall"; break; 429260684Skaiw case DW_CC_lo_user: 430260684Skaiw *s = "DW_CC_lo_user"; break; 431260684Skaiw case DW_CC_hi_user: 432260684Skaiw *s = "DW_CC_hi_user"; break; 433260684Skaiw default: 434260684Skaiw return (DW_DLV_NO_ENTRY); 435260684Skaiw } 436260684Skaiw 437260684Skaiw return (DW_DLV_OK); 438260684Skaiw} 439260684Skaiw 440260684Skaiwint 441260684Skaiwdwarf_get_CFA_name(unsigned cfa, const char **s) 442260684Skaiw{ 443260684Skaiw 444260684Skaiw assert(s != NULL); 445260684Skaiw 446260684Skaiw switch (cfa) { 447260684Skaiw case DW_CFA_advance_loc: 448260684Skaiw *s = "DW_CFA_advance_loc"; break; 449260684Skaiw case DW_CFA_offset: 450260684Skaiw *s = "DW_CFA_offset"; break; 451260684Skaiw case DW_CFA_restore: 452260684Skaiw *s = "DW_CFA_restore"; break; 453260684Skaiw case DW_CFA_nop: 454260684Skaiw *s = "DW_CFA_nop"; break; 455260684Skaiw case DW_CFA_set_loc: 456260684Skaiw *s = "DW_CFA_set_loc"; break; 457260684Skaiw case DW_CFA_advance_loc1: 458260684Skaiw *s = "DW_CFA_advance_loc1"; break; 459260684Skaiw case DW_CFA_advance_loc2: 460260684Skaiw *s = "DW_CFA_advance_loc2"; break; 461260684Skaiw case DW_CFA_advance_loc4: 462260684Skaiw *s = "DW_CFA_advance_loc4"; break; 463260684Skaiw case DW_CFA_offset_extended: 464260684Skaiw *s = "DW_CFA_offset_extended"; break; 465260684Skaiw case DW_CFA_restore_extended: 466260684Skaiw *s = "DW_CFA_restore_extended"; break; 467260684Skaiw case DW_CFA_undefined: 468260684Skaiw *s = "DW_CFA_undefined"; break; 469260684Skaiw case DW_CFA_same_value: 470260684Skaiw *s = "DW_CFA_same_value"; break; 471260684Skaiw case DW_CFA_register: 472260684Skaiw *s = "DW_CFA_register"; break; 473260684Skaiw case DW_CFA_remember_state: 474260684Skaiw *s = "DW_CFA_remember_state"; break; 475260684Skaiw case DW_CFA_restore_state: 476260684Skaiw *s = "DW_CFA_restore_state"; break; 477260684Skaiw case DW_CFA_def_cfa: 478260684Skaiw *s = "DW_CFA_def_cfa"; break; 479260684Skaiw case DW_CFA_def_cfa_register: 480260684Skaiw *s = "DW_CFA_def_cfa_register"; break; 481260684Skaiw case DW_CFA_def_cfa_offset: 482260684Skaiw *s = "DW_CFA_def_cfa_offset"; break; 483260684Skaiw case DW_CFA_def_cfa_expression: 484260684Skaiw *s = "DW_CFA_def_cfa_expression"; break; 485260684Skaiw case DW_CFA_expression: 486260684Skaiw *s = "DW_CFA_expression"; break; 487260684Skaiw case DW_CFA_offset_extended_sf: 488260684Skaiw *s = "DW_CFA_offset_extended_sf"; break; 489260684Skaiw case DW_CFA_def_cfa_sf: 490260684Skaiw *s = "DW_CFA_def_cfa_sf"; break; 491260684Skaiw case DW_CFA_def_cfa_offset_sf: 492260684Skaiw *s = "DW_CFA_def_cfa_offset_sf"; break; 493260684Skaiw case DW_CFA_val_offset: 494260684Skaiw *s = "DW_CFA_val_offset"; break; 495260684Skaiw case DW_CFA_val_offset_sf: 496260684Skaiw *s = "DW_CFA_val_offset_sf"; break; 497260684Skaiw case DW_CFA_val_expression: 498260684Skaiw *s = "DW_CFA_val_expression"; break; 499260684Skaiw case DW_CFA_lo_user: 500260684Skaiw *s = "DW_CFA_lo_user"; break; 501260684Skaiw case DW_CFA_high_user: 502260684Skaiw *s = "DW_CFA_high_user"; break; 503260684Skaiw default: 504260684Skaiw return (DW_DLV_NO_ENTRY); 505260684Skaiw } 506260684Skaiw 507260684Skaiw return (DW_DLV_OK); 508260684Skaiw} 509260684Skaiw 510260684Skaiwint 511260684Skaiwdwarf_get_CHILDREN_name(unsigned children, const char **s) 512260684Skaiw{ 513260684Skaiw 514260684Skaiw assert(s != NULL); 515260684Skaiw 516260684Skaiw switch (children) { 517260684Skaiw case DW_CHILDREN_no: 518260684Skaiw *s = "DW_CHILDREN_no"; break; 519260684Skaiw case DW_CHILDREN_yes: 520260684Skaiw *s = "DW_CHILDREN_yes"; break; 521260684Skaiw default: 522260684Skaiw return (DW_DLV_NO_ENTRY); 523260684Skaiw } 524260684Skaiw 525260684Skaiw return (DW_DLV_OK); 526260684Skaiw} 527260684Skaiw 528260684Skaiwint 529260684Skaiwdwarf_get_FORM_name(unsigned form, const char **s) 530260684Skaiw{ 531260684Skaiw 532260684Skaiw assert(s != NULL); 533260684Skaiw 534260684Skaiw switch (form) { 535260684Skaiw case DW_FORM_addr: 536260684Skaiw *s = "DW_FORM_addr"; break; 537260684Skaiw case DW_FORM_block: 538260684Skaiw *s = "DW_FORM_block"; break; 539260684Skaiw case DW_FORM_block1: 540260684Skaiw *s = "DW_FORM_block1"; break; 541260684Skaiw case DW_FORM_block2: 542260684Skaiw *s = "DW_FORM_block2"; break; 543260684Skaiw case DW_FORM_block4: 544260684Skaiw *s = "DW_FORM_block4"; break; 545260684Skaiw case DW_FORM_data1: 546260684Skaiw *s = "DW_FORM_data1"; break; 547260684Skaiw case DW_FORM_data2: 548260684Skaiw *s = "DW_FORM_data2"; break; 549260684Skaiw case DW_FORM_data4: 550260684Skaiw *s = "DW_FORM_data4"; break; 551260684Skaiw case DW_FORM_data8: 552260684Skaiw *s = "DW_FORM_data8"; break; 553260684Skaiw case DW_FORM_exprloc: 554260684Skaiw *s = "DW_FORM_exprloc"; break; 555260684Skaiw case DW_FORM_flag: 556260684Skaiw *s = "DW_FORM_flag"; break; 557260684Skaiw case DW_FORM_flag_present: 558260684Skaiw *s = "DW_FORM_flag_present"; break; 559260684Skaiw case DW_FORM_indirect: 560260684Skaiw *s = "DW_FORM_indirect"; break; 561260684Skaiw case DW_FORM_ref1: 562260684Skaiw *s = "DW_FORM_ref1"; break; 563260684Skaiw case DW_FORM_ref2: 564260684Skaiw *s = "DW_FORM_ref2"; break; 565260684Skaiw case DW_FORM_ref4: 566260684Skaiw *s = "DW_FORM_ref4"; break; 567260684Skaiw case DW_FORM_ref8: 568260684Skaiw *s = "DW_FORM_ref8"; break; 569260684Skaiw case DW_FORM_ref_addr: 570260684Skaiw *s = "DW_FORM_ref_addr"; break; 571260684Skaiw case DW_FORM_ref_sig8: 572260684Skaiw *s = "DW_FORM_ref_sig8"; break; 573260684Skaiw case DW_FORM_ref_udata: 574260684Skaiw *s = "DW_FORM_ref_udata"; break; 575260684Skaiw case DW_FORM_sdata: 576260684Skaiw *s = "DW_FORM_sdata"; break; 577260684Skaiw case DW_FORM_sec_offset: 578260684Skaiw *s = "DW_FORM_sec_offset"; break; 579260684Skaiw case DW_FORM_string: 580260684Skaiw *s = "DW_FORM_string"; break; 581260684Skaiw case DW_FORM_strp: 582260684Skaiw *s = "DW_FORM_strp"; break; 583260684Skaiw case DW_FORM_udata: 584260684Skaiw *s = "DW_FORM_udata"; break; 585260684Skaiw default: 586260684Skaiw return (DW_DLV_NO_ENTRY); 587260684Skaiw } 588260684Skaiw 589260684Skaiw return (DW_DLV_OK); 590260684Skaiw} 591260684Skaiw 592260684Skaiwint 593260684Skaiwdwarf_get_DS_name(unsigned ds, const char **s) 594260684Skaiw{ 595260684Skaiw 596260684Skaiw assert(s != NULL); 597260684Skaiw 598260684Skaiw switch (ds) { 599260684Skaiw case DW_DS_unsigned: 600260684Skaiw *s = "DW_DS_unsigned"; break; 601260684Skaiw case DW_DS_leading_overpunch: 602260684Skaiw *s = "DW_DS_leading_overpunch"; break; 603260684Skaiw case DW_DS_trailing_overpunch: 604260684Skaiw *s = "DW_DS_trailing_overpunch"; break; 605260684Skaiw case DW_DS_leading_separate: 606260684Skaiw *s = "DW_DS_leading_separate"; break; 607260684Skaiw case DW_DS_trailing_separate: 608367466Sdim *s = "DW_DS_trailing_separate"; break; 609260684Skaiw default: 610260684Skaiw return (DW_DLV_NO_ENTRY); 611260684Skaiw } 612260684Skaiw 613260684Skaiw return (DW_DLV_OK); 614260684Skaiw} 615260684Skaiw 616260684Skaiwint 617260684Skaiwdwarf_get_DSC_name(unsigned dsc, const char **s) 618260684Skaiw{ 619260684Skaiw 620260684Skaiw assert(s != NULL); 621260684Skaiw 622260684Skaiw switch (dsc) { 623260684Skaiw case DW_DSC_label: 624260684Skaiw *s = "DW_DSC_label"; break; 625260684Skaiw case DW_DSC_range: 626260684Skaiw *s = "DW_DSC_range"; break; 627260684Skaiw default: 628260684Skaiw return (DW_DLV_NO_ENTRY); 629260684Skaiw } 630260684Skaiw 631260684Skaiw return (DW_DLV_OK); 632260684Skaiw} 633260684Skaiw 634260684Skaiwint 635260684Skaiwdwarf_get_EH_name(unsigned eh, const char **s) 636260684Skaiw{ 637260684Skaiw 638260684Skaiw assert(s != NULL); 639260684Skaiw 640260684Skaiw switch (eh) { 641260684Skaiw case DW_EH_PE_absptr: 642260684Skaiw *s = "DW_EH_PE_absptr"; break; 643260684Skaiw case DW_EH_PE_uleb128: 644260684Skaiw *s = "DW_EH_PE_uleb128"; break; 645260684Skaiw case DW_EH_PE_udata2: 646260684Skaiw *s = "DW_EH_PE_udata2"; break; 647260684Skaiw case DW_EH_PE_udata4: 648260684Skaiw *s = "DW_EH_PE_udata4"; break; 649260684Skaiw case DW_EH_PE_udata8: 650260684Skaiw *s = "DW_EH_PE_udata8"; break; 651260684Skaiw case DW_EH_PE_sleb128: 652260684Skaiw *s = "DW_EH_PE_sleb128"; break; 653260684Skaiw case DW_EH_PE_sdata2: 654260684Skaiw *s = "DW_EH_PE_sdata2"; break; 655260684Skaiw case DW_EH_PE_sdata4: 656260684Skaiw *s = "DW_EH_PE_sdata4"; break; 657260684Skaiw case DW_EH_PE_sdata8: 658260684Skaiw *s = "DW_EH_PE_sdata8"; break; 659260684Skaiw case DW_EH_PE_pcrel: 660260684Skaiw *s = "DW_EH_PE_pcrel"; break; 661260684Skaiw case DW_EH_PE_textrel: 662260684Skaiw *s = "DW_EH_PE_textrel"; break; 663260684Skaiw case DW_EH_PE_datarel: 664260684Skaiw *s = "DW_EH_PE_datarel"; break; 665260684Skaiw case DW_EH_PE_funcrel: 666260684Skaiw *s = "DW_EH_PE_funcrel"; break; 667260684Skaiw case DW_EH_PE_aligned: 668260684Skaiw *s = "DW_EH_PE_aligned"; break; 669260684Skaiw case DW_EH_PE_omit: 670260684Skaiw *s = "DW_EH_PE_omit"; break; 671260684Skaiw default: 672260684Skaiw return (DW_DLV_NO_ENTRY); 673260684Skaiw } 674260684Skaiw 675260684Skaiw return (DW_DLV_OK); 676260684Skaiw} 677260684Skaiw 678260684Skaiwint 679260684Skaiwdwarf_get_END_name(unsigned end, const char **s) 680260684Skaiw{ 681260684Skaiw 682260684Skaiw assert(s != NULL); 683260684Skaiw 684260684Skaiw switch (end) { 685260684Skaiw case DW_END_default: 686260684Skaiw *s = "DW_END_default"; break; 687260684Skaiw case DW_END_big: 688260684Skaiw *s = "DW_END_big"; break; 689260684Skaiw case DW_END_little: 690260684Skaiw *s = "DW_END_little"; break; 691260684Skaiw case DW_END_lo_user: 692260684Skaiw *s = "DW_END_lo_user"; break; 693260684Skaiw case DW_END_high_user: 694260684Skaiw *s = "DW_END_high_user"; break; 695260684Skaiw default: 696260684Skaiw return (DW_DLV_NO_ENTRY); 697260684Skaiw } 698260684Skaiw 699260684Skaiw return (DW_DLV_OK); 700260684Skaiw} 701260684Skaiw 702260684Skaiwint 703260684Skaiwdwarf_get_ID_name(unsigned id, const char **s) 704260684Skaiw{ 705260684Skaiw 706260684Skaiw assert(s != NULL); 707260684Skaiw 708260684Skaiw switch (id) { 709260684Skaiw case DW_ID_case_sensitive: 710260684Skaiw *s = "DW_ID_case_sensitive"; break; 711260684Skaiw case DW_ID_up_case: 712260684Skaiw *s = "DW_ID_up_case"; break; 713260684Skaiw case DW_ID_down_case: 714260684Skaiw *s = "DW_ID_down_case"; break; 715260684Skaiw case DW_ID_case_insensitive: 716260684Skaiw *s = "DW_ID_case_insensitive"; break; 717260684Skaiw default: 718260684Skaiw return (DW_DLV_NO_ENTRY); 719260684Skaiw } 720260684Skaiw 721260684Skaiw return (DW_DLV_OK); 722260684Skaiw} 723260684Skaiw 724260684Skaiwint 725260684Skaiwdwarf_get_INL_name(unsigned inl, const char **s) 726260684Skaiw{ 727260684Skaiw 728260684Skaiw assert(s != NULL); 729260684Skaiw 730260684Skaiw switch (inl) { 731260684Skaiw case DW_INL_not_inlined: 732260684Skaiw *s = "DW_INL_not_inlined"; break; 733260684Skaiw case DW_INL_inlined: 734260684Skaiw *s = "DW_INL_inlined"; break; 735260684Skaiw case DW_INL_declared_not_inlined: 736260684Skaiw *s = "DW_INL_declared_not_inlined"; break; 737260684Skaiw case DW_INL_declared_inlined: 738260684Skaiw *s = "DW_INL_declared_inlined"; break; 739260684Skaiw default: 740260684Skaiw return (DW_DLV_NO_ENTRY); 741260684Skaiw } 742260684Skaiw 743260684Skaiw return (DW_DLV_OK); 744260684Skaiw} 745260684Skaiw 746260684Skaiwint 747260684Skaiwdwarf_get_LANG_name(unsigned lang, const char **s) 748260684Skaiw{ 749260684Skaiw 750260684Skaiw assert(s != NULL); 751260684Skaiw 752260684Skaiw switch (lang) { 753260684Skaiw case DW_LANG_C89: 754260684Skaiw *s = "DW_LANG_C89"; break; 755260684Skaiw case DW_LANG_C: 756260684Skaiw *s = "DW_LANG_C"; break; 757260684Skaiw case DW_LANG_Ada83: 758260684Skaiw *s = "DW_LANG_Ada83"; break; 759260684Skaiw case DW_LANG_C_plus_plus: 760260684Skaiw *s = "DW_LANG_C_plus_plus"; break; 761260684Skaiw case DW_LANG_Cobol74: 762260684Skaiw *s = "DW_LANG_Cobol74"; break; 763260684Skaiw case DW_LANG_Cobol85: 764260684Skaiw *s = "DW_LANG_Cobol85"; break; 765260684Skaiw case DW_LANG_Fortran77: 766260684Skaiw *s = "DW_LANG_Fortran77"; break; 767260684Skaiw case DW_LANG_Fortran90: 768260684Skaiw *s = "DW_LANG_Fortran90"; break; 769260684Skaiw case DW_LANG_Pascal83: 770260684Skaiw *s = "DW_LANG_Pascal83"; break; 771260684Skaiw case DW_LANG_Modula2: 772260684Skaiw *s = "DW_LANG_Modula2"; break; 773260684Skaiw case DW_LANG_Java: 774260684Skaiw *s = "DW_LANG_Java"; break; 775260684Skaiw case DW_LANG_C99: 776260684Skaiw *s = "DW_LANG_C99"; break; 777260684Skaiw case DW_LANG_Ada95: 778260684Skaiw *s = "DW_LANG_Ada95"; break; 779260684Skaiw case DW_LANG_Fortran95: 780260684Skaiw *s = "DW_LANG_Fortran95"; break; 781260684Skaiw case DW_LANG_PLI: 782260684Skaiw *s = "DW_LANG_PLI"; break; 783260684Skaiw case DW_LANG_ObjC: 784260684Skaiw *s = "DW_LANG_ObjC"; break; 785260684Skaiw case DW_LANG_ObjC_plus_plus: 786260684Skaiw *s = "DW_LANG_ObjC_plus_plus"; break; 787260684Skaiw case DW_LANG_UPC: 788260684Skaiw *s = "DW_LANG_UPC"; break; 789260684Skaiw case DW_LANG_D: 790260684Skaiw *s = "DW_LANG_D"; break; 791335630Smarkj case DW_LANG_Python: 792335630Smarkj *s = "DW_LANG_Python"; break; 793335630Smarkj case DW_LANG_OpenCL: 794335630Smarkj *s = "DW_LANG_OpenCL"; break; 795335630Smarkj case DW_LANG_Go: 796335630Smarkj *s = "DW_LANG_Go"; break; 797335630Smarkj case DW_LANG_Modula3: 798335630Smarkj *s = "DW_LANG_Modula3"; break; 799335630Smarkj case DW_LANG_Haskell: 800335630Smarkj *s = "DW_LANG_Haskell"; break; 801335630Smarkj case DW_LANG_C_plus_plus_03: 802335630Smarkj *s = "DW_LANG_C_plus_plus_03"; break; 803335630Smarkj case DW_LANG_C_plus_plus_11: 804335630Smarkj *s = "DW_LANG_C_plus_plus_11"; break; 805335630Smarkj case DW_LANG_OCaml: 806335630Smarkj *s = "DW_LANG_OCaml"; break; 807335630Smarkj case DW_LANG_Rust: 808335630Smarkj *s = "DW_LANG_Rust"; break; 809335630Smarkj case DW_LANG_C11: 810335630Smarkj *s = "DW_LANG_C11"; break; 811335630Smarkj case DW_LANG_Swift: 812335630Smarkj *s = "DW_LANG_Swift"; break; 813335630Smarkj case DW_LANG_Julia: 814335630Smarkj *s = "DW_LANG_Julia"; break; 815335630Smarkj case DW_LANG_Dylan: 816335630Smarkj *s = "DW_LANG_Dylan"; break; 817335630Smarkj case DW_LANG_C_plus_plus_14: 818335630Smarkj *s = "DW_LANG_C_plus_plus_14"; break; 819335630Smarkj case DW_LANG_Fortran03: 820335630Smarkj *s = "DW_LANG_Fortran03"; break; 821335630Smarkj case DW_LANG_Fortran08: 822335630Smarkj *s = "DW_LANG_Fortran08"; break; 823335630Smarkj case DW_LANG_RenderScript: 824335630Smarkj *s = "DW_LANG_RenderScript"; break; 825335630Smarkj case DW_LANG_BLISS: 826335630Smarkj *s = "DW_LANG_BLISS"; break; 827260684Skaiw case DW_LANG_lo_user: 828260684Skaiw *s = "DW_LANG_lo_user"; break; 829317623Semaste case DW_LANG_Mips_Assembler: 830317623Semaste *s = "DW_LANG_Mips_Assembler"; break; 831260684Skaiw case DW_LANG_hi_user: 832260684Skaiw *s = "DW_LANG_hi_user"; break; 833260684Skaiw default: 834260684Skaiw return (DW_DLV_NO_ENTRY); 835260684Skaiw } 836260684Skaiw 837260684Skaiw return (DW_DLV_OK); 838260684Skaiw} 839260684Skaiw 840260684Skaiwint 841260684Skaiwdwarf_get_LNE_name(unsigned lne, const char **s) 842260684Skaiw{ 843260684Skaiw 844260684Skaiw assert(s != NULL); 845260684Skaiw 846260684Skaiw switch (lne) { 847260684Skaiw case DW_LNE_end_sequence: 848260684Skaiw *s = "DW_LNE_end_sequence"; break; 849260684Skaiw case DW_LNE_set_address: 850260684Skaiw *s = "DW_LNE_set_address"; break; 851260684Skaiw case DW_LNE_define_file: 852260684Skaiw *s = "DW_LNE_define_file"; break; 853260684Skaiw case DW_LNE_lo_user: 854260684Skaiw *s = "DW_LNE_lo_user"; break; 855260684Skaiw case DW_LNE_hi_user: 856260684Skaiw *s = "DW_LNE_hi_user"; break; 857260684Skaiw default: 858260684Skaiw return (DW_DLV_NO_ENTRY); 859260684Skaiw } 860260684Skaiw 861260684Skaiw return (DW_DLV_OK); 862260684Skaiw} 863260684Skaiw 864260684Skaiwint 865260684Skaiwdwarf_get_LNS_name(unsigned lns, const char **s) 866260684Skaiw{ 867260684Skaiw 868260684Skaiw assert(s != NULL); 869260684Skaiw 870260684Skaiw switch (lns) { 871260684Skaiw case DW_LNS_copy: 872260684Skaiw *s = "DW_LNS_copy"; break; 873260684Skaiw case DW_LNS_advance_pc: 874260684Skaiw *s = "DW_LNS_advance_pc"; break; 875260684Skaiw case DW_LNS_advance_line: 876260684Skaiw *s = "DW_LNS_advance_line"; break; 877260684Skaiw case DW_LNS_set_file: 878260684Skaiw *s = "DW_LNS_set_file"; break; 879260684Skaiw case DW_LNS_set_column: 880260684Skaiw *s = "DW_LNS_set_column"; break; 881260684Skaiw case DW_LNS_negate_stmt: 882260684Skaiw *s = "DW_LNS_negate_stmt"; break; 883260684Skaiw case DW_LNS_set_basic_block: 884260684Skaiw *s = "DW_LNS_set_basic_block"; break; 885260684Skaiw case DW_LNS_const_add_pc: 886260684Skaiw *s = "DW_LNS_const_add_pc"; break; 887260684Skaiw case DW_LNS_fixed_advance_pc: 888260684Skaiw *s = "DW_LNS_fixed_advance_pc"; break; 889260684Skaiw case DW_LNS_set_prologue_end: 890260684Skaiw *s = "DW_LNS_set_prologue_end"; break; 891260684Skaiw case DW_LNS_set_epilogue_begin: 892260684Skaiw *s = "DW_LNS_set_epilogue_begin"; break; 893260684Skaiw case DW_LNS_set_isa: 894260684Skaiw *s = "DW_LNS_set_isa"; break; 895260684Skaiw default: 896260684Skaiw return (DW_DLV_NO_ENTRY); 897260684Skaiw } 898260684Skaiw 899260684Skaiw return (DW_DLV_OK); 900260684Skaiw} 901260684Skaiw 902260684Skaiwint 903260684Skaiwdwarf_get_MACINFO_name(unsigned mi, const char **s) 904260684Skaiw{ 905260684Skaiw 906260684Skaiw assert(s != NULL); 907260684Skaiw 908260684Skaiw switch (mi) { 909260684Skaiw case DW_MACINFO_define: 910260684Skaiw *s = "DW_MACINFO_define"; break; 911260684Skaiw case DW_MACINFO_undef: 912260684Skaiw *s = "DW_MACINFO_undef"; break; 913260684Skaiw case DW_MACINFO_start_file: 914260684Skaiw *s = "DW_MACINFO_start_file"; break; 915260684Skaiw case DW_MACINFO_end_file: 916260684Skaiw *s = "DW_MACINFO_end_file"; break; 917260684Skaiw case DW_MACINFO_vendor_ext: 918260684Skaiw *s = "DW_MACINFO_vendor_ext"; break; 919260684Skaiw default: 920260684Skaiw return (DW_DLV_NO_ENTRY); 921260684Skaiw } 922260684Skaiw 923260684Skaiw return (DW_DLV_OK); 924260684Skaiw} 925260684Skaiw 926260684Skaiwint 927260684Skaiwdwarf_get_OP_name(unsigned op, const char **s) 928260684Skaiw{ 929260684Skaiw 930260684Skaiw assert(s != NULL); 931260684Skaiw 932260684Skaiw switch (op) { 933260684Skaiw case DW_OP_deref: 934260684Skaiw *s = "DW_OP_deref"; break; 935260684Skaiw case DW_OP_reg0: 936260684Skaiw *s = "DW_OP_reg0"; break; 937260684Skaiw case DW_OP_reg1: 938260684Skaiw *s = "DW_OP_reg1"; break; 939260684Skaiw case DW_OP_reg2: 940260684Skaiw *s = "DW_OP_reg2"; break; 941260684Skaiw case DW_OP_reg3: 942260684Skaiw *s = "DW_OP_reg3"; break; 943260684Skaiw case DW_OP_reg4: 944260684Skaiw *s = "DW_OP_reg4"; break; 945260684Skaiw case DW_OP_reg5: 946260684Skaiw *s = "DW_OP_reg5"; break; 947260684Skaiw case DW_OP_reg6: 948260684Skaiw *s = "DW_OP_reg6"; break; 949260684Skaiw case DW_OP_reg7: 950260684Skaiw *s = "DW_OP_reg7"; break; 951260684Skaiw case DW_OP_reg8: 952260684Skaiw *s = "DW_OP_reg8"; break; 953260684Skaiw case DW_OP_reg9: 954260684Skaiw *s = "DW_OP_reg9"; break; 955260684Skaiw case DW_OP_reg10: 956260684Skaiw *s = "DW_OP_reg10"; break; 957260684Skaiw case DW_OP_reg11: 958260684Skaiw *s = "DW_OP_reg11"; break; 959260684Skaiw case DW_OP_reg12: 960260684Skaiw *s = "DW_OP_reg12"; break; 961260684Skaiw case DW_OP_reg13: 962260684Skaiw *s = "DW_OP_reg13"; break; 963260684Skaiw case DW_OP_reg14: 964260684Skaiw *s = "DW_OP_reg14"; break; 965260684Skaiw case DW_OP_reg15: 966260684Skaiw *s = "DW_OP_reg15"; break; 967260684Skaiw case DW_OP_reg16: 968260684Skaiw *s = "DW_OP_reg16"; break; 969260684Skaiw case DW_OP_reg17: 970260684Skaiw *s = "DW_OP_reg17"; break; 971260684Skaiw case DW_OP_reg18: 972260684Skaiw *s = "DW_OP_reg18"; break; 973260684Skaiw case DW_OP_reg19: 974260684Skaiw *s = "DW_OP_reg19"; break; 975260684Skaiw case DW_OP_reg20: 976260684Skaiw *s = "DW_OP_reg20"; break; 977260684Skaiw case DW_OP_reg21: 978260684Skaiw *s = "DW_OP_reg21"; break; 979260684Skaiw case DW_OP_reg22: 980260684Skaiw *s = "DW_OP_reg22"; break; 981260684Skaiw case DW_OP_reg23: 982260684Skaiw *s = "DW_OP_reg23"; break; 983260684Skaiw case DW_OP_reg24: 984260684Skaiw *s = "DW_OP_reg24"; break; 985260684Skaiw case DW_OP_reg25: 986260684Skaiw *s = "DW_OP_reg25"; break; 987260684Skaiw case DW_OP_reg26: 988260684Skaiw *s = "DW_OP_reg26"; break; 989260684Skaiw case DW_OP_reg27: 990260684Skaiw *s = "DW_OP_reg27"; break; 991260684Skaiw case DW_OP_reg28: 992260684Skaiw *s = "DW_OP_reg28"; break; 993260684Skaiw case DW_OP_reg29: 994260684Skaiw *s = "DW_OP_reg29"; break; 995260684Skaiw case DW_OP_reg30: 996260684Skaiw *s = "DW_OP_reg30"; break; 997260684Skaiw case DW_OP_reg31: 998260684Skaiw *s = "DW_OP_reg31"; break; 999260684Skaiw case DW_OP_lit0: 1000260684Skaiw *s = "DW_OP_lit0"; break; 1001260684Skaiw case DW_OP_lit1: 1002260684Skaiw *s = "DW_OP_lit1"; break; 1003260684Skaiw case DW_OP_lit2: 1004260684Skaiw *s = "DW_OP_lit2"; break; 1005260684Skaiw case DW_OP_lit3: 1006260684Skaiw *s = "DW_OP_lit3"; break; 1007260684Skaiw case DW_OP_lit4: 1008260684Skaiw *s = "DW_OP_lit4"; break; 1009260684Skaiw case DW_OP_lit5: 1010260684Skaiw *s = "DW_OP_lit5"; break; 1011260684Skaiw case DW_OP_lit6: 1012260684Skaiw *s = "DW_OP_lit6"; break; 1013260684Skaiw case DW_OP_lit7: 1014260684Skaiw *s = "DW_OP_lit7"; break; 1015260684Skaiw case DW_OP_lit8: 1016260684Skaiw *s = "DW_OP_lit8"; break; 1017260684Skaiw case DW_OP_lit9: 1018260684Skaiw *s = "DW_OP_lit9"; break; 1019260684Skaiw case DW_OP_lit10: 1020260684Skaiw *s = "DW_OP_lit10"; break; 1021260684Skaiw case DW_OP_lit11: 1022260684Skaiw *s = "DW_OP_lit11"; break; 1023260684Skaiw case DW_OP_lit12: 1024260684Skaiw *s = "DW_OP_lit12"; break; 1025260684Skaiw case DW_OP_lit13: 1026260684Skaiw *s = "DW_OP_lit13"; break; 1027260684Skaiw case DW_OP_lit14: 1028260684Skaiw *s = "DW_OP_lit14"; break; 1029260684Skaiw case DW_OP_lit15: 1030260684Skaiw *s = "DW_OP_lit15"; break; 1031260684Skaiw case DW_OP_lit16: 1032260684Skaiw *s = "DW_OP_lit16"; break; 1033260684Skaiw case DW_OP_lit17: 1034260684Skaiw *s = "DW_OP_lit17"; break; 1035260684Skaiw case DW_OP_lit18: 1036260684Skaiw *s = "DW_OP_lit18"; break; 1037260684Skaiw case DW_OP_lit19: 1038260684Skaiw *s = "DW_OP_lit19"; break; 1039260684Skaiw case DW_OP_lit20: 1040260684Skaiw *s = "DW_OP_lit20"; break; 1041260684Skaiw case DW_OP_lit21: 1042260684Skaiw *s = "DW_OP_lit21"; break; 1043260684Skaiw case DW_OP_lit22: 1044260684Skaiw *s = "DW_OP_lit22"; break; 1045260684Skaiw case DW_OP_lit23: 1046260684Skaiw *s = "DW_OP_lit23"; break; 1047260684Skaiw case DW_OP_lit24: 1048260684Skaiw *s = "DW_OP_lit24"; break; 1049260684Skaiw case DW_OP_lit25: 1050260684Skaiw *s = "DW_OP_lit25"; break; 1051260684Skaiw case DW_OP_lit26: 1052260684Skaiw *s = "DW_OP_lit26"; break; 1053260684Skaiw case DW_OP_lit27: 1054260684Skaiw *s = "DW_OP_lit27"; break; 1055260684Skaiw case DW_OP_lit28: 1056260684Skaiw *s = "DW_OP_lit28"; break; 1057260684Skaiw case DW_OP_lit29: 1058260684Skaiw *s = "DW_OP_lit29"; break; 1059260684Skaiw case DW_OP_lit30: 1060260684Skaiw *s = "DW_OP_lit30"; break; 1061260684Skaiw case DW_OP_lit31: 1062260684Skaiw *s = "DW_OP_lit31"; break; 1063260684Skaiw case DW_OP_dup: 1064260684Skaiw *s = "DW_OP_dup"; break; 1065260684Skaiw case DW_OP_drop: 1066260684Skaiw *s = "DW_OP_drop"; break; 1067260684Skaiw case DW_OP_over: 1068260684Skaiw *s = "DW_OP_over"; break; 1069260684Skaiw case DW_OP_swap: 1070260684Skaiw *s = "DW_OP_swap"; break; 1071260684Skaiw case DW_OP_rot: 1072260684Skaiw *s = "DW_OP_rot"; break; 1073260684Skaiw case DW_OP_xderef: 1074260684Skaiw *s = "DW_OP_xderef"; break; 1075260684Skaiw case DW_OP_abs: 1076260684Skaiw *s = "DW_OP_abs"; break; 1077260684Skaiw case DW_OP_and: 1078260684Skaiw *s = "DW_OP_and"; break; 1079260684Skaiw case DW_OP_div: 1080260684Skaiw *s = "DW_OP_div"; break; 1081260684Skaiw case DW_OP_minus: 1082260684Skaiw *s = "DW_OP_minus"; break; 1083260684Skaiw case DW_OP_mod: 1084260684Skaiw *s = "DW_OP_mod"; break; 1085260684Skaiw case DW_OP_mul: 1086260684Skaiw *s = "DW_OP_mul"; break; 1087260684Skaiw case DW_OP_neg: 1088260684Skaiw *s = "DW_OP_neg"; break; 1089260684Skaiw case DW_OP_not: 1090260684Skaiw *s = "DW_OP_not"; break; 1091260684Skaiw case DW_OP_or: 1092260684Skaiw *s = "DW_OP_or"; break; 1093260684Skaiw case DW_OP_plus: 1094260684Skaiw *s = "DW_OP_plus"; break; 1095260684Skaiw case DW_OP_shl: 1096260684Skaiw *s = "DW_OP_shl"; break; 1097260684Skaiw case DW_OP_shr: 1098260684Skaiw *s = "DW_OP_shr"; break; 1099260684Skaiw case DW_OP_shra: 1100260684Skaiw *s = "DW_OP_shra"; break; 1101260684Skaiw case DW_OP_xor: 1102260684Skaiw *s = "DW_OP_xor"; break; 1103260684Skaiw case DW_OP_eq: 1104260684Skaiw *s = "DW_OP_eq"; break; 1105260684Skaiw case DW_OP_ge: 1106260684Skaiw *s = "DW_OP_ge"; break; 1107260684Skaiw case DW_OP_gt: 1108260684Skaiw *s = "DW_OP_gt"; break; 1109260684Skaiw case DW_OP_le: 1110260684Skaiw *s = "DW_OP_le"; break; 1111260684Skaiw case DW_OP_lt: 1112260684Skaiw *s = "DW_OP_lt"; break; 1113260684Skaiw case DW_OP_ne: 1114260684Skaiw *s = "DW_OP_ne"; break; 1115260684Skaiw case DW_OP_nop: 1116260684Skaiw *s = "DW_OP_nop"; break; 1117260684Skaiw case DW_OP_const1u: 1118260684Skaiw *s = "DW_OP_const1u"; break; 1119260684Skaiw case DW_OP_const1s: 1120260684Skaiw *s = "DW_OP_const1s"; break; 1121260684Skaiw case DW_OP_pick: 1122260684Skaiw *s = "DW_OP_pick"; break; 1123260684Skaiw case DW_OP_deref_size: 1124260684Skaiw *s = "DW_OP_deref_size"; break; 1125260684Skaiw case DW_OP_xderef_size: 1126260684Skaiw *s = "DW_OP_xderef_size"; break; 1127260684Skaiw case DW_OP_const2u: 1128260684Skaiw *s = "DW_OP_const2u"; break; 1129260684Skaiw case DW_OP_const2s: 1130260684Skaiw *s = "DW_OP_const2s"; break; 1131260684Skaiw case DW_OP_bra: 1132260684Skaiw *s = "DW_OP_bra"; break; 1133260684Skaiw case DW_OP_skip: 1134260684Skaiw *s = "DW_OP_skip"; break; 1135260684Skaiw case DW_OP_const4u: 1136260684Skaiw *s = "DW_OP_const4u"; break; 1137260684Skaiw case DW_OP_const4s: 1138260684Skaiw *s = "DW_OP_const4s"; break; 1139260684Skaiw case DW_OP_const8u: 1140260684Skaiw *s = "DW_OP_const8u"; break; 1141260684Skaiw case DW_OP_const8s: 1142260684Skaiw *s = "DW_OP_const8s"; break; 1143260684Skaiw case DW_OP_constu: 1144260684Skaiw *s = "DW_OP_constu"; break; 1145260684Skaiw case DW_OP_plus_uconst: 1146260684Skaiw *s = "DW_OP_plus_uconst"; break; 1147260684Skaiw case DW_OP_regx: 1148260684Skaiw *s = "DW_OP_regx"; break; 1149260684Skaiw case DW_OP_piece: 1150260684Skaiw *s = "DW_OP_piece"; break; 1151260684Skaiw case DW_OP_consts: 1152260684Skaiw *s = "DW_OP_consts"; break; 1153260684Skaiw case DW_OP_breg0: 1154260684Skaiw *s = "DW_OP_breg0"; break; 1155260684Skaiw case DW_OP_breg1: 1156260684Skaiw *s = "DW_OP_breg1"; break; 1157260684Skaiw case DW_OP_breg2: 1158260684Skaiw *s = "DW_OP_breg2"; break; 1159260684Skaiw case DW_OP_breg3: 1160260684Skaiw *s = "DW_OP_breg3"; break; 1161260684Skaiw case DW_OP_breg4: 1162260684Skaiw *s = "DW_OP_breg4"; break; 1163260684Skaiw case DW_OP_breg5: 1164260684Skaiw *s = "DW_OP_breg5"; break; 1165260684Skaiw case DW_OP_breg6: 1166260684Skaiw *s = "DW_OP_breg6"; break; 1167260684Skaiw case DW_OP_breg7: 1168260684Skaiw *s = "DW_OP_breg7"; break; 1169260684Skaiw case DW_OP_breg8: 1170260684Skaiw *s = "DW_OP_breg8"; break; 1171260684Skaiw case DW_OP_breg9: 1172260684Skaiw *s = "DW_OP_breg9"; break; 1173260684Skaiw case DW_OP_breg10: 1174260684Skaiw *s = "DW_OP_breg10"; break; 1175260684Skaiw case DW_OP_breg11: 1176260684Skaiw *s = "DW_OP_breg11"; break; 1177260684Skaiw case DW_OP_breg12: 1178260684Skaiw *s = "DW_OP_breg12"; break; 1179260684Skaiw case DW_OP_breg13: 1180260684Skaiw *s = "DW_OP_breg13"; break; 1181260684Skaiw case DW_OP_breg14: 1182260684Skaiw *s = "DW_OP_breg14"; break; 1183260684Skaiw case DW_OP_breg15: 1184260684Skaiw *s = "DW_OP_breg15"; break; 1185260684Skaiw case DW_OP_breg16: 1186260684Skaiw *s = "DW_OP_breg16"; break; 1187260684Skaiw case DW_OP_breg17: 1188260684Skaiw *s = "DW_OP_breg17"; break; 1189260684Skaiw case DW_OP_breg18: 1190260684Skaiw *s = "DW_OP_breg18"; break; 1191260684Skaiw case DW_OP_breg19: 1192260684Skaiw *s = "DW_OP_breg19"; break; 1193260684Skaiw case DW_OP_breg20: 1194260684Skaiw *s = "DW_OP_breg20"; break; 1195260684Skaiw case DW_OP_breg21: 1196260684Skaiw *s = "DW_OP_breg21"; break; 1197260684Skaiw case DW_OP_breg22: 1198260684Skaiw *s = "DW_OP_breg22"; break; 1199260684Skaiw case DW_OP_breg23: 1200260684Skaiw *s = "DW_OP_breg23"; break; 1201260684Skaiw case DW_OP_breg24: 1202260684Skaiw *s = "DW_OP_breg24"; break; 1203260684Skaiw case DW_OP_breg25: 1204260684Skaiw *s = "DW_OP_breg25"; break; 1205260684Skaiw case DW_OP_breg26: 1206260684Skaiw *s = "DW_OP_breg26"; break; 1207260684Skaiw case DW_OP_breg27: 1208260684Skaiw *s = "DW_OP_breg27"; break; 1209260684Skaiw case DW_OP_breg28: 1210260684Skaiw *s = "DW_OP_breg28"; break; 1211260684Skaiw case DW_OP_breg29: 1212260684Skaiw *s = "DW_OP_breg29"; break; 1213260684Skaiw case DW_OP_breg30: 1214260684Skaiw *s = "DW_OP_breg30"; break; 1215260684Skaiw case DW_OP_breg31: 1216260684Skaiw *s = "DW_OP_breg31"; break; 1217260684Skaiw case DW_OP_fbreg: 1218260684Skaiw *s = "DW_OP_fbreg"; break; 1219260684Skaiw case DW_OP_bregx: 1220260684Skaiw *s = "DW_OP_bregx"; break; 1221260684Skaiw case DW_OP_addr: 1222260684Skaiw *s = "DW_OP_addr"; break; 1223260684Skaiw case DW_OP_push_object_address: 1224260684Skaiw *s = "DW_OP_push_object_address"; break; 1225260684Skaiw case DW_OP_call2: 1226260684Skaiw *s = "DW_OP_call2"; break; 1227260684Skaiw case DW_OP_call4: 1228260684Skaiw *s = "DW_OP_call4"; break; 1229260684Skaiw case DW_OP_call_ref: 1230260684Skaiw *s = "DW_OP_call_ref"; break; 1231260684Skaiw case DW_OP_form_tls_address: 1232260684Skaiw *s = "DW_OP_form_tls_address"; break; 1233260684Skaiw case DW_OP_call_frame_cfa: 1234260684Skaiw *s = "DW_OP_call_frame_cfa"; break; 1235260684Skaiw case DW_OP_bit_piece: 1236260684Skaiw *s = "DW_OP_bit_piece"; break; 1237260684Skaiw case DW_OP_implicit_value: 1238260684Skaiw *s = "DW_OP_implicit_value"; break; 1239260684Skaiw case DW_OP_stack_value: 1240260684Skaiw *s = "DW_OP_stack_value"; break; 1241260684Skaiw case DW_OP_GNU_push_tls_address: 1242260684Skaiw *s = "DW_OP_GNU_push_tls_address"; break; 1243276371Semaste case DW_OP_GNU_uninit: 1244276371Semaste *s = "DW_OP_GNU_uninit"; break; 1245276371Semaste case DW_OP_GNU_encoded_addr: 1246276371Semaste *s = "DW_OP_GNU_encoded_addr"; break; 1247276371Semaste case DW_OP_GNU_implicit_pointer: 1248276371Semaste *s = "DW_OP_GNU_implicit_pointer"; break; 1249276371Semaste case DW_OP_GNU_entry_value: 1250276371Semaste *s = "DW_OP_GNU_entry_value"; break; 1251276371Semaste case DW_OP_GNU_const_type: 1252276371Semaste *s = "DW_OP_GNU_const_type"; break; 1253276371Semaste case DW_OP_GNU_regval_type: 1254276371Semaste *s = "DW_OP_GNU_regval_type"; break; 1255276371Semaste case DW_OP_GNU_deref_type: 1256276371Semaste *s = "DW_OP_GNU_deref_type"; break; 1257276371Semaste case DW_OP_GNU_convert: 1258276371Semaste *s = "DW_OP_GNU_convert"; break; 1259276371Semaste case DW_OP_GNU_reinterpret: 1260276371Semaste *s = "DW_OP_GNU_reinterpret"; break; 1261276371Semaste case DW_OP_GNU_parameter_ref: 1262276371Semaste *s = "DW_OP_GNU_parameter_ref"; break; 1263276371Semaste case DW_OP_GNU_addr_index: 1264276371Semaste *s = "DW_OP_GNU_addr_index"; break; 1265276371Semaste case DW_OP_GNU_const_index: 1266276371Semaste *s = "DW_OP_GNU_const_index"; break; 1267260684Skaiw default: 1268260684Skaiw return (DW_DLV_NO_ENTRY); 1269260684Skaiw } 1270260684Skaiw 1271260684Skaiw return (DW_DLV_OK); 1272260684Skaiw} 1273260684Skaiw 1274260684Skaiwint 1275260684Skaiwdwarf_get_ORD_name(unsigned ord, const char **s) 1276260684Skaiw{ 1277260684Skaiw 1278260684Skaiw assert(s != NULL); 1279260684Skaiw 1280260684Skaiw switch (ord) { 1281260684Skaiw case DW_ORD_row_major: 1282260684Skaiw *s = "DW_ORD_row_major"; break; 1283260684Skaiw case DW_ORD_col_major: 1284260684Skaiw *s = "DW_ORD_col_major"; break; 1285260684Skaiw default: 1286260684Skaiw return (DW_DLV_NO_ENTRY); 1287260684Skaiw } 1288260684Skaiw 1289260684Skaiw return (DW_DLV_OK); 1290260684Skaiw} 1291260684Skaiw 1292260684Skaiwint 1293260684Skaiwdwarf_get_TAG_name(unsigned tag, const char **s) 1294260684Skaiw{ 1295260684Skaiw 1296260684Skaiw assert(s != NULL); 1297260684Skaiw 1298260684Skaiw switch (tag) { 1299260684Skaiw case DW_TAG_access_declaration: 1300260684Skaiw *s = "DW_TAG_access_declaration"; break; 1301260684Skaiw case DW_TAG_array_type: 1302260684Skaiw *s = "DW_TAG_array_type"; break; 1303260684Skaiw case DW_TAG_base_type: 1304260684Skaiw *s = "DW_TAG_base_type"; break; 1305260684Skaiw case DW_TAG_catch_block: 1306260684Skaiw *s = "DW_TAG_catch_block"; break; 1307260684Skaiw case DW_TAG_class_type: 1308260684Skaiw *s = "DW_TAG_class_type"; break; 1309260684Skaiw case DW_TAG_common_block: 1310260684Skaiw *s = "DW_TAG_common_block"; break; 1311260684Skaiw case DW_TAG_common_inclusion: 1312260684Skaiw *s = "DW_TAG_common_inclusion"; break; 1313260684Skaiw case DW_TAG_compile_unit: 1314260684Skaiw *s = "DW_TAG_compile_unit"; break; 1315260684Skaiw case DW_TAG_condition: 1316260684Skaiw *s = "DW_TAG_condition"; break; 1317260684Skaiw case DW_TAG_const_type: 1318260684Skaiw *s = "DW_TAG_const_type"; break; 1319260684Skaiw case DW_TAG_constant: 1320260684Skaiw *s = "DW_TAG_constant"; break; 1321260684Skaiw case DW_TAG_dwarf_procedure: 1322260684Skaiw *s = "DW_TAG_dwarf_procedure"; break; 1323260684Skaiw case DW_TAG_entry_point: 1324260684Skaiw *s = "DW_TAG_entry_point"; break; 1325260684Skaiw case DW_TAG_enumeration_type: 1326260684Skaiw *s = "DW_TAG_enumeration_type"; break; 1327260684Skaiw case DW_TAG_enumerator: 1328260684Skaiw *s = "DW_TAG_enumerator"; break; 1329260684Skaiw case DW_TAG_formal_parameter: 1330260684Skaiw *s = "DW_TAG_formal_parameter"; break; 1331260684Skaiw case DW_TAG_friend: 1332260684Skaiw *s = "DW_TAG_friend"; break; 1333260684Skaiw case DW_TAG_imported_declaration: 1334260684Skaiw *s = "DW_TAG_imported_declaration"; break; 1335260684Skaiw case DW_TAG_imported_module: 1336260684Skaiw *s = "DW_TAG_imported_module"; break; 1337260684Skaiw case DW_TAG_imported_unit: 1338260684Skaiw *s = "DW_TAG_imported_unit"; break; 1339260684Skaiw case DW_TAG_inheritance: 1340260684Skaiw *s = "DW_TAG_inheritance"; break; 1341260684Skaiw case DW_TAG_inlined_subroutine: 1342260684Skaiw *s = "DW_TAG_inlined_subroutine"; break; 1343260684Skaiw case DW_TAG_interface_type: 1344260684Skaiw *s = "DW_TAG_interface_type"; break; 1345260684Skaiw case DW_TAG_label: 1346260684Skaiw *s = "DW_TAG_label"; break; 1347260684Skaiw case DW_TAG_lexical_block: 1348260684Skaiw *s = "DW_TAG_lexical_block"; break; 1349260684Skaiw case DW_TAG_member: 1350260684Skaiw *s = "DW_TAG_member"; break; 1351260684Skaiw case DW_TAG_module: 1352260684Skaiw *s = "DW_TAG_module"; break; 1353260684Skaiw case DW_TAG_namelist: 1354260684Skaiw *s = "DW_TAG_namelist"; break; 1355260684Skaiw case DW_TAG_namelist_item: 1356260684Skaiw *s = "DW_TAG_namelist_item"; break; 1357260684Skaiw case DW_TAG_namespace: 1358260684Skaiw *s = "DW_TAG_namespace"; break; 1359260684Skaiw case DW_TAG_packed_type: 1360260684Skaiw *s = "DW_TAG_packed_type"; break; 1361260684Skaiw case DW_TAG_partial_unit: 1362260684Skaiw *s = "DW_TAG_partial_unit"; break; 1363260684Skaiw case DW_TAG_pointer_type: 1364260684Skaiw *s = "DW_TAG_pointer_type"; break; 1365260684Skaiw case DW_TAG_ptr_to_member_type: 1366260684Skaiw *s = "DW_TAG_ptr_to_member_type"; break; 1367260684Skaiw case DW_TAG_reference_type: 1368260684Skaiw *s = "DW_TAG_reference_type"; break; 1369260684Skaiw case DW_TAG_restrict_type: 1370260684Skaiw *s = "DW_TAG_restrict_type"; break; 1371260684Skaiw case DW_TAG_rvalue_reference_type: 1372260684Skaiw *s = "DW_TAG_rvalue_reference_type"; break; 1373260684Skaiw case DW_TAG_set_type: 1374260684Skaiw *s = "DW_TAG_set_type"; break; 1375260684Skaiw case DW_TAG_shared_type: 1376260684Skaiw *s = "DW_TAG_shared_type"; break; 1377260684Skaiw case DW_TAG_string_type: 1378260684Skaiw *s = "DW_TAG_string_type"; break; 1379260684Skaiw case DW_TAG_structure_type: 1380260684Skaiw *s = "DW_TAG_structure_type"; break; 1381260684Skaiw case DW_TAG_subprogram: 1382260684Skaiw *s = "DW_TAG_subprogram"; break; 1383260684Skaiw case DW_TAG_subrange_type: 1384260684Skaiw *s = "DW_TAG_subrange_type"; break; 1385260684Skaiw case DW_TAG_subroutine_type: 1386260684Skaiw *s = "DW_TAG_subroutine_type"; break; 1387260684Skaiw case DW_TAG_template_alias: 1388260684Skaiw *s = "DW_TAG_template_alias"; break; 1389260684Skaiw case DW_TAG_template_type_parameter: 1390260684Skaiw *s = "DW_TAG_template_type_parameter"; break; 1391260684Skaiw case DW_TAG_template_value_parameter: 1392260684Skaiw *s = "DW_TAG_template_value_parameter"; break; 1393260684Skaiw case DW_TAG_thrown_type: 1394260684Skaiw *s = "DW_TAG_thrown_type"; break; 1395260684Skaiw case DW_TAG_try_block: 1396260684Skaiw *s = "DW_TAG_try_block"; break; 1397260684Skaiw case DW_TAG_type_unit: 1398260684Skaiw *s = "DW_TAG_type_unit"; break; 1399260684Skaiw case DW_TAG_typedef: 1400260684Skaiw *s = "DW_TAG_typedef"; break; 1401260684Skaiw case DW_TAG_union_type: 1402260684Skaiw *s = "DW_TAG_union_type"; break; 1403260684Skaiw case DW_TAG_unspecified_parameters: 1404260684Skaiw *s = "DW_TAG_unspecified_parameters"; break; 1405260684Skaiw case DW_TAG_unspecified_type: 1406260684Skaiw *s = "DW_TAG_unspecified_type"; break; 1407260684Skaiw case DW_TAG_variable: 1408260684Skaiw *s = "DW_TAG_variable"; break; 1409260684Skaiw case DW_TAG_variant: 1410260684Skaiw *s = "DW_TAG_variant"; break; 1411260684Skaiw case DW_TAG_variant_part: 1412260684Skaiw *s = "DW_TAG_variant_part"; break; 1413260684Skaiw case DW_TAG_volatile_type: 1414260684Skaiw *s = "DW_TAG_volatile_type"; break; 1415260684Skaiw case DW_TAG_with_stmt: 1416260684Skaiw *s = "DW_TAG_with_stmt"; break; 1417276371Semaste case DW_TAG_format_label: 1418276371Semaste *s = "DW_TAG_format_label"; break; 1419276371Semaste case DW_TAG_function_template: 1420276371Semaste *s = "DW_TAG_function_template"; break; 1421276371Semaste case DW_TAG_class_template: 1422276371Semaste *s = "DW_TAG_class_template"; break; 1423276371Semaste case DW_TAG_GNU_BINCL: 1424276371Semaste *s = "DW_TAG_GNU_BINCL"; break; 1425276371Semaste case DW_TAG_GNU_EINCL: 1426276371Semaste *s = "DW_TAG_GNU_EINCL"; break; 1427276371Semaste case DW_TAG_GNU_template_template_param: 1428276371Semaste *s = "DW_TAG_GNU_template_template_param"; break; 1429276371Semaste case DW_TAG_GNU_template_parameter_pack: 1430276371Semaste *s = "DW_TAG_GNU_template_parameter_pack"; break; 1431276371Semaste case DW_TAG_GNU_formal_parameter_pack: 1432276371Semaste *s = "DW_TAG_GNU_formal_parameter_pack"; break; 1433276371Semaste case DW_TAG_GNU_call_site: 1434276371Semaste *s = "DW_TAG_GNU_call_site"; break; 1435276371Semaste case DW_TAG_GNU_call_site_parameter: 1436276371Semaste *s = "DW_TAG_GNU_call_site_parameter"; break; 1437260684Skaiw default: 1438260684Skaiw return (DW_DLV_NO_ENTRY); 1439260684Skaiw } 1440260684Skaiw 1441260684Skaiw return (DW_DLV_OK); 1442260684Skaiw} 1443260684Skaiw 1444260684Skaiwint 1445260684Skaiwdwarf_get_VIRTUALITY_name(unsigned vir, const char **s) 1446260684Skaiw{ 1447260684Skaiw 1448260684Skaiw assert(s != NULL); 1449260684Skaiw 1450260684Skaiw switch (vir) { 1451260684Skaiw case DW_VIRTUALITY_none: 1452260684Skaiw *s = "DW_VIRTUALITY_none"; break; 1453260684Skaiw case DW_VIRTUALITY_virtual: 1454260684Skaiw *s = "DW_VIRTUALITY_virtual"; break; 1455260684Skaiw case DW_VIRTUALITY_pure_virtual: 1456260684Skaiw *s = "DW_VIRTUALITY_pure_virtual"; break; 1457260684Skaiw default: 1458260684Skaiw return (DW_DLV_NO_ENTRY); 1459260684Skaiw } 1460260684Skaiw 1461260684Skaiw return (DW_DLV_OK); 1462260684Skaiw} 1463260684Skaiw 1464260684Skaiwint 1465260684Skaiwdwarf_get_VIS_name(unsigned vis, const char **s) 1466260684Skaiw{ 1467260684Skaiw 1468260684Skaiw assert(s != NULL); 1469260684Skaiw 1470260684Skaiw switch (vis) { 1471260684Skaiw case DW_VIS_local: 1472260684Skaiw *s = "DW_VIS_local"; break; 1473260684Skaiw case DW_VIS_exported: 1474260684Skaiw *s = "DW_VIS_exported"; break; 1475260684Skaiw case DW_VIS_qualified: 1476260684Skaiw *s = "DW_VIS_qualified"; break; 1477260684Skaiw default: 1478260684Skaiw return (DW_DLV_NO_ENTRY); 1479260684Skaiw } 1480260684Skaiw 1481260684Skaiw return (DW_DLV_OK); 1482260684Skaiw} 1483