xref: /freebsd/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c (revision e85c2b0b126d3b224995ef6e2f568a2d36b20fc4)
1a85fe12eSEd Maste /*-
2a85fe12eSEd Maste  * Copyright (c) 2008,2009 Kai Wang
3a85fe12eSEd Maste  * All rights reserved.
4a85fe12eSEd Maste  *
5a85fe12eSEd Maste  * Redistribution and use in source and binary forms, with or without
6a85fe12eSEd Maste  * modification, are permitted provided that the following conditions
7a85fe12eSEd Maste  * are met:
8a85fe12eSEd Maste  * 1. Redistributions of source code must retain the above copyright
9a85fe12eSEd Maste  *    notice, this list of conditions and the following disclaimer
10a85fe12eSEd Maste  *    in this position and unchanged.
11a85fe12eSEd Maste  * 2. Redistributions in binary form must reproduce the above copyright
12a85fe12eSEd Maste  *    notice, this list of conditions and the following disclaimer in the
13a85fe12eSEd Maste  *    documentation and/or other materials provided with the distribution.
14a85fe12eSEd Maste  *
15a85fe12eSEd Maste  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
16a85fe12eSEd Maste  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17a85fe12eSEd Maste  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18a85fe12eSEd Maste  * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
19a85fe12eSEd Maste  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20a85fe12eSEd Maste  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21a85fe12eSEd Maste  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22a85fe12eSEd Maste  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23a85fe12eSEd Maste  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24a85fe12eSEd Maste  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25a85fe12eSEd Maste  */
26a85fe12eSEd Maste 
27a85fe12eSEd Maste #include <sys/param.h>
28a85fe12eSEd Maste #include <libelf.h>
29a85fe12eSEd Maste #include <libelftc.h>
30a85fe12eSEd Maste 
31a85fe12eSEd Maste #include "_libelftc.h"
32a85fe12eSEd Maste 
33839529caSEd Maste ELFTC_VCSID("$Id: libelftc_bfdtarget.c 3309 2016-01-10 09:10:51Z kaiwang27 $");
34a85fe12eSEd Maste 
35a85fe12eSEd Maste struct _Elftc_Bfd_Target _libelftc_targets[] = {
36a85fe12eSEd Maste 
37a85fe12eSEd Maste 	{
38a85fe12eSEd Maste 		.bt_name = "binary",
39a85fe12eSEd Maste 		.bt_type = ETF_BINARY,
40a85fe12eSEd Maste 	},
41a85fe12eSEd Maste 
42a85fe12eSEd Maste 	{
43a85fe12eSEd Maste 		.bt_name      = "elf32-avr",
44a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
45a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
46a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
47a85fe12eSEd Maste 		.bt_machine   = EM_AVR,
48a85fe12eSEd Maste 	},
49a85fe12eSEd Maste 
50a85fe12eSEd Maste 	{
51a85fe12eSEd Maste 		.bt_name      = "elf32-big",
52a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
53a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
54a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
55a85fe12eSEd Maste 	},
56a85fe12eSEd Maste 
57a85fe12eSEd Maste 	{
58a85fe12eSEd Maste 		.bt_name      = "elf32-bigarm",
59a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
60a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
61a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
62a85fe12eSEd Maste 		.bt_machine   = EM_ARM,
63a85fe12eSEd Maste 	},
64a85fe12eSEd Maste 
65a85fe12eSEd Maste 	{
66a85fe12eSEd Maste 		.bt_name      = "elf32-bigmips",
67a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
68a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
69a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
70a85fe12eSEd Maste 		.bt_machine   = EM_MIPS,
71a85fe12eSEd Maste 	},
72a85fe12eSEd Maste 
73a85fe12eSEd Maste 	{
74a85fe12eSEd Maste 		.bt_name      = "elf32-i386",
75a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
76a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
77a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
78a85fe12eSEd Maste 		.bt_machine   = EM_386,
79a85fe12eSEd Maste 	},
80a85fe12eSEd Maste 
81a85fe12eSEd Maste 	{
82a85fe12eSEd Maste 		.bt_name      = "elf32-i386-freebsd",
83a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
84a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
85a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
86a85fe12eSEd Maste 		.bt_machine   = EM_386,
87a85fe12eSEd Maste 		.bt_osabi     = ELFOSABI_FREEBSD,
88a85fe12eSEd Maste 	},
89a85fe12eSEd Maste 
90a85fe12eSEd Maste 	{
91a85fe12eSEd Maste 		.bt_name      = "elf32-ia64-big",
92a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
93a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
94a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
95a85fe12eSEd Maste 		.bt_machine   = EM_IA_64,
96a85fe12eSEd Maste 	},
97a85fe12eSEd Maste 
98a85fe12eSEd Maste 	{
99a85fe12eSEd Maste 		.bt_name      = "elf32-little",
100a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
101a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
102a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
103a85fe12eSEd Maste 	},
104a85fe12eSEd Maste 
105a85fe12eSEd Maste 	{
106a85fe12eSEd Maste 		.bt_name      = "elf32-littlearm",
107a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
108a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
109a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
110a85fe12eSEd Maste 		.bt_machine   = EM_ARM,
111a85fe12eSEd Maste 	},
112a85fe12eSEd Maste 
113a85fe12eSEd Maste 	{
114a85fe12eSEd Maste 		.bt_name      = "elf32-littlemips",
115a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
116a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
117a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
118a85fe12eSEd Maste 		.bt_machine   = EM_MIPS,
119a85fe12eSEd Maste 	},
120a85fe12eSEd Maste 
121a85fe12eSEd Maste 	{
122a85fe12eSEd Maste 		.bt_name      = "elf32-powerpc",
123a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
124a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
125a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
126a85fe12eSEd Maste 		.bt_machine   = EM_PPC,
127a85fe12eSEd Maste 	},
128a85fe12eSEd Maste 
129a85fe12eSEd Maste 	{
130a85fe12eSEd Maste 		.bt_name      = "elf32-powerpcle",
131a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
132a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
133a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
134a85fe12eSEd Maste 		.bt_machine   = EM_PPC,
135a85fe12eSEd Maste 	},
136a85fe12eSEd Maste 
137a85fe12eSEd Maste 	{
138a85fe12eSEd Maste 		.bt_name      = "elf32-sh",
139a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
140a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
141a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
142a85fe12eSEd Maste 		.bt_machine   = EM_SH,
143a85fe12eSEd Maste 	},
144a85fe12eSEd Maste 
145a85fe12eSEd Maste 	{
146a85fe12eSEd Maste 		.bt_name      = "elf32-shl",
147a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
148a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
149a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
150a85fe12eSEd Maste 		.bt_machine   = EM_SH,
151a85fe12eSEd Maste 	},
152a85fe12eSEd Maste 
153a85fe12eSEd Maste 	{
154a85fe12eSEd Maste 		.bt_name      = "elf32-sh-nbsd",
155a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
156a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
157a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
158a85fe12eSEd Maste 		.bt_machine   = EM_SH,
159a85fe12eSEd Maste 		.bt_osabi     = ELFOSABI_NETBSD,
160a85fe12eSEd Maste 	},
161a85fe12eSEd Maste 
162a85fe12eSEd Maste 	{
163a85fe12eSEd Maste 		.bt_name      = "elf32-shl-nbsd",
164a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
165a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
166a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
167a85fe12eSEd Maste 		.bt_machine   = EM_SH,
168a85fe12eSEd Maste 		.bt_osabi     = ELFOSABI_NETBSD,
169a85fe12eSEd Maste 	},
170a85fe12eSEd Maste 
171a85fe12eSEd Maste 	{
172a85fe12eSEd Maste 		.bt_name      = "elf32-shbig-linux",
173a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
174a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
175a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
176a85fe12eSEd Maste 		.bt_machine   = EM_SH,
177a85fe12eSEd Maste 		.bt_osabi     = ELFOSABI_LINUX,
178a85fe12eSEd Maste 	},
179a85fe12eSEd Maste 
180a85fe12eSEd Maste 	{
181a85fe12eSEd Maste 		.bt_name      = "elf32-sh-linux",
182a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
183a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
184a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
185a85fe12eSEd Maste 		.bt_machine   = EM_SH,
186a85fe12eSEd Maste 		.bt_osabi     = ELFOSABI_LINUX,
187a85fe12eSEd Maste 	},
188a85fe12eSEd Maste 
189a85fe12eSEd Maste 	{
190a85fe12eSEd Maste 		.bt_name      = "elf32-sparc",
191a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
192a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
193a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS32,
194a85fe12eSEd Maste 		.bt_machine   = EM_SPARC,
195a85fe12eSEd Maste 	},
196a85fe12eSEd Maste 
197a85fe12eSEd Maste 	{
198a85fe12eSEd Maste 		.bt_name      = "elf64-alpha",
199a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
200a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
201a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
202a85fe12eSEd Maste 		.bt_machine   = EM_ALPHA,
203a85fe12eSEd Maste 	},
204a85fe12eSEd Maste 
205a85fe12eSEd Maste 	{
206a85fe12eSEd Maste 		.bt_name      = "elf64-alpha-freebsd",
207a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
208a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
209a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
210a85fe12eSEd Maste 		.bt_machine   = EM_ALPHA,
211a85fe12eSEd Maste 		.bt_osabi     = ELFOSABI_FREEBSD
212a85fe12eSEd Maste 	},
213a85fe12eSEd Maste 
214a85fe12eSEd Maste 	{
215a85fe12eSEd Maste 		.bt_name      = "elf64-big",
216a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
217a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
218a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
219a85fe12eSEd Maste 	},
220a85fe12eSEd Maste 
221a85fe12eSEd Maste 	{
222a85fe12eSEd Maste 		.bt_name      = "elf64-bigmips",
223a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
224a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
225a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
226a85fe12eSEd Maste 		.bt_machine   = EM_MIPS,
227a85fe12eSEd Maste 	},
228a85fe12eSEd Maste 
229a85fe12eSEd Maste 	{
230a85fe12eSEd Maste 		.bt_name      = "elf64-ia64-big",
231a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
232a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
233a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
234a85fe12eSEd Maste 		.bt_machine   = EM_IA_64,
235a85fe12eSEd Maste 	},
236a85fe12eSEd Maste 
237a85fe12eSEd Maste 	{
238a85fe12eSEd Maste 		.bt_name      = "elf64-ia64-little",
239a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
240a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
241a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
242a85fe12eSEd Maste 		.bt_machine   = EM_IA_64,
243a85fe12eSEd Maste 	},
244a85fe12eSEd Maste 
245a85fe12eSEd Maste 	{
246a85fe12eSEd Maste 		.bt_name      = "elf64-little",
247a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
248a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
249a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
250a85fe12eSEd Maste 	},
251a85fe12eSEd Maste 
252a85fe12eSEd Maste 	{
253*e85c2b0bSEd Maste 		.bt_name      = "elf64-littleaarch64",
254*e85c2b0bSEd Maste 		.bt_type      = ETF_ELF,
255*e85c2b0bSEd Maste 		.bt_byteorder = ELFDATA2LSB,
256*e85c2b0bSEd Maste 		.bt_elfclass  = ELFCLASS64,
257*e85c2b0bSEd Maste 		.bt_machine   = EM_AARCH64,
258*e85c2b0bSEd Maste 	},
259*e85c2b0bSEd Maste 
260*e85c2b0bSEd Maste 	{
261a85fe12eSEd Maste 		.bt_name      = "elf64-littlemips",
262a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
263a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
264a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
265a85fe12eSEd Maste 		.bt_machine   = EM_MIPS,
266a85fe12eSEd Maste 	},
267a85fe12eSEd Maste 
268a85fe12eSEd Maste 	{
269a85fe12eSEd Maste 		.bt_name      = "elf64-powerpc",
270a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
271a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
272a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
273a85fe12eSEd Maste 		.bt_machine   = EM_PPC64,
274a85fe12eSEd Maste 	},
275a85fe12eSEd Maste 
276a85fe12eSEd Maste 	{
277a85fe12eSEd Maste 		.bt_name      = "elf64-powerpcle",
278a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
279a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
280a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
281a85fe12eSEd Maste 		.bt_machine   = EM_PPC64,
282a85fe12eSEd Maste 	},
283a85fe12eSEd Maste 
284a85fe12eSEd Maste 	{
285a85fe12eSEd Maste 		.bt_name      = "elf64-sh64",
286a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
287a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
288a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
289a85fe12eSEd Maste 		.bt_machine   = EM_SH,
290a85fe12eSEd Maste 	},
291a85fe12eSEd Maste 
292a85fe12eSEd Maste 	{
293a85fe12eSEd Maste 		.bt_name      = "elf64-sh64l",
294a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
295a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
296a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
297a85fe12eSEd Maste 		.bt_machine   = EM_SH,
298a85fe12eSEd Maste 	},
299a85fe12eSEd Maste 
300a85fe12eSEd Maste 	{
301a85fe12eSEd Maste 		.bt_name      = "elf64-sh64-nbsd",
302a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
303a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
304a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
305a85fe12eSEd Maste 		.bt_machine   = EM_SH,
306a85fe12eSEd Maste 		.bt_osabi     = ELFOSABI_NETBSD,
307a85fe12eSEd Maste 	},
308a85fe12eSEd Maste 
309a85fe12eSEd Maste 	{
310a85fe12eSEd Maste 		.bt_name      = "elf64-sh64l-nbsd",
311a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
312a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
313a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
314a85fe12eSEd Maste 		.bt_machine   = EM_SH,
315a85fe12eSEd Maste 		.bt_osabi     = ELFOSABI_NETBSD,
316a85fe12eSEd Maste 	},
317a85fe12eSEd Maste 
318a85fe12eSEd Maste 	{
319a85fe12eSEd Maste 		.bt_name      = "elf64-sh64big-linux",
320a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
321a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
322a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
323a85fe12eSEd Maste 		.bt_machine   = EM_SH,
324a85fe12eSEd Maste 		.bt_osabi     = ELFOSABI_LINUX,
325a85fe12eSEd Maste 	},
326a85fe12eSEd Maste 
327a85fe12eSEd Maste 	{
328a85fe12eSEd Maste 		.bt_name      = "elf64-sh64-linux",
329a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
330a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
331a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
332a85fe12eSEd Maste 		.bt_machine   = EM_SH,
333a85fe12eSEd Maste 		.bt_osabi     = ELFOSABI_LINUX,
334a85fe12eSEd Maste 	},
335a85fe12eSEd Maste 
336a85fe12eSEd Maste 	{
337a85fe12eSEd Maste 		.bt_name      = "elf64-sparc",
338a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
339a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
340a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
341a85fe12eSEd Maste 		.bt_machine   = EM_SPARCV9,
342a85fe12eSEd Maste 	},
343a85fe12eSEd Maste 
344a85fe12eSEd Maste 	{
345a85fe12eSEd Maste 		.bt_name      = "elf64-sparc-freebsd",
346a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
347a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2MSB,
348a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
349a85fe12eSEd Maste 		.bt_machine   = EM_SPARCV9,
350a85fe12eSEd Maste 		.bt_osabi     = ELFOSABI_FREEBSD
351a85fe12eSEd Maste 	},
352a85fe12eSEd Maste 
353a85fe12eSEd Maste 	{
354a85fe12eSEd Maste 		.bt_name      = "elf64-x86-64",
355a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
356a85fe12eSEd Maste 		.bt_byteorder =	ELFDATA2LSB,
357a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
358a85fe12eSEd Maste 		.bt_machine   = EM_X86_64,
359a85fe12eSEd Maste 	},
360a85fe12eSEd Maste 
361a85fe12eSEd Maste 	{
362a85fe12eSEd Maste 		.bt_name      = "elf64-x86-64-freebsd",
363a85fe12eSEd Maste 		.bt_type      = ETF_ELF,
364a85fe12eSEd Maste 		.bt_byteorder = ELFDATA2LSB,
365a85fe12eSEd Maste 		.bt_elfclass  = ELFCLASS64,
366a85fe12eSEd Maste 		.bt_machine   = EM_X86_64,
367a85fe12eSEd Maste 		.bt_osabi     = ELFOSABI_FREEBSD
368a85fe12eSEd Maste 	},
369a85fe12eSEd Maste 
370a85fe12eSEd Maste 	{
371a85fe12eSEd Maste 		.bt_name = "ihex",
372a85fe12eSEd Maste 		.bt_type = ETF_IHEX,
373a85fe12eSEd Maste 	},
374a85fe12eSEd Maste 
375a85fe12eSEd Maste 	{
376a85fe12eSEd Maste 		.bt_name = "srec",
377a85fe12eSEd Maste 		.bt_type = ETF_SREC,
378a85fe12eSEd Maste 	},
379a85fe12eSEd Maste 
380a85fe12eSEd Maste 	{
381a85fe12eSEd Maste 		.bt_name = "symbolsrec",
382a85fe12eSEd Maste 		.bt_type = ETF_SREC,
383a85fe12eSEd Maste 	},
384a85fe12eSEd Maste 
385a85fe12eSEd Maste 	{
386839529caSEd Maste 		.bt_name    = "efi-app-ia32",
387839529caSEd Maste 		.bt_type    = ETF_EFI,
388839529caSEd Maste 		.bt_machine = EM_386,
389839529caSEd Maste 	},
390839529caSEd Maste 
391839529caSEd Maste 	{
392839529caSEd Maste 		.bt_name    = "efi-app-x86_64",
393839529caSEd Maste 		.bt_type    = ETF_EFI,
394839529caSEd Maste 		.bt_machine = EM_X86_64,
395839529caSEd Maste 	},
396839529caSEd Maste 
397839529caSEd Maste 	{
398839529caSEd Maste 		.bt_name    = "pei-i386",
399839529caSEd Maste 		.bt_type    = ETF_PE,
400839529caSEd Maste 		.bt_machine = EM_386,
401839529caSEd Maste 	},
402839529caSEd Maste 
403839529caSEd Maste 	{
404839529caSEd Maste 		.bt_name    = "pei-x86-64",
405839529caSEd Maste 		.bt_type    = ETF_PE,
406839529caSEd Maste 		.bt_machine = EM_X86_64,
407839529caSEd Maste 	},
408839529caSEd Maste 
409839529caSEd Maste 	{
410a85fe12eSEd Maste 		.bt_name = NULL,
411a85fe12eSEd Maste 		.bt_type = ETF_NONE,
412a85fe12eSEd Maste 	},
413a85fe12eSEd Maste };
414