17c478bd9Sstevel@tonic-gate /* 27c478bd9Sstevel@tonic-gate * CDDL HEADER START 37c478bd9Sstevel@tonic-gate * 47c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the 55aefb655Srie * Common Development and Distribution License (the "License"). 65aefb655Srie * You may not use this file except in compliance with the License. 77c478bd9Sstevel@tonic-gate * 87c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 97c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 107c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions 117c478bd9Sstevel@tonic-gate * and limitations under the License. 127c478bd9Sstevel@tonic-gate * 137c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 147c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 157c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 167c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 177c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 187c478bd9Sstevel@tonic-gate * 197c478bd9Sstevel@tonic-gate * CDDL HEADER END 207c478bd9Sstevel@tonic-gate */ 215aefb655Srie 227c478bd9Sstevel@tonic-gate /* 237c478bd9Sstevel@tonic-gate * Copyright (c) 1988 AT&T 247c478bd9Sstevel@tonic-gate * All Rights Reserved 257c478bd9Sstevel@tonic-gate * 26*7e16fca0SAli Bahrami * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 277c478bd9Sstevel@tonic-gate * Use is subject to license terms. 287c478bd9Sstevel@tonic-gate */ 297c478bd9Sstevel@tonic-gate 307c478bd9Sstevel@tonic-gate #ifndef _CONV_H 317c478bd9Sstevel@tonic-gate #define _CONV_H 327c478bd9Sstevel@tonic-gate 337c478bd9Sstevel@tonic-gate /* 347c478bd9Sstevel@tonic-gate * Global include file for conversion library. 357c478bd9Sstevel@tonic-gate */ 367c478bd9Sstevel@tonic-gate 377c478bd9Sstevel@tonic-gate #include <stdlib.h> 387c478bd9Sstevel@tonic-gate #include <libelf.h> 397c478bd9Sstevel@tonic-gate #include <dlfcn.h> 407c478bd9Sstevel@tonic-gate #include <libld.h> 417c478bd9Sstevel@tonic-gate #include <sgs.h> 427c478bd9Sstevel@tonic-gate 437c478bd9Sstevel@tonic-gate #ifdef __cplusplus 447c478bd9Sstevel@tonic-gate extern "C" { 457c478bd9Sstevel@tonic-gate #endif 467c478bd9Sstevel@tonic-gate 477c478bd9Sstevel@tonic-gate /* 487c478bd9Sstevel@tonic-gate * Configuration features available - maintained here (instead of debug.h) 497c478bd9Sstevel@tonic-gate * to save libconv from having to include debug.h which results in numerous 507c478bd9Sstevel@tonic-gate * "declared but not used or defined" lint errors. 517c478bd9Sstevel@tonic-gate */ 527c478bd9Sstevel@tonic-gate #define CONF_EDLIBPATH 0x000100 /* ELF default library path */ 537c478bd9Sstevel@tonic-gate #define CONF_ESLIBPATH 0x000200 /* ELF secure library path */ 547c478bd9Sstevel@tonic-gate #define CONF_ADLIBPATH 0x000400 /* AOUT default library path */ 557c478bd9Sstevel@tonic-gate #define CONF_ASLIBPATH 0x000800 /* AOUT secure library path */ 567c478bd9Sstevel@tonic-gate #define CONF_DIRCFG 0x001000 /* directory configuration available */ 577c478bd9Sstevel@tonic-gate #define CONF_OBJALT 0x002000 /* object alternatives available */ 587c478bd9Sstevel@tonic-gate #define CONF_MEMRESV 0x004000 /* memory reservation required */ 597c478bd9Sstevel@tonic-gate #define CONF_ENVS 0x008000 /* environment variables available */ 607c478bd9Sstevel@tonic-gate #define CONF_FLTR 0x010000 /* filter information available */ 617c478bd9Sstevel@tonic-gate #define CONF_FEATMSK 0xffff00 627c478bd9Sstevel@tonic-gate 637c478bd9Sstevel@tonic-gate /* 64de777a60Sab196087 * Buffer types: 655aefb655Srie * 66de777a60Sab196087 * Many of the routines in this module require the user to supply a 67de777a60Sab196087 * buffer into which the desired strings may be written. These are 68de777a60Sab196087 * all arrays of characters, and might be defined as simple arrays 69de777a60Sab196087 * of char. The problem with that approach is that when such an array 70de777a60Sab196087 * is passed to a function, the C language considers it to have the 71de777a60Sab196087 * type (char *), without any regard to its length. Not all of our 72de777a60Sab196087 * buffers have the same length, and we want to ensure that the compiler 73de777a60Sab196087 * will refuse to compile code that passes the wrong type of buffer to 74de777a60Sab196087 * a given routine. The solution is to define the buffers as unions 75de777a60Sab196087 * that contain the needed array, and then to pass the given union 76de777a60Sab196087 * by address. The compiler will catch attempts to pass the wrong type 77de777a60Sab196087 * of pointer, and the size of a structure/union is implicit in its type. 78de777a60Sab196087 * 79de777a60Sab196087 * A nice side effect of this approach is that we can use a union with 80de777a60Sab196087 * multiple buffers to handle the cases where a given routine needs 81de777a60Sab196087 * more than one type of buffer. The end result is a single buffer large 82de777a60Sab196087 * enough to handle any of the subcases, but no larger. 835aefb655Srie */ 845aefb655Srie 855aefb655Srie /* 86de777a60Sab196087 * Size of buffer used by conv_invalid_val(): 87de777a60Sab196087 * 88de777a60Sab196087 * Various values that can't be matched to a symbolic definition are converted 89de777a60Sab196087 * to a numeric string. 90de777a60Sab196087 * 91de777a60Sab196087 * The buffer size reflects the maximum number of digits needed to 92de777a60Sab196087 * display an integer as text, plus a trailing null, and with room for 93de777a60Sab196087 * a leading "0x" if hexidecimal display is selected. 942926dd2eSrie */ 95de777a60Sab196087 #define CONV32_INV_BUFSIZE 12 96de777a60Sab196087 typedef union { 97de777a60Sab196087 char buf[CONV32_INV_BUFSIZE]; 98de777a60Sab196087 } Conv32_inv_buf_t; 99de777a60Sab196087 100de777a60Sab196087 #define CONV64_INV_BUFSIZE 22 101de777a60Sab196087 typedef union { 102de777a60Sab196087 char buf[CONV64_INV_BUFSIZE]; 103de777a60Sab196087 } Conv64_inv_buf_t; 104de777a60Sab196087 105de777a60Sab196087 106de777a60Sab196087 107de777a60Sab196087 /* conv_ehdr_flags() */ 108d29b2c44Sab196087 #define CONV_EHDR_FLAGS_BASE_BUFSIZE 69 109de777a60Sab196087 #define CONV32_EHDR_FLAGS_BUFSIZE \ 110d29b2c44Sab196087 (CONV_EHDR_FLAGS_BASE_BUFSIZE + CONV32_INV_BUFSIZE) 111de777a60Sab196087 typedef union { 112de777a60Sab196087 Conv32_inv_buf_t inv_buf; 113de777a60Sab196087 char buf[CONV32_EHDR_FLAGS_BUFSIZE]; 114de777a60Sab196087 } Conv32_ehdr_flags_buf_t; 115de777a60Sab196087 116de777a60Sab196087 #define CONV64_EHDR_FLAGS_BUFSIZE \ 117d29b2c44Sab196087 (CONV_EHDR_FLAGS_BASE_BUFSIZE + CONV64_INV_BUFSIZE) 118de777a60Sab196087 typedef union { 119de777a60Sab196087 Conv64_inv_buf_t inv_buf; 120de777a60Sab196087 char buf[CONV64_EHDR_FLAGS_BUFSIZE]; 121de777a60Sab196087 } Conv64_ehdr_flags_buf_t; 122de777a60Sab196087 123de777a60Sab196087 124de777a60Sab196087 /* conv_reject_desc() */ 125de777a60Sab196087 typedef union { 126de777a60Sab196087 Conv32_inv_buf_t inv_buf; 127de777a60Sab196087 Conv32_ehdr_flags_buf_t flags_buf; 128de777a60Sab196087 } Conv32_reject_desc_buf_t; 129de777a60Sab196087 130de777a60Sab196087 typedef union { 131de777a60Sab196087 Conv64_inv_buf_t inv_buf; 132de777a60Sab196087 Conv64_ehdr_flags_buf_t flags_buf; 133de777a60Sab196087 } Conv64_reject_desc_buf_t; 134de777a60Sab196087 135de777a60Sab196087 136de777a60Sab196087 /* 137de777a60Sab196087 * conv_cap_val_hw1() 138de777a60Sab196087 * 139de777a60Sab196087 * This size is based on the maximum number of hardware capabilities 140de777a60Sab196087 * that exist. See common/elfcap. 141de777a60Sab196087 */ 142de777a60Sab196087 #define CONV_CAP_VAL_HW1_BUFSIZE 195 143de777a60Sab196087 144de777a60Sab196087 typedef union { 145de777a60Sab196087 Conv32_inv_buf_t inv_buf; 146de777a60Sab196087 char buf[CONV_CAP_VAL_HW1_BUFSIZE]; 147de777a60Sab196087 } Conv32_cap_val_hw1_buf_t; 148de777a60Sab196087 149de777a60Sab196087 typedef union { 150de777a60Sab196087 Conv64_inv_buf_t inv_buf; 151de777a60Sab196087 char buf[CONV_CAP_VAL_HW1_BUFSIZE]; 152de777a60Sab196087 } Conv64_cap_val_hw1_buf_t; 153de777a60Sab196087 154de777a60Sab196087 155de777a60Sab196087 /* 156de777a60Sab196087 * conv_cap_val_sf1() 157de777a60Sab196087 * 158de777a60Sab196087 * This size is based on the maximum number of software capabilities 159de777a60Sab196087 * that exist. See common/elfcap. 160de777a60Sab196087 */ 161de777a60Sab196087 #define CONV_CAP_VAL_SF1_BUFSIZE 45 162de777a60Sab196087 163de777a60Sab196087 typedef union { 164de777a60Sab196087 Conv32_inv_buf_t inv_buf; 165de777a60Sab196087 char buf[CONV_CAP_VAL_SF1_BUFSIZE]; 166de777a60Sab196087 } Conv32_cap_val_sf1_buf_t; 167de777a60Sab196087 168de777a60Sab196087 typedef union { 169de777a60Sab196087 Conv64_inv_buf_t inv_buf; 170de777a60Sab196087 char buf[CONV_CAP_VAL_SF1_BUFSIZE]; 171de777a60Sab196087 } Conv64_cap_val_sf1_buf_t; 172de777a60Sab196087 173de777a60Sab196087 174de777a60Sab196087 175de777a60Sab196087 /* conv_cap_val_buf() */ 176de777a60Sab196087 typedef union { 177de777a60Sab196087 Conv32_inv_buf_t inv_buf; 178de777a60Sab196087 Conv32_cap_val_hw1_buf_t cap_val_hw1_buf; 179de777a60Sab196087 Conv32_cap_val_sf1_buf_t cap_val_sf1_buf; 180de777a60Sab196087 } Conv32_cap_val_buf_t; 181de777a60Sab196087 182de777a60Sab196087 typedef union { 183de777a60Sab196087 Conv64_inv_buf_t inv_buf; 184de777a60Sab196087 Conv64_cap_val_hw1_buf_t cap_val_hw1_buf; 185de777a60Sab196087 Conv64_cap_val_sf1_buf_t cap_val_sf1_buf; 186de777a60Sab196087 } Conv64_cap_val_buf_t; 187de777a60Sab196087 188de777a60Sab196087 189de777a60Sab196087 /* conv_config_feat() */ 1906a074c93Sab196087 #define CONV_CONFIG_FEAT_BUFSIZE 194 191de777a60Sab196087 192de777a60Sab196087 typedef union { 193de777a60Sab196087 Conv32_inv_buf_t inv_buf; 194de777a60Sab196087 char buf[CONV_CONFIG_FEAT_BUFSIZE]; 195de777a60Sab196087 } Conv32_config_feat_buf_t; 196de777a60Sab196087 197de777a60Sab196087 typedef union { 198de777a60Sab196087 Conv64_inv_buf_t inv_buf; 199de777a60Sab196087 char buf[CONV_CONFIG_FEAT_BUFSIZE]; 200de777a60Sab196087 } Conv64_config_feat_buf_t; 201de777a60Sab196087 202de777a60Sab196087 203de777a60Sab196087 /* conv_config_obj() */ 204de777a60Sab196087 #define CONV_CONFIG_OBJ_BUFSIZE 154 205de777a60Sab196087 206de777a60Sab196087 typedef union { 207de777a60Sab196087 Conv32_inv_buf_t inv_buf; 208de777a60Sab196087 char buf[CONV_CONFIG_OBJ_BUFSIZE]; 209de777a60Sab196087 } Conv32_config_obj_buf_t; 210de777a60Sab196087 211de777a60Sab196087 typedef union { 212de777a60Sab196087 Conv64_inv_buf_t inv_buf; 213de777a60Sab196087 char buf[CONV_CONFIG_OBJ_BUFSIZE]; 214de777a60Sab196087 } Conv64_config_obj_buf_t; 215de777a60Sab196087 216de777a60Sab196087 217de777a60Sab196087 /* conv_dl_mode() */ 218de777a60Sab196087 #define CONV_DL_MODE_BUFSIZE 122 219de777a60Sab196087 220de777a60Sab196087 typedef union { 221de777a60Sab196087 Conv32_inv_buf_t inv_buf; 222de777a60Sab196087 char buf[CONV_DL_MODE_BUFSIZE]; 223de777a60Sab196087 } Conv32_dl_mode_buf_t; 224de777a60Sab196087 225de777a60Sab196087 typedef union { 226de777a60Sab196087 Conv64_inv_buf_t inv_buf; 227de777a60Sab196087 char buf[CONV_DL_MODE_BUFSIZE]; 228de777a60Sab196087 } Conv64_dl_mode_buf_t; 229de777a60Sab196087 230de777a60Sab196087 231de777a60Sab196087 /* conv_dl_flag() */ 2326a074c93Sab196087 #define CONV_DL_FLAG_BUFSIZE 175 233de777a60Sab196087 234de777a60Sab196087 typedef union { 235de777a60Sab196087 Conv32_inv_buf_t inv_buf; 236de777a60Sab196087 char buf[CONV_DL_FLAG_BUFSIZE]; 237de777a60Sab196087 } Conv32_dl_flag_buf_t; 238de777a60Sab196087 239de777a60Sab196087 typedef union { 240de777a60Sab196087 Conv64_inv_buf_t inv_buf; 241de777a60Sab196087 char buf[CONV_DL_FLAG_BUFSIZE]; 242de777a60Sab196087 } Conv64_dl_flag_buf_t; 243de777a60Sab196087 244de777a60Sab196087 245de777a60Sab196087 /* conv_grphdl_flags() */ 2468af2c5b9Srie #define CONV_GRPHDL_FLAGS_BUFSIZE 82 247de777a60Sab196087 248de777a60Sab196087 typedef union { 249de777a60Sab196087 Conv32_inv_buf_t inv_buf; 250de777a60Sab196087 char buf[CONV_GRPHDL_FLAGS_BUFSIZE]; 251de777a60Sab196087 } Conv32_grphdl_flags_buf_t; 252de777a60Sab196087 253de777a60Sab196087 typedef union { 254de777a60Sab196087 Conv64_inv_buf_t inv_buf; 255de777a60Sab196087 char buf[CONV_GRPHDL_FLAGS_BUFSIZE]; 256de777a60Sab196087 } Conv64_grphdl_flags_buf_t; 257de777a60Sab196087 258de777a60Sab196087 259de777a60Sab196087 /* conv_grpdesc_flags() */ 2608af2c5b9Srie #define CONV_GRPDESC_FLAGS_BUFSIZE 92 261de777a60Sab196087 262de777a60Sab196087 typedef union { 263de777a60Sab196087 Conv32_inv_buf_t inv_buf; 264de777a60Sab196087 char buf[CONV_GRPDESC_FLAGS_BUFSIZE]; 265de777a60Sab196087 } Conv32_grpdesc_flags_buf_t; 266de777a60Sab196087 267de777a60Sab196087 typedef union { 268de777a60Sab196087 Conv64_inv_buf_t inv_buf; 269de777a60Sab196087 char buf[CONV_GRPDESC_FLAGS_BUFSIZE]; 270de777a60Sab196087 } Conv64_grpdesc_flags_buf_t; 271de777a60Sab196087 272de777a60Sab196087 273de777a60Sab196087 /* conv_seg_flags() */ 274de777a60Sab196087 #define CONV_SEG_FLAGS_BUFSIZE 186 275de777a60Sab196087 276de777a60Sab196087 typedef union { 277de777a60Sab196087 Conv32_inv_buf_t inv_buf; 278de777a60Sab196087 char buf[CONV_SEG_FLAGS_BUFSIZE]; 279de777a60Sab196087 } Conv32_seg_flags_buf_t; 280de777a60Sab196087 281de777a60Sab196087 typedef union { 282de777a60Sab196087 Conv64_inv_buf_t inv_buf; 283de777a60Sab196087 char buf[CONV_SEG_FLAGS_BUFSIZE]; 284de777a60Sab196087 } Conv64_seg_flags_buf_t; 285de777a60Sab196087 286de777a60Sab196087 287de777a60Sab196087 /* conv_dyn_posflag1() */ 288d29b2c44Sab196087 #define CONV_DYN_POSFLAG1_BASE_BUFSIZE 23 289de777a60Sab196087 #define CONV32_DYN_POSFLAG1_BUFSIZE \ 290d29b2c44Sab196087 (CONV_DYN_POSFLAG1_BASE_BUFSIZE + CONV32_INV_BUFSIZE) 291de777a60Sab196087 typedef union { 292de777a60Sab196087 Conv32_inv_buf_t inv_buf; 293de777a60Sab196087 char buf[CONV32_DYN_POSFLAG1_BUFSIZE]; 294de777a60Sab196087 } Conv32_dyn_posflag1_buf_t; 295de777a60Sab196087 296de777a60Sab196087 #define CONV64_DYN_POSFLAG1_BUFSIZE \ 297d29b2c44Sab196087 (CONV_DYN_POSFLAG1_BASE_BUFSIZE + CONV64_INV_BUFSIZE) 298de777a60Sab196087 typedef union { 299de777a60Sab196087 Conv64_inv_buf_t inv_buf; 300de777a60Sab196087 char buf[CONV64_DYN_POSFLAG1_BUFSIZE]; 301de777a60Sab196087 } Conv64_dyn_posflag1_buf_t; 302de777a60Sab196087 303de777a60Sab196087 304de777a60Sab196087 /* conv_dyn_flag() */ 305d29b2c44Sab196087 #define CONV_DYN_FLAG_BASE_BUFSIZE 48 306de777a60Sab196087 #define CONV32_DYN_FLAG_BUFSIZE \ 307d29b2c44Sab196087 (CONV_DYN_FLAG_BASE_BUFSIZE + CONV32_INV_BUFSIZE) 308de777a60Sab196087 typedef union { 309de777a60Sab196087 Conv32_inv_buf_t inv_buf; 310de777a60Sab196087 char buf[CONV32_DYN_FLAG_BUFSIZE]; 311de777a60Sab196087 } Conv32_dyn_flag_buf_t; 312de777a60Sab196087 313de777a60Sab196087 #define CONV64_DYN_FLAG_BUFSIZE \ 314d29b2c44Sab196087 (CONV_DYN_FLAG_BASE_BUFSIZE + CONV64_INV_BUFSIZE) 315de777a60Sab196087 typedef union { 316de777a60Sab196087 Conv64_inv_buf_t inv_buf; 317de777a60Sab196087 char buf[CONV64_DYN_FLAG_BUFSIZE]; 318de777a60Sab196087 } Conv64_dyn_flag_buf_t; 319de777a60Sab196087 320de777a60Sab196087 321de777a60Sab196087 /* conv_dyn_flag1() */ 32260758829Srie #define CONV_DYN_FLAG1_BASE_BUFSIZE 265 323de777a60Sab196087 #define CONV32_DYN_FLAG1_BUFSIZE \ 324d29b2c44Sab196087 (CONV_DYN_FLAG1_BASE_BUFSIZE + CONV32_INV_BUFSIZE) 325de777a60Sab196087 typedef union { 326de777a60Sab196087 Conv32_inv_buf_t inv_buf; 327de777a60Sab196087 char buf[CONV32_DYN_FLAG1_BUFSIZE]; 328de777a60Sab196087 } Conv32_dyn_flag1_buf_t; 329de777a60Sab196087 330de777a60Sab196087 #define CONV64_DYN_FLAG1_BUFSIZE \ 331d29b2c44Sab196087 (CONV_DYN_FLAG1_BASE_BUFSIZE + CONV64_INV_BUFSIZE) 332de777a60Sab196087 typedef union { 333de777a60Sab196087 Conv64_inv_buf_t inv_buf; 334de777a60Sab196087 char buf[CONV64_DYN_FLAG1_BUFSIZE]; 335de777a60Sab196087 } Conv64_dyn_flag1_buf_t; 336de777a60Sab196087 337de777a60Sab196087 338de777a60Sab196087 /* conv_dyn_feature1() */ 339d29b2c44Sab196087 #define CONV_DYN_FEATURE1_BASE_BUFSIZE 20 340de777a60Sab196087 #define CONV32_DYN_FEATURE1_BUFSIZE \ 341d29b2c44Sab196087 (CONV_DYN_FEATURE1_BASE_BUFSIZE + CONV32_INV_BUFSIZE) 342de777a60Sab196087 typedef union { 343de777a60Sab196087 Conv32_inv_buf_t inv_buf; 344de777a60Sab196087 char buf[CONV32_DYN_FEATURE1_BUFSIZE]; 345de777a60Sab196087 } Conv32_dyn_feature1_buf_t; 346de777a60Sab196087 347de777a60Sab196087 #define CONV64_DYN_FEATURE1_BUFSIZE \ 348d29b2c44Sab196087 (CONV_DYN_FEATURE1_BASE_BUFSIZE + CONV64_INV_BUFSIZE) 349de777a60Sab196087 typedef union { 350de777a60Sab196087 Conv64_inv_buf_t inv_buf; 351de777a60Sab196087 char buf[CONV64_DYN_FEATURE1_BUFSIZE]; 352de777a60Sab196087 } Conv64_dyn_feature1_buf_t; 353de777a60Sab196087 354de777a60Sab196087 355de777a60Sab196087 /* conv_bnd_type() */ 356d29b2c44Sab196087 #define CONV_BND_TYPE_BASE_BUFSIZE 29 357de777a60Sab196087 #define CONV32_BND_TYPE_BUFSIZE \ 358d29b2c44Sab196087 (CONV_BND_TYPE_BASE_BUFSIZE + CONV32_INV_BUFSIZE) 359de777a60Sab196087 typedef union { 360de777a60Sab196087 Conv32_inv_buf_t inv_buf; 361de777a60Sab196087 char buf[CONV32_BND_TYPE_BUFSIZE]; 362de777a60Sab196087 } Conv32_bnd_type_buf_t; 363de777a60Sab196087 364de777a60Sab196087 #define CONV64_BND_TYPE_BUFSIZE \ 365d29b2c44Sab196087 (CONV_BND_TYPE_BASE_BUFSIZE + CONV64_INV_BUFSIZE) 366de777a60Sab196087 typedef union { 367de777a60Sab196087 Conv64_inv_buf_t inv_buf; 368de777a60Sab196087 char buf[CONV64_BND_TYPE_BUFSIZE]; 369de777a60Sab196087 } Conv64_bnd_type_buf_t; 370de777a60Sab196087 371de777a60Sab196087 372de777a60Sab196087 /* conv_bnd_obj() */ 373d29b2c44Sab196087 #define CONV_BND_OBJ_BASE_BUFSIZE 38 374de777a60Sab196087 #define CONV32_BND_OBJ_BUFSIZE \ 375d29b2c44Sab196087 (CONV_BND_OBJ_BASE_BUFSIZE + CONV32_INV_BUFSIZE) 376de777a60Sab196087 typedef union { 377de777a60Sab196087 Conv32_inv_buf_t inv_buf; 378de777a60Sab196087 char buf[CONV32_BND_OBJ_BUFSIZE]; 379de777a60Sab196087 } Conv32_bnd_obj_buf_t; 380de777a60Sab196087 381de777a60Sab196087 #define CONV64_BND_OBJ_BUFSIZE \ 382d29b2c44Sab196087 (CONV_BND_OBJ_BASE_BUFSIZE + CONV64_INV_BUFSIZE) 383de777a60Sab196087 typedef union { 384de777a60Sab196087 Conv64_inv_buf_t inv_buf; 385de777a60Sab196087 char buf[CONV64_BND_OBJ_BUFSIZE]; 386de777a60Sab196087 } Conv64_bnd_obj_buf_t; 387de777a60Sab196087 388de777a60Sab196087 389de777a60Sab196087 /* conv_phdr_flags() */ 390d29b2c44Sab196087 #define CONV_PHDR_FLAGS_BASE_BUFSIZE 35 391de777a60Sab196087 #define CONV32_PHDR_FLAGS_BUFSIZE \ 392d29b2c44Sab196087 (CONV_PHDR_FLAGS_BASE_BUFSIZE + CONV32_INV_BUFSIZE) 393de777a60Sab196087 typedef union { 394de777a60Sab196087 Conv32_inv_buf_t inv_buf; 395de777a60Sab196087 char buf[CONV32_PHDR_FLAGS_BUFSIZE]; 396de777a60Sab196087 } Conv32_phdr_flags_buf_t; 397de777a60Sab196087 398de777a60Sab196087 #define CONV64_PHDR_FLAGS_BUFSIZE \ 399d29b2c44Sab196087 (CONV_PHDR_FLAGS_BASE_BUFSIZE + CONV64_INV_BUFSIZE) 400de777a60Sab196087 typedef union { 401de777a60Sab196087 Conv64_inv_buf_t inv_buf; 402de777a60Sab196087 char buf[CONV64_PHDR_FLAGS_BUFSIZE]; 403de777a60Sab196087 } Conv64_phdr_flags_buf_t; 404de777a60Sab196087 405de777a60Sab196087 406de777a60Sab196087 /* conv_sec_flags() */ 407d29b2c44Sab196087 #define CONV_SEC_FLAGS_BASE_BUFSIZE 168 408de777a60Sab196087 #define CONV32_SEC_FLAGS_BUFSIZE \ 409d29b2c44Sab196087 (CONV_SEC_FLAGS_BASE_BUFSIZE + CONV32_INV_BUFSIZE) 410de777a60Sab196087 typedef union { 411de777a60Sab196087 Conv32_inv_buf_t inv_buf; 412de777a60Sab196087 char buf[CONV32_SEC_FLAGS_BUFSIZE]; 413de777a60Sab196087 } Conv32_sec_flags_buf_t; 414de777a60Sab196087 415de777a60Sab196087 #define CONV64_SEC_FLAGS_BUFSIZE \ 416d29b2c44Sab196087 (CONV_SEC_FLAGS_BASE_BUFSIZE + CONV64_INV_BUFSIZE) 417de777a60Sab196087 typedef union { 418de777a60Sab196087 Conv64_inv_buf_t inv_buf; 419de777a60Sab196087 char buf[CONV64_SEC_FLAGS_BUFSIZE]; 420de777a60Sab196087 } Conv64_sec_flags_buf_t; 421de777a60Sab196087 422de777a60Sab196087 423de777a60Sab196087 /* conv_dwarf_ehe() */ 424de777a60Sab196087 #define CONV_DWARF_EHE_BUFSIZE 33 425de777a60Sab196087 typedef union { 426de777a60Sab196087 Conv32_inv_buf_t inv_buf; 427de777a60Sab196087 char buf[CONV_DWARF_EHE_BUFSIZE]; 428de777a60Sab196087 } Conv32_dwarf_ehe_buf_t; 429de777a60Sab196087 typedef union { 430de777a60Sab196087 Conv64_inv_buf_t inv_buf; 431de777a60Sab196087 char buf[CONV_DWARF_EHE_BUFSIZE]; 432de777a60Sab196087 } Conv64_dwarf_ehe_buf_t; 433de777a60Sab196087 434de777a60Sab196087 435d29b2c44Sab196087 /* conv_syminfo_flags() */ 436d29b2c44Sab196087 #define CONV_SYMINFO_FLAGS_BASE_BUFSIZE 36 437d29b2c44Sab196087 #define CONV32_SYMINFO_FLAGS_BUFSIZE \ 438d29b2c44Sab196087 (CONV_SYMINFO_FLAGS_BASE_BUFSIZE + CONV32_INV_BUFSIZE) 439d29b2c44Sab196087 typedef union { 440d29b2c44Sab196087 Conv32_inv_buf_t inv_buf; 441d29b2c44Sab196087 char buf[CONV32_SYMINFO_FLAGS_BUFSIZE]; 442d29b2c44Sab196087 } Conv32_syminfo_flags_buf_t; 443d29b2c44Sab196087 444d29b2c44Sab196087 #define CONV64_SYMINFO_FLAGS_BUFSIZE \ 445d29b2c44Sab196087 (CONV_SYMINFO_FLAGS_BASE_BUFSIZE + CONV64_INV_BUFSIZE) 446d29b2c44Sab196087 typedef union { 447d29b2c44Sab196087 Conv64_inv_buf_t inv_buf; 448d29b2c44Sab196087 char buf[CONV64_SYMINFO_FLAGS_BUFSIZE]; 449d29b2c44Sab196087 } Conv64_syminfo_flags_buf_t; 450d29b2c44Sab196087 451d29b2c44Sab196087 452c6c9aed4Sab196087 /* conv_cnote_pr_flags() */ 453c6c9aed4Sab196087 #define CONV_CNOTE_PR_FLAGS_BUFSIZE 244 454c6c9aed4Sab196087 typedef union { 455c6c9aed4Sab196087 Conv32_inv_buf_t inv_buf; 456c6c9aed4Sab196087 char buf[CONV_CNOTE_PR_FLAGS_BUFSIZE]; 457c6c9aed4Sab196087 } Conv32_cnote_pr_flags_buf_t; 458c6c9aed4Sab196087 typedef union { 459c6c9aed4Sab196087 Conv64_inv_buf_t inv_buf; 460c6c9aed4Sab196087 char buf[CONV_CNOTE_PR_FLAGS_BUFSIZE]; 461c6c9aed4Sab196087 } Conv64_cnote_pr_flags_buf_t; 462c6c9aed4Sab196087 463c6c9aed4Sab196087 464c6c9aed4Sab196087 /* conv_cnote_old_pr_flags() */ 465c6c9aed4Sab196087 #define CONV_CNOTE_OLD_PR_FLAGS_BUFSIZE 164 466c6c9aed4Sab196087 typedef union { 467c6c9aed4Sab196087 Conv32_inv_buf_t inv_buf; 468c6c9aed4Sab196087 char buf[CONV_CNOTE_OLD_PR_FLAGS_BUFSIZE]; 469c6c9aed4Sab196087 } Conv32_cnote_old_pr_flags_buf_t; 470c6c9aed4Sab196087 typedef union { 471c6c9aed4Sab196087 Conv64_inv_buf_t inv_buf; 472c6c9aed4Sab196087 char buf[CONV_CNOTE_OLD_PR_FLAGS_BUFSIZE]; 473c6c9aed4Sab196087 } Conv64_cnote_old_pr_flags_buf_t; 474c6c9aed4Sab196087 475c6c9aed4Sab196087 476c6c9aed4Sab196087 /* conv_cnote_proc_flag() */ 477c6c9aed4Sab196087 #define CONV_CNOTE_PROC_FLAG_BUFSIZE 29 478c6c9aed4Sab196087 typedef union { 479c6c9aed4Sab196087 Conv32_inv_buf_t inv_buf; 480c6c9aed4Sab196087 char buf[CONV_CNOTE_PROC_FLAG_BUFSIZE]; 481c6c9aed4Sab196087 } Conv32_cnote_proc_flag_buf_t; 482c6c9aed4Sab196087 typedef union { 483c6c9aed4Sab196087 Conv64_inv_buf_t inv_buf; 484c6c9aed4Sab196087 char buf[CONV_CNOTE_PROC_FLAG_BUFSIZE]; 485c6c9aed4Sab196087 } Conv64_cnote_proc_flag_buf_t; 486c6c9aed4Sab196087 487c6c9aed4Sab196087 488c6c9aed4Sab196087 /* conv_cnote_sigset() */ 489c6c9aed4Sab196087 #define CONV_CNOTE_SIGSET_BUFSIZE 629 490c6c9aed4Sab196087 typedef union { 491c6c9aed4Sab196087 Conv32_inv_buf_t inv_buf; 492c6c9aed4Sab196087 char buf[CONV_CNOTE_SIGSET_BUFSIZE]; 493c6c9aed4Sab196087 } Conv32_cnote_sigset_buf_t; 494c6c9aed4Sab196087 typedef union { 495c6c9aed4Sab196087 Conv64_inv_buf_t inv_buf; 496c6c9aed4Sab196087 char buf[CONV_CNOTE_SIGSET_BUFSIZE]; 497c6c9aed4Sab196087 } Conv64_cnote_sigset_buf_t; 498c6c9aed4Sab196087 499c6c9aed4Sab196087 500c6c9aed4Sab196087 /* conv_cnote_fltset() */ 501c6c9aed4Sab196087 #define CONV_CNOTE_FLTSET_BUFSIZE 501 502c6c9aed4Sab196087 typedef union { 503c6c9aed4Sab196087 Conv32_inv_buf_t inv_buf; 504c6c9aed4Sab196087 char buf[CONV_CNOTE_FLTSET_BUFSIZE]; 505c6c9aed4Sab196087 } Conv32_cnote_fltset_buf_t; 506c6c9aed4Sab196087 typedef union { 507c6c9aed4Sab196087 Conv64_inv_buf_t inv_buf; 508c6c9aed4Sab196087 char buf[CONV_CNOTE_FLTSET_BUFSIZE]; 509c6c9aed4Sab196087 } Conv64_cnote_fltset_buf_t; 510c6c9aed4Sab196087 511c6c9aed4Sab196087 512c6c9aed4Sab196087 /* conv_cnote_sysset() */ 513c6c9aed4Sab196087 #define CONV_CNOTE_SYSSET_BUFSIZE 3212 514c6c9aed4Sab196087 typedef union { 515c6c9aed4Sab196087 Conv32_inv_buf_t inv_buf; 516c6c9aed4Sab196087 char buf[CONV_CNOTE_SYSSET_BUFSIZE]; 517c6c9aed4Sab196087 } Conv32_cnote_sysset_buf_t; 518c6c9aed4Sab196087 typedef union { 519c6c9aed4Sab196087 Conv64_inv_buf_t inv_buf; 520c6c9aed4Sab196087 char buf[CONV_CNOTE_SYSSET_BUFSIZE]; 521c6c9aed4Sab196087 } Conv64_cnote_sysset_buf_t; 522c6c9aed4Sab196087 523c6c9aed4Sab196087 524c6c9aed4Sab196087 /* conv_cnote_sa_flags() */ 525c6c9aed4Sab196087 #define CONV_CNOTE_SA_FLAGS_BUFSIZE 99 526c6c9aed4Sab196087 typedef union { 527c6c9aed4Sab196087 Conv32_inv_buf_t inv_buf; 528c6c9aed4Sab196087 char buf[CONV_CNOTE_SA_FLAGS_BUFSIZE]; 529c6c9aed4Sab196087 } Conv32_cnote_sa_flags_buf_t; 530c6c9aed4Sab196087 typedef union { 531c6c9aed4Sab196087 Conv64_inv_buf_t inv_buf; 532c6c9aed4Sab196087 char buf[CONV_CNOTE_SA_FLAGS_BUFSIZE]; 533c6c9aed4Sab196087 } Conv64_cnote_sa_flags_buf_t; 534c6c9aed4Sab196087 535c6c9aed4Sab196087 536c6c9aed4Sab196087 /* conv_cnote_ss_flags() */ 537c6c9aed4Sab196087 #define CONV_CNOTE_SS_FLAGS_BUFSIZE 38 538c6c9aed4Sab196087 typedef union { 539c6c9aed4Sab196087 Conv32_inv_buf_t inv_buf; 540c6c9aed4Sab196087 char buf[CONV_CNOTE_SS_FLAGS_BUFSIZE]; 541c6c9aed4Sab196087 } Conv32_cnote_ss_flags_buf_t; 542c6c9aed4Sab196087 typedef union { 543c6c9aed4Sab196087 Conv64_inv_buf_t inv_buf; 544c6c9aed4Sab196087 char buf[CONV_CNOTE_SS_FLAGS_BUFSIZE]; 545c6c9aed4Sab196087 } Conv64_cnote_ss_flags_buf_t; 546c6c9aed4Sab196087 547c6c9aed4Sab196087 548c6c9aed4Sab196087 /* conv_cnote_cc_content() */ 549c6c9aed4Sab196087 #define CONV_CNOTE_CC_CONTENT_BUFSIZE 87 550c6c9aed4Sab196087 typedef union { 551c6c9aed4Sab196087 Conv32_inv_buf_t inv_buf; 552c6c9aed4Sab196087 char buf[CONV_CNOTE_CC_CONTENT_BUFSIZE]; 553c6c9aed4Sab196087 } Conv32_cnote_cc_content_buf_t; 554c6c9aed4Sab196087 typedef union { 555c6c9aed4Sab196087 Conv64_inv_buf_t inv_buf; 556c6c9aed4Sab196087 char buf[CONV_CNOTE_CC_CONTENT_BUFSIZE]; 557c6c9aed4Sab196087 } Conv64_cnote_cc_content_buf_t; 558c6c9aed4Sab196087 559c6c9aed4Sab196087 560c6c9aed4Sab196087 /* conv_cnote_auxv_af() */ 561c6c9aed4Sab196087 #define CONV_CNOTE_AUXV_AF_BUFSIZE 63 562c6c9aed4Sab196087 typedef union { 563c6c9aed4Sab196087 Conv32_inv_buf_t inv_buf; 564c6c9aed4Sab196087 char buf[CONV_CNOTE_AUXV_AF_BUFSIZE]; 565c6c9aed4Sab196087 } Conv32_cnote_auxv_af_buf_t; 566c6c9aed4Sab196087 typedef union { 567c6c9aed4Sab196087 Conv64_inv_buf_t inv_buf; 568c6c9aed4Sab196087 char buf[CONV_CNOTE_AUXV_AF_BUFSIZE]; 569c6c9aed4Sab196087 } Conv64_cnote_auxv_af_buf_t; 570c6c9aed4Sab196087 571c6c9aed4Sab196087 572090a8d9eSAli Bahrami /* conv_ver_flags() */ 573090a8d9eSAli Bahrami #define CONV_VER_FLAGS_BUFSIZE 31 574090a8d9eSAli Bahrami typedef union { 575090a8d9eSAli Bahrami Conv32_inv_buf_t inv_buf; 576090a8d9eSAli Bahrami char buf[CONV_VER_FLAGS_BUFSIZE]; 577090a8d9eSAli Bahrami } Conv32_ver_flags_buf_t; 578090a8d9eSAli Bahrami typedef union { 579090a8d9eSAli Bahrami Conv64_inv_buf_t inv_buf; 580090a8d9eSAli Bahrami char buf[CONV_VER_FLAGS_BUFSIZE]; 581090a8d9eSAli Bahrami } Conv64_ver_flags_buf_t; 582090a8d9eSAli Bahrami 583090a8d9eSAli Bahrami 584de777a60Sab196087 585de777a60Sab196087 /* 586de777a60Sab196087 * Generic names for class specific buffer types above 587de777a60Sab196087 */ 588de777a60Sab196087 #if defined(_ELF64) 589de777a60Sab196087 #define CONV_INV_BUFSIZE CONV64_INV_BUFSIZE 590de777a60Sab196087 #define CONV_EHDR_FLAGS_BUFSIZE CONV64_EHDR_FLAGS_BUFSIZE 591de777a60Sab196087 #define CONV_DYN_POSFLAG1_BUFSIZE CONV64_DYN_POSFLAG1_BUFSIZE 592de777a60Sab196087 #define CONV_DYN_FLAG_BUFSIZE CONV64_DYN_FLAG_BUFSIZE 593de777a60Sab196087 #define CONV_DYN_FLAG1_BUFSIZE CONV64_DYN_FLAG1_BUFSIZE 594de777a60Sab196087 #define CONV_DYN_FEATURE1_BUFSIZE CONV64_DYN_FEATURE1_BUFSIZE 595de777a60Sab196087 #define CONV_BND_TYPE_BUFSIZE CONV64_BND_TYPE_BUFSIZE 596de777a60Sab196087 #define CONV_BND_OBJ_BUFSIZE CONV64_BND_OBJ_BUFSIZE 597de777a60Sab196087 #define CONV_PHDR_FLAGS_BUFSIZE CONV64_PHDR_FLAGS_BUFSIZE 598de777a60Sab196087 #define CONV_SEC_FLAGS_BUFSIZE CONV64_SEC_FLAGS_BUFSIZE 599d29b2c44Sab196087 #define CONV_SYMINFO_FLAGS_BUFSIZE CONV64_SYMINFO_FLAGS_BUFSIZE 600de777a60Sab196087 601de777a60Sab196087 #define Conv_inv_buf_t Conv64_inv_buf_t 602de777a60Sab196087 #define Conv_ehdr_flags_buf_t Conv64_ehdr_flags_buf_t 603de777a60Sab196087 #define Conv_reject_desc_buf_t Conv64_reject_desc_buf_t 604de777a60Sab196087 #define Conv_cap_val_hw1_buf_t Conv64_cap_val_hw1_buf_t 605de777a60Sab196087 #define Conv_cap_val_sf1_buf_t Conv64_cap_val_sf1_buf_t 606de777a60Sab196087 #define Conv_cap_val_buf_t Conv64_cap_val_buf_t 607de777a60Sab196087 #define Conv_config_feat_buf_t Conv64_config_feat_buf_t 608de777a60Sab196087 #define Conv_config_obj_buf_t Conv64_config_obj_buf_t 609de777a60Sab196087 #define Conv_dl_mode_buf_t Conv64_dl_mode_buf_t 610de777a60Sab196087 #define Conv_dl_flag_buf_t Conv64_dl_flag_buf_t 611de777a60Sab196087 #define Conv_grphdl_flags_buf_t Conv64_grphdl_flags_buf_t 612de777a60Sab196087 #define Conv_grpdesc_flags_buf_t Conv64_grpdesc_flags_buf_t 613de777a60Sab196087 #define Conv_seg_flags_buf_t Conv64_seg_flags_buf_t 614de777a60Sab196087 #define Conv_dyn_posflag1_buf_t Conv64_dyn_posflag1_buf_t 615de777a60Sab196087 #define Conv_dyn_flag_buf_t Conv64_dyn_flag_buf_t 616de777a60Sab196087 #define Conv_dyn_flag1_buf_t Conv64_dyn_flag1_buf_t 617de777a60Sab196087 #define Conv_dyn_feature1_buf_t Conv64_dyn_feature1_buf_t 618de777a60Sab196087 #define Conv_bnd_type_buf_t Conv64_bnd_type_buf_t 619de777a60Sab196087 #define Conv_bnd_obj_buf_t Conv64_bnd_obj_buf_t 620de777a60Sab196087 #define Conv_phdr_flags_buf_t Conv64_phdr_flags_buf_t 621de777a60Sab196087 #define Conv_sec_flags_buf_t Conv64_sec_flags_buf_t 622de777a60Sab196087 #define Conv_dwarf_ehe_buf_t Conv64_dwarf_ehe_buf_t 623d29b2c44Sab196087 #define Conv_syminfo_flags_buf_t Conv64_syminfo_flags_buf_t 624c6c9aed4Sab196087 #define Conv_cnote_pr_flags_buf_t Conv64_cnote_pr_flags_buf_t 625c6c9aed4Sab196087 #define Conv_cnote_old_pr_flags_buf_t Conv64_cnote_old_pr_flags_buf_t 626c6c9aed4Sab196087 #define Conv_cnote_proc_flag_buf_t Conv64_cnote_proc_flag_buf_t 627c6c9aed4Sab196087 #define Conv_cnote_sigset_buf_t Conv64_cnote_sigset_buf_t 628c6c9aed4Sab196087 #define Conv_cnote_fltset_buf_t Conv64_cnote_fltset_buf_t 629c6c9aed4Sab196087 #define Conv_cnote_sysset_buf_t Conv64_cnote_sysset_buf_t 630c6c9aed4Sab196087 #define Conv_cnote_sa_flags_buf_t Conv64_cnote_sa_flags_buf_t 631c6c9aed4Sab196087 #define Conv_cnote_ss_flags_buf_t Conv64_cnote_ss_flags_buf_t 632c6c9aed4Sab196087 #define Conv_cnote_cc_content_buf_t Conv64_cnote_cc_content_buf_t 633c6c9aed4Sab196087 #define Conv_cnote_auxv_af_buf_t Conv64_cnote_auxv_af_buf_t 634090a8d9eSAli Bahrami #define Conv_ver_flags_buf_t Conv64_ver_flags_buf_t 635de777a60Sab196087 #else 636de777a60Sab196087 #define CONV_INV_BUFSIZE CONV32_INV_BUFSIZE 637de777a60Sab196087 #define CONV_EHDR_FLAGS_BUFSIZE CONV32_EHDR_FLAGS_BUFSIZE 638de777a60Sab196087 #define CONV_DYN_POSFLAG1_BUFSIZE CONV32_DYN_POSFLAG1_BUFSIZE 639de777a60Sab196087 #define CONV_DYN_FLAG_BUFSIZE CONV32_DYN_FLAG_BUFSIZE 640de777a60Sab196087 #define CONV_DYN_FLAG1_BUFSIZE CONV32_DYN_FLAG1_BUFSIZE 641de777a60Sab196087 #define CONV_DYN_FEATURE1_BUFSIZE CONV32_DYN_FEATURE1_BUFSIZE 642de777a60Sab196087 #define CONV_BND_TYPE_BUFSIZE CONV32_BND_TYPE_BUFSIZE 643de777a60Sab196087 #define CONV_BND_OBJ_BUFSIZE CONV32_BND_OBJ_BUFSIZE 644de777a60Sab196087 #define CONV_PHDR_FLAGS_BUFSIZE CONV32_PHDR_FLAGS_BUFSIZE 645de777a60Sab196087 #define CONV_SEC_FLAGS_BUFSIZE CONV32_SEC_FLAGS_BUFSIZE 646d29b2c44Sab196087 #define CONV_SYMINFO_FLAGS_BUFSIZE CONV32_SYMINFO_FLAGS_BUFSIZE 647de777a60Sab196087 648de777a60Sab196087 #define Conv_inv_buf_t Conv32_inv_buf_t 649de777a60Sab196087 #define Conv_ehdr_flags_buf_t Conv32_ehdr_flags_buf_t 650de777a60Sab196087 #define Conv_reject_desc_buf_t Conv32_reject_desc_buf_t 651de777a60Sab196087 #define Conv_cap_val_hw1_buf_t Conv32_cap_val_hw1_buf_t 652de777a60Sab196087 #define Conv_cap_val_sf1_buf_t Conv32_cap_val_sf1_buf_t 653de777a60Sab196087 #define Conv_cap_val_buf_t Conv32_cap_val_buf_t 654de777a60Sab196087 #define Conv_config_feat_buf_t Conv32_config_feat_buf_t 655de777a60Sab196087 #define Conv_config_obj_buf_t Conv32_config_obj_buf_t 656de777a60Sab196087 #define Conv_dl_mode_buf_t Conv32_dl_mode_buf_t 657de777a60Sab196087 #define Conv_dl_flag_buf_t Conv32_dl_flag_buf_t 658de777a60Sab196087 #define Conv_grphdl_flags_buf_t Conv32_grphdl_flags_buf_t 659de777a60Sab196087 #define Conv_grpdesc_flags_buf_t Conv32_grpdesc_flags_buf_t 660de777a60Sab196087 #define Conv_seg_flags_buf_t Conv32_seg_flags_buf_t 661de777a60Sab196087 #define Conv_dyn_posflag1_buf_t Conv32_dyn_posflag1_buf_t 662de777a60Sab196087 #define Conv_dyn_flag_buf_t Conv32_dyn_flag_buf_t 663de777a60Sab196087 #define Conv_dyn_flag1_buf_t Conv32_dyn_flag1_buf_t 664de777a60Sab196087 #define Conv_dyn_feature1_buf_t Conv32_dyn_feature1_buf_t 665de777a60Sab196087 #define Conv_bnd_type_buf_t Conv32_bnd_type_buf_t 666de777a60Sab196087 #define Conv_bnd_obj_buf_t Conv32_bnd_obj_buf_t 667de777a60Sab196087 #define Conv_phdr_flags_buf_t Conv32_phdr_flags_buf_t 668de777a60Sab196087 #define Conv_sec_flags_buf_t Conv32_sec_flags_buf_t 669de777a60Sab196087 #define Conv_dwarf_ehe_buf_t Conv32_dwarf_ehe_buf_t 670d29b2c44Sab196087 #define Conv_syminfo_flags_buf_t Conv32_syminfo_flags_buf_t 671c6c9aed4Sab196087 #define Conv_cnote_pr_flags_buf_t Conv32_cnote_pr_flags_buf_t 672c6c9aed4Sab196087 #define Conv_cnote_old_pr_flags_buf_t Conv32_cnote_old_pr_flags_buf_t 673c6c9aed4Sab196087 #define Conv_cnote_proc_flag_buf_t Conv32_cnote_proc_flag_buf_t 674c6c9aed4Sab196087 #define Conv_cnote_sigset_buf_t Conv32_cnote_sigset_buf_t 675c6c9aed4Sab196087 #define Conv_cnote_fltset_buf_t Conv32_cnote_fltset_buf_t 676c6c9aed4Sab196087 #define Conv_cnote_sysset_buf_t Conv32_cnote_sysset_buf_t 677c6c9aed4Sab196087 #define Conv_cnote_sa_flags_buf_t Conv32_cnote_sa_flags_buf_t 678c6c9aed4Sab196087 #define Conv_cnote_ss_flags_buf_t Conv32_cnote_ss_flags_buf_t 679c6c9aed4Sab196087 #define Conv_cnote_cc_content_buf_t Conv32_cnote_cc_content_buf_t 680c6c9aed4Sab196087 #define Conv_cnote_auxv_af_buf_t Conv32_cnote_auxv_af_buf_t 681090a8d9eSAli Bahrami #define Conv_ver_flags_buf_t Conv32_ver_flags_buf_t 682de777a60Sab196087 #endif 683de777a60Sab196087 684de777a60Sab196087 685de777a60Sab196087 6862926dd2eSrie 6872926dd2eSrie /* 688d29b2c44Sab196087 * Many conversion routines accept a fmt_flags argument of this type 689d29b2c44Sab196087 * to allow the caller to modify the output. There are two parts to 690d29b2c44Sab196087 * this value: 691d29b2c44Sab196087 * 692d29b2c44Sab196087 * (1) Format requests (decimal vs hex, etc...) 693d29b2c44Sab196087 * (2) The low order bits specified by CONV_MASK_FMT_ALT 694d29b2c44Sab196087 * and retrieved by CONV_TYPE_FMT_ALT are integer 695d29b2c44Sab196087 * values that specify that an alternate set of 696d29b2c44Sab196087 * strings should be used. This is necessary because 697d29b2c44Sab196087 * different utilities evolved to use different strings, 698d29b2c44Sab196087 * and there are backward compatability guarantees in 699d29b2c44Sab196087 * place that prevent changing them. 700d29b2c44Sab196087 * 701d29b2c44Sab196087 * These values are designed such that a caller can always supply a 702d29b2c44Sab196087 * simple 0 in order to receive "default" behavior. 7035aefb655Srie */ 704d29b2c44Sab196087 typedef int Conv_fmt_flags_t; 705c13de8f6Sab196087 706c13de8f6Sab196087 /* 707d29b2c44Sab196087 * The bottom 8 bits of Conv_fmt_flags_t are used to encode 708d29b2c44Sab196087 * alternative strings. 709d29b2c44Sab196087 * 710d29b2c44Sab196087 * If a given conversion routine does not support alternative strings 711d29b2c44Sab196087 * for a given CONV_FMT_ALT type, it silently ignores the request and 712d29b2c44Sab196087 * supplies the default set. This means that a utility like dump(1) is 713d29b2c44Sab196087 * free to specify its special type in every conversion routine call, 714d29b2c44Sab196087 * without regard to whether it has any special meaning for that particular 715d29b2c44Sab196087 * routine. It will receive its special strings if there are any, and 716d29b2c44Sab196087 * the defaults otherwise. 717c13de8f6Sab196087 */ 718d29b2c44Sab196087 #define CONV_MASK_FMT_ALT 0xff 719d29b2c44Sab196087 #define CONV_TYPE_FMT_ALT(fmt_flags) (fmt_flags & CONV_MASK_FMT_ALT) 720d29b2c44Sab196087 721d29b2c44Sab196087 #define CONV_FMT_ALT_DEFAULT 0 /* "Standard" strings */ 722d29b2c44Sab196087 #define CONV_FMT_ALT_DUMP 1 /* Style of strings used by dump(1) */ 723d29b2c44Sab196087 #define CONV_FMT_ALT_FILE 2 /* Style of strings used by file(1) */ 724d29b2c44Sab196087 #define CONV_FMT_ALT_CRLE 3 /* Style of strings used by crle(1) */ 725d29b2c44Sab196087 #define CONV_FMT_ALT_FULLNAME 4 /* Strings should be full #define */ 726d29b2c44Sab196087 /* (e.g. STB_LOCAL, not LOCL) */ 727d29b2c44Sab196087 728d29b2c44Sab196087 /* 729d29b2c44Sab196087 * Flags that alter standard formatting for conversion routines. 730d29b2c44Sab196087 * These bits start after the range occupied by CONV_MASK_FMT_ALT. 731d29b2c44Sab196087 */ 732d29b2c44Sab196087 #define CONV_FMT_DECIMAL 0x0100 /* conv_invalid_val() should print */ 733d29b2c44Sab196087 /* integer print as decimal */ 734d29b2c44Sab196087 /* (default is hex) */ 735d29b2c44Sab196087 #define CONV_FMT_SPACE 0x0200 /* conv_invalid_val() should append */ 736d29b2c44Sab196087 /* a space after the number. */ 737d29b2c44Sab196087 #define CONV_FMT_NOBKT 0x0400 /* conv_expn_field() should omit */ 738d29b2c44Sab196087 /* prefix and suffix strings */ 739d29b2c44Sab196087 7405aefb655Srie 7415aefb655Srie /* 7425aefb655Srie * The expansion of bit-field data items is driven from a value descriptor and 7435aefb655Srie * the conv_expn_field() routine. 7445aefb655Srie */ 7455aefb655Srie typedef struct { 7465aefb655Srie Xword v_val; /* expansion value */ 7475aefb655Srie const char *v_msg; /* associated message string */ 7485aefb655Srie } Val_desc; 7495aefb655Srie 7505aefb655Srie /* 751ba4e3c84Sab196087 * conv_expn_field() is willing to supply default strings for the 752ba4e3c84Sab196087 * prefix, separator, and suffix arguments, if they are passed as NULL. 753ba4e3c84Sab196087 * The caller needs to know how much room to allow for these items. 754ba4e3c84Sab196087 * These values supply those sizes. 755ba4e3c84Sab196087 */ 756ba4e3c84Sab196087 #define CONV_EXPN_FIELD_DEF_PREFIX_SIZE 2 /* Default is "[ " */ 757ba4e3c84Sab196087 #define CONV_EXPN_FIELD_DEF_SEP_SIZE 1 /* Default is " " */ 758ba4e3c84Sab196087 #define CONV_EXPN_FIELD_DEF_SUFFIX_SIZE 2 /* Default is " ]" */ 759ba4e3c84Sab196087 760ba4e3c84Sab196087 /* 761ba4e3c84Sab196087 * conv_expn_field() requires a large number of inputs, many of which 762ba4e3c84Sab196087 * can be NULL to accept default behavior. An argument of the following 763ba4e3c84Sab196087 * type is used to supply them. 764ba4e3c84Sab196087 */ 765ba4e3c84Sab196087 typedef struct { 766ba4e3c84Sab196087 char *buf; /* Buffer to receive generated string */ 767ba4e3c84Sab196087 size_t bufsize; /* sizeof(buf) */ 768ba4e3c84Sab196087 const Val_desc *vdp; /* Array of value descriptors, giving the */ 769ba4e3c84Sab196087 /* possible bit values, and their */ 770ba4e3c84Sab196087 /* corresponding strings. Note that the */ 771ba4e3c84Sab196087 /* final element must contain only NULL */ 772ba4e3c84Sab196087 /* values. This terminates the list. */ 773ba4e3c84Sab196087 const char **lead_str; /* NULL, or array of pointers to strings to */ 774ba4e3c84Sab196087 /* be output at the head of the list. */ 775ba4e3c84Sab196087 /* Last entry must be NULL. */ 776ba4e3c84Sab196087 Xword oflags; /* Bits for which output strings are desired */ 777ba4e3c84Sab196087 Xword rflags; /* Bits for which a numeric value should be */ 778ba4e3c84Sab196087 /* output if vdp does not provide str. */ 779ba4e3c84Sab196087 /* Must be a proper subset of oflags */ 780ba4e3c84Sab196087 const char *prefix; /* NULL, or string to prefix output with */ 781ba4e3c84Sab196087 /* If NULL, "[ " is used. */ 782ba4e3c84Sab196087 const char *sep; /* NULL, or string to separate output items */ 783ba4e3c84Sab196087 /* with. If NULL, " " is used. */ 784ba4e3c84Sab196087 const char *suffix; /* NULL, or string to suffix output with */ 785ba4e3c84Sab196087 /* If NULL, " ]" is used. */ 786ba4e3c84Sab196087 } CONV_EXPN_FIELD_ARG; 787ba4e3c84Sab196087 788c6c9aed4Sab196087 789c6c9aed4Sab196087 /* 790c6c9aed4Sab196087 * Callback function for conv_str_to_c_literal(). A user supplied function 791c6c9aed4Sab196087 * of this type is called by conv_str_to_c_literal() in order to dispatch 792c6c9aed4Sab196087 * the translated output characters. 793c6c9aed4Sab196087 * 794c6c9aed4Sab196087 * buf - Pointer to output text 795c6c9aed4Sab196087 * n - # of characters to output 796c6c9aed4Sab196087 * uvalue - User value argument to conv_str_to_c_literal(), 797c6c9aed4Sab196087 * passed through without interpretation. 798c6c9aed4Sab196087 */ 799c6c9aed4Sab196087 typedef void Conv_str_to_c_literal_func_t(const void *ptr, 800c6c9aed4Sab196087 size_t size, void *uvalue); 801c6c9aed4Sab196087 802ba4e3c84Sab196087 /* 8035aefb655Srie * Define all generic interfaces. 8047c478bd9Sstevel@tonic-gate */ 8057010c12aSrie extern uchar_t conv_check_native(char **, char **); 806de777a60Sab196087 extern const char *conv_config_feat(int, Conv_config_feat_buf_t *); 807de777a60Sab196087 extern const char *conv_config_obj(ushort_t, Conv_config_obj_buf_t *); 8085aefb655Srie extern const char *conv_config_upm(const char *, const char *, 8095aefb655Srie const char *, size_t); 810c6c9aed4Sab196087 extern const char *conv_cnote_auxv_af(Word, Conv_fmt_flags_t, 811c6c9aed4Sab196087 Conv_cnote_auxv_af_buf_t *); 812c6c9aed4Sab196087 extern const char *conv_cnote_auxv_type(Word, Conv_fmt_flags_t, 813c6c9aed4Sab196087 Conv_inv_buf_t *); 814c6c9aed4Sab196087 extern const char *conv_cnote_cc_content(Lword, Conv_fmt_flags_t, 815c6c9aed4Sab196087 Conv_cnote_cc_content_buf_t *); 816c6c9aed4Sab196087 extern const char *conv_cnote_errno(int, Conv_fmt_flags_t, 817c6c9aed4Sab196087 Conv_inv_buf_t *); 818c6c9aed4Sab196087 extern const char *conv_cnote_fault(Word, Conv_fmt_flags_t, 819c6c9aed4Sab196087 Conv_inv_buf_t *); 820c6c9aed4Sab196087 extern const char *conv_cnote_fltset(uint32_t *, int, 821c6c9aed4Sab196087 Conv_fmt_flags_t, Conv_cnote_fltset_buf_t *); 822c6c9aed4Sab196087 extern const char *conv_cnote_old_pr_flags(int, Conv_fmt_flags_t, 823c6c9aed4Sab196087 Conv_cnote_old_pr_flags_buf_t *); 824c6c9aed4Sab196087 extern const char *conv_cnote_pr_dmodel(Word, Conv_fmt_flags_t, 825c6c9aed4Sab196087 Conv_inv_buf_t *); 826c6c9aed4Sab196087 extern const char *conv_cnote_pr_flags(int, Conv_fmt_flags_t, 827c6c9aed4Sab196087 Conv_cnote_pr_flags_buf_t *); 828c6c9aed4Sab196087 extern const char *conv_cnote_proc_flag(int, Conv_fmt_flags_t, 829c6c9aed4Sab196087 Conv_cnote_proc_flag_buf_t *); 830c6c9aed4Sab196087 extern const char *conv_cnote_pr_regname(Half, int, Conv_fmt_flags_t, 831c6c9aed4Sab196087 Conv_inv_buf_t *inv_buf); 832c6c9aed4Sab196087 extern const char *conv_cnote_pr_stype(Word, Conv_fmt_flags_t, 833c6c9aed4Sab196087 Conv_inv_buf_t *); 834c6c9aed4Sab196087 extern const char *conv_cnote_pr_what(short, short, Conv_fmt_flags_t, 835c6c9aed4Sab196087 Conv_inv_buf_t *); 836c6c9aed4Sab196087 extern const char *conv_cnote_pr_why(short, Conv_fmt_flags_t, 837c6c9aed4Sab196087 Conv_inv_buf_t *); 838c6c9aed4Sab196087 extern const char *conv_cnote_priv(int, Conv_fmt_flags_t, 839c6c9aed4Sab196087 Conv_inv_buf_t *); 840c6c9aed4Sab196087 extern const char *conv_cnote_psetid(int, Conv_fmt_flags_t, 841c6c9aed4Sab196087 Conv_inv_buf_t *); 842c6c9aed4Sab196087 extern const char *conv_cnote_sa_flags(int, Conv_fmt_flags_t, 843c6c9aed4Sab196087 Conv_cnote_sa_flags_buf_t *); 844c6c9aed4Sab196087 extern const char *conv_cnote_signal(Word, Conv_fmt_flags_t, 845c6c9aed4Sab196087 Conv_inv_buf_t *); 846c6c9aed4Sab196087 extern const char *conv_cnote_si_code(Half, int, int, Conv_fmt_flags_t, 847c6c9aed4Sab196087 Conv_inv_buf_t *); 848c6c9aed4Sab196087 extern const char *conv_cnote_sigset(uint32_t *, int, 849c6c9aed4Sab196087 Conv_fmt_flags_t, Conv_cnote_sigset_buf_t *); 850c6c9aed4Sab196087 extern const char *conv_cnote_ss_flags(int, Conv_fmt_flags_t, 851c6c9aed4Sab196087 Conv_cnote_ss_flags_buf_t *); 852c6c9aed4Sab196087 extern const char *conv_cnote_syscall(Word, Conv_fmt_flags_t, 853c6c9aed4Sab196087 Conv_inv_buf_t *); 854c6c9aed4Sab196087 extern const char *conv_cnote_sysset(uint32_t *, int, 855c6c9aed4Sab196087 Conv_fmt_flags_t, Conv_cnote_sysset_buf_t *); 856c6c9aed4Sab196087 extern const char *conv_cnote_type(Word, Conv_fmt_flags_t, 857c6c9aed4Sab196087 Conv_inv_buf_t *); 858de777a60Sab196087 extern const char *conv_def_tag(Symref, Conv_inv_buf_t *); 8595aefb655Srie extern const char *conv_demangle_name(const char *); 860d29b2c44Sab196087 extern const char *conv_dl_flag(int, Conv_fmt_flags_t, 861d29b2c44Sab196087 Conv_dl_flag_buf_t *); 862de777a60Sab196087 extern const char *conv_dl_mode(int, int, Conv_dl_mode_buf_t *); 863*7e16fca0SAli Bahrami extern const char *conv_dwarf_cfa(uchar_t, Conv_fmt_flags_t, 864*7e16fca0SAli Bahrami Conv_inv_buf_t *); 865de777a60Sab196087 extern const char *conv_dwarf_ehe(uint_t, Conv_dwarf_ehe_buf_t *); 866*7e16fca0SAli Bahrami extern const char *conv_dwarf_regname(Half, Word, Conv_fmt_flags_t, 867*7e16fca0SAli Bahrami int *, Conv_inv_buf_t *); 868de777a60Sab196087 extern const char *conv_elfdata_type(Elf_Type, Conv_inv_buf_t *); 869de777a60Sab196087 extern const char *conv_grphdl_flags(uint_t, Conv_grphdl_flags_buf_t *); 870de777a60Sab196087 extern const char *conv_grpdesc_flags(uint_t, Conv_grpdesc_flags_buf_t *); 8717c478bd9Sstevel@tonic-gate extern Isa_desc *conv_isalist(void); 8727c478bd9Sstevel@tonic-gate extern const char *conv_lddstub(int); 873de777a60Sab196087 extern const char *conv_seg_flags(Half, Conv_seg_flags_buf_t *); 8747c478bd9Sstevel@tonic-gate extern int conv_sys_eclass(); 875c6c9aed4Sab196087 extern void conv_str_to_c_literal(const char *buf, size_t n, 876c6c9aed4Sab196087 Conv_str_to_c_literal_func_t *cb_func, 877c6c9aed4Sab196087 void *uvalue); 8787c478bd9Sstevel@tonic-gate extern Uts_desc *conv_uts(void); 879090a8d9eSAli Bahrami extern const char *conv_ver_flags(Half, Conv_fmt_flags_t, 880090a8d9eSAli Bahrami Conv_ver_flags_buf_t *); 881de777a60Sab196087 extern const char *conv_ver_index(Versym, int, Conv_inv_buf_t *); 882de777a60Sab196087 8835aefb655Srie 8845aefb655Srie /* 8855aefb655Srie * Define all class specific routines. 8865aefb655Srie */ 8875aefb655Srie #if defined(_ELF64) 8885aefb655Srie #define conv_bnd_obj conv64_bnd_obj 8895aefb655Srie #define conv_bnd_type conv64_bnd_type 8905aefb655Srie #define conv_cap_tag conv64_cap_tag 8915aefb655Srie #define conv_cap_val conv64_cap_val 8925aefb655Srie #define conv_cap_val_hw1 conv64_cap_val_hw1 8935aefb655Srie #define conv_cap_val_sf1 conv64_cap_val_sf1 8945aefb655Srie #define conv_dyn_feature1 conv64_dyn_feature1 8955aefb655Srie #define conv_dyn_flag1 conv64_dyn_flag1 8965aefb655Srie #define conv_dyn_flag conv64_dyn_flag 8975aefb655Srie #define conv_dyn_posflag1 conv64_dyn_posflag1 8985aefb655Srie #define conv_dyn_tag conv64_dyn_tag 8995aefb655Srie #define conv_ehdr_class conv64_ehdr_class 9005aefb655Srie #define conv_ehdr_data conv64_ehdr_data 9015aefb655Srie #define conv_ehdr_flags conv64_ehdr_flags 9025aefb655Srie #define conv_ehdr_mach conv64_ehdr_mach 9033244bcaaSab196087 #define conv_ehdr_osabi conv64_ehdr_osabi 9045aefb655Srie #define conv_ehdr_type conv64_ehdr_type 9055aefb655Srie #define conv_ehdr_vers conv64_ehdr_vers 9065aefb655Srie #define conv_expn_field conv64_expn_field 9075aefb655Srie #define conv_invalid_val conv64_invalid_val 9085aefb655Srie #define conv_phdr_flags conv64_phdr_flags 9095aefb655Srie #define conv_phdr_type conv64_phdr_type 9105aefb655Srie #define conv_reject_desc conv64_reject_desc 9115aefb655Srie #define conv_reloc_type conv64_reloc_type 912de777a60Sab196087 #define conv_reloc_type_static conv64_reloc_type_static 9135aefb655Srie #define conv_reloc_386_type conv64_reloc_386_type 9145aefb655Srie #define conv_reloc_amd64_type conv64_reloc_amd64_type 9155aefb655Srie #define conv_reloc_SPARC_type conv64_reloc_SPARC_type 9165aefb655Srie #define conv_sec_flags conv64_sec_flags 9177010c12aSrie #define conv_sec_linkinfo conv64_sec_linkinfo 9185aefb655Srie #define conv_sec_type conv64_sec_type 9195aefb655Srie #define conv_sym_info_bind conv64_sym_info_bind 9205aefb655Srie #define conv_sym_info_type conv64_sym_info_type 9215aefb655Srie #define conv_sym_shndx conv64_sym_shndx 9225aefb655Srie #define conv_sym_other conv64_sym_other 923d29b2c44Sab196087 #define conv_sym_other_vis conv64_sym_other_vis 9245aefb655Srie #define conv_sym_value conv64_sym_value 9255aefb655Srie #define conv_sym_SPARC_value conv64_sym_SPARC_value 926d29b2c44Sab196087 #define conv_syminfo_flags conv64_syminfo_flags 9275aefb655Srie #else 9285aefb655Srie #define conv_bnd_obj conv32_bnd_obj 9295aefb655Srie #define conv_bnd_type conv32_bnd_type 9305aefb655Srie #define conv_cap_tag conv32_cap_tag 9315aefb655Srie #define conv_cap_val conv32_cap_val 9325aefb655Srie #define conv_cap_val_hw1 conv32_cap_val_hw1 9335aefb655Srie #define conv_cap_val_sf1 conv32_cap_val_sf1 9345aefb655Srie #define conv_dyn_feature1 conv32_dyn_feature1 9355aefb655Srie #define conv_dyn_flag1 conv32_dyn_flag1 9365aefb655Srie #define conv_dyn_flag conv32_dyn_flag 9375aefb655Srie #define conv_dyn_posflag1 conv32_dyn_posflag1 9385aefb655Srie #define conv_dyn_tag conv32_dyn_tag 9395aefb655Srie #define conv_ehdr_class conv32_ehdr_class 9405aefb655Srie #define conv_ehdr_data conv32_ehdr_data 9415aefb655Srie #define conv_ehdr_flags conv32_ehdr_flags 9425aefb655Srie #define conv_ehdr_mach conv32_ehdr_mach 9433244bcaaSab196087 #define conv_ehdr_osabi conv32_ehdr_osabi 9445aefb655Srie #define conv_ehdr_type conv32_ehdr_type 9455aefb655Srie #define conv_ehdr_vers conv32_ehdr_vers 9465aefb655Srie #define conv_expn_field conv32_expn_field 9475aefb655Srie #define conv_invalid_val conv32_invalid_val 9485aefb655Srie #define conv_phdr_flags conv32_phdr_flags 9495aefb655Srie #define conv_phdr_type conv32_phdr_type 9505aefb655Srie #define conv_reject_desc conv32_reject_desc 9515aefb655Srie #define conv_reloc_type conv32_reloc_type 952de777a60Sab196087 #define conv_reloc_type_static conv32_reloc_type_static 9535aefb655Srie #define conv_reloc_386_type conv32_reloc_386_type 9545aefb655Srie #define conv_reloc_amd64_type conv32_reloc_amd64_type 9555aefb655Srie #define conv_reloc_SPARC_type conv32_reloc_SPARC_type 9565aefb655Srie #define conv_sec_flags conv32_sec_flags 9577010c12aSrie #define conv_sec_linkinfo conv32_sec_linkinfo 9585aefb655Srie #define conv_sec_type conv32_sec_type 9595aefb655Srie #define conv_sym_info_bind conv32_sym_info_bind 9605aefb655Srie #define conv_sym_info_type conv32_sym_info_type 9615aefb655Srie #define conv_sym_shndx conv32_sym_shndx 9625aefb655Srie #define conv_sym_other conv32_sym_other 963d29b2c44Sab196087 #define conv_sym_other_vis conv32_sym_other_vis 9645aefb655Srie #define conv_sym_value conv32_sym_value 9655aefb655Srie #define conv_sym_SPARC_value conv32_sym_SPARC_value 966d29b2c44Sab196087 #define conv_syminfo_flags conv32_syminfo_flags 9675aefb655Srie #endif 9685aefb655Srie 969de777a60Sab196087 extern const char *conv_bnd_obj(uint_t, Conv_bnd_obj_buf_t *); 970de777a60Sab196087 extern const char *conv_bnd_type(uint_t, Conv_bnd_type_buf_t *); 971de777a60Sab196087 extern const char *conv_cap_tag(Xword, Conv_inv_buf_t *); 972de777a60Sab196087 extern const char *conv_cap_val(Xword, Xword, Half, Conv_cap_val_buf_t *); 973d29b2c44Sab196087 extern const char *conv_cap_val_hw1(Xword, Half, Conv_fmt_flags_t, 974de777a60Sab196087 Conv_cap_val_hw1_buf_t *); 975d29b2c44Sab196087 extern const char *conv_cap_val_sf1(Xword, Half, Conv_fmt_flags_t, 976de777a60Sab196087 Conv_cap_val_sf1_buf_t *); 977d29b2c44Sab196087 extern const char *conv_dyn_flag1(Xword, Conv_fmt_flags_t, 978d29b2c44Sab196087 Conv_dyn_flag1_buf_t *); 979d29b2c44Sab196087 extern const char *conv_dyn_flag(Xword, Conv_fmt_flags_t, 980d29b2c44Sab196087 Conv_dyn_flag_buf_t *); 981d29b2c44Sab196087 extern const char *conv_dyn_posflag1(Xword, Conv_fmt_flags_t, 982de777a60Sab196087 Conv_dyn_posflag1_buf_t *); 983d29b2c44Sab196087 extern const char *conv_dyn_tag(Xword, Half, Conv_fmt_flags_t, 984d29b2c44Sab196087 Conv_inv_buf_t *); 985d29b2c44Sab196087 extern const char *conv_dyn_feature1(Xword, Conv_fmt_flags_t, 986de777a60Sab196087 Conv_dyn_feature1_buf_t *); 987d29b2c44Sab196087 extern const char *conv_ehdr_class(uchar_t, Conv_fmt_flags_t, 988d29b2c44Sab196087 Conv_inv_buf_t *); 989d29b2c44Sab196087 extern const char *conv_ehdr_data(uchar_t, Conv_fmt_flags_t, 990d29b2c44Sab196087 Conv_inv_buf_t *); 991d29b2c44Sab196087 extern const char *conv_ehdr_flags(Half, Word, Conv_fmt_flags_t, 992d29b2c44Sab196087 Conv_ehdr_flags_buf_t *); 993d29b2c44Sab196087 extern const char *conv_ehdr_mach(Half, Conv_fmt_flags_t, 994d29b2c44Sab196087 Conv_inv_buf_t *); 995d29b2c44Sab196087 extern const char *conv_ehdr_osabi(uchar_t, Conv_fmt_flags_t, 996d29b2c44Sab196087 Conv_inv_buf_t *); 997d29b2c44Sab196087 extern const char *conv_ehdr_type(Half, Conv_fmt_flags_t, 998d29b2c44Sab196087 Conv_inv_buf_t *); 999d29b2c44Sab196087 extern const char *conv_ehdr_vers(Word, Conv_fmt_flags_t, 1000d29b2c44Sab196087 Conv_inv_buf_t *); 1001d29b2c44Sab196087 extern int conv_expn_field(CONV_EXPN_FIELD_ARG *, 1002d29b2c44Sab196087 Conv_fmt_flags_t); 1003d29b2c44Sab196087 extern const char *conv_invalid_val(Conv_inv_buf_t *, Xword, 1004d29b2c44Sab196087 Conv_fmt_flags_t); 1005d29b2c44Sab196087 extern const char *conv_phdr_flags(Word, Conv_fmt_flags_t fmt_flags, 1006d29b2c44Sab196087 Conv_phdr_flags_buf_t *); 1007d29b2c44Sab196087 extern const char *conv_phdr_type(Half, Word, Conv_fmt_flags_t, 1008d29b2c44Sab196087 Conv_inv_buf_t *); 1009ba2be530Sab196087 extern const char *conv_reject_desc(Rej_desc *, Conv_reject_desc_buf_t *, 1010ba2be530Sab196087 Half mach); 1011d29b2c44Sab196087 extern const char *conv_reloc_type(Half, Word, Conv_fmt_flags_t, 1012d29b2c44Sab196087 Conv_inv_buf_t *); 1013d29b2c44Sab196087 extern const char *conv_reloc_type_static(Half, Word, Conv_fmt_flags_t); 1014d29b2c44Sab196087 extern const char *conv_reloc_386_type(Word, Conv_fmt_flags_t, 1015d29b2c44Sab196087 Conv_inv_buf_t *); 1016d29b2c44Sab196087 extern const char *conv_reloc_amd64_type(Word, Conv_fmt_flags_t, 1017d29b2c44Sab196087 Conv_inv_buf_t *); 1018d29b2c44Sab196087 extern const char *conv_reloc_SPARC_type(Word, Conv_fmt_flags_t, 1019d29b2c44Sab196087 Conv_inv_buf_t *); 1020d29b2c44Sab196087 extern const char *conv_sec_flags(Xword, Conv_fmt_flags_t, 1021d29b2c44Sab196087 Conv_sec_flags_buf_t *); 1022de777a60Sab196087 extern const char *conv_sec_linkinfo(Word, Xword, Conv_inv_buf_t *); 1023d29b2c44Sab196087 extern const char *conv_sec_type(Half, Word, Conv_fmt_flags_t, 1024d29b2c44Sab196087 Conv_inv_buf_t *); 1025d29b2c44Sab196087 extern const char *conv_sym_info_bind(uchar_t, Conv_fmt_flags_t, 1026d29b2c44Sab196087 Conv_inv_buf_t *); 1027d29b2c44Sab196087 extern const char *conv_sym_info_type(Half, uchar_t, Conv_fmt_flags_t, 1028de777a60Sab196087 Conv_inv_buf_t *); 1029de777a60Sab196087 extern const char *conv_sym_shndx(Half, Conv_inv_buf_t *); 1030de777a60Sab196087 extern const char *conv_sym_other(uchar_t, Conv_inv_buf_t *); 1031d29b2c44Sab196087 extern const char *conv_sym_other_vis(uchar_t, Conv_fmt_flags_t, 1032d29b2c44Sab196087 Conv_inv_buf_t *); 1033de777a60Sab196087 extern const char *conv_sym_value(Half, uchar_t, Addr, Conv_inv_buf_t *); 1034d29b2c44Sab196087 extern const char *conv_sym_SPARC_value(Addr, Conv_fmt_flags_t, 1035d29b2c44Sab196087 Conv_inv_buf_t *); 1036c6c9aed4Sab196087 extern const char *conv_syminfo_flags(Xword, Conv_fmt_flags_t, 1037c6c9aed4Sab196087 Conv_syminfo_flags_buf_t *); 10387c478bd9Sstevel@tonic-gate 10397c478bd9Sstevel@tonic-gate #ifdef __cplusplus 10407c478bd9Sstevel@tonic-gate } 10417c478bd9Sstevel@tonic-gate #endif 10427c478bd9Sstevel@tonic-gate 10437c478bd9Sstevel@tonic-gate #endif /* _CONV_H */ 1044