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 2008 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 'shdr' module
31
32@ MSG_ID_ELFEDIT_SHDR
33
34
35# Section header format
36@ MSG_ELF_SHDR		"Section Header[%d]:  sh_name: %s\n"
37
38# Debug messages
39
40@ MSG_DEBUG_S_OK	"shdr[%d: %s].%s: value unchanged: %s\n"
41@ MSG_DEBUG_S_CHG	"shdr[%d: %s].%s: change from %s to %s\n"
42@ MSG_DEBUG_LLX_OK	"shdr[%d: %s].%s: value unchanged: %#llx\n"
43@ MSG_DEBUG_LLX_CHG	"shdr[%d: %s].%s: change from %#llx to %#llx\n"
44@ MSG_DEBUG_D_OK	"shdr[%d: %s].%s: value unchanged: %d\n"
45@ MSG_DEBUG_D_CHG	"shdr[%d: %s].%s: change from %d to %d\n"
46@ MSG_DEBUG_CHGSHDR0	"ELF warning: Unexpected direct change to \
47			 section header [0]: Header [0] is used for \
48			 extended section and program headers by the ehdr \
49			 module, and should otherwise be completely zero\n"
50@ MSG_DEBUG_ADDRALIGN	"ELF warning: sh_addralign value is expected to \
51			 be 0, 1, or a power of 2: %s\n"
52
53
54# Module description
55
56@ MSG_MOD_DESC		"Section Header Array"
57
58
59# 1-line description strings
60
61@ MSG_DESC_DUMP		"Dump Section Headers"
62
63@ MSG_DESC_SH_ADDR	"Section memory address"
64@ MSG_DESC_SH_ADDRALIGN	"Section address alignment"
65@ MSG_DESC_SH_ENTSIZE	"Section per-item size"
66@ MSG_DESC_SH_FLAGS	"Section flags"
67@ MSG_DESC_SH_INFO	"Section info"
68@ MSG_DESC_SH_LINK	"Section link"
69@ MSG_DESC_SH_NAME	"Section name"
70@ MSG_DESC_SH_OFFSET	"Section file offset"
71@ MSG_DESC_SH_SIZE	"Section size (bytes)"
72@ MSG_DESC_SH_TYPE	"Section type"
73
74
75# Command option description strings
76
77@ MSG_OPTDESC_SHNDX	"\
78   Interpret the sec argument as a section index rather than\n\
79   as a section name. section can be one of the well known SHN_\n\
80   symbolic constants, or any integer.\n"
81
82@ MSG_OPTDESC_SHTYP	"\
83   Interpret the sec argument as a section type rather than\n\
84   as a section name. section can be one of the well known SHT_\n\
85   symbolic constants, or any integer.\n"
86
87@ MSG_OPTDESC_NAME_OFFSET	"\
88   Interpret the name argument as a string table offset rather\n\
89   than as a string.\n"
90
91@ MSG_OPTDESC_VALUE_SHNAM	"\
92   Interpret the value argument as a section name rather than\n\
93   as an integer. The index of the first section with the\n\
94   specified name will be used as the value.\n"
95
96@ MSG_OPTDESC_VALUE_SHTYP	"\
97   Interpret the value argument as a section type rather than\n\
98   as an integer. The index of the first section of the specified\n\
99   type will be used as the value. value can be one of the well\n\
100   known SHT_ symbolic constants, or any integer.\n"
101
102
103# Command argument descriptions
104
105@ MSG_A1_SEC	"\
106   Section to examine or modify. By default, this argument is\n\
107   interpreted as the name of the desired section. The section\n\
108   index of the first section with the specified name is used.\n\
109   \n\
110   If -shndx is set, then sec is a section index, and is\n\
111   interpreted as an integer, or one of the well known SHN_\n\
112   symbolic constant names.\n\
113   \n\
114   If -shtyp is set, then sec is a section type, and is\n\
115   interpreted as an integer, or one of the well known SHT_\n\
116   symbolic constant names. The section index of the first\n\
117   section with the specified type is used.\n"
118
119@ MSG_A2_DESC_SH_ADDR	"Integer value to set for section address.\n"
120
121@ MSG_A2_DESC_SH_ADDRALIGN "\
122   Integer value to set for section alignment.\n"
123
124@ MSG_A2_DESC_SH_ENTSIZE "\
125   Integer value to set for size of an individual element in\n\
126   a section of fixed-size entries.\n"
127
128@ MSG_A2_DESC_SH_FLAGS "\
129   Section flags. SHF_ flag constants are accepted, as is\n\
130   any integer.\n"
131
132@ MSG_A2_DESC_SH_INFO	"\
133   Integer value to set for symbol sh_info field. The meaning\n\
134   of this value depends on the type of the section.\n"
135
136@ MSG_A2_DESC_SH_LINK	"\
137   Integer value to set for symbol sh_link field. The meaning\n\
138   of this value depends on the type of the section.\n"
139
140@ MSG_A2_DESC_SH_NAME	"\
141   Name to set for section. If the -name_offset option is\n\
142   used, this is an integer offset into the section header\n\
143   string table. Otherwise, it is a string, which will be\n\
144   looked up in the symbol table in order to obtain the needed\n\
145    offset value.\n"
146
147@ MSG_A2_DESC_SH_OFFSET	"\
148   Integer value to set for symbol sh_offset field. The value\n\
149   of sh_offset gives the byte offset from the beginning of\n\
150   the file to the first byte in the section. For SHT_NOBITS\n\
151   sections, this member indicates the conceptual offset in the\n\
152   file, as the section occupies no space in the file.\n"
153
154@ MSG_A2_DESC_SH_SIZE	"\
155   Integer value to set for size of section, in bytes. Unless the\n\
156   section type is SHT_NOBITS, the section occupies sh_size bytes\n\
157   in the file. A section of type SHT_NOBITS can have a nonzero\n\
158   size, but the section occupies no space in the file.\n"
159
160@ MSG_A2_DESC_SH_TYPE	"\
161   Value to set for section type. The value can be an integer,\n\
162   or one of the well known SHT_ symbolic constant names.\n"
163
164
165
166# Help strings
167
168@ MSG_HELP_DUMP	"   \
169   The shdr:dump command is used to display section header\n\
170    information using the same style used by the elfdump program.\n\
171   \n\
172   If shdr:dump is called without arguments, information for every\n\
173   section header in the object is shown. If called with the shndx\n\
174   argument, the section header at that index is displayed.\n"
175
176@ MSG_HELP_SH_ADDR	"   \
177   The shdr:sh_addr command is used to display or alter the\n\
178   starting virtual memory address of the section.\n\
179   \n\
180   If the section appears in the memory image of a process,\n\
181   this member gives the address at which the sections's\n\
182   first byte should reside. Otherwise, the member is expected\n\
183   to contain the value zero.\n\
184   \n\
185   If shdr:sh_addr is called without arguments, the value of\n\
186   sh_addr for every section in the section header array is\n\
187   shown. If called with the shndx argument, the value of the\n\
188   section at that index is displayed. If both arguments are\n\
189   present, the sh_addr field of the section at the specified\n\
190   index is set to the given value.\n"
191
192@ MSG_HELP_SH_ADDRALIGN	"   \
193   The shdr:sh_addralign command is used to display or alter the\n\
194   alignment constraint for the section.\n\
195   \n\
196   Some sections have address alignment constraints. For example,\n\
197   if a section holds a double-word, the system must ensure\n\
198   double-word alignment for the entire section. In this case,\n\
199   the value of sh_addr must be congruent to 0, modulo the value\n\
200   of sh_addralign. Currently, only 0 and positive integral\n\
201   powers of 2 are used in Solaris ELF files. Values 0 and 1\n\
202   mean the section has no alignment constraints.\n\
203   \n\
204   If shdr:sh_addralign is called without arguments, the value\n\
205   of sh_addralign for every section in the section header array\n\
206   is shown. If called with the shndx argument, the value of the\n\
207   section at that index is displayed. If both arguments are\n\
208   present, the sh_addralign field of the section at the specified\n\
209   index is set to the given value.\n"
210
211@ MSG_HELP_SH_ENTSIZE	"   \
212   The shdr:sh_entsize command is used to display or alter the\n\
213   per-item entry size for the section.\n\
214   \n\
215   Some sections hold a table of fixed-size entries, such as a\n\
216   symbol table. For such a section, this member gives the size\n\
217   in bytes of each entry. By convention, the member is set to\n\
218   the value zero if the section does not hold a table of\n\
219   fixed-size entries.\n\
220   \n\
221   If shdr:sh_entsize is called without arguments, the value\n\
222   of sh_entsize for every section in the section header array\n\
223   is shown. If called with the shndx argument, the value of the\n\
224   section at that index is displayed. If both arguments are\n\
225   present, the sh_entsize field of the section at the specified\n\
226   index is set to the given value.\n"
227
228@ MSG_HELP_SH_FLAGS	"   \
229   The shdr:sh_flags command is used to display or alter the\n\
230   flags that are associated with the section.\n\
231   \n\
232   \n\
233   If shdr:sh_flags is called without arguments, the value\n\
234   of sh_flags for every section in the section header array\n\
235   is shown. If called with the shndx argument, the value of\n\
236   the section at that index is displayed. If one or more\n\
237   value arguments are present, the following steps are taken:\n\
238   \n   \
239   o\tAll the value arguments are OR'd together.\n\
240   \n   \
241   o\tIf the -cmp option has been specified, the new value\n\
242   \tis complemented.\n\
243   \n   \
244   o\tThe sh_flags field of the section header is updated with\n\
245   \tthe new value. If -and is specified, the new value is\n\
246   \tAND'd against the existing value. If -or is specified,\n\
247   \tthe new value is OR'd against the existing value. If\n\
248   \tneither -and or -or are specified, the new value replaces\n\
249   \tthe existing value.\n"
250
251@ MSG_HELP_SH_INFO	"   \
252   The shdr:sh_info command is used to display or alter the\n\
253   sh_info field of the specified section.\n\
254   \n\
255   sh_info contains extra information, the interpretation\n\
256   of which depends on the section type.\n\
257   \n\
258   If shdr:sh_info is called without arguments, the value\n\
259   of sh_info for every section in the section header array\n\
260   is shown. If called with the shndx argument, the value of the\n\
261   section at that index is displayed. If both arguments are\n\
262   present, the sh_info field of the section at the specified\n\
263   index is set to the given value.\n"
264
265@ MSG_HELP_SH_LINK	"   \
266   The shdr:sh_link command is used to display or alter the\n\
267   sh_link field of the specified section.\n\
268   \n\
269   sh_link contains extra information, the interpretation\n\
270   of which depends on the section type.\n\
271   \n\
272   If shdr:sh_link is called without arguments, the value\n\
273   of sh_link for every section in the section header array\n\
274   is shown. If called with the shndx argument, the value of the\n\
275   section at that index is displayed. If both arguments are\n\
276   present, the sh_link field of the section at the specified\n\
277   index is set to the given value.\n"
278
279@ MSG_HELP_SH_NAME	"   \
280   The shdr:sh_name command is used to display or alter the\n\
281   name associated with a specified section.\n\
282   \n\
283   The sh_name field of a section header is an index into\n\
284   the section header string table section giving the location\n\
285   of a null terminated string.\n\
286   \n\
287   If shdr:sh_name is called without arguments, the name of\n\
288   every section in the section header array is shown. If called\n\
289   with the shndx argument, the name of the section at that\n\
290   index is displayed. If both arguments are present, the\n\
291   sh_name field of the section at the specified index is set\n\
292   to the given value.\n\
293   \n\
294   When changing the name of a section, you should be aware\n\
295   that the name selected must exist within the section header\n\
296   string table, as it is not possible to add new strings to\n\
297   this string table.\n"
298
299@ MSG_HELP_SH_OFFSET	"   \
300   The shdr:sh_offset command is used to display or alter the\n\
301   sh_offset field of the specified section.\n\
302   \n\
303   sh_offset provides the byte offset from the beginning of\n\
304   the file to the first byte in the section. For a SHT_NOBITS\n\
305   section, this member indicates the conceptual offset in\n\
306   the file, as the section occupies no space in the file.\n\
307   \n\
308   If shdr:sh_offset is called without arguments, the value\n\
309   of sh_offset for every section in the section header array\n\
310   is shown. If called with the shndx argument, the value of the\n\
311   section at that index is displayed. If both arguments are\n\
312   present, the sh_offset field of the section at the specified\n\
313   index is set to the given value.\n"
314
315@ MSG_HELP_SH_SIZE	"   \
316   The shdr:sh_size command is used to display or alter the\n\
317   sh_size field of the specified section.\n\
318   \n\
319   sh_size provides the section's size in bytes. Unless the\n\
320   section type is SHT_NOBITS, the section occupies sh_size\n\
321   bytes in the file. A section of type SHT_NOBITS can have\n\
322   a non-zero size, but the section occupies no space in the file.\n\
323   \n\
324   If shdr:sh_size is called without arguments, the value\n\
325   of sh_size for every section in the section header array\n\
326   is shown. If called with the shndx argument, the value of the\n\
327   section at that index is displayed. If both arguments are\n\
328   present, the sh_size field of the section at the specified\n\
329   index is set to the given value.\n"
330
331@ MSG_HELP_SH_TYPE	"   \
332   The shdr:sh_type command is used to display or alter the\n\
333   sh_type field of the specified section.\n\
334   \n\
335   The type of a section categorizes the section's contents\n\
336   and semantics.\n\
337   \n\
338   If shdr:sh_type is called without arguments, the value\n\
339   of sh_type for every section in the section header array\n\
340   is shown. If called with the shndx argument, the value of the\n\
341   section at that index is displayed. If both arguments are\n\
342   present, the sh_type field of the section at the specified\n\
343   index is set to the given value.\n"
344
345
346
347@ _END_
348
349
350# The following strings represent reserved words, files, pathnames and symbols.
351# Reference to this strings is via the MSG_ORIG() macro, and thus no message
352# translation is required.
353
354
355# Miscellaneous clutter
356@ MSG_STR_EMPTY			""
357@ MSG_STR_NL			"\n"
358@ MSG_STR_MINUS_SHNDX		"-shndx"
359@ MSG_STR_MINUS_SHTYP		"-shtyp"
360@ MSG_STR_MINUS_NAME_OFFSET	"-name_offset"
361@ MSG_STR_MINUS_VALUE_SHNAM	"-value_shnam"
362@ MSG_STR_MINUS_VALUE_SHTYP	"-value_shtyp"
363@ MSG_STR_NAME			"name"
364@ MSG_STR_SEC			"sec"
365@ MSG_STR_VALUE			"value"
366
367
368# Format strings
369
370@ MSG_FMT_WORDVALNL		"%u\n"
371@ MSG_FMT_WORDHEXNL		"%#x\n"
372@ MSG_FMT_XWORDHEXNL		"%#llx\n"
373@ MSG_FMT_STRNL			"%s\n"
374
375
376# Module name
377
378@ MSG_MOD_NAME		"shdr"
379
380
381# Command names
382
383@ MSG_CMD_DUMP		"dump"
384
385@ MSG_CMD_SH_ADDR	"sh_addr"
386@ MSG_CMD_SH_ADDRALIGN	"sh_addralign"
387@ MSG_CMD_SH_ENTSIZE	"sh_entsize"
388@ MSG_CMD_SH_FLAGS	"sh_flags"
389@ MSG_CMD_SH_INFO	"sh_info"
390@ MSG_CMD_SH_LINK	"sh_link"
391@ MSG_CMD_SH_NAME	"sh_name"
392@ MSG_CMD_SH_OFFSET	"sh_offset"
393@ MSG_CMD_SH_SIZE	"sh_size"
394@ MSG_CMD_SH_TYPE	"sh_type"
395