xref: /onnv-gate/usr/src/cmd/sgs/elfedit/common/elfconst.c (revision 5088:26c540f30cd3)
1*5088Sab196087 /*
2*5088Sab196087  * CDDL HEADER START
3*5088Sab196087  *
4*5088Sab196087  * The contents of this file are subject to the terms of the
5*5088Sab196087  * Common Development and Distribution License (the "License").
6*5088Sab196087  * You may not use this file except in compliance with the License.
7*5088Sab196087  *
8*5088Sab196087  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*5088Sab196087  * or http://www.opensolaris.org/os/licensing.
10*5088Sab196087  * See the License for the specific language governing permissions
11*5088Sab196087  * and limitations under the License.
12*5088Sab196087  *
13*5088Sab196087  * When distributing Covered Code, include this CDDL HEADER in each
14*5088Sab196087  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*5088Sab196087  * If applicable, add the following below this CDDL HEADER, with the
16*5088Sab196087  * fields enclosed by brackets "[]" replaced with your own identifying
17*5088Sab196087  * information: Portions Copyright [yyyy] [name of copyright owner]
18*5088Sab196087  *
19*5088Sab196087  * CDDL HEADER END
20*5088Sab196087  */
21*5088Sab196087 
22*5088Sab196087 /*
23*5088Sab196087  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
24*5088Sab196087  * Use is subject to license terms.
25*5088Sab196087  */
26*5088Sab196087 #pragma ident	"%Z%%M%	%I%	%E% SMI"
27*5088Sab196087 
28*5088Sab196087 #include	<stdlib.h>
29*5088Sab196087 #include	<stdio.h>
30*5088Sab196087 #include	<unistd.h>
31*5088Sab196087 #include	<libintl.h>
32*5088Sab196087 #include	<libelf.h>
33*5088Sab196087 #include	<sys/machelf.h>
34*5088Sab196087 #include	<link.h>
35*5088Sab196087 #include	<strings.h>
36*5088Sab196087 #include	<ctype.h>
37*5088Sab196087 #include	<elfedit.h>
38*5088Sab196087 #include	<_elfedit.h>
39*5088Sab196087 #include	<sys/elf_SPARC.h>
40*5088Sab196087 #include	<sys/elf_amd64.h>
41*5088Sab196087 #include	<sys/auxv_386.h>
42*5088Sab196087 #include	<sys/auxv_SPARC.h>
43*5088Sab196087 #include	<msg.h>
44*5088Sab196087 
45*5088Sab196087 
46*5088Sab196087 
47*5088Sab196087 /*
48*5088Sab196087  * This file contains support for mapping well known ELF constants
49*5088Sab196087  * to their numeric values. It is a layer on top of the elfedit_atoui()
50*5088Sab196087  * routines defined in util.c. The idea is that centralizing all the
51*5088Sab196087  * support for such constants will improve consistency between modules,
52*5088Sab196087  * allow for sharing of commonly needed items, and make the modules
53*5088Sab196087  * simpler.
54*5088Sab196087  */
55*5088Sab196087 
56*5088Sab196087 
57*5088Sab196087 
58*5088Sab196087 
59*5088Sab196087 /*
60*5088Sab196087  * elfedit output style, with and without leading -o
61*5088Sab196087  */
62*5088Sab196087 static elfedit_atoui_sym_t sym_outstyle[] = {
63*5088Sab196087 	{ MSG_ORIG(MSG_STR_DEFAULT),		ELFEDIT_OUTSTYLE_DEFAULT },
64*5088Sab196087 	{ MSG_ORIG(MSG_STR_SIMPLE),		ELFEDIT_OUTSTYLE_SIMPLE },
65*5088Sab196087 	{ MSG_ORIG(MSG_STR_NUM),		ELFEDIT_OUTSTYLE_NUM },
66*5088Sab196087 	{ NULL }
67*5088Sab196087 };
68*5088Sab196087 static elfedit_atoui_sym_t sym_minus_o_outstyle[] = {
69*5088Sab196087 	{ MSG_ORIG(MSG_STR_MINUS_O_DEFAULT),	ELFEDIT_OUTSTYLE_DEFAULT },
70*5088Sab196087 	{ MSG_ORIG(MSG_STR_MINUS_O_SIMPLE),	ELFEDIT_OUTSTYLE_SIMPLE },
71*5088Sab196087 	{ MSG_ORIG(MSG_STR_MINUS_O_NUM),	ELFEDIT_OUTSTYLE_NUM },
72*5088Sab196087 	{ NULL }
73*5088Sab196087 };
74*5088Sab196087 
75*5088Sab196087 
76*5088Sab196087 /*
77*5088Sab196087  * Booleans
78*5088Sab196087  */
79*5088Sab196087 static elfedit_atoui_sym_t sym_bool[] = {
80*5088Sab196087 	{ MSG_ORIG(MSG_STR_T),			1 },
81*5088Sab196087 	{ MSG_ORIG(MSG_STR_F),			0 },
82*5088Sab196087 	{ MSG_ORIG(MSG_STR_TRUE),		1 },
83*5088Sab196087 	{ MSG_ORIG(MSG_STR_FALSE),		0 },
84*5088Sab196087 	{ MSG_ORIG(MSG_STR_ON),			1 },
85*5088Sab196087 	{ MSG_ORIG(MSG_STR_OFF),		0 },
86*5088Sab196087 	{ MSG_ORIG(MSG_STR_YES),		1 },
87*5088Sab196087 	{ MSG_ORIG(MSG_STR_NO),			0 },
88*5088Sab196087 	{ MSG_ORIG(MSG_STR_Y),			1 },
89*5088Sab196087 	{ MSG_ORIG(MSG_STR_N),			0 },
90*5088Sab196087 	{ NULL }
91*5088Sab196087 };
92*5088Sab196087 
93*5088Sab196087 /*
94*5088Sab196087  * ELF section indexes with support for the special index names.
95*5088Sab196087  */
96*5088Sab196087 static elfedit_atoui_sym_t sym_shn[] = {
97*5088Sab196087 	{ MSG_ORIG(MSG_SHN_UNDEF),		SHN_UNDEF },
98*5088Sab196087 	{ MSG_ORIG(MSG_SHN_UNDEF_ALT1),		SHN_UNDEF },
99*5088Sab196087 
100*5088Sab196087 	{ MSG_ORIG(MSG_SHN_SUNW_IGNORE),	SHN_SUNW_IGNORE },
101*5088Sab196087 	{ MSG_ORIG(MSG_SHN_SUNW_IGNORE_ALT1),	SHN_SUNW_IGNORE },
102*5088Sab196087 
103*5088Sab196087 	{ MSG_ORIG(MSG_SHN_BEFORE),		SHN_BEFORE },
104*5088Sab196087 	{ MSG_ORIG(MSG_SHN_BEFORE_ALT1),	SHN_BEFORE },
105*5088Sab196087 
106*5088Sab196087 	{ MSG_ORIG(MSG_SHN_AFTER),		SHN_AFTER },
107*5088Sab196087 	{ MSG_ORIG(MSG_SHN_AFTER_ALT1), 	SHN_AFTER },
108*5088Sab196087 
109*5088Sab196087 	{ MSG_ORIG(MSG_SHN_AMD64_LCOMMON), 	SHN_AMD64_LCOMMON },
110*5088Sab196087 	{ MSG_ORIG(MSG_SHN_AMD64_LCOMMON_ALT1),	SHN_AMD64_LCOMMON },
111*5088Sab196087 
112*5088Sab196087 	{ MSG_ORIG(MSG_SHN_ABS),		SHN_ABS },
113*5088Sab196087 	{ MSG_ORIG(MSG_SHN_ABS_ALT1),		SHN_ABS },
114*5088Sab196087 
115*5088Sab196087 	{ MSG_ORIG(MSG_SHN_COMMON),		SHN_COMMON },
116*5088Sab196087 	{ MSG_ORIG(MSG_SHN_COMMON_ALT1),	SHN_COMMON },
117*5088Sab196087 
118*5088Sab196087 	{ MSG_ORIG(MSG_SHN_XINDEX),		SHN_XINDEX },
119*5088Sab196087 	{ MSG_ORIG(MSG_SHN_XINDEX_ALT1),	SHN_XINDEX },
120*5088Sab196087 
121*5088Sab196087 	{ NULL }
122*5088Sab196087 };
123*5088Sab196087 
124*5088Sab196087 /*
125*5088Sab196087  * ELF section types.
126*5088Sab196087  */
127*5088Sab196087 static elfedit_atoui_sym_t sym_sht[] = {
128*5088Sab196087 	{ MSG_ORIG(MSG_SHT_NULL),		SHT_NULL },
129*5088Sab196087 	{ MSG_ORIG(MSG_SHT_NULL_ALT1),		SHT_NULL },
130*5088Sab196087 
131*5088Sab196087 	{ MSG_ORIG(MSG_SHT_PROGBITS),		SHT_PROGBITS },
132*5088Sab196087 	{ MSG_ORIG(MSG_SHT_PROGBITS_ALT1),	SHT_PROGBITS },
133*5088Sab196087 
134*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SYMTAB),		SHT_SYMTAB },
135*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SYMTAB_ALT1),	SHT_SYMTAB },
136*5088Sab196087 
137*5088Sab196087 	{ MSG_ORIG(MSG_SHT_STRTAB),		SHT_STRTAB },
138*5088Sab196087 	{ MSG_ORIG(MSG_SHT_STRTAB_ALT1),	SHT_STRTAB },
139*5088Sab196087 
140*5088Sab196087 	{ MSG_ORIG(MSG_SHT_RELA),		SHT_RELA },
141*5088Sab196087 	{ MSG_ORIG(MSG_SHT_RELA_ALT1),		SHT_RELA },
142*5088Sab196087 
143*5088Sab196087 	{ MSG_ORIG(MSG_SHT_HASH),		SHT_HASH },
144*5088Sab196087 	{ MSG_ORIG(MSG_SHT_HASH_ALT1),		SHT_HASH },
145*5088Sab196087 
146*5088Sab196087 	{ MSG_ORIG(MSG_SHT_DYNAMIC),		SHT_DYNAMIC },
147*5088Sab196087 	{ MSG_ORIG(MSG_SHT_DYNAMIC_ALT1),	SHT_DYNAMIC },
148*5088Sab196087 
149*5088Sab196087 	{ MSG_ORIG(MSG_SHT_NOTE),		SHT_NOTE },
150*5088Sab196087 	{ MSG_ORIG(MSG_SHT_NOTE_ALT1),		SHT_NOTE },
151*5088Sab196087 
152*5088Sab196087 	{ MSG_ORIG(MSG_SHT_NOBITS),		SHT_NOBITS },
153*5088Sab196087 	{ MSG_ORIG(MSG_SHT_NOBITS_ALT1),	SHT_NOBITS },
154*5088Sab196087 
155*5088Sab196087 	{ MSG_ORIG(MSG_SHT_REL),		SHT_REL },
156*5088Sab196087 	{ MSG_ORIG(MSG_SHT_REL_ALT1),		SHT_REL },
157*5088Sab196087 
158*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SHLIB),		SHT_SHLIB },
159*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SHLIB_ALT1),		SHT_SHLIB },
160*5088Sab196087 
161*5088Sab196087 	{ MSG_ORIG(MSG_SHT_DYNSYM),		SHT_DYNSYM },
162*5088Sab196087 	{ MSG_ORIG(MSG_SHT_DYNSYM_ALT1),	SHT_DYNSYM },
163*5088Sab196087 
164*5088Sab196087 	{ MSG_ORIG(MSG_SHT_INIT_ARRAY),		SHT_INIT_ARRAY },
165*5088Sab196087 	{ MSG_ORIG(MSG_SHT_INIT_ARRAY_ALT1),	SHT_INIT_ARRAY },
166*5088Sab196087 
167*5088Sab196087 	{ MSG_ORIG(MSG_SHT_FINI_ARRAY),		SHT_FINI_ARRAY },
168*5088Sab196087 	{ MSG_ORIG(MSG_SHT_FINI_ARRAY_ALT1),	SHT_FINI_ARRAY },
169*5088Sab196087 
170*5088Sab196087 	{ MSG_ORIG(MSG_SHT_PREINIT_ARRAY),	SHT_PREINIT_ARRAY },
171*5088Sab196087 	{ MSG_ORIG(MSG_SHT_PREINIT_ARRAY_ALT1),	SHT_PREINIT_ARRAY },
172*5088Sab196087 
173*5088Sab196087 	{ MSG_ORIG(MSG_SHT_GROUP),		SHT_GROUP },
174*5088Sab196087 	{ MSG_ORIG(MSG_SHT_GROUP_ALT1),		SHT_GROUP },
175*5088Sab196087 
176*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SYMTAB_SHNDX),	SHT_SYMTAB_SHNDX },
177*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SYMTAB_SHNDX_ALT1),	SHT_SYMTAB_SHNDX },
178*5088Sab196087 
179*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_SYMSORT),	SHT_SUNW_symsort },
180*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_SYMSORT_ALT1),	SHT_SUNW_symsort },
181*5088Sab196087 
182*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_TLSSORT),	SHT_SUNW_tlssort },
183*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_TLSSORT_ALT1),	SHT_SUNW_tlssort },
184*5088Sab196087 
185*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_LDYNSYM),	SHT_SUNW_LDYNSYM },
186*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_LDYNSYM_ALT1),	SHT_SUNW_LDYNSYM },
187*5088Sab196087 
188*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_DOF),		SHT_SUNW_dof },
189*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_DOF_ALT1),	SHT_SUNW_dof },
190*5088Sab196087 
191*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_CAP),		SHT_SUNW_cap },
192*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_CAP_ALT1),	SHT_SUNW_cap },
193*5088Sab196087 
194*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_SIGNATURE),	SHT_SUNW_SIGNATURE },
195*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_SIGNATURE_ALT1), SHT_SUNW_SIGNATURE },
196*5088Sab196087 
197*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_ANNOTATE),	SHT_SUNW_ANNOTATE },
198*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_ANNOTATE_ALT1),	SHT_SUNW_ANNOTATE },
199*5088Sab196087 
200*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_DEBUGSTR),	SHT_SUNW_DEBUGSTR },
201*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_DEBUGSTR_ALT1),	SHT_SUNW_DEBUGSTR },
202*5088Sab196087 
203*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_DEBUG),		SHT_SUNW_DEBUG },
204*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_DEBUG_ALT1),	SHT_SUNW_DEBUG },
205*5088Sab196087 
206*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_MOVE),		SHT_SUNW_move },
207*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_MOVE_ALT1),	SHT_SUNW_move },
208*5088Sab196087 
209*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_COMDAT),	SHT_SUNW_COMDAT },
210*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_COMDAT_ALT1),	SHT_SUNW_COMDAT },
211*5088Sab196087 
212*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_SYMINFO),	SHT_SUNW_syminfo },
213*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_SYMINFO_ALT1),	SHT_SUNW_syminfo },
214*5088Sab196087 
215*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_VERDEF),	SHT_SUNW_verdef },
216*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_VERDEF_ALT1),	SHT_SUNW_verdef },
217*5088Sab196087 
218*5088Sab196087 	{ MSG_ORIG(MSG_SHT_GNU_VERDEF),		SHT_GNU_verdef },
219*5088Sab196087 	{ MSG_ORIG(MSG_SHT_GNU_VERDEF_ALT1),	SHT_GNU_verdef },
220*5088Sab196087 
221*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_VERNEED),	SHT_SUNW_verneed },
222*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_VERNEED_ALT1),	SHT_SUNW_verneed },
223*5088Sab196087 
224*5088Sab196087 	{ MSG_ORIG(MSG_SHT_GNU_VERNEED),	SHT_GNU_verneed },
225*5088Sab196087 	{ MSG_ORIG(MSG_SHT_GNU_VERNEED_ALT1),	SHT_GNU_verneed },
226*5088Sab196087 
227*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_VERSYM),	SHT_SUNW_versym },
228*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_VERSYM_ALT1),	SHT_SUNW_versym },
229*5088Sab196087 
230*5088Sab196087 	{ MSG_ORIG(MSG_SHT_GNU_VERSYM),		SHT_GNU_versym },
231*5088Sab196087 	{ MSG_ORIG(MSG_SHT_GNU_VERSYM_ALT1),	SHT_GNU_versym },
232*5088Sab196087 
233*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SPARC_GOTDATA),	SHT_SPARC_GOTDATA },
234*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SPARC_GOTDATA_ALT1),	SHT_SPARC_GOTDATA },
235*5088Sab196087 
236*5088Sab196087 	{ MSG_ORIG(MSG_SHT_AMD64_UNWIND),	SHT_AMD64_UNWIND },
237*5088Sab196087 	{ MSG_ORIG(MSG_SHT_AMD64_UNWIND_ALT1),	SHT_AMD64_UNWIND },
238*5088Sab196087 
239*5088Sab196087 	{ NULL }
240*5088Sab196087 };
241*5088Sab196087 
242*5088Sab196087 /*
243*5088Sab196087  * ELF section types.
244*5088Sab196087  */
245*5088Sab196087 static elfedit_atoui_sym_t sym_sht_strtab[] = {
246*5088Sab196087 	{ MSG_ORIG(MSG_SHT_STRTAB),		SHT_STRTAB },
247*5088Sab196087 	{ MSG_ORIG(MSG_SHT_STRTAB_ALT1),	SHT_STRTAB },
248*5088Sab196087 
249*5088Sab196087 	{ NULL }
250*5088Sab196087 };
251*5088Sab196087 
252*5088Sab196087 
253*5088Sab196087 /*
254*5088Sab196087  * ELF section types for symbol tables
255*5088Sab196087  */
256*5088Sab196087 static elfedit_atoui_sym_t sym_sht_allsymtab[] = {
257*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SYMTAB),		SHT_SYMTAB },
258*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SYMTAB_ALT1),	SHT_SYMTAB },
259*5088Sab196087 
260*5088Sab196087 	{ MSG_ORIG(MSG_SHT_DYNSYM),		SHT_DYNSYM },
261*5088Sab196087 	{ MSG_ORIG(MSG_SHT_DYNSYM_ALT1),	SHT_DYNSYM },
262*5088Sab196087 
263*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_LDYNSYM),	SHT_SUNW_LDYNSYM },
264*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_LDYNSYM_ALT1),	SHT_SUNW_LDYNSYM },
265*5088Sab196087 
266*5088Sab196087 	{ NULL }
267*5088Sab196087 };
268*5088Sab196087 
269*5088Sab196087 /*
270*5088Sab196087  * ELF section types for SHT_SYMTAB
271*5088Sab196087  */
272*5088Sab196087 static elfedit_atoui_sym_t sym_sht_symtab[] = {
273*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SYMTAB),		SHT_SYMTAB },
274*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SYMTAB_ALT1),	SHT_SYMTAB },
275*5088Sab196087 
276*5088Sab196087 	{ NULL }
277*5088Sab196087 };
278*5088Sab196087 
279*5088Sab196087 /*
280*5088Sab196087  * ELF section types for SHT_SYMTAB
281*5088Sab196087  */
282*5088Sab196087 static elfedit_atoui_sym_t sym_sht_dynsym[] = {
283*5088Sab196087 	{ MSG_ORIG(MSG_SHT_DYNSYM),		SHT_DYNSYM },
284*5088Sab196087 	{ MSG_ORIG(MSG_SHT_DYNSYM_ALT1),	SHT_DYNSYM },
285*5088Sab196087 
286*5088Sab196087 	{ NULL }
287*5088Sab196087 };
288*5088Sab196087 
289*5088Sab196087 /*
290*5088Sab196087  * ELF section types for SHT_SUNW_LDYNSYM
291*5088Sab196087  */
292*5088Sab196087 static elfedit_atoui_sym_t sym_sht_ldynsym[] = {
293*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_LDYNSYM),	SHT_SUNW_LDYNSYM },
294*5088Sab196087 	{ MSG_ORIG(MSG_SHT_SUNW_LDYNSYM_ALT1),	SHT_SUNW_LDYNSYM },
295*5088Sab196087 
296*5088Sab196087 	{ NULL }
297*5088Sab196087 };
298*5088Sab196087 
299*5088Sab196087 /*
300*5088Sab196087  * ELF dynamic tag DT_ values
301*5088Sab196087  */
302*5088Sab196087 static elfedit_atoui_sym_t sym_dt[] = {
303*5088Sab196087 	{ MSG_ORIG(MSG_DT_NULL),		DT_NULL },
304*5088Sab196087 	{ MSG_ORIG(MSG_DT_NULL_ALT1),		DT_NULL },
305*5088Sab196087 
306*5088Sab196087 	{ MSG_ORIG(MSG_DT_NEEDED),		DT_NEEDED },
307*5088Sab196087 	{ MSG_ORIG(MSG_DT_NEEDED_ALT1),		DT_NEEDED },
308*5088Sab196087 
309*5088Sab196087 	{ MSG_ORIG(MSG_DT_PLTRELSZ),		DT_PLTRELSZ },
310*5088Sab196087 	{ MSG_ORIG(MSG_DT_PLTRELSZ_ALT1),	DT_PLTRELSZ },
311*5088Sab196087 
312*5088Sab196087 	{ MSG_ORIG(MSG_DT_PLTGOT),		DT_PLTGOT },
313*5088Sab196087 	{ MSG_ORIG(MSG_DT_PLTGOT_ALT1),		DT_PLTGOT },
314*5088Sab196087 
315*5088Sab196087 	{ MSG_ORIG(MSG_DT_HASH),		DT_HASH },
316*5088Sab196087 	{ MSG_ORIG(MSG_DT_HASH_ALT1),		DT_HASH },
317*5088Sab196087 
318*5088Sab196087 	{ MSG_ORIG(MSG_DT_STRTAB),		DT_STRTAB },
319*5088Sab196087 	{ MSG_ORIG(MSG_DT_STRTAB_ALT1),		DT_STRTAB },
320*5088Sab196087 
321*5088Sab196087 	{ MSG_ORIG(MSG_DT_SYMTAB),		DT_SYMTAB },
322*5088Sab196087 	{ MSG_ORIG(MSG_DT_SYMTAB_ALT1),		DT_SYMTAB },
323*5088Sab196087 
324*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELA),		DT_RELA },
325*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELA_ALT1),		DT_RELA },
326*5088Sab196087 
327*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELASZ),		DT_RELASZ },
328*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELASZ_ALT1),		DT_RELASZ },
329*5088Sab196087 
330*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELAENT),		DT_RELAENT },
331*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELAENT_ALT1),	DT_RELAENT },
332*5088Sab196087 
333*5088Sab196087 	{ MSG_ORIG(MSG_DT_STRSZ),		DT_STRSZ },
334*5088Sab196087 	{ MSG_ORIG(MSG_DT_STRSZ_ALT1),		DT_STRSZ },
335*5088Sab196087 
336*5088Sab196087 	{ MSG_ORIG(MSG_DT_SYMENT),		DT_SYMENT },
337*5088Sab196087 	{ MSG_ORIG(MSG_DT_SYMENT_ALT1),		DT_SYMENT },
338*5088Sab196087 
339*5088Sab196087 	{ MSG_ORIG(MSG_DT_INIT),		DT_INIT },
340*5088Sab196087 	{ MSG_ORIG(MSG_DT_INIT_ALT1),		DT_INIT },
341*5088Sab196087 
342*5088Sab196087 	{ MSG_ORIG(MSG_DT_FINI),		DT_FINI },
343*5088Sab196087 	{ MSG_ORIG(MSG_DT_FINI_ALT1),		DT_FINI },
344*5088Sab196087 
345*5088Sab196087 	{ MSG_ORIG(MSG_DT_SONAME),		DT_SONAME },
346*5088Sab196087 	{ MSG_ORIG(MSG_DT_SONAME_ALT1),		DT_SONAME },
347*5088Sab196087 
348*5088Sab196087 	{ MSG_ORIG(MSG_DT_RPATH),		DT_RPATH },
349*5088Sab196087 	{ MSG_ORIG(MSG_DT_RPATH_ALT1),		DT_RPATH },
350*5088Sab196087 
351*5088Sab196087 	{ MSG_ORIG(MSG_DT_SYMBOLIC),		DT_SYMBOLIC },
352*5088Sab196087 	{ MSG_ORIG(MSG_DT_SYMBOLIC_ALT1),	DT_SYMBOLIC },
353*5088Sab196087 
354*5088Sab196087 	{ MSG_ORIG(MSG_DT_REL),			DT_REL },
355*5088Sab196087 	{ MSG_ORIG(MSG_DT_REL_ALT1),		DT_REL },
356*5088Sab196087 
357*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELSZ),		DT_RELSZ },
358*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELSZ_ALT1),		DT_RELSZ },
359*5088Sab196087 
360*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELENT),		DT_RELENT },
361*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELENT_ALT1),		DT_RELENT },
362*5088Sab196087 
363*5088Sab196087 	{ MSG_ORIG(MSG_DT_PLTREL),		DT_PLTREL },
364*5088Sab196087 	{ MSG_ORIG(MSG_DT_PLTREL_ALT1),		DT_PLTREL },
365*5088Sab196087 
366*5088Sab196087 	{ MSG_ORIG(MSG_DT_DEBUG),		DT_DEBUG },
367*5088Sab196087 	{ MSG_ORIG(MSG_DT_DEBUG_ALT1),		DT_DEBUG },
368*5088Sab196087 
369*5088Sab196087 	{ MSG_ORIG(MSG_DT_TEXTREL),		DT_TEXTREL },
370*5088Sab196087 	{ MSG_ORIG(MSG_DT_TEXTREL_ALT1),	DT_TEXTREL },
371*5088Sab196087 
372*5088Sab196087 	{ MSG_ORIG(MSG_DT_JMPREL),		DT_JMPREL },
373*5088Sab196087 	{ MSG_ORIG(MSG_DT_JMPREL_ALT1),		DT_JMPREL },
374*5088Sab196087 
375*5088Sab196087 	{ MSG_ORIG(MSG_DT_BIND_NOW),		DT_BIND_NOW },
376*5088Sab196087 	{ MSG_ORIG(MSG_DT_BIND_NOW_ALT1),	DT_BIND_NOW },
377*5088Sab196087 
378*5088Sab196087 	{ MSG_ORIG(MSG_DT_INIT_ARRAY),		DT_INIT_ARRAY },
379*5088Sab196087 	{ MSG_ORIG(MSG_DT_INIT_ARRAY_ALT1),	DT_INIT_ARRAY },
380*5088Sab196087 
381*5088Sab196087 	{ MSG_ORIG(MSG_DT_FINI_ARRAY),		DT_FINI_ARRAY },
382*5088Sab196087 	{ MSG_ORIG(MSG_DT_FINI_ARRAY_ALT1),	DT_FINI_ARRAY },
383*5088Sab196087 
384*5088Sab196087 	{ MSG_ORIG(MSG_DT_INIT_ARRAYSZ),	DT_INIT_ARRAYSZ },
385*5088Sab196087 	{ MSG_ORIG(MSG_DT_INIT_ARRAYSZ_ALT1),	DT_INIT_ARRAYSZ },
386*5088Sab196087 
387*5088Sab196087 	{ MSG_ORIG(MSG_DT_FINI_ARRAYSZ),	DT_FINI_ARRAYSZ },
388*5088Sab196087 	{ MSG_ORIG(MSG_DT_FINI_ARRAYSZ_ALT1),	DT_FINI_ARRAYSZ },
389*5088Sab196087 
390*5088Sab196087 	{ MSG_ORIG(MSG_DT_RUNPATH),		DT_RUNPATH },
391*5088Sab196087 	{ MSG_ORIG(MSG_DT_RUNPATH_ALT1),	DT_RUNPATH },
392*5088Sab196087 
393*5088Sab196087 	{ MSG_ORIG(MSG_DT_FLAGS),		DT_FLAGS },
394*5088Sab196087 	{ MSG_ORIG(MSG_DT_FLAGS_ALT1),		DT_FLAGS },
395*5088Sab196087 
396*5088Sab196087 	{ MSG_ORIG(MSG_DT_PREINIT_ARRAY),	DT_PREINIT_ARRAY },
397*5088Sab196087 	{ MSG_ORIG(MSG_DT_PREINIT_ARRAY_ALT1),	DT_PREINIT_ARRAY },
398*5088Sab196087 
399*5088Sab196087 	{ MSG_ORIG(MSG_DT_PREINIT_ARRAYSZ),	DT_PREINIT_ARRAYSZ },
400*5088Sab196087 	{ MSG_ORIG(MSG_DT_PREINIT_ARRAYSZ_ALT1), DT_PREINIT_ARRAYSZ },
401*5088Sab196087 
402*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_AUXILIARY),	DT_SUNW_AUXILIARY },
403*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_AUXILIARY_ALT1),	DT_SUNW_AUXILIARY },
404*5088Sab196087 
405*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_RTLDINF),	DT_SUNW_RTLDINF },
406*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_RTLDINF_ALT1),	DT_SUNW_RTLDINF },
407*5088Sab196087 
408*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_FILTER),		DT_SUNW_FILTER },
409*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_FILTER_ALT1),	DT_SUNW_FILTER },
410*5088Sab196087 
411*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_CAP),		DT_SUNW_CAP },
412*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_CAP_ALT1),	DT_SUNW_CAP },
413*5088Sab196087 
414*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_SYMTAB),		DT_SUNW_SYMTAB },
415*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_SYMTAB_ALT1),	DT_SUNW_SYMTAB },
416*5088Sab196087 
417*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_SYMSZ),		DT_SUNW_SYMSZ },
418*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_SYMSZ_ALT1),	DT_SUNW_SYMSZ },
419*5088Sab196087 
420*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_SORTENT),	DT_SUNW_SORTENT },
421*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_SORTENT_ALT1),	DT_SUNW_SORTENT },
422*5088Sab196087 
423*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_SYMSORT),	DT_SUNW_SYMSORT },
424*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_SYMSORT_ALT1),	DT_SUNW_SYMSORT },
425*5088Sab196087 
426*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_SYMSORTSZ),	DT_SUNW_SYMSORTSZ },
427*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_SYMSORTSZ_ALT1),	DT_SUNW_SYMSORTSZ },
428*5088Sab196087 
429*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_TLSSORT),	DT_SUNW_TLSSORT },
430*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_TLSSORT_ALT1),	DT_SUNW_TLSSORT },
431*5088Sab196087 
432*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_TLSSORTSZ),	DT_SUNW_TLSSORTSZ },
433*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_TLSSORTSZ_ALT1),	DT_SUNW_TLSSORTSZ },
434*5088Sab196087 
435*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_STRPAD),		DT_SUNW_STRPAD },
436*5088Sab196087 	{ MSG_ORIG(MSG_DT_SUNW_STRPAD_ALT1),	DT_SUNW_STRPAD },
437*5088Sab196087 
438*5088Sab196087 	{ MSG_ORIG(MSG_DT_SPARC_REGISTER),	DT_SPARC_REGISTER },
439*5088Sab196087 	{ MSG_ORIG(MSG_DT_SPARC_REGISTER_ALT1),	DT_SPARC_REGISTER },
440*5088Sab196087 
441*5088Sab196087 	{ MSG_ORIG(MSG_DT_DEPRECATED_SPARC_REGISTER),
442*5088Sab196087 						DT_DEPRECATED_SPARC_REGISTER },
443*5088Sab196087 	{ MSG_ORIG(MSG_DT_DEPRECATED_SPARC_REGISTER_ALT1),
444*5088Sab196087 						DT_DEPRECATED_SPARC_REGISTER },
445*5088Sab196087 
446*5088Sab196087 	{ MSG_ORIG(MSG_DT_CHECKSUM),		DT_CHECKSUM },
447*5088Sab196087 	{ MSG_ORIG(MSG_DT_CHECKSUM_ALT1),	DT_CHECKSUM },
448*5088Sab196087 
449*5088Sab196087 	{ MSG_ORIG(MSG_DT_PLTPADSZ),		DT_PLTPADSZ },
450*5088Sab196087 	{ MSG_ORIG(MSG_DT_PLTPADSZ_ALT1),	DT_PLTPADSZ },
451*5088Sab196087 
452*5088Sab196087 	{ MSG_ORIG(MSG_DT_MOVEENT),		DT_MOVEENT },
453*5088Sab196087 	{ MSG_ORIG(MSG_DT_MOVEENT_ALT1),	DT_MOVEENT },
454*5088Sab196087 
455*5088Sab196087 	{ MSG_ORIG(MSG_DT_MOVESZ),		DT_MOVESZ },
456*5088Sab196087 	{ MSG_ORIG(MSG_DT_MOVESZ_ALT1),		DT_MOVESZ },
457*5088Sab196087 
458*5088Sab196087 	{ MSG_ORIG(MSG_DT_FEATURE_1),		DT_FEATURE_1 },
459*5088Sab196087 	{ MSG_ORIG(MSG_DT_FEATURE_1_ALT1),	DT_FEATURE_1 },
460*5088Sab196087 
461*5088Sab196087 	{ MSG_ORIG(MSG_DT_POSFLAG_1),		DT_POSFLAG_1 },
462*5088Sab196087 	{ MSG_ORIG(MSG_DT_POSFLAG_1_ALT1),	DT_POSFLAG_1 },
463*5088Sab196087 
464*5088Sab196087 	{ MSG_ORIG(MSG_DT_SYMINSZ),		DT_SYMINSZ },
465*5088Sab196087 	{ MSG_ORIG(MSG_DT_SYMINSZ_ALT1),	DT_SYMINSZ },
466*5088Sab196087 
467*5088Sab196087 	{ MSG_ORIG(MSG_DT_SYMINENT),		DT_SYMINENT },
468*5088Sab196087 	{ MSG_ORIG(MSG_DT_SYMINENT_ALT1),	DT_SYMINENT },
469*5088Sab196087 
470*5088Sab196087 	{ MSG_ORIG(MSG_DT_CONFIG),		DT_CONFIG },
471*5088Sab196087 	{ MSG_ORIG(MSG_DT_CONFIG_ALT1),		DT_CONFIG },
472*5088Sab196087 
473*5088Sab196087 	{ MSG_ORIG(MSG_DT_DEPAUDIT),		DT_DEPAUDIT },
474*5088Sab196087 	{ MSG_ORIG(MSG_DT_DEPAUDIT_ALT1),	DT_DEPAUDIT },
475*5088Sab196087 
476*5088Sab196087 	{ MSG_ORIG(MSG_DT_AUDIT),		DT_AUDIT },
477*5088Sab196087 	{ MSG_ORIG(MSG_DT_AUDIT_ALT1),		DT_AUDIT },
478*5088Sab196087 
479*5088Sab196087 	{ MSG_ORIG(MSG_DT_PLTPAD),		DT_PLTPAD },
480*5088Sab196087 	{ MSG_ORIG(MSG_DT_PLTPAD_ALT1),		DT_PLTPAD },
481*5088Sab196087 
482*5088Sab196087 	{ MSG_ORIG(MSG_DT_MOVETAB),		DT_MOVETAB },
483*5088Sab196087 	{ MSG_ORIG(MSG_DT_MOVETAB_ALT1),	DT_MOVETAB },
484*5088Sab196087 
485*5088Sab196087 	{ MSG_ORIG(MSG_DT_SYMINFO),		DT_SYMINFO },
486*5088Sab196087 	{ MSG_ORIG(MSG_DT_SYMINFO_ALT1),	DT_SYMINFO },
487*5088Sab196087 
488*5088Sab196087 	{ MSG_ORIG(MSG_DT_VERSYM),		DT_VERSYM },
489*5088Sab196087 	{ MSG_ORIG(MSG_DT_VERSYM_ALT1),		DT_VERSYM },
490*5088Sab196087 
491*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELACOUNT),		DT_RELACOUNT },
492*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELACOUNT_ALT1),	DT_RELACOUNT },
493*5088Sab196087 
494*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELCOUNT),		DT_RELCOUNT },
495*5088Sab196087 	{ MSG_ORIG(MSG_DT_RELCOUNT_ALT1),	DT_RELCOUNT },
496*5088Sab196087 
497*5088Sab196087 	{ MSG_ORIG(MSG_DT_FLAGS_1),		DT_FLAGS_1 },
498*5088Sab196087 	{ MSG_ORIG(MSG_DT_FLAGS_1_ALT1),	DT_FLAGS_1 },
499*5088Sab196087 
500*5088Sab196087 	{ MSG_ORIG(MSG_DT_VERDEF),		DT_VERDEF },
501*5088Sab196087 	{ MSG_ORIG(MSG_DT_VERDEF_ALT1),		DT_VERDEF },
502*5088Sab196087 
503*5088Sab196087 	{ MSG_ORIG(MSG_DT_VERDEFNUM),		DT_VERDEFNUM },
504*5088Sab196087 	{ MSG_ORIG(MSG_DT_VERDEFNUM_ALT1),	DT_VERDEFNUM },
505*5088Sab196087 
506*5088Sab196087 	{ MSG_ORIG(MSG_DT_VERNEED),		DT_VERNEED },
507*5088Sab196087 	{ MSG_ORIG(MSG_DT_VERNEED_ALT1),	DT_VERNEED },
508*5088Sab196087 
509*5088Sab196087 	{ MSG_ORIG(MSG_DT_VERNEEDNUM),		DT_VERNEEDNUM },
510*5088Sab196087 	{ MSG_ORIG(MSG_DT_VERNEEDNUM_ALT1),	DT_VERNEEDNUM },
511*5088Sab196087 
512*5088Sab196087 	{ MSG_ORIG(MSG_DT_AUXILIARY),		DT_AUXILIARY },
513*5088Sab196087 	{ MSG_ORIG(MSG_DT_AUXILIARY_ALT1),	DT_AUXILIARY },
514*5088Sab196087 
515*5088Sab196087 	{ MSG_ORIG(MSG_DT_USED),		DT_USED },
516*5088Sab196087 	{ MSG_ORIG(MSG_DT_USED_ALT1),		DT_USED },
517*5088Sab196087 
518*5088Sab196087 	{ MSG_ORIG(MSG_DT_FILTER),		DT_FILTER },
519*5088Sab196087 	{ MSG_ORIG(MSG_DT_FILTER_ALT1),		DT_FILTER },
520*5088Sab196087 
521*5088Sab196087 	{ NULL }
522*5088Sab196087 };
523*5088Sab196087 
524*5088Sab196087 
525*5088Sab196087 /*
526*5088Sab196087  * ELF DT_FLAGS DF_* values
527*5088Sab196087  */
528*5088Sab196087 static elfedit_atoui_sym_t sym_df[] = {
529*5088Sab196087 	{ MSG_ORIG(MSG_DF_ORIGIN),		DF_ORIGIN },
530*5088Sab196087 	{ MSG_ORIG(MSG_DF_ORIGIN_ALT1),		DF_ORIGIN },
531*5088Sab196087 
532*5088Sab196087 	{ MSG_ORIG(MSG_DF_SYMBOLIC),		DF_SYMBOLIC },
533*5088Sab196087 	{ MSG_ORIG(MSG_DF_SYMBOLIC_ALT1),	DF_SYMBOLIC },
534*5088Sab196087 
535*5088Sab196087 	{ MSG_ORIG(MSG_DF_TEXTREL),		DF_TEXTREL },
536*5088Sab196087 	{ MSG_ORIG(MSG_DF_TEXTREL_ALT1),	DF_TEXTREL },
537*5088Sab196087 
538*5088Sab196087 	{ MSG_ORIG(MSG_DF_BIND_NOW),		DF_BIND_NOW },
539*5088Sab196087 	{ MSG_ORIG(MSG_DF_BIND_NOW_ALT1),	DF_BIND_NOW },
540*5088Sab196087 
541*5088Sab196087 	{ MSG_ORIG(MSG_DF_STATIC_TLS),		DF_STATIC_TLS },
542*5088Sab196087 	{ MSG_ORIG(MSG_DF_STATIC_TLS_ALT1),	DF_STATIC_TLS },
543*5088Sab196087 
544*5088Sab196087 	{ NULL }
545*5088Sab196087 };
546*5088Sab196087 
547*5088Sab196087 
548*5088Sab196087 /*
549*5088Sab196087  * ELF DT_POSFLAG_1 DF_P1_* values
550*5088Sab196087  */
551*5088Sab196087 static elfedit_atoui_sym_t sym_df_p1[] = {
552*5088Sab196087 	{ MSG_ORIG(MSG_DF_P1_LAZYLOAD),		DF_P1_LAZYLOAD },
553*5088Sab196087 	{ MSG_ORIG(MSG_DF_P1_LAZYLOAD_ALT1),	DF_P1_LAZYLOAD },
554*5088Sab196087 
555*5088Sab196087 	{ MSG_ORIG(MSG_DF_P1_GROUPPERM),	DF_P1_GROUPPERM },
556*5088Sab196087 	{ MSG_ORIG(MSG_DF_P1_GROUPPERM_ALT1),	DF_P1_GROUPPERM },
557*5088Sab196087 
558*5088Sab196087 	{ NULL }
559*5088Sab196087 };
560*5088Sab196087 
561*5088Sab196087 
562*5088Sab196087 /*
563*5088Sab196087  * ELF DT_FLAGS_1 DF_1_* values
564*5088Sab196087  */
565*5088Sab196087 static elfedit_atoui_sym_t sym_df_1[] = {
566*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NOW),		DF_1_NOW },
567*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NOW_ALT1),		DF_1_NOW },
568*5088Sab196087 
569*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_GLOBAL),		DF_1_GLOBAL },
570*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_GLOBAL_ALT1),	DF_1_GLOBAL },
571*5088Sab196087 
572*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_GROUP),		DF_1_GROUP },
573*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_GROUP_ALT1),	DF_1_GROUP },
574*5088Sab196087 
575*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NODELETE),		DF_1_NODELETE },
576*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NODELETE_ALT1),	DF_1_NODELETE },
577*5088Sab196087 
578*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_LOADFLTR),		DF_1_LOADFLTR },
579*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_LOADFLTR_ALT1),	DF_1_LOADFLTR },
580*5088Sab196087 
581*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_INITFIRST),		DF_1_INITFIRST },
582*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_INITFIRST_ALT1),	DF_1_INITFIRST },
583*5088Sab196087 
584*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NOOPEN),		DF_1_NOOPEN },
585*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NOOPEN_ALT1),	DF_1_NOOPEN },
586*5088Sab196087 
587*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_ORIGIN),		DF_1_ORIGIN },
588*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_ORIGIN_ALT1),	DF_1_ORIGIN },
589*5088Sab196087 
590*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_DIRECT),		DF_1_DIRECT },
591*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_DIRECT_ALT1),	DF_1_DIRECT },
592*5088Sab196087 
593*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_TRANS),		DF_1_TRANS },
594*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_TRANS_ALT1),	DF_1_TRANS },
595*5088Sab196087 
596*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_INTERPOSE),		DF_1_INTERPOSE },
597*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_INTERPOSE_ALT1),	DF_1_INTERPOSE },
598*5088Sab196087 
599*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NODEFLIB),		DF_1_NODEFLIB },
600*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NODEFLIB_ALT1),	DF_1_NODEFLIB },
601*5088Sab196087 
602*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NODUMP),		DF_1_NODUMP },
603*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NODUMP_ALT1),	DF_1_NODUMP },
604*5088Sab196087 
605*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_CONFALT),		DF_1_CONFALT },
606*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_CONFALT_ALT1),	DF_1_CONFALT },
607*5088Sab196087 
608*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_ENDFILTEE),		DF_1_ENDFILTEE },
609*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_ENDFILTEE_ALT1),	DF_1_ENDFILTEE },
610*5088Sab196087 
611*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_DISPRELDNE),	DF_1_DISPRELDNE },
612*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_DISPRELDNE_ALT1),	DF_1_DISPRELDNE },
613*5088Sab196087 
614*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_DISPRELPND),	DF_1_DISPRELPND },
615*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_DISPRELPND_ALT1),	DF_1_DISPRELPND },
616*5088Sab196087 
617*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NODIRECT),		DF_1_NODIRECT },
618*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NODIRECT_ALT1),	DF_1_NODIRECT },
619*5088Sab196087 
620*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_IGNMULDEF),		DF_1_IGNMULDEF },
621*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_IGNMULDEF_ALT1),	DF_1_IGNMULDEF },
622*5088Sab196087 
623*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NOKSYMS),		DF_1_NOKSYMS },
624*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NOKSYMS_ALT1),	DF_1_NOKSYMS },
625*5088Sab196087 
626*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NOHDR),		DF_1_NOHDR },
627*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NOHDR_ALT1),	DF_1_NOHDR },
628*5088Sab196087 
629*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_EDITED),		DF_1_EDITED },
630*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_EDITED_ALT1),	DF_1_EDITED },
631*5088Sab196087 
632*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NORELOC),		DF_1_NORELOC },
633*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_NORELOC_ALT1),	DF_1_NORELOC },
634*5088Sab196087 
635*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_SYMINTPOSE),	DF_1_SYMINTPOSE },
636*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_SYMINTPOSE_ALT1),	DF_1_SYMINTPOSE },
637*5088Sab196087 
638*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_GLOBAUDIT),		DF_1_GLOBAUDIT },
639*5088Sab196087 	{ MSG_ORIG(MSG_DF_1_GLOBAUDIT_ALT1),	DF_1_GLOBAUDIT },
640*5088Sab196087 
641*5088Sab196087 	{ NULL }
642*5088Sab196087 };
643*5088Sab196087 
644*5088Sab196087 
645*5088Sab196087 /*
646*5088Sab196087  * ELF DT_FEATURE_1 DTF_1_* values
647*5088Sab196087  */
648*5088Sab196087 static elfedit_atoui_sym_t sym_dtf_1[] = {
649*5088Sab196087 	{ MSG_ORIG(MSG_DTF_1_PARINIT),		DTF_1_PARINIT },
650*5088Sab196087 	{ MSG_ORIG(MSG_DTF_1_PARINIT_ALT1),	DTF_1_PARINIT },
651*5088Sab196087 
652*5088Sab196087 	{ MSG_ORIG(MSG_DTF_1_CONFEXP),		DTF_1_CONFEXP },
653*5088Sab196087 	{ MSG_ORIG(MSG_DTF_1_CONFEXP_ALT1),	DTF_1_CONFEXP },
654*5088Sab196087 
655*5088Sab196087 	{ NULL }
656*5088Sab196087 };
657*5088Sab196087 
658*5088Sab196087 /*
659*5088Sab196087  * ELF header EI_* indexes
660*5088Sab196087  */
661*5088Sab196087 static elfedit_atoui_sym_t sym_ei[] = {
662*5088Sab196087 	{ MSG_ORIG(MSG_EI_MAG0),		EI_MAG0 },
663*5088Sab196087 	{ MSG_ORIG(MSG_EI_MAG0_ALT1),		EI_MAG0 },
664*5088Sab196087 
665*5088Sab196087 	{ MSG_ORIG(MSG_EI_MAG1),		EI_MAG1 },
666*5088Sab196087 	{ MSG_ORIG(MSG_EI_MAG1_ALT1),		EI_MAG1 },
667*5088Sab196087 
668*5088Sab196087 	{ MSG_ORIG(MSG_EI_MAG2),		EI_MAG2 },
669*5088Sab196087 	{ MSG_ORIG(MSG_EI_MAG2_ALT1),		EI_MAG2 },
670*5088Sab196087 
671*5088Sab196087 	{ MSG_ORIG(MSG_EI_MAG3),		EI_MAG3 },
672*5088Sab196087 	{ MSG_ORIG(MSG_EI_MAG3_ALT1),		EI_MAG3 },
673*5088Sab196087 
674*5088Sab196087 	{ MSG_ORIG(MSG_EI_CLASS),		EI_CLASS },
675*5088Sab196087 	{ MSG_ORIG(MSG_EI_CLASS_ALT1),		EI_CLASS },
676*5088Sab196087 
677*5088Sab196087 	{ MSG_ORIG(MSG_EI_DATA),		EI_DATA },
678*5088Sab196087 	{ MSG_ORIG(MSG_EI_DATA_ALT1),		EI_DATA },
679*5088Sab196087 
680*5088Sab196087 	{ MSG_ORIG(MSG_EI_VERSION),		EI_VERSION },
681*5088Sab196087 	{ MSG_ORIG(MSG_EI_VERSION_ALT1),	EI_VERSION },
682*5088Sab196087 
683*5088Sab196087 	{ MSG_ORIG(MSG_EI_OSABI),		EI_OSABI },
684*5088Sab196087 	{ MSG_ORIG(MSG_EI_OSABI_ALT1),		EI_OSABI },
685*5088Sab196087 
686*5088Sab196087 	{ MSG_ORIG(MSG_EI_ABIVERSION),		EI_ABIVERSION },
687*5088Sab196087 	{ MSG_ORIG(MSG_EI_ABIVERSION_ALT1),	EI_ABIVERSION },
688*5088Sab196087 
689*5088Sab196087 	{ NULL }
690*5088Sab196087 };
691*5088Sab196087 
692*5088Sab196087 /*
693*5088Sab196087  * ELF header ET_* file type values
694*5088Sab196087  */
695*5088Sab196087 static elfedit_atoui_sym_t sym_et[] = {
696*5088Sab196087 	{ MSG_ORIG(MSG_ET_NONE),		ET_NONE },
697*5088Sab196087 	{ MSG_ORIG(MSG_ET_NONE_ALT1),		ET_NONE },
698*5088Sab196087 
699*5088Sab196087 	{ MSG_ORIG(MSG_ET_REL),			ET_REL },
700*5088Sab196087 	{ MSG_ORIG(MSG_ET_REL_ALT1),		ET_REL },
701*5088Sab196087 
702*5088Sab196087 	{ MSG_ORIG(MSG_ET_EXEC),		ET_EXEC },
703*5088Sab196087 	{ MSG_ORIG(MSG_ET_EXEC_ALT1),		ET_EXEC },
704*5088Sab196087 
705*5088Sab196087 	{ MSG_ORIG(MSG_ET_DYN),			ET_DYN },
706*5088Sab196087 	{ MSG_ORIG(MSG_ET_DYN_ALT1),		ET_DYN },
707*5088Sab196087 
708*5088Sab196087 	{ MSG_ORIG(MSG_ET_CORE),		ET_CORE },
709*5088Sab196087 	{ MSG_ORIG(MSG_ET_CORE_ALT1),		ET_CORE },
710*5088Sab196087 
711*5088Sab196087 	{ NULL }
712*5088Sab196087 };
713*5088Sab196087 
714*5088Sab196087 /*
715*5088Sab196087  * ELFCLASS
716*5088Sab196087  */
717*5088Sab196087 static elfedit_atoui_sym_t sym_elfclass[] = {
718*5088Sab196087 	{ MSG_ORIG(MSG_ELFCLASSNONE),		ELFCLASSNONE },
719*5088Sab196087 	{ MSG_ORIG(MSG_ELFCLASSNONE_ALT1),	ELFCLASSNONE },
720*5088Sab196087 
721*5088Sab196087 	{ MSG_ORIG(MSG_ELFCLASS32),		ELFCLASS32 },
722*5088Sab196087 	{ MSG_ORIG(MSG_ELFCLASS32_ALT1),	ELFCLASS32 },
723*5088Sab196087 
724*5088Sab196087 	{ MSG_ORIG(MSG_ELFCLASS64),		ELFCLASS64 },
725*5088Sab196087 	{ MSG_ORIG(MSG_ELFCLASS64_ALT1),	ELFCLASS64 },
726*5088Sab196087 
727*5088Sab196087 	{ NULL }
728*5088Sab196087 };
729*5088Sab196087 
730*5088Sab196087 /*
731*5088Sab196087  * ELFDATA
732*5088Sab196087  */
733*5088Sab196087 static elfedit_atoui_sym_t sym_elfdata[] = {
734*5088Sab196087 	{ MSG_ORIG(MSG_ELFDATANONE),		ELFDATANONE },
735*5088Sab196087 	{ MSG_ORIG(MSG_ELFDATANONE_ALT1),	ELFDATANONE },
736*5088Sab196087 
737*5088Sab196087 	{ MSG_ORIG(MSG_ELFDATA2LSB),		ELFDATA2LSB },
738*5088Sab196087 	{ MSG_ORIG(MSG_ELFDATA2LSB_ALT1),	ELFDATA2LSB },
739*5088Sab196087 
740*5088Sab196087 	{ MSG_ORIG(MSG_ELFDATA2MSB),		ELFDATA2MSB },
741*5088Sab196087 	{ MSG_ORIG(MSG_ELFDATA2MSB_ALT1),	ELFDATA2MSB },
742*5088Sab196087 
743*5088Sab196087 	{ NULL }
744*5088Sab196087 };
745*5088Sab196087 
746*5088Sab196087 /*
747*5088Sab196087  * ELF header EF_* flags
748*5088Sab196087  */
749*5088Sab196087 static elfedit_atoui_sym_t sym_ef[] = {
750*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARC_32PLUS),	EF_SPARC_32PLUS },
751*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARC_32PLUS_ALT1),	EF_SPARC_32PLUS },
752*5088Sab196087 
753*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARC_SUN_US1),	EF_SPARC_SUN_US1 },
754*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARC_SUN_US1_ALT1),	EF_SPARC_SUN_US1 },
755*5088Sab196087 
756*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARC_HAL_R1),	EF_SPARC_HAL_R1 },
757*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARC_HAL_R1_ALT1),	EF_SPARC_HAL_R1 },
758*5088Sab196087 
759*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARC_SUN_US3),	EF_SPARC_SUN_US3 },
760*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARC_SUN_US3_ALT1),	EF_SPARC_SUN_US3 },
761*5088Sab196087 
762*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARCV9_MM),		EF_SPARCV9_MM },
763*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARCV9_MM_ALT1),	EF_SPARCV9_MM },
764*5088Sab196087 
765*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARCV9_TSO),		EF_SPARCV9_TSO },
766*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARCV9_TSO_ALT1),	EF_SPARCV9_TSO },
767*5088Sab196087 
768*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARCV9_PSO),		EF_SPARCV9_PSO },
769*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARCV9_PSO_ALT1),	EF_SPARCV9_PSO },
770*5088Sab196087 
771*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARCV9_RMO),		EF_SPARCV9_RMO },
772*5088Sab196087 	{ MSG_ORIG(MSG_EF_SPARCV9_RMO_ALT1),	EF_SPARCV9_RMO },
773*5088Sab196087 
774*5088Sab196087 	{ NULL }
775*5088Sab196087 };
776*5088Sab196087 
777*5088Sab196087 /*
778*5088Sab196087  * ELF header EV_* versions
779*5088Sab196087  */
780*5088Sab196087 static elfedit_atoui_sym_t sym_ev[] = {
781*5088Sab196087 	{ MSG_ORIG(MSG_EV_NONE),		EV_NONE },
782*5088Sab196087 	{ MSG_ORIG(MSG_EV_NONE_ALT1),		EV_NONE },
783*5088Sab196087 
784*5088Sab196087 	{ MSG_ORIG(MSG_EV_CURRENT),		EV_CURRENT },
785*5088Sab196087 	{ MSG_ORIG(MSG_EV_CURRENT_ALT1),	EV_CURRENT },
786*5088Sab196087 
787*5088Sab196087 	{ NULL }
788*5088Sab196087 };
789*5088Sab196087 
790*5088Sab196087 /*
791*5088Sab196087  * ELF EM_* machine types
792*5088Sab196087  */
793*5088Sab196087 static elfedit_atoui_sym_t sym_em[] = {
794*5088Sab196087 	{ MSG_ORIG(MSG_EM_NONE),		EM_NONE },
795*5088Sab196087 	{ MSG_ORIG(MSG_EM_NONE_ALT1),		EM_NONE },
796*5088Sab196087 
797*5088Sab196087 	{ MSG_ORIG(MSG_EM_M32),			EM_M32 },
798*5088Sab196087 	{ MSG_ORIG(MSG_EM_M32_ALT1),		EM_M32 },
799*5088Sab196087 	{ MSG_ORIG(MSG_EM_M32_ALT2),		EM_M32 },
800*5088Sab196087 
801*5088Sab196087 	{ MSG_ORIG(MSG_EM_SPARC),		EM_SPARC },
802*5088Sab196087 	{ MSG_ORIG(MSG_EM_SPARC_ALT1),		EM_SPARC },
803*5088Sab196087 
804*5088Sab196087 	{ MSG_ORIG(MSG_EM_386),			EM_386 },
805*5088Sab196087 	{ MSG_ORIG(MSG_EM_386_ALT1),		EM_386 },
806*5088Sab196087 	{ MSG_ORIG(MSG_EM_386_ALT2),		EM_386 },
807*5088Sab196087 
808*5088Sab196087 	{ MSG_ORIG(MSG_EM_68K),			EM_68K },
809*5088Sab196087 	{ MSG_ORIG(MSG_EM_68K_ALT1),		EM_68K },
810*5088Sab196087 	{ MSG_ORIG(MSG_EM_68K_ALT2),		EM_68K },
811*5088Sab196087 
812*5088Sab196087 	{ MSG_ORIG(MSG_EM_88K),			EM_88K },
813*5088Sab196087 	{ MSG_ORIG(MSG_EM_88K_ALT1),		EM_88K },
814*5088Sab196087 	{ MSG_ORIG(MSG_EM_88K_ALT2),		EM_88K },
815*5088Sab196087 
816*5088Sab196087 	{ MSG_ORIG(MSG_EM_486),			EM_486 },
817*5088Sab196087 	{ MSG_ORIG(MSG_EM_486_ALT1),		EM_486 },
818*5088Sab196087 	{ MSG_ORIG(MSG_EM_486_ALT2),		EM_486 },
819*5088Sab196087 
820*5088Sab196087 	{ MSG_ORIG(MSG_EM_860),			EM_860 },
821*5088Sab196087 	{ MSG_ORIG(MSG_EM_860_ALT1),		EM_860 },
822*5088Sab196087 	{ MSG_ORIG(MSG_EM_860_ALT2),		EM_860 },
823*5088Sab196087 
824*5088Sab196087 	{ MSG_ORIG(MSG_EM_MIPS),		EM_MIPS },
825*5088Sab196087 	{ MSG_ORIG(MSG_EM_MIPS_ALT1),		EM_MIPS },
826*5088Sab196087 	{ MSG_ORIG(MSG_EM_MIPS_ALT2),		EM_MIPS },
827*5088Sab196087 
828*5088Sab196087 	{ MSG_ORIG(MSG_EM_S370),		EM_S370 },
829*5088Sab196087 	{ MSG_ORIG(MSG_EM_S370_ALT1),		EM_S370 },
830*5088Sab196087 
831*5088Sab196087 	{ MSG_ORIG(MSG_EM_MIPS_RS3_LE),		EM_MIPS_RS3_LE },
832*5088Sab196087 	{ MSG_ORIG(MSG_EM_MIPS_RS3_LE_ALT1),	EM_MIPS_RS3_LE },
833*5088Sab196087 	{ MSG_ORIG(MSG_EM_MIPS_RS3_LE_ALT2),	EM_MIPS_RS3_LE },
834*5088Sab196087 
835*5088Sab196087 	{ MSG_ORIG(MSG_EM_RS6000),		EM_RS6000 },
836*5088Sab196087 	{ MSG_ORIG(MSG_EM_RS6000_ALT1),		EM_RS6000 },
837*5088Sab196087 
838*5088Sab196087 	{ MSG_ORIG(MSG_EM_PA_RISC),		EM_PA_RISC },
839*5088Sab196087 	{ MSG_ORIG(MSG_EM_PA_RISC_ALT1),	EM_PA_RISC },
840*5088Sab196087 
841*5088Sab196087 	{ MSG_ORIG(MSG_EM_NCUBE),		EM_nCUBE },
842*5088Sab196087 	{ MSG_ORIG(MSG_EM_NCUBE_ALT1),		EM_nCUBE },
843*5088Sab196087 
844*5088Sab196087 	{ MSG_ORIG(MSG_EM_VPP500),		EM_VPP500 },
845*5088Sab196087 	{ MSG_ORIG(MSG_EM_VPP500_ALT1),		EM_VPP500 },
846*5088Sab196087 
847*5088Sab196087 	{ MSG_ORIG(MSG_EM_SPARC32PLUS),		EM_SPARC32PLUS },
848*5088Sab196087 	{ MSG_ORIG(MSG_EM_SPARC32PLUS_ALT1),	EM_SPARC32PLUS },
849*5088Sab196087 
850*5088Sab196087 	{ MSG_ORIG(MSG_EM_960),			EM_960 },
851*5088Sab196087 	{ MSG_ORIG(MSG_EM_960_ALT1),		EM_960 },
852*5088Sab196087 
853*5088Sab196087 	{ MSG_ORIG(MSG_EM_PPC),			EM_PPC },
854*5088Sab196087 	{ MSG_ORIG(MSG_EM_PPC_ALT1),		EM_PPC },
855*5088Sab196087 	{ MSG_ORIG(MSG_EM_PPC_ALT2),		EM_PPC },
856*5088Sab196087 
857*5088Sab196087 	{ MSG_ORIG(MSG_EM_PPC64),		EM_PPC64 },
858*5088Sab196087 	{ MSG_ORIG(MSG_EM_PPC64_ALT1),		EM_PPC64 },
859*5088Sab196087 	{ MSG_ORIG(MSG_EM_PPC64_ALT2),		EM_PPC64 },
860*5088Sab196087 
861*5088Sab196087 	{ MSG_ORIG(MSG_EM_S390),		EM_S390 },
862*5088Sab196087 	{ MSG_ORIG(MSG_EM_S390_ALT1),		EM_S390 },
863*5088Sab196087 
864*5088Sab196087 	{ MSG_ORIG(MSG_EM_V800),		EM_V800 },
865*5088Sab196087 	{ MSG_ORIG(MSG_EM_V800_ALT1),		EM_V800 },
866*5088Sab196087 
867*5088Sab196087 	{ MSG_ORIG(MSG_EM_FR20),		EM_FR20 },
868*5088Sab196087 	{ MSG_ORIG(MSG_EM_FR20_ALT1),		EM_FR20 },
869*5088Sab196087 
870*5088Sab196087 	{ MSG_ORIG(MSG_EM_RH32),		EM_RH32 },
871*5088Sab196087 	{ MSG_ORIG(MSG_EM_RH32_ALT1),		EM_RH32 },
872*5088Sab196087 
873*5088Sab196087 	{ MSG_ORIG(MSG_EM_RCE),			EM_RCE },
874*5088Sab196087 	{ MSG_ORIG(MSG_EM_RCE_ALT1),		EM_RCE },
875*5088Sab196087 
876*5088Sab196087 	{ MSG_ORIG(MSG_EM_ARM),			EM_ARM },
877*5088Sab196087 	{ MSG_ORIG(MSG_EM_ARM_ALT1),		EM_ARM },
878*5088Sab196087 
879*5088Sab196087 	{ MSG_ORIG(MSG_EM_ALPHA),		EM_ALPHA },
880*5088Sab196087 	{ MSG_ORIG(MSG_EM_ALPHA_ALT1),		EM_ALPHA },
881*5088Sab196087 
882*5088Sab196087 	{ MSG_ORIG(MSG_EM_SH),			EM_SH },
883*5088Sab196087 	{ MSG_ORIG(MSG_EM_SH_ALT1),		EM_SH },
884*5088Sab196087 
885*5088Sab196087 	{ MSG_ORIG(MSG_EM_SPARCV9),		EM_SPARCV9 },
886*5088Sab196087 	{ MSG_ORIG(MSG_EM_SPARCV9_ALT1),	EM_SPARCV9 },
887*5088Sab196087 
888*5088Sab196087 	{ MSG_ORIG(MSG_EM_TRICORE),		EM_TRICORE },
889*5088Sab196087 	{ MSG_ORIG(MSG_EM_TRICORE_ALT1),	EM_TRICORE },
890*5088Sab196087 
891*5088Sab196087 	{ MSG_ORIG(MSG_EM_ARC),			EM_ARC },
892*5088Sab196087 	{ MSG_ORIG(MSG_EM_ARC_ALT1),		EM_ARC },
893*5088Sab196087 
894*5088Sab196087 	{ MSG_ORIG(MSG_EM_H8_300),		EM_H8_300 },
895*5088Sab196087 	{ MSG_ORIG(MSG_EM_H8_300_ALT1),		EM_H8_300 },
896*5088Sab196087 
897*5088Sab196087 	{ MSG_ORIG(MSG_EM_H8_300H),		EM_H8_300H },
898*5088Sab196087 	{ MSG_ORIG(MSG_EM_H8_300H_ALT1),	EM_H8_300H },
899*5088Sab196087 
900*5088Sab196087 	{ MSG_ORIG(MSG_EM_H8S),			EM_H8S },
901*5088Sab196087 	{ MSG_ORIG(MSG_EM_H8S_ALT1),		EM_H8S },
902*5088Sab196087 
903*5088Sab196087 	{ MSG_ORIG(MSG_EM_H8_500),		EM_H8_500 },
904*5088Sab196087 	{ MSG_ORIG(MSG_EM_H8_500_ALT1),		EM_H8_500 },
905*5088Sab196087 
906*5088Sab196087 	{ MSG_ORIG(MSG_EM_IA_64),		EM_IA_64 },
907*5088Sab196087 	{ MSG_ORIG(MSG_EM_IA_64_ALT1),		EM_IA_64 },
908*5088Sab196087 
909*5088Sab196087 	{ MSG_ORIG(MSG_EM_MIPS_X),		EM_MIPS_X },
910*5088Sab196087 	{ MSG_ORIG(MSG_EM_MIPS_X_ALT1),		EM_MIPS_X },
911*5088Sab196087 
912*5088Sab196087 	{ MSG_ORIG(MSG_EM_COLDFIRE),		EM_COLDFIRE },
913*5088Sab196087 	{ MSG_ORIG(MSG_EM_COLDFIRE_ALT1),	EM_COLDFIRE },
914*5088Sab196087 
915*5088Sab196087 	{ MSG_ORIG(MSG_EM_68HC12),		EM_68HC12 },
916*5088Sab196087 	{ MSG_ORIG(MSG_EM_68HC12_ALT1),		EM_68HC12 },
917*5088Sab196087 
918*5088Sab196087 	{ MSG_ORIG(MSG_EM_MMA),			EM_MMA },
919*5088Sab196087 	{ MSG_ORIG(MSG_EM_MMA_ALT1),		EM_MMA },
920*5088Sab196087 
921*5088Sab196087 	{ MSG_ORIG(MSG_EM_PCP),			EM_PCP },
922*5088Sab196087 	{ MSG_ORIG(MSG_EM_PCP_ALT1),		EM_PCP },
923*5088Sab196087 
924*5088Sab196087 	{ MSG_ORIG(MSG_EM_NCPU),		EM_NCPU },
925*5088Sab196087 	{ MSG_ORIG(MSG_EM_NCPU_ALT1),		EM_NCPU },
926*5088Sab196087 
927*5088Sab196087 	{ MSG_ORIG(MSG_EM_NDR1),		EM_NDR1 },
928*5088Sab196087 	{ MSG_ORIG(MSG_EM_NDR1_ALT1),		EM_NDR1 },
929*5088Sab196087 
930*5088Sab196087 	{ MSG_ORIG(MSG_EM_STARCORE),		EM_STARCORE },
931*5088Sab196087 	{ MSG_ORIG(MSG_EM_STARCORE_ALT1),	EM_STARCORE },
932*5088Sab196087 
933*5088Sab196087 	{ MSG_ORIG(MSG_EM_ME16),		EM_ME16 },
934*5088Sab196087 	{ MSG_ORIG(MSG_EM_ME16_ALT1),		EM_ME16 },
935*5088Sab196087 
936*5088Sab196087 	{ MSG_ORIG(MSG_EM_ST100),		EM_ST100 },
937*5088Sab196087 	{ MSG_ORIG(MSG_EM_ST100_ALT1),		EM_ST100 },
938*5088Sab196087 
939*5088Sab196087 	{ MSG_ORIG(MSG_EM_TINYJ),		EM_TINYJ },
940*5088Sab196087 	{ MSG_ORIG(MSG_EM_TINYJ_ALT1),		EM_TINYJ },
941*5088Sab196087 
942*5088Sab196087 	{ MSG_ORIG(MSG_EM_AMD64),		EM_AMD64 },
943*5088Sab196087 	{ MSG_ORIG(MSG_EM_AMD64_ALT1),		EM_AMD64 },
944*5088Sab196087 
945*5088Sab196087 	{ MSG_ORIG(MSG_EM_PDSP),		EM_PDSP },
946*5088Sab196087 	{ MSG_ORIG(MSG_EM_PDSP_ALT1),		EM_PDSP },
947*5088Sab196087 
948*5088Sab196087 	{ MSG_ORIG(MSG_EM_FX66),		EM_FX66 },
949*5088Sab196087 	{ MSG_ORIG(MSG_EM_FX66_ALT1),		EM_FX66 },
950*5088Sab196087 
951*5088Sab196087 	{ MSG_ORIG(MSG_EM_ST9PLUS),		EM_ST9PLUS },
952*5088Sab196087 	{ MSG_ORIG(MSG_EM_ST9PLUS_ALT1),	EM_ST9PLUS },
953*5088Sab196087 
954*5088Sab196087 	{ MSG_ORIG(MSG_EM_ST7),			EM_ST7 },
955*5088Sab196087 	{ MSG_ORIG(MSG_EM_ST7_ALT1),		EM_ST7 },
956*5088Sab196087 
957*5088Sab196087 	{ MSG_ORIG(MSG_EM_68HC16),		EM_68HC16 },
958*5088Sab196087 	{ MSG_ORIG(MSG_EM_68HC16_ALT1),		EM_68HC16 },
959*5088Sab196087 
960*5088Sab196087 	{ MSG_ORIG(MSG_EM_68HC11),		EM_68HC11 },
961*5088Sab196087 	{ MSG_ORIG(MSG_EM_68HC11_ALT1),		EM_68HC11 },
962*5088Sab196087 
963*5088Sab196087 	{ MSG_ORIG(MSG_EM_68HC08),		EM_68HC08 },
964*5088Sab196087 	{ MSG_ORIG(MSG_EM_68HC08_ALT1),		EM_68HC08 },
965*5088Sab196087 
966*5088Sab196087 	{ MSG_ORIG(MSG_EM_68HC05),		EM_68HC05 },
967*5088Sab196087 	{ MSG_ORIG(MSG_EM_68HC05_ALT1),		EM_68HC05 },
968*5088Sab196087 
969*5088Sab196087 	{ MSG_ORIG(MSG_EM_SVX),			EM_SVX },
970*5088Sab196087 	{ MSG_ORIG(MSG_EM_SVX_ALT1),		EM_SVX },
971*5088Sab196087 
972*5088Sab196087 	{ MSG_ORIG(MSG_EM_ST19),		EM_ST19 },
973*5088Sab196087 	{ MSG_ORIG(MSG_EM_ST19_ALT1),		EM_ST19 },
974*5088Sab196087 
975*5088Sab196087 	{ MSG_ORIG(MSG_EM_VAX),			EM_VAX },
976*5088Sab196087 	{ MSG_ORIG(MSG_EM_VAX_ALT1),		EM_VAX },
977*5088Sab196087 
978*5088Sab196087 	{ MSG_ORIG(MSG_EM_CRIS),		EM_CRIS },
979*5088Sab196087 	{ MSG_ORIG(MSG_EM_CRIS_ALT1),		EM_CRIS },
980*5088Sab196087 
981*5088Sab196087 	{ MSG_ORIG(MSG_EM_JAVELIN),		EM_JAVELIN },
982*5088Sab196087 	{ MSG_ORIG(MSG_EM_JAVELIN_ALT1),	EM_JAVELIN },
983*5088Sab196087 
984*5088Sab196087 	{ MSG_ORIG(MSG_EM_FIREPATH),		EM_FIREPATH },
985*5088Sab196087 	{ MSG_ORIG(MSG_EM_FIREPATH_ALT1),	EM_FIREPATH },
986*5088Sab196087 
987*5088Sab196087 	{ MSG_ORIG(MSG_EM_ZSP),			EM_ZSP },
988*5088Sab196087 	{ MSG_ORIG(MSG_EM_ZSP_ALT1),		EM_ZSP },
989*5088Sab196087 
990*5088Sab196087 	{ MSG_ORIG(MSG_EM_MMIX),		EM_MMIX },
991*5088Sab196087 	{ MSG_ORIG(MSG_EM_MMIX_ALT1),		EM_MMIX },
992*5088Sab196087 
993*5088Sab196087 	{ MSG_ORIG(MSG_EM_HUANY),		EM_HUANY },
994*5088Sab196087 	{ MSG_ORIG(MSG_EM_HUANY_ALT1),		EM_HUANY },
995*5088Sab196087 
996*5088Sab196087 	{ MSG_ORIG(MSG_EM_PRISM),		EM_PRISM },
997*5088Sab196087 	{ MSG_ORIG(MSG_EM_PRISM_ALT1),		EM_PRISM },
998*5088Sab196087 
999*5088Sab196087 	{ MSG_ORIG(MSG_EM_AVR),			EM_AVR },
1000*5088Sab196087 	{ MSG_ORIG(MSG_EM_AVR_ALT1),		EM_AVR },
1001*5088Sab196087 
1002*5088Sab196087 	{ MSG_ORIG(MSG_EM_FR30),		EM_FR30 },
1003*5088Sab196087 	{ MSG_ORIG(MSG_EM_FR30_ALT1),		EM_FR30 },
1004*5088Sab196087 
1005*5088Sab196087 	{ MSG_ORIG(MSG_EM_D10V),		EM_D10V },
1006*5088Sab196087 	{ MSG_ORIG(MSG_EM_D10V_ALT1),		EM_D10V },
1007*5088Sab196087 
1008*5088Sab196087 	{ MSG_ORIG(MSG_EM_D30V),		EM_D30V },
1009*5088Sab196087 	{ MSG_ORIG(MSG_EM_D30V_ALT1),		EM_D30V },
1010*5088Sab196087 
1011*5088Sab196087 	{ MSG_ORIG(MSG_EM_V850),		EM_V850 },
1012*5088Sab196087 	{ MSG_ORIG(MSG_EM_V850_ALT1),		EM_V850 },
1013*5088Sab196087 
1014*5088Sab196087 	{ MSG_ORIG(MSG_EM_M32R),		EM_M32R },
1015*5088Sab196087 	{ MSG_ORIG(MSG_EM_M32R_ALT1),		EM_M32R },
1016*5088Sab196087 
1017*5088Sab196087 	{ MSG_ORIG(MSG_EM_MN10300),		EM_MN10300 },
1018*5088Sab196087 	{ MSG_ORIG(MSG_EM_MN10300_ALT1),	EM_MN10300 },
1019*5088Sab196087 
1020*5088Sab196087 	{ MSG_ORIG(MSG_EM_MN10200),		EM_MN10200 },
1021*5088Sab196087 	{ MSG_ORIG(MSG_EM_MN10200_ALT1),	EM_MN10200 },
1022*5088Sab196087 
1023*5088Sab196087 	{ MSG_ORIG(MSG_EM_PJ),			EM_PJ },
1024*5088Sab196087 	{ MSG_ORIG(MSG_EM_PJ_ALT1),		EM_PJ },
1025*5088Sab196087 
1026*5088Sab196087 	{ MSG_ORIG(MSG_EM_OPENRISC),		EM_OPENRISC },
1027*5088Sab196087 	{ MSG_ORIG(MSG_EM_OPENRISC_ALT1),	EM_OPENRISC },
1028*5088Sab196087 
1029*5088Sab196087 	{ MSG_ORIG(MSG_EM_ARC_A5),		EM_ARC_A5 },
1030*5088Sab196087 	{ MSG_ORIG(MSG_EM_ARC_A5_ALT1),		EM_ARC_A5 },
1031*5088Sab196087 
1032*5088Sab196087 	{ MSG_ORIG(MSG_EM_XTENSA),		EM_XTENSA },
1033*5088Sab196087 	{ MSG_ORIG(MSG_EM_XTENSA_ALT1),		EM_XTENSA },
1034*5088Sab196087 
1035*5088Sab196087 	{ NULL }
1036*5088Sab196087 };
1037*5088Sab196087 #if	(EM_NUM != (EM_XTENSA + 1))
1038*5088Sab196087 #error	"EM_NUM has grown"
1039*5088Sab196087 #endif
1040*5088Sab196087 
1041*5088Sab196087 
1042*5088Sab196087 /*
1043*5088Sab196087  * ELF header ELFOSABI_* values (and common aliases)
1044*5088Sab196087  */
1045*5088Sab196087 static elfedit_atoui_sym_t sym_elfosabi[] = {
1046*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_NONE),		ELFOSABI_NONE },
1047*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_NONE_ALT1),	ELFOSABI_NONE },
1048*5088Sab196087 
1049*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_SYSV),		ELFOSABI_SYSV },
1050*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_SYSV_ALT1),	ELFOSABI_SYSV },
1051*5088Sab196087 
1052*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_HPUX),		ELFOSABI_HPUX },
1053*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_HPUX_ALT1),	ELFOSABI_HPUX },
1054*5088Sab196087 
1055*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_NETBSD),	ELFOSABI_NETBSD },
1056*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_NETBSD_ALT1),	ELFOSABI_NETBSD },
1057*5088Sab196087 
1058*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_LINUX),		ELFOSABI_LINUX },
1059*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_LINUX_ALT1),	ELFOSABI_LINUX },
1060*5088Sab196087 
1061*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_SOLARIS),	ELFOSABI_SOLARIS },
1062*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_SOLARIS_ALT1),	ELFOSABI_SOLARIS },
1063*5088Sab196087 
1064*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_AIX),		ELFOSABI_AIX },
1065*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_AIX_ALT1),	ELFOSABI_AIX },
1066*5088Sab196087 
1067*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_IRIX),		ELFOSABI_IRIX },
1068*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_IRIX_ALT1),	ELFOSABI_IRIX },
1069*5088Sab196087 
1070*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_FREEBSD),	ELFOSABI_FREEBSD },
1071*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_FREEBSD_ALT1),	ELFOSABI_FREEBSD },
1072*5088Sab196087 
1073*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_TRU64),		ELFOSABI_TRU64 },
1074*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_TRU64_ALT1),	ELFOSABI_TRU64 },
1075*5088Sab196087 
1076*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_MODESTO),	ELFOSABI_MODESTO },
1077*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_MODESTO_ALT1),	ELFOSABI_MODESTO },
1078*5088Sab196087 
1079*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_OPENBSD),	ELFOSABI_OPENBSD },
1080*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_OPENBSD_ALT1),	ELFOSABI_OPENBSD },
1081*5088Sab196087 
1082*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_OPENVMS),	ELFOSABI_OPENVMS },
1083*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_OPENVMS_ALT1),	ELFOSABI_OPENVMS },
1084*5088Sab196087 
1085*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_NSK),		ELFOSABI_NSK },
1086*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_NSK_ALT1),	ELFOSABI_NSK },
1087*5088Sab196087 
1088*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_AROS),		ELFOSABI_AROS },
1089*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_AROS_ALT1),	ELFOSABI_AROS },
1090*5088Sab196087 
1091*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_ARM),		ELFOSABI_ARM },
1092*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_ARM_ALT1),	ELFOSABI_ARM },
1093*5088Sab196087 
1094*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_STANDALONE),	ELFOSABI_STANDALONE },
1095*5088Sab196087 	{ MSG_ORIG(MSG_ELFOSABI_STANDALONE_ALT1), ELFOSABI_STANDALONE },
1096*5088Sab196087 
1097*5088Sab196087 	{ NULL }
1098*5088Sab196087 };
1099*5088Sab196087 
1100*5088Sab196087 
1101*5088Sab196087 /*
1102*5088Sab196087  * Program header PT_* type values
1103*5088Sab196087  */
1104*5088Sab196087 static elfedit_atoui_sym_t sym_pt[] = {
1105*5088Sab196087 	{ MSG_ORIG(MSG_PT_NULL),		PT_NULL },
1106*5088Sab196087 	{ MSG_ORIG(MSG_PT_NULL_ALT1),		PT_NULL },
1107*5088Sab196087 
1108*5088Sab196087 	{ MSG_ORIG(MSG_PT_LOAD),		PT_LOAD },
1109*5088Sab196087 	{ MSG_ORIG(MSG_PT_LOAD_ALT1),		PT_LOAD },
1110*5088Sab196087 
1111*5088Sab196087 	{ MSG_ORIG(MSG_PT_DYNAMIC),		PT_DYNAMIC },
1112*5088Sab196087 	{ MSG_ORIG(MSG_PT_DYNAMIC_ALT1),	PT_DYNAMIC },
1113*5088Sab196087 
1114*5088Sab196087 	{ MSG_ORIG(MSG_PT_INTERP),		PT_INTERP },
1115*5088Sab196087 	{ MSG_ORIG(MSG_PT_INTERP_ALT1),		PT_INTERP },
1116*5088Sab196087 
1117*5088Sab196087 	{ MSG_ORIG(MSG_PT_NOTE),		PT_NOTE },
1118*5088Sab196087 	{ MSG_ORIG(MSG_PT_NOTE_ALT1),		PT_NOTE },
1119*5088Sab196087 
1120*5088Sab196087 	{ MSG_ORIG(MSG_PT_SHLIB),		PT_SHLIB },
1121*5088Sab196087 	{ MSG_ORIG(MSG_PT_SHLIB_ALT1),		PT_SHLIB },
1122*5088Sab196087 
1123*5088Sab196087 	{ MSG_ORIG(MSG_PT_PHDR),		PT_PHDR },
1124*5088Sab196087 	{ MSG_ORIG(MSG_PT_PHDR_ALT1),		PT_PHDR },
1125*5088Sab196087 
1126*5088Sab196087 	{ MSG_ORIG(MSG_PT_TLS),			PT_TLS },
1127*5088Sab196087 	{ MSG_ORIG(MSG_PT_TLS_ALT1),		PT_TLS },
1128*5088Sab196087 
1129*5088Sab196087 	{ MSG_ORIG(MSG_PT_SUNW_UNWIND),		PT_SUNW_UNWIND },
1130*5088Sab196087 	{ MSG_ORIG(MSG_PT_SUNW_UNWIND_ALT1),	PT_SUNW_UNWIND },
1131*5088Sab196087 
1132*5088Sab196087 	{ MSG_ORIG(MSG_PT_SUNWBSS),		PT_SUNWBSS },
1133*5088Sab196087 	{ MSG_ORIG(MSG_PT_SUNWBSS_ALT1),	PT_SUNWBSS },
1134*5088Sab196087 
1135*5088Sab196087 	{ MSG_ORIG(MSG_PT_SUNWSTACK),		PT_SUNWSTACK },
1136*5088Sab196087 	{ MSG_ORIG(MSG_PT_SUNWSTACK_ALT1),	PT_SUNWSTACK },
1137*5088Sab196087 
1138*5088Sab196087 	{ MSG_ORIG(MSG_PT_SUNWDTRACE),		PT_SUNWDTRACE },
1139*5088Sab196087 	{ MSG_ORIG(MSG_PT_SUNWDTRACE_ALT1),	PT_SUNWDTRACE },
1140*5088Sab196087 
1141*5088Sab196087 	{ MSG_ORIG(MSG_PT_SUNWCAP),		PT_SUNWCAP },
1142*5088Sab196087 	{ MSG_ORIG(MSG_PT_SUNWCAP_ALT1),	PT_SUNWCAP },
1143*5088Sab196087 
1144*5088Sab196087 	{ NULL }
1145*5088Sab196087 };
1146*5088Sab196087 
1147*5088Sab196087 
1148*5088Sab196087 /*
1149*5088Sab196087  * Program header PF_* flag values
1150*5088Sab196087  */
1151*5088Sab196087 static elfedit_atoui_sym_t sym_pf[] = {
1152*5088Sab196087 	{ MSG_ORIG(MSG_PF_X),			PF_X },
1153*5088Sab196087 	{ MSG_ORIG(MSG_PF_X_ALT1),		PF_X },
1154*5088Sab196087 
1155*5088Sab196087 	{ MSG_ORIG(MSG_PF_W),			PF_W },
1156*5088Sab196087 	{ MSG_ORIG(MSG_PF_W_ALT1),		PF_W },
1157*5088Sab196087 
1158*5088Sab196087 	{ MSG_ORIG(MSG_PF_R),			PF_R },
1159*5088Sab196087 	{ MSG_ORIG(MSG_PF_R_ALT1),		PF_R },
1160*5088Sab196087 
1161*5088Sab196087 	{ NULL }
1162*5088Sab196087 };
1163*5088Sab196087 
1164*5088Sab196087 
1165*5088Sab196087 /*
1166*5088Sab196087  * Section header SHF_* flag values
1167*5088Sab196087  */
1168*5088Sab196087 static elfedit_atoui_sym_t sym_shf[] = {
1169*5088Sab196087 	{ MSG_ORIG(MSG_SHF_WRITE),		SHF_WRITE },
1170*5088Sab196087 	{ MSG_ORIG(MSG_SHF_WRITE_ALT1),		SHF_WRITE },
1171*5088Sab196087 
1172*5088Sab196087 	{ MSG_ORIG(MSG_SHF_ALLOC),		SHF_ALLOC },
1173*5088Sab196087 	{ MSG_ORIG(MSG_SHF_ALLOC_ALT1),		SHF_ALLOC },
1174*5088Sab196087 
1175*5088Sab196087 	{ MSG_ORIG(MSG_SHF_EXECINSTR),		SHF_EXECINSTR },
1176*5088Sab196087 	{ MSG_ORIG(MSG_SHF_EXECINSTR_ALT1),	SHF_EXECINSTR },
1177*5088Sab196087 
1178*5088Sab196087 	{ MSG_ORIG(MSG_SHF_MERGE),		SHF_MERGE },
1179*5088Sab196087 	{ MSG_ORIG(MSG_SHF_MERGE_ALT1),		SHF_MERGE },
1180*5088Sab196087 
1181*5088Sab196087 	{ MSG_ORIG(MSG_SHF_STRINGS),		SHF_STRINGS },
1182*5088Sab196087 	{ MSG_ORIG(MSG_SHF_STRINGS_ALT1),	SHF_STRINGS },
1183*5088Sab196087 
1184*5088Sab196087 	{ MSG_ORIG(MSG_SHF_INFO_LINK),		SHF_INFO_LINK },
1185*5088Sab196087 	{ MSG_ORIG(MSG_SHF_INFO_LINK_ALT1),	SHF_INFO_LINK },
1186*5088Sab196087 
1187*5088Sab196087 	{ MSG_ORIG(MSG_SHF_LINK_ORDER),		SHF_LINK_ORDER },
1188*5088Sab196087 	{ MSG_ORIG(MSG_SHF_LINK_ORDER_ALT1),	SHF_LINK_ORDER },
1189*5088Sab196087 
1190*5088Sab196087 	{ MSG_ORIG(MSG_SHF_OS_NONCONFORMING),	SHF_OS_NONCONFORMING },
1191*5088Sab196087 	{ MSG_ORIG(MSG_SHF_OS_NONCONFORMING_ALT1), SHF_OS_NONCONFORMING },
1192*5088Sab196087 
1193*5088Sab196087 	{ MSG_ORIG(MSG_SHF_GROUP),		SHF_GROUP },
1194*5088Sab196087 	{ MSG_ORIG(MSG_SHF_GROUP_ALT1),		SHF_GROUP },
1195*5088Sab196087 
1196*5088Sab196087 	{ MSG_ORIG(MSG_SHF_TLS),		SHF_TLS },
1197*5088Sab196087 	{ MSG_ORIG(MSG_SHF_TLS_ALT1),		SHF_TLS },
1198*5088Sab196087 
1199*5088Sab196087 	{ NULL }
1200*5088Sab196087 };
1201*5088Sab196087 
1202*5088Sab196087 /*
1203*5088Sab196087  * ELF symbol bindings (st_info ELF_ST_BIND)
1204*5088Sab196087  */
1205*5088Sab196087 static elfedit_atoui_sym_t sym_stb[] = {
1206*5088Sab196087 	{ MSG_ORIG(MSG_STB_LOCAL),		STB_LOCAL },
1207*5088Sab196087 	{ MSG_ORIG(MSG_STB_LOCAL_ALT1),		STB_LOCAL },
1208*5088Sab196087 
1209*5088Sab196087 	{ MSG_ORIG(MSG_STB_GLOBAL),		STB_GLOBAL },
1210*5088Sab196087 	{ MSG_ORIG(MSG_STB_GLOBAL_ALT1),	STB_GLOBAL },
1211*5088Sab196087 
1212*5088Sab196087 	{ MSG_ORIG(MSG_STB_WEAK),		STB_WEAK },
1213*5088Sab196087 	{ MSG_ORIG(MSG_STB_WEAK_ALT1),		STB_WEAK },
1214*5088Sab196087 
1215*5088Sab196087 	{ NULL }
1216*5088Sab196087 };
1217*5088Sab196087 
1218*5088Sab196087 /*
1219*5088Sab196087  * ELF symbol types (st_info ELF_ST_TYPE)
1220*5088Sab196087  */
1221*5088Sab196087 static elfedit_atoui_sym_t sym_stt[] = {
1222*5088Sab196087 	{ MSG_ORIG(MSG_STT_NOTYPE),		STT_NOTYPE },
1223*5088Sab196087 	{ MSG_ORIG(MSG_STT_NOTYPE_ALT1),	STT_NOTYPE },
1224*5088Sab196087 
1225*5088Sab196087 	{ MSG_ORIG(MSG_STT_OBJECT),		STT_OBJECT },
1226*5088Sab196087 	{ MSG_ORIG(MSG_STT_OBJECT_ALT1),	STT_OBJECT },
1227*5088Sab196087 
1228*5088Sab196087 	{ MSG_ORIG(MSG_STT_FUNC),		STT_FUNC },
1229*5088Sab196087 	{ MSG_ORIG(MSG_STT_FUNC_ALT1),		STT_FUNC },
1230*5088Sab196087 
1231*5088Sab196087 	{ MSG_ORIG(MSG_STT_SECTION),		STT_SECTION },
1232*5088Sab196087 	{ MSG_ORIG(MSG_STT_SECTION_ALT1),	STT_SECTION },
1233*5088Sab196087 
1234*5088Sab196087 	{ MSG_ORIG(MSG_STT_FILE),		STT_FILE },
1235*5088Sab196087 	{ MSG_ORIG(MSG_STT_FILE_ALT1),		STT_FILE },
1236*5088Sab196087 
1237*5088Sab196087 	{ MSG_ORIG(MSG_STT_COMMON),		STT_COMMON },
1238*5088Sab196087 	{ MSG_ORIG(MSG_STT_COMMON_ALT1),	STT_COMMON },
1239*5088Sab196087 
1240*5088Sab196087 	{ MSG_ORIG(MSG_STT_TLS),		STT_TLS },
1241*5088Sab196087 	{ MSG_ORIG(MSG_STT_TLS_ALT1),		STT_TLS },
1242*5088Sab196087 
1243*5088Sab196087 	{ NULL }
1244*5088Sab196087 };
1245*5088Sab196087 
1246*5088Sab196087 /*
1247*5088Sab196087  * ELF symbol visibility (st_other ELF_ST_VISIBILITY)
1248*5088Sab196087  */
1249*5088Sab196087 static elfedit_atoui_sym_t sym_stv[] = {
1250*5088Sab196087 	{ MSG_ORIG(MSG_STV_DEFAULT),		STV_DEFAULT },
1251*5088Sab196087 	{ MSG_ORIG(MSG_STV_DEFAULT_ALT1),	STV_DEFAULT },
1252*5088Sab196087 
1253*5088Sab196087 	{ MSG_ORIG(MSG_STV_INTERNAL),		STV_INTERNAL },
1254*5088Sab196087 	{ MSG_ORIG(MSG_STV_INTERNAL_ALT1),	STV_INTERNAL },
1255*5088Sab196087 
1256*5088Sab196087 	{ MSG_ORIG(MSG_STV_HIDDEN),		STV_HIDDEN },
1257*5088Sab196087 	{ MSG_ORIG(MSG_STV_HIDDEN_ALT1),	STV_HIDDEN },
1258*5088Sab196087 
1259*5088Sab196087 	{ MSG_ORIG(MSG_STV_PROTECTED),		STV_PROTECTED },
1260*5088Sab196087 	{ MSG_ORIG(MSG_STV_PROTECTED_ALT1),	STV_PROTECTED },
1261*5088Sab196087 
1262*5088Sab196087 	{ NULL }
1263*5088Sab196087 };
1264*5088Sab196087 
1265*5088Sab196087 /*
1266*5088Sab196087  * ELF syminfo SYMINFO_BT_ special boundto values
1267*5088Sab196087  */
1268*5088Sab196087 static elfedit_atoui_sym_t sym_syminfo_bt[] = {
1269*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_BT_SELF),	SYMINFO_BT_SELF },
1270*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_BT_SELF_ALT1),	SYMINFO_BT_SELF },
1271*5088Sab196087 
1272*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_BT_PARENT),	SYMINFO_BT_PARENT },
1273*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_BT_PARENT_ALT1),	SYMINFO_BT_PARENT },
1274*5088Sab196087 
1275*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_BT_NONE),	SYMINFO_BT_NONE },
1276*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_BT_NONE_ALT1),	SYMINFO_BT_NONE },
1277*5088Sab196087 
1278*5088Sab196087 	{ NULL }
1279*5088Sab196087 };
1280*5088Sab196087 
1281*5088Sab196087 
1282*5088Sab196087 /*
1283*5088Sab196087  * ELF syminfo SYMINFO_FLG_ flags
1284*5088Sab196087  */
1285*5088Sab196087 static elfedit_atoui_sym_t sym_syminfo_flg[] = {
1286*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_FLG_DIRECT),	SYMINFO_FLG_DIRECT },
1287*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_FLG_DIRECT_ALT1), SYMINFO_FLG_DIRECT },
1288*5088Sab196087 
1289*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_FLG_COPY),	SYMINFO_FLG_COPY },
1290*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_FLG_COPY_ALT1),	SYMINFO_FLG_COPY },
1291*5088Sab196087 
1292*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_FLG_LAZYLOAD),	SYMINFO_FLG_LAZYLOAD },
1293*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_FLG_LAZYLOAD_ALT1), SYMINFO_FLG_LAZYLOAD },
1294*5088Sab196087 
1295*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_FLG_DIRECTBIND),	SYMINFO_FLG_DIRECTBIND },
1296*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_FLG_DIRECTBIND_ALT1), SYMINFO_FLG_DIRECTBIND },
1297*5088Sab196087 
1298*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_FLG_NOEXTDIRECT), SYMINFO_FLG_NOEXTDIRECT },
1299*5088Sab196087 	{ MSG_ORIG(MSG_SYMINFO_FLG_NOEXTDIRECT_ALT1), SYMINFO_FLG_NOEXTDIRECT },
1300*5088Sab196087 
1301*5088Sab196087 	{ NULL }
1302*5088Sab196087 };
1303*5088Sab196087 
1304*5088Sab196087 
1305*5088Sab196087 /*
1306*5088Sab196087  * ELF capabilities tag CA_ values
1307*5088Sab196087  */
1308*5088Sab196087 static elfedit_atoui_sym_t sym_ca[] = {
1309*5088Sab196087 	{ MSG_ORIG(MSG_CA_SUNW_NULL),		CA_SUNW_NULL },
1310*5088Sab196087 	{ MSG_ORIG(MSG_CA_SUNW_NULL_ALT1),	CA_SUNW_NULL },
1311*5088Sab196087 
1312*5088Sab196087 	{ MSG_ORIG(MSG_CA_SUNW_HW_1),		CA_SUNW_HW_1 },
1313*5088Sab196087 	{ MSG_ORIG(MSG_CA_SUNW_HW_1_ALT1),	CA_SUNW_HW_1 },
1314*5088Sab196087 
1315*5088Sab196087 	{ MSG_ORIG(MSG_CA_SUNW_SF_1),		CA_SUNW_SF_1 },
1316*5088Sab196087 	{ MSG_ORIG(MSG_CA_SUNW_SF_1_ALT1),	CA_SUNW_SF_1 },
1317*5088Sab196087 
1318*5088Sab196087 	{ NULL }
1319*5088Sab196087 };
1320*5088Sab196087 
1321*5088Sab196087 /*
1322*5088Sab196087  * AV_386 flags used for CA_SUNW_HW_1 capabilities
1323*5088Sab196087  */
1324*5088Sab196087 static elfedit_atoui_sym_t sym_av_386[] = {
1325*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_FPU),		AV_386_FPU },
1326*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_FPU_ALT1),	AV_386_FPU },
1327*5088Sab196087 
1328*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_TSC),		AV_386_TSC },
1329*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_TSC_ALT1),	AV_386_TSC },
1330*5088Sab196087 
1331*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_CX8),		AV_386_CX8 },
1332*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_CX8_ALT1),	AV_386_CX8 },
1333*5088Sab196087 
1334*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_SEP),		AV_386_SEP },
1335*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_SEP_ALT1),	AV_386_SEP },
1336*5088Sab196087 
1337*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AMD_SYSC),	AV_386_AMD_SYSC },
1338*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AMD_SYSC_ALT1),	AV_386_AMD_SYSC },
1339*5088Sab196087 
1340*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_CMOV),		AV_386_CMOV },
1341*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_CMOV_ALT1),	AV_386_CMOV },
1342*5088Sab196087 
1343*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_MMX),		AV_386_MMX },
1344*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_MMX_ALT1),	AV_386_MMX },
1345*5088Sab196087 
1346*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AMD_MMX),		AV_386_AMD_MMX },
1347*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AMD_MMX_ALT1),	AV_386_AMD_MMX },
1348*5088Sab196087 
1349*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AMD_3DNOW),	AV_386_AMD_3DNow },
1350*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AMD_3DNOW_ALT1),	AV_386_AMD_3DNow },
1351*5088Sab196087 
1352*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AMD_3DNOWX),	AV_386_AMD_3DNowx },
1353*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AMD_3DNOWX_ALT1),	AV_386_AMD_3DNowx },
1354*5088Sab196087 
1355*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_FXSR),		AV_386_FXSR },
1356*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_FXSR_ALT1),	AV_386_FXSR },
1357*5088Sab196087 
1358*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_SSE),		AV_386_SSE },
1359*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_SSE_ALT1),	AV_386_SSE },
1360*5088Sab196087 
1361*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_SSE2),		AV_386_SSE2 },
1362*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_SSE2_ALT1),	AV_386_SSE2 },
1363*5088Sab196087 
1364*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_PAUSE),		AV_386_PAUSE },
1365*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_PAUSE_ALT1),	AV_386_PAUSE },
1366*5088Sab196087 
1367*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_SSE3),		AV_386_SSE3 },
1368*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_SSE3_ALT1),	AV_386_SSE3 },
1369*5088Sab196087 
1370*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_MON),		AV_386_MON },
1371*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_MON_ALT1),	AV_386_MON },
1372*5088Sab196087 
1373*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_CX16),		AV_386_CX16 },
1374*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_CX16_ALT1),	AV_386_CX16 },
1375*5088Sab196087 
1376*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AHF),		AV_386_AHF },
1377*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AHF_ALT1),	AV_386_AHF },
1378*5088Sab196087 
1379*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_TSCP),		AV_386_TSCP },
1380*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_TSCP_ALT1),	AV_386_TSCP },
1381*5088Sab196087 
1382*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AMD_SSE4A),	AV_386_AMD_SSE4A },
1383*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AMD_SSE4A_ALT1),	AV_386_AMD_SSE4A },
1384*5088Sab196087 
1385*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_POPCNT),		AV_386_POPCNT },
1386*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_POPCNT_ALT1),	AV_386_POPCNT },
1387*5088Sab196087 
1388*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AMD_LZCNT),	AV_386_AMD_LZCNT },
1389*5088Sab196087 	{ MSG_ORIG(MSG_AV_386_AMD_LZCNT_ALT1),	AV_386_AMD_LZCNT },
1390*5088Sab196087 
1391*5088Sab196087 	{ NULL }
1392*5088Sab196087 };
1393*5088Sab196087 
1394*5088Sab196087 
1395*5088Sab196087 /*
1396*5088Sab196087  * AV_SPARC flags used for CA_SUNW_HW_1 capabilities
1397*5088Sab196087  */
1398*5088Sab196087 static elfedit_atoui_sym_t sym_av_sparc[] = {
1399*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_MUL32),		AV_SPARC_MUL32 },
1400*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_MUL32_ALT1),	AV_SPARC_MUL32 },
1401*5088Sab196087 
1402*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_DIV32),		AV_SPARC_DIV32 },
1403*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_DIV32_ALT1),	AV_SPARC_DIV32 },
1404*5088Sab196087 
1405*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_FSMULD),	AV_SPARC_FSMULD },
1406*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_FSMULD_ALT1),	AV_SPARC_FSMULD },
1407*5088Sab196087 
1408*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_V8PLUS),	AV_SPARC_V8PLUS },
1409*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_V8PLUS_ALT1),	AV_SPARC_V8PLUS },
1410*5088Sab196087 
1411*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_POPC),		AV_SPARC_POPC },
1412*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_POPC_ALT1),	AV_SPARC_POPC },
1413*5088Sab196087 
1414*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_VIS),		AV_SPARC_VIS },
1415*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_VIS_ALT1),	AV_SPARC_VIS },
1416*5088Sab196087 
1417*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_VIS2),		AV_SPARC_VIS2 },
1418*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_VIS2_ALT1),	AV_SPARC_VIS2 },
1419*5088Sab196087 
1420*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_ASI_BLK_INIT),	AV_SPARC_ASI_BLK_INIT },
1421*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_ASI_BLK_INIT_ALT1), AV_SPARC_ASI_BLK_INIT },
1422*5088Sab196087 
1423*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_FMAF),		AV_SPARC_FMAF },
1424*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_FMAF_ALT1),	AV_SPARC_FMAF },
1425*5088Sab196087 
1426*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_FJFMAU),	AV_SPARC_FJFMAU },
1427*5088Sab196087 	{ MSG_ORIG(MSG_AV_SPARC_FJFMAU_ALT1),	AV_SPARC_FJFMAU },
1428*5088Sab196087 
1429*5088Sab196087 	{ NULL }
1430*5088Sab196087 };
1431*5088Sab196087 
1432*5088Sab196087 
1433*5088Sab196087 /*
1434*5088Sab196087  * SF1_SUNW flags used for CA_SUNW_SF_1 capabilities
1435*5088Sab196087  */
1436*5088Sab196087 static elfedit_atoui_sym_t sym_sf1_sunw[] = {
1437*5088Sab196087 	{ MSG_ORIG(MSG_SF1_SUNW_FPKNWN),	SF1_SUNW_FPKNWN },
1438*5088Sab196087 	{ MSG_ORIG(MSG_SF1_SUNW_FPKNWN_ALT1),	SF1_SUNW_FPKNWN },
1439*5088Sab196087 
1440*5088Sab196087 	{ MSG_ORIG(MSG_SF1_SUNW_FPUSED),	SF1_SUNW_FPUSED },
1441*5088Sab196087 	{ MSG_ORIG(MSG_SF1_SUNW_FPUSED_ALT1),	SF1_SUNW_FPUSED },
1442*5088Sab196087 
1443*5088Sab196087 	{ NULL }
1444*5088Sab196087 };
1445*5088Sab196087 
1446*5088Sab196087 
1447*5088Sab196087 
1448*5088Sab196087 
1449*5088Sab196087 
1450*5088Sab196087 
1451*5088Sab196087 
1452*5088Sab196087 /*
1453*5088Sab196087  * Array of pointers to atoui arrays for each constant type, indexed
1454*5088Sab196087  * by elfedit_const_t value. The number and order of entries in this
1455*5088Sab196087  * table must agree with the definition of elfedit_const_t in elfedit.h.
1456*5088Sab196087  */
1457*5088Sab196087 static elfedit_atoui_sym_t *sym_table[] = {
1458*5088Sab196087 	sym_outstyle,		/* 0: ELFEDIT_CONST_OUTSTYLE */
1459*5088Sab196087 	sym_minus_o_outstyle,	/* 1: ELFEDIT_CONST_OUTSTYLE_MO */
1460*5088Sab196087 	sym_bool,		/* 2: ELFEDIT_CONST_BOOL */
1461*5088Sab196087 	sym_shn,		/* 3: ELFEDIT_CONST_SHN */
1462*5088Sab196087 	sym_sht,		/* 4: ELFEDIT_CONST_SHT */
1463*5088Sab196087 	sym_sht_strtab,		/* 5: ELFEDIT_CONST_SHT_STRTAB */
1464*5088Sab196087 	sym_sht_allsymtab,	/* 6: ELFEDIT_CONST_SHT_ALLSYMTAB */
1465*5088Sab196087 	sym_sht_symtab,		/* 7: ELFEDIT_CONST_SHT_SYMTAB */
1466*5088Sab196087 	sym_sht_dynsym,		/* 8: ELFEDIT_CONST_SHT_DYNSYM */
1467*5088Sab196087 	sym_sht_ldynsym,	/* 9: ELFEDIT_CONST_SHT_LDYNSYM */
1468*5088Sab196087 	sym_dt,			/* 10: ELFEDIT_CONST_DT: Dynamic tags */
1469*5088Sab196087 	sym_df,			/* 11: ELFEDIT_CONST_DF: DT_FLAGS */
1470*5088Sab196087 	sym_df_p1,		/* 12: ELFEDIT_CONST_DF_P1: DF_POSFLAG_1 */
1471*5088Sab196087 	sym_df_1,		/* 13: ELFEDIT_CONST_DF_1: DT_FLAGS_1 */
1472*5088Sab196087 	sym_dtf_1,		/* 14: ELFEDIT_CONST_DTF_1: DT_FEATURE_1 */
1473*5088Sab196087 	sym_ei,			/* 15: ELFEDIT_CONST_EI: Ehdr e_ident indexes */
1474*5088Sab196087 	sym_et,			/* 16: ELFEDIT_CONST_ET: Ehdr obj type */
1475*5088Sab196087 	sym_elfclass,		/* 17: ELFEDIT_CONST_ELFCLASS: Ehdr class */
1476*5088Sab196087 	sym_elfdata,		/* 18: ELFEDIT_CONST_ELFDATA: Ehdr endian */
1477*5088Sab196087 	sym_ef,			/* 19: ELFEDIT_CONST_EF: Ehdr flags */
1478*5088Sab196087 	sym_ev,			/* 20: ELFEDIT_CONST_EV: Ehdr version */
1479*5088Sab196087 	sym_em,			/* 21: ELFEDIT_CONST_EM: Ehdr machine */
1480*5088Sab196087 	sym_elfosabi,		/* 22: ELFEDIT_CONST_ELFOSABI: Ehdr ABI */
1481*5088Sab196087 	sym_pt,			/* 23: ELFEDIT_CONST_PT: Phdr type */
1482*5088Sab196087 	sym_pf,			/* 24: ELFEDIT_CONST_PF: Phdr flags */
1483*5088Sab196087 	sym_shf,		/* 25: ELFEDIT_CONST_SHF: Shdr flags */
1484*5088Sab196087 	sym_stb,		/* 26: ELFEDIT_CONST_STB: Sym binding */
1485*5088Sab196087 	sym_stt,		/* 27: ELFEDIT_CONST_STT: Sym type */
1486*5088Sab196087 	sym_stv,		/* 28: ELFEDIT_CONST_STV: Sym visibility */
1487*5088Sab196087 	sym_syminfo_bt,		/* 29: ELFEDIT_CONST_SYMINFO_BT:Syminfo bndto */
1488*5088Sab196087 	sym_syminfo_flg,	/* 30: ELFEDIT_CONST_SYMINFO_FLG:Syminfo flag */
1489*5088Sab196087 	sym_ca,			/* 31: ELFEDIT_CONST_CA: Capabilities tags */
1490*5088Sab196087 	sym_av_386,		/* 32: ELFEDIT_CONST_AV_386: X86 HW caps */
1491*5088Sab196087 	sym_av_sparc,		/* 33: ELFEDIT_CONST_AV_SPARC: sparc HW caps */
1492*5088Sab196087 	sym_sf1_sunw,		/* 34: ELFEDIT_CONST_SF1_SUNW: software caps */
1493*5088Sab196087 };
1494*5088Sab196087 
1495*5088Sab196087 
1496*5088Sab196087 
1497*5088Sab196087 
1498*5088Sab196087 
1499*5088Sab196087 
1500*5088Sab196087 
1501*5088Sab196087 /*
1502*5088Sab196087  * Given an elfedit_const_t value, return the array of elfedit_atoui_sym_t
1503*5088Sab196087  * entries that it represents.
1504*5088Sab196087  */
1505*5088Sab196087 elfedit_atoui_sym_t *
1506*5088Sab196087 elfedit_const_to_atoui(elfedit_const_t const_type)
1507*5088Sab196087 {
1508*5088Sab196087 	if ((const_type < 0) ||
1509*5088Sab196087 	    (const_type >= (sizeof (sym_table) / sizeof (sym_table[0]))))
1510*5088Sab196087 		elfedit_msg(ELFEDIT_MSG_ERR, MSG_INTL(MSG_ERR_BADCONST));
1511*5088Sab196087 
1512*5088Sab196087 	return (sym_table[const_type]);
1513*5088Sab196087 }
1514*5088Sab196087 
1515*5088Sab196087 
1516*5088Sab196087 
1517*5088Sab196087 /*
1518*5088Sab196087  * Return the elfedit_atoui_t array that corresponds to the
1519*5088Sab196087  * CA_SUNW_HW_1 hardware capabiliies field for a given
1520*5088Sab196087  * machine type.
1521*5088Sab196087  *
1522*5088Sab196087  * This routine will return NULL if there is no definition for the
1523*5088Sab196087  * machine specified.
1524*5088Sab196087  */
1525*5088Sab196087 elfedit_atoui_sym_t *
1526*5088Sab196087 elfedit_mach_sunw_hw1_to_atoui(int mach)
1527*5088Sab196087 {
1528*5088Sab196087 	switch (mach) {
1529*5088Sab196087 	case EM_386:
1530*5088Sab196087 	case EM_486:
1531*5088Sab196087 	case EM_AMD64:
1532*5088Sab196087 		return (elfedit_const_to_atoui(ELFEDIT_CONST_AV_386));
1533*5088Sab196087 
1534*5088Sab196087 	case EM_SPARC:
1535*5088Sab196087 	case EM_SPARC32PLUS:
1536*5088Sab196087 	case EM_SPARCV9:
1537*5088Sab196087 		return (elfedit_const_to_atoui(ELFEDIT_CONST_AV_SPARC));
1538*5088Sab196087 	}
1539*5088Sab196087 
1540*5088Sab196087 	/* A machine we don't know about */
1541*5088Sab196087 	return (NULL);
1542*5088Sab196087 }
1543