1*5ac3bc71Schristos /* $NetBSD: dwarf_dump.c,v 1.5 2024/03/03 17:37:30 christos Exp $ */
2e81373b4Schristos
39dd9d0cfSchristos /*-
49dd9d0cfSchristos * Copyright (c) 2007 John Birrell (jb@freebsd.org)
5*5ac3bc71Schristos * Copyright (c) 2009,2023 Kai Wang
69dd9d0cfSchristos * All rights reserved.
79dd9d0cfSchristos *
89dd9d0cfSchristos * Redistribution and use in source and binary forms, with or without
99dd9d0cfSchristos * modification, are permitted provided that the following conditions
109dd9d0cfSchristos * are met:
119dd9d0cfSchristos * 1. Redistributions of source code must retain the above copyright
129dd9d0cfSchristos * notice, this list of conditions and the following disclaimer.
139dd9d0cfSchristos * 2. Redistributions in binary form must reproduce the above copyright
149dd9d0cfSchristos * notice, this list of conditions and the following disclaimer in the
159dd9d0cfSchristos * documentation and/or other materials provided with the distribution.
169dd9d0cfSchristos *
179dd9d0cfSchristos * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
189dd9d0cfSchristos * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
199dd9d0cfSchristos * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
209dd9d0cfSchristos * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
219dd9d0cfSchristos * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
229dd9d0cfSchristos * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
239dd9d0cfSchristos * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
249dd9d0cfSchristos * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
259dd9d0cfSchristos * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
269dd9d0cfSchristos * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
279dd9d0cfSchristos * SUCH DAMAGE.
289dd9d0cfSchristos */
299dd9d0cfSchristos
309dd9d0cfSchristos #include "_libdwarf.h"
319dd9d0cfSchristos
32*5ac3bc71Schristos __RCSID("$NetBSD: dwarf_dump.c,v 1.5 2024/03/03 17:37:30 christos Exp $");
33*5ac3bc71Schristos ELFTC_VCSID("Id: dwarf_dump.c 4012 2023-10-13 01:15:02Z kaiwang27");
349dd9d0cfSchristos
359dd9d0cfSchristos int
dwarf_get_ACCESS_name(unsigned access,const char ** s)369dd9d0cfSchristos dwarf_get_ACCESS_name(unsigned access, const char **s)
379dd9d0cfSchristos {
389dd9d0cfSchristos
399dd9d0cfSchristos assert(s != NULL);
409dd9d0cfSchristos
419dd9d0cfSchristos switch (access) {
429dd9d0cfSchristos case DW_ACCESS_public:
439dd9d0cfSchristos *s = "DW_ACCESS_public"; break;
449dd9d0cfSchristos case DW_ACCESS_protected:
459dd9d0cfSchristos *s = "DW_ACCESS_protected"; break;
469dd9d0cfSchristos case DW_ACCESS_private:
479dd9d0cfSchristos *s = "DW_ACCESS_private"; break;
489dd9d0cfSchristos default:
499dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
509dd9d0cfSchristos }
519dd9d0cfSchristos
529dd9d0cfSchristos return (DW_DLV_OK);
539dd9d0cfSchristos }
549dd9d0cfSchristos
559dd9d0cfSchristos int
dwarf_get_AT_name(unsigned attr,const char ** s)569dd9d0cfSchristos dwarf_get_AT_name(unsigned attr, const char **s)
579dd9d0cfSchristos {
589dd9d0cfSchristos
599dd9d0cfSchristos assert(s != NULL);
609dd9d0cfSchristos
619dd9d0cfSchristos switch (attr) {
629dd9d0cfSchristos case DW_AT_abstract_origin:
639dd9d0cfSchristos *s = "DW_AT_abstract_origin"; break;
649dd9d0cfSchristos case DW_AT_accessibility:
659dd9d0cfSchristos *s = "DW_AT_accessibility"; break;
669dd9d0cfSchristos case DW_AT_address_class:
679dd9d0cfSchristos *s = "DW_AT_address_class"; break;
68*5ac3bc71Schristos case DW_AT_addr_base:
69*5ac3bc71Schristos *s = "DW_AT_addr_base"; break;
70*5ac3bc71Schristos case DW_AT_alignment:
71*5ac3bc71Schristos *s = "DW_AT_alignment"; break;
729dd9d0cfSchristos case DW_AT_artificial:
739dd9d0cfSchristos *s = "DW_AT_artificial"; break;
749dd9d0cfSchristos case DW_AT_allocated:
759dd9d0cfSchristos *s = "DW_AT_allocated"; break;
769dd9d0cfSchristos case DW_AT_associated:
779dd9d0cfSchristos *s = "DW_AT_associated"; break;
789dd9d0cfSchristos case DW_AT_base_types:
799dd9d0cfSchristos *s = "DW_AT_base_types"; break;
809dd9d0cfSchristos case DW_AT_binary_scale:
819dd9d0cfSchristos *s = "DW_AT_binary_scale"; break;
829dd9d0cfSchristos case DW_AT_bit_offset:
839dd9d0cfSchristos *s = "DW_AT_bit_offset"; break;
849dd9d0cfSchristos case DW_AT_bit_size:
859dd9d0cfSchristos *s = "DW_AT_bit_size"; break;
869dd9d0cfSchristos case DW_AT_bit_stride:
879dd9d0cfSchristos *s = "DW_AT_bit_stride"; break;
889dd9d0cfSchristos case DW_AT_byte_size:
899dd9d0cfSchristos *s = "DW_AT_byte_size"; break;
909dd9d0cfSchristos case DW_AT_byte_stride:
919dd9d0cfSchristos *s = "DW_AT_byte_stride"; break;
929dd9d0cfSchristos case DW_AT_calling_convention:
939dd9d0cfSchristos *s = "DW_AT_calling_convention"; break;
94*5ac3bc71Schristos case DW_AT_call_all_calls:
95*5ac3bc71Schristos *s = "DW_AT_call_all_calls"; break;
96*5ac3bc71Schristos case DW_AT_call_all_source_calls:
97*5ac3bc71Schristos *s = "DW_AT_call_all_source_calls"; break;
98*5ac3bc71Schristos case DW_AT_call_all_tail_calls:
99*5ac3bc71Schristos *s = "DW_AT_call_all_tail_calls"; break;
100*5ac3bc71Schristos case DW_AT_call_data_location:
101*5ac3bc71Schristos *s = "DW_AT_call_data_location"; break;
102*5ac3bc71Schristos case DW_AT_call_data_value:
103*5ac3bc71Schristos *s = "DW_AT_call_data_value"; break;
104*5ac3bc71Schristos case DW_AT_call_origin:
105*5ac3bc71Schristos *s = "DW_AT_call_origin"; break;
106*5ac3bc71Schristos case DW_AT_call_parameter:
107*5ac3bc71Schristos *s = "DW_AT_call_parameter"; break;
108*5ac3bc71Schristos case DW_AT_call_pc:
109*5ac3bc71Schristos *s = "DW_AT_call_pc"; break;
110*5ac3bc71Schristos case DW_AT_call_return_pc:
111*5ac3bc71Schristos *s = "DW_AT_call_return_pc"; break;
112*5ac3bc71Schristos case DW_AT_call_tail_call:
113*5ac3bc71Schristos *s = "DW_AT_call_tail_call"; break;
114*5ac3bc71Schristos case DW_AT_call_target:
115*5ac3bc71Schristos *s = "DW_AT_call_target"; break;
116*5ac3bc71Schristos case DW_AT_call_target_clobbered:
117*5ac3bc71Schristos *s = "DW_AT_call_target_clobbered"; break;
118*5ac3bc71Schristos case DW_AT_call_value:
119*5ac3bc71Schristos *s = "DW_AT_call_value"; break;
1209dd9d0cfSchristos case DW_AT_common_reference:
1219dd9d0cfSchristos *s = "DW_AT_common_reference"; break;
1229dd9d0cfSchristos case DW_AT_comp_dir:
1239dd9d0cfSchristos *s = "DW_AT_comp_dir"; break;
1249dd9d0cfSchristos case DW_AT_const_expr:
1259dd9d0cfSchristos *s = "DW_AT_const_expr"; break;
1269dd9d0cfSchristos case DW_AT_const_value:
1279dd9d0cfSchristos *s = "DW_AT_const_value"; break;
1289dd9d0cfSchristos case DW_AT_containing_type:
1299dd9d0cfSchristos *s = "DW_AT_containing_type"; break;
1309dd9d0cfSchristos case DW_AT_count:
1319dd9d0cfSchristos *s = "DW_AT_count"; break;
1329dd9d0cfSchristos case DW_AT_call_column:
1339dd9d0cfSchristos *s = "DW_AT_call_column"; break;
1349dd9d0cfSchristos case DW_AT_call_file:
1359dd9d0cfSchristos *s = "DW_AT_call_file"; break;
1369dd9d0cfSchristos case DW_AT_call_line:
1379dd9d0cfSchristos *s = "DW_AT_call_line"; break;
1389dd9d0cfSchristos case DW_AT_data_bit_offset:
1399dd9d0cfSchristos *s = "DW_AT_data_bit_offset"; break;
1409dd9d0cfSchristos case DW_AT_data_location:
1419dd9d0cfSchristos *s = "DW_AT_data_location"; break;
1429dd9d0cfSchristos case DW_AT_data_member_location:
1439dd9d0cfSchristos *s = "DW_AT_data_member_location"; break;
1449dd9d0cfSchristos case DW_AT_decl_column:
1459dd9d0cfSchristos *s = "DW_AT_decl_column"; break;
1469dd9d0cfSchristos case DW_AT_decl_file:
1479dd9d0cfSchristos *s = "DW_AT_decl_file"; break;
1489dd9d0cfSchristos case DW_AT_decl_line:
1499dd9d0cfSchristos *s = "DW_AT_decl_line"; break;
1509dd9d0cfSchristos case DW_AT_declaration:
1519dd9d0cfSchristos *s = "DW_AT_declaration"; break;
1529dd9d0cfSchristos case DW_AT_default_value:
1539dd9d0cfSchristos *s = "DW_AT_default_value"; break;
1549dd9d0cfSchristos case DW_AT_decimal_scale:
1559dd9d0cfSchristos *s = "DW_AT_decimal_scale"; break;
1569dd9d0cfSchristos case DW_AT_decimal_sign:
1579dd9d0cfSchristos *s = "DW_AT_decimal_sign"; break;
158*5ac3bc71Schristos case DW_AT_defaulted:
159*5ac3bc71Schristos *s = "DW_AT_defaulted"; break;
160*5ac3bc71Schristos case DW_AT_deleted:
161*5ac3bc71Schristos *s = "DW_AT_deleted"; break;
1629dd9d0cfSchristos case DW_AT_description:
1639dd9d0cfSchristos *s = "DW_AT_description"; break;
1649dd9d0cfSchristos case DW_AT_digit_count:
1659dd9d0cfSchristos *s = "DW_AT_digit_count"; break;
1669dd9d0cfSchristos case DW_AT_discr:
1679dd9d0cfSchristos *s = "DW_AT_discr"; break;
1689dd9d0cfSchristos case DW_AT_discr_list:
1699dd9d0cfSchristos *s = "DW_AT_discr_list"; break;
1709dd9d0cfSchristos case DW_AT_discr_value:
1719dd9d0cfSchristos *s = "DW_AT_discr_value"; break;
172*5ac3bc71Schristos case DW_AT_dwo_name:
173*5ac3bc71Schristos *s = "DW_AT_dwo_name"; break;
1749dd9d0cfSchristos case DW_AT_element_list:
1759dd9d0cfSchristos *s = "DW_AT_element_list"; break;
1769dd9d0cfSchristos case DW_AT_encoding:
1779dd9d0cfSchristos *s = "DW_AT_encoding"; break;
1789dd9d0cfSchristos case DW_AT_enum_class:
1799dd9d0cfSchristos *s = "DW_AT_enum_class"; break;
1809dd9d0cfSchristos case DW_AT_external:
1819dd9d0cfSchristos *s = "DW_AT_external"; break;
1829dd9d0cfSchristos case DW_AT_entry_pc:
1839dd9d0cfSchristos *s = "DW_AT_entry_pc"; break;
1849dd9d0cfSchristos case DW_AT_extension:
1859dd9d0cfSchristos *s = "DW_AT_extension"; break;
1869dd9d0cfSchristos case DW_AT_explicit:
1879dd9d0cfSchristos *s = "DW_AT_explicit"; break;
188*5ac3bc71Schristos case DW_AT_export_symbols:
189*5ac3bc71Schristos *s = "DW_AT_export_symbols"; break;
1909dd9d0cfSchristos case DW_AT_endianity:
1919dd9d0cfSchristos *s = "DW_AT_endianity"; break;
1929dd9d0cfSchristos case DW_AT_elemental:
1939dd9d0cfSchristos *s = "DW_AT_elemental"; break;
1949dd9d0cfSchristos case DW_AT_frame_base:
1959dd9d0cfSchristos *s = "DW_AT_frame_base"; break;
1969dd9d0cfSchristos case DW_AT_friend:
1979dd9d0cfSchristos *s = "DW_AT_friend"; break;
1989dd9d0cfSchristos case DW_AT_high_pc:
1999dd9d0cfSchristos *s = "DW_AT_high_pc"; break;
2009dd9d0cfSchristos case DW_AT_hi_user:
2019dd9d0cfSchristos *s = "DW_AT_hi_user"; break;
2029dd9d0cfSchristos case DW_AT_identifier_case:
2039dd9d0cfSchristos *s = "DW_AT_identifier_case"; break;
2049dd9d0cfSchristos case DW_AT_import:
2059dd9d0cfSchristos *s = "DW_AT_import"; break;
2069dd9d0cfSchristos case DW_AT_inline:
2079dd9d0cfSchristos *s = "DW_AT_inline"; break;
2089dd9d0cfSchristos case DW_AT_is_optional:
2099dd9d0cfSchristos *s = "DW_AT_is_optional"; break;
2109dd9d0cfSchristos case DW_AT_language:
2119dd9d0cfSchristos *s = "DW_AT_language"; break;
2129dd9d0cfSchristos case DW_AT_linkage_name:
2139dd9d0cfSchristos *s = "DW_AT_linkage_name"; break;
2149dd9d0cfSchristos case DW_AT_lo_user:
2159dd9d0cfSchristos *s = "DW_AT_lo_user"; break;
2169dd9d0cfSchristos case DW_AT_location:
2179dd9d0cfSchristos *s = "DW_AT_location"; break;
218*5ac3bc71Schristos case DW_AT_loclists_base:
219*5ac3bc71Schristos *s = "DW_AT_loclists_base"; break;
2209dd9d0cfSchristos case DW_AT_low_pc:
2219dd9d0cfSchristos *s = "DW_AT_low_pc"; break;
2229dd9d0cfSchristos case DW_AT_lower_bound:
2239dd9d0cfSchristos *s = "DW_AT_lower_bound"; break;
224*5ac3bc71Schristos case DW_AT_macros:
225*5ac3bc71Schristos *s = "DW_AT_macros"; break;
2269dd9d0cfSchristos case DW_AT_macro_info:
2279dd9d0cfSchristos *s = "DW_AT_macro_info"; break;
2289dd9d0cfSchristos case DW_AT_main_subprogram:
2299dd9d0cfSchristos *s = "DW_AT_main_subprogram"; break;
2309dd9d0cfSchristos case DW_AT_mutable:
2319dd9d0cfSchristos *s = "DW_AT_mutable"; break;
2329dd9d0cfSchristos case DW_AT_member:
2339dd9d0cfSchristos *s = "DW_AT_member"; break;
2349dd9d0cfSchristos case DW_AT_name:
2359dd9d0cfSchristos *s = "DW_AT_name"; break;
2369dd9d0cfSchristos case DW_AT_namelist_item:
2379dd9d0cfSchristos *s = "DW_AT_namelist_item"; break;
238*5ac3bc71Schristos case DW_AT_noreturn:
239*5ac3bc71Schristos *s = "DW_AT_noreturn"; break;
2409dd9d0cfSchristos case DW_AT_ordering:
2419dd9d0cfSchristos *s = "DW_AT_ordering"; break;
2429dd9d0cfSchristos case DW_AT_object_pointer:
2439dd9d0cfSchristos *s = "DW_AT_object_pointer"; break;
2449dd9d0cfSchristos case DW_AT_priority:
2459dd9d0cfSchristos *s = "DW_AT_priority"; break;
2469dd9d0cfSchristos case DW_AT_producer:
2479dd9d0cfSchristos *s = "DW_AT_producer"; break;
2489dd9d0cfSchristos case DW_AT_prototyped:
2499dd9d0cfSchristos *s = "DW_AT_prototyped"; break;
2509dd9d0cfSchristos case DW_AT_picture_string:
2519dd9d0cfSchristos *s = "DW_AT_picture_string"; break;
2529dd9d0cfSchristos case DW_AT_pure:
2539dd9d0cfSchristos *s = "DW_AT_pure"; break;
254*5ac3bc71Schristos case DW_AT_reference:
255*5ac3bc71Schristos *s = "DW_AT_reference"; break;
2569dd9d0cfSchristos case DW_AT_return_addr:
2579dd9d0cfSchristos *s = "DW_AT_return_addr"; break;
2589dd9d0cfSchristos case DW_AT_ranges:
2599dd9d0cfSchristos *s = "DW_AT_ranges"; break;
260*5ac3bc71Schristos case DW_AT_rank:
261*5ac3bc71Schristos *s = "DW_AT_rank"; break;
2629dd9d0cfSchristos case DW_AT_recursive:
2639dd9d0cfSchristos *s = "DW_AT_recursive"; break;
264*5ac3bc71Schristos case DW_AT_rnglists_base:
265*5ac3bc71Schristos *s = "DW_AT_rnglists_base"; break;
266*5ac3bc71Schristos case DW_AT_rvalue_reference:
267*5ac3bc71Schristos *s = "DW_AT_rvalue_reference"; break;
2689dd9d0cfSchristos case DW_AT_segment:
2699dd9d0cfSchristos *s = "DW_AT_segment"; break;
2709dd9d0cfSchristos case DW_AT_sibling:
2719dd9d0cfSchristos *s = "DW_AT_sibling"; break;
2729dd9d0cfSchristos case DW_AT_signature:
2739dd9d0cfSchristos *s = "DW_AT_signature"; break;
2749dd9d0cfSchristos case DW_AT_specification:
2759dd9d0cfSchristos *s = "DW_AT_specification"; break;
2769dd9d0cfSchristos case DW_AT_start_scope:
2779dd9d0cfSchristos *s = "DW_AT_start_scope"; break;
2789dd9d0cfSchristos case DW_AT_static_link:
2799dd9d0cfSchristos *s = "DW_AT_static_link"; break;
2809dd9d0cfSchristos case DW_AT_stmt_list:
2819dd9d0cfSchristos *s = "DW_AT_stmt_list"; break;
2829dd9d0cfSchristos case DW_AT_string_length:
2839dd9d0cfSchristos *s = "DW_AT_string_length"; break;
284*5ac3bc71Schristos case DW_AT_string_length_bit_size:
285*5ac3bc71Schristos *s = "DW_AT_string_length_bit_size"; break;
286*5ac3bc71Schristos case DW_AT_string_length_byte_size:
287*5ac3bc71Schristos *s = "DW_AT_string_length_byte_size"; break;
288*5ac3bc71Schristos case DW_AT_str_offsets_base:
289*5ac3bc71Schristos *s = "DW_AT_str_offsets_base"; break;
2909dd9d0cfSchristos case DW_AT_subscr_data:
2919dd9d0cfSchristos *s = "DW_AT_subscr_data"; break;
2929dd9d0cfSchristos case DW_AT_small:
2939dd9d0cfSchristos *s = "DW_AT_small"; break;
2949dd9d0cfSchristos case DW_AT_type:
2959dd9d0cfSchristos *s = "DW_AT_type"; break;
2969dd9d0cfSchristos case DW_AT_trampoline:
2979dd9d0cfSchristos *s = "DW_AT_trampoline"; break;
2989dd9d0cfSchristos case DW_AT_threads_scaled:
2999dd9d0cfSchristos *s = "DW_AT_threads_scaled"; break;
3009dd9d0cfSchristos case DW_AT_upper_bound:
3019dd9d0cfSchristos *s = "DW_AT_upper_bound"; break;
3029dd9d0cfSchristos case DW_AT_use_location:
3039dd9d0cfSchristos *s = "DW_AT_use_location"; break;
3049dd9d0cfSchristos case DW_AT_use_UTF8:
3059dd9d0cfSchristos *s = "DW_AT_use_UTF8"; break;
3069dd9d0cfSchristos case DW_AT_variable_parameter:
3079dd9d0cfSchristos *s = "DW_AT_variable_parameter"; break;
3089dd9d0cfSchristos case DW_AT_virtuality:
3099dd9d0cfSchristos *s = "DW_AT_virtuality"; break;
3109dd9d0cfSchristos case DW_AT_visibility:
3119dd9d0cfSchristos *s = "DW_AT_visibility"; break;
3129dd9d0cfSchristos case DW_AT_vtable_elem_location:
3139dd9d0cfSchristos *s = "DW_AT_vtable_elem_location"; break;
31442bd3019Schristos case DW_AT_sf_names:
31542bd3019Schristos *s = "DW_AT_sf_names"; break;
31642bd3019Schristos case DW_AT_src_info:
31742bd3019Schristos *s = "DW_AT_src_info"; break;
31842bd3019Schristos case DW_AT_mac_info:
31942bd3019Schristos *s = "DW_AT_mac_info"; break;
32042bd3019Schristos case DW_AT_src_coords:
32142bd3019Schristos *s = "DW_AT_src_coords"; break;
32242bd3019Schristos case DW_AT_body_begin:
32342bd3019Schristos *s = "DW_AT_body_begin"; break;
32442bd3019Schristos case DW_AT_body_end:
32542bd3019Schristos *s = "DW_AT_body_end"; break;
326*5ac3bc71Schristos case DW_AT_MIPS_fde:
327*5ac3bc71Schristos *s = "DW_AT_MIPS_fde"; break;
328*5ac3bc71Schristos case DW_AT_MIPS_loop_begin:
329*5ac3bc71Schristos *s = "DW_AT_MIPS_loop_begin"; break;
330*5ac3bc71Schristos case DW_AT_MIPS_tail_loop_begin:
331*5ac3bc71Schristos *s = "DW_AT_MIPS_tail_loop_begin"; break;
332*5ac3bc71Schristos case DW_AT_MIPS_epilog_begin:
333*5ac3bc71Schristos *s = "DW_AT_MIPS_epilog_begin"; break;
334*5ac3bc71Schristos case DW_AT_MIPS_loop_unroll_factor:
335*5ac3bc71Schristos *s = "DW_AT_MIPS_loop_unroll_factor"; break;
336*5ac3bc71Schristos case DW_AT_MIPS_software_pipeline_depth:
337*5ac3bc71Schristos *s = "DW_AT_MIPS_software_pipeline_depth"; break;
338*5ac3bc71Schristos case DW_AT_MIPS_linkage_name:
339*5ac3bc71Schristos *s = "DW_AT_MIPS_linkage_name"; break;
340*5ac3bc71Schristos case DW_AT_MIPS_stride:
341*5ac3bc71Schristos *s = "DW_AT_MIPS_stride"; break;
342*5ac3bc71Schristos case DW_AT_MIPS_abstract_name:
343*5ac3bc71Schristos *s = "DW_AT_MIPS_abstract_name"; break;
344*5ac3bc71Schristos case DW_AT_MIPS_clone_origin:
345*5ac3bc71Schristos *s = "DW_AT_MIPS_clone_origin"; break;
346*5ac3bc71Schristos case DW_AT_MIPS_has_inlines:
347*5ac3bc71Schristos *s = "DW_AT_MIPS_has_inlines"; break;
348*5ac3bc71Schristos case DW_AT_MIPS_stride_byte:
349*5ac3bc71Schristos *s = "DW_AT_MIPS_stride_byte"; break;
350*5ac3bc71Schristos case DW_AT_MIPS_stride_elem:
351*5ac3bc71Schristos *s = "DW_AT_MIPS_stride_elem"; break;
352*5ac3bc71Schristos case DW_AT_MIPS_ptr_dopetype:
353*5ac3bc71Schristos *s = "DW_AT_MIPS_ptr_dopetype"; break;
354*5ac3bc71Schristos case DW_AT_MIPS_allocatable_dopetype:
355*5ac3bc71Schristos *s = "DW_AT_MIPS_allocatable_dopetype"; break;
356*5ac3bc71Schristos case DW_AT_MIPS_assumed_shape_dopetype:
357*5ac3bc71Schristos *s = "DW_AT_MIPS_assumed_shape_dopetype"; break;
358*5ac3bc71Schristos case DW_AT_MIPS_assumed_size:
359*5ac3bc71Schristos *s = "DW_AT_MIPS_assumed_size"; break;
36042bd3019Schristos case DW_AT_GNU_vector:
36142bd3019Schristos *s = "DW_AT_GNU_vector"; break;
36242bd3019Schristos case DW_AT_GNU_guarded_by:
36342bd3019Schristos *s = "DW_AT_GNU_guarded_by"; break;
36442bd3019Schristos case DW_AT_GNU_pt_guarded_by:
36542bd3019Schristos *s = "DW_AT_GNU_pt_guarded_by"; break;
36642bd3019Schristos case DW_AT_GNU_guarded:
36742bd3019Schristos *s = "DW_AT_GNU_guarded"; break;
36842bd3019Schristos case DW_AT_GNU_pt_guarded:
36942bd3019Schristos *s = "DW_AT_GNU_pt_guarded"; break;
37042bd3019Schristos case DW_AT_GNU_locks_excluded:
37142bd3019Schristos *s = "DW_AT_GNU_locks_excluded"; break;
37242bd3019Schristos case DW_AT_GNU_exclusive_locks_required:
37342bd3019Schristos *s = "DW_AT_GNU_exclusive_locks_required"; break;
37442bd3019Schristos case DW_AT_GNU_shared_locks_required:
37542bd3019Schristos *s = "DW_AT_GNU_shared_locks_required"; break;
37642bd3019Schristos case DW_AT_GNU_odr_signature:
37742bd3019Schristos *s = "DW_AT_GNU_odr_signature"; break;
37842bd3019Schristos case DW_AT_GNU_template_name:
37942bd3019Schristos *s = "DW_AT_GNU_template_name"; break;
38042bd3019Schristos case DW_AT_GNU_call_site_value:
38142bd3019Schristos *s = "DW_AT_GNU_call_site_value"; break;
38242bd3019Schristos case DW_AT_GNU_call_site_data_value:
38342bd3019Schristos *s = "DW_AT_GNU_call_site_data_value"; break;
38442bd3019Schristos case DW_AT_GNU_call_site_target:
38542bd3019Schristos *s = "DW_AT_GNU_call_site_target"; break;
38642bd3019Schristos case DW_AT_GNU_call_site_target_clobbered:
38742bd3019Schristos *s = "DW_AT_GNU_call_site_target_clobbered"; break;
38842bd3019Schristos case DW_AT_GNU_tail_call:
38942bd3019Schristos *s = "DW_AT_GNU_tail_call"; break;
39042bd3019Schristos case DW_AT_GNU_all_tail_call_sites:
39142bd3019Schristos *s = "DW_AT_GNU_all_tail_call_sites"; break;
39242bd3019Schristos case DW_AT_GNU_all_call_sites:
39342bd3019Schristos *s = "DW_AT_GNU_all_call_sites"; break;
39442bd3019Schristos case DW_AT_GNU_all_source_call_sites:
39542bd3019Schristos *s = "DW_AT_GNU_all_source_call_sites"; break;
396*5ac3bc71Schristos case DW_AT_APPLE_optimized:
397*5ac3bc71Schristos *s = "DW_AT_APPLE_optimized"; break;
398*5ac3bc71Schristos case DW_AT_APPLE_flags:
399*5ac3bc71Schristos *s = "DW_AT_APPLE_flags"; break;
400*5ac3bc71Schristos case DW_AT_APPLE_isa:
401*5ac3bc71Schristos *s = "DW_AT_APPLE_isa"; break;
402*5ac3bc71Schristos case DW_AT_APPLE_block:
403*5ac3bc71Schristos *s = "DW_AT_APPLE_block"; break;
404*5ac3bc71Schristos case DW_AT_APPLE_major_runtime_vers:
405*5ac3bc71Schristos *s = "DW_AT_APPLE_major_runtime_vers"; break;
406*5ac3bc71Schristos case DW_AT_APPLE_runtime_class:
407*5ac3bc71Schristos *s = "DW_AT_APPLE_runtime_class"; break;
408*5ac3bc71Schristos case DW_AT_APPLE_omit_frame_ptr:
409*5ac3bc71Schristos *s = "DW_AT_APPLE_omit_frame_ptr"; break;
410*5ac3bc71Schristos case DW_AT_APPLE_property_name:
411*5ac3bc71Schristos *s = "DW_AT_APPLE_property_name"; break;
412*5ac3bc71Schristos case DW_AT_APPLE_property_getter:
413*5ac3bc71Schristos *s = "DW_AT_APPLE_property_getter"; break;
414*5ac3bc71Schristos case DW_AT_APPLE_property_setter:
415*5ac3bc71Schristos *s = "DW_AT_APPLE_property_setter"; break;
416*5ac3bc71Schristos case DW_AT_APPLE_property_attribute:
417*5ac3bc71Schristos *s = "DW_AT_APPLE_property_attribute"; break;
418*5ac3bc71Schristos case DW_AT_APPLE_objc_complete_type:
419*5ac3bc71Schristos *s = "DW_AT_APPLE_objc_complete_type"; break;
420*5ac3bc71Schristos case DW_AT_APPLE_property:
421*5ac3bc71Schristos *s = "DW_AT_APPLE_property"; break;
4229dd9d0cfSchristos default:
4239dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
4249dd9d0cfSchristos }
4259dd9d0cfSchristos
4269dd9d0cfSchristos return (DW_DLV_OK);
4279dd9d0cfSchristos }
4289dd9d0cfSchristos
4299dd9d0cfSchristos int
dwarf_get_ATE_name(unsigned ate,const char ** s)4309dd9d0cfSchristos dwarf_get_ATE_name(unsigned ate, const char **s)
4319dd9d0cfSchristos {
4329dd9d0cfSchristos
4339dd9d0cfSchristos assert(s != NULL);
4349dd9d0cfSchristos
4359dd9d0cfSchristos switch(ate) {
4369dd9d0cfSchristos case DW_ATE_address:
4379dd9d0cfSchristos *s = "DW_ATE_address"; break;
4389dd9d0cfSchristos case DW_ATE_boolean:
4399dd9d0cfSchristos *s = "DW_ATE_boolean"; break;
4409dd9d0cfSchristos case DW_ATE_complex_float:
4419dd9d0cfSchristos *s = "DW_ATE_complex_float"; break;
4429dd9d0cfSchristos case DW_ATE_float:
4439dd9d0cfSchristos *s = "DW_ATE_float"; break;
4449dd9d0cfSchristos case DW_ATE_signed:
4459dd9d0cfSchristos *s = "DW_ATE_signed"; break;
4469dd9d0cfSchristos case DW_ATE_signed_char:
4479dd9d0cfSchristos *s = "DW_ATE_signed_char"; break;
4489dd9d0cfSchristos case DW_ATE_unsigned:
4499dd9d0cfSchristos *s = "DW_ATE_unsigned"; break;
4509dd9d0cfSchristos case DW_ATE_unsigned_char:
4519dd9d0cfSchristos *s = "DW_ATE_unsigned_char"; break;
4529dd9d0cfSchristos case DW_ATE_imaginary_float:
4539dd9d0cfSchristos *s = "DW_ATE_imaginary_float"; break;
4549dd9d0cfSchristos case DW_ATE_packed_decimal:
4559dd9d0cfSchristos *s = "DW_ATE_packed_decimal"; break;
4569dd9d0cfSchristos case DW_ATE_numeric_string:
4579dd9d0cfSchristos *s = "DW_ATE_numeric_string"; break;
4589dd9d0cfSchristos case DW_ATE_edited:
4599dd9d0cfSchristos *s = "DW_ATE_edited"; break;
4609dd9d0cfSchristos case DW_ATE_signed_fixed:
4619dd9d0cfSchristos *s = "DW_ATE_signed_fixed"; break;
4629dd9d0cfSchristos case DW_ATE_unsigned_fixed:
4639dd9d0cfSchristos *s = "DW_ATE_unsigned_fixed"; break;
4649dd9d0cfSchristos case DW_ATE_decimal_float:
4659dd9d0cfSchristos *s = "DW_ATE_decimal_float"; break;
4669dd9d0cfSchristos case DW_ATE_lo_user:
4679dd9d0cfSchristos *s = "DW_ATE_lo_user"; break;
4689dd9d0cfSchristos case DW_ATE_hi_user:
4699dd9d0cfSchristos *s = "DW_ATE_hi_user"; break;
4709dd9d0cfSchristos default:
4719dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
4729dd9d0cfSchristos }
4739dd9d0cfSchristos
4749dd9d0cfSchristos return (DW_DLV_OK);
4759dd9d0cfSchristos }
4769dd9d0cfSchristos
4779dd9d0cfSchristos int
dwarf_get_CC_name(unsigned cc,const char ** s)4789dd9d0cfSchristos dwarf_get_CC_name(unsigned cc, const char **s)
4799dd9d0cfSchristos {
4809dd9d0cfSchristos
4819dd9d0cfSchristos assert(s != NULL);
4829dd9d0cfSchristos
4839dd9d0cfSchristos switch (cc) {
4849dd9d0cfSchristos case DW_CC_normal:
4859dd9d0cfSchristos *s = "DW_CC_normal"; break;
4869dd9d0cfSchristos case DW_CC_program:
4879dd9d0cfSchristos *s = "DW_CC_program"; break;
4889dd9d0cfSchristos case DW_CC_nocall:
4899dd9d0cfSchristos *s = "DW_CC_nocall"; break;
4909dd9d0cfSchristos case DW_CC_lo_user:
4919dd9d0cfSchristos *s = "DW_CC_lo_user"; break;
4929dd9d0cfSchristos case DW_CC_hi_user:
4939dd9d0cfSchristos *s = "DW_CC_hi_user"; break;
4949dd9d0cfSchristos default:
4959dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
4969dd9d0cfSchristos }
4979dd9d0cfSchristos
4989dd9d0cfSchristos return (DW_DLV_OK);
4999dd9d0cfSchristos }
5009dd9d0cfSchristos
5019dd9d0cfSchristos int
dwarf_get_CFA_name(unsigned cfa,const char ** s)5029dd9d0cfSchristos dwarf_get_CFA_name(unsigned cfa, const char **s)
5039dd9d0cfSchristos {
5049dd9d0cfSchristos
5059dd9d0cfSchristos assert(s != NULL);
5069dd9d0cfSchristos
5079dd9d0cfSchristos switch (cfa) {
5089dd9d0cfSchristos case DW_CFA_advance_loc:
5099dd9d0cfSchristos *s = "DW_CFA_advance_loc"; break;
5109dd9d0cfSchristos case DW_CFA_offset:
5119dd9d0cfSchristos *s = "DW_CFA_offset"; break;
5129dd9d0cfSchristos case DW_CFA_restore:
5139dd9d0cfSchristos *s = "DW_CFA_restore"; break;
5149dd9d0cfSchristos case DW_CFA_nop:
5159dd9d0cfSchristos *s = "DW_CFA_nop"; break;
5169dd9d0cfSchristos case DW_CFA_set_loc:
5179dd9d0cfSchristos *s = "DW_CFA_set_loc"; break;
5189dd9d0cfSchristos case DW_CFA_advance_loc1:
5199dd9d0cfSchristos *s = "DW_CFA_advance_loc1"; break;
5209dd9d0cfSchristos case DW_CFA_advance_loc2:
5219dd9d0cfSchristos *s = "DW_CFA_advance_loc2"; break;
5229dd9d0cfSchristos case DW_CFA_advance_loc4:
5239dd9d0cfSchristos *s = "DW_CFA_advance_loc4"; break;
5249dd9d0cfSchristos case DW_CFA_offset_extended:
5259dd9d0cfSchristos *s = "DW_CFA_offset_extended"; break;
5269dd9d0cfSchristos case DW_CFA_restore_extended:
5279dd9d0cfSchristos *s = "DW_CFA_restore_extended"; break;
5289dd9d0cfSchristos case DW_CFA_undefined:
5299dd9d0cfSchristos *s = "DW_CFA_undefined"; break;
5309dd9d0cfSchristos case DW_CFA_same_value:
5319dd9d0cfSchristos *s = "DW_CFA_same_value"; break;
5329dd9d0cfSchristos case DW_CFA_register:
5339dd9d0cfSchristos *s = "DW_CFA_register"; break;
5349dd9d0cfSchristos case DW_CFA_remember_state:
5359dd9d0cfSchristos *s = "DW_CFA_remember_state"; break;
5369dd9d0cfSchristos case DW_CFA_restore_state:
5379dd9d0cfSchristos *s = "DW_CFA_restore_state"; break;
5389dd9d0cfSchristos case DW_CFA_def_cfa:
5399dd9d0cfSchristos *s = "DW_CFA_def_cfa"; break;
5409dd9d0cfSchristos case DW_CFA_def_cfa_register:
5419dd9d0cfSchristos *s = "DW_CFA_def_cfa_register"; break;
5429dd9d0cfSchristos case DW_CFA_def_cfa_offset:
5439dd9d0cfSchristos *s = "DW_CFA_def_cfa_offset"; break;
5449dd9d0cfSchristos case DW_CFA_def_cfa_expression:
5459dd9d0cfSchristos *s = "DW_CFA_def_cfa_expression"; break;
5469dd9d0cfSchristos case DW_CFA_expression:
5479dd9d0cfSchristos *s = "DW_CFA_expression"; break;
5489dd9d0cfSchristos case DW_CFA_offset_extended_sf:
5499dd9d0cfSchristos *s = "DW_CFA_offset_extended_sf"; break;
5509dd9d0cfSchristos case DW_CFA_def_cfa_sf:
5519dd9d0cfSchristos *s = "DW_CFA_def_cfa_sf"; break;
5529dd9d0cfSchristos case DW_CFA_def_cfa_offset_sf:
5539dd9d0cfSchristos *s = "DW_CFA_def_cfa_offset_sf"; break;
5549dd9d0cfSchristos case DW_CFA_val_offset:
5559dd9d0cfSchristos *s = "DW_CFA_val_offset"; break;
5569dd9d0cfSchristos case DW_CFA_val_offset_sf:
5579dd9d0cfSchristos *s = "DW_CFA_val_offset_sf"; break;
5589dd9d0cfSchristos case DW_CFA_val_expression:
5599dd9d0cfSchristos *s = "DW_CFA_val_expression"; break;
5609dd9d0cfSchristos case DW_CFA_lo_user:
5619dd9d0cfSchristos *s = "DW_CFA_lo_user"; break;
5629dd9d0cfSchristos case DW_CFA_high_user:
5639dd9d0cfSchristos *s = "DW_CFA_high_user"; break;
5649dd9d0cfSchristos default:
5659dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
5669dd9d0cfSchristos }
5679dd9d0cfSchristos
5689dd9d0cfSchristos return (DW_DLV_OK);
5699dd9d0cfSchristos }
5709dd9d0cfSchristos
5719dd9d0cfSchristos int
dwarf_get_CHILDREN_name(unsigned children,const char ** s)5729dd9d0cfSchristos dwarf_get_CHILDREN_name(unsigned children, const char **s)
5739dd9d0cfSchristos {
5749dd9d0cfSchristos
5759dd9d0cfSchristos assert(s != NULL);
5769dd9d0cfSchristos
5779dd9d0cfSchristos switch (children) {
5789dd9d0cfSchristos case DW_CHILDREN_no:
5799dd9d0cfSchristos *s = "DW_CHILDREN_no"; break;
5809dd9d0cfSchristos case DW_CHILDREN_yes:
5819dd9d0cfSchristos *s = "DW_CHILDREN_yes"; break;
5829dd9d0cfSchristos default:
5839dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
5849dd9d0cfSchristos }
5859dd9d0cfSchristos
5869dd9d0cfSchristos return (DW_DLV_OK);
5879dd9d0cfSchristos }
5889dd9d0cfSchristos
5899dd9d0cfSchristos int
dwarf_get_FORM_name(unsigned form,const char ** s)5909dd9d0cfSchristos dwarf_get_FORM_name(unsigned form, const char **s)
5919dd9d0cfSchristos {
5929dd9d0cfSchristos
5939dd9d0cfSchristos assert(s != NULL);
5949dd9d0cfSchristos
5959dd9d0cfSchristos switch (form) {
5969dd9d0cfSchristos case DW_FORM_addr:
5979dd9d0cfSchristos *s = "DW_FORM_addr"; break;
598*5ac3bc71Schristos case DW_FORM_addrx:
599*5ac3bc71Schristos *s = "DW_FORM_addrx"; break;
600*5ac3bc71Schristos case DW_FORM_addrx1:
601*5ac3bc71Schristos *s = "DW_FORM_addrx1"; break;
602*5ac3bc71Schristos case DW_FORM_addrx2:
603*5ac3bc71Schristos *s = "DW_FORM_addrx2"; break;
604*5ac3bc71Schristos case DW_FORM_addrx3:
605*5ac3bc71Schristos *s = "DW_FORM_addrx3"; break;
606*5ac3bc71Schristos case DW_FORM_addrx4:
607*5ac3bc71Schristos *s = "DW_FORM_addrx4"; break;
6089dd9d0cfSchristos case DW_FORM_block:
6099dd9d0cfSchristos *s = "DW_FORM_block"; break;
6109dd9d0cfSchristos case DW_FORM_block1:
6119dd9d0cfSchristos *s = "DW_FORM_block1"; break;
6129dd9d0cfSchristos case DW_FORM_block2:
6139dd9d0cfSchristos *s = "DW_FORM_block2"; break;
6149dd9d0cfSchristos case DW_FORM_block4:
6159dd9d0cfSchristos *s = "DW_FORM_block4"; break;
6169dd9d0cfSchristos case DW_FORM_data1:
6179dd9d0cfSchristos *s = "DW_FORM_data1"; break;
6189dd9d0cfSchristos case DW_FORM_data2:
6199dd9d0cfSchristos *s = "DW_FORM_data2"; break;
6209dd9d0cfSchristos case DW_FORM_data4:
6219dd9d0cfSchristos *s = "DW_FORM_data4"; break;
6229dd9d0cfSchristos case DW_FORM_data8:
6239dd9d0cfSchristos *s = "DW_FORM_data8"; break;
624*5ac3bc71Schristos case DW_FORM_data16:
625*5ac3bc71Schristos *s = "DW_FORM_data16"; break;
6269dd9d0cfSchristos case DW_FORM_exprloc:
6279dd9d0cfSchristos *s = "DW_FORM_exprloc"; break;
6289dd9d0cfSchristos case DW_FORM_flag:
6299dd9d0cfSchristos *s = "DW_FORM_flag"; break;
6309dd9d0cfSchristos case DW_FORM_flag_present:
6319dd9d0cfSchristos *s = "DW_FORM_flag_present"; break;
632*5ac3bc71Schristos case DW_FORM_implicit_const:
633*5ac3bc71Schristos *s = "DW_FORM_implicit_const"; break;
6349dd9d0cfSchristos case DW_FORM_indirect:
6359dd9d0cfSchristos *s = "DW_FORM_indirect"; break;
636*5ac3bc71Schristos case DW_FORM_line_strp:
637*5ac3bc71Schristos *s = "DW_FORM_line_strp"; break;
638*5ac3bc71Schristos case DW_FORM_loclistx:
639*5ac3bc71Schristos *s = "DW_FORM_loclistx"; break;
6409dd9d0cfSchristos case DW_FORM_ref1:
6419dd9d0cfSchristos *s = "DW_FORM_ref1"; break;
6429dd9d0cfSchristos case DW_FORM_ref2:
6439dd9d0cfSchristos *s = "DW_FORM_ref2"; break;
6449dd9d0cfSchristos case DW_FORM_ref4:
6459dd9d0cfSchristos *s = "DW_FORM_ref4"; break;
6469dd9d0cfSchristos case DW_FORM_ref8:
6479dd9d0cfSchristos *s = "DW_FORM_ref8"; break;
6489dd9d0cfSchristos case DW_FORM_ref_addr:
6499dd9d0cfSchristos *s = "DW_FORM_ref_addr"; break;
6509dd9d0cfSchristos case DW_FORM_ref_sig8:
6519dd9d0cfSchristos *s = "DW_FORM_ref_sig8"; break;
652*5ac3bc71Schristos case DW_FORM_ref_sup4:
653*5ac3bc71Schristos *s = "DW_FORM_ref_sup4"; break;
654*5ac3bc71Schristos case DW_FORM_ref_sup8:
655*5ac3bc71Schristos *s = "DW_FORM_ref_sup8"; break;
6569dd9d0cfSchristos case DW_FORM_ref_udata:
6579dd9d0cfSchristos *s = "DW_FORM_ref_udata"; break;
658*5ac3bc71Schristos case DW_FORM_rnglistx:
659*5ac3bc71Schristos *s = "DW_FORM_rnglistx"; break;
6609dd9d0cfSchristos case DW_FORM_sdata:
6619dd9d0cfSchristos *s = "DW_FORM_sdata"; break;
6629dd9d0cfSchristos case DW_FORM_sec_offset:
6639dd9d0cfSchristos *s = "DW_FORM_sec_offset"; break;
6649dd9d0cfSchristos case DW_FORM_string:
6659dd9d0cfSchristos *s = "DW_FORM_string"; break;
6669dd9d0cfSchristos case DW_FORM_strp:
6679dd9d0cfSchristos *s = "DW_FORM_strp"; break;
668*5ac3bc71Schristos case DW_FORM_strp_sup:
669*5ac3bc71Schristos *s = "DW_FORM_strp_sup"; break;
670*5ac3bc71Schristos case DW_FORM_strx:
671*5ac3bc71Schristos *s = "DW_FORM_strx"; break;
672*5ac3bc71Schristos case DW_FORM_strx1:
673*5ac3bc71Schristos *s = "DW_FORM_strx1"; break;
674*5ac3bc71Schristos case DW_FORM_strx2:
675*5ac3bc71Schristos *s = "DW_FORM_strx2"; break;
676*5ac3bc71Schristos case DW_FORM_strx3:
677*5ac3bc71Schristos *s = "DW_FORM_strx3"; break;
678*5ac3bc71Schristos case DW_FORM_strx4:
679*5ac3bc71Schristos *s = "DW_FORM_strx4"; break;
6809dd9d0cfSchristos case DW_FORM_udata:
6819dd9d0cfSchristos *s = "DW_FORM_udata"; break;
6829dd9d0cfSchristos default:
6839dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
6849dd9d0cfSchristos }
6859dd9d0cfSchristos
6869dd9d0cfSchristos return (DW_DLV_OK);
6879dd9d0cfSchristos }
6889dd9d0cfSchristos
6899dd9d0cfSchristos int
dwarf_get_DS_name(unsigned ds,const char ** s)6909dd9d0cfSchristos dwarf_get_DS_name(unsigned ds, const char **s)
6919dd9d0cfSchristos {
6929dd9d0cfSchristos
6939dd9d0cfSchristos assert(s != NULL);
6949dd9d0cfSchristos
6959dd9d0cfSchristos switch (ds) {
6969dd9d0cfSchristos case DW_DS_unsigned:
6979dd9d0cfSchristos *s = "DW_DS_unsigned"; break;
6989dd9d0cfSchristos case DW_DS_leading_overpunch:
6999dd9d0cfSchristos *s = "DW_DS_leading_overpunch"; break;
7009dd9d0cfSchristos case DW_DS_trailing_overpunch:
7019dd9d0cfSchristos *s = "DW_DS_trailing_overpunch"; break;
7029dd9d0cfSchristos case DW_DS_leading_separate:
7039dd9d0cfSchristos *s = "DW_DS_leading_separate"; break;
7049dd9d0cfSchristos case DW_DS_trailing_separate:
705*5ac3bc71Schristos *s = "DW_DS_trailing_separate"; break;
7069dd9d0cfSchristos default:
7079dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
7089dd9d0cfSchristos }
7099dd9d0cfSchristos
7109dd9d0cfSchristos return (DW_DLV_OK);
7119dd9d0cfSchristos }
7129dd9d0cfSchristos
7139dd9d0cfSchristos int
dwarf_get_DSC_name(unsigned dsc,const char ** s)7149dd9d0cfSchristos dwarf_get_DSC_name(unsigned dsc, const char **s)
7159dd9d0cfSchristos {
7169dd9d0cfSchristos
7179dd9d0cfSchristos assert(s != NULL);
7189dd9d0cfSchristos
7199dd9d0cfSchristos switch (dsc) {
7209dd9d0cfSchristos case DW_DSC_label:
7219dd9d0cfSchristos *s = "DW_DSC_label"; break;
7229dd9d0cfSchristos case DW_DSC_range:
7239dd9d0cfSchristos *s = "DW_DSC_range"; break;
7249dd9d0cfSchristos default:
7259dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
7269dd9d0cfSchristos }
7279dd9d0cfSchristos
7289dd9d0cfSchristos return (DW_DLV_OK);
7299dd9d0cfSchristos }
7309dd9d0cfSchristos
7319dd9d0cfSchristos int
dwarf_get_EH_name(unsigned eh,const char ** s)7329dd9d0cfSchristos dwarf_get_EH_name(unsigned eh, const char **s)
7339dd9d0cfSchristos {
7349dd9d0cfSchristos
7359dd9d0cfSchristos assert(s != NULL);
7369dd9d0cfSchristos
7379dd9d0cfSchristos switch (eh) {
7389dd9d0cfSchristos case DW_EH_PE_absptr:
7399dd9d0cfSchristos *s = "DW_EH_PE_absptr"; break;
7409dd9d0cfSchristos case DW_EH_PE_uleb128:
7419dd9d0cfSchristos *s = "DW_EH_PE_uleb128"; break;
7429dd9d0cfSchristos case DW_EH_PE_udata2:
7439dd9d0cfSchristos *s = "DW_EH_PE_udata2"; break;
7449dd9d0cfSchristos case DW_EH_PE_udata4:
7459dd9d0cfSchristos *s = "DW_EH_PE_udata4"; break;
7469dd9d0cfSchristos case DW_EH_PE_udata8:
7479dd9d0cfSchristos *s = "DW_EH_PE_udata8"; break;
7489dd9d0cfSchristos case DW_EH_PE_sleb128:
7499dd9d0cfSchristos *s = "DW_EH_PE_sleb128"; break;
7509dd9d0cfSchristos case DW_EH_PE_sdata2:
7519dd9d0cfSchristos *s = "DW_EH_PE_sdata2"; break;
7529dd9d0cfSchristos case DW_EH_PE_sdata4:
7539dd9d0cfSchristos *s = "DW_EH_PE_sdata4"; break;
7549dd9d0cfSchristos case DW_EH_PE_sdata8:
7559dd9d0cfSchristos *s = "DW_EH_PE_sdata8"; break;
7569dd9d0cfSchristos case DW_EH_PE_pcrel:
7579dd9d0cfSchristos *s = "DW_EH_PE_pcrel"; break;
7589dd9d0cfSchristos case DW_EH_PE_textrel:
7599dd9d0cfSchristos *s = "DW_EH_PE_textrel"; break;
7609dd9d0cfSchristos case DW_EH_PE_datarel:
7619dd9d0cfSchristos *s = "DW_EH_PE_datarel"; break;
7629dd9d0cfSchristos case DW_EH_PE_funcrel:
7639dd9d0cfSchristos *s = "DW_EH_PE_funcrel"; break;
7649dd9d0cfSchristos case DW_EH_PE_aligned:
7659dd9d0cfSchristos *s = "DW_EH_PE_aligned"; break;
7669dd9d0cfSchristos case DW_EH_PE_omit:
7679dd9d0cfSchristos *s = "DW_EH_PE_omit"; break;
7689dd9d0cfSchristos default:
7699dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
7709dd9d0cfSchristos }
7719dd9d0cfSchristos
7729dd9d0cfSchristos return (DW_DLV_OK);
7739dd9d0cfSchristos }
7749dd9d0cfSchristos
7759dd9d0cfSchristos int
dwarf_get_END_name(unsigned end,const char ** s)7769dd9d0cfSchristos dwarf_get_END_name(unsigned end, const char **s)
7779dd9d0cfSchristos {
7789dd9d0cfSchristos
7799dd9d0cfSchristos assert(s != NULL);
7809dd9d0cfSchristos
7819dd9d0cfSchristos switch (end) {
7829dd9d0cfSchristos case DW_END_default:
7839dd9d0cfSchristos *s = "DW_END_default"; break;
7849dd9d0cfSchristos case DW_END_big:
7859dd9d0cfSchristos *s = "DW_END_big"; break;
7869dd9d0cfSchristos case DW_END_little:
7879dd9d0cfSchristos *s = "DW_END_little"; break;
7889dd9d0cfSchristos case DW_END_lo_user:
7899dd9d0cfSchristos *s = "DW_END_lo_user"; break;
7909dd9d0cfSchristos case DW_END_high_user:
7919dd9d0cfSchristos *s = "DW_END_high_user"; break;
7929dd9d0cfSchristos default:
7939dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
7949dd9d0cfSchristos }
7959dd9d0cfSchristos
7969dd9d0cfSchristos return (DW_DLV_OK);
7979dd9d0cfSchristos }
7989dd9d0cfSchristos
7999dd9d0cfSchristos int
dwarf_get_ID_name(unsigned id,const char ** s)8009dd9d0cfSchristos dwarf_get_ID_name(unsigned id, const char **s)
8019dd9d0cfSchristos {
8029dd9d0cfSchristos
8039dd9d0cfSchristos assert(s != NULL);
8049dd9d0cfSchristos
8059dd9d0cfSchristos switch (id) {
8069dd9d0cfSchristos case DW_ID_case_sensitive:
8079dd9d0cfSchristos *s = "DW_ID_case_sensitive"; break;
8089dd9d0cfSchristos case DW_ID_up_case:
8099dd9d0cfSchristos *s = "DW_ID_up_case"; break;
8109dd9d0cfSchristos case DW_ID_down_case:
8119dd9d0cfSchristos *s = "DW_ID_down_case"; break;
8129dd9d0cfSchristos case DW_ID_case_insensitive:
8139dd9d0cfSchristos *s = "DW_ID_case_insensitive"; break;
8149dd9d0cfSchristos default:
8159dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
8169dd9d0cfSchristos }
8179dd9d0cfSchristos
8189dd9d0cfSchristos return (DW_DLV_OK);
8199dd9d0cfSchristos }
8209dd9d0cfSchristos
8219dd9d0cfSchristos int
dwarf_get_INL_name(unsigned inl,const char ** s)8229dd9d0cfSchristos dwarf_get_INL_name(unsigned inl, const char **s)
8239dd9d0cfSchristos {
8249dd9d0cfSchristos
8259dd9d0cfSchristos assert(s != NULL);
8269dd9d0cfSchristos
8279dd9d0cfSchristos switch (inl) {
8289dd9d0cfSchristos case DW_INL_not_inlined:
8299dd9d0cfSchristos *s = "DW_INL_not_inlined"; break;
8309dd9d0cfSchristos case DW_INL_inlined:
8319dd9d0cfSchristos *s = "DW_INL_inlined"; break;
8329dd9d0cfSchristos case DW_INL_declared_not_inlined:
8339dd9d0cfSchristos *s = "DW_INL_declared_not_inlined"; break;
8349dd9d0cfSchristos case DW_INL_declared_inlined:
8359dd9d0cfSchristos *s = "DW_INL_declared_inlined"; break;
8369dd9d0cfSchristos default:
8379dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
8389dd9d0cfSchristos }
8399dd9d0cfSchristos
8409dd9d0cfSchristos return (DW_DLV_OK);
8419dd9d0cfSchristos }
8429dd9d0cfSchristos
8439dd9d0cfSchristos int
dwarf_get_LANG_name(unsigned lang,const char ** s)8449dd9d0cfSchristos dwarf_get_LANG_name(unsigned lang, const char **s)
8459dd9d0cfSchristos {
8469dd9d0cfSchristos
8479dd9d0cfSchristos assert(s != NULL);
8489dd9d0cfSchristos
8499dd9d0cfSchristos switch (lang) {
8509dd9d0cfSchristos case DW_LANG_C89:
8519dd9d0cfSchristos *s = "DW_LANG_C89"; break;
8529dd9d0cfSchristos case DW_LANG_C:
8539dd9d0cfSchristos *s = "DW_LANG_C"; break;
8549dd9d0cfSchristos case DW_LANG_Ada83:
8559dd9d0cfSchristos *s = "DW_LANG_Ada83"; break;
8569dd9d0cfSchristos case DW_LANG_C_plus_plus:
8579dd9d0cfSchristos *s = "DW_LANG_C_plus_plus"; break;
8589dd9d0cfSchristos case DW_LANG_Cobol74:
8599dd9d0cfSchristos *s = "DW_LANG_Cobol74"; break;
8609dd9d0cfSchristos case DW_LANG_Cobol85:
8619dd9d0cfSchristos *s = "DW_LANG_Cobol85"; break;
8629dd9d0cfSchristos case DW_LANG_Fortran77:
8639dd9d0cfSchristos *s = "DW_LANG_Fortran77"; break;
8649dd9d0cfSchristos case DW_LANG_Fortran90:
8659dd9d0cfSchristos *s = "DW_LANG_Fortran90"; break;
8669dd9d0cfSchristos case DW_LANG_Pascal83:
8679dd9d0cfSchristos *s = "DW_LANG_Pascal83"; break;
8689dd9d0cfSchristos case DW_LANG_Modula2:
8699dd9d0cfSchristos *s = "DW_LANG_Modula2"; break;
8709dd9d0cfSchristos case DW_LANG_Java:
8719dd9d0cfSchristos *s = "DW_LANG_Java"; break;
8729dd9d0cfSchristos case DW_LANG_C99:
8739dd9d0cfSchristos *s = "DW_LANG_C99"; break;
8749dd9d0cfSchristos case DW_LANG_Ada95:
8759dd9d0cfSchristos *s = "DW_LANG_Ada95"; break;
8769dd9d0cfSchristos case DW_LANG_Fortran95:
8779dd9d0cfSchristos *s = "DW_LANG_Fortran95"; break;
8789dd9d0cfSchristos case DW_LANG_PLI:
8799dd9d0cfSchristos *s = "DW_LANG_PLI"; break;
8809dd9d0cfSchristos case DW_LANG_ObjC:
8819dd9d0cfSchristos *s = "DW_LANG_ObjC"; break;
8829dd9d0cfSchristos case DW_LANG_ObjC_plus_plus:
8839dd9d0cfSchristos *s = "DW_LANG_ObjC_plus_plus"; break;
8849dd9d0cfSchristos case DW_LANG_UPC:
8859dd9d0cfSchristos *s = "DW_LANG_UPC"; break;
8869dd9d0cfSchristos case DW_LANG_D:
8879dd9d0cfSchristos *s = "DW_LANG_D"; break;
888*5ac3bc71Schristos case DW_LANG_Python:
889*5ac3bc71Schristos *s = "DW_LANG_Python"; break;
890*5ac3bc71Schristos case DW_LANG_OpenCL:
891*5ac3bc71Schristos *s = "DW_LANG_OpenCL"; break;
892*5ac3bc71Schristos case DW_LANG_Go:
893*5ac3bc71Schristos *s = "DW_LANG_Go"; break;
894*5ac3bc71Schristos case DW_LANG_Modula3:
895*5ac3bc71Schristos *s = "DW_LANG_Modula3"; break;
896*5ac3bc71Schristos case DW_LANG_Haskell:
897*5ac3bc71Schristos *s = "DW_LANG_Haskell"; break;
898*5ac3bc71Schristos case DW_LANG_C_plus_plus_03:
899*5ac3bc71Schristos *s = "DW_LANG_C_plus_plus_03"; break;
900*5ac3bc71Schristos case DW_LANG_C_plus_plus_11:
901*5ac3bc71Schristos *s = "DW_LANG_C_plus_plus_11"; break;
902*5ac3bc71Schristos case DW_LANG_OCaml:
903*5ac3bc71Schristos *s = "DW_LANG_OCaml"; break;
904*5ac3bc71Schristos case DW_LANG_Rust:
905*5ac3bc71Schristos *s = "DW_LANG_Rust"; break;
906*5ac3bc71Schristos case DW_LANG_C11:
907*5ac3bc71Schristos *s = "DW_LANG_C11"; break;
908*5ac3bc71Schristos case DW_LANG_Swift:
909*5ac3bc71Schristos *s = "DW_LANG_Swift"; break;
910*5ac3bc71Schristos case DW_LANG_Julia:
911*5ac3bc71Schristos *s = "DW_LANG_Julia"; break;
912*5ac3bc71Schristos case DW_LANG_Dylan:
913*5ac3bc71Schristos *s = "DW_LANG_Dylan"; break;
914*5ac3bc71Schristos case DW_LANG_C_plus_plus_14:
915*5ac3bc71Schristos *s = "DW_LANG_C_plus_plus_14"; break;
916*5ac3bc71Schristos case DW_LANG_Fortran03:
917*5ac3bc71Schristos *s = "DW_LANG_Fortran03"; break;
918*5ac3bc71Schristos case DW_LANG_Fortran08:
919*5ac3bc71Schristos *s = "DW_LANG_Fortran08"; break;
920*5ac3bc71Schristos case DW_LANG_RenderScript:
921*5ac3bc71Schristos *s = "DW_LANG_RenderScript"; break;
922*5ac3bc71Schristos case DW_LANG_BLISS:
923*5ac3bc71Schristos *s = "DW_LANG_BLISS"; break;
9249dd9d0cfSchristos case DW_LANG_lo_user:
9259dd9d0cfSchristos *s = "DW_LANG_lo_user"; break;
926*5ac3bc71Schristos case DW_LANG_Mips_Assembler:
927*5ac3bc71Schristos *s = "DW_LANG_Mips_Assembler"; break;
9289dd9d0cfSchristos case DW_LANG_hi_user:
9299dd9d0cfSchristos *s = "DW_LANG_hi_user"; break;
9309dd9d0cfSchristos default:
9319dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
9329dd9d0cfSchristos }
9339dd9d0cfSchristos
9349dd9d0cfSchristos return (DW_DLV_OK);
9359dd9d0cfSchristos }
9369dd9d0cfSchristos
9379dd9d0cfSchristos int
dwarf_get_LNE_name(unsigned lne,const char ** s)9389dd9d0cfSchristos dwarf_get_LNE_name(unsigned lne, const char **s)
9399dd9d0cfSchristos {
9409dd9d0cfSchristos
9419dd9d0cfSchristos assert(s != NULL);
9429dd9d0cfSchristos
9439dd9d0cfSchristos switch (lne) {
9449dd9d0cfSchristos case DW_LNE_end_sequence:
9459dd9d0cfSchristos *s = "DW_LNE_end_sequence"; break;
9469dd9d0cfSchristos case DW_LNE_set_address:
9479dd9d0cfSchristos *s = "DW_LNE_set_address"; break;
9489dd9d0cfSchristos case DW_LNE_define_file:
9499dd9d0cfSchristos *s = "DW_LNE_define_file"; break;
9509dd9d0cfSchristos case DW_LNE_lo_user:
9519dd9d0cfSchristos *s = "DW_LNE_lo_user"; break;
9529dd9d0cfSchristos case DW_LNE_hi_user:
9539dd9d0cfSchristos *s = "DW_LNE_hi_user"; break;
9549dd9d0cfSchristos default:
9559dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
9569dd9d0cfSchristos }
9579dd9d0cfSchristos
9589dd9d0cfSchristos return (DW_DLV_OK);
9599dd9d0cfSchristos }
9609dd9d0cfSchristos
9619dd9d0cfSchristos int
dwarf_get_LNS_name(unsigned lns,const char ** s)9629dd9d0cfSchristos dwarf_get_LNS_name(unsigned lns, const char **s)
9639dd9d0cfSchristos {
9649dd9d0cfSchristos
9659dd9d0cfSchristos assert(s != NULL);
9669dd9d0cfSchristos
9679dd9d0cfSchristos switch (lns) {
9689dd9d0cfSchristos case DW_LNS_copy:
9699dd9d0cfSchristos *s = "DW_LNS_copy"; break;
9709dd9d0cfSchristos case DW_LNS_advance_pc:
9719dd9d0cfSchristos *s = "DW_LNS_advance_pc"; break;
9729dd9d0cfSchristos case DW_LNS_advance_line:
9739dd9d0cfSchristos *s = "DW_LNS_advance_line"; break;
9749dd9d0cfSchristos case DW_LNS_set_file:
9759dd9d0cfSchristos *s = "DW_LNS_set_file"; break;
9769dd9d0cfSchristos case DW_LNS_set_column:
9779dd9d0cfSchristos *s = "DW_LNS_set_column"; break;
9789dd9d0cfSchristos case DW_LNS_negate_stmt:
9799dd9d0cfSchristos *s = "DW_LNS_negate_stmt"; break;
9809dd9d0cfSchristos case DW_LNS_set_basic_block:
9819dd9d0cfSchristos *s = "DW_LNS_set_basic_block"; break;
9829dd9d0cfSchristos case DW_LNS_const_add_pc:
9839dd9d0cfSchristos *s = "DW_LNS_const_add_pc"; break;
9849dd9d0cfSchristos case DW_LNS_fixed_advance_pc:
9859dd9d0cfSchristos *s = "DW_LNS_fixed_advance_pc"; break;
9869dd9d0cfSchristos case DW_LNS_set_prologue_end:
9879dd9d0cfSchristos *s = "DW_LNS_set_prologue_end"; break;
9889dd9d0cfSchristos case DW_LNS_set_epilogue_begin:
9899dd9d0cfSchristos *s = "DW_LNS_set_epilogue_begin"; break;
9909dd9d0cfSchristos case DW_LNS_set_isa:
9919dd9d0cfSchristos *s = "DW_LNS_set_isa"; break;
9929dd9d0cfSchristos default:
9939dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
9949dd9d0cfSchristos }
9959dd9d0cfSchristos
9969dd9d0cfSchristos return (DW_DLV_OK);
9979dd9d0cfSchristos }
9989dd9d0cfSchristos
9999dd9d0cfSchristos int
dwarf_get_MACINFO_name(unsigned mi,const char ** s)10009dd9d0cfSchristos dwarf_get_MACINFO_name(unsigned mi, const char **s)
10019dd9d0cfSchristos {
10029dd9d0cfSchristos
10039dd9d0cfSchristos assert(s != NULL);
10049dd9d0cfSchristos
10059dd9d0cfSchristos switch (mi) {
10069dd9d0cfSchristos case DW_MACINFO_define:
10079dd9d0cfSchristos *s = "DW_MACINFO_define"; break;
10089dd9d0cfSchristos case DW_MACINFO_undef:
10099dd9d0cfSchristos *s = "DW_MACINFO_undef"; break;
10109dd9d0cfSchristos case DW_MACINFO_start_file:
10119dd9d0cfSchristos *s = "DW_MACINFO_start_file"; break;
10129dd9d0cfSchristos case DW_MACINFO_end_file:
10139dd9d0cfSchristos *s = "DW_MACINFO_end_file"; break;
10149dd9d0cfSchristos case DW_MACINFO_vendor_ext:
10159dd9d0cfSchristos *s = "DW_MACINFO_vendor_ext"; break;
10169dd9d0cfSchristos default:
10179dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
10189dd9d0cfSchristos }
10199dd9d0cfSchristos
10209dd9d0cfSchristos return (DW_DLV_OK);
10219dd9d0cfSchristos }
10229dd9d0cfSchristos
10239dd9d0cfSchristos int
dwarf_get_OP_name(unsigned op,const char ** s)10249dd9d0cfSchristos dwarf_get_OP_name(unsigned op, const char **s)
10259dd9d0cfSchristos {
10269dd9d0cfSchristos
10279dd9d0cfSchristos assert(s != NULL);
10289dd9d0cfSchristos
10299dd9d0cfSchristos switch (op) {
10309dd9d0cfSchristos case DW_OP_deref:
10319dd9d0cfSchristos *s = "DW_OP_deref"; break;
10329dd9d0cfSchristos case DW_OP_reg0:
10339dd9d0cfSchristos *s = "DW_OP_reg0"; break;
10349dd9d0cfSchristos case DW_OP_reg1:
10359dd9d0cfSchristos *s = "DW_OP_reg1"; break;
10369dd9d0cfSchristos case DW_OP_reg2:
10379dd9d0cfSchristos *s = "DW_OP_reg2"; break;
10389dd9d0cfSchristos case DW_OP_reg3:
10399dd9d0cfSchristos *s = "DW_OP_reg3"; break;
10409dd9d0cfSchristos case DW_OP_reg4:
10419dd9d0cfSchristos *s = "DW_OP_reg4"; break;
10429dd9d0cfSchristos case DW_OP_reg5:
10439dd9d0cfSchristos *s = "DW_OP_reg5"; break;
10449dd9d0cfSchristos case DW_OP_reg6:
10459dd9d0cfSchristos *s = "DW_OP_reg6"; break;
10469dd9d0cfSchristos case DW_OP_reg7:
10479dd9d0cfSchristos *s = "DW_OP_reg7"; break;
10489dd9d0cfSchristos case DW_OP_reg8:
10499dd9d0cfSchristos *s = "DW_OP_reg8"; break;
10509dd9d0cfSchristos case DW_OP_reg9:
10519dd9d0cfSchristos *s = "DW_OP_reg9"; break;
10529dd9d0cfSchristos case DW_OP_reg10:
10539dd9d0cfSchristos *s = "DW_OP_reg10"; break;
10549dd9d0cfSchristos case DW_OP_reg11:
10559dd9d0cfSchristos *s = "DW_OP_reg11"; break;
10569dd9d0cfSchristos case DW_OP_reg12:
10579dd9d0cfSchristos *s = "DW_OP_reg12"; break;
10589dd9d0cfSchristos case DW_OP_reg13:
10599dd9d0cfSchristos *s = "DW_OP_reg13"; break;
10609dd9d0cfSchristos case DW_OP_reg14:
10619dd9d0cfSchristos *s = "DW_OP_reg14"; break;
10629dd9d0cfSchristos case DW_OP_reg15:
10639dd9d0cfSchristos *s = "DW_OP_reg15"; break;
10649dd9d0cfSchristos case DW_OP_reg16:
10659dd9d0cfSchristos *s = "DW_OP_reg16"; break;
10669dd9d0cfSchristos case DW_OP_reg17:
10679dd9d0cfSchristos *s = "DW_OP_reg17"; break;
10689dd9d0cfSchristos case DW_OP_reg18:
10699dd9d0cfSchristos *s = "DW_OP_reg18"; break;
10709dd9d0cfSchristos case DW_OP_reg19:
10719dd9d0cfSchristos *s = "DW_OP_reg19"; break;
10729dd9d0cfSchristos case DW_OP_reg20:
10739dd9d0cfSchristos *s = "DW_OP_reg20"; break;
10749dd9d0cfSchristos case DW_OP_reg21:
10759dd9d0cfSchristos *s = "DW_OP_reg21"; break;
10769dd9d0cfSchristos case DW_OP_reg22:
10779dd9d0cfSchristos *s = "DW_OP_reg22"; break;
10789dd9d0cfSchristos case DW_OP_reg23:
10799dd9d0cfSchristos *s = "DW_OP_reg23"; break;
10809dd9d0cfSchristos case DW_OP_reg24:
10819dd9d0cfSchristos *s = "DW_OP_reg24"; break;
10829dd9d0cfSchristos case DW_OP_reg25:
10839dd9d0cfSchristos *s = "DW_OP_reg25"; break;
10849dd9d0cfSchristos case DW_OP_reg26:
10859dd9d0cfSchristos *s = "DW_OP_reg26"; break;
10869dd9d0cfSchristos case DW_OP_reg27:
10879dd9d0cfSchristos *s = "DW_OP_reg27"; break;
10889dd9d0cfSchristos case DW_OP_reg28:
10899dd9d0cfSchristos *s = "DW_OP_reg28"; break;
10909dd9d0cfSchristos case DW_OP_reg29:
10919dd9d0cfSchristos *s = "DW_OP_reg29"; break;
10929dd9d0cfSchristos case DW_OP_reg30:
10939dd9d0cfSchristos *s = "DW_OP_reg30"; break;
10949dd9d0cfSchristos case DW_OP_reg31:
10959dd9d0cfSchristos *s = "DW_OP_reg31"; break;
10969dd9d0cfSchristos case DW_OP_lit0:
10979dd9d0cfSchristos *s = "DW_OP_lit0"; break;
10989dd9d0cfSchristos case DW_OP_lit1:
10999dd9d0cfSchristos *s = "DW_OP_lit1"; break;
11009dd9d0cfSchristos case DW_OP_lit2:
11019dd9d0cfSchristos *s = "DW_OP_lit2"; break;
11029dd9d0cfSchristos case DW_OP_lit3:
11039dd9d0cfSchristos *s = "DW_OP_lit3"; break;
11049dd9d0cfSchristos case DW_OP_lit4:
11059dd9d0cfSchristos *s = "DW_OP_lit4"; break;
11069dd9d0cfSchristos case DW_OP_lit5:
11079dd9d0cfSchristos *s = "DW_OP_lit5"; break;
11089dd9d0cfSchristos case DW_OP_lit6:
11099dd9d0cfSchristos *s = "DW_OP_lit6"; break;
11109dd9d0cfSchristos case DW_OP_lit7:
11119dd9d0cfSchristos *s = "DW_OP_lit7"; break;
11129dd9d0cfSchristos case DW_OP_lit8:
11139dd9d0cfSchristos *s = "DW_OP_lit8"; break;
11149dd9d0cfSchristos case DW_OP_lit9:
11159dd9d0cfSchristos *s = "DW_OP_lit9"; break;
11169dd9d0cfSchristos case DW_OP_lit10:
11179dd9d0cfSchristos *s = "DW_OP_lit10"; break;
11189dd9d0cfSchristos case DW_OP_lit11:
11199dd9d0cfSchristos *s = "DW_OP_lit11"; break;
11209dd9d0cfSchristos case DW_OP_lit12:
11219dd9d0cfSchristos *s = "DW_OP_lit12"; break;
11229dd9d0cfSchristos case DW_OP_lit13:
11239dd9d0cfSchristos *s = "DW_OP_lit13"; break;
11249dd9d0cfSchristos case DW_OP_lit14:
11259dd9d0cfSchristos *s = "DW_OP_lit14"; break;
11269dd9d0cfSchristos case DW_OP_lit15:
11279dd9d0cfSchristos *s = "DW_OP_lit15"; break;
11289dd9d0cfSchristos case DW_OP_lit16:
11299dd9d0cfSchristos *s = "DW_OP_lit16"; break;
11309dd9d0cfSchristos case DW_OP_lit17:
11319dd9d0cfSchristos *s = "DW_OP_lit17"; break;
11329dd9d0cfSchristos case DW_OP_lit18:
11339dd9d0cfSchristos *s = "DW_OP_lit18"; break;
11349dd9d0cfSchristos case DW_OP_lit19:
11359dd9d0cfSchristos *s = "DW_OP_lit19"; break;
11369dd9d0cfSchristos case DW_OP_lit20:
11379dd9d0cfSchristos *s = "DW_OP_lit20"; break;
11389dd9d0cfSchristos case DW_OP_lit21:
11399dd9d0cfSchristos *s = "DW_OP_lit21"; break;
11409dd9d0cfSchristos case DW_OP_lit22:
11419dd9d0cfSchristos *s = "DW_OP_lit22"; break;
11429dd9d0cfSchristos case DW_OP_lit23:
11439dd9d0cfSchristos *s = "DW_OP_lit23"; break;
11449dd9d0cfSchristos case DW_OP_lit24:
11459dd9d0cfSchristos *s = "DW_OP_lit24"; break;
11469dd9d0cfSchristos case DW_OP_lit25:
11479dd9d0cfSchristos *s = "DW_OP_lit25"; break;
11489dd9d0cfSchristos case DW_OP_lit26:
11499dd9d0cfSchristos *s = "DW_OP_lit26"; break;
11509dd9d0cfSchristos case DW_OP_lit27:
11519dd9d0cfSchristos *s = "DW_OP_lit27"; break;
11529dd9d0cfSchristos case DW_OP_lit28:
11539dd9d0cfSchristos *s = "DW_OP_lit28"; break;
11549dd9d0cfSchristos case DW_OP_lit29:
11559dd9d0cfSchristos *s = "DW_OP_lit29"; break;
11569dd9d0cfSchristos case DW_OP_lit30:
11579dd9d0cfSchristos *s = "DW_OP_lit30"; break;
11589dd9d0cfSchristos case DW_OP_lit31:
11599dd9d0cfSchristos *s = "DW_OP_lit31"; break;
11609dd9d0cfSchristos case DW_OP_dup:
11619dd9d0cfSchristos *s = "DW_OP_dup"; break;
11629dd9d0cfSchristos case DW_OP_drop:
11639dd9d0cfSchristos *s = "DW_OP_drop"; break;
11649dd9d0cfSchristos case DW_OP_over:
11659dd9d0cfSchristos *s = "DW_OP_over"; break;
11669dd9d0cfSchristos case DW_OP_swap:
11679dd9d0cfSchristos *s = "DW_OP_swap"; break;
11689dd9d0cfSchristos case DW_OP_rot:
11699dd9d0cfSchristos *s = "DW_OP_rot"; break;
11709dd9d0cfSchristos case DW_OP_xderef:
11719dd9d0cfSchristos *s = "DW_OP_xderef"; break;
11729dd9d0cfSchristos case DW_OP_abs:
11739dd9d0cfSchristos *s = "DW_OP_abs"; break;
11749dd9d0cfSchristos case DW_OP_and:
11759dd9d0cfSchristos *s = "DW_OP_and"; break;
11769dd9d0cfSchristos case DW_OP_div:
11779dd9d0cfSchristos *s = "DW_OP_div"; break;
11789dd9d0cfSchristos case DW_OP_minus:
11799dd9d0cfSchristos *s = "DW_OP_minus"; break;
11809dd9d0cfSchristos case DW_OP_mod:
11819dd9d0cfSchristos *s = "DW_OP_mod"; break;
11829dd9d0cfSchristos case DW_OP_mul:
11839dd9d0cfSchristos *s = "DW_OP_mul"; break;
11849dd9d0cfSchristos case DW_OP_neg:
11859dd9d0cfSchristos *s = "DW_OP_neg"; break;
11869dd9d0cfSchristos case DW_OP_not:
11879dd9d0cfSchristos *s = "DW_OP_not"; break;
11889dd9d0cfSchristos case DW_OP_or:
11899dd9d0cfSchristos *s = "DW_OP_or"; break;
11909dd9d0cfSchristos case DW_OP_plus:
11919dd9d0cfSchristos *s = "DW_OP_plus"; break;
11929dd9d0cfSchristos case DW_OP_shl:
11939dd9d0cfSchristos *s = "DW_OP_shl"; break;
11949dd9d0cfSchristos case DW_OP_shr:
11959dd9d0cfSchristos *s = "DW_OP_shr"; break;
11969dd9d0cfSchristos case DW_OP_shra:
11979dd9d0cfSchristos *s = "DW_OP_shra"; break;
11989dd9d0cfSchristos case DW_OP_xor:
11999dd9d0cfSchristos *s = "DW_OP_xor"; break;
12009dd9d0cfSchristos case DW_OP_eq:
12019dd9d0cfSchristos *s = "DW_OP_eq"; break;
12029dd9d0cfSchristos case DW_OP_ge:
12039dd9d0cfSchristos *s = "DW_OP_ge"; break;
12049dd9d0cfSchristos case DW_OP_gt:
12059dd9d0cfSchristos *s = "DW_OP_gt"; break;
12069dd9d0cfSchristos case DW_OP_le:
12079dd9d0cfSchristos *s = "DW_OP_le"; break;
12089dd9d0cfSchristos case DW_OP_lt:
12099dd9d0cfSchristos *s = "DW_OP_lt"; break;
12109dd9d0cfSchristos case DW_OP_ne:
12119dd9d0cfSchristos *s = "DW_OP_ne"; break;
12129dd9d0cfSchristos case DW_OP_nop:
12139dd9d0cfSchristos *s = "DW_OP_nop"; break;
12149dd9d0cfSchristos case DW_OP_const1u:
12159dd9d0cfSchristos *s = "DW_OP_const1u"; break;
12169dd9d0cfSchristos case DW_OP_const1s:
12179dd9d0cfSchristos *s = "DW_OP_const1s"; break;
12189dd9d0cfSchristos case DW_OP_pick:
12199dd9d0cfSchristos *s = "DW_OP_pick"; break;
12209dd9d0cfSchristos case DW_OP_deref_size:
12219dd9d0cfSchristos *s = "DW_OP_deref_size"; break;
12229dd9d0cfSchristos case DW_OP_xderef_size:
12239dd9d0cfSchristos *s = "DW_OP_xderef_size"; break;
12249dd9d0cfSchristos case DW_OP_const2u:
12259dd9d0cfSchristos *s = "DW_OP_const2u"; break;
12269dd9d0cfSchristos case DW_OP_const2s:
12279dd9d0cfSchristos *s = "DW_OP_const2s"; break;
12289dd9d0cfSchristos case DW_OP_bra:
12299dd9d0cfSchristos *s = "DW_OP_bra"; break;
12309dd9d0cfSchristos case DW_OP_skip:
12319dd9d0cfSchristos *s = "DW_OP_skip"; break;
12329dd9d0cfSchristos case DW_OP_const4u:
12339dd9d0cfSchristos *s = "DW_OP_const4u"; break;
12349dd9d0cfSchristos case DW_OP_const4s:
12359dd9d0cfSchristos *s = "DW_OP_const4s"; break;
12369dd9d0cfSchristos case DW_OP_const8u:
12379dd9d0cfSchristos *s = "DW_OP_const8u"; break;
12389dd9d0cfSchristos case DW_OP_const8s:
12399dd9d0cfSchristos *s = "DW_OP_const8s"; break;
12409dd9d0cfSchristos case DW_OP_constu:
12419dd9d0cfSchristos *s = "DW_OP_constu"; break;
12429dd9d0cfSchristos case DW_OP_plus_uconst:
12439dd9d0cfSchristos *s = "DW_OP_plus_uconst"; break;
12449dd9d0cfSchristos case DW_OP_regx:
12459dd9d0cfSchristos *s = "DW_OP_regx"; break;
12469dd9d0cfSchristos case DW_OP_piece:
12479dd9d0cfSchristos *s = "DW_OP_piece"; break;
12489dd9d0cfSchristos case DW_OP_consts:
12499dd9d0cfSchristos *s = "DW_OP_consts"; break;
12509dd9d0cfSchristos case DW_OP_breg0:
12519dd9d0cfSchristos *s = "DW_OP_breg0"; break;
12529dd9d0cfSchristos case DW_OP_breg1:
12539dd9d0cfSchristos *s = "DW_OP_breg1"; break;
12549dd9d0cfSchristos case DW_OP_breg2:
12559dd9d0cfSchristos *s = "DW_OP_breg2"; break;
12569dd9d0cfSchristos case DW_OP_breg3:
12579dd9d0cfSchristos *s = "DW_OP_breg3"; break;
12589dd9d0cfSchristos case DW_OP_breg4:
12599dd9d0cfSchristos *s = "DW_OP_breg4"; break;
12609dd9d0cfSchristos case DW_OP_breg5:
12619dd9d0cfSchristos *s = "DW_OP_breg5"; break;
12629dd9d0cfSchristos case DW_OP_breg6:
12639dd9d0cfSchristos *s = "DW_OP_breg6"; break;
12649dd9d0cfSchristos case DW_OP_breg7:
12659dd9d0cfSchristos *s = "DW_OP_breg7"; break;
12669dd9d0cfSchristos case DW_OP_breg8:
12679dd9d0cfSchristos *s = "DW_OP_breg8"; break;
12689dd9d0cfSchristos case DW_OP_breg9:
12699dd9d0cfSchristos *s = "DW_OP_breg9"; break;
12709dd9d0cfSchristos case DW_OP_breg10:
12719dd9d0cfSchristos *s = "DW_OP_breg10"; break;
12729dd9d0cfSchristos case DW_OP_breg11:
12739dd9d0cfSchristos *s = "DW_OP_breg11"; break;
12749dd9d0cfSchristos case DW_OP_breg12:
12759dd9d0cfSchristos *s = "DW_OP_breg12"; break;
12769dd9d0cfSchristos case DW_OP_breg13:
12779dd9d0cfSchristos *s = "DW_OP_breg13"; break;
12789dd9d0cfSchristos case DW_OP_breg14:
12799dd9d0cfSchristos *s = "DW_OP_breg14"; break;
12809dd9d0cfSchristos case DW_OP_breg15:
12819dd9d0cfSchristos *s = "DW_OP_breg15"; break;
12829dd9d0cfSchristos case DW_OP_breg16:
12839dd9d0cfSchristos *s = "DW_OP_breg16"; break;
12849dd9d0cfSchristos case DW_OP_breg17:
12859dd9d0cfSchristos *s = "DW_OP_breg17"; break;
12869dd9d0cfSchristos case DW_OP_breg18:
12879dd9d0cfSchristos *s = "DW_OP_breg18"; break;
12889dd9d0cfSchristos case DW_OP_breg19:
12899dd9d0cfSchristos *s = "DW_OP_breg19"; break;
12909dd9d0cfSchristos case DW_OP_breg20:
12919dd9d0cfSchristos *s = "DW_OP_breg20"; break;
12929dd9d0cfSchristos case DW_OP_breg21:
12939dd9d0cfSchristos *s = "DW_OP_breg21"; break;
12949dd9d0cfSchristos case DW_OP_breg22:
12959dd9d0cfSchristos *s = "DW_OP_breg22"; break;
12969dd9d0cfSchristos case DW_OP_breg23:
12979dd9d0cfSchristos *s = "DW_OP_breg23"; break;
12989dd9d0cfSchristos case DW_OP_breg24:
12999dd9d0cfSchristos *s = "DW_OP_breg24"; break;
13009dd9d0cfSchristos case DW_OP_breg25:
13019dd9d0cfSchristos *s = "DW_OP_breg25"; break;
13029dd9d0cfSchristos case DW_OP_breg26:
13039dd9d0cfSchristos *s = "DW_OP_breg26"; break;
13049dd9d0cfSchristos case DW_OP_breg27:
13059dd9d0cfSchristos *s = "DW_OP_breg27"; break;
13069dd9d0cfSchristos case DW_OP_breg28:
13079dd9d0cfSchristos *s = "DW_OP_breg28"; break;
13089dd9d0cfSchristos case DW_OP_breg29:
13099dd9d0cfSchristos *s = "DW_OP_breg29"; break;
13109dd9d0cfSchristos case DW_OP_breg30:
13119dd9d0cfSchristos *s = "DW_OP_breg30"; break;
13129dd9d0cfSchristos case DW_OP_breg31:
13139dd9d0cfSchristos *s = "DW_OP_breg31"; break;
13149dd9d0cfSchristos case DW_OP_fbreg:
13159dd9d0cfSchristos *s = "DW_OP_fbreg"; break;
13169dd9d0cfSchristos case DW_OP_bregx:
13179dd9d0cfSchristos *s = "DW_OP_bregx"; break;
13189dd9d0cfSchristos case DW_OP_addr:
13199dd9d0cfSchristos *s = "DW_OP_addr"; break;
13209dd9d0cfSchristos case DW_OP_push_object_address:
13219dd9d0cfSchristos *s = "DW_OP_push_object_address"; break;
13229dd9d0cfSchristos case DW_OP_call2:
13239dd9d0cfSchristos *s = "DW_OP_call2"; break;
13249dd9d0cfSchristos case DW_OP_call4:
13259dd9d0cfSchristos *s = "DW_OP_call4"; break;
13269dd9d0cfSchristos case DW_OP_call_ref:
13279dd9d0cfSchristos *s = "DW_OP_call_ref"; break;
13289dd9d0cfSchristos case DW_OP_form_tls_address:
13299dd9d0cfSchristos *s = "DW_OP_form_tls_address"; break;
13309dd9d0cfSchristos case DW_OP_call_frame_cfa:
13319dd9d0cfSchristos *s = "DW_OP_call_frame_cfa"; break;
13329dd9d0cfSchristos case DW_OP_bit_piece:
13339dd9d0cfSchristos *s = "DW_OP_bit_piece"; break;
13349dd9d0cfSchristos case DW_OP_implicit_value:
13359dd9d0cfSchristos *s = "DW_OP_implicit_value"; break;
13369dd9d0cfSchristos case DW_OP_stack_value:
13379dd9d0cfSchristos *s = "DW_OP_stack_value"; break;
13389dd9d0cfSchristos case DW_OP_GNU_push_tls_address:
13399dd9d0cfSchristos *s = "DW_OP_GNU_push_tls_address"; break;
134042bd3019Schristos case DW_OP_GNU_uninit:
134142bd3019Schristos *s = "DW_OP_GNU_uninit"; break;
134242bd3019Schristos case DW_OP_GNU_encoded_addr:
134342bd3019Schristos *s = "DW_OP_GNU_encoded_addr"; break;
134442bd3019Schristos case DW_OP_GNU_implicit_pointer:
134542bd3019Schristos *s = "DW_OP_GNU_implicit_pointer"; break;
134642bd3019Schristos case DW_OP_GNU_entry_value:
134742bd3019Schristos *s = "DW_OP_GNU_entry_value"; break;
134842bd3019Schristos case DW_OP_GNU_const_type:
134942bd3019Schristos *s = "DW_OP_GNU_const_type"; break;
135042bd3019Schristos case DW_OP_GNU_regval_type:
135142bd3019Schristos *s = "DW_OP_GNU_regval_type"; break;
135242bd3019Schristos case DW_OP_GNU_deref_type:
135342bd3019Schristos *s = "DW_OP_GNU_deref_type"; break;
135442bd3019Schristos case DW_OP_GNU_convert:
135542bd3019Schristos *s = "DW_OP_GNU_convert"; break;
135642bd3019Schristos case DW_OP_GNU_reinterpret:
135742bd3019Schristos *s = "DW_OP_GNU_reinterpret"; break;
135842bd3019Schristos case DW_OP_GNU_parameter_ref:
135942bd3019Schristos *s = "DW_OP_GNU_parameter_ref"; break;
136042bd3019Schristos case DW_OP_GNU_addr_index:
136142bd3019Schristos *s = "DW_OP_GNU_addr_index"; break;
136242bd3019Schristos case DW_OP_GNU_const_index:
136342bd3019Schristos *s = "DW_OP_GNU_const_index"; break;
13649dd9d0cfSchristos default:
13659dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
13669dd9d0cfSchristos }
13679dd9d0cfSchristos
13689dd9d0cfSchristos return (DW_DLV_OK);
13699dd9d0cfSchristos }
13709dd9d0cfSchristos
13719dd9d0cfSchristos int
dwarf_get_ORD_name(unsigned ord,const char ** s)13729dd9d0cfSchristos dwarf_get_ORD_name(unsigned ord, const char **s)
13739dd9d0cfSchristos {
13749dd9d0cfSchristos
13759dd9d0cfSchristos assert(s != NULL);
13769dd9d0cfSchristos
13779dd9d0cfSchristos switch (ord) {
13789dd9d0cfSchristos case DW_ORD_row_major:
13799dd9d0cfSchristos *s = "DW_ORD_row_major"; break;
13809dd9d0cfSchristos case DW_ORD_col_major:
13819dd9d0cfSchristos *s = "DW_ORD_col_major"; break;
13829dd9d0cfSchristos default:
13839dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
13849dd9d0cfSchristos }
13859dd9d0cfSchristos
13869dd9d0cfSchristos return (DW_DLV_OK);
13879dd9d0cfSchristos }
13889dd9d0cfSchristos
13899dd9d0cfSchristos int
dwarf_get_TAG_name(unsigned tag,const char ** s)13909dd9d0cfSchristos dwarf_get_TAG_name(unsigned tag, const char **s)
13919dd9d0cfSchristos {
13929dd9d0cfSchristos
13939dd9d0cfSchristos assert(s != NULL);
13949dd9d0cfSchristos
13959dd9d0cfSchristos switch (tag) {
13969dd9d0cfSchristos case DW_TAG_access_declaration:
13979dd9d0cfSchristos *s = "DW_TAG_access_declaration"; break;
13989dd9d0cfSchristos case DW_TAG_array_type:
13999dd9d0cfSchristos *s = "DW_TAG_array_type"; break;
1400*5ac3bc71Schristos case DW_TAG_atomic_type:
1401*5ac3bc71Schristos *s = "DW_TAG_atomic_type"; break;
14029dd9d0cfSchristos case DW_TAG_base_type:
14039dd9d0cfSchristos *s = "DW_TAG_base_type"; break;
1404*5ac3bc71Schristos case DW_TAG_call_site:
1405*5ac3bc71Schristos *s = "DW_TAG_call_site"; break;
1406*5ac3bc71Schristos case DW_TAG_call_site_parameter:
1407*5ac3bc71Schristos *s = "DW_TAG_call_site_parameter"; break;
14089dd9d0cfSchristos case DW_TAG_catch_block:
14099dd9d0cfSchristos *s = "DW_TAG_catch_block"; break;
14109dd9d0cfSchristos case DW_TAG_class_type:
14119dd9d0cfSchristos *s = "DW_TAG_class_type"; break;
1412*5ac3bc71Schristos case DW_TAG_coarray_type:
1413*5ac3bc71Schristos *s = "DW_TAG_coarray_type"; break;
14149dd9d0cfSchristos case DW_TAG_common_block:
14159dd9d0cfSchristos *s = "DW_TAG_common_block"; break;
14169dd9d0cfSchristos case DW_TAG_common_inclusion:
14179dd9d0cfSchristos *s = "DW_TAG_common_inclusion"; break;
14189dd9d0cfSchristos case DW_TAG_compile_unit:
14199dd9d0cfSchristos *s = "DW_TAG_compile_unit"; break;
14209dd9d0cfSchristos case DW_TAG_condition:
14219dd9d0cfSchristos *s = "DW_TAG_condition"; break;
14229dd9d0cfSchristos case DW_TAG_const_type:
14239dd9d0cfSchristos *s = "DW_TAG_const_type"; break;
14249dd9d0cfSchristos case DW_TAG_constant:
14259dd9d0cfSchristos *s = "DW_TAG_constant"; break;
14269dd9d0cfSchristos case DW_TAG_dwarf_procedure:
14279dd9d0cfSchristos *s = "DW_TAG_dwarf_procedure"; break;
1428*5ac3bc71Schristos case DW_TAG_dynamic_type:
1429*5ac3bc71Schristos *s = "DW_TAG_dynamic_type"; break;
14309dd9d0cfSchristos case DW_TAG_entry_point:
14319dd9d0cfSchristos *s = "DW_TAG_entry_point"; break;
14329dd9d0cfSchristos case DW_TAG_enumeration_type:
14339dd9d0cfSchristos *s = "DW_TAG_enumeration_type"; break;
14349dd9d0cfSchristos case DW_TAG_enumerator:
14359dd9d0cfSchristos *s = "DW_TAG_enumerator"; break;
14369dd9d0cfSchristos case DW_TAG_formal_parameter:
14379dd9d0cfSchristos *s = "DW_TAG_formal_parameter"; break;
14389dd9d0cfSchristos case DW_TAG_friend:
14399dd9d0cfSchristos *s = "DW_TAG_friend"; break;
1440*5ac3bc71Schristos case DW_TAG_generic_subrange:
1441*5ac3bc71Schristos *s = "DW_TAG_generic_subrange"; break;
1442*5ac3bc71Schristos case DW_TAG_immutable_type:
1443*5ac3bc71Schristos *s = "DW_TAG_immutable_type"; break;
14449dd9d0cfSchristos case DW_TAG_imported_declaration:
14459dd9d0cfSchristos *s = "DW_TAG_imported_declaration"; break;
14469dd9d0cfSchristos case DW_TAG_imported_module:
14479dd9d0cfSchristos *s = "DW_TAG_imported_module"; break;
14489dd9d0cfSchristos case DW_TAG_imported_unit:
14499dd9d0cfSchristos *s = "DW_TAG_imported_unit"; break;
14509dd9d0cfSchristos case DW_TAG_inheritance:
14519dd9d0cfSchristos *s = "DW_TAG_inheritance"; break;
14529dd9d0cfSchristos case DW_TAG_inlined_subroutine:
14539dd9d0cfSchristos *s = "DW_TAG_inlined_subroutine"; break;
14549dd9d0cfSchristos case DW_TAG_interface_type:
14559dd9d0cfSchristos *s = "DW_TAG_interface_type"; break;
14569dd9d0cfSchristos case DW_TAG_label:
14579dd9d0cfSchristos *s = "DW_TAG_label"; break;
14589dd9d0cfSchristos case DW_TAG_lexical_block:
14599dd9d0cfSchristos *s = "DW_TAG_lexical_block"; break;
14609dd9d0cfSchristos case DW_TAG_member:
14619dd9d0cfSchristos *s = "DW_TAG_member"; break;
14629dd9d0cfSchristos case DW_TAG_module:
14639dd9d0cfSchristos *s = "DW_TAG_module"; break;
14649dd9d0cfSchristos case DW_TAG_namelist:
14659dd9d0cfSchristos *s = "DW_TAG_namelist"; break;
14669dd9d0cfSchristos case DW_TAG_namelist_item:
14679dd9d0cfSchristos *s = "DW_TAG_namelist_item"; break;
14689dd9d0cfSchristos case DW_TAG_namespace:
14699dd9d0cfSchristos *s = "DW_TAG_namespace"; break;
14709dd9d0cfSchristos case DW_TAG_packed_type:
14719dd9d0cfSchristos *s = "DW_TAG_packed_type"; break;
14729dd9d0cfSchristos case DW_TAG_partial_unit:
14739dd9d0cfSchristos *s = "DW_TAG_partial_unit"; break;
14749dd9d0cfSchristos case DW_TAG_pointer_type:
14759dd9d0cfSchristos *s = "DW_TAG_pointer_type"; break;
14769dd9d0cfSchristos case DW_TAG_ptr_to_member_type:
14779dd9d0cfSchristos *s = "DW_TAG_ptr_to_member_type"; break;
14789dd9d0cfSchristos case DW_TAG_reference_type:
14799dd9d0cfSchristos *s = "DW_TAG_reference_type"; break;
14809dd9d0cfSchristos case DW_TAG_restrict_type:
14819dd9d0cfSchristos *s = "DW_TAG_restrict_type"; break;
14829dd9d0cfSchristos case DW_TAG_rvalue_reference_type:
14839dd9d0cfSchristos *s = "DW_TAG_rvalue_reference_type"; break;
14849dd9d0cfSchristos case DW_TAG_set_type:
14859dd9d0cfSchristos *s = "DW_TAG_set_type"; break;
14869dd9d0cfSchristos case DW_TAG_shared_type:
14879dd9d0cfSchristos *s = "DW_TAG_shared_type"; break;
1488*5ac3bc71Schristos case DW_TAG_skeleton_unit:
1489*5ac3bc71Schristos *s = "DW_TAG_skeleton_unit"; break;
14909dd9d0cfSchristos case DW_TAG_string_type:
14919dd9d0cfSchristos *s = "DW_TAG_string_type"; break;
14929dd9d0cfSchristos case DW_TAG_structure_type:
14939dd9d0cfSchristos *s = "DW_TAG_structure_type"; break;
14949dd9d0cfSchristos case DW_TAG_subprogram:
14959dd9d0cfSchristos *s = "DW_TAG_subprogram"; break;
14969dd9d0cfSchristos case DW_TAG_subrange_type:
14979dd9d0cfSchristos *s = "DW_TAG_subrange_type"; break;
14989dd9d0cfSchristos case DW_TAG_subroutine_type:
14999dd9d0cfSchristos *s = "DW_TAG_subroutine_type"; break;
15009dd9d0cfSchristos case DW_TAG_template_alias:
15019dd9d0cfSchristos *s = "DW_TAG_template_alias"; break;
15029dd9d0cfSchristos case DW_TAG_template_type_parameter:
15039dd9d0cfSchristos *s = "DW_TAG_template_type_parameter"; break;
15049dd9d0cfSchristos case DW_TAG_template_value_parameter:
15059dd9d0cfSchristos *s = "DW_TAG_template_value_parameter"; break;
15069dd9d0cfSchristos case DW_TAG_thrown_type:
15079dd9d0cfSchristos *s = "DW_TAG_thrown_type"; break;
15089dd9d0cfSchristos case DW_TAG_try_block:
15099dd9d0cfSchristos *s = "DW_TAG_try_block"; break;
15109dd9d0cfSchristos case DW_TAG_type_unit:
15119dd9d0cfSchristos *s = "DW_TAG_type_unit"; break;
15129dd9d0cfSchristos case DW_TAG_typedef:
15139dd9d0cfSchristos *s = "DW_TAG_typedef"; break;
15149dd9d0cfSchristos case DW_TAG_union_type:
15159dd9d0cfSchristos *s = "DW_TAG_union_type"; break;
15169dd9d0cfSchristos case DW_TAG_unspecified_parameters:
15179dd9d0cfSchristos *s = "DW_TAG_unspecified_parameters"; break;
15189dd9d0cfSchristos case DW_TAG_unspecified_type:
15199dd9d0cfSchristos *s = "DW_TAG_unspecified_type"; break;
15209dd9d0cfSchristos case DW_TAG_variable:
15219dd9d0cfSchristos *s = "DW_TAG_variable"; break;
15229dd9d0cfSchristos case DW_TAG_variant:
15239dd9d0cfSchristos *s = "DW_TAG_variant"; break;
15249dd9d0cfSchristos case DW_TAG_variant_part:
15259dd9d0cfSchristos *s = "DW_TAG_variant_part"; break;
15269dd9d0cfSchristos case DW_TAG_volatile_type:
15279dd9d0cfSchristos *s = "DW_TAG_volatile_type"; break;
15289dd9d0cfSchristos case DW_TAG_with_stmt:
15299dd9d0cfSchristos *s = "DW_TAG_with_stmt"; break;
153042bd3019Schristos case DW_TAG_format_label:
153142bd3019Schristos *s = "DW_TAG_format_label"; break;
153242bd3019Schristos case DW_TAG_function_template:
153342bd3019Schristos *s = "DW_TAG_function_template"; break;
153442bd3019Schristos case DW_TAG_class_template:
153542bd3019Schristos *s = "DW_TAG_class_template"; break;
153642bd3019Schristos case DW_TAG_GNU_BINCL:
153742bd3019Schristos *s = "DW_TAG_GNU_BINCL"; break;
153842bd3019Schristos case DW_TAG_GNU_EINCL:
153942bd3019Schristos *s = "DW_TAG_GNU_EINCL"; break;
154042bd3019Schristos case DW_TAG_GNU_template_template_param:
154142bd3019Schristos *s = "DW_TAG_GNU_template_template_param"; break;
154242bd3019Schristos case DW_TAG_GNU_template_parameter_pack:
154342bd3019Schristos *s = "DW_TAG_GNU_template_parameter_pack"; break;
154442bd3019Schristos case DW_TAG_GNU_formal_parameter_pack:
154542bd3019Schristos *s = "DW_TAG_GNU_formal_parameter_pack"; break;
154642bd3019Schristos case DW_TAG_GNU_call_site:
154742bd3019Schristos *s = "DW_TAG_GNU_call_site"; break;
154842bd3019Schristos case DW_TAG_GNU_call_site_parameter:
154942bd3019Schristos *s = "DW_TAG_GNU_call_site_parameter"; break;
15509dd9d0cfSchristos default:
15519dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
15529dd9d0cfSchristos }
15539dd9d0cfSchristos
15549dd9d0cfSchristos return (DW_DLV_OK);
15559dd9d0cfSchristos }
15569dd9d0cfSchristos
15579dd9d0cfSchristos int
dwarf_get_UT_name(unsigned ut,const char ** s)1558*5ac3bc71Schristos dwarf_get_UT_name(unsigned ut, const char **s)
1559*5ac3bc71Schristos {
1560*5ac3bc71Schristos
1561*5ac3bc71Schristos assert(s != NULL);
1562*5ac3bc71Schristos
1563*5ac3bc71Schristos switch (ut) {
1564*5ac3bc71Schristos case DW_UT_compile:
1565*5ac3bc71Schristos *s = "DW_UT_compile"; break;
1566*5ac3bc71Schristos case DW_UT_type:
1567*5ac3bc71Schristos *s = "DW_UT_type"; break;
1568*5ac3bc71Schristos case DW_UT_partial:
1569*5ac3bc71Schristos *s = "DW_UT_partial"; break;
1570*5ac3bc71Schristos case DW_UT_skeleton:
1571*5ac3bc71Schristos *s = "DW_UT_skeleton"; break;
1572*5ac3bc71Schristos case DW_UT_split_compile:
1573*5ac3bc71Schristos *s = "DW_UT_split_compile"; break;
1574*5ac3bc71Schristos case DW_UT_split_type:
1575*5ac3bc71Schristos *s = "DW_UT_split_type"; break;
1576*5ac3bc71Schristos case DW_UT_lo_user:
1577*5ac3bc71Schristos *s = "DW_UT_lo_user"; break;
1578*5ac3bc71Schristos case DW_UT_hi_user:
1579*5ac3bc71Schristos *s = "DW_UT_hi_user"; break;
1580*5ac3bc71Schristos default:
1581*5ac3bc71Schristos return (DW_DLV_NO_ENTRY);
1582*5ac3bc71Schristos }
1583*5ac3bc71Schristos
1584*5ac3bc71Schristos return (DW_DLV_OK);
1585*5ac3bc71Schristos }
1586*5ac3bc71Schristos
1587*5ac3bc71Schristos int
dwarf_get_VIRTUALITY_name(unsigned vir,const char ** s)15889dd9d0cfSchristos dwarf_get_VIRTUALITY_name(unsigned vir, const char **s)
15899dd9d0cfSchristos {
15909dd9d0cfSchristos
15919dd9d0cfSchristos assert(s != NULL);
15929dd9d0cfSchristos
15939dd9d0cfSchristos switch (vir) {
15949dd9d0cfSchristos case DW_VIRTUALITY_none:
15959dd9d0cfSchristos *s = "DW_VIRTUALITY_none"; break;
15969dd9d0cfSchristos case DW_VIRTUALITY_virtual:
15979dd9d0cfSchristos *s = "DW_VIRTUALITY_virtual"; break;
15989dd9d0cfSchristos case DW_VIRTUALITY_pure_virtual:
15999dd9d0cfSchristos *s = "DW_VIRTUALITY_pure_virtual"; break;
16009dd9d0cfSchristos default:
16019dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
16029dd9d0cfSchristos }
16039dd9d0cfSchristos
16049dd9d0cfSchristos return (DW_DLV_OK);
16059dd9d0cfSchristos }
16069dd9d0cfSchristos
16079dd9d0cfSchristos int
dwarf_get_VIS_name(unsigned vis,const char ** s)16089dd9d0cfSchristos dwarf_get_VIS_name(unsigned vis, const char **s)
16099dd9d0cfSchristos {
16109dd9d0cfSchristos
16119dd9d0cfSchristos assert(s != NULL);
16129dd9d0cfSchristos
16139dd9d0cfSchristos switch (vis) {
16149dd9d0cfSchristos case DW_VIS_local:
16159dd9d0cfSchristos *s = "DW_VIS_local"; break;
16169dd9d0cfSchristos case DW_VIS_exported:
16179dd9d0cfSchristos *s = "DW_VIS_exported"; break;
16189dd9d0cfSchristos case DW_VIS_qualified:
16199dd9d0cfSchristos *s = "DW_VIS_qualified"; break;
16209dd9d0cfSchristos default:
16219dd9d0cfSchristos return (DW_DLV_NO_ENTRY);
16229dd9d0cfSchristos }
16239dd9d0cfSchristos
16249dd9d0cfSchristos return (DW_DLV_OK);
16259dd9d0cfSchristos }
1626