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