xref: /onnv-gate/usr/src/cmd/sgs/libconv/common/llib-lconv (revision 12877:69001e4756ae)
10Sstevel@tonic-gate/*
20Sstevel@tonic-gate * CDDL HEADER START
30Sstevel@tonic-gate *
40Sstevel@tonic-gate * The contents of this file are subject to the terms of the
51618Srie * Common Development and Distribution License (the "License").
61618Srie * You may not use this file except in compliance with the License.
70Sstevel@tonic-gate *
80Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
90Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing.
100Sstevel@tonic-gate * See the License for the specific language governing permissions
110Sstevel@tonic-gate * and limitations under the License.
120Sstevel@tonic-gate *
130Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each
140Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
150Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the
160Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying
170Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner]
180Sstevel@tonic-gate *
190Sstevel@tonic-gate * CDDL HEADER END
200Sstevel@tonic-gate */
211618Srie
220Sstevel@tonic-gate/*
23*12877SRod.Evans@Sun.COM * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
240Sstevel@tonic-gate */
250Sstevel@tonic-gate/* LINTLIBRARY */
260Sstevel@tonic-gate/* PROTOLIB1 */
270Sstevel@tonic-gate
280Sstevel@tonic-gate#include	<stdlib.h>
290Sstevel@tonic-gate#include	<libelf.h>
306206Sab196087#include	<_machelf.h>
311618Srie#include	<sgs.h>
321618Srie#include	<libld.h>
331618Srie#include	<conv.h>
340Sstevel@tonic-gate
351618Srie/*
369273SAli.Bahrami@Sun.COM * Generic miscellaneous interfaces
371618Srie */
382647Srieuchar_t		conv_check_native(char **, char **);
399273SAli.Bahrami@Sun.COMconst char	*conv_lddstub(int);
409273SAli.Bahrami@Sun.COMint		conv_sys_eclass(void);
419406SAli.Bahrami@Sun.COMint		conv_strproc_isspace(int);
429406SAli.Bahrami@Sun.COMchar		*conv_strproc_trim(char *);
439406SAli.Bahrami@Sun.COMBoolean		conv_strproc_extract_value(char *, size_t, int, const char **);
449406SAli.Bahrami@Sun.COM
459273SAli.Bahrami@Sun.COM
469273SAli.Bahrami@Sun.COM/*
479273SAli.Bahrami@Sun.COM * Generic core formatting and iteration functionality
489273SAli.Bahrami@Sun.COM */
499273SAli.Bahrami@Sun.COMconv_iter_ret_t	_conv_iter_ds(conv_iter_osabi_t, Half, const conv_ds_t **,
509273SAli.Bahrami@Sun.COM		    conv_iter_cb_t, void *, const char *);
519273SAli.Bahrami@Sun.COMconv_iter_ret_t	_conv_iter_ds_msg(const conv_ds_msg_t *, conv_iter_cb_t,
529273SAli.Bahrami@Sun.COM		    void *, const char *);
539273SAli.Bahrami@Sun.COMconv_iter_ret_t	_conv_iter_msgarr(Conv_elfvalue_t, const Msg *, size_t,
549273SAli.Bahrami@Sun.COM		    conv_iter_cb_t, void *, const char *);
559273SAli.Bahrami@Sun.COMconv_iter_ret_t	_conv_iter_vd(const Val_desc *, conv_iter_cb_t,
569273SAli.Bahrami@Sun.COM		    void *, const char *);
579273SAli.Bahrami@Sun.COMconv_iter_ret_t	_conv_iter_vd2(conv_iter_osabi_t, Half, const Val_desc2 *,
589273SAli.Bahrami@Sun.COM		    conv_iter_cb_t, void *, const char *);
599273SAli.Bahrami@Sun.COMint		conv_iter_strtol_init(const char *, conv_strtol_uvalue_t *);
609273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_strtol(const char *, Conv_elfvalue_t, void *);
619273SAli.Bahrami@Sun.COMconst char	*_conv_map2str(Conv_inv_buf_t *, Conv_elfvalue_t,
629273SAli.Bahrami@Sun.COM		    Conv_fmt_flags_t, size_t, const Msg *, const char *);
639273SAli.Bahrami@Sun.COMconst char	*_conv_map_ds(uchar_t, Half, Conv_elfvalue_t,
649273SAli.Bahrami@Sun.COM		    const conv_ds_t **, Conv_fmt_flags_t, Conv_inv_buf_t *,
659273SAli.Bahrami@Sun.COM		    const char *);
669273SAli.Bahrami@Sun.COMconst char	*_conv_map_vd2str(Conv_inv_buf_t *, Conv_elfvalue_t,
679273SAli.Bahrami@Sun.COM		    Conv_fmt_flags_t, const Val_desc *, const char *);
689273SAli.Bahrami@Sun.COMconst char	*_conv_map_vd22str(Conv_inv_buf_t *, uchar_t, Half,
699273SAli.Bahrami@Sun.COM		    Conv_elfvalue_t, Conv_fmt_flags_t, const Val_desc2 *,
709273SAli.Bahrami@Sun.COM		    const char *);
719273SAli.Bahrami@Sun.COM
729273SAli.Bahrami@Sun.COM/*
739273SAli.Bahrami@Sun.COM * Generic formatting interfaces.
749273SAli.Bahrami@Sun.COM */
759273SAli.Bahrami@Sun.COMconst char	*conv_bnd_obj(uint_t, Conv_bnd_obj_buf_t *);
769273SAli.Bahrami@Sun.COMconst char	*conv_bnd_type(uint_t, Conv_bnd_type_buf_t *);
779273SAli.Bahrami@Sun.COMconst char	*conv_config_feat(int, Conv_config_feat_buf_t *);
784734Sab196087const char	*conv_config_obj(ushort_t, Conv_config_obj_buf_t *);
799273SAli.Bahrami@Sun.COMconst char	*conv_config_upm(const char *, const char *,
809273SAli.Bahrami@Sun.COM		    const char *, size_t);
819273SAli.Bahrami@Sun.COMconst char	*conv_cnote_auxv_af(Word, Conv_fmt_flags_t,
829273SAli.Bahrami@Sun.COM		    Conv_cnote_auxv_af_buf_t *);
839273SAli.Bahrami@Sun.COMconst char	*conv_cnote_auxv_type(Word, Conv_fmt_flags_t, Conv_inv_buf_t *);
849273SAli.Bahrami@Sun.COMconst char	*conv_cnote_cc_content(Lword, Conv_fmt_flags_t,
859273SAli.Bahrami@Sun.COM		    Conv_cnote_cc_content_buf_t *);
869273SAli.Bahrami@Sun.COMconst char	*conv_cnote_errno(int, Conv_fmt_flags_t, Conv_inv_buf_t *);
879273SAli.Bahrami@Sun.COMconst char	*conv_cnote_fault(Word, Conv_fmt_flags_t, Conv_inv_buf_t *);
889273SAli.Bahrami@Sun.COMconst char	*conv_cnote_fltset(uint32_t *, int, Conv_fmt_flags_t,
899273SAli.Bahrami@Sun.COM		    Conv_cnote_fltset_buf_t *);
909273SAli.Bahrami@Sun.COMconst char	*conv_cnote_old_pr_flags(int, Conv_fmt_flags_t,
919273SAli.Bahrami@Sun.COM		    Conv_cnote_old_pr_flags_buf_t *);
929273SAli.Bahrami@Sun.COMconst char	*conv_cnote_pr_dmodel(Word, Conv_fmt_flags_t, Conv_inv_buf_t *);
939273SAli.Bahrami@Sun.COMconst char	*conv_cnote_pr_flags(int, Conv_fmt_flags_t,
949273SAli.Bahrami@Sun.COM		    Conv_cnote_pr_flags_buf_t *);
959273SAli.Bahrami@Sun.COMconst char	*conv_cnote_proc_flag(int, Conv_fmt_flags_t,
969273SAli.Bahrami@Sun.COM		    Conv_cnote_proc_flag_buf_t *);
979273SAli.Bahrami@Sun.COMconst char	*conv_cnote_pr_regname(Half, int, Conv_fmt_flags_t,
989273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *inv_buf);
999273SAli.Bahrami@Sun.COMconst char	*conv_cnote_pr_stype(Word, Conv_fmt_flags_t, Conv_inv_buf_t *);
1009273SAli.Bahrami@Sun.COMconst char	*conv_cnote_pr_what(short, short, Conv_fmt_flags_t,
1019273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1029273SAli.Bahrami@Sun.COMconst char	*conv_cnote_pr_why(short, Conv_fmt_flags_t, Conv_inv_buf_t *);
1039273SAli.Bahrami@Sun.COMconst char	*conv_cnote_priv(int, Conv_fmt_flags_t, Conv_inv_buf_t *);
1049273SAli.Bahrami@Sun.COMconst char	*conv_cnote_psetid(int, Conv_fmt_flags_t, Conv_inv_buf_t *);
1059273SAli.Bahrami@Sun.COMconst char	*conv_cnote_sa_flags(int, Conv_fmt_flags_t,
1069273SAli.Bahrami@Sun.COM		    Conv_cnote_sa_flags_buf_t *);
1079273SAli.Bahrami@Sun.COMconst char	*conv_cnote_signal(Word, Conv_fmt_flags_t, Conv_inv_buf_t *);
1089273SAli.Bahrami@Sun.COMconst char	*conv_cnote_si_code(Half, int, int, Conv_fmt_flags_t,
1099273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1109273SAli.Bahrami@Sun.COMconst char	*conv_cnote_sigset(uint32_t *, int, Conv_fmt_flags_t,
1119273SAli.Bahrami@Sun.COM		    Conv_cnote_sigset_buf_t *);
1129273SAli.Bahrami@Sun.COMconst char	*conv_cnote_ss_flags(int, Conv_fmt_flags_t,
1139273SAli.Bahrami@Sun.COM		    Conv_cnote_ss_flags_buf_t *);
1149273SAli.Bahrami@Sun.COMconst char	*conv_cnote_syscall(Word, Conv_fmt_flags_t, Conv_inv_buf_t *);
1159273SAli.Bahrami@Sun.COMconst char	*conv_cnote_sysset(uint32_t *, int, Conv_fmt_flags_t,
1169273SAli.Bahrami@Sun.COM		    Conv_cnote_sysset_buf_t *);
1179273SAli.Bahrami@Sun.COMconst char	*conv_cnote_type(Word, Conv_fmt_flags_t, Conv_inv_buf_t *);
1184734Sab196087const char	*conv_def_tag(Symref, Conv_inv_buf_t *);
1191618Srieconst char	*conv_demangle_name(const char *);
1209273SAli.Bahrami@Sun.COMconst char	*conv_dl_flag(int, Conv_fmt_flags_t, Conv_dl_flag_buf_t *);
12112029SRod.Evans@Sun.COMconst char	*conv_dl_info(int);
1224734Sab196087const char	*conv_dl_mode(int, int, Conv_dl_mode_buf_t *);
1239273SAli.Bahrami@Sun.COMconst char	*conv_dwarf_cfa(uchar_t, Conv_fmt_flags_t, Conv_inv_buf_t *);
1244734Sab196087const char	*conv_dwarf_ehe(uint_t, Conv_dwarf_ehe_buf_t *);
1259273SAli.Bahrami@Sun.COMconst char	*conv_dwarf_regname(Half, Word, Conv_fmt_flags_t,
1269273SAli.Bahrami@Sun.COM		    int *, Conv_inv_buf_t *);
1279273SAli.Bahrami@Sun.COMconst char	*conv_ehdr_abivers(uchar_t, Word, Conv_fmt_flags_t,
1289273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1299273SAli.Bahrami@Sun.COMconst char	*conv_ehdr_class(uchar_t, Conv_fmt_flags_t, Conv_inv_buf_t *);
1309273SAli.Bahrami@Sun.COMconst char	*conv_ehdr_data(uchar_t, Conv_fmt_flags_t, Conv_inv_buf_t *);
1319273SAli.Bahrami@Sun.COMconst char	*conv_ehdr_flags(Half, Word, Conv_fmt_flags_t,
1329273SAli.Bahrami@Sun.COM		    Conv_ehdr_flags_buf_t *);
1339273SAli.Bahrami@Sun.COMconst char	*conv_ehdr_mach(Half, Conv_fmt_flags_t, Conv_inv_buf_t *);
1349273SAli.Bahrami@Sun.COMconst char	*conv_ehdr_osabi(uchar_t, Conv_fmt_flags_t, Conv_inv_buf_t *);
1359273SAli.Bahrami@Sun.COMconst char	*conv_ehdr_type(uchar_t, Half, Conv_fmt_flags_t,
1369273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1379273SAli.Bahrami@Sun.COMconst char	*conv_ehdr_vers(Word, Conv_fmt_flags_t, Conv_inv_buf_t *);
1384734Sab196087const char	*conv_elfdata_type(Elf_Type, Conv_inv_buf_t *);
13911734SAli.Bahrami@Sun.COMconst char	*conv_ent_flags(ec_flags_t, Conv_ent_flags_buf_t *);
14011734SAli.Bahrami@Sun.COMconst char	*conv_ent_filcmp(Word, Conv_fmt_flags_t, Conv_inv_buf_t *);
1414734Sab196087const char	*conv_grphdl_flags(uint_t, Conv_grphdl_flags_buf_t *);
1424734Sab196087const char	*conv_grpdesc_flags(uint_t, Conv_grpdesc_flags_buf_t *);
143*12877SRod.Evans@Sun.COMconst char	*conv_la_activity(uint_t, Conv_fmt_flags_t, Conv_inv_buf_t *);
144*12877SRod.Evans@Sun.COMconst char	*conv_la_bind(uint_t, Conv_la_bind_buf_t *);
145*12877SRod.Evans@Sun.COMconst char	*conv_la_search(uint_t, Conv_la_search_buf_t *);
146*12877SRod.Evans@Sun.COMconst char	*conv_la_symbind(uint_t, Conv_la_symbind_buf_t *);
1470Sstevel@tonic-gateIsa_desc	*conv_isalist(void);
14811734SAli.Bahrami@Sun.COMconst char	*conv_mapfile_version(Word, Conv_fmt_flags_t,
14911734SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1509273SAli.Bahrami@Sun.COMconst char	*conv_phdr_flags(uchar_t, Word, Conv_fmt_flags_t,
1519273SAli.Bahrami@Sun.COM		    Conv_phdr_flags_buf_t *);
1529273SAli.Bahrami@Sun.COMconst char	*conv_phdr_type(uchar_t, Half, Word, Conv_fmt_flags_t,
1539273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1549273SAli.Bahrami@Sun.COMconst char	*conv_reject_desc(Rej_desc *, Conv_reject_desc_buf_t *,
1559273SAli.Bahrami@Sun.COM		    Half mach);
1569273SAli.Bahrami@Sun.COMconst char	*conv_reloc_type(Half, Word, Conv_fmt_flags_t,
1579273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1589273SAli.Bahrami@Sun.COMconst char	*conv_reloc_type_static(Half, Word, Conv_fmt_flags_t);
1599273SAli.Bahrami@Sun.COMconst char	*conv_reloc_386_type(Word, Conv_fmt_flags_t, Conv_inv_buf_t *);
1609273SAli.Bahrami@Sun.COMconst char	*conv_reloc_amd64_type(Word, Conv_fmt_flags_t,
1619273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1629273SAli.Bahrami@Sun.COMconst char	*conv_reloc_SPARC_type(Word, Conv_fmt_flags_t,
1639273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1649273SAli.Bahrami@Sun.COMconst char	*conv_sec_type(uchar_t, Half, Word, Conv_fmt_flags_t,
1659273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1664734Sab196087const char	*conv_seg_flags(Half, Conv_seg_flags_buf_t *);
1679273SAli.Bahrami@Sun.COMvoid		conv_str_to_c_literal(const char *buf, size_t n,
1689273SAli.Bahrami@Sun.COM		    Conv_str_to_c_literal_func_t *cb_func, void *uvalue);
1699273SAli.Bahrami@Sun.COMconst char	*conv_sym_info_bind(uchar_t, Conv_fmt_flags_t,
1709273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1719273SAli.Bahrami@Sun.COMconst char	*conv_sym_info_type(Half, uchar_t, Conv_fmt_flags_t,
1729273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1739273SAli.Bahrami@Sun.COMconst char	*conv_sym_shndx(uchar_t, Half, Half, Conv_fmt_flags_t,
1749273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1759273SAli.Bahrami@Sun.COMconst char	*conv_sym_other(uchar_t, Conv_inv_buf_t *);
1769273SAli.Bahrami@Sun.COMconst char	*conv_sym_other_vis(uchar_t, Conv_fmt_flags_t,
1779273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
1789273SAli.Bahrami@Sun.COMconst char	*conv_syminfo_boundto(Half, Conv_fmt_flags_t, Conv_inv_buf_t *);
1799273SAli.Bahrami@Sun.COMconst char	*conv_syminfo_flags(Half, Conv_fmt_flags_t,
1809273SAli.Bahrami@Sun.COM		    Conv_syminfo_flags_buf_t *);
1819577SRod.Evans@Sun.COMconst char	*conv_time(struct timeval *, struct timeval *,
1829577SRod.Evans@Sun.COM		    Conv_time_buf_t *);
1830Sstevel@tonic-gateUts_desc	*conv_uts(void);
1847682SAli.Bahrami@Sun.COMconst char	*conv_ver_flags(Half, Conv_fmt_flags_t, Conv_ver_flags_buf_t *);
1854734Sab196087const char	*conv_ver_index(Versym, int, Conv_inv_buf_t *);
1864734Sab196087
1871618Srie
1881618Srie/*
1899273SAli.Bahrami@Sun.COM * Generic iteration interfaces.
1909273SAli.Bahrami@Sun.COM */
1919273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_cap_tags(Conv_fmt_flags_t, conv_iter_cb_t, void *);
1929273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_cap_val_hw1(Half, Conv_fmt_flags_t,
1939273SAli.Bahrami@Sun.COM		    conv_iter_cb_t, void *);
19411827SRod.Evans@Sun.COMconv_iter_ret_t	conv_iter_cap_val_hw2(Half, Conv_fmt_flags_t,
19511827SRod.Evans@Sun.COM		    conv_iter_cb_t, void *);
1969273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_cap_val_sf1(Conv_fmt_flags_t, conv_iter_cb_t, void *);
1979273SAli.Bahrami@Sun.COM
1989273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_dyn_feature1(Conv_fmt_flags_t,
1999273SAli.Bahrami@Sun.COM		    conv_iter_cb_t, void *);
2009273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_dyn_flag(Conv_fmt_flags_t, conv_iter_cb_t, void *);
2019273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_dyn_flag1(Conv_fmt_flags_t, conv_iter_cb_t, void *);
2029273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_dyn_posflag1(Conv_fmt_flags_t,
2039273SAli.Bahrami@Sun.COM		    conv_iter_cb_t, void *);
2049273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_dyn_tag(conv_iter_osabi_t, Half,
2059273SAli.Bahrami@Sun.COM		    Conv_fmt_flags_t, conv_iter_cb_t, void *);
2069273SAli.Bahrami@Sun.COM
2079273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_ehdr_abivers(conv_iter_osabi_t,
2089273SAli.Bahrami@Sun.COM		    Conv_fmt_flags_t, conv_iter_cb_t, void *);
2099273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_ehdr_class(Conv_fmt_flags_t, conv_iter_cb_t, void *);
2109273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_ehdr_data(Conv_fmt_flags_t, conv_iter_cb_t, void *);
2119273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_ehdr_eident(Conv_fmt_flags_t, conv_iter_cb_t, void *);
2129273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_ehdr_flags(Half, Conv_fmt_flags_t,
2139273SAli.Bahrami@Sun.COM		    conv_iter_cb_t, void *);
2149273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_ehdr_mach(Conv_fmt_flags_t, conv_iter_cb_t, void *);
2159273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_ehdr_osabi(Conv_fmt_flags_t, conv_iter_cb_t, void *);
2169273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_ehdr_type(conv_iter_osabi_t, Conv_fmt_flags_t,
2179273SAli.Bahrami@Sun.COM		    conv_iter_cb_t, void *);
2189273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_ehdr_vers(Conv_fmt_flags_t, conv_iter_cb_t, void *);
2199273SAli.Bahrami@Sun.COM
2209273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_phdr_flags(conv_iter_osabi_t,
2219273SAli.Bahrami@Sun.COM		    Conv_fmt_flags_t, conv_iter_cb_t, void *);
2229273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_phdr_type(conv_iter_osabi_t, Conv_fmt_flags_t,
2239273SAli.Bahrami@Sun.COM		    conv_iter_cb_t, void *);
2249273SAli.Bahrami@Sun.COM
2259273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_sec_flags(conv_iter_osabi_t, Half,
2269273SAli.Bahrami@Sun.COM		    Conv_fmt_flags_t, conv_iter_cb_t, void *);
2279273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_sec_symtab(conv_iter_osabi_t,
2289273SAli.Bahrami@Sun.COM		    Conv_fmt_flags_t, conv_iter_cb_t, void *);
2299273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_sec_type(conv_iter_osabi_t, Half,
2309273SAli.Bahrami@Sun.COM		    Conv_fmt_flags_t, conv_iter_cb_t, void *);
2319273SAli.Bahrami@Sun.COM
2329273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_sym_info_bind(Conv_fmt_flags_t,
2339273SAli.Bahrami@Sun.COM		    conv_iter_cb_t, void *);
2349273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_sym_other_vis(Conv_fmt_flags_t,
2359273SAli.Bahrami@Sun.COM		    conv_iter_cb_t, void *);
2369273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_sym_shndx(conv_iter_osabi_t, Half,
2379273SAli.Bahrami@Sun.COM		    Conv_fmt_flags_t, conv_iter_cb_t, void *);
2389273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_sym_info_type(Half, Conv_fmt_flags_t,
2399273SAli.Bahrami@Sun.COM		    conv_iter_cb_t, void *);
2409273SAli.Bahrami@Sun.COM
2419273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_syminfo_boundto(Conv_fmt_flags_t,
2429273SAli.Bahrami@Sun.COM		    conv_iter_cb_t, void *);
2439273SAli.Bahrami@Sun.COMconv_iter_ret_t	conv_iter_syminfo_flags(Conv_fmt_flags_t,
2449273SAli.Bahrami@Sun.COM			    conv_iter_cb_t, void *);
2459273SAli.Bahrami@Sun.COM
2469273SAli.Bahrami@Sun.COM
2479273SAli.Bahrami@Sun.COM/*
2489273SAli.Bahrami@Sun.COM * ELFCLASS-specific core formatting functionality
2499273SAli.Bahrami@Sun.COM */
2509273SAli.Bahrami@Sun.COMint		_conv_expn_field(CONV_EXPN_FIELD_ARG *,
2519273SAli.Bahrami@Sun.COM		    const Val_desc *, Conv_fmt_flags_t, const char *);
2529273SAli.Bahrami@Sun.COMint		_conv_expn_field2(CONV_EXPN_FIELD_ARG *, uchar_t,
2539273SAli.Bahrami@Sun.COM		    Half, const Val_desc2 *, Conv_fmt_flags_t, const char *);
2549273SAli.Bahrami@Sun.COMconst char	*conv_invalid_val(Conv_inv_buf_t *, Xword, Conv_fmt_flags_t);
2559273SAli.Bahrami@Sun.COM
2569273SAli.Bahrami@Sun.COM
2579273SAli.Bahrami@Sun.COM/*
2581618Srie * Define all class specific routines.
2591618Srie */
2609273SAli.Bahrami@Sun.COMconst char	*conv32_cap_tag(Elf32_Word, Conv_fmt_flags_t,
2619273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
2629273SAli.Bahrami@Sun.COMconst char	*conv64_cap_tag(Elf64_Xword, Conv_fmt_flags_t,
2639273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
2644734Sab196087const char	*conv32_cap_val(Elf32_Word, Elf32_Word, Half,
26511827SRod.Evans@Sun.COM		    Conv_fmt_flags_t, Conv_cap_val_buf_t *);
2664734Sab196087const char	*conv64_cap_val(Elf64_Xword, Elf64_Xword, Half,
26711827SRod.Evans@Sun.COM		    Conv_fmt_flags_t, Conv_cap_val_buf_t *);
2685088Sab196087const char	*conv32_cap_val_hw1(Elf32_Word, Half, Conv_fmt_flags_t,
2699273SAli.Bahrami@Sun.COM		    Conv_cap_val_hw1_buf_t *);
27011827SRod.Evans@Sun.COMconst char	*conv32_cap_val_hw2(Elf32_Word, Half, Conv_fmt_flags_t,
27111827SRod.Evans@Sun.COM		    Conv_cap_val_hw2_buf_t *);
2725088Sab196087const char	*conv64_cap_val_hw1(Elf64_Xword, Half, Conv_fmt_flags_t,
2739273SAli.Bahrami@Sun.COM		    Conv_cap_val_hw1_buf_t *);
27411827SRod.Evans@Sun.COMconst char	*conv64_cap_val_hw2(Elf64_Xword, Half, Conv_fmt_flags_t,
27511827SRod.Evans@Sun.COM		    Conv_cap_val_hw2_buf_t *);
2765088Sab196087const char	*conv32_cap_val_sf1(Elf32_Word, Half, Conv_fmt_flags_t,
2779273SAli.Bahrami@Sun.COM		    Conv_cap_val_sf1_buf_t *);
2785088Sab196087const char	*conv64_cap_val_sf1(Elf64_Xword, Half, Conv_fmt_flags_t,
2799273SAli.Bahrami@Sun.COM		    Conv_cap_val_sf1_buf_t *);
2805088Sab196087const char	*conv32_dyn_flag1(Elf32_Word, Conv_fmt_flags_t,
2819273SAli.Bahrami@Sun.COM		    Conv_dyn_flag1_buf_t *);
2825088Sab196087const char	*conv64_dyn_flag1(Elf64_Xword, Conv_fmt_flags_t,
2839273SAli.Bahrami@Sun.COM		    Conv_dyn_flag1_buf_t *);
2849273SAli.Bahrami@Sun.COMconst char	*conv32_dyn_flag(Elf32_Word, int, Conv_dyn_flag_buf_t *);
2859273SAli.Bahrami@Sun.COMconst char	*conv64_dyn_flag(Elf64_Xword, int, Conv_dyn_flag_buf_t *);
2864734Sab196087const char	*conv32_dyn_posflag1(Elf32_Word, int,
2879273SAli.Bahrami@Sun.COM		    Conv_dyn_posflag1_buf_t *);
2884734Sab196087const char	*conv64_dyn_posflag1(Elf64_Xword, int,
2899273SAli.Bahrami@Sun.COM		    Conv_dyn_posflag1_buf_t *);
2909273SAli.Bahrami@Sun.COMconst char	*conv32_dyn_tag(Elf32_Word, uchar_t, Elf32_Half,
2919273SAli.Bahrami@Sun.COM		    Conv_fmt_flags_t, Conv_inv_buf_t *);
2929273SAli.Bahrami@Sun.COMconst char	*conv64_dyn_tag(Elf64_Xword, uchar_t, Elf64_Half,
2939273SAli.Bahrami@Sun.COM		    Conv_fmt_flags_t, Conv_inv_buf_t *);
2944734Sab196087const char	*conv32_dyn_feature1(Elf32_Word, int,
2959273SAli.Bahrami@Sun.COM		    Conv_dyn_feature1_buf_t *);
2964734Sab196087const char	*conv64_dyn_feature1(Elf64_Xword, int,
2979273SAli.Bahrami@Sun.COM		    Conv_dyn_feature1_buf_t *);
2989273SAli.Bahrami@Sun.COMconst char	*conv32_sec_flags(uchar_t, Half, Elf32_Word, Conv_fmt_flags_t,
2999273SAli.Bahrami@Sun.COM		    Conv_sec_flags_buf_t *);
3009273SAli.Bahrami@Sun.COMconst char	*conv64_sec_flags(uchar_t, Half, Elf64_Xword, Conv_fmt_flags_t,
3019273SAli.Bahrami@Sun.COM		    Conv_sec_flags_buf_t *);
3024734Sab196087const char	*conv32_sec_linkinfo(Elf32_Word, Elf32_Word,
3039273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
3044734Sab196087const char	*conv64_sec_linkinfo(Elf64_Word, Elf64_Xword,
3059273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
3064734Sab196087const char	*conv32_sym_value(Elf32_Half, uchar_t, Elf32_Addr,
3079273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
3084734Sab196087const char	*conv64_sym_value(Elf64_Half, uchar_t, Elf64_Addr,
3099273SAli.Bahrami@Sun.COM		    Conv_inv_buf_t *);
3109273SAli.Bahrami@Sun.COMconst char	*conv32_sym_SPARC_value(Elf32_Addr, int, Conv_inv_buf_t *);
3119273SAli.Bahrami@Sun.COMconst char	*conv64_sym_SPARC_value(Elf64_Addr, int, Conv_inv_buf_t *);
312