1d29b2c44Sab196087#
2d29b2c44Sab196087# CDDL HEADER START
3d29b2c44Sab196087#
4d29b2c44Sab196087# The contents of this file are subject to the terms of the
5d29b2c44Sab196087# Common Development and Distribution License (the "License").
6d29b2c44Sab196087# You may not use this file except in compliance with the License.
7d29b2c44Sab196087#
8d29b2c44Sab196087# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9d29b2c44Sab196087# or http://www.opensolaris.org/os/licensing.
10d29b2c44Sab196087# See the License for the specific language governing permissions
11d29b2c44Sab196087# and limitations under the License.
12d29b2c44Sab196087#
13d29b2c44Sab196087# When distributing Covered Code, include this CDDL HEADER in each
14d29b2c44Sab196087# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15d29b2c44Sab196087# If applicable, add the following below this CDDL HEADER, with the
16d29b2c44Sab196087# fields enclosed by brackets "[]" replaced with your own identifying
17d29b2c44Sab196087# information: Portions Copyright [yyyy] [name of copyright owner]
18d29b2c44Sab196087#
19d29b2c44Sab196087# CDDL HEADER END
20d29b2c44Sab196087#
21d29b2c44Sab196087
22d29b2c44Sab196087#
23*4f680cc6SAli Bahrami# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24d29b2c44Sab196087# Use is subject to license terms.
25d29b2c44Sab196087#
26d29b2c44Sab196087
27d29b2c44Sab196087@ _START_
28d29b2c44Sab196087
29d29b2c44Sab196087# Message file for elfedit 'ehdr' module
30d29b2c44Sab196087
31d29b2c44Sab196087@ MSG_ID_ELFEDIT_EHDR
32d29b2c44Sab196087
33d29b2c44Sab196087
34d29b2c44Sab196087# Debug messages
35d29b2c44Sab196087@ MSG_DEBUG_E_S_OK	"ehdr.%s: value unchanged: %s\n"
36d29b2c44Sab196087@ MSG_DEBUG_E_S_CHG	"ehdr.%s: change from %s to %s\n"
37d29b2c44Sab196087@ MSG_DEBUG_E_D_OK	"ehdr.%s: value unchanged: %d\n"
38d29b2c44Sab196087@ MSG_DEBUG_E_D_CHG	"ehdr.%s: change from %d to %d\n"
39d29b2c44Sab196087@ MSG_DEBUG_E_LLX_OK	"ehdr.%s: value unchanged: %#llx\n"
40d29b2c44Sab196087@ MSG_DEBUG_E_LLX_CHG	"ehdr.%s: change from %#llx to %#llx\n"
41d29b2c44Sab196087@ MSG_DEBUG_EI_S_S_OK	"ehdr.e_ident[%s]: value unchanged: %s\n";
42d29b2c44Sab196087@ MSG_DEBUG_EI_S_S_CHG	"ehdr.e_ident[%s]: change from %s to %s\n"
43d29b2c44Sab196087@ MSG_DEBUG_EI_D_X_OK	"ehdr.e_ident[%d]: value unchanged: %#x\n"
44d29b2c44Sab196087@ MSG_DEBUG_EI_D_X_CHG	"ehdr.e_ident[%d]: change from %#x to %#x\n"
45d29b2c44Sab196087@ MSG_DEBUG_SHDR0_D_OK	"shdr[0].%s: value unchanged: %d\n"
46d29b2c44Sab196087@ MSG_DEBUG_SHDR0_D_CHG	"shdr[0].%s: change from %d to %d\n"
47d29b2c44Sab196087@ MSG_DEBUG_NOTSTRTAB	"ehdr.%s: ELF warning: section is not a \
48d29b2c44Sab196087			 string table: %d\n"
49d29b2c44Sab196087
50d29b2c44Sab196087
51d29b2c44Sab196087# Module description
52d29b2c44Sab196087
53d29b2c44Sab196087@ MSG_MOD_DESC		"ELF Header"
54d29b2c44Sab196087
55d29b2c44Sab196087
56d29b2c44Sab196087# 1-line description strings
57d29b2c44Sab196087
58d29b2c44Sab196087@ MSG_DESC_DUMP			"Dump ELF Header"
59d29b2c44Sab196087@ MSG_DESC_E_IDENT		"ELF Identification"
60d29b2c44Sab196087@ MSG_DESC_E_TYPE		"Object File Type"
61d29b2c44Sab196087@ MSG_DESC_E_MACHINE		"Machine Architecture"
62d29b2c44Sab196087@ MSG_DESC_E_VERSION		"Object File Version"
63d29b2c44Sab196087@ MSG_DESC_E_ENTRY		"Starting Virtual Address"
64d29b2c44Sab196087@ MSG_DESC_E_PHOFF		"Program Header Table File Offset"
65d29b2c44Sab196087@ MSG_DESC_E_SHOFF		"Section Header Table File Offset"
66d29b2c44Sab196087@ MSG_DESC_E_FLAGS		"Processor-Specific Flags"
67d29b2c44Sab196087@ MSG_DESC_E_EHSIZE		"ELF Header's Size"
68d29b2c44Sab196087@ MSG_DESC_E_PHENTSIZE		"Program Header Table Entry Size"
69d29b2c44Sab196087@ MSG_DESC_E_PHNUM		"Number Program Header Entries"
70d29b2c44Sab196087@ MSG_DESC_E_SHENTSIZE		"Section Header Table Entry Size"
71d29b2c44Sab196087@ MSG_DESC_E_SHNUM		"Number Section Header Entries"
72d29b2c44Sab196087@ MSG_DESC_E_SHSTRNDX		"Section Name String Table Index"
73d29b2c44Sab196087
74d29b2c44Sab196087@ MSG_DESC_EI_MAG0		"File Identification Byte #1"
75d29b2c44Sab196087@ MSG_DESC_EI_MAG1		"File Identification Byte #2"
76d29b2c44Sab196087@ MSG_DESC_EI_MAG2		"File Identification Byte #3"
77d29b2c44Sab196087@ MSG_DESC_EI_MAG3		"File Identification Byte #4"
78d29b2c44Sab196087@ MSG_DESC_EI_CLASS		"File Class (System Word Size)"
79d29b2c44Sab196087@ MSG_DESC_EI_DATA		"Data Encoding (Byte Order)"
80d29b2c44Sab196087@ MSG_DESC_EI_VERSION		"File Version"
81d29b2c44Sab196087@ MSG_DESC_EI_OSABI		"Operating System / ABI Identification"
82d29b2c44Sab196087@ MSG_DESC_EI_ABIVERSION	"ABI version"
83d29b2c44Sab196087
84d29b2c44Sab196087# Command option description strings
85d29b2c44Sab196087
86d29b2c44Sab196087@ MSG_OPTDESC_SHNDX	"\
87d29b2c44Sab196087   Interpret the sec argument as a section index rather than\n\
88d29b2c44Sab196087   as a section name. section can be one of the well known SHN_\n\
89d29b2c44Sab196087   symbolic constants, or any integer.\n"
90d29b2c44Sab196087
91d29b2c44Sab196087@ MSG_OPTDESC_SHTYP	"\
92d29b2c44Sab196087   Interpret the sec argument as a section type rather than\n\
93d29b2c44Sab196087   as a section name. section can be one of the well known SHT_\n\
94d29b2c44Sab196087   symbolic constants, or any integer.\n"
95d29b2c44Sab196087
96d29b2c44Sab196087# Command argument description strings
97d29b2c44Sab196087
98d29b2c44Sab196087@ MSG_ARGDESC_E_IDENT_NDX	"\
99d29b2c44Sab196087   Index of element of e_ident[] array. This can be\n\
100d29b2c44Sab196087   an integer value, or any of the EI_ symbolic constants\n\
101d29b2c44Sab196087   defined in /usr/include/sys/elf.h.\n"
102d29b2c44Sab196087
103d29b2c44Sab196087@ MSG_ARGDESC_E_IDENT_VALUE	"\
104d29b2c44Sab196087   New value for element of e_ident[] array. This can be\n\
105d29b2c44Sab196087   an integer value, or any symbolic constants defined in\n\
106d29b2c44Sab196087   /usr/include/sys/elf.h that apply to the selected item.\n"
107d29b2c44Sab196087
108d29b2c44Sab196087@ MSG_ARGDESC_E_TYPE_VALUE	"\
109d29b2c44Sab196087   New value for type of the ELF object. This can be\n\
110d29b2c44Sab196087   an integer value, or any of the ET_ symbolic constants\n\
111d29b2c44Sab196087   defined in /usr/include/sys/elf.h.\n"
112d29b2c44Sab196087
113d29b2c44Sab196087@ MSG_ARGDESC_E_MACHINE_VALUE	"\
114d29b2c44Sab196087   New value for architecture of the ELF object. This can be\n\
115d29b2c44Sab196087   an integer value, or any of the EM_ symbolic constants\n\
116d29b2c44Sab196087   defined in /usr/include/sys/elf.h.\n"
117d29b2c44Sab196087
118d29b2c44Sab196087@ MSG_ARGDESC_E_VERSION_VALUE	"\
119d29b2c44Sab196087   New value for version of the ELF object. This can be\n\
120d29b2c44Sab196087   an integer value, or any of the EV_ symbolic constants\n\
121d29b2c44Sab196087   defined in /usr/include/sys/elf.h.\n"
122d29b2c44Sab196087
123d29b2c44Sab196087@ MSG_ARGDESC_E_ENTRY_VALUE	"\
124d29b2c44Sab196087   New value for virtual address to which the system first transfers control.\n"
125d29b2c44Sab196087
126d29b2c44Sab196087@ MSG_ARGDESC_E_PHOFF_VALUE	"\
127d29b2c44Sab196087   New value for program header table's file offset.\n"
128d29b2c44Sab196087
129d29b2c44Sab196087@ MSG_ARGDESC_E_SHOFF_VALUE	"\
130d29b2c44Sab196087   New value for section header table's file offset.\n"
131d29b2c44Sab196087
132d29b2c44Sab196087@ MSG_ARGDESC_E_FLAGS_VALUE	"\
133d29b2c44Sab196087   New value for processor-specific flags. This can be an integer\n\
134d29b2c44Sab196087   value, or any of the EF_ symbolic constants defined in the\n\
135d29b2c44Sab196087   system header files\n"
136d29b2c44Sab196087
137d29b2c44Sab196087@ MSG_ARGDESC_E_EHSIZE_VALUE	"\
138d29b2c44Sab196087   New value for size of ELF header, in bytes.\n"
139d29b2c44Sab196087
140d29b2c44Sab196087@ MSG_ARGDESC_E_PHENTSIZE_VALUE	"\
141d29b2c44Sab196087   New value for size of one entry in the file's program header table,\n\
142d29b2c44Sab196087   in bytes.\n"
143d29b2c44Sab196087
144d29b2c44Sab196087@ MSG_ARGDESC_E_PHNUM_VALUE	"\
145d29b2c44Sab196087   New value for number of entries in the program header table.\n"
146d29b2c44Sab196087
147d29b2c44Sab196087@ MSG_ARGDESC_E_SHENTSIZE_VALUE	"\
148d29b2c44Sab196087   New value for size of one entry in the file's section header table,\n\
149d29b2c44Sab196087   in bytes.\n"
150d29b2c44Sab196087
151d29b2c44Sab196087@ MSG_ARGDESC_E_SHNUM_VALUE	"\
152d29b2c44Sab196087   New value for number of entries in the section header table.\n"
153d29b2c44Sab196087
154d29b2c44Sab196087@ MSG_ARGDESC_E_SHSTRNDX_SEC	"\
155d29b2c44Sab196087   String table section containing section name strings.\n\
156d29b2c44Sab196087   By default, this argument is interpreted as the name\n\
157d29b2c44Sab196087   of the desired section. The section index of the first\n\
158d29b2c44Sab196087   section with the specified name is used.\n\
159d29b2c44Sab196087   \n\
160d29b2c44Sab196087   If -shndx is set, then sec is a section index, and is\n\
161d29b2c44Sab196087   interpreted as an integer, or one of the well known SHN_\n\
162d29b2c44Sab196087   symbolic constant names.\n\
163d29b2c44Sab196087   \n\
164d29b2c44Sab196087   If -shtyp is set, then sec is a section type, and is\n\
165d29b2c44Sab196087   interpreted as an integer, or one of the well known SHT_\n\
166d29b2c44Sab196087   symbolic constant names. The section index of the first\n\
167d29b2c44Sab196087   section with the specified type is used.\n"
168d29b2c44Sab196087
169d29b2c44Sab196087@ MSG_ARGDESC_EI_MAG0_VALUE	"\
170d29b2c44Sab196087   New value for first byte of file magic number.\n"
171d29b2c44Sab196087
172d29b2c44Sab196087@ MSG_ARGDESC_EI_MAG1_VALUE	"\
173d29b2c44Sab196087   New value for second byte of file magic number.\n"
174d29b2c44Sab196087
175d29b2c44Sab196087@ MSG_ARGDESC_EI_MAG2_VALUE	"\
176d29b2c44Sab196087   New value for third byte of file magic number.\n"
177d29b2c44Sab196087
178d29b2c44Sab196087@ MSG_ARGDESC_EI_MAG3_VALUE	"\
179d29b2c44Sab196087   New value for fourth byte of file magic number.\n"
180d29b2c44Sab196087
181d29b2c44Sab196087@ MSG_ARGDESC_EI_CLASS_VALUE	"\
182d29b2c44Sab196087   New value for file's class. This can be an integer value, or any of\n\
183d29b2c44Sab196087   the ELFCLASS symbolic constants defined in /usr/include/sys/elf.h.\n"
184d29b2c44Sab196087
185d29b2c44Sab196087@ MSG_ARGDESC_EI_DATA_VALUE	"\
186d29b2c44Sab196087   New value for file's data encoding. This can be an integer\n\
187d29b2c44Sab196087   value, or any ELFDATA symbolic constants defined in\n\
188d29b2c44Sab196087   /usr/include/sys/elf.h.\n"
189d29b2c44Sab196087
190d29b2c44Sab196087# Note: EI_VERSION uses the same string as E_VERSION, above
191d29b2c44Sab196087
192d29b2c44Sab196087@ MSG_ARGDESC_EI_OSABI_VALUE	"\
193d29b2c44Sab196087   New value for ABI identification of the ELF object. This can be\n\
194d29b2c44Sab196087   an integer value, or any of the ELFOSABI_ symbolic constants\n\
195d29b2c44Sab196087   defined in /usr/include/sys/elf.h.\n"
196d29b2c44Sab196087
197d29b2c44Sab196087@ MSG_ARGDESC_EI_ABIVERSION_VALUE	"\
198d29b2c44Sab196087   New value for version of the ABI to which the object is targeted.\n"
199d29b2c44Sab196087
200d29b2c44Sab196087
201d29b2c44Sab196087# Help strings
202d29b2c44Sab196087
203d29b2c44Sab196087@ MSG_HELP_DUMP	"   \
204d29b2c44Sab196087   The ehdr:dump command is used to display the contents of\n\
205d29b2c44Sab196087   the ELF header using the same style used by the elfdump program.\n"
206d29b2c44Sab196087
207d29b2c44Sab196087@ MSG_HELP_E_IDENT	"   \
208d29b2c44Sab196087   Examine or modify ELF Identification information for the\n\
209d29b2c44Sab196087   object. This information is found in the e_ident array in\n\
210d29b2c44Sab196087   the ELF header.\n\
211d29b2c44Sab196087   \n\
212d29b2c44Sab196087   If ehdr:e_ident is called without any argument, all values\n\
213d29b2c44Sab196087   the value in e_ident are shown. If called with the index\n\
214d29b2c44Sab196087   argument, the selected element of e_ident is shown. If also\n\
215d29b2c44Sab196087   called with the value argument, the selected e_ident element\n\
216d29b2c44Sab196087   is updated with the new value.\n"
217d29b2c44Sab196087
218d29b2c44Sab196087
219d29b2c44Sab196087@ MSG_HELP_E_TYPE	"   \
220d29b2c44Sab196087   Examine or modify the object file type. This information is\n\
221d29b2c44Sab196087   found in the e_type field of the ELF header.\n\
222d29b2c44Sab196087   \n\
223d29b2c44Sab196087   If ehdr:e_type is called without an argument, the value of\n\
224d29b2c44Sab196087   e_type is shown. If called with the value argument, the\n\
225d29b2c44Sab196087   e_type field is updated with the new value.\n\
226d29b2c44Sab196087   \n\
227d29b2c44Sab196087   Note: Changing the type code of an object does not change the\n\
228d29b2c44Sab196087   other contents of the file, and is unlikely to produce a usable\n\
229d29b2c44Sab196087   ELF object.\n"
230d29b2c44Sab196087
231d29b2c44Sab196087
232d29b2c44Sab196087@ MSG_HELP_E_MACHINE	"   \
233d29b2c44Sab196087   Examine or modify the required architecture of the object.\n\
234d29b2c44Sab196087   This information is found in the e_machine field of the\n\
235d29b2c44Sab196087   ELF header.\n\
236d29b2c44Sab196087   \n\
237d29b2c44Sab196087   If ehdr:e_machine is called without an argument, the value of\n\
238d29b2c44Sab196087   e_machine is shown. If called with the value argument, the\n\
239d29b2c44Sab196087   e_machine field is updated with the new value.\n\
240d29b2c44Sab196087   \n\
241d29b2c44Sab196087   Note: Changing the architecture code of an object does not change the\n\
242d29b2c44Sab196087   other contents of the file, and is unlikely to produce a usable\n\
243d29b2c44Sab196087   ELF object.\n"
244d29b2c44Sab196087
245d29b2c44Sab196087
246d29b2c44Sab196087@ MSG_HELP_E_VERSION	"   \
247d29b2c44Sab196087   Examine or modify the object file version. This information\n\
248d29b2c44Sab196087   is found in the e_version field of the ELF header.\n\
249d29b2c44Sab196087   \n\
250d29b2c44Sab196087   If ehdr:e_version is called without an argument, the value of\n\
251d29b2c44Sab196087   e_version is shown. If called with the value argument, the\n\
252d29b2c44Sab196087   e_version field is updated with the new value.\n\
253d29b2c44Sab196087   \n\
254d29b2c44Sab196087   Note: The e_ident[EI_VERSION] element of the ELF header\n\
255d29b2c44Sab196087   identification array also contains a version value. These\n\
256d29b2c44Sab196087   two fields should be set to the same value. Use the\n\
257d29b2c44Sab196087   ehdr:ei_version command to change that element.\n"
258d29b2c44Sab196087
259d29b2c44Sab196087
260d29b2c44Sab196087@ MSG_HELP_E_ENTRY	"   \
261d29b2c44Sab196087   Examine or modify the virtual address to which the system\n\
262d29b2c44Sab196087   first transfers control, thus starting the process. This\n\
263d29b2c44Sab196087   information is found in the e_entry field of the ELF header.\n\
264d29b2c44Sab196087   If the file has no associated entry point, this member\n\
265d29b2c44Sab196087   holds zero.\n\
266d29b2c44Sab196087   \n\
267d29b2c44Sab196087   If ehdr:e_entry is called without an argument, the value of\n\
268d29b2c44Sab196087   e_entry is shown. If called with the value argument, the\n\
269d29b2c44Sab196087   e_entry field is updated with the new value.\n\
270d29b2c44Sab196087   \n\
271d29b2c44Sab196087   Note: The entry point of an object is highly system\n\
272d29b2c44Sab196087   dependent. Changing it is likely to produce an object that\n\
273d29b2c44Sab196087   does not run properly.\n"
274d29b2c44Sab196087
275d29b2c44Sab196087
276d29b2c44Sab196087@ MSG_HELP_E_PHOFF	"   \
277d29b2c44Sab196087   Examine or modify the program header table's file offset.\n\
278d29b2c44Sab196087   This information is found in the e_phoff field of the\n\
279d29b2c44Sab196087   ELF header. If the file has no program header table, this\n\
280d29b2c44Sab196087   member holds zero.\n\
281d29b2c44Sab196087   \n\
282d29b2c44Sab196087   If ehdr:e_phoff is called without an argument, the value of\n\
283d29b2c44Sab196087   e_phoff is shown. If called with the value argument, the\n\
284d29b2c44Sab196087   e_phoff field is updated with the new value.\n\
285d29b2c44Sab196087   \n\
286d29b2c44Sab196087   Note: Changing the e_phoff field of an object does not change\n\
287d29b2c44Sab196087   the actual layout of the file or move the program header table.\n\
288d29b2c44Sab196087   As such, changing this value is likely to produce an unusable\n\
289d29b2c44Sab196087   ELF object.\n"
290d29b2c44Sab196087
291d29b2c44Sab196087
292d29b2c44Sab196087@ MSG_HELP_E_SHOFF	"   \
293d29b2c44Sab196087   Examine or modify the section header table's file offset.\n\
294d29b2c44Sab196087   This information is found in the e_shoff field of the\n\
295d29b2c44Sab196087   ELF header. If the file has no section header table, this\n\
296d29b2c44Sab196087   member holds zero.\n\
297d29b2c44Sab196087   \n\
298d29b2c44Sab196087   If ehdr:e_shoff is called without an argument, the value of\n\
299d29b2c44Sab196087   e_shoff is shown. If called with the value argument, the\n\
300d29b2c44Sab196087   e_shoff field is updated with the new value.\n\
301d29b2c44Sab196087   \n\
302d29b2c44Sab196087   Note: Changing the e_shoff field of an object does not change\n\
303d29b2c44Sab196087   the actual layout of the file or move the section header table.\n\
304d29b2c44Sab196087   As such, changing this value is likely to produce an unusable\n\
305d29b2c44Sab196087   ELF object.\n"
306d29b2c44Sab196087
307d29b2c44Sab196087
308d29b2c44Sab196087@ MSG_HELP_E_FLAGS	"   \
309d29b2c44Sab196087   Examine or modify the processor specific flags associated\n\
310d29b2c44Sab196087   with the file. This information is found in the e_flags\n\
311d29b2c44Sab196087   field of the ELF header.\n\
312d29b2c44Sab196087   \n\
313d29b2c44Sab196087   If ehdr:e_flags is called without an argument, the value of\n\
314d29b2c44Sab196087   e_flags is shown. If called with one or more flag_value\n\
315d29b2c44Sab196087   arguments, the the following steps are taken:\n\
316d29b2c44Sab196087   \n   \
317d29b2c44Sab196087   o\tAll the flag_value arguments are OR'd together.\n\
318d29b2c44Sab196087   \n   \
319d29b2c44Sab196087   o\tIf the -cmp option has been specified, the new value\n\
320d29b2c44Sab196087   \tis complemented.\n\
321d29b2c44Sab196087   \n   \
322d29b2c44Sab196087   o\tThe e_flags field of the ELF header is updated with\n\
323d29b2c44Sab196087   \tthe new value. If -and is specified, the new value is\n\
324d29b2c44Sab196087   \tAND'd against the existing value. If -or is specified,\n\
325d29b2c44Sab196087   \tthe new value is OR'd against the existing value. If\n\
326d29b2c44Sab196087   \tneither -and or -or are specified, the new value replaces\n\
327d29b2c44Sab196087   \tthe existing value.\n\
328d29b2c44Sab196087   \n\
329d29b2c44Sab196087   Note: Changing the e_flags field of an object does not change\n\
330d29b2c44Sab196087   the code contained in the file. Setting a flag that implies\n\
331d29b2c44Sab196087   an ability the existing code cannot support will produce an\n\
332d29b2c44Sab196087   unusable ELF object.\n"
333d29b2c44Sab196087
334d29b2c44Sab196087
335d29b2c44Sab196087@ MSG_HELP_E_EHSIZE	"   \
336d29b2c44Sab196087   Examine or modify the size of the ELF header. This information\n\
337d29b2c44Sab196087   is found in the e_ehsize field of the ELF header.\n\
338d29b2c44Sab196087   \n\
339d29b2c44Sab196087   If ehdr:e_ehsize is called without an argument, the value of\n\
340d29b2c44Sab196087   e_ehsize is shown. If called with the value argument, the\n\
341d29b2c44Sab196087   e_ehsize field is updated with the new value.\n\
342d29b2c44Sab196087   \n\
343d29b2c44Sab196087   Note: Changing the e_ehsize field of the ELF header does not\n\
344d29b2c44Sab196087   change the size of the actual ELF header data structure. Setting\n\
345d29b2c44Sab196087   it to a different value is likely to produce an unusable ELF object.\n"
346d29b2c44Sab196087
347d29b2c44Sab196087
348d29b2c44Sab196087@ MSG_HELP_E_PHENTSIZE	"   \
349d29b2c44Sab196087   Examine or modify the size of one entry in the file's program\n\
350d29b2c44Sab196087   header table. This information is found in the e_phentsize\n\
351d29b2c44Sab196087   field of the ELF header.\n\
352d29b2c44Sab196087   \n\
353d29b2c44Sab196087   If ehdr:e_phentsize is called without an argument, the value of\n\
354d29b2c44Sab196087   e_phentsize is shown. If called with the value argument, the\n\
355d29b2c44Sab196087   e_phentsize field is updated with the new value.\n\
356d29b2c44Sab196087   \n\
357d29b2c44Sab196087   Note: Changing the e_phentsize field of the ELF header does\n\
358d29b2c44Sab196087   not change the size of the actual program header array elements.\n\
359d29b2c44Sab196087   Setting it to a different value is likely to produce an unusable\n\
360d29b2c44Sab196087   ELF object.\n"
361d29b2c44Sab196087
362d29b2c44Sab196087
363d29b2c44Sab196087@ MSG_HELP_E_PHNUM	"   \
364d29b2c44Sab196087   Examine or modify the number of entries in the program header\n\
365d29b2c44Sab196087   table. This information is found in the e_phnum field of the\n\
366d29b2c44Sab196087   ELF header, or in the sh_link field of the first section header\n\
367d29b2c44Sab196087   in the case of extended program indexes.\n\
368d29b2c44Sab196087   \n\
369d29b2c44Sab196087   If the number of program headers is greater than or equal\n\
370d29b2c44Sab196087   to PN_XNUM (0xffff), e_phnum has the value PN_XNUM, and the\n\
371d29b2c44Sab196087   actual number of program header table entries is contained\n\
372d29b2c44Sab196087   in the sh_info field of the section header at index 0.\n\
373d29b2c44Sab196087   \n\
374d29b2c44Sab196087   If ehdr:e_phnum is called without an argument, the number\n\
375d29b2c44Sab196087   of program headers is shown. If called with the value argument,\n\
376d29b2c44Sab196087   the number is updated with the new value.\n\
377d29b2c44Sab196087   \n\
378d29b2c44Sab196087   Note: Changing e_phnum and/or the sh_link field of the first\n\
379d29b2c44Sab196087   section header  does not change the size of the actual program\n\
380d29b2c44Sab196087   header array in the file.\n"
381d29b2c44Sab196087
382d29b2c44Sab196087
383d29b2c44Sab196087@ MSG_HELP_E_SHENTSIZE	"   \
384d29b2c44Sab196087   Examine or modify the size of one entry in the file's section\n\
385d29b2c44Sab196087   header table. This information is found in the e_shentsize\n\
386d29b2c44Sab196087   field of the ELF header.\n\
387d29b2c44Sab196087   \n\
388d29b2c44Sab196087   If ehdr:e_shentsize is called without an argument, the value of\n\
389d29b2c44Sab196087   e_shentsize is shown. If called with the value argument, the\n\
390d29b2c44Sab196087   e_shentsize field is updated with the new value.\n\
391d29b2c44Sab196087   \n\
392d29b2c44Sab196087   Note: Changing the e_shentsize field of the ELF header does\n\
393d29b2c44Sab196087   not change the size of the actual section header array elements.\n\
394d29b2c44Sab196087   Setting it to a different value is likely to produce an unusable\n\
395d29b2c44Sab196087   ELF object.\n"
396d29b2c44Sab196087
397d29b2c44Sab196087
398d29b2c44Sab196087@ MSG_HELP_E_SHNUM	"   \
399d29b2c44Sab196087   Examine or modify the number of entries in the section header\n\
400d29b2c44Sab196087   table. This information is found in the e_shnum field of the\n\
401d29b2c44Sab196087   ELF header, or in the sh_size field of the first section header\n\
402d29b2c44Sab196087   in the case of extended section indexes.\n\
403d29b2c44Sab196087   \n\
404d29b2c44Sab196087   If the number of sections is greater than or equal to\n\
405d29b2c44Sab196087   SHN_LORESERVE (0xff00), e_shnum has the value zero, and\n\
406d29b2c44Sab196087   the actual number of section header table entries is\n\
407d29b2c44Sab196087   contained in the sh_size field of the section header\n\
408d29b2c44Sab196087   at index 0.\n\
409d29b2c44Sab196087   \n\
410d29b2c44Sab196087   If ehdr:e_shnum is called without an argument, the number of\n\
411d29b2c44Sab196087   sections is shown. If called with the value argument, the\n\
412d29b2c44Sab196087   number of sections is updated with the new value.\n\
413d29b2c44Sab196087   \n\
414d29b2c44Sab196087   Note: Changing e_shnum and/or the sh_size field of the first\n\
415d29b2c44Sab196087   section header does not change the size of the actual section\n\
416d29b2c44Sab196087   header array in the file.\n"
417d29b2c44Sab196087
418d29b2c44Sab196087
419d29b2c44Sab196087@ MSG_HELP_E_SHSTRNDX	"   \
420d29b2c44Sab196087   Examine or modify the section table index of the entry that is\n\
421d29b2c44Sab196087   associated with the section name string table. This information\n\
422d29b2c44Sab196087   is found in the e_shstrndx field of the ELF header, or in the\n\
423d29b2c44Sab196087   sh_link field of the first section header in the case of\n\
424d29b2c44Sab196087   extended section indexes. If the file has no section name\n\
425d29b2c44Sab196087   string table, this member holds the value SHN_UNDEF.\n\
426d29b2c44Sab196087   \n\
427d29b2c44Sab196087   If the section name string table section index is greater\n\
428d29b2c44Sab196087   than or equal to SHN_LORESERVE (0xff00), e_shstrndx has the\n\
429d29b2c44Sab196087   value SHN_XINDEX (0xffff) and   the actual index of the section\n\
430d29b2c44Sab196087   name string table section is contained in the sh_link field of\n\
431d29b2c44Sab196087   the section header at index 0.\n\
432d29b2c44Sab196087   \n\
433d29b2c44Sab196087   If ehdr:e_shstrndx is called without an argument, the index of\n\
434d29b2c44Sab196087   the section name string table is shown. If called with the value\n\
435d29b2c44Sab196087   argument, the ELF header is updated with the new value.\n\
436d29b2c44Sab196087   \n\
437d29b2c44Sab196087   Note: The e_shstrndx field of the ELF header must reference\n\
438d29b2c44Sab196087   a string table section. Otherwise, diagnostic tools will be\n\
439d29b2c44Sab196087   confused by the resulting object.\n"
440d29b2c44Sab196087
441d29b2c44Sab196087
442d29b2c44Sab196087@ MSG_HELP_EI_MAG0	"   \
443d29b2c44Sab196087   Examine or modify the first byte of the object's \"magic number\".\n\
444d29b2c44Sab196087   The magic number is the first 4 bytes of the object file, and is\n\
445d29b2c44Sab196087   used to identify it as being an ELF object. This information\n\
446d29b2c44Sab196087   is found in the e_ident[EI_MAG0] field of the ELF header.\n\
447d29b2c44Sab196087   \n\
448d29b2c44Sab196087   If ehdr:ei_mag0 is called without an argument, the value of\n\
449d29b2c44Sab196087   e_ident[EI_MAG0] is shown. If called with the value argument,\n\
450d29b2c44Sab196087   the e_ident[EI_MAG0] field is updated with the new value.\n\
451d29b2c44Sab196087   \n\
452d29b2c44Sab196087   Note: Changing the e_ident[EI_MAG0] field of the ELF header\n\
453d29b2c44Sab196087   to a value other than 0x7f will cause the system to fail to\n\
454d29b2c44Sab196087   identify it as an ELF object.\n"
455d29b2c44Sab196087
456d29b2c44Sab196087
457d29b2c44Sab196087@ MSG_HELP_EI_MAG1	"   \
458d29b2c44Sab196087   Examine or modify the second byte of the object's \"magic number\".\n\
459d29b2c44Sab196087   The magic number is the first 4 bytes of the object file, and is\n\
460d29b2c44Sab196087   used to identify it as being an ELF object. This information\n\
461d29b2c44Sab196087   is found in the e_ident[EI_MAG1] field of the ELF header.\n\
462d29b2c44Sab196087   \n\
463d29b2c44Sab196087   If ehdr:ei_mag1 is called without an argument, the value of\n\
464d29b2c44Sab196087   e_ident[EI_MAG1] is shown. If called with the value argument,\n\
465d29b2c44Sab196087   the e_ident[EI_MAG1] field is updated with the new value.\n\
466d29b2c44Sab196087   \n\
467d29b2c44Sab196087   Note: Changing the e_ident[EI_MAG1] field of the ELF header\n\
468d29b2c44Sab196087   to a value other than 0x45 ('E') will cause the system to\n\
469d29b2c44Sab196087   fail to identify it as an ELF object.\n"
470d29b2c44Sab196087
471d29b2c44Sab196087
472d29b2c44Sab196087@ MSG_HELP_EI_MAG2	"   \
473d29b2c44Sab196087   Examine or modify the third byte of the object's \"magic number\".\n\
474d29b2c44Sab196087   The magic number is the first 4 bytes of the object file, and is\n\
475d29b2c44Sab196087   used to identify it as being an ELF object. This information\n\
476d29b2c44Sab196087   is found in the e_ident[EI_MAG2] field of the ELF header.\n\
477d29b2c44Sab196087   \n\
478d29b2c44Sab196087   If ehdr:ei_mag2 is called without an argument, the value of\n\
479d29b2c44Sab196087   e_ident[EI_MAG2] is shown. If called with the value argument,\n\
480d29b2c44Sab196087   the e_ident[EI_MAG2] field is updated with the new value.\n\
481d29b2c44Sab196087   \n\
482d29b2c44Sab196087   Note: Changing the e_ident[EI_MAG2] field of the ELF header\n\
483d29b2c44Sab196087   to a value other than 0x4c ('L') will cause the system to\n\
484d29b2c44Sab196087   fail to identify it as an ELF object.\n"
485d29b2c44Sab196087
486d29b2c44Sab196087
487d29b2c44Sab196087@ MSG_HELP_EI_MAG3	"   \
488d29b2c44Sab196087   Examine or modify the fourth byte of the object's \"magic number\".\n\
489d29b2c44Sab196087   The magic number is the first 4 bytes of the object file, and is\n\
490d29b2c44Sab196087   used to identify it as being an ELF object. This information\n\
491d29b2c44Sab196087   is found in the e_ident[EI_MAG3] field of the ELF header.\n\
492d29b2c44Sab196087   \n\
493d29b2c44Sab196087   If ehdr:ei_mag3 is called without an argument, the value of\n\
494d29b2c44Sab196087   e_ident[EI_MAG3] is shown. If called with the value argument,\n\
495d29b2c44Sab196087   e_ident[EI_MAG3] field is updated with the new value.\n\
496d29b2c44Sab196087   \n\
497d29b2c44Sab196087   Note: Changing the e_ident[EI_MAG3] field of the ELF header\n\
498d29b2c44Sab196087   to a value other than 0x46 ('F') will cause the system to\n\
499d29b2c44Sab196087   fail to identify it as an ELF object.\n"
500d29b2c44Sab196087
501d29b2c44Sab196087
502d29b2c44Sab196087@ MSG_HELP_EI_CLASS	"   \
503d29b2c44Sab196087   Examine or modify the file's class (system word size). This\n\
504d29b2c44Sab196087   information is found in the e_ident[EI_CLASS] field of the\n\
505d29b2c44Sab196087   ELF header.\n\
506d29b2c44Sab196087   \n\
507d29b2c44Sab196087   If ehdr:ei_class is called without an argument, the value of\n\
508d29b2c44Sab196087   e_ident[EI_CLASS] is shown. If called with the value argument,\n\
509d29b2c44Sab196087   the e_ident[EI_CLASS] field is updated with the new value.\n\
510d29b2c44Sab196087   \n\
511d29b2c44Sab196087   Note: Changing the e_ident[EI_CLASS] field of the ELF header\n\
512d29b2c44Sab196087   does not alter the contents of the file, and is therefore\n\
513d29b2c44Sab196087   likely to render the file unusable.\n"
514d29b2c44Sab196087
515d29b2c44Sab196087@ MSG_HELP_EI_DATA	"   \
516d29b2c44Sab196087   Examine or modify the file's data encoding (byte order). This\n\
517d29b2c44Sab196087   information is found in the e_ident[EI_DATA] field of the\n\
518d29b2c44Sab196087   ELF header.\n\
519d29b2c44Sab196087   \n\
520d29b2c44Sab196087   If ehdr:ei_data is called without an argument, the value of\n\
521d29b2c44Sab196087   e_ident[EI_DATA] is shown. If called with the value argument,\n\
522d29b2c44Sab196087   the e_ident[EI_DATA] field is updated with the new value.\n\
523d29b2c44Sab196087   \n\
524d29b2c44Sab196087   Note: Changing the e_ident[EI_DATA] field of the ELF header\n\
525d29b2c44Sab196087   does not alter the contents of the file or the byte order\n\
526d29b2c44Sab196087   of the data, and is therefore likely to render the file unusable.\n"
527d29b2c44Sab196087
528d29b2c44Sab196087
529d29b2c44Sab196087@ MSG_HELP_EI_VERSION	"   \
530d29b2c44Sab196087   Examine or modify the object file version. This information\n\
531d29b2c44Sab196087   is found in the e_ident[EI_VERSION] field of the ELF header.\n\
532d29b2c44Sab196087   \n\
533d29b2c44Sab196087   If ehdr:ei_version is called without an argument, the value\n\
534d29b2c44Sab196087   of e_ident[EI_VERSION]  is shown. If called with the value\n\
535d29b2c44Sab196087   argument, the e_ident[EI_VERSION] field is updated with the\n\
536d29b2c44Sab196087   new value.\n\
537d29b2c44Sab196087   \n\
538d29b2c44Sab196087   Note: The e_version element of the ELF header also contains\n\
539d29b2c44Sab196087   a version value. These two fields should be set to the same\n\
540d29b2c44Sab196087   value. Use the ehdr:e_version command to change that element.\n"
541d29b2c44Sab196087
542d29b2c44Sab196087
543d29b2c44Sab196087@ MSG_HELP_EI_OSABI	"   \
544d29b2c44Sab196087   Examine or modify the operating system / ABI identification for\n\
545d29b2c44Sab196087   the object. This information is kept in the e_ident[EI_OSABI]\n\
546d29b2c44Sab196087   field of the ELF header.\n\
547d29b2c44Sab196087   \n\
548d29b2c44Sab196087   If ehdr:ei_osabi is called without arguments, current value of\n\
549d29b2c44Sab196087   e_ident[EI_OSABI] is shown. If called with the value argument,\n\
550d29b2c44Sab196087   the e_ident[EI_OSABI] field is updated with the new value.\n\
551d29b2c44Sab196087   \n\
552d29b2c44Sab196087   Note: Changing the e_ident[EI_OSABI] field of the ELF header\n\
553d29b2c44Sab196087   does not alter the contents of the file, or cause the actual\n\
554d29b2c44Sab196087   ABI to be altered. Setting an incompatible ABI value is likely\n\
555d29b2c44Sab196087   to cause the object to become unusable.\n"
556d29b2c44Sab196087
557d29b2c44Sab196087
558d29b2c44Sab196087@ MSG_HELP_EI_ABIVERSION	"   \
559d29b2c44Sab196087   Examine or modify the ABI version for the object. This\n\
560d29b2c44Sab196087   information is kept in the e_ident[EI_ABIVERSION] field of\n\
561d29b2c44Sab196087   the ELF header.\n\
562d29b2c44Sab196087   \n\
563d29b2c44Sab196087   If ehdr:ei_abiversion is called without arguments, the current\n\
564d29b2c44Sab196087   value of e_ident[EI_ABIVERSION] is shown. If called with the\n\
565d29b2c44Sab196087   value argument, the e_ident[EI_ABIVERSION] field is updated with\n\
566d29b2c44Sab196087   the new value.\n\
567d29b2c44Sab196087   \n\
568d29b2c44Sab196087   Note: The meaning of the e_ident[EI_ABIVERSION] field of\n\
569d29b2c44Sab196087   the ELF header depends on the value of e_ident[EI_OSABI]\n\
570d29b2c44Sab196087   (See ehdr:ei_osabi).\n"
571d29b2c44Sab196087
572d29b2c44Sab196087
573d29b2c44Sab196087@ _END_
574d29b2c44Sab196087
575d29b2c44Sab196087
576d29b2c44Sab196087
577d29b2c44Sab196087# Strings
578d29b2c44Sab196087
579d29b2c44Sab196087@ MSG_STR_EMPTY		""
580d29b2c44Sab196087@ MSG_STR_NL		"\n"
581d29b2c44Sab196087@ MSG_STR_VALUE		"value"
582d29b2c44Sab196087@ MSG_STR_EIDENT_HDR	"e_ident:\n"
583d29b2c44Sab196087@ MSG_STR_INDEX		"index"
584d29b2c44Sab196087@ MSG_STR_SEC		"sec"
585d29b2c44Sab196087@ MSG_STR_TYPE		"type"
586d29b2c44Sab196087@ MSG_STR_VERSION	"version"
587d29b2c44Sab196087@ MSG_STR_OFFSET	"offset"
588d29b2c44Sab196087@ MSG_STR_FLAGVALUE	"flag_value"
589d29b2c44Sab196087@ MSG_STR_MINUS_SHNDX	"-shndx"
590d29b2c44Sab196087@ MSG_STR_MINUS_SHTYP	"-shtyp"
591d29b2c44Sab196087@ MSG_STR_SH_INFO	"sh_info"
592d29b2c44Sab196087@ MSG_STR_SH_LINK	"sh_link"
593d29b2c44Sab196087@ MSG_STR_SH_SIZE	"sh_size"
594d29b2c44Sab196087
595d29b2c44Sab196087
596d29b2c44Sab196087# Format strings
597d29b2c44Sab196087@ MSG_FMT_BKTSTR	"[%s]"
598d29b2c44Sab196087@ MSG_FMT_BKTINT	"[%d]"
599d29b2c44Sab196087@ MSG_FMT_STRNL		"%s\n"
600d29b2c44Sab196087@ MSG_FMT_DECNUMNL	"%d\n"
601d29b2c44Sab196087@ MSG_FMT_HEXNUM	"%#x"
602d29b2c44Sab196087@ MSG_FMT_HEXNUMNL	"%#x\n"
603d29b2c44Sab196087@ MSG_FMT_HEXNUM_QCHR	"%#x ('%c')"
604d29b2c44Sab196087@ MSG_FMT_EI_ELT	"    %-18s%s\n"
605d29b2c44Sab196087
606d29b2c44Sab196087
607d29b2c44Sab196087
608d29b2c44Sab196087
609d29b2c44Sab196087# The following strings represent reserved words, files, pathnames and symbols.
610d29b2c44Sab196087# Reference to this strings is via the MSG_ORIG() macro, and thus no message
611d29b2c44Sab196087# translation is required.
612d29b2c44Sab196087
613d29b2c44Sab196087
614d29b2c44Sab196087# Module name
615d29b2c44Sab196087
616d29b2c44Sab196087@ MSG_MOD_NAME		"ehdr"
617d29b2c44Sab196087
618d29b2c44Sab196087
619d29b2c44Sab196087# Command names
620d29b2c44Sab196087
621d29b2c44Sab196087@ MSG_CMD_DUMP		"dump"
622d29b2c44Sab196087
623d29b2c44Sab196087@ MSG_CMD_E_IDENT	"e_ident"
624d29b2c44Sab196087@ MSG_CMD_E_TYPE	"e_type"
625d29b2c44Sab196087@ MSG_CMD_E_MACHINE	"e_machine"
626d29b2c44Sab196087@ MSG_CMD_E_VERSION	"e_version"
627d29b2c44Sab196087@ MSG_CMD_E_ENTRY	"e_entry"
628d29b2c44Sab196087@ MSG_CMD_E_PHOFF	"e_phoff"
629d29b2c44Sab196087@ MSG_CMD_E_SHOFF	"e_shoff"
630d29b2c44Sab196087@ MSG_CMD_E_FLAGS	"e_flags"
631d29b2c44Sab196087@ MSG_CMD_E_EHSIZE	"e_ehsize"
632d29b2c44Sab196087@ MSG_CMD_E_PHENTSIZE	"e_phentsize"
633d29b2c44Sab196087@ MSG_CMD_E_PHNUM	"e_phnum"
634d29b2c44Sab196087@ MSG_CMD_E_SHENTSIZE	"e_shentsize"
635d29b2c44Sab196087@ MSG_CMD_E_SHNUM	"e_shnum"
636d29b2c44Sab196087@ MSG_CMD_E_SHSTRNDX	"e_shstrndx"
637d29b2c44Sab196087
638d29b2c44Sab196087@ MSG_CMD_EI_MAG0	"ei_mag0"
639d29b2c44Sab196087@ MSG_CMD_EI_MAG1	"ei_mag1"
640d29b2c44Sab196087@ MSG_CMD_EI_MAG2	"ei_mag2"
641d29b2c44Sab196087@ MSG_CMD_EI_MAG3	"ei_mag3"
642d29b2c44Sab196087@ MSG_CMD_EI_CLASS	"ei_class"
643d29b2c44Sab196087@ MSG_CMD_EI_DATA	"ei_data"
644d29b2c44Sab196087@ MSG_CMD_EI_VERSION	"ei_version"
645d29b2c44Sab196087@ MSG_CMD_EI_OSABI	"ei_osabi"
646d29b2c44Sab196087@ MSG_CMD_EI_ABIVERSION	"ei_abiversion"
647