llib-lconv revision de777a601dfef76d8d54837de77dc672dce47498
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford/*
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * CDDL HEADER START
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford *
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * The contents of this file are subject to the terms of the
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * Common Development and Distribution License (the "License").
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * You may not use this file except in compliance with the License.
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford *
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * or http://www.opensolaris.org/os/licensing.
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * See the License for the specific language governing permissions
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * and limitations under the License.
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford *
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * When distributing Covered Code, include this CDDL HEADER in each
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * If applicable, add the following below this CDDL HEADER, with the
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * fields enclosed by brackets "[]" replaced with your own identifying
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * information: Portions Copyright [yyyy] [name of copyright owner]
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford *
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * CDDL HEADER END
4c6011bfcf29cd75d6af86f192d709221f4d5d3aMareks Malnacs */
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford
4c6011bfcf29cd75d6af86f192d709221f4d5d3aMareks Malnacs/*
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * Use is subject to license terms.
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford */
4c6011bfcf29cd75d6af86f192d709221f4d5d3aMareks Malnacs/* LINTLIBRARY */
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford/* PROTOLIB1 */
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford#pragma ident "%Z%%M% %I% %E% SMI"
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford#include <stdlib.h>
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford#include <libelf.h>
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford#include <sys/machelf.h>
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford#include <sgs.h>
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford#include <libld.h>
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford#include <conv.h>
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford/*
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * Define all generic interfaces.
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford */
48e27400d23e2586530cf943524e50c74d79a915Tony Bamforduchar_t conv_check_native(char **, char **);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_config_feat(int, Conv_config_feat_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_config_obj(ushort_t, Conv_config_obj_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_config_upm(const char *, const char *, const char *,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford size_t);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_def_tag(Symref, Conv_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_demangle_name(const char *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_dl_flag(int, int, Conv_dl_flag_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_dl_mode(int, int, Conv_dl_mode_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_dwarf_ehe(uint_t, Conv_dwarf_ehe_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_elfdata_type(Elf_Type, Conv_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordint conv_expn_field(CONV_EXPN_FIELD_ARG *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_grphdl_flags(uint_t, Conv_grphdl_flags_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_grpdesc_flags(uint_t, Conv_grpdesc_flags_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony BamfordIsa_desc *conv_isalist(void);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_lddstub(int);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_seg_flags(Half, Conv_seg_flags_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordint conv_sys_eclass(void);
48e27400d23e2586530cf943524e50c74d79a915Tony BamfordUts_desc *conv_uts(void);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_ver_flags(Half);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv_ver_index(Versym, int, Conv_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford/*
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford * Define all class specific routines.
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford */
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_bnd_obj(uint_t, Conv32_bnd_obj_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_bnd_obj(uint_t, Conv64_bnd_obj_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_bnd_type(uint_t, Conv32_bnd_type_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_bnd_type(uint_t, Conv64_bnd_type_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_cap_tag(Elf32_Word, Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_cap_tag(Elf64_Xword, Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_cap_val(Elf32_Word, Elf32_Word, Half,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv32_cap_val_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_cap_val(Elf64_Xword, Elf64_Xword, Half,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv64_cap_val_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_cap_val_hw1(Elf32_Word, Half,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv32_cap_val_hw1_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_cap_val_hw1(Elf64_Xword, Half,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv64_cap_val_hw1_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_cap_val_sf1(Elf32_Word, Half,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv32_cap_val_sf1_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_cap_val_sf1(Elf64_Xword, Half,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv64_cap_val_sf1_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_dyn_flag1(Elf32_Word, Conv32_dyn_flag1_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_dyn_flag1(Elf64_Xword, Conv64_dyn_flag1_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_dyn_flag(Elf32_Word, int, Conv32_dyn_flag_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_dyn_flag(Elf64_Xword, int, Conv64_dyn_flag_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_dyn_posflag1(Elf32_Word, int,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv32_dyn_posflag1_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_dyn_posflag1(Elf64_Xword, int,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv64_dyn_posflag1_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_dyn_tag(Elf32_Word, Elf32_Half, int,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_dyn_tag(Elf64_Xword, Elf64_Half, int,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_dyn_feature1(Elf32_Word, int,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv32_dyn_feature1_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_dyn_feature1(Elf64_Xword, int,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv64_dyn_feature1_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_ehdr_class(uchar_t, int, Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_ehdr_class(uchar_t, int, Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_ehdr_data(uchar_t, int, Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_ehdr_data(uchar_t, int, Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_ehdr_flags(Elf32_Half, Elf32_Word,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv32_ehdr_flags_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_ehdr_flags(Elf64_Half, Elf64_Word,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv64_ehdr_flags_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_ehdr_mach(Elf32_Half, int, Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_ehdr_mach(Elf64_Half, int, Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_ehdr_type(Elf32_Half, int, Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_ehdr_type(Elf64_Half, int, Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_ehdr_vers(Elf32_Word, int, Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_ehdr_vers(Elf64_Word, int, Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_invalid_val(Conv32_inv_buf_t *, Elf32_Word, int);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_invalid_val(Conv64_inv_buf_t *, Elf64_Xword, int);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_phdr_flags(Word, Conv32_phdr_flags_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_phdr_flags(Word, Conv64_phdr_flags_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_phdr_type(Elf32_Half, Word, int, Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_phdr_type(Elf64_Half, Word, int, Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_reject_desc(Rej_desc *, Conv32_reject_desc_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_reject_desc(Rej_desc *, Conv64_reject_desc_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_reloc_type(Half, Word, int, Conv32_inv_buf_t *);
4c6011bfcf29cd75d6af86f192d709221f4d5d3aMareks Malnacsconst char *conv64_reloc_type(Half, Word, int, Conv64_inv_buf_t *);
4c6011bfcf29cd75d6af86f192d709221f4d5d3aMareks Malnacsconst char *conv32_reloc_type_static(Half, Word, int);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_reloc_type_static(Half, Word, int);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_reloc_386_type(Word, int, Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_reloc_386_type(Word, int, Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_reloc_amd64_type(Word, int, Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_reloc_amd64_type(Word, int, Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_reloc_SPARC_type(Word, int, Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_reloc_SPARC_type(Word, int, Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_sec_flags(Elf32_Word, Conv32_sec_flags_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_sec_flags(Elf64_Xword, Conv64_sec_flags_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_sec_linkinfo(Elf32_Word, Elf32_Word,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_sec_linkinfo(Elf64_Word, Elf64_Xword,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_sec_type(Elf32_Half, Elf32_Word, int,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_sec_type(Elf64_Half, Elf64_Word, int,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_sym_info_bind(uchar_t, int, Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_sym_info_bind(uchar_t, int, Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_sym_info_type(Elf32_Half, uchar_t, int,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_sym_info_type(Elf64_Half, uchar_t, int,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_sym_shndx(Elf32_Half, Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_sym_shndx(Elf64_Half, Conv64_inv_buf_t *);
4c6011bfcf29cd75d6af86f192d709221f4d5d3aMareks Malnacsconst char *conv32_sym_other(uchar_t, Conv32_inv_buf_t *);
4c6011bfcf29cd75d6af86f192d709221f4d5d3aMareks Malnacsconst char *conv64_sym_other(uchar_t, Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_sym_value(Elf32_Half, uchar_t, Elf32_Addr,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_sym_value(Elf64_Half, uchar_t, Elf64_Addr,
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv32_sym_SPARC_value(Elf32_Addr, int, Conv32_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamfordconst char *conv64_sym_SPARC_value(Elf64_Addr, int, Conv64_inv_buf_t *);
48e27400d23e2586530cf943524e50c74d79a915Tony Bamford