xref: /freebsd/contrib/elftoolchain/libdwarf/dwarf_dump.c (revision 7bb441c866781ec14b3e79a4f3e95fd319ab7ff9)
12de3b87aSKai Wang /*-
22de3b87aSKai Wang  * Copyright (c) 2007 John Birrell (jb@freebsd.org)
32de3b87aSKai Wang  * Copyright (c) 2009 Kai Wang
42de3b87aSKai Wang  * All rights reserved.
52de3b87aSKai Wang  *
62de3b87aSKai Wang  * Redistribution and use in source and binary forms, with or without
72de3b87aSKai Wang  * modification, are permitted provided that the following conditions
82de3b87aSKai Wang  * are met:
92de3b87aSKai Wang  * 1. Redistributions of source code must retain the above copyright
102de3b87aSKai Wang  *    notice, this list of conditions and the following disclaimer.
112de3b87aSKai Wang  * 2. Redistributions in binary form must reproduce the above copyright
122de3b87aSKai Wang  *    notice, this list of conditions and the following disclaimer in the
132de3b87aSKai Wang  *    documentation and/or other materials provided with the distribution.
142de3b87aSKai Wang  *
152de3b87aSKai Wang  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
162de3b87aSKai Wang  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
172de3b87aSKai Wang  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
182de3b87aSKai Wang  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
192de3b87aSKai Wang  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
202de3b87aSKai Wang  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
212de3b87aSKai Wang  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
222de3b87aSKai Wang  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
232de3b87aSKai Wang  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
242de3b87aSKai Wang  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
252de3b87aSKai Wang  * SUCH DAMAGE.
262de3b87aSKai Wang  */
272de3b87aSKai Wang 
282de3b87aSKai Wang #include "_libdwarf.h"
292de3b87aSKai Wang 
30d003e0d7SEd Maste ELFTC_VCSID("$Id: dwarf_dump.c 3749 2019-06-28 01:10:44Z emaste $");
312de3b87aSKai Wang 
322de3b87aSKai Wang int
dwarf_get_ACCESS_name(unsigned access,const char ** s)332de3b87aSKai Wang dwarf_get_ACCESS_name(unsigned access, const char **s)
342de3b87aSKai Wang {
352de3b87aSKai Wang 
362de3b87aSKai Wang 	assert(s != NULL);
372de3b87aSKai Wang 
382de3b87aSKai Wang 	switch (access) {
392de3b87aSKai Wang 	case DW_ACCESS_public:
402de3b87aSKai Wang 		*s = "DW_ACCESS_public"; break;
412de3b87aSKai Wang 	case DW_ACCESS_protected:
422de3b87aSKai Wang 		*s = "DW_ACCESS_protected"; break;
432de3b87aSKai Wang 	case DW_ACCESS_private:
442de3b87aSKai Wang 		*s = "DW_ACCESS_private"; break;
452de3b87aSKai Wang 	default:
462de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
472de3b87aSKai Wang 	}
482de3b87aSKai Wang 
492de3b87aSKai Wang 	return (DW_DLV_OK);
502de3b87aSKai Wang }
512de3b87aSKai Wang 
522de3b87aSKai Wang int
dwarf_get_AT_name(unsigned attr,const char ** s)532de3b87aSKai Wang dwarf_get_AT_name(unsigned attr, const char **s)
542de3b87aSKai Wang {
552de3b87aSKai Wang 
562de3b87aSKai Wang 	assert(s != NULL);
572de3b87aSKai Wang 
582de3b87aSKai Wang 	switch (attr) {
592de3b87aSKai Wang 	case DW_AT_abstract_origin:
602de3b87aSKai Wang 		*s = "DW_AT_abstract_origin"; break;
612de3b87aSKai Wang 	case DW_AT_accessibility:
622de3b87aSKai Wang 		*s = "DW_AT_accessibility"; break;
632de3b87aSKai Wang 	case DW_AT_address_class:
642de3b87aSKai Wang 		*s = "DW_AT_address_class"; break;
652de3b87aSKai Wang 	case DW_AT_artificial:
662de3b87aSKai Wang 		*s = "DW_AT_artificial"; break;
672de3b87aSKai Wang 	case DW_AT_allocated:
682de3b87aSKai Wang 		*s = "DW_AT_allocated"; break;
692de3b87aSKai Wang 	case DW_AT_associated:
702de3b87aSKai Wang 		*s = "DW_AT_associated"; break;
712de3b87aSKai Wang 	case DW_AT_base_types:
722de3b87aSKai Wang 		*s = "DW_AT_base_types"; break;
732de3b87aSKai Wang 	case DW_AT_binary_scale:
742de3b87aSKai Wang 		*s = "DW_AT_binary_scale"; break;
752de3b87aSKai Wang 	case DW_AT_bit_offset:
762de3b87aSKai Wang 		*s = "DW_AT_bit_offset"; break;
772de3b87aSKai Wang 	case DW_AT_bit_size:
782de3b87aSKai Wang 		*s = "DW_AT_bit_size"; break;
792de3b87aSKai Wang 	case DW_AT_bit_stride:
802de3b87aSKai Wang 		*s = "DW_AT_bit_stride"; break;
812de3b87aSKai Wang 	case DW_AT_byte_size:
822de3b87aSKai Wang 		*s = "DW_AT_byte_size"; break;
832de3b87aSKai Wang 	case DW_AT_byte_stride:
842de3b87aSKai Wang 		*s = "DW_AT_byte_stride"; break;
852de3b87aSKai Wang 	case DW_AT_calling_convention:
862de3b87aSKai Wang 		*s = "DW_AT_calling_convention"; break;
872de3b87aSKai Wang 	case DW_AT_common_reference:
882de3b87aSKai Wang 		*s = "DW_AT_common_reference"; break;
892de3b87aSKai Wang 	case DW_AT_comp_dir:
902de3b87aSKai Wang 		*s = "DW_AT_comp_dir"; break;
912de3b87aSKai Wang 	case DW_AT_const_expr:
922de3b87aSKai Wang 		*s = "DW_AT_const_expr"; break;
932de3b87aSKai Wang 	case DW_AT_const_value:
942de3b87aSKai Wang 		*s = "DW_AT_const_value"; break;
952de3b87aSKai Wang 	case DW_AT_containing_type:
962de3b87aSKai Wang 		*s = "DW_AT_containing_type"; break;
972de3b87aSKai Wang 	case DW_AT_count:
982de3b87aSKai Wang 		*s = "DW_AT_count"; break;
992de3b87aSKai Wang 	case DW_AT_call_column:
1002de3b87aSKai Wang 		*s = "DW_AT_call_column"; break;
1012de3b87aSKai Wang 	case DW_AT_call_file:
1022de3b87aSKai Wang 		*s = "DW_AT_call_file"; break;
1032de3b87aSKai Wang 	case DW_AT_call_line:
1042de3b87aSKai Wang 		*s = "DW_AT_call_line"; break;
1052de3b87aSKai Wang 	case DW_AT_data_bit_offset:
1062de3b87aSKai Wang 		*s = "DW_AT_data_bit_offset"; break;
1072de3b87aSKai Wang 	case DW_AT_data_location:
1082de3b87aSKai Wang 		*s = "DW_AT_data_location"; break;
1092de3b87aSKai Wang 	case DW_AT_data_member_location:
1102de3b87aSKai Wang 		*s = "DW_AT_data_member_location"; break;
1112de3b87aSKai Wang 	case DW_AT_decl_column:
1122de3b87aSKai Wang 		*s = "DW_AT_decl_column"; break;
1132de3b87aSKai Wang 	case DW_AT_decl_file:
1142de3b87aSKai Wang 		*s = "DW_AT_decl_file"; break;
1152de3b87aSKai Wang 	case DW_AT_decl_line:
1162de3b87aSKai Wang 		*s = "DW_AT_decl_line"; break;
1172de3b87aSKai Wang 	case DW_AT_declaration:
1182de3b87aSKai Wang 		*s = "DW_AT_declaration"; break;
1192de3b87aSKai Wang 	case DW_AT_default_value:
1202de3b87aSKai Wang 		*s = "DW_AT_default_value"; break;
1212de3b87aSKai Wang 	case DW_AT_decimal_scale:
1222de3b87aSKai Wang 		*s = "DW_AT_decimal_scale"; break;
1232de3b87aSKai Wang 	case DW_AT_decimal_sign:
1242de3b87aSKai Wang 		*s = "DW_AT_decimal_sign"; break;
1252de3b87aSKai Wang 	case DW_AT_description:
1262de3b87aSKai Wang 		*s = "DW_AT_description"; break;
1272de3b87aSKai Wang 	case DW_AT_digit_count:
1282de3b87aSKai Wang 		*s = "DW_AT_digit_count"; break;
1292de3b87aSKai Wang 	case DW_AT_discr:
1302de3b87aSKai Wang 		*s = "DW_AT_discr"; break;
1312de3b87aSKai Wang 	case DW_AT_discr_list:
1322de3b87aSKai Wang 		*s = "DW_AT_discr_list"; break;
1332de3b87aSKai Wang 	case DW_AT_discr_value:
1342de3b87aSKai Wang 		*s = "DW_AT_discr_value"; break;
1352de3b87aSKai Wang 	case DW_AT_element_list:
1362de3b87aSKai Wang 		*s = "DW_AT_element_list"; break;
1372de3b87aSKai Wang 	case DW_AT_encoding:
1382de3b87aSKai Wang 		*s = "DW_AT_encoding"; break;
1392de3b87aSKai Wang 	case DW_AT_enum_class:
1402de3b87aSKai Wang 		*s = "DW_AT_enum_class"; break;
1412de3b87aSKai Wang 	case DW_AT_external:
1422de3b87aSKai Wang 		*s = "DW_AT_external"; break;
1432de3b87aSKai Wang 	case DW_AT_entry_pc:
1442de3b87aSKai Wang 		*s = "DW_AT_entry_pc"; break;
1452de3b87aSKai Wang 	case DW_AT_extension:
1462de3b87aSKai Wang 		*s = "DW_AT_extension"; break;
1472de3b87aSKai Wang 	case DW_AT_explicit:
1482de3b87aSKai Wang 		*s = "DW_AT_explicit"; break;
1492de3b87aSKai Wang 	case DW_AT_endianity:
1502de3b87aSKai Wang 		*s = "DW_AT_endianity"; break;
1512de3b87aSKai Wang 	case DW_AT_elemental:
1522de3b87aSKai Wang 		*s = "DW_AT_elemental"; break;
1532de3b87aSKai Wang 	case DW_AT_frame_base:
1542de3b87aSKai Wang 		*s = "DW_AT_frame_base"; break;
1552de3b87aSKai Wang 	case DW_AT_friend:
1562de3b87aSKai Wang 		*s = "DW_AT_friend"; break;
1572de3b87aSKai Wang 	case DW_AT_high_pc:
1582de3b87aSKai Wang 		*s = "DW_AT_high_pc"; break;
1592de3b87aSKai Wang 	case DW_AT_hi_user:
1602de3b87aSKai Wang 		*s = "DW_AT_hi_user"; break;
1612de3b87aSKai Wang 	case DW_AT_identifier_case:
1622de3b87aSKai Wang 		*s = "DW_AT_identifier_case"; break;
1632de3b87aSKai Wang 	case DW_AT_import:
1642de3b87aSKai Wang 		*s = "DW_AT_import"; break;
1652de3b87aSKai Wang 	case DW_AT_inline:
1662de3b87aSKai Wang 		*s = "DW_AT_inline"; break;
1672de3b87aSKai Wang 	case DW_AT_is_optional:
1682de3b87aSKai Wang 		*s = "DW_AT_is_optional"; break;
1692de3b87aSKai Wang 	case DW_AT_language:
1702de3b87aSKai Wang 		*s = "DW_AT_language"; break;
1712de3b87aSKai Wang 	case DW_AT_linkage_name:
1722de3b87aSKai Wang 		*s = "DW_AT_linkage_name"; break;
1732de3b87aSKai Wang 	case DW_AT_lo_user:
1742de3b87aSKai Wang 		*s = "DW_AT_lo_user"; break;
1752de3b87aSKai Wang 	case DW_AT_location:
1762de3b87aSKai Wang 		*s = "DW_AT_location"; break;
1772de3b87aSKai Wang 	case DW_AT_low_pc:
1782de3b87aSKai Wang 		*s = "DW_AT_low_pc"; break;
1792de3b87aSKai Wang 	case DW_AT_lower_bound:
1802de3b87aSKai Wang 		*s = "DW_AT_lower_bound"; break;
1812de3b87aSKai Wang 	case DW_AT_macro_info:
1822de3b87aSKai Wang 		*s = "DW_AT_macro_info"; break;
1832de3b87aSKai Wang 	case DW_AT_main_subprogram:
1842de3b87aSKai Wang 		*s = "DW_AT_main_subprogram"; break;
1852de3b87aSKai Wang 	case DW_AT_mutable:
1862de3b87aSKai Wang 		*s = "DW_AT_mutable"; break;
1872de3b87aSKai Wang 	case DW_AT_member:
1882de3b87aSKai Wang 		*s = "DW_AT_member"; break;
1892de3b87aSKai Wang 	case DW_AT_name:
1902de3b87aSKai Wang 		*s = "DW_AT_name"; break;
1912de3b87aSKai Wang 	case DW_AT_namelist_item:
1922de3b87aSKai Wang 		*s = "DW_AT_namelist_item"; break;
1932de3b87aSKai Wang 	case DW_AT_ordering:
1942de3b87aSKai Wang 		*s = "DW_AT_ordering"; break;
1952de3b87aSKai Wang 	case DW_AT_object_pointer:
1962de3b87aSKai Wang 		*s = "DW_AT_object_pointer"; break;
1972de3b87aSKai Wang 	case DW_AT_priority:
1982de3b87aSKai Wang 		*s = "DW_AT_priority"; break;
1992de3b87aSKai Wang 	case DW_AT_producer:
2002de3b87aSKai Wang 		*s = "DW_AT_producer"; break;
2012de3b87aSKai Wang 	case DW_AT_prototyped:
2022de3b87aSKai Wang 		*s = "DW_AT_prototyped"; break;
2032de3b87aSKai Wang 	case DW_AT_picture_string:
2042de3b87aSKai Wang 		*s = "DW_AT_picture_string"; break;
2052de3b87aSKai Wang 	case DW_AT_pure:
2062de3b87aSKai Wang 		*s = "DW_AT_pure"; break;
2072de3b87aSKai Wang 	case DW_AT_return_addr:
2082de3b87aSKai Wang 		*s = "DW_AT_return_addr"; break;
2092de3b87aSKai Wang 	case DW_AT_ranges:
2102de3b87aSKai Wang 		*s = "DW_AT_ranges"; break;
2112de3b87aSKai Wang 	case DW_AT_recursive:
2122de3b87aSKai Wang 		*s = "DW_AT_recursive"; break;
2132de3b87aSKai Wang 	case DW_AT_segment:
2142de3b87aSKai Wang 		*s = "DW_AT_segment"; break;
2152de3b87aSKai Wang 	case DW_AT_sibling:
2162de3b87aSKai Wang 		*s = "DW_AT_sibling"; break;
2172de3b87aSKai Wang 	case DW_AT_signature:
2182de3b87aSKai Wang 		*s = "DW_AT_signature"; break;
2192de3b87aSKai Wang 	case DW_AT_specification:
2202de3b87aSKai Wang 		*s = "DW_AT_specification"; break;
2212de3b87aSKai Wang 	case DW_AT_start_scope:
2222de3b87aSKai Wang 		*s = "DW_AT_start_scope"; break;
2232de3b87aSKai Wang 	case DW_AT_static_link:
2242de3b87aSKai Wang 		*s = "DW_AT_static_link"; break;
2252de3b87aSKai Wang 	case DW_AT_stmt_list:
2262de3b87aSKai Wang 		*s = "DW_AT_stmt_list"; break;
2272de3b87aSKai Wang 	case DW_AT_string_length:
2282de3b87aSKai Wang 		*s = "DW_AT_string_length"; break;
2292de3b87aSKai Wang 	case DW_AT_subscr_data:
2302de3b87aSKai Wang 		*s = "DW_AT_subscr_data"; break;
2312de3b87aSKai Wang 	case DW_AT_small:
2322de3b87aSKai Wang 		*s = "DW_AT_small"; break;
2332de3b87aSKai Wang 	case DW_AT_type:
2342de3b87aSKai Wang 		*s = "DW_AT_type"; break;
2352de3b87aSKai Wang 	case DW_AT_trampoline:
2362de3b87aSKai Wang 		*s = "DW_AT_trampoline"; break;
2372de3b87aSKai Wang 	case DW_AT_threads_scaled:
2382de3b87aSKai Wang 		*s = "DW_AT_threads_scaled"; break;
2392de3b87aSKai Wang 	case DW_AT_upper_bound:
2402de3b87aSKai Wang 		*s = "DW_AT_upper_bound"; break;
2412de3b87aSKai Wang 	case DW_AT_use_location:
2422de3b87aSKai Wang 		*s = "DW_AT_use_location"; break;
2432de3b87aSKai Wang 	case DW_AT_use_UTF8:
2442de3b87aSKai Wang 		*s = "DW_AT_use_UTF8"; break;
2452de3b87aSKai Wang 	case DW_AT_variable_parameter:
2462de3b87aSKai Wang 		*s = "DW_AT_variable_parameter"; break;
2472de3b87aSKai Wang 	case DW_AT_virtuality:
2482de3b87aSKai Wang 		*s = "DW_AT_virtuality"; break;
2492de3b87aSKai Wang 	case DW_AT_visibility:
2502de3b87aSKai Wang 		*s = "DW_AT_visibility"; break;
2512de3b87aSKai Wang 	case DW_AT_vtable_elem_location:
2522de3b87aSKai Wang 		*s = "DW_AT_vtable_elem_location"; break;
253*7bb441c8SMark Johnston 	case DW_AT_string_length_bit_size:
254*7bb441c8SMark Johnston 		*s = "DW_AT_string_length_bit_size"; break;
255*7bb441c8SMark Johnston 	case DW_AT_string_length_byte_size:
256*7bb441c8SMark Johnston 		*s = "DW_AT_string_length_byte_size"; break;
257*7bb441c8SMark Johnston 	case DW_AT_rank:
258*7bb441c8SMark Johnston 		*s = "DW_AT_rank"; break;
259*7bb441c8SMark Johnston 	case DW_AT_str_offsets_base:
260*7bb441c8SMark Johnston 		*s = "DW_AT_str_offsets_base"; break;
261*7bb441c8SMark Johnston 	case DW_AT_addr_base:
262*7bb441c8SMark Johnston 		*s = "DW_AT_addr_base"; break;
263*7bb441c8SMark Johnston 	case DW_AT_rnglists_base:
264*7bb441c8SMark Johnston 		*s = "DW_AT_rnglists_base"; break;
265*7bb441c8SMark Johnston 	case DW_AT_dwo_name:
266*7bb441c8SMark Johnston 		*s = "DW_AT_dwo_name"; break;
267*7bb441c8SMark Johnston 	case DW_AT_reference:
268*7bb441c8SMark Johnston 		*s = "DW_AT_reference"; break;
269*7bb441c8SMark Johnston 	case DW_AT_rvalue_reference:
270*7bb441c8SMark Johnston 		*s = "DW_AT_rvalue_reference"; break;
271*7bb441c8SMark Johnston 	case DW_AT_macros:
272*7bb441c8SMark Johnston 		*s = "DW_AT_macros"; break;
273*7bb441c8SMark Johnston 	case DW_AT_call_all_calls:
274*7bb441c8SMark Johnston 		*s = "DW_AT_call_all_calls"; break;
275*7bb441c8SMark Johnston 	case DW_AT_call_all_source_calls:
276*7bb441c8SMark Johnston 		*s = "DW_AT_call_all_source_calls"; break;
277*7bb441c8SMark Johnston 	case DW_AT_call_all_tail_calls:
278*7bb441c8SMark Johnston 		*s = "DW_AT_call_all_tail_calls"; break;
279*7bb441c8SMark Johnston 	case DW_AT_call_return_pc:
280*7bb441c8SMark Johnston 		*s = "DW_AT_call_return_pc"; break;
281*7bb441c8SMark Johnston 	case DW_AT_call_value:
282*7bb441c8SMark Johnston 		*s = "DW_AT_call_value"; break;
283*7bb441c8SMark Johnston 	case DW_AT_call_origin:
284*7bb441c8SMark Johnston 		*s = "DW_AT_call_origin"; break;
285*7bb441c8SMark Johnston 	case DW_AT_call_parameter:
286*7bb441c8SMark Johnston 		*s = "DW_AT_call_parameter"; break;
287*7bb441c8SMark Johnston 	case DW_AT_call_pc:
288*7bb441c8SMark Johnston 		*s = "DW_AT_call_pc"; break;
289*7bb441c8SMark Johnston 	case DW_AT_call_tail_call:
290*7bb441c8SMark Johnston 		*s = "DW_AT_call_tail_call"; break;
291*7bb441c8SMark Johnston 	case DW_AT_call_target:
292*7bb441c8SMark Johnston 		*s = "DW_AT_call_target"; break;
293*7bb441c8SMark Johnston 	case DW_AT_call_target_clobbered:
294*7bb441c8SMark Johnston 		*s = "DW_AT_call_target_clobbered"; break;
295*7bb441c8SMark Johnston 	case DW_AT_call_data_location:
296*7bb441c8SMark Johnston 		*s = "DW_AT_call_data_location"; break;
297*7bb441c8SMark Johnston 	case DW_AT_call_data_value:
298*7bb441c8SMark Johnston 		*s = "DW_AT_call_data_value"; break;
299*7bb441c8SMark Johnston 	case DW_AT_noreturn:
300*7bb441c8SMark Johnston 		*s = "DW_AT_noreturn"; break;
301*7bb441c8SMark Johnston 	case DW_AT_alignment:
302*7bb441c8SMark Johnston 		*s = "DW_AT_alignment"; break;
303*7bb441c8SMark Johnston 	case DW_AT_export_symbols:
304*7bb441c8SMark Johnston 		*s = "DW_AT_export_symbols"; break;
305*7bb441c8SMark Johnston 	case DW_AT_deleted:
306*7bb441c8SMark Johnston 		*s = "DW_AT_deleted"; break;
307*7bb441c8SMark Johnston 	case DW_AT_defaulted:
308*7bb441c8SMark Johnston 		*s = "DW_AT_defaulted"; break;
309*7bb441c8SMark Johnston 	case DW_AT_loclists_base:
310*7bb441c8SMark Johnston 		*s = "DW_AT_loclists_base"; break;
311cf781b2eSEd Maste 	case DW_AT_sf_names:
312cf781b2eSEd Maste 		*s = "DW_AT_sf_names"; break;
313cf781b2eSEd Maste 	case DW_AT_src_info:
314cf781b2eSEd Maste 		*s = "DW_AT_src_info"; break;
315cf781b2eSEd Maste 	case DW_AT_mac_info:
316cf781b2eSEd Maste 		*s = "DW_AT_mac_info"; break;
317cf781b2eSEd Maste 	case DW_AT_src_coords:
318cf781b2eSEd Maste 		*s = "DW_AT_src_coords"; break;
319cf781b2eSEd Maste 	case DW_AT_body_begin:
320cf781b2eSEd Maste 		*s = "DW_AT_body_begin"; break;
321cf781b2eSEd Maste 	case DW_AT_body_end:
322cf781b2eSEd Maste 		*s = "DW_AT_body_end"; break;
323bee2765cSEd Maste 	case DW_AT_MIPS_fde:
324bee2765cSEd Maste 		*s = "DW_AT_MIPS_fde"; break;
325bee2765cSEd Maste 	case DW_AT_MIPS_loop_begin:
326bee2765cSEd Maste 		*s = "DW_AT_MIPS_loop_begin"; break;
327bee2765cSEd Maste 	case DW_AT_MIPS_tail_loop_begin:
328bee2765cSEd Maste 		*s = "DW_AT_MIPS_tail_loop_begin"; break;
329bee2765cSEd Maste 	case DW_AT_MIPS_epilog_begin:
330bee2765cSEd Maste 		*s = "DW_AT_MIPS_epilog_begin"; break;
331bee2765cSEd Maste 	case DW_AT_MIPS_loop_unroll_factor:
332bee2765cSEd Maste 		*s = "DW_AT_MIPS_loop_unroll_factor"; break;
333bee2765cSEd Maste 	case DW_AT_MIPS_software_pipeline_depth:
334bee2765cSEd Maste 		*s = "DW_AT_MIPS_software_pipeline_depth"; break;
335bee2765cSEd Maste 	case DW_AT_MIPS_linkage_name:
336bee2765cSEd Maste 		*s = "DW_AT_MIPS_linkage_name"; break;
337bee2765cSEd Maste 	case DW_AT_MIPS_stride:
338bee2765cSEd Maste 		*s = "DW_AT_MIPS_stride"; break;
339bee2765cSEd Maste 	case DW_AT_MIPS_abstract_name:
340bee2765cSEd Maste 		*s = "DW_AT_MIPS_abstract_name"; break;
341bee2765cSEd Maste 	case DW_AT_MIPS_clone_origin:
342bee2765cSEd Maste 		*s = "DW_AT_MIPS_clone_origin"; break;
343bee2765cSEd Maste 	case DW_AT_MIPS_has_inlines:
344bee2765cSEd Maste 		*s = "DW_AT_MIPS_has_inlines"; break;
345bee2765cSEd Maste 	case DW_AT_MIPS_stride_byte:
346bee2765cSEd Maste 		*s = "DW_AT_MIPS_stride_byte"; break;
347bee2765cSEd Maste 	case DW_AT_MIPS_stride_elem:
348bee2765cSEd Maste 		*s = "DW_AT_MIPS_stride_elem"; break;
349bee2765cSEd Maste 	case DW_AT_MIPS_ptr_dopetype:
350bee2765cSEd Maste 		*s = "DW_AT_MIPS_ptr_dopetype"; break;
351bee2765cSEd Maste 	case DW_AT_MIPS_allocatable_dopetype:
352bee2765cSEd Maste 		*s = "DW_AT_MIPS_allocatable_dopetype"; break;
353bee2765cSEd Maste 	case DW_AT_MIPS_assumed_shape_dopetype:
354bee2765cSEd Maste 		*s = "DW_AT_MIPS_assumed_shape_dopetype"; break;
355bee2765cSEd Maste 	case DW_AT_MIPS_assumed_size:
356bee2765cSEd Maste 		*s = "DW_AT_MIPS_assumed_size"; break;
357cf781b2eSEd Maste 	case DW_AT_GNU_vector:
358cf781b2eSEd Maste 		*s = "DW_AT_GNU_vector"; break;
359cf781b2eSEd Maste 	case DW_AT_GNU_guarded_by:
360cf781b2eSEd Maste 		*s = "DW_AT_GNU_guarded_by"; break;
361cf781b2eSEd Maste 	case DW_AT_GNU_pt_guarded_by:
362cf781b2eSEd Maste 		*s = "DW_AT_GNU_pt_guarded_by"; break;
363cf781b2eSEd Maste 	case DW_AT_GNU_guarded:
364cf781b2eSEd Maste 		*s = "DW_AT_GNU_guarded"; break;
365cf781b2eSEd Maste 	case DW_AT_GNU_pt_guarded:
366cf781b2eSEd Maste 		*s = "DW_AT_GNU_pt_guarded"; break;
367cf781b2eSEd Maste 	case DW_AT_GNU_locks_excluded:
368cf781b2eSEd Maste 		*s = "DW_AT_GNU_locks_excluded"; break;
369cf781b2eSEd Maste 	case DW_AT_GNU_exclusive_locks_required:
370cf781b2eSEd Maste 		*s = "DW_AT_GNU_exclusive_locks_required"; break;
371cf781b2eSEd Maste 	case DW_AT_GNU_shared_locks_required:
372cf781b2eSEd Maste 		*s = "DW_AT_GNU_shared_locks_required"; break;
373cf781b2eSEd Maste 	case DW_AT_GNU_odr_signature:
374cf781b2eSEd Maste 		*s = "DW_AT_GNU_odr_signature"; break;
375cf781b2eSEd Maste 	case DW_AT_GNU_template_name:
376cf781b2eSEd Maste 		*s = "DW_AT_GNU_template_name"; break;
377cf781b2eSEd Maste 	case DW_AT_GNU_call_site_value:
378cf781b2eSEd Maste 		*s = "DW_AT_GNU_call_site_value"; break;
379cf781b2eSEd Maste 	case DW_AT_GNU_call_site_data_value:
380cf781b2eSEd Maste 		*s = "DW_AT_GNU_call_site_data_value"; break;
381cf781b2eSEd Maste 	case DW_AT_GNU_call_site_target:
382cf781b2eSEd Maste 		*s = "DW_AT_GNU_call_site_target"; break;
383cf781b2eSEd Maste 	case DW_AT_GNU_call_site_target_clobbered:
384cf781b2eSEd Maste 		*s = "DW_AT_GNU_call_site_target_clobbered"; break;
385cf781b2eSEd Maste 	case DW_AT_GNU_tail_call:
386cf781b2eSEd Maste 		*s = "DW_AT_GNU_tail_call"; break;
387cf781b2eSEd Maste 	case DW_AT_GNU_all_tail_call_sites:
388cf781b2eSEd Maste 		*s = "DW_AT_GNU_all_tail_call_sites"; break;
389cf781b2eSEd Maste 	case DW_AT_GNU_all_call_sites:
390cf781b2eSEd Maste 		*s = "DW_AT_GNU_all_call_sites"; break;
391cf781b2eSEd Maste 	case DW_AT_GNU_all_source_call_sites:
392cf781b2eSEd Maste 		*s = "DW_AT_GNU_all_source_call_sites"; break;
393feba6b41SMark Johnston 	case DW_AT_APPLE_optimized:
394feba6b41SMark Johnston 		*s = "DW_AT_APPLE_optimized"; break;
395feba6b41SMark Johnston 	case DW_AT_APPLE_flags:
396feba6b41SMark Johnston 		*s = "DW_AT_APPLE_flags"; break;
397feba6b41SMark Johnston 	case DW_AT_APPLE_isa:
398feba6b41SMark Johnston 		*s = "DW_AT_APPLE_isa"; break;
399feba6b41SMark Johnston 	case DW_AT_APPLE_block:
400feba6b41SMark Johnston 		*s = "DW_AT_APPLE_block"; break;
401feba6b41SMark Johnston 	case DW_AT_APPLE_major_runtime_vers:
402feba6b41SMark Johnston 		*s = "DW_AT_APPLE_major_runtime_vers"; break;
403feba6b41SMark Johnston 	case DW_AT_APPLE_runtime_class:
404feba6b41SMark Johnston 		*s = "DW_AT_APPLE_runtime_class"; break;
405feba6b41SMark Johnston 	case DW_AT_APPLE_omit_frame_ptr:
406feba6b41SMark Johnston 		*s = "DW_AT_APPLE_omit_frame_ptr"; break;
407feba6b41SMark Johnston 	case DW_AT_APPLE_property_name:
408feba6b41SMark Johnston 		*s = "DW_AT_APPLE_property_name"; break;
409feba6b41SMark Johnston 	case DW_AT_APPLE_property_getter:
410feba6b41SMark Johnston 		*s = "DW_AT_APPLE_property_getter"; break;
411feba6b41SMark Johnston 	case DW_AT_APPLE_property_setter:
412feba6b41SMark Johnston 		*s = "DW_AT_APPLE_property_setter"; break;
413feba6b41SMark Johnston 	case DW_AT_APPLE_property_attribute:
414feba6b41SMark Johnston 		*s = "DW_AT_APPLE_property_attribute"; break;
415feba6b41SMark Johnston 	case DW_AT_APPLE_objc_complete_type:
416feba6b41SMark Johnston 		*s = "DW_AT_APPLE_objc_complete_type"; break;
417feba6b41SMark Johnston 	case DW_AT_APPLE_property:
418feba6b41SMark Johnston 		*s = "DW_AT_APPLE_property"; break;
4192de3b87aSKai Wang 	default:
4202de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
4212de3b87aSKai Wang 	}
4222de3b87aSKai Wang 
4232de3b87aSKai Wang 	return (DW_DLV_OK);
4242de3b87aSKai Wang }
4252de3b87aSKai Wang 
4262de3b87aSKai Wang int
dwarf_get_ATE_name(unsigned ate,const char ** s)4272de3b87aSKai Wang dwarf_get_ATE_name(unsigned ate, const char **s)
4282de3b87aSKai Wang {
4292de3b87aSKai Wang 
4302de3b87aSKai Wang 	assert(s != NULL);
4312de3b87aSKai Wang 
4322de3b87aSKai Wang 	switch (ate) {
4332de3b87aSKai Wang 	case DW_ATE_address:
4342de3b87aSKai Wang 		*s = "DW_ATE_address"; break;
4352de3b87aSKai Wang 	case DW_ATE_boolean:
4362de3b87aSKai Wang 		*s = "DW_ATE_boolean"; break;
4372de3b87aSKai Wang 	case DW_ATE_complex_float:
4382de3b87aSKai Wang 		*s = "DW_ATE_complex_float"; break;
4392de3b87aSKai Wang 	case DW_ATE_float:
4402de3b87aSKai Wang 		*s = "DW_ATE_float"; break;
4412de3b87aSKai Wang 	case DW_ATE_signed:
4422de3b87aSKai Wang 		*s = "DW_ATE_signed"; break;
4432de3b87aSKai Wang 	case DW_ATE_signed_char:
4442de3b87aSKai Wang 		*s = "DW_ATE_signed_char"; break;
4452de3b87aSKai Wang 	case DW_ATE_unsigned:
4462de3b87aSKai Wang 		*s = "DW_ATE_unsigned"; break;
4472de3b87aSKai Wang 	case DW_ATE_unsigned_char:
4482de3b87aSKai Wang 		*s = "DW_ATE_unsigned_char"; break;
4492de3b87aSKai Wang 	case DW_ATE_imaginary_float:
4502de3b87aSKai Wang 		*s = "DW_ATE_imaginary_float"; break;
4512de3b87aSKai Wang 	case DW_ATE_packed_decimal:
4522de3b87aSKai Wang 		*s = "DW_ATE_packed_decimal"; break;
4532de3b87aSKai Wang 	case DW_ATE_numeric_string:
4542de3b87aSKai Wang 		*s = "DW_ATE_numeric_string"; break;
4552de3b87aSKai Wang 	case DW_ATE_edited:
4562de3b87aSKai Wang 		*s = "DW_ATE_edited"; break;
4572de3b87aSKai Wang 	case DW_ATE_signed_fixed:
4582de3b87aSKai Wang 		*s = "DW_ATE_signed_fixed"; break;
4592de3b87aSKai Wang 	case DW_ATE_unsigned_fixed:
4602de3b87aSKai Wang 		*s = "DW_ATE_unsigned_fixed"; break;
4612de3b87aSKai Wang 	case DW_ATE_decimal_float:
4622de3b87aSKai Wang 		*s = "DW_ATE_decimal_float"; break;
463*7bb441c8SMark Johnston 	case DW_ATE_UTF:
464*7bb441c8SMark Johnston 		*s = "DW_ATE_UTF"; break;
465*7bb441c8SMark Johnston 	case DW_ATE_UCS:
466*7bb441c8SMark Johnston 		*s = "DW_ATE_UCS"; break;
467*7bb441c8SMark Johnston 	case DW_ATE_ASCII:
468*7bb441c8SMark Johnston 		*s = "DW_ATE_ASCII"; break;
4692de3b87aSKai Wang 	case DW_ATE_lo_user:
4702de3b87aSKai Wang 		*s = "DW_ATE_lo_user"; break;
4712de3b87aSKai Wang 	case DW_ATE_hi_user:
4722de3b87aSKai Wang 		*s = "DW_ATE_hi_user"; break;
4732de3b87aSKai Wang 	default:
4742de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
4752de3b87aSKai Wang 	}
4762de3b87aSKai Wang 
4772de3b87aSKai Wang 	return (DW_DLV_OK);
4782de3b87aSKai Wang }
4792de3b87aSKai Wang 
4802de3b87aSKai Wang int
dwarf_get_CC_name(unsigned cc,const char ** s)4812de3b87aSKai Wang dwarf_get_CC_name(unsigned cc, const char **s)
4822de3b87aSKai Wang {
4832de3b87aSKai Wang 
4842de3b87aSKai Wang 	assert(s != NULL);
4852de3b87aSKai Wang 
4862de3b87aSKai Wang 	switch (cc) {
4872de3b87aSKai Wang 	case DW_CC_normal:
4882de3b87aSKai Wang 		*s = "DW_CC_normal"; break;
4892de3b87aSKai Wang 	case DW_CC_program:
4902de3b87aSKai Wang 		*s = "DW_CC_program"; break;
4912de3b87aSKai Wang 	case DW_CC_nocall:
4922de3b87aSKai Wang 		*s = "DW_CC_nocall"; break;
493*7bb441c8SMark Johnston 	case DW_CC_pass_by_reference:
494*7bb441c8SMark Johnston 		*s = "DW_CC_pass_by_reference"; break;
495*7bb441c8SMark Johnston 	case DW_CC_pass_by_value:
496*7bb441c8SMark Johnston 		*s = "DW_CC_pass_by_value"; break;
4972de3b87aSKai Wang 	case DW_CC_lo_user:
4982de3b87aSKai Wang 		*s = "DW_CC_lo_user"; break;
4992de3b87aSKai Wang 	case DW_CC_hi_user:
5002de3b87aSKai Wang 		*s = "DW_CC_hi_user"; break;
5012de3b87aSKai Wang 	default:
5022de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
5032de3b87aSKai Wang 	}
5042de3b87aSKai Wang 
5052de3b87aSKai Wang 	return (DW_DLV_OK);
5062de3b87aSKai Wang }
5072de3b87aSKai Wang 
5082de3b87aSKai Wang int
dwarf_get_CFA_name(unsigned cfa,const char ** s)5092de3b87aSKai Wang dwarf_get_CFA_name(unsigned cfa, const char **s)
5102de3b87aSKai Wang {
5112de3b87aSKai Wang 
5122de3b87aSKai Wang 	assert(s != NULL);
5132de3b87aSKai Wang 
5142de3b87aSKai Wang 	switch (cfa) {
5152de3b87aSKai Wang 	case DW_CFA_advance_loc:
5162de3b87aSKai Wang 		*s = "DW_CFA_advance_loc"; break;
5172de3b87aSKai Wang 	case DW_CFA_offset:
5182de3b87aSKai Wang 		*s = "DW_CFA_offset"; break;
5192de3b87aSKai Wang 	case DW_CFA_restore:
5202de3b87aSKai Wang 		*s = "DW_CFA_restore"; break;
5212de3b87aSKai Wang 	case DW_CFA_nop:
5222de3b87aSKai Wang 		*s = "DW_CFA_nop"; break;
5232de3b87aSKai Wang 	case DW_CFA_set_loc:
5242de3b87aSKai Wang 		*s = "DW_CFA_set_loc"; break;
5252de3b87aSKai Wang 	case DW_CFA_advance_loc1:
5262de3b87aSKai Wang 		*s = "DW_CFA_advance_loc1"; break;
5272de3b87aSKai Wang 	case DW_CFA_advance_loc2:
5282de3b87aSKai Wang 		*s = "DW_CFA_advance_loc2"; break;
5292de3b87aSKai Wang 	case DW_CFA_advance_loc4:
5302de3b87aSKai Wang 		*s = "DW_CFA_advance_loc4"; break;
5312de3b87aSKai Wang 	case DW_CFA_offset_extended:
5322de3b87aSKai Wang 		*s = "DW_CFA_offset_extended"; break;
5332de3b87aSKai Wang 	case DW_CFA_restore_extended:
5342de3b87aSKai Wang 		*s = "DW_CFA_restore_extended"; break;
5352de3b87aSKai Wang 	case DW_CFA_undefined:
5362de3b87aSKai Wang 		*s = "DW_CFA_undefined"; break;
5372de3b87aSKai Wang 	case DW_CFA_same_value:
5382de3b87aSKai Wang 		*s = "DW_CFA_same_value"; break;
5392de3b87aSKai Wang 	case DW_CFA_register:
5402de3b87aSKai Wang 		*s = "DW_CFA_register"; break;
5412de3b87aSKai Wang 	case DW_CFA_remember_state:
5422de3b87aSKai Wang 		*s = "DW_CFA_remember_state"; break;
5432de3b87aSKai Wang 	case DW_CFA_restore_state:
5442de3b87aSKai Wang 		*s = "DW_CFA_restore_state"; break;
5452de3b87aSKai Wang 	case DW_CFA_def_cfa:
5462de3b87aSKai Wang 		*s = "DW_CFA_def_cfa"; break;
5472de3b87aSKai Wang 	case DW_CFA_def_cfa_register:
5482de3b87aSKai Wang 		*s = "DW_CFA_def_cfa_register"; break;
5492de3b87aSKai Wang 	case DW_CFA_def_cfa_offset:
5502de3b87aSKai Wang 		*s = "DW_CFA_def_cfa_offset"; break;
5512de3b87aSKai Wang 	case DW_CFA_def_cfa_expression:
5522de3b87aSKai Wang 		*s = "DW_CFA_def_cfa_expression"; break;
5532de3b87aSKai Wang 	case DW_CFA_expression:
5542de3b87aSKai Wang 		*s = "DW_CFA_expression"; break;
5552de3b87aSKai Wang 	case DW_CFA_offset_extended_sf:
5562de3b87aSKai Wang 		*s = "DW_CFA_offset_extended_sf"; break;
5572de3b87aSKai Wang 	case DW_CFA_def_cfa_sf:
5582de3b87aSKai Wang 		*s = "DW_CFA_def_cfa_sf"; break;
5592de3b87aSKai Wang 	case DW_CFA_def_cfa_offset_sf:
5602de3b87aSKai Wang 		*s = "DW_CFA_def_cfa_offset_sf"; break;
5612de3b87aSKai Wang 	case DW_CFA_val_offset:
5622de3b87aSKai Wang 		*s = "DW_CFA_val_offset"; break;
5632de3b87aSKai Wang 	case DW_CFA_val_offset_sf:
5642de3b87aSKai Wang 		*s = "DW_CFA_val_offset_sf"; break;
5652de3b87aSKai Wang 	case DW_CFA_val_expression:
5662de3b87aSKai Wang 		*s = "DW_CFA_val_expression"; break;
5672de3b87aSKai Wang 	case DW_CFA_lo_user:
5682de3b87aSKai Wang 		*s = "DW_CFA_lo_user"; break;
5692de3b87aSKai Wang 	case DW_CFA_high_user:
5702de3b87aSKai Wang 		*s = "DW_CFA_high_user"; break;
5712de3b87aSKai Wang 	default:
5722de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
5732de3b87aSKai Wang 	}
5742de3b87aSKai Wang 
5752de3b87aSKai Wang 	return (DW_DLV_OK);
5762de3b87aSKai Wang }
5772de3b87aSKai Wang 
5782de3b87aSKai Wang int
dwarf_get_CHILDREN_name(unsigned children,const char ** s)5792de3b87aSKai Wang dwarf_get_CHILDREN_name(unsigned children, const char **s)
5802de3b87aSKai Wang {
5812de3b87aSKai Wang 
5822de3b87aSKai Wang 	assert(s != NULL);
5832de3b87aSKai Wang 
5842de3b87aSKai Wang 	switch (children) {
5852de3b87aSKai Wang 	case DW_CHILDREN_no:
5862de3b87aSKai Wang 		*s = "DW_CHILDREN_no"; break;
5872de3b87aSKai Wang 	case DW_CHILDREN_yes:
5882de3b87aSKai Wang 		*s = "DW_CHILDREN_yes"; break;
5892de3b87aSKai Wang 	default:
5902de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
5912de3b87aSKai Wang 	}
5922de3b87aSKai Wang 
5932de3b87aSKai Wang 	return (DW_DLV_OK);
5942de3b87aSKai Wang }
5952de3b87aSKai Wang 
5962de3b87aSKai Wang int
dwarf_get_FORM_name(unsigned form,const char ** s)5972de3b87aSKai Wang dwarf_get_FORM_name(unsigned form, const char **s)
5982de3b87aSKai Wang {
5992de3b87aSKai Wang 
6002de3b87aSKai Wang 	assert(s != NULL);
6012de3b87aSKai Wang 
6022de3b87aSKai Wang 	switch (form) {
6032de3b87aSKai Wang 	case DW_FORM_addr:
6042de3b87aSKai Wang 		*s = "DW_FORM_addr"; break;
6052de3b87aSKai Wang 	case DW_FORM_block:
6062de3b87aSKai Wang 		*s = "DW_FORM_block"; break;
6072de3b87aSKai Wang 	case DW_FORM_block1:
6082de3b87aSKai Wang 		*s = "DW_FORM_block1"; break;
6092de3b87aSKai Wang 	case DW_FORM_block2:
6102de3b87aSKai Wang 		*s = "DW_FORM_block2"; break;
6112de3b87aSKai Wang 	case DW_FORM_block4:
6122de3b87aSKai Wang 		*s = "DW_FORM_block4"; break;
6132de3b87aSKai Wang 	case DW_FORM_data1:
6142de3b87aSKai Wang 		*s = "DW_FORM_data1"; break;
6152de3b87aSKai Wang 	case DW_FORM_data2:
6162de3b87aSKai Wang 		*s = "DW_FORM_data2"; break;
6172de3b87aSKai Wang 	case DW_FORM_data4:
6182de3b87aSKai Wang 		*s = "DW_FORM_data4"; break;
6192de3b87aSKai Wang 	case DW_FORM_data8:
6202de3b87aSKai Wang 		*s = "DW_FORM_data8"; break;
6212de3b87aSKai Wang 	case DW_FORM_exprloc:
6222de3b87aSKai Wang 		*s = "DW_FORM_exprloc"; break;
6232de3b87aSKai Wang 	case DW_FORM_flag:
6242de3b87aSKai Wang 		*s = "DW_FORM_flag"; break;
6252de3b87aSKai Wang 	case DW_FORM_flag_present:
6262de3b87aSKai Wang 		*s = "DW_FORM_flag_present"; break;
6272de3b87aSKai Wang 	case DW_FORM_indirect:
6282de3b87aSKai Wang 		*s = "DW_FORM_indirect"; break;
6292de3b87aSKai Wang 	case DW_FORM_ref1:
6302de3b87aSKai Wang 		*s = "DW_FORM_ref1"; break;
6312de3b87aSKai Wang 	case DW_FORM_ref2:
6322de3b87aSKai Wang 		*s = "DW_FORM_ref2"; break;
6332de3b87aSKai Wang 	case DW_FORM_ref4:
6342de3b87aSKai Wang 		*s = "DW_FORM_ref4"; break;
6352de3b87aSKai Wang 	case DW_FORM_ref8:
6362de3b87aSKai Wang 		*s = "DW_FORM_ref8"; break;
6372de3b87aSKai Wang 	case DW_FORM_ref_addr:
6382de3b87aSKai Wang 		*s = "DW_FORM_ref_addr"; break;
6392de3b87aSKai Wang 	case DW_FORM_ref_sig8:
6402de3b87aSKai Wang 		*s = "DW_FORM_ref_sig8"; break;
6412de3b87aSKai Wang 	case DW_FORM_ref_udata:
6422de3b87aSKai Wang 		*s = "DW_FORM_ref_udata"; break;
6432de3b87aSKai Wang 	case DW_FORM_sdata:
6442de3b87aSKai Wang 		*s = "DW_FORM_sdata"; break;
6452de3b87aSKai Wang 	case DW_FORM_sec_offset:
6462de3b87aSKai Wang 		*s = "DW_FORM_sec_offset"; break;
6472de3b87aSKai Wang 	case DW_FORM_string:
6482de3b87aSKai Wang 		*s = "DW_FORM_string"; break;
6492de3b87aSKai Wang 	case DW_FORM_strp:
6502de3b87aSKai Wang 		*s = "DW_FORM_strp"; break;
6512de3b87aSKai Wang 	case DW_FORM_udata:
6522de3b87aSKai Wang 		*s = "DW_FORM_udata"; break;
653*7bb441c8SMark Johnston 	case DW_FORM_strx:
654*7bb441c8SMark Johnston 		*s = "DW_FORM_strx"; break;
655*7bb441c8SMark Johnston 	case DW_FORM_addrx:
656*7bb441c8SMark Johnston 		*s = "DW_FORM_addrx"; break;
657*7bb441c8SMark Johnston 	case DW_FORM_ref_sup4:
658*7bb441c8SMark Johnston 		*s = "DW_FORM_ref_sup4"; break;
659*7bb441c8SMark Johnston 	case DW_FORM_strp_sup:
660*7bb441c8SMark Johnston 		*s = "DW_FORM_strp_sup"; break;
661*7bb441c8SMark Johnston 	case DW_FORM_data16:
662*7bb441c8SMark Johnston 		*s = "DW_FORM_data16"; break;
663*7bb441c8SMark Johnston 	case DW_FORM_line_strp:
664*7bb441c8SMark Johnston 		*s = "DW_FORM_line_strp"; break;
665*7bb441c8SMark Johnston 	case DW_FORM_implicit_const:
666*7bb441c8SMark Johnston 		*s = "DW_FORM_implicit_const"; break;
667*7bb441c8SMark Johnston 	case DW_FORM_loclistx:
668*7bb441c8SMark Johnston 		*s = "DW_FORM_loclistx"; break;
669*7bb441c8SMark Johnston 	case DW_FORM_rnglistx:
670*7bb441c8SMark Johnston 		*s = "DW_FORM_rnglistx"; break;
671*7bb441c8SMark Johnston 	case DW_FORM_ref_sup8:
672*7bb441c8SMark Johnston 		*s = "DW_FORM_ref_sup8"; break;
673*7bb441c8SMark Johnston 	case DW_FORM_ref_strx1:
674*7bb441c8SMark Johnston 		*s = "DW_FORM_ref_strx1"; break;
675*7bb441c8SMark Johnston 	case DW_FORM_ref_strx2:
676*7bb441c8SMark Johnston 		*s = "DW_FORM_ref_strx2"; break;
677*7bb441c8SMark Johnston 	case DW_FORM_ref_strx3:
678*7bb441c8SMark Johnston 		*s = "DW_FORM_ref_strx3"; break;
679*7bb441c8SMark Johnston 	case DW_FORM_ref_strx4:
680*7bb441c8SMark Johnston 		*s = "DW_FORM_ref_strx4"; break;
681*7bb441c8SMark Johnston 	case DW_FORM_ref_addrx1:
682*7bb441c8SMark Johnston 		*s = "DW_FORM_ref_addrx1"; break;
683*7bb441c8SMark Johnston 	case DW_FORM_ref_addrx2:
684*7bb441c8SMark Johnston 		*s = "DW_FORM_ref_addrx2"; break;
685*7bb441c8SMark Johnston 	case DW_FORM_ref_addrx3:
686*7bb441c8SMark Johnston 		*s = "DW_FORM_ref_addrx3"; break;
687*7bb441c8SMark Johnston 	case DW_FORM_ref_addrx4:
688*7bb441c8SMark Johnston 		*s = "DW_FORM_ref_addrx4"; break;
6892de3b87aSKai Wang 	default:
6902de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
6912de3b87aSKai Wang 	}
6922de3b87aSKai Wang 
6932de3b87aSKai Wang 	return (DW_DLV_OK);
6942de3b87aSKai Wang }
6952de3b87aSKai Wang 
6962de3b87aSKai Wang int
dwarf_get_DS_name(unsigned ds,const char ** s)6972de3b87aSKai Wang dwarf_get_DS_name(unsigned ds, const char **s)
6982de3b87aSKai Wang {
6992de3b87aSKai Wang 
7002de3b87aSKai Wang 	assert(s != NULL);
7012de3b87aSKai Wang 
7022de3b87aSKai Wang 	switch (ds) {
7032de3b87aSKai Wang 	case DW_DS_unsigned:
7042de3b87aSKai Wang 		*s = "DW_DS_unsigned"; break;
7052de3b87aSKai Wang 	case DW_DS_leading_overpunch:
7062de3b87aSKai Wang 		*s = "DW_DS_leading_overpunch"; break;
7072de3b87aSKai Wang 	case DW_DS_trailing_overpunch:
7082de3b87aSKai Wang 		*s = "DW_DS_trailing_overpunch"; break;
7092de3b87aSKai Wang 	case DW_DS_leading_separate:
7102de3b87aSKai Wang 		*s = "DW_DS_leading_separate"; break;
7112de3b87aSKai Wang 	case DW_DS_trailing_separate:
712d003e0d7SEd Maste 		*s = "DW_DS_trailing_separate"; break;
7132de3b87aSKai Wang 	default:
7142de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
7152de3b87aSKai Wang 	}
7162de3b87aSKai Wang 
7172de3b87aSKai Wang 	return (DW_DLV_OK);
7182de3b87aSKai Wang }
7192de3b87aSKai Wang 
7202de3b87aSKai Wang int
dwarf_get_DSC_name(unsigned dsc,const char ** s)7212de3b87aSKai Wang dwarf_get_DSC_name(unsigned dsc, const char **s)
7222de3b87aSKai Wang {
7232de3b87aSKai Wang 
7242de3b87aSKai Wang 	assert(s != NULL);
7252de3b87aSKai Wang 
7262de3b87aSKai Wang 	switch (dsc) {
7272de3b87aSKai Wang 	case DW_DSC_label:
7282de3b87aSKai Wang 		*s = "DW_DSC_label"; break;
7292de3b87aSKai Wang 	case DW_DSC_range:
7302de3b87aSKai Wang 		*s = "DW_DSC_range"; break;
7312de3b87aSKai Wang 	default:
7322de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
7332de3b87aSKai Wang 	}
7342de3b87aSKai Wang 
7352de3b87aSKai Wang 	return (DW_DLV_OK);
7362de3b87aSKai Wang }
7372de3b87aSKai Wang 
7382de3b87aSKai Wang int
dwarf_get_EH_name(unsigned eh,const char ** s)7392de3b87aSKai Wang dwarf_get_EH_name(unsigned eh, const char **s)
7402de3b87aSKai Wang {
7412de3b87aSKai Wang 
7422de3b87aSKai Wang 	assert(s != NULL);
7432de3b87aSKai Wang 
7442de3b87aSKai Wang 	switch (eh) {
7452de3b87aSKai Wang 	case DW_EH_PE_absptr:
7462de3b87aSKai Wang 		*s = "DW_EH_PE_absptr"; break;
7472de3b87aSKai Wang 	case DW_EH_PE_uleb128:
7482de3b87aSKai Wang 		*s = "DW_EH_PE_uleb128"; break;
7492de3b87aSKai Wang 	case DW_EH_PE_udata2:
7502de3b87aSKai Wang 		*s = "DW_EH_PE_udata2"; break;
7512de3b87aSKai Wang 	case DW_EH_PE_udata4:
7522de3b87aSKai Wang 		*s = "DW_EH_PE_udata4"; break;
7532de3b87aSKai Wang 	case DW_EH_PE_udata8:
7542de3b87aSKai Wang 		*s = "DW_EH_PE_udata8"; break;
7552de3b87aSKai Wang 	case DW_EH_PE_sleb128:
7562de3b87aSKai Wang 		*s = "DW_EH_PE_sleb128"; break;
7572de3b87aSKai Wang 	case DW_EH_PE_sdata2:
7582de3b87aSKai Wang 		*s = "DW_EH_PE_sdata2"; break;
7592de3b87aSKai Wang 	case DW_EH_PE_sdata4:
7602de3b87aSKai Wang 		*s = "DW_EH_PE_sdata4"; break;
7612de3b87aSKai Wang 	case DW_EH_PE_sdata8:
7622de3b87aSKai Wang 		*s = "DW_EH_PE_sdata8"; break;
7632de3b87aSKai Wang 	case DW_EH_PE_pcrel:
7642de3b87aSKai Wang 		*s = "DW_EH_PE_pcrel"; break;
7652de3b87aSKai Wang 	case DW_EH_PE_textrel:
7662de3b87aSKai Wang 		*s = "DW_EH_PE_textrel"; break;
7672de3b87aSKai Wang 	case DW_EH_PE_datarel:
7682de3b87aSKai Wang 		*s = "DW_EH_PE_datarel"; break;
7692de3b87aSKai Wang 	case DW_EH_PE_funcrel:
7702de3b87aSKai Wang 		*s = "DW_EH_PE_funcrel"; break;
7712de3b87aSKai Wang 	case DW_EH_PE_aligned:
7722de3b87aSKai Wang 		*s = "DW_EH_PE_aligned"; break;
7732de3b87aSKai Wang 	case DW_EH_PE_omit:
7742de3b87aSKai Wang 		*s = "DW_EH_PE_omit"; break;
7752de3b87aSKai Wang 	default:
7762de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
7772de3b87aSKai Wang 	}
7782de3b87aSKai Wang 
7792de3b87aSKai Wang 	return (DW_DLV_OK);
7802de3b87aSKai Wang }
7812de3b87aSKai Wang 
7822de3b87aSKai Wang int
dwarf_get_END_name(unsigned end,const char ** s)7832de3b87aSKai Wang dwarf_get_END_name(unsigned end, const char **s)
7842de3b87aSKai Wang {
7852de3b87aSKai Wang 
7862de3b87aSKai Wang 	assert(s != NULL);
7872de3b87aSKai Wang 
7882de3b87aSKai Wang 	switch (end) {
7892de3b87aSKai Wang 	case DW_END_default:
7902de3b87aSKai Wang 		*s = "DW_END_default"; break;
7912de3b87aSKai Wang 	case DW_END_big:
7922de3b87aSKai Wang 		*s = "DW_END_big"; break;
7932de3b87aSKai Wang 	case DW_END_little:
7942de3b87aSKai Wang 		*s = "DW_END_little"; break;
7952de3b87aSKai Wang 	case DW_END_lo_user:
7962de3b87aSKai Wang 		*s = "DW_END_lo_user"; break;
7972de3b87aSKai Wang 	case DW_END_high_user:
7982de3b87aSKai Wang 		*s = "DW_END_high_user"; break;
7992de3b87aSKai Wang 	default:
8002de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
8012de3b87aSKai Wang 	}
8022de3b87aSKai Wang 
8032de3b87aSKai Wang 	return (DW_DLV_OK);
8042de3b87aSKai Wang }
8052de3b87aSKai Wang 
8062de3b87aSKai Wang int
dwarf_get_ID_name(unsigned id,const char ** s)8072de3b87aSKai Wang dwarf_get_ID_name(unsigned id, const char **s)
8082de3b87aSKai Wang {
8092de3b87aSKai Wang 
8102de3b87aSKai Wang 	assert(s != NULL);
8112de3b87aSKai Wang 
8122de3b87aSKai Wang 	switch (id) {
8132de3b87aSKai Wang 	case DW_ID_case_sensitive:
8142de3b87aSKai Wang 		*s = "DW_ID_case_sensitive"; break;
8152de3b87aSKai Wang 	case DW_ID_up_case:
8162de3b87aSKai Wang 		*s = "DW_ID_up_case"; break;
8172de3b87aSKai Wang 	case DW_ID_down_case:
8182de3b87aSKai Wang 		*s = "DW_ID_down_case"; break;
8192de3b87aSKai Wang 	case DW_ID_case_insensitive:
8202de3b87aSKai Wang 		*s = "DW_ID_case_insensitive"; break;
8212de3b87aSKai Wang 	default:
8222de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
8232de3b87aSKai Wang 	}
8242de3b87aSKai Wang 
8252de3b87aSKai Wang 	return (DW_DLV_OK);
8262de3b87aSKai Wang }
8272de3b87aSKai Wang 
8282de3b87aSKai Wang int
dwarf_get_INL_name(unsigned inl,const char ** s)8292de3b87aSKai Wang dwarf_get_INL_name(unsigned inl, const char **s)
8302de3b87aSKai Wang {
8312de3b87aSKai Wang 
8322de3b87aSKai Wang 	assert(s != NULL);
8332de3b87aSKai Wang 
8342de3b87aSKai Wang 	switch (inl) {
8352de3b87aSKai Wang 	case DW_INL_not_inlined:
8362de3b87aSKai Wang 		*s = "DW_INL_not_inlined"; break;
8372de3b87aSKai Wang 	case DW_INL_inlined:
8382de3b87aSKai Wang 		*s = "DW_INL_inlined"; break;
8392de3b87aSKai Wang 	case DW_INL_declared_not_inlined:
8402de3b87aSKai Wang 		*s = "DW_INL_declared_not_inlined"; break;
8412de3b87aSKai Wang 	case DW_INL_declared_inlined:
8422de3b87aSKai Wang 		*s = "DW_INL_declared_inlined"; break;
8432de3b87aSKai Wang 	default:
8442de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
8452de3b87aSKai Wang 	}
8462de3b87aSKai Wang 
8472de3b87aSKai Wang 	return (DW_DLV_OK);
8482de3b87aSKai Wang }
8492de3b87aSKai Wang 
8502de3b87aSKai Wang int
dwarf_get_LANG_name(unsigned lang,const char ** s)8512de3b87aSKai Wang dwarf_get_LANG_name(unsigned lang, const char **s)
8522de3b87aSKai Wang {
8532de3b87aSKai Wang 
8542de3b87aSKai Wang 	assert(s != NULL);
8552de3b87aSKai Wang 
8562de3b87aSKai Wang 	switch (lang) {
8572de3b87aSKai Wang 	case DW_LANG_C89:
8582de3b87aSKai Wang 		*s = "DW_LANG_C89"; break;
8592de3b87aSKai Wang 	case DW_LANG_C:
8602de3b87aSKai Wang 		*s = "DW_LANG_C"; break;
8612de3b87aSKai Wang 	case DW_LANG_Ada83:
8622de3b87aSKai Wang 		*s = "DW_LANG_Ada83"; break;
8632de3b87aSKai Wang 	case DW_LANG_C_plus_plus:
8642de3b87aSKai Wang 		*s = "DW_LANG_C_plus_plus"; break;
8652de3b87aSKai Wang 	case DW_LANG_Cobol74:
8662de3b87aSKai Wang 		*s = "DW_LANG_Cobol74"; break;
8672de3b87aSKai Wang 	case DW_LANG_Cobol85:
8682de3b87aSKai Wang 		*s = "DW_LANG_Cobol85"; break;
8692de3b87aSKai Wang 	case DW_LANG_Fortran77:
8702de3b87aSKai Wang 		*s = "DW_LANG_Fortran77"; break;
8712de3b87aSKai Wang 	case DW_LANG_Fortran90:
8722de3b87aSKai Wang 		*s = "DW_LANG_Fortran90"; break;
8732de3b87aSKai Wang 	case DW_LANG_Pascal83:
8742de3b87aSKai Wang 		*s = "DW_LANG_Pascal83"; break;
8752de3b87aSKai Wang 	case DW_LANG_Modula2:
8762de3b87aSKai Wang 		*s = "DW_LANG_Modula2"; break;
8772de3b87aSKai Wang 	case DW_LANG_Java:
8782de3b87aSKai Wang 		*s = "DW_LANG_Java"; break;
8792de3b87aSKai Wang 	case DW_LANG_C99:
8802de3b87aSKai Wang 		*s = "DW_LANG_C99"; break;
8812de3b87aSKai Wang 	case DW_LANG_Ada95:
8822de3b87aSKai Wang 		*s = "DW_LANG_Ada95"; break;
8832de3b87aSKai Wang 	case DW_LANG_Fortran95:
8842de3b87aSKai Wang 		*s = "DW_LANG_Fortran95"; break;
8852de3b87aSKai Wang 	case DW_LANG_PLI:
8862de3b87aSKai Wang 		*s = "DW_LANG_PLI"; break;
8872de3b87aSKai Wang 	case DW_LANG_ObjC:
8882de3b87aSKai Wang 		*s = "DW_LANG_ObjC"; break;
8892de3b87aSKai Wang 	case DW_LANG_ObjC_plus_plus:
8902de3b87aSKai Wang 		*s = "DW_LANG_ObjC_plus_plus"; break;
8912de3b87aSKai Wang 	case DW_LANG_UPC:
8922de3b87aSKai Wang 		*s = "DW_LANG_UPC"; break;
8932de3b87aSKai Wang 	case DW_LANG_D:
8942de3b87aSKai Wang 		*s = "DW_LANG_D"; break;
8954a0f8b33SMark Johnston 	case DW_LANG_Python:
8964a0f8b33SMark Johnston 		*s = "DW_LANG_Python"; break;
8974a0f8b33SMark Johnston 	case DW_LANG_OpenCL:
8984a0f8b33SMark Johnston 		*s = "DW_LANG_OpenCL"; break;
8994a0f8b33SMark Johnston 	case DW_LANG_Go:
9004a0f8b33SMark Johnston 		*s = "DW_LANG_Go"; break;
9014a0f8b33SMark Johnston 	case DW_LANG_Modula3:
9024a0f8b33SMark Johnston 		*s = "DW_LANG_Modula3"; break;
9034a0f8b33SMark Johnston 	case DW_LANG_Haskell:
9044a0f8b33SMark Johnston 		*s = "DW_LANG_Haskell"; break;
9054a0f8b33SMark Johnston 	case DW_LANG_C_plus_plus_03:
9064a0f8b33SMark Johnston 		*s = "DW_LANG_C_plus_plus_03"; break;
9074a0f8b33SMark Johnston 	case DW_LANG_C_plus_plus_11:
9084a0f8b33SMark Johnston 		*s = "DW_LANG_C_plus_plus_11"; break;
9094a0f8b33SMark Johnston 	case DW_LANG_OCaml:
9104a0f8b33SMark Johnston 		*s = "DW_LANG_OCaml"; break;
9114a0f8b33SMark Johnston 	case DW_LANG_Rust:
9124a0f8b33SMark Johnston 		*s = "DW_LANG_Rust"; break;
9134a0f8b33SMark Johnston 	case DW_LANG_C11:
9144a0f8b33SMark Johnston 		*s = "DW_LANG_C11"; break;
9154a0f8b33SMark Johnston 	case DW_LANG_Swift:
9164a0f8b33SMark Johnston 		*s = "DW_LANG_Swift"; break;
9174a0f8b33SMark Johnston 	case DW_LANG_Julia:
9184a0f8b33SMark Johnston 		*s = "DW_LANG_Julia"; break;
9194a0f8b33SMark Johnston 	case DW_LANG_Dylan:
9204a0f8b33SMark Johnston 		*s = "DW_LANG_Dylan"; break;
9214a0f8b33SMark Johnston 	case DW_LANG_C_plus_plus_14:
9224a0f8b33SMark Johnston 		*s = "DW_LANG_C_plus_plus_14"; break;
9234a0f8b33SMark Johnston 	case DW_LANG_Fortran03:
9244a0f8b33SMark Johnston 		*s = "DW_LANG_Fortran03"; break;
9254a0f8b33SMark Johnston 	case DW_LANG_Fortran08:
9264a0f8b33SMark Johnston 		*s = "DW_LANG_Fortran08"; break;
9274a0f8b33SMark Johnston 	case DW_LANG_RenderScript:
9284a0f8b33SMark Johnston 		*s = "DW_LANG_RenderScript"; break;
9294a0f8b33SMark Johnston 	case DW_LANG_BLISS:
9304a0f8b33SMark Johnston 		*s = "DW_LANG_BLISS"; break;
9312de3b87aSKai Wang 	case DW_LANG_lo_user:
9322de3b87aSKai Wang 		*s = "DW_LANG_lo_user"; break;
933bee2765cSEd Maste 	case DW_LANG_Mips_Assembler:
934bee2765cSEd Maste 		*s = "DW_LANG_Mips_Assembler"; break;
9352de3b87aSKai Wang 	case DW_LANG_hi_user:
9362de3b87aSKai Wang 		*s = "DW_LANG_hi_user"; break;
9372de3b87aSKai Wang 	default:
9382de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
9392de3b87aSKai Wang 	}
9402de3b87aSKai Wang 
9412de3b87aSKai Wang 	return (DW_DLV_OK);
9422de3b87aSKai Wang }
9432de3b87aSKai Wang 
9442de3b87aSKai Wang int
dwarf_get_LNE_name(unsigned lne,const char ** s)9452de3b87aSKai Wang dwarf_get_LNE_name(unsigned lne, const char **s)
9462de3b87aSKai Wang {
9472de3b87aSKai Wang 
9482de3b87aSKai Wang 	assert(s != NULL);
9492de3b87aSKai Wang 
9502de3b87aSKai Wang 	switch (lne) {
9512de3b87aSKai Wang 	case DW_LNE_end_sequence:
9522de3b87aSKai Wang 		*s = "DW_LNE_end_sequence"; break;
9532de3b87aSKai Wang 	case DW_LNE_set_address:
9542de3b87aSKai Wang 		*s = "DW_LNE_set_address"; break;
9552de3b87aSKai Wang 	case DW_LNE_define_file:
9562de3b87aSKai Wang 		*s = "DW_LNE_define_file"; break;
9572de3b87aSKai Wang 	case DW_LNE_lo_user:
9582de3b87aSKai Wang 		*s = "DW_LNE_lo_user"; break;
9592de3b87aSKai Wang 	case DW_LNE_hi_user:
9602de3b87aSKai Wang 		*s = "DW_LNE_hi_user"; break;
9612de3b87aSKai Wang 	default:
9622de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
9632de3b87aSKai Wang 	}
9642de3b87aSKai Wang 
9652de3b87aSKai Wang 	return (DW_DLV_OK);
9662de3b87aSKai Wang }
9672de3b87aSKai Wang 
9682de3b87aSKai Wang int
dwarf_get_LNS_name(unsigned lns,const char ** s)9692de3b87aSKai Wang dwarf_get_LNS_name(unsigned lns, const char **s)
9702de3b87aSKai Wang {
9712de3b87aSKai Wang 
9722de3b87aSKai Wang 	assert(s != NULL);
9732de3b87aSKai Wang 
9742de3b87aSKai Wang 	switch (lns) {
9752de3b87aSKai Wang 	case DW_LNS_copy:
9762de3b87aSKai Wang 		*s = "DW_LNS_copy"; break;
9772de3b87aSKai Wang 	case DW_LNS_advance_pc:
9782de3b87aSKai Wang 		*s = "DW_LNS_advance_pc"; break;
9792de3b87aSKai Wang 	case DW_LNS_advance_line:
9802de3b87aSKai Wang 		*s = "DW_LNS_advance_line"; break;
9812de3b87aSKai Wang 	case DW_LNS_set_file:
9822de3b87aSKai Wang 		*s = "DW_LNS_set_file"; break;
9832de3b87aSKai Wang 	case DW_LNS_set_column:
9842de3b87aSKai Wang 		*s = "DW_LNS_set_column"; break;
9852de3b87aSKai Wang 	case DW_LNS_negate_stmt:
9862de3b87aSKai Wang 		*s = "DW_LNS_negate_stmt"; break;
9872de3b87aSKai Wang 	case DW_LNS_set_basic_block:
9882de3b87aSKai Wang 		*s = "DW_LNS_set_basic_block"; break;
9892de3b87aSKai Wang 	case DW_LNS_const_add_pc:
9902de3b87aSKai Wang 		*s = "DW_LNS_const_add_pc"; break;
9912de3b87aSKai Wang 	case DW_LNS_fixed_advance_pc:
9922de3b87aSKai Wang 		*s = "DW_LNS_fixed_advance_pc"; break;
9932de3b87aSKai Wang 	case DW_LNS_set_prologue_end:
9942de3b87aSKai Wang 		*s = "DW_LNS_set_prologue_end"; break;
9952de3b87aSKai Wang 	case DW_LNS_set_epilogue_begin:
9962de3b87aSKai Wang 		*s = "DW_LNS_set_epilogue_begin"; break;
9972de3b87aSKai Wang 	case DW_LNS_set_isa:
9982de3b87aSKai Wang 		*s = "DW_LNS_set_isa"; break;
9992de3b87aSKai Wang 	default:
10002de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
10012de3b87aSKai Wang 	}
10022de3b87aSKai Wang 
10032de3b87aSKai Wang 	return (DW_DLV_OK);
10042de3b87aSKai Wang }
10052de3b87aSKai Wang 
10062de3b87aSKai Wang int
dwarf_get_MACINFO_name(unsigned mi,const char ** s)10072de3b87aSKai Wang dwarf_get_MACINFO_name(unsigned mi, const char **s)
10082de3b87aSKai Wang {
10092de3b87aSKai Wang 
10102de3b87aSKai Wang 	assert(s != NULL);
10112de3b87aSKai Wang 
10122de3b87aSKai Wang 	switch (mi) {
10132de3b87aSKai Wang 	case DW_MACINFO_define:
10142de3b87aSKai Wang 		*s = "DW_MACINFO_define"; break;
10152de3b87aSKai Wang 	case DW_MACINFO_undef:
10162de3b87aSKai Wang 		*s = "DW_MACINFO_undef"; break;
10172de3b87aSKai Wang 	case DW_MACINFO_start_file:
10182de3b87aSKai Wang 		*s = "DW_MACINFO_start_file"; break;
10192de3b87aSKai Wang 	case DW_MACINFO_end_file:
10202de3b87aSKai Wang 		*s = "DW_MACINFO_end_file"; break;
10212de3b87aSKai Wang 	case DW_MACINFO_vendor_ext:
10222de3b87aSKai Wang 		*s = "DW_MACINFO_vendor_ext"; break;
10232de3b87aSKai Wang 	default:
10242de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
10252de3b87aSKai Wang 	}
10262de3b87aSKai Wang 
10272de3b87aSKai Wang 	return (DW_DLV_OK);
10282de3b87aSKai Wang }
10292de3b87aSKai Wang 
10302de3b87aSKai Wang int
dwarf_get_OP_name(unsigned op,const char ** s)10312de3b87aSKai Wang dwarf_get_OP_name(unsigned op, const char **s)
10322de3b87aSKai Wang {
10332de3b87aSKai Wang 
10342de3b87aSKai Wang 	assert(s != NULL);
10352de3b87aSKai Wang 
10362de3b87aSKai Wang 	switch (op) {
10372de3b87aSKai Wang 	case DW_OP_deref:
10382de3b87aSKai Wang 		*s = "DW_OP_deref"; break;
10392de3b87aSKai Wang 	case DW_OP_reg0:
10402de3b87aSKai Wang 		*s = "DW_OP_reg0"; break;
10412de3b87aSKai Wang 	case DW_OP_reg1:
10422de3b87aSKai Wang 		*s = "DW_OP_reg1"; break;
10432de3b87aSKai Wang 	case DW_OP_reg2:
10442de3b87aSKai Wang 		*s = "DW_OP_reg2"; break;
10452de3b87aSKai Wang 	case DW_OP_reg3:
10462de3b87aSKai Wang 		*s = "DW_OP_reg3"; break;
10472de3b87aSKai Wang 	case DW_OP_reg4:
10482de3b87aSKai Wang 		*s = "DW_OP_reg4"; break;
10492de3b87aSKai Wang 	case DW_OP_reg5:
10502de3b87aSKai Wang 		*s = "DW_OP_reg5"; break;
10512de3b87aSKai Wang 	case DW_OP_reg6:
10522de3b87aSKai Wang 		*s = "DW_OP_reg6"; break;
10532de3b87aSKai Wang 	case DW_OP_reg7:
10542de3b87aSKai Wang 		*s = "DW_OP_reg7"; break;
10552de3b87aSKai Wang 	case DW_OP_reg8:
10562de3b87aSKai Wang 		*s = "DW_OP_reg8"; break;
10572de3b87aSKai Wang 	case DW_OP_reg9:
10582de3b87aSKai Wang 		*s = "DW_OP_reg9"; break;
10592de3b87aSKai Wang 	case DW_OP_reg10:
10602de3b87aSKai Wang 		*s = "DW_OP_reg10"; break;
10612de3b87aSKai Wang 	case DW_OP_reg11:
10622de3b87aSKai Wang 		*s = "DW_OP_reg11"; break;
10632de3b87aSKai Wang 	case DW_OP_reg12:
10642de3b87aSKai Wang 		*s = "DW_OP_reg12"; break;
10652de3b87aSKai Wang 	case DW_OP_reg13:
10662de3b87aSKai Wang 		*s = "DW_OP_reg13"; break;
10672de3b87aSKai Wang 	case DW_OP_reg14:
10682de3b87aSKai Wang 		*s = "DW_OP_reg14"; break;
10692de3b87aSKai Wang 	case DW_OP_reg15:
10702de3b87aSKai Wang 		*s = "DW_OP_reg15"; break;
10712de3b87aSKai Wang 	case DW_OP_reg16:
10722de3b87aSKai Wang 		*s = "DW_OP_reg16"; break;
10732de3b87aSKai Wang 	case DW_OP_reg17:
10742de3b87aSKai Wang 		*s = "DW_OP_reg17"; break;
10752de3b87aSKai Wang 	case DW_OP_reg18:
10762de3b87aSKai Wang 		*s = "DW_OP_reg18"; break;
10772de3b87aSKai Wang 	case DW_OP_reg19:
10782de3b87aSKai Wang 		*s = "DW_OP_reg19"; break;
10792de3b87aSKai Wang 	case DW_OP_reg20:
10802de3b87aSKai Wang 		*s = "DW_OP_reg20"; break;
10812de3b87aSKai Wang 	case DW_OP_reg21:
10822de3b87aSKai Wang 		*s = "DW_OP_reg21"; break;
10832de3b87aSKai Wang 	case DW_OP_reg22:
10842de3b87aSKai Wang 		*s = "DW_OP_reg22"; break;
10852de3b87aSKai Wang 	case DW_OP_reg23:
10862de3b87aSKai Wang 		*s = "DW_OP_reg23"; break;
10872de3b87aSKai Wang 	case DW_OP_reg24:
10882de3b87aSKai Wang 		*s = "DW_OP_reg24"; break;
10892de3b87aSKai Wang 	case DW_OP_reg25:
10902de3b87aSKai Wang 		*s = "DW_OP_reg25"; break;
10912de3b87aSKai Wang 	case DW_OP_reg26:
10922de3b87aSKai Wang 		*s = "DW_OP_reg26"; break;
10932de3b87aSKai Wang 	case DW_OP_reg27:
10942de3b87aSKai Wang 		*s = "DW_OP_reg27"; break;
10952de3b87aSKai Wang 	case DW_OP_reg28:
10962de3b87aSKai Wang 		*s = "DW_OP_reg28"; break;
10972de3b87aSKai Wang 	case DW_OP_reg29:
10982de3b87aSKai Wang 		*s = "DW_OP_reg29"; break;
10992de3b87aSKai Wang 	case DW_OP_reg30:
11002de3b87aSKai Wang 		*s = "DW_OP_reg30"; break;
11012de3b87aSKai Wang 	case DW_OP_reg31:
11022de3b87aSKai Wang 		*s = "DW_OP_reg31"; break;
11032de3b87aSKai Wang 	case DW_OP_lit0:
11042de3b87aSKai Wang 		*s = "DW_OP_lit0"; break;
11052de3b87aSKai Wang 	case DW_OP_lit1:
11062de3b87aSKai Wang 		*s = "DW_OP_lit1"; break;
11072de3b87aSKai Wang 	case DW_OP_lit2:
11082de3b87aSKai Wang 		*s = "DW_OP_lit2"; break;
11092de3b87aSKai Wang 	case DW_OP_lit3:
11102de3b87aSKai Wang 		*s = "DW_OP_lit3"; break;
11112de3b87aSKai Wang 	case DW_OP_lit4:
11122de3b87aSKai Wang 		*s = "DW_OP_lit4"; break;
11132de3b87aSKai Wang 	case DW_OP_lit5:
11142de3b87aSKai Wang 		*s = "DW_OP_lit5"; break;
11152de3b87aSKai Wang 	case DW_OP_lit6:
11162de3b87aSKai Wang 		*s = "DW_OP_lit6"; break;
11172de3b87aSKai Wang 	case DW_OP_lit7:
11182de3b87aSKai Wang 		*s = "DW_OP_lit7"; break;
11192de3b87aSKai Wang 	case DW_OP_lit8:
11202de3b87aSKai Wang 		*s = "DW_OP_lit8"; break;
11212de3b87aSKai Wang 	case DW_OP_lit9:
11222de3b87aSKai Wang 		*s = "DW_OP_lit9"; break;
11232de3b87aSKai Wang 	case DW_OP_lit10:
11242de3b87aSKai Wang 		*s = "DW_OP_lit10"; break;
11252de3b87aSKai Wang 	case DW_OP_lit11:
11262de3b87aSKai Wang 		*s = "DW_OP_lit11"; break;
11272de3b87aSKai Wang 	case DW_OP_lit12:
11282de3b87aSKai Wang 		*s = "DW_OP_lit12"; break;
11292de3b87aSKai Wang 	case DW_OP_lit13:
11302de3b87aSKai Wang 		*s = "DW_OP_lit13"; break;
11312de3b87aSKai Wang 	case DW_OP_lit14:
11322de3b87aSKai Wang 		*s = "DW_OP_lit14"; break;
11332de3b87aSKai Wang 	case DW_OP_lit15:
11342de3b87aSKai Wang 		*s = "DW_OP_lit15"; break;
11352de3b87aSKai Wang 	case DW_OP_lit16:
11362de3b87aSKai Wang 		*s = "DW_OP_lit16"; break;
11372de3b87aSKai Wang 	case DW_OP_lit17:
11382de3b87aSKai Wang 		*s = "DW_OP_lit17"; break;
11392de3b87aSKai Wang 	case DW_OP_lit18:
11402de3b87aSKai Wang 		*s = "DW_OP_lit18"; break;
11412de3b87aSKai Wang 	case DW_OP_lit19:
11422de3b87aSKai Wang 		*s = "DW_OP_lit19"; break;
11432de3b87aSKai Wang 	case DW_OP_lit20:
11442de3b87aSKai Wang 		*s = "DW_OP_lit20"; break;
11452de3b87aSKai Wang 	case DW_OP_lit21:
11462de3b87aSKai Wang 		*s = "DW_OP_lit21"; break;
11472de3b87aSKai Wang 	case DW_OP_lit22:
11482de3b87aSKai Wang 		*s = "DW_OP_lit22"; break;
11492de3b87aSKai Wang 	case DW_OP_lit23:
11502de3b87aSKai Wang 		*s = "DW_OP_lit23"; break;
11512de3b87aSKai Wang 	case DW_OP_lit24:
11522de3b87aSKai Wang 		*s = "DW_OP_lit24"; break;
11532de3b87aSKai Wang 	case DW_OP_lit25:
11542de3b87aSKai Wang 		*s = "DW_OP_lit25"; break;
11552de3b87aSKai Wang 	case DW_OP_lit26:
11562de3b87aSKai Wang 		*s = "DW_OP_lit26"; break;
11572de3b87aSKai Wang 	case DW_OP_lit27:
11582de3b87aSKai Wang 		*s = "DW_OP_lit27"; break;
11592de3b87aSKai Wang 	case DW_OP_lit28:
11602de3b87aSKai Wang 		*s = "DW_OP_lit28"; break;
11612de3b87aSKai Wang 	case DW_OP_lit29:
11622de3b87aSKai Wang 		*s = "DW_OP_lit29"; break;
11632de3b87aSKai Wang 	case DW_OP_lit30:
11642de3b87aSKai Wang 		*s = "DW_OP_lit30"; break;
11652de3b87aSKai Wang 	case DW_OP_lit31:
11662de3b87aSKai Wang 		*s = "DW_OP_lit31"; break;
11672de3b87aSKai Wang 	case DW_OP_dup:
11682de3b87aSKai Wang 		*s = "DW_OP_dup"; break;
11692de3b87aSKai Wang 	case DW_OP_drop:
11702de3b87aSKai Wang 		*s = "DW_OP_drop"; break;
11712de3b87aSKai Wang 	case DW_OP_over:
11722de3b87aSKai Wang 		*s = "DW_OP_over"; break;
11732de3b87aSKai Wang 	case DW_OP_swap:
11742de3b87aSKai Wang 		*s = "DW_OP_swap"; break;
11752de3b87aSKai Wang 	case DW_OP_rot:
11762de3b87aSKai Wang 		*s = "DW_OP_rot"; break;
11772de3b87aSKai Wang 	case DW_OP_xderef:
11782de3b87aSKai Wang 		*s = "DW_OP_xderef"; break;
11792de3b87aSKai Wang 	case DW_OP_abs:
11802de3b87aSKai Wang 		*s = "DW_OP_abs"; break;
11812de3b87aSKai Wang 	case DW_OP_and:
11822de3b87aSKai Wang 		*s = "DW_OP_and"; break;
11832de3b87aSKai Wang 	case DW_OP_div:
11842de3b87aSKai Wang 		*s = "DW_OP_div"; break;
11852de3b87aSKai Wang 	case DW_OP_minus:
11862de3b87aSKai Wang 		*s = "DW_OP_minus"; break;
11872de3b87aSKai Wang 	case DW_OP_mod:
11882de3b87aSKai Wang 		*s = "DW_OP_mod"; break;
11892de3b87aSKai Wang 	case DW_OP_mul:
11902de3b87aSKai Wang 		*s = "DW_OP_mul"; break;
11912de3b87aSKai Wang 	case DW_OP_neg:
11922de3b87aSKai Wang 		*s = "DW_OP_neg"; break;
11932de3b87aSKai Wang 	case DW_OP_not:
11942de3b87aSKai Wang 		*s = "DW_OP_not"; break;
11952de3b87aSKai Wang 	case DW_OP_or:
11962de3b87aSKai Wang 		*s = "DW_OP_or"; break;
11972de3b87aSKai Wang 	case DW_OP_plus:
11982de3b87aSKai Wang 		*s = "DW_OP_plus"; break;
11992de3b87aSKai Wang 	case DW_OP_shl:
12002de3b87aSKai Wang 		*s = "DW_OP_shl"; break;
12012de3b87aSKai Wang 	case DW_OP_shr:
12022de3b87aSKai Wang 		*s = "DW_OP_shr"; break;
12032de3b87aSKai Wang 	case DW_OP_shra:
12042de3b87aSKai Wang 		*s = "DW_OP_shra"; break;
12052de3b87aSKai Wang 	case DW_OP_xor:
12062de3b87aSKai Wang 		*s = "DW_OP_xor"; break;
12072de3b87aSKai Wang 	case DW_OP_eq:
12082de3b87aSKai Wang 		*s = "DW_OP_eq"; break;
12092de3b87aSKai Wang 	case DW_OP_ge:
12102de3b87aSKai Wang 		*s = "DW_OP_ge"; break;
12112de3b87aSKai Wang 	case DW_OP_gt:
12122de3b87aSKai Wang 		*s = "DW_OP_gt"; break;
12132de3b87aSKai Wang 	case DW_OP_le:
12142de3b87aSKai Wang 		*s = "DW_OP_le"; break;
12152de3b87aSKai Wang 	case DW_OP_lt:
12162de3b87aSKai Wang 		*s = "DW_OP_lt"; break;
12172de3b87aSKai Wang 	case DW_OP_ne:
12182de3b87aSKai Wang 		*s = "DW_OP_ne"; break;
12192de3b87aSKai Wang 	case DW_OP_nop:
12202de3b87aSKai Wang 		*s = "DW_OP_nop"; break;
12212de3b87aSKai Wang 	case DW_OP_const1u:
12222de3b87aSKai Wang 		*s = "DW_OP_const1u"; break;
12232de3b87aSKai Wang 	case DW_OP_const1s:
12242de3b87aSKai Wang 		*s = "DW_OP_const1s"; break;
12252de3b87aSKai Wang 	case DW_OP_pick:
12262de3b87aSKai Wang 		*s = "DW_OP_pick"; break;
12272de3b87aSKai Wang 	case DW_OP_deref_size:
12282de3b87aSKai Wang 		*s = "DW_OP_deref_size"; break;
12292de3b87aSKai Wang 	case DW_OP_xderef_size:
12302de3b87aSKai Wang 		*s = "DW_OP_xderef_size"; break;
12312de3b87aSKai Wang 	case DW_OP_const2u:
12322de3b87aSKai Wang 		*s = "DW_OP_const2u"; break;
12332de3b87aSKai Wang 	case DW_OP_const2s:
12342de3b87aSKai Wang 		*s = "DW_OP_const2s"; break;
12352de3b87aSKai Wang 	case DW_OP_bra:
12362de3b87aSKai Wang 		*s = "DW_OP_bra"; break;
12372de3b87aSKai Wang 	case DW_OP_skip:
12382de3b87aSKai Wang 		*s = "DW_OP_skip"; break;
12392de3b87aSKai Wang 	case DW_OP_const4u:
12402de3b87aSKai Wang 		*s = "DW_OP_const4u"; break;
12412de3b87aSKai Wang 	case DW_OP_const4s:
12422de3b87aSKai Wang 		*s = "DW_OP_const4s"; break;
12432de3b87aSKai Wang 	case DW_OP_const8u:
12442de3b87aSKai Wang 		*s = "DW_OP_const8u"; break;
12452de3b87aSKai Wang 	case DW_OP_const8s:
12462de3b87aSKai Wang 		*s = "DW_OP_const8s"; break;
12472de3b87aSKai Wang 	case DW_OP_constu:
12482de3b87aSKai Wang 		*s = "DW_OP_constu"; break;
12492de3b87aSKai Wang 	case DW_OP_plus_uconst:
12502de3b87aSKai Wang 		*s = "DW_OP_plus_uconst"; break;
12512de3b87aSKai Wang 	case DW_OP_regx:
12522de3b87aSKai Wang 		*s = "DW_OP_regx"; break;
12532de3b87aSKai Wang 	case DW_OP_piece:
12542de3b87aSKai Wang 		*s = "DW_OP_piece"; break;
12552de3b87aSKai Wang 	case DW_OP_consts:
12562de3b87aSKai Wang 		*s = "DW_OP_consts"; break;
12572de3b87aSKai Wang 	case DW_OP_breg0:
12582de3b87aSKai Wang 		*s = "DW_OP_breg0"; break;
12592de3b87aSKai Wang 	case DW_OP_breg1:
12602de3b87aSKai Wang 		*s = "DW_OP_breg1"; break;
12612de3b87aSKai Wang 	case DW_OP_breg2:
12622de3b87aSKai Wang 		*s = "DW_OP_breg2"; break;
12632de3b87aSKai Wang 	case DW_OP_breg3:
12642de3b87aSKai Wang 		*s = "DW_OP_breg3"; break;
12652de3b87aSKai Wang 	case DW_OP_breg4:
12662de3b87aSKai Wang 		*s = "DW_OP_breg4"; break;
12672de3b87aSKai Wang 	case DW_OP_breg5:
12682de3b87aSKai Wang 		*s = "DW_OP_breg5"; break;
12692de3b87aSKai Wang 	case DW_OP_breg6:
12702de3b87aSKai Wang 		*s = "DW_OP_breg6"; break;
12712de3b87aSKai Wang 	case DW_OP_breg7:
12722de3b87aSKai Wang 		*s = "DW_OP_breg7"; break;
12732de3b87aSKai Wang 	case DW_OP_breg8:
12742de3b87aSKai Wang 		*s = "DW_OP_breg8"; break;
12752de3b87aSKai Wang 	case DW_OP_breg9:
12762de3b87aSKai Wang 		*s = "DW_OP_breg9"; break;
12772de3b87aSKai Wang 	case DW_OP_breg10:
12782de3b87aSKai Wang 		*s = "DW_OP_breg10"; break;
12792de3b87aSKai Wang 	case DW_OP_breg11:
12802de3b87aSKai Wang 		*s = "DW_OP_breg11"; break;
12812de3b87aSKai Wang 	case DW_OP_breg12:
12822de3b87aSKai Wang 		*s = "DW_OP_breg12"; break;
12832de3b87aSKai Wang 	case DW_OP_breg13:
12842de3b87aSKai Wang 		*s = "DW_OP_breg13"; break;
12852de3b87aSKai Wang 	case DW_OP_breg14:
12862de3b87aSKai Wang 		*s = "DW_OP_breg14"; break;
12872de3b87aSKai Wang 	case DW_OP_breg15:
12882de3b87aSKai Wang 		*s = "DW_OP_breg15"; break;
12892de3b87aSKai Wang 	case DW_OP_breg16:
12902de3b87aSKai Wang 		*s = "DW_OP_breg16"; break;
12912de3b87aSKai Wang 	case DW_OP_breg17:
12922de3b87aSKai Wang 		*s = "DW_OP_breg17"; break;
12932de3b87aSKai Wang 	case DW_OP_breg18:
12942de3b87aSKai Wang 		*s = "DW_OP_breg18"; break;
12952de3b87aSKai Wang 	case DW_OP_breg19:
12962de3b87aSKai Wang 		*s = "DW_OP_breg19"; break;
12972de3b87aSKai Wang 	case DW_OP_breg20:
12982de3b87aSKai Wang 		*s = "DW_OP_breg20"; break;
12992de3b87aSKai Wang 	case DW_OP_breg21:
13002de3b87aSKai Wang 		*s = "DW_OP_breg21"; break;
13012de3b87aSKai Wang 	case DW_OP_breg22:
13022de3b87aSKai Wang 		*s = "DW_OP_breg22"; break;
13032de3b87aSKai Wang 	case DW_OP_breg23:
13042de3b87aSKai Wang 		*s = "DW_OP_breg23"; break;
13052de3b87aSKai Wang 	case DW_OP_breg24:
13062de3b87aSKai Wang 		*s = "DW_OP_breg24"; break;
13072de3b87aSKai Wang 	case DW_OP_breg25:
13082de3b87aSKai Wang 		*s = "DW_OP_breg25"; break;
13092de3b87aSKai Wang 	case DW_OP_breg26:
13102de3b87aSKai Wang 		*s = "DW_OP_breg26"; break;
13112de3b87aSKai Wang 	case DW_OP_breg27:
13122de3b87aSKai Wang 		*s = "DW_OP_breg27"; break;
13132de3b87aSKai Wang 	case DW_OP_breg28:
13142de3b87aSKai Wang 		*s = "DW_OP_breg28"; break;
13152de3b87aSKai Wang 	case DW_OP_breg29:
13162de3b87aSKai Wang 		*s = "DW_OP_breg29"; break;
13172de3b87aSKai Wang 	case DW_OP_breg30:
13182de3b87aSKai Wang 		*s = "DW_OP_breg30"; break;
13192de3b87aSKai Wang 	case DW_OP_breg31:
13202de3b87aSKai Wang 		*s = "DW_OP_breg31"; break;
13212de3b87aSKai Wang 	case DW_OP_fbreg:
13222de3b87aSKai Wang 		*s = "DW_OP_fbreg"; break;
13232de3b87aSKai Wang 	case DW_OP_bregx:
13242de3b87aSKai Wang 		*s = "DW_OP_bregx"; break;
13252de3b87aSKai Wang 	case DW_OP_addr:
13262de3b87aSKai Wang 		*s = "DW_OP_addr"; break;
13272de3b87aSKai Wang 	case DW_OP_push_object_address:
13282de3b87aSKai Wang 		*s = "DW_OP_push_object_address"; break;
13292de3b87aSKai Wang 	case DW_OP_call2:
13302de3b87aSKai Wang 		*s = "DW_OP_call2"; break;
13312de3b87aSKai Wang 	case DW_OP_call4:
13322de3b87aSKai Wang 		*s = "DW_OP_call4"; break;
13332de3b87aSKai Wang 	case DW_OP_call_ref:
13342de3b87aSKai Wang 		*s = "DW_OP_call_ref"; break;
13352de3b87aSKai Wang 	case DW_OP_form_tls_address:
13362de3b87aSKai Wang 		*s = "DW_OP_form_tls_address"; break;
13372de3b87aSKai Wang 	case DW_OP_call_frame_cfa:
13382de3b87aSKai Wang 		*s = "DW_OP_call_frame_cfa"; break;
13392de3b87aSKai Wang 	case DW_OP_bit_piece:
13402de3b87aSKai Wang 		*s = "DW_OP_bit_piece"; break;
13412de3b87aSKai Wang 	case DW_OP_implicit_value:
13422de3b87aSKai Wang 		*s = "DW_OP_implicit_value"; break;
13432de3b87aSKai Wang 	case DW_OP_stack_value:
13442de3b87aSKai Wang 		*s = "DW_OP_stack_value"; break;
1345*7bb441c8SMark Johnston 	case DW_OP_implicit_pointer:
1346*7bb441c8SMark Johnston 		*s = "DW_OP_implicit_pointer"; break;
1347*7bb441c8SMark Johnston 	case DW_OP_addrx:
1348*7bb441c8SMark Johnston 		*s = "DW_OP_addrx"; break;
1349*7bb441c8SMark Johnston 	case DW_OP_constx:
1350*7bb441c8SMark Johnston 		*s = "DW_OP_constx"; break;
1351*7bb441c8SMark Johnston 	case DW_OP_entry_value:
1352*7bb441c8SMark Johnston 		*s = "DW_OP_entry_value"; break;
1353*7bb441c8SMark Johnston 	case DW_OP_const_type:
1354*7bb441c8SMark Johnston 		*s = "DW_OP_const_type"; break;
1355*7bb441c8SMark Johnston 	case DW_OP_regval_type:
1356*7bb441c8SMark Johnston 		*s = "DW_OP_regval_type"; break;
1357*7bb441c8SMark Johnston 	case DW_OP_deref_type:
1358*7bb441c8SMark Johnston 		*s = "DW_OP_deref_type"; break;
1359*7bb441c8SMark Johnston 	case DW_OP_xderef_type:
1360*7bb441c8SMark Johnston 		*s = "DW_OP_xderef_type"; break;
1361*7bb441c8SMark Johnston 	case DW_OP_convert:
1362*7bb441c8SMark Johnston 		*s = "DW_OP_convert"; break;
1363*7bb441c8SMark Johnston 	case DW_OP_reinterpret:
1364*7bb441c8SMark Johnston 		*s = "DW_OP_reinterpret"; break;
13652de3b87aSKai Wang 	case DW_OP_GNU_push_tls_address:
13662de3b87aSKai Wang 		*s = "DW_OP_GNU_push_tls_address"; break;
1367cf781b2eSEd Maste 	case DW_OP_GNU_uninit:
1368cf781b2eSEd Maste 		*s = "DW_OP_GNU_uninit"; break;
1369cf781b2eSEd Maste 	case DW_OP_GNU_encoded_addr:
1370cf781b2eSEd Maste 		*s = "DW_OP_GNU_encoded_addr"; break;
1371cf781b2eSEd Maste 	case DW_OP_GNU_implicit_pointer:
1372cf781b2eSEd Maste 		*s = "DW_OP_GNU_implicit_pointer"; break;
1373cf781b2eSEd Maste 	case DW_OP_GNU_entry_value:
1374cf781b2eSEd Maste 		*s = "DW_OP_GNU_entry_value"; break;
1375cf781b2eSEd Maste 	case DW_OP_GNU_const_type:
1376cf781b2eSEd Maste 		*s = "DW_OP_GNU_const_type"; break;
1377cf781b2eSEd Maste 	case DW_OP_GNU_regval_type:
1378cf781b2eSEd Maste 		*s = "DW_OP_GNU_regval_type"; break;
1379cf781b2eSEd Maste 	case DW_OP_GNU_deref_type:
1380cf781b2eSEd Maste 		*s = "DW_OP_GNU_deref_type"; break;
1381cf781b2eSEd Maste 	case DW_OP_GNU_convert:
1382cf781b2eSEd Maste 		*s = "DW_OP_GNU_convert"; break;
1383cf781b2eSEd Maste 	case DW_OP_GNU_reinterpret:
1384cf781b2eSEd Maste 		*s = "DW_OP_GNU_reinterpret"; break;
1385cf781b2eSEd Maste 	case DW_OP_GNU_parameter_ref:
1386cf781b2eSEd Maste 		*s = "DW_OP_GNU_parameter_ref"; break;
1387cf781b2eSEd Maste 	case DW_OP_GNU_addr_index:
1388cf781b2eSEd Maste 		*s = "DW_OP_GNU_addr_index"; break;
1389cf781b2eSEd Maste 	case DW_OP_GNU_const_index:
1390cf781b2eSEd Maste 		*s = "DW_OP_GNU_const_index"; break;
13912de3b87aSKai Wang 	default:
13922de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
13932de3b87aSKai Wang 	}
13942de3b87aSKai Wang 
13952de3b87aSKai Wang 	return (DW_DLV_OK);
13962de3b87aSKai Wang }
13972de3b87aSKai Wang 
13982de3b87aSKai Wang int
dwarf_get_ORD_name(unsigned ord,const char ** s)13992de3b87aSKai Wang dwarf_get_ORD_name(unsigned ord, const char **s)
14002de3b87aSKai Wang {
14012de3b87aSKai Wang 
14022de3b87aSKai Wang 	assert(s != NULL);
14032de3b87aSKai Wang 
14042de3b87aSKai Wang 	switch (ord) {
14052de3b87aSKai Wang 	case DW_ORD_row_major:
14062de3b87aSKai Wang 		*s = "DW_ORD_row_major"; break;
14072de3b87aSKai Wang 	case DW_ORD_col_major:
14082de3b87aSKai Wang 		*s = "DW_ORD_col_major"; break;
14092de3b87aSKai Wang 	default:
14102de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
14112de3b87aSKai Wang 	}
14122de3b87aSKai Wang 
14132de3b87aSKai Wang 	return (DW_DLV_OK);
14142de3b87aSKai Wang }
14152de3b87aSKai Wang 
14162de3b87aSKai Wang int
dwarf_get_TAG_name(unsigned tag,const char ** s)14172de3b87aSKai Wang dwarf_get_TAG_name(unsigned tag, const char **s)
14182de3b87aSKai Wang {
14192de3b87aSKai Wang 
14202de3b87aSKai Wang 	assert(s != NULL);
14212de3b87aSKai Wang 
14222de3b87aSKai Wang 	switch (tag) {
14232de3b87aSKai Wang 	case DW_TAG_access_declaration:
14242de3b87aSKai Wang 		*s = "DW_TAG_access_declaration"; break;
14252de3b87aSKai Wang 	case DW_TAG_array_type:
14262de3b87aSKai Wang 		*s = "DW_TAG_array_type"; break;
14272de3b87aSKai Wang 	case DW_TAG_base_type:
14282de3b87aSKai Wang 		*s = "DW_TAG_base_type"; break;
14292de3b87aSKai Wang 	case DW_TAG_catch_block:
14302de3b87aSKai Wang 		*s = "DW_TAG_catch_block"; break;
14312de3b87aSKai Wang 	case DW_TAG_class_type:
14322de3b87aSKai Wang 		*s = "DW_TAG_class_type"; break;
14332de3b87aSKai Wang 	case DW_TAG_common_block:
14342de3b87aSKai Wang 		*s = "DW_TAG_common_block"; break;
14352de3b87aSKai Wang 	case DW_TAG_common_inclusion:
14362de3b87aSKai Wang 		*s = "DW_TAG_common_inclusion"; break;
14372de3b87aSKai Wang 	case DW_TAG_compile_unit:
14382de3b87aSKai Wang 		*s = "DW_TAG_compile_unit"; break;
14392de3b87aSKai Wang 	case DW_TAG_condition:
14402de3b87aSKai Wang 		*s = "DW_TAG_condition"; break;
14412de3b87aSKai Wang 	case DW_TAG_const_type:
14422de3b87aSKai Wang 		*s = "DW_TAG_const_type"; break;
14432de3b87aSKai Wang 	case DW_TAG_constant:
14442de3b87aSKai Wang 		*s = "DW_TAG_constant"; break;
14452de3b87aSKai Wang 	case DW_TAG_dwarf_procedure:
14462de3b87aSKai Wang 		*s = "DW_TAG_dwarf_procedure"; break;
14472de3b87aSKai Wang 	case DW_TAG_entry_point:
14482de3b87aSKai Wang 		*s = "DW_TAG_entry_point"; break;
14492de3b87aSKai Wang 	case DW_TAG_enumeration_type:
14502de3b87aSKai Wang 		*s = "DW_TAG_enumeration_type"; break;
14512de3b87aSKai Wang 	case DW_TAG_enumerator:
14522de3b87aSKai Wang 		*s = "DW_TAG_enumerator"; break;
14532de3b87aSKai Wang 	case DW_TAG_formal_parameter:
14542de3b87aSKai Wang 		*s = "DW_TAG_formal_parameter"; break;
14552de3b87aSKai Wang 	case DW_TAG_friend:
14562de3b87aSKai Wang 		*s = "DW_TAG_friend"; break;
14572de3b87aSKai Wang 	case DW_TAG_imported_declaration:
14582de3b87aSKai Wang 		*s = "DW_TAG_imported_declaration"; break;
14592de3b87aSKai Wang 	case DW_TAG_imported_module:
14602de3b87aSKai Wang 		*s = "DW_TAG_imported_module"; break;
14612de3b87aSKai Wang 	case DW_TAG_imported_unit:
14622de3b87aSKai Wang 		*s = "DW_TAG_imported_unit"; break;
14632de3b87aSKai Wang 	case DW_TAG_inheritance:
14642de3b87aSKai Wang 		*s = "DW_TAG_inheritance"; break;
14652de3b87aSKai Wang 	case DW_TAG_inlined_subroutine:
14662de3b87aSKai Wang 		*s = "DW_TAG_inlined_subroutine"; break;
14672de3b87aSKai Wang 	case DW_TAG_interface_type:
14682de3b87aSKai Wang 		*s = "DW_TAG_interface_type"; break;
14692de3b87aSKai Wang 	case DW_TAG_label:
14702de3b87aSKai Wang 		*s = "DW_TAG_label"; break;
14712de3b87aSKai Wang 	case DW_TAG_lexical_block:
14722de3b87aSKai Wang 		*s = "DW_TAG_lexical_block"; break;
14732de3b87aSKai Wang 	case DW_TAG_member:
14742de3b87aSKai Wang 		*s = "DW_TAG_member"; break;
14752de3b87aSKai Wang 	case DW_TAG_module:
14762de3b87aSKai Wang 		*s = "DW_TAG_module"; break;
14772de3b87aSKai Wang 	case DW_TAG_namelist:
14782de3b87aSKai Wang 		*s = "DW_TAG_namelist"; break;
14792de3b87aSKai Wang 	case DW_TAG_namelist_item:
14802de3b87aSKai Wang 		*s = "DW_TAG_namelist_item"; break;
14812de3b87aSKai Wang 	case DW_TAG_namespace:
14822de3b87aSKai Wang 		*s = "DW_TAG_namespace"; break;
14832de3b87aSKai Wang 	case DW_TAG_packed_type:
14842de3b87aSKai Wang 		*s = "DW_TAG_packed_type"; break;
14852de3b87aSKai Wang 	case DW_TAG_partial_unit:
14862de3b87aSKai Wang 		*s = "DW_TAG_partial_unit"; break;
14872de3b87aSKai Wang 	case DW_TAG_pointer_type:
14882de3b87aSKai Wang 		*s = "DW_TAG_pointer_type"; break;
14892de3b87aSKai Wang 	case DW_TAG_ptr_to_member_type:
14902de3b87aSKai Wang 		*s = "DW_TAG_ptr_to_member_type"; break;
14912de3b87aSKai Wang 	case DW_TAG_reference_type:
14922de3b87aSKai Wang 		*s = "DW_TAG_reference_type"; break;
14932de3b87aSKai Wang 	case DW_TAG_restrict_type:
14942de3b87aSKai Wang 		*s = "DW_TAG_restrict_type"; break;
14952de3b87aSKai Wang 	case DW_TAG_rvalue_reference_type:
14962de3b87aSKai Wang 		*s = "DW_TAG_rvalue_reference_type"; break;
14972de3b87aSKai Wang 	case DW_TAG_set_type:
14982de3b87aSKai Wang 		*s = "DW_TAG_set_type"; break;
14992de3b87aSKai Wang 	case DW_TAG_shared_type:
15002de3b87aSKai Wang 		*s = "DW_TAG_shared_type"; break;
15012de3b87aSKai Wang 	case DW_TAG_string_type:
15022de3b87aSKai Wang 		*s = "DW_TAG_string_type"; break;
15032de3b87aSKai Wang 	case DW_TAG_structure_type:
15042de3b87aSKai Wang 		*s = "DW_TAG_structure_type"; break;
15052de3b87aSKai Wang 	case DW_TAG_subprogram:
15062de3b87aSKai Wang 		*s = "DW_TAG_subprogram"; break;
15072de3b87aSKai Wang 	case DW_TAG_subrange_type:
15082de3b87aSKai Wang 		*s = "DW_TAG_subrange_type"; break;
15092de3b87aSKai Wang 	case DW_TAG_subroutine_type:
15102de3b87aSKai Wang 		*s = "DW_TAG_subroutine_type"; break;
15112de3b87aSKai Wang 	case DW_TAG_template_alias:
15122de3b87aSKai Wang 		*s = "DW_TAG_template_alias"; break;
15132de3b87aSKai Wang 	case DW_TAG_template_type_parameter:
15142de3b87aSKai Wang 		*s = "DW_TAG_template_type_parameter"; break;
15152de3b87aSKai Wang 	case DW_TAG_template_value_parameter:
15162de3b87aSKai Wang 		*s = "DW_TAG_template_value_parameter"; break;
15172de3b87aSKai Wang 	case DW_TAG_thrown_type:
15182de3b87aSKai Wang 		*s = "DW_TAG_thrown_type"; break;
15192de3b87aSKai Wang 	case DW_TAG_try_block:
15202de3b87aSKai Wang 		*s = "DW_TAG_try_block"; break;
15212de3b87aSKai Wang 	case DW_TAG_type_unit:
15222de3b87aSKai Wang 		*s = "DW_TAG_type_unit"; break;
15232de3b87aSKai Wang 	case DW_TAG_typedef:
15242de3b87aSKai Wang 		*s = "DW_TAG_typedef"; break;
15252de3b87aSKai Wang 	case DW_TAG_union_type:
15262de3b87aSKai Wang 		*s = "DW_TAG_union_type"; break;
15272de3b87aSKai Wang 	case DW_TAG_unspecified_parameters:
15282de3b87aSKai Wang 		*s = "DW_TAG_unspecified_parameters"; break;
15292de3b87aSKai Wang 	case DW_TAG_unspecified_type:
15302de3b87aSKai Wang 		*s = "DW_TAG_unspecified_type"; break;
15312de3b87aSKai Wang 	case DW_TAG_variable:
15322de3b87aSKai Wang 		*s = "DW_TAG_variable"; break;
15332de3b87aSKai Wang 	case DW_TAG_variant:
15342de3b87aSKai Wang 		*s = "DW_TAG_variant"; break;
15352de3b87aSKai Wang 	case DW_TAG_variant_part:
15362de3b87aSKai Wang 		*s = "DW_TAG_variant_part"; break;
15372de3b87aSKai Wang 	case DW_TAG_volatile_type:
15382de3b87aSKai Wang 		*s = "DW_TAG_volatile_type"; break;
15392de3b87aSKai Wang 	case DW_TAG_with_stmt:
15402de3b87aSKai Wang 		*s = "DW_TAG_with_stmt"; break;
1541*7bb441c8SMark Johnston 	case DW_TAG_coarray_type:
1542*7bb441c8SMark Johnston 		*s = "DW_TAG_coarray_type"; break;
1543*7bb441c8SMark Johnston 	case DW_TAG_generic_subrange:
1544*7bb441c8SMark Johnston 		*s = "DW_TAG_generic_subrange"; break;
1545*7bb441c8SMark Johnston 	case DW_TAG_dynamic_type:
1546*7bb441c8SMark Johnston 		*s = "DW_TAG_dynamic_type"; break;
1547*7bb441c8SMark Johnston 	case DW_TAG_atomic_type:
1548*7bb441c8SMark Johnston 		*s = "DW_TAG_atomic_type"; break;
1549*7bb441c8SMark Johnston 	case DW_TAG_call_site:
1550*7bb441c8SMark Johnston 		*s = "DW_TAG_call_site"; break;
1551*7bb441c8SMark Johnston 	case DW_TAG_call_site_parameter:
1552*7bb441c8SMark Johnston 		*s = "DW_TAG_call_site_parameter"; break;
1553*7bb441c8SMark Johnston 	case DW_TAG_skeleton_unit:
1554*7bb441c8SMark Johnston 		*s = "DW_TAG_skeleton_unit"; break;
1555*7bb441c8SMark Johnston 	case DW_TAG_immutable_type:
1556*7bb441c8SMark Johnston 		*s = "DW_TAG_immutable_type"; break;
1557cf781b2eSEd Maste 	case DW_TAG_format_label:
1558cf781b2eSEd Maste 		*s = "DW_TAG_format_label"; break;
1559cf781b2eSEd Maste 	case DW_TAG_function_template:
1560cf781b2eSEd Maste 		*s = "DW_TAG_function_template"; break;
1561cf781b2eSEd Maste 	case DW_TAG_class_template:
1562cf781b2eSEd Maste 		*s = "DW_TAG_class_template"; break;
1563cf781b2eSEd Maste 	case DW_TAG_GNU_BINCL:
1564cf781b2eSEd Maste 		*s = "DW_TAG_GNU_BINCL"; break;
1565cf781b2eSEd Maste 	case DW_TAG_GNU_EINCL:
1566cf781b2eSEd Maste 		*s = "DW_TAG_GNU_EINCL"; break;
1567cf781b2eSEd Maste 	case DW_TAG_GNU_template_template_param:
1568cf781b2eSEd Maste 		*s = "DW_TAG_GNU_template_template_param"; break;
1569cf781b2eSEd Maste 	case DW_TAG_GNU_template_parameter_pack:
1570cf781b2eSEd Maste 		*s = "DW_TAG_GNU_template_parameter_pack"; break;
1571cf781b2eSEd Maste 	case DW_TAG_GNU_formal_parameter_pack:
1572cf781b2eSEd Maste 		*s = "DW_TAG_GNU_formal_parameter_pack"; break;
1573cf781b2eSEd Maste 	case DW_TAG_GNU_call_site:
1574cf781b2eSEd Maste 		*s = "DW_TAG_GNU_call_site"; break;
1575cf781b2eSEd Maste 	case DW_TAG_GNU_call_site_parameter:
1576cf781b2eSEd Maste 		*s = "DW_TAG_GNU_call_site_parameter"; break;
15772de3b87aSKai Wang 	default:
15782de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
15792de3b87aSKai Wang 	}
15802de3b87aSKai Wang 
15812de3b87aSKai Wang 	return (DW_DLV_OK);
15822de3b87aSKai Wang }
15832de3b87aSKai Wang 
15842de3b87aSKai Wang int
dwarf_get_UT_name(unsigned unit_type,const char ** s)1585*7bb441c8SMark Johnston dwarf_get_UT_name(unsigned unit_type, const char **s)
1586*7bb441c8SMark Johnston {
1587*7bb441c8SMark Johnston 
1588*7bb441c8SMark Johnston 	assert(s != NULL);
1589*7bb441c8SMark Johnston 
1590*7bb441c8SMark Johnston 	switch (unit_type) {
1591*7bb441c8SMark Johnston 	case DW_UT_compile:
1592*7bb441c8SMark Johnston 		*s = "DW_UT_compile"; break;
1593*7bb441c8SMark Johnston 	case DW_UT_type:
1594*7bb441c8SMark Johnston 		*s = "DW_UT_type"; break;
1595*7bb441c8SMark Johnston 	case DW_UT_partial:
1596*7bb441c8SMark Johnston 		*s = "DW_UT_partial"; break;
1597*7bb441c8SMark Johnston 	case DW_UT_skeleton:
1598*7bb441c8SMark Johnston 		*s = "DW_UT_skeleton"; break;
1599*7bb441c8SMark Johnston 	case DW_UT_split_compile:
1600*7bb441c8SMark Johnston 		*s = "DW_UT_split_compile"; break;
1601*7bb441c8SMark Johnston 	case DW_UT_split_type:
1602*7bb441c8SMark Johnston 		*s = "DW_UT_split_type"; break;
1603*7bb441c8SMark Johnston 	default:
1604*7bb441c8SMark Johnston 		return (DW_DLV_NO_ENTRY);
1605*7bb441c8SMark Johnston 	}
1606*7bb441c8SMark Johnston 
1607*7bb441c8SMark Johnston 	return (DW_DLV_OK);
1608*7bb441c8SMark Johnston }
1609*7bb441c8SMark Johnston 
1610*7bb441c8SMark Johnston int
dwarf_get_VIRTUALITY_name(unsigned vir,const char ** s)16112de3b87aSKai Wang dwarf_get_VIRTUALITY_name(unsigned vir, const char **s)
16122de3b87aSKai Wang {
16132de3b87aSKai Wang 
16142de3b87aSKai Wang 	assert(s != NULL);
16152de3b87aSKai Wang 
16162de3b87aSKai Wang 	switch (vir) {
16172de3b87aSKai Wang 	case DW_VIRTUALITY_none:
16182de3b87aSKai Wang 		*s = "DW_VIRTUALITY_none"; break;
16192de3b87aSKai Wang 	case DW_VIRTUALITY_virtual:
16202de3b87aSKai Wang 		*s = "DW_VIRTUALITY_virtual"; break;
16212de3b87aSKai Wang 	case DW_VIRTUALITY_pure_virtual:
16222de3b87aSKai Wang 		*s = "DW_VIRTUALITY_pure_virtual"; break;
16232de3b87aSKai Wang 	default:
16242de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
16252de3b87aSKai Wang 	}
16262de3b87aSKai Wang 
16272de3b87aSKai Wang 	return (DW_DLV_OK);
16282de3b87aSKai Wang }
16292de3b87aSKai Wang 
16302de3b87aSKai Wang int
dwarf_get_VIS_name(unsigned vis,const char ** s)16312de3b87aSKai Wang dwarf_get_VIS_name(unsigned vis, const char **s)
16322de3b87aSKai Wang {
16332de3b87aSKai Wang 
16342de3b87aSKai Wang 	assert(s != NULL);
16352de3b87aSKai Wang 
16362de3b87aSKai Wang 	switch (vis) {
16372de3b87aSKai Wang 	case DW_VIS_local:
16382de3b87aSKai Wang 		*s = "DW_VIS_local"; break;
16392de3b87aSKai Wang 	case DW_VIS_exported:
16402de3b87aSKai Wang 		*s = "DW_VIS_exported"; break;
16412de3b87aSKai Wang 	case DW_VIS_qualified:
16422de3b87aSKai Wang 		*s = "DW_VIS_qualified"; break;
16432de3b87aSKai Wang 	default:
16442de3b87aSKai Wang 		return (DW_DLV_NO_ENTRY);
16452de3b87aSKai Wang 	}
16462de3b87aSKai Wang 
16472de3b87aSKai Wang 	return (DW_DLV_OK);
16482de3b87aSKai Wang }
1649