15088Sab196087# 25088Sab196087# CDDL HEADER START 35088Sab196087# 45088Sab196087# The contents of this file are subject to the terms of the 55088Sab196087# Common Development and Distribution License (the "License"). 65088Sab196087# You may not use this file except in compliance with the License. 75088Sab196087# 85088Sab196087# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 95088Sab196087# or http://www.opensolaris.org/os/licensing. 105088Sab196087# See the License for the specific language governing permissions 115088Sab196087# and limitations under the License. 125088Sab196087# 135088Sab196087# When distributing Covered Code, include this CDDL HEADER in each 145088Sab196087# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 155088Sab196087# If applicable, add the following below this CDDL HEADER, with the 165088Sab196087# fields enclosed by brackets "[]" replaced with your own identifying 175088Sab196087# information: Portions Copyright [yyyy] [name of copyright owner] 185088Sab196087# 195088Sab196087# CDDL HEADER END 205088Sab196087# 215088Sab196087 225088Sab196087# 23*9273SAli.Bahrami@Sun.COM# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 245088Sab196087# Use is subject to license terms. 255088Sab196087# 265088Sab196087 275088Sab196087@ _START_ 285088Sab196087 295088Sab196087# Message file for elfedit 'ehdr' module 305088Sab196087 315088Sab196087@ MSG_ID_ELFEDIT_EHDR 325088Sab196087 335088Sab196087 345088Sab196087# Debug messages 355088Sab196087@ MSG_DEBUG_E_S_OK "ehdr.%s: value unchanged: %s\n" 365088Sab196087@ MSG_DEBUG_E_S_CHG "ehdr.%s: change from %s to %s\n" 375088Sab196087@ MSG_DEBUG_E_D_OK "ehdr.%s: value unchanged: %d\n" 385088Sab196087@ MSG_DEBUG_E_D_CHG "ehdr.%s: change from %d to %d\n" 395088Sab196087@ MSG_DEBUG_E_LLX_OK "ehdr.%s: value unchanged: %#llx\n" 405088Sab196087@ MSG_DEBUG_E_LLX_CHG "ehdr.%s: change from %#llx to %#llx\n" 415088Sab196087@ MSG_DEBUG_EI_S_S_OK "ehdr.e_ident[%s]: value unchanged: %s\n"; 425088Sab196087@ MSG_DEBUG_EI_S_S_CHG "ehdr.e_ident[%s]: change from %s to %s\n" 435088Sab196087@ MSG_DEBUG_EI_D_X_OK "ehdr.e_ident[%d]: value unchanged: %#x\n" 445088Sab196087@ MSG_DEBUG_EI_D_X_CHG "ehdr.e_ident[%d]: change from %#x to %#x\n" 455088Sab196087@ MSG_DEBUG_SHDR0_D_OK "shdr[0].%s: value unchanged: %d\n" 465088Sab196087@ MSG_DEBUG_SHDR0_D_CHG "shdr[0].%s: change from %d to %d\n" 475088Sab196087@ MSG_DEBUG_NOTSTRTAB "ehdr.%s: ELF warning: section is not a \ 485088Sab196087 string table: %d\n" 495088Sab196087 505088Sab196087 515088Sab196087# Module description 525088Sab196087 535088Sab196087@ MSG_MOD_DESC "ELF Header" 545088Sab196087 555088Sab196087 565088Sab196087# 1-line description strings 575088Sab196087 585088Sab196087@ MSG_DESC_DUMP "Dump ELF Header" 595088Sab196087@ MSG_DESC_E_IDENT "ELF Identification" 605088Sab196087@ MSG_DESC_E_TYPE "Object File Type" 615088Sab196087@ MSG_DESC_E_MACHINE "Machine Architecture" 625088Sab196087@ MSG_DESC_E_VERSION "Object File Version" 635088Sab196087@ MSG_DESC_E_ENTRY "Starting Virtual Address" 645088Sab196087@ MSG_DESC_E_PHOFF "Program Header Table File Offset" 655088Sab196087@ MSG_DESC_E_SHOFF "Section Header Table File Offset" 665088Sab196087@ MSG_DESC_E_FLAGS "Processor-Specific Flags" 675088Sab196087@ MSG_DESC_E_EHSIZE "ELF Header's Size" 685088Sab196087@ MSG_DESC_E_PHENTSIZE "Program Header Table Entry Size" 695088Sab196087@ MSG_DESC_E_PHNUM "Number Program Header Entries" 705088Sab196087@ MSG_DESC_E_SHENTSIZE "Section Header Table Entry Size" 715088Sab196087@ MSG_DESC_E_SHNUM "Number Section Header Entries" 725088Sab196087@ MSG_DESC_E_SHSTRNDX "Section Name String Table Index" 735088Sab196087 745088Sab196087@ MSG_DESC_EI_MAG0 "File Identification Byte #1" 755088Sab196087@ MSG_DESC_EI_MAG1 "File Identification Byte #2" 765088Sab196087@ MSG_DESC_EI_MAG2 "File Identification Byte #3" 775088Sab196087@ MSG_DESC_EI_MAG3 "File Identification Byte #4" 785088Sab196087@ MSG_DESC_EI_CLASS "File Class (System Word Size)" 795088Sab196087@ MSG_DESC_EI_DATA "Data Encoding (Byte Order)" 805088Sab196087@ MSG_DESC_EI_VERSION "File Version" 815088Sab196087@ MSG_DESC_EI_OSABI "Operating System / ABI Identification" 825088Sab196087@ MSG_DESC_EI_ABIVERSION "ABI version" 835088Sab196087 845088Sab196087# Command option description strings 855088Sab196087 865088Sab196087@ MSG_OPTDESC_SHNDX "\ 875088Sab196087 Interpret the sec argument as a section index rather than\n\ 885088Sab196087 as a section name. section can be one of the well known SHN_\n\ 895088Sab196087 symbolic constants, or any integer.\n" 905088Sab196087 915088Sab196087@ MSG_OPTDESC_SHTYP "\ 925088Sab196087 Interpret the sec argument as a section type rather than\n\ 935088Sab196087 as a section name. section can be one of the well known SHT_\n\ 945088Sab196087 symbolic constants, or any integer.\n" 955088Sab196087 965088Sab196087# Command argument description strings 975088Sab196087 985088Sab196087@ MSG_ARGDESC_E_IDENT_NDX "\ 995088Sab196087 Index of element of e_ident[] array. This can be\n\ 1005088Sab196087 an integer value, or any of the EI_ symbolic constants\n\ 1015088Sab196087 defined in /usr/include/sys/elf.h.\n" 1025088Sab196087 1035088Sab196087@ MSG_ARGDESC_E_IDENT_VALUE "\ 1045088Sab196087 New value for element of e_ident[] array. This can be\n\ 1055088Sab196087 an integer value, or any symbolic constants defined in\n\ 1065088Sab196087 /usr/include/sys/elf.h that apply to the selected item.\n" 1075088Sab196087 1085088Sab196087@ MSG_ARGDESC_E_TYPE_VALUE "\ 1095088Sab196087 New value for type of the ELF object. This can be\n\ 1105088Sab196087 an integer value, or any of the ET_ symbolic constants\n\ 1115088Sab196087 defined in /usr/include/sys/elf.h.\n" 1125088Sab196087 1135088Sab196087@ MSG_ARGDESC_E_MACHINE_VALUE "\ 1145088Sab196087 New value for architecture of the ELF object. This can be\n\ 1155088Sab196087 an integer value, or any of the EM_ symbolic constants\n\ 1165088Sab196087 defined in /usr/include/sys/elf.h.\n" 1175088Sab196087 1185088Sab196087@ MSG_ARGDESC_E_VERSION_VALUE "\ 1195088Sab196087 New value for version of the ELF object. This can be\n\ 1205088Sab196087 an integer value, or any of the EV_ symbolic constants\n\ 1215088Sab196087 defined in /usr/include/sys/elf.h.\n" 1225088Sab196087 1235088Sab196087@ MSG_ARGDESC_E_ENTRY_VALUE "\ 1245088Sab196087 New value for virtual address to which the system first transfers control.\n" 1255088Sab196087 1265088Sab196087@ MSG_ARGDESC_E_PHOFF_VALUE "\ 1275088Sab196087 New value for program header table's file offset.\n" 1285088Sab196087 1295088Sab196087@ MSG_ARGDESC_E_SHOFF_VALUE "\ 1305088Sab196087 New value for section header table's file offset.\n" 1315088Sab196087 1325088Sab196087@ MSG_ARGDESC_E_FLAGS_VALUE "\ 1335088Sab196087 New value for processor-specific flags. This can be an integer\n\ 1345088Sab196087 value, or any of the EF_ symbolic constants defined in the\n\ 1355088Sab196087 system header files\n" 1365088Sab196087 1375088Sab196087@ MSG_ARGDESC_E_EHSIZE_VALUE "\ 1385088Sab196087 New value for size of ELF header, in bytes.\n" 1395088Sab196087 1405088Sab196087@ MSG_ARGDESC_E_PHENTSIZE_VALUE "\ 1415088Sab196087 New value for size of one entry in the file's program header table,\n\ 1425088Sab196087 in bytes.\n" 1435088Sab196087 1445088Sab196087@ MSG_ARGDESC_E_PHNUM_VALUE "\ 1455088Sab196087 New value for number of entries in the program header table.\n" 1465088Sab196087 1475088Sab196087@ MSG_ARGDESC_E_SHENTSIZE_VALUE "\ 1485088Sab196087 New value for size of one entry in the file's section header table,\n\ 1495088Sab196087 in bytes.\n" 1505088Sab196087 1515088Sab196087@ MSG_ARGDESC_E_SHNUM_VALUE "\ 1525088Sab196087 New value for number of entries in the section header table.\n" 1535088Sab196087 1545088Sab196087@ MSG_ARGDESC_E_SHSTRNDX_SEC "\ 1555088Sab196087 String table section containing section name strings.\n\ 1565088Sab196087 By default, this argument is interpreted as the name\n\ 1575088Sab196087 of the desired section. The section index of the first\n\ 1585088Sab196087 section with the specified name is used.\n\ 1595088Sab196087 \n\ 1605088Sab196087 If -shndx is set, then sec is a section index, and is\n\ 1615088Sab196087 interpreted as an integer, or one of the well known SHN_\n\ 1625088Sab196087 symbolic constant names.\n\ 1635088Sab196087 \n\ 1645088Sab196087 If -shtyp is set, then sec is a section type, and is\n\ 1655088Sab196087 interpreted as an integer, or one of the well known SHT_\n\ 1665088Sab196087 symbolic constant names. The section index of the first\n\ 1675088Sab196087 section with the specified type is used.\n" 1685088Sab196087 1695088Sab196087@ MSG_ARGDESC_EI_MAG0_VALUE "\ 1705088Sab196087 New value for first byte of file magic number.\n" 1715088Sab196087 1725088Sab196087@ MSG_ARGDESC_EI_MAG1_VALUE "\ 1735088Sab196087 New value for second byte of file magic number.\n" 1745088Sab196087 1755088Sab196087@ MSG_ARGDESC_EI_MAG2_VALUE "\ 1765088Sab196087 New value for third byte of file magic number.\n" 1775088Sab196087 1785088Sab196087@ MSG_ARGDESC_EI_MAG3_VALUE "\ 1795088Sab196087 New value for fourth byte of file magic number.\n" 1805088Sab196087 1815088Sab196087@ MSG_ARGDESC_EI_CLASS_VALUE "\ 1825088Sab196087 New value for file's class. This can be an integer value, or any of\n\ 1835088Sab196087 the ELFCLASS symbolic constants defined in /usr/include/sys/elf.h.\n" 1845088Sab196087 1855088Sab196087@ MSG_ARGDESC_EI_DATA_VALUE "\ 1865088Sab196087 New value for file's data encoding. This can be an integer\n\ 1875088Sab196087 value, or any ELFDATA symbolic constants defined in\n\ 1885088Sab196087 /usr/include/sys/elf.h.\n" 1895088Sab196087 1905088Sab196087# Note: EI_VERSION uses the same string as E_VERSION, above 1915088Sab196087 1925088Sab196087@ MSG_ARGDESC_EI_OSABI_VALUE "\ 1935088Sab196087 New value for ABI identification of the ELF object. This can be\n\ 1945088Sab196087 an integer value, or any of the ELFOSABI_ symbolic constants\n\ 1955088Sab196087 defined in /usr/include/sys/elf.h.\n" 1965088Sab196087 1975088Sab196087@ MSG_ARGDESC_EI_ABIVERSION_VALUE "\ 1985088Sab196087 New value for version of the ABI to which the object is targeted.\n" 1995088Sab196087 2005088Sab196087 2015088Sab196087# Help strings 2025088Sab196087 2035088Sab196087@ MSG_HELP_DUMP " \ 2045088Sab196087 The ehdr:dump command is used to display the contents of\n\ 2055088Sab196087 the ELF header using the same style used by the elfdump program.\n" 2065088Sab196087 2075088Sab196087@ MSG_HELP_E_IDENT " \ 2085088Sab196087 Examine or modify ELF Identification information for the\n\ 2095088Sab196087 object. This information is found in the e_ident array in\n\ 2105088Sab196087 the ELF header.\n\ 2115088Sab196087 \n\ 2125088Sab196087 If ehdr:e_ident is called without any argument, all values\n\ 2135088Sab196087 the value in e_ident are shown. If called with the index\n\ 2145088Sab196087 argument, the selected element of e_ident is shown. If also\n\ 2155088Sab196087 called with the value argument, the selected e_ident element\n\ 2165088Sab196087 is updated with the new value.\n" 2175088Sab196087 2185088Sab196087 2195088Sab196087@ MSG_HELP_E_TYPE " \ 2205088Sab196087 Examine or modify the object file type. This information is\n\ 2215088Sab196087 found in the e_type field of the ELF header.\n\ 2225088Sab196087 \n\ 2235088Sab196087 If ehdr:e_type is called without an argument, the value of\n\ 2245088Sab196087 e_type is shown. If called with the value argument, the\n\ 2255088Sab196087 e_type field is updated with the new value.\n\ 2265088Sab196087 \n\ 2275088Sab196087 Note: Changing the type code of an object does not change the\n\ 2285088Sab196087 other contents of the file, and is unlikely to produce a usable\n\ 2295088Sab196087 ELF object.\n" 2305088Sab196087 2315088Sab196087 2325088Sab196087@ MSG_HELP_E_MACHINE " \ 2335088Sab196087 Examine or modify the required architecture of the object.\n\ 2345088Sab196087 This information is found in the e_machine field of the\n\ 2355088Sab196087 ELF header.\n\ 2365088Sab196087 \n\ 2375088Sab196087 If ehdr:e_machine is called without an argument, the value of\n\ 2385088Sab196087 e_machine is shown. If called with the value argument, the\n\ 2395088Sab196087 e_machine field is updated with the new value.\n\ 2405088Sab196087 \n\ 2415088Sab196087 Note: Changing the architecture code of an object does not change the\n\ 2425088Sab196087 other contents of the file, and is unlikely to produce a usable\n\ 2435088Sab196087 ELF object.\n" 2445088Sab196087 2455088Sab196087 2465088Sab196087@ MSG_HELP_E_VERSION " \ 2475088Sab196087 Examine or modify the object file version. This information\n\ 2485088Sab196087 is found in the e_version field of the ELF header.\n\ 2495088Sab196087 \n\ 2505088Sab196087 If ehdr:e_version is called without an argument, the value of\n\ 2515088Sab196087 e_version is shown. If called with the value argument, the\n\ 2525088Sab196087 e_version field is updated with the new value.\n\ 2535088Sab196087 \n\ 2545088Sab196087 Note: The e_ident[EI_VERSION] element of the ELF header\n\ 2555088Sab196087 identification array also contains a version value. These\n\ 2565088Sab196087 two fields should be set to the same value. Use the\n\ 2575088Sab196087 ehdr:ei_version command to change that element.\n" 2585088Sab196087 2595088Sab196087 2605088Sab196087@ MSG_HELP_E_ENTRY " \ 2615088Sab196087 Examine or modify the virtual address to which the system\n\ 2625088Sab196087 first transfers control, thus starting the process. This\n\ 2635088Sab196087 information is found in the e_entry field of the ELF header.\n\ 2645088Sab196087 If the file has no associated entry point, this member\n\ 2655088Sab196087 holds zero.\n\ 2665088Sab196087 \n\ 2675088Sab196087 If ehdr:e_entry is called without an argument, the value of\n\ 2685088Sab196087 e_entry is shown. If called with the value argument, the\n\ 2695088Sab196087 e_entry field is updated with the new value.\n\ 2705088Sab196087 \n\ 2715088Sab196087 Note: The entry point of an object is highly system\n\ 2725088Sab196087 dependent. Changing it is likely to produce an object that\n\ 2735088Sab196087 does not run properly.\n" 2745088Sab196087 2755088Sab196087 2765088Sab196087@ MSG_HELP_E_PHOFF " \ 2775088Sab196087 Examine or modify the program header table's file offset.\n\ 2785088Sab196087 This information is found in the e_phoff field of the\n\ 2795088Sab196087 ELF header. If the file has no program header table, this\n\ 2805088Sab196087 member holds zero.\n\ 2815088Sab196087 \n\ 2825088Sab196087 If ehdr:e_phoff is called without an argument, the value of\n\ 2835088Sab196087 e_phoff is shown. If called with the value argument, the\n\ 2845088Sab196087 e_phoff field is updated with the new value.\n\ 2855088Sab196087 \n\ 2865088Sab196087 Note: Changing the e_phoff field of an object does not change\n\ 2875088Sab196087 the actual layout of the file or move the program header table.\n\ 2885088Sab196087 As such, changing this value is likely to produce an unusable\n\ 2895088Sab196087 ELF object.\n" 2905088Sab196087 2915088Sab196087 2925088Sab196087@ MSG_HELP_E_SHOFF " \ 2935088Sab196087 Examine or modify the section header table's file offset.\n\ 2945088Sab196087 This information is found in the e_shoff field of the\n\ 2955088Sab196087 ELF header. If the file has no section header table, this\n\ 2965088Sab196087 member holds zero.\n\ 2975088Sab196087 \n\ 2985088Sab196087 If ehdr:e_shoff is called without an argument, the value of\n\ 2995088Sab196087 e_shoff is shown. If called with the value argument, the\n\ 3005088Sab196087 e_shoff field is updated with the new value.\n\ 3015088Sab196087 \n\ 3025088Sab196087 Note: Changing the e_shoff field of an object does not change\n\ 3035088Sab196087 the actual layout of the file or move the section header table.\n\ 3045088Sab196087 As such, changing this value is likely to produce an unusable\n\ 3055088Sab196087 ELF object.\n" 3065088Sab196087 3075088Sab196087 3085088Sab196087@ MSG_HELP_E_FLAGS " \ 3095088Sab196087 Examine or modify the processor specific flags associated\n\ 3105088Sab196087 with the file. This information is found in the e_flags\n\ 3115088Sab196087 field of the ELF header.\n\ 3125088Sab196087 \n\ 3135088Sab196087 If ehdr:e_flags is called without an argument, the value of\n\ 3145088Sab196087 e_flags is shown. If called with one or more flag_value\n\ 3155088Sab196087 arguments, the the following steps are taken:\n\ 3165088Sab196087 \n \ 3175088Sab196087 o\tAll the flag_value arguments are OR'd together.\n\ 3185088Sab196087 \n \ 3195088Sab196087 o\tIf the -cmp option has been specified, the new value\n\ 3205088Sab196087 \tis complemented.\n\ 3215088Sab196087 \n \ 3225088Sab196087 o\tThe e_flags field of the ELF header is updated with\n\ 3235088Sab196087 \tthe new value. If -and is specified, the new value is\n\ 3245088Sab196087 \tAND'd against the existing value. If -or is specified,\n\ 3255088Sab196087 \tthe new value is OR'd against the existing value. If\n\ 3265088Sab196087 \tneither -and or -or are specified, the new value replaces\n\ 3275088Sab196087 \tthe existing value.\n\ 3285088Sab196087 \n\ 3295088Sab196087 Note: Changing the e_flags field of an object does not change\n\ 3305088Sab196087 the code contained in the file. Setting a flag that implies\n\ 3315088Sab196087 an ability the existing code cannot support will produce an\n\ 3325088Sab196087 unusable ELF object.\n" 3335088Sab196087 3345088Sab196087 3355088Sab196087@ MSG_HELP_E_EHSIZE " \ 3365088Sab196087 Examine or modify the size of the ELF header. This information\n\ 3375088Sab196087 is found in the e_ehsize field of the ELF header.\n\ 3385088Sab196087 \n\ 3395088Sab196087 If ehdr:e_ehsize is called without an argument, the value of\n\ 3405088Sab196087 e_ehsize is shown. If called with the value argument, the\n\ 3415088Sab196087 e_ehsize field is updated with the new value.\n\ 3425088Sab196087 \n\ 3435088Sab196087 Note: Changing the e_ehsize field of the ELF header does not\n\ 3445088Sab196087 change the size of the actual ELF header data structure. Setting\n\ 3455088Sab196087 it to a different value is likely to produce an unusable ELF object.\n" 3465088Sab196087 3475088Sab196087 3485088Sab196087@ MSG_HELP_E_PHENTSIZE " \ 3495088Sab196087 Examine or modify the size of one entry in the file's program\n\ 3505088Sab196087 header table. This information is found in the e_phentsize\n\ 3515088Sab196087 field of the ELF header.\n\ 3525088Sab196087 \n\ 3535088Sab196087 If ehdr:e_phentsize is called without an argument, the value of\n\ 3545088Sab196087 e_phentsize is shown. If called with the value argument, the\n\ 3555088Sab196087 e_phentsize field is updated with the new value.\n\ 3565088Sab196087 \n\ 3575088Sab196087 Note: Changing the e_phentsize field of the ELF header does\n\ 3585088Sab196087 not change the size of the actual program header array elements.\n\ 3595088Sab196087 Setting it to a different value is likely to produce an unusable\n\ 3605088Sab196087 ELF object.\n" 3615088Sab196087 3625088Sab196087 3635088Sab196087@ MSG_HELP_E_PHNUM " \ 3645088Sab196087 Examine or modify the number of entries in the program header\n\ 3655088Sab196087 table. This information is found in the e_phnum field of the\n\ 3665088Sab196087 ELF header, or in the sh_link field of the first section header\n\ 3675088Sab196087 in the case of extended program indexes.\n\ 3685088Sab196087 \n\ 3695088Sab196087 If the number of program headers is greater than or equal\n\ 3705088Sab196087 to PN_XNUM (0xffff), e_phnum has the value PN_XNUM, and the\n\ 3715088Sab196087 actual number of program header table entries is contained\n\ 3725088Sab196087 in the sh_info field of the section header at index 0.\n\ 3735088Sab196087 \n\ 3745088Sab196087 If ehdr:e_phnum is called without an argument, the number\n\ 3755088Sab196087 of program headers is shown. If called with the value argument,\n\ 3765088Sab196087 the number is updated with the new value.\n\ 3775088Sab196087 \n\ 3785088Sab196087 Note: Changing e_phnum and/or the sh_link field of the first\n\ 3795088Sab196087 section header does not change the size of the actual program\n\ 3805088Sab196087 header array in the file.\n" 3815088Sab196087 3825088Sab196087 3835088Sab196087@ MSG_HELP_E_SHENTSIZE " \ 3845088Sab196087 Examine or modify the size of one entry in the file's section\n\ 3855088Sab196087 header table. This information is found in the e_shentsize\n\ 3865088Sab196087 field of the ELF header.\n\ 3875088Sab196087 \n\ 3885088Sab196087 If ehdr:e_shentsize is called without an argument, the value of\n\ 3895088Sab196087 e_shentsize is shown. If called with the value argument, the\n\ 3905088Sab196087 e_shentsize field is updated with the new value.\n\ 3915088Sab196087 \n\ 3925088Sab196087 Note: Changing the e_shentsize field of the ELF header does\n\ 3935088Sab196087 not change the size of the actual section header array elements.\n\ 3945088Sab196087 Setting it to a different value is likely to produce an unusable\n\ 3955088Sab196087 ELF object.\n" 3965088Sab196087 3975088Sab196087 3985088Sab196087@ MSG_HELP_E_SHNUM " \ 3995088Sab196087 Examine or modify the number of entries in the section header\n\ 4005088Sab196087 table. This information is found in the e_shnum field of the\n\ 4015088Sab196087 ELF header, or in the sh_size field of the first section header\n\ 4025088Sab196087 in the case of extended section indexes.\n\ 4035088Sab196087 \n\ 4045088Sab196087 If the number of sections is greater than or equal to\n\ 4055088Sab196087 SHN_LORESERVE (0xff00), e_shnum has the value zero, and\n\ 4065088Sab196087 the actual number of section header table entries is\n\ 4075088Sab196087 contained in the sh_size field of the section header\n\ 4085088Sab196087 at index 0.\n\ 4095088Sab196087 \n\ 4105088Sab196087 If ehdr:e_shnum is called without an argument, the number of\n\ 4115088Sab196087 sections is shown. If called with the value argument, the\n\ 4125088Sab196087 number of sections is updated with the new value.\n\ 4135088Sab196087 \n\ 4145088Sab196087 Note: Changing e_shnum and/or the sh_size field of the first\n\ 4155088Sab196087 section header does not change the size of the actual section\n\ 4165088Sab196087 header array in the file.\n" 4175088Sab196087 4185088Sab196087 4195088Sab196087@ MSG_HELP_E_SHSTRNDX " \ 4205088Sab196087 Examine or modify the section table index of the entry that is\n\ 4215088Sab196087 associated with the section name string table. This information\n\ 4225088Sab196087 is found in the e_shstrndx field of the ELF header, or in the\n\ 4235088Sab196087 sh_link field of the first section header in the case of\n\ 4245088Sab196087 extended section indexes. If the file has no section name\n\ 4255088Sab196087 string table, this member holds the value SHN_UNDEF.\n\ 4265088Sab196087 \n\ 4275088Sab196087 If the section name string table section index is greater\n\ 4285088Sab196087 than or equal to SHN_LORESERVE (0xff00), e_shstrndx has the\n\ 4295088Sab196087 value SHN_XINDEX (0xffff) and the actual index of the section\n\ 4305088Sab196087 name string table section is contained in the sh_link field of\n\ 4315088Sab196087 the section header at index 0.\n\ 4325088Sab196087 \n\ 4335088Sab196087 If ehdr:e_shstrndx is called without an argument, the index of\n\ 4345088Sab196087 the section name string table is shown. If called with the value\n\ 4355088Sab196087 argument, the ELF header is updated with the new value.\n\ 4365088Sab196087 \n\ 4375088Sab196087 Note: The e_shstrndx field of the ELF header must reference\n\ 4385088Sab196087 a string table section. Otherwise, diagnostic tools will be\n\ 4395088Sab196087 confused by the resulting object.\n" 4405088Sab196087 4415088Sab196087 4425088Sab196087@ MSG_HELP_EI_MAG0 " \ 4435088Sab196087 Examine or modify the first byte of the object's \"magic number\".\n\ 4445088Sab196087 The magic number is the first 4 bytes of the object file, and is\n\ 4455088Sab196087 used to identify it as being an ELF object. This information\n\ 4465088Sab196087 is found in the e_ident[EI_MAG0] field of the ELF header.\n\ 4475088Sab196087 \n\ 4485088Sab196087 If ehdr:ei_mag0 is called without an argument, the value of\n\ 4495088Sab196087 e_ident[EI_MAG0] is shown. If called with the value argument,\n\ 4505088Sab196087 the e_ident[EI_MAG0] field is updated with the new value.\n\ 4515088Sab196087 \n\ 4525088Sab196087 Note: Changing the e_ident[EI_MAG0] field of the ELF header\n\ 4535088Sab196087 to a value other than 0x7f will cause the system to fail to\n\ 4545088Sab196087 identify it as an ELF object.\n" 4555088Sab196087 4565088Sab196087 4575088Sab196087@ MSG_HELP_EI_MAG1 " \ 4585088Sab196087 Examine or modify the second byte of the object's \"magic number\".\n\ 4595088Sab196087 The magic number is the first 4 bytes of the object file, and is\n\ 4605088Sab196087 used to identify it as being an ELF object. This information\n\ 4615088Sab196087 is found in the e_ident[EI_MAG1] field of the ELF header.\n\ 4625088Sab196087 \n\ 4635088Sab196087 If ehdr:ei_mag1 is called without an argument, the value of\n\ 4645088Sab196087 e_ident[EI_MAG1] is shown. If called with the value argument,\n\ 4655088Sab196087 the e_ident[EI_MAG1] field is updated with the new value.\n\ 4665088Sab196087 \n\ 4675088Sab196087 Note: Changing the e_ident[EI_MAG1] field of the ELF header\n\ 4685088Sab196087 to a value other than 0x45 ('E') will cause the system to\n\ 4695088Sab196087 fail to identify it as an ELF object.\n" 4705088Sab196087 4715088Sab196087 4725088Sab196087@ MSG_HELP_EI_MAG2 " \ 4735088Sab196087 Examine or modify the third byte of the object's \"magic number\".\n\ 4745088Sab196087 The magic number is the first 4 bytes of the object file, and is\n\ 4755088Sab196087 used to identify it as being an ELF object. This information\n\ 4765088Sab196087 is found in the e_ident[EI_MAG2] field of the ELF header.\n\ 4775088Sab196087 \n\ 4785088Sab196087 If ehdr:ei_mag2 is called without an argument, the value of\n\ 4795088Sab196087 e_ident[EI_MAG2] is shown. If called with the value argument,\n\ 4805088Sab196087 the e_ident[EI_MAG2] field is updated with the new value.\n\ 4815088Sab196087 \n\ 4825088Sab196087 Note: Changing the e_ident[EI_MAG2] field of the ELF header\n\ 4835088Sab196087 to a value other than 0x4c ('L') will cause the system to\n\ 4845088Sab196087 fail to identify it as an ELF object.\n" 4855088Sab196087 4865088Sab196087 4875088Sab196087@ MSG_HELP_EI_MAG3 " \ 4885088Sab196087 Examine or modify the fourth byte of the object's \"magic number\".\n\ 4895088Sab196087 The magic number is the first 4 bytes of the object file, and is\n\ 4905088Sab196087 used to identify it as being an ELF object. This information\n\ 4915088Sab196087 is found in the e_ident[EI_MAG3] field of the ELF header.\n\ 4925088Sab196087 \n\ 4935088Sab196087 If ehdr:ei_mag3 is called without an argument, the value of\n\ 4945088Sab196087 e_ident[EI_MAG3] is shown. If called with the value argument,\n\ 4955088Sab196087 e_ident[EI_MAG3] field is updated with the new value.\n\ 4965088Sab196087 \n\ 4975088Sab196087 Note: Changing the e_ident[EI_MAG3] field of the ELF header\n\ 4985088Sab196087 to a value other than 0x46 ('F') will cause the system to\n\ 4995088Sab196087 fail to identify it as an ELF object.\n" 5005088Sab196087 5015088Sab196087 5025088Sab196087@ MSG_HELP_EI_CLASS " \ 5035088Sab196087 Examine or modify the file's class (system word size). This\n\ 5045088Sab196087 information is found in the e_ident[EI_CLASS] field of the\n\ 5055088Sab196087 ELF header.\n\ 5065088Sab196087 \n\ 5075088Sab196087 If ehdr:ei_class is called without an argument, the value of\n\ 5085088Sab196087 e_ident[EI_CLASS] is shown. If called with the value argument,\n\ 5095088Sab196087 the e_ident[EI_CLASS] field is updated with the new value.\n\ 5105088Sab196087 \n\ 5115088Sab196087 Note: Changing the e_ident[EI_CLASS] field of the ELF header\n\ 5125088Sab196087 does not alter the contents of the file, and is therefore\n\ 5135088Sab196087 likely to render the file unusable.\n" 5145088Sab196087 5155088Sab196087@ MSG_HELP_EI_DATA " \ 5165088Sab196087 Examine or modify the file's data encoding (byte order). This\n\ 5175088Sab196087 information is found in the e_ident[EI_DATA] field of the\n\ 5185088Sab196087 ELF header.\n\ 5195088Sab196087 \n\ 5205088Sab196087 If ehdr:ei_data is called without an argument, the value of\n\ 5215088Sab196087 e_ident[EI_DATA] is shown. If called with the value argument,\n\ 5225088Sab196087 the e_ident[EI_DATA] field is updated with the new value.\n\ 5235088Sab196087 \n\ 5245088Sab196087 Note: Changing the e_ident[EI_DATA] field of the ELF header\n\ 5255088Sab196087 does not alter the contents of the file or the byte order\n\ 5265088Sab196087 of the data, and is therefore likely to render the file unusable.\n" 5275088Sab196087 5285088Sab196087 5295088Sab196087@ MSG_HELP_EI_VERSION " \ 5305088Sab196087 Examine or modify the object file version. This information\n\ 5315088Sab196087 is found in the e_ident[EI_VERSION] field of the ELF header.\n\ 5325088Sab196087 \n\ 5335088Sab196087 If ehdr:ei_version is called without an argument, the value\n\ 5345088Sab196087 of e_ident[EI_VERSION] is shown. If called with the value\n\ 5355088Sab196087 argument, the e_ident[EI_VERSION] field is updated with the\n\ 5365088Sab196087 new value.\n\ 5375088Sab196087 \n\ 5385088Sab196087 Note: The e_version element of the ELF header also contains\n\ 5395088Sab196087 a version value. These two fields should be set to the same\n\ 5405088Sab196087 value. Use the ehdr:e_version command to change that element.\n" 5415088Sab196087 5425088Sab196087 5435088Sab196087@ MSG_HELP_EI_OSABI " \ 5445088Sab196087 Examine or modify the operating system / ABI identification for\n\ 5455088Sab196087 the object. This information is kept in the e_ident[EI_OSABI]\n\ 5465088Sab196087 field of the ELF header.\n\ 5475088Sab196087 \n\ 5485088Sab196087 If ehdr:ei_osabi is called without arguments, current value of\n\ 5495088Sab196087 e_ident[EI_OSABI] is shown. If called with the value argument,\n\ 5505088Sab196087 the e_ident[EI_OSABI] field is updated with the new value.\n\ 5515088Sab196087 \n\ 5525088Sab196087 Note: Changing the e_ident[EI_OSABI] field of the ELF header\n\ 5535088Sab196087 does not alter the contents of the file, or cause the actual\n\ 5545088Sab196087 ABI to be altered. Setting an incompatible ABI value is likely\n\ 5555088Sab196087 to cause the object to become unusable.\n" 5565088Sab196087 5575088Sab196087 5585088Sab196087@ MSG_HELP_EI_ABIVERSION " \ 5595088Sab196087 Examine or modify the ABI version for the object. This\n\ 5605088Sab196087 information is kept in the e_ident[EI_ABIVERSION] field of\n\ 5615088Sab196087 the ELF header.\n\ 5625088Sab196087 \n\ 5635088Sab196087 If ehdr:ei_abiversion is called without arguments, the current\n\ 5645088Sab196087 value of e_ident[EI_ABIVERSION] is shown. If called with the\n\ 5655088Sab196087 value argument, the e_ident[EI_ABIVERSION] field is updated with\n\ 5665088Sab196087 the new value.\n\ 5675088Sab196087 \n\ 5685088Sab196087 Note: The meaning of the e_ident[EI_ABIVERSION] field of\n\ 5695088Sab196087 the ELF header depends on the value of e_ident[EI_OSABI]\n\ 5705088Sab196087 (See ehdr:ei_osabi).\n" 5715088Sab196087 5725088Sab196087 5735088Sab196087@ _END_ 5745088Sab196087 5755088Sab196087 5765088Sab196087 5775088Sab196087# Strings 5785088Sab196087 5795088Sab196087@ MSG_STR_EMPTY "" 5805088Sab196087@ MSG_STR_NL "\n" 5815088Sab196087@ MSG_STR_VALUE "value" 5825088Sab196087@ MSG_STR_EIDENT_HDR "e_ident:\n" 5835088Sab196087@ MSG_STR_INDEX "index" 5845088Sab196087@ MSG_STR_SEC "sec" 5855088Sab196087@ MSG_STR_TYPE "type" 5865088Sab196087@ MSG_STR_VERSION "version" 5875088Sab196087@ MSG_STR_OFFSET "offset" 5885088Sab196087@ MSG_STR_FLAGVALUE "flag_value" 5895088Sab196087@ MSG_STR_MINUS_SHNDX "-shndx" 5905088Sab196087@ MSG_STR_MINUS_SHTYP "-shtyp" 5915088Sab196087@ MSG_STR_SH_INFO "sh_info" 5925088Sab196087@ MSG_STR_SH_LINK "sh_link" 5935088Sab196087@ MSG_STR_SH_SIZE "sh_size" 5945088Sab196087 5955088Sab196087 5965088Sab196087# Format strings 5975088Sab196087@ MSG_FMT_BKTSTR "[%s]" 5985088Sab196087@ MSG_FMT_BKTINT "[%d]" 5995088Sab196087@ MSG_FMT_STRNL "%s\n" 6005088Sab196087@ MSG_FMT_DECNUMNL "%d\n" 6015088Sab196087@ MSG_FMT_HEXNUM "%#x" 6025088Sab196087@ MSG_FMT_HEXNUMNL "%#x\n" 6035088Sab196087@ MSG_FMT_HEXNUM_QCHR "%#x ('%c')" 6045088Sab196087@ MSG_FMT_EI_ELT " %-18s%s\n" 6055088Sab196087 6065088Sab196087 6075088Sab196087 6085088Sab196087 6095088Sab196087# The following strings represent reserved words, files, pathnames and symbols. 6105088Sab196087# Reference to this strings is via the MSG_ORIG() macro, and thus no message 6115088Sab196087# translation is required. 6125088Sab196087 6135088Sab196087 6145088Sab196087# Module name 6155088Sab196087 6165088Sab196087@ MSG_MOD_NAME "ehdr" 6175088Sab196087 6185088Sab196087 6195088Sab196087# Command names 6205088Sab196087 6215088Sab196087@ MSG_CMD_DUMP "dump" 6225088Sab196087 6235088Sab196087@ MSG_CMD_E_IDENT "e_ident" 6245088Sab196087@ MSG_CMD_E_TYPE "e_type" 6255088Sab196087@ MSG_CMD_E_MACHINE "e_machine" 6265088Sab196087@ MSG_CMD_E_VERSION "e_version" 6275088Sab196087@ MSG_CMD_E_ENTRY "e_entry" 6285088Sab196087@ MSG_CMD_E_PHOFF "e_phoff" 6295088Sab196087@ MSG_CMD_E_SHOFF "e_shoff" 6305088Sab196087@ MSG_CMD_E_FLAGS "e_flags" 6315088Sab196087@ MSG_CMD_E_EHSIZE "e_ehsize" 6325088Sab196087@ MSG_CMD_E_PHENTSIZE "e_phentsize" 6335088Sab196087@ MSG_CMD_E_PHNUM "e_phnum" 6345088Sab196087@ MSG_CMD_E_SHENTSIZE "e_shentsize" 6355088Sab196087@ MSG_CMD_E_SHNUM "e_shnum" 6365088Sab196087@ MSG_CMD_E_SHSTRNDX "e_shstrndx" 6375088Sab196087 6385088Sab196087@ MSG_CMD_EI_MAG0 "ei_mag0" 6395088Sab196087@ MSG_CMD_EI_MAG1 "ei_mag1" 6405088Sab196087@ MSG_CMD_EI_MAG2 "ei_mag2" 6415088Sab196087@ MSG_CMD_EI_MAG3 "ei_mag3" 6425088Sab196087@ MSG_CMD_EI_CLASS "ei_class" 6435088Sab196087@ MSG_CMD_EI_DATA "ei_data" 6445088Sab196087@ MSG_CMD_EI_VERSION "ei_version" 6455088Sab196087@ MSG_CMD_EI_OSABI "ei_osabi" 6465088Sab196087@ MSG_CMD_EI_ABIVERSION "ei_abiversion" 647