xref: /onnv-gate/usr/src/cmd/sgs/elfedit/modules/common/ehdr.msg (revision 9273:9a0603d78ad3)
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