678 lines
		
	
	
	
		
			27 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			678 lines
		
	
	
	
		
			27 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<html lang="en">
 | 
						|
<head>
 | 
						|
<title>Architectures - Untitled</title>
 | 
						|
<meta http-equiv="Content-Type" content="text/html">
 | 
						|
<meta name="description" content="Untitled">
 | 
						|
<meta name="generator" content="makeinfo 4.7">
 | 
						|
<link title="Top" rel="start" href="index.html#Top">
 | 
						|
<link rel="up" href="BFD-front-end.html#BFD-front-end" title="BFD front end">
 | 
						|
<link rel="prev" href="Targets.html#Targets" title="Targets">
 | 
						|
<link rel="next" href="Opening-and-Closing.html#Opening-and-Closing" title="Opening and Closing">
 | 
						|
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
 | 
						|
<!--
 | 
						|
This file documents the BFD library.
 | 
						|
 | 
						|
Copyright (C) 1991, 2000, 2001, 2003, 2006, 2007 Free Software Foundation, Inc.
 | 
						|
 | 
						|
Permission is granted to copy, distribute and/or modify this document
 | 
						|
under the terms of the GNU Free Documentation License, Version 1.1 or
 | 
						|
any later version published by the Free Software Foundation; with the
 | 
						|
Invariant Sections being ``GNU General Public License'' and ``Funding
 | 
						|
Free Software'', the Front-Cover texts being (a) (see below), and with
 | 
						|
the Back-Cover Texts being (b) (see below).  A copy of the license is
 | 
						|
included in the section entitled ``GNU Free Documentation License''.
 | 
						|
 | 
						|
(a) The FSF's Front-Cover Text is:
 | 
						|
 | 
						|
     A GNU Manual
 | 
						|
 | 
						|
(b) The FSF's Back-Cover Text is:
 | 
						|
 | 
						|
     You have freedom to copy and modify this GNU Manual, like GNU
 | 
						|
     software.  Copies published by the Free Software Foundation raise
 | 
						|
     funds for GNU development.-->
 | 
						|
<meta http-equiv="Content-Style-Type" content="text/css">
 | 
						|
<style type="text/css"><!--
 | 
						|
  pre.display { font-family:inherit }
 | 
						|
  pre.format  { font-family:inherit }
 | 
						|
  pre.smalldisplay { font-family:inherit; font-size:smaller }
 | 
						|
  pre.smallformat  { font-family:inherit; font-size:smaller }
 | 
						|
  pre.smallexample { font-size:smaller }
 | 
						|
  pre.smalllisp    { font-size:smaller }
 | 
						|
  span.sc { font-variant:small-caps }
 | 
						|
  span.roman { font-family: serif; font-weight: normal; } 
 | 
						|
--></style>
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
<div class="node">
 | 
						|
<p>
 | 
						|
<a name="Architectures"></a>Next: <a rel="next" accesskey="n" href="Opening-and-Closing.html#Opening-and-Closing">Opening and Closing</a>,
 | 
						|
Previous: <a rel="previous" accesskey="p" href="Targets.html#Targets">Targets</a>,
 | 
						|
Up: <a rel="up" accesskey="u" href="BFD-front-end.html#BFD-front-end">BFD front end</a>
 | 
						|
<hr><br>
 | 
						|
</div>
 | 
						|
 | 
						|
<h3 class="section">2.13 Architectures</h3>
 | 
						|
 | 
						|
<p>BFD keeps one atom in a BFD describing the
 | 
						|
architecture of the data attached to the BFD: a pointer to a
 | 
						|
<code>bfd_arch_info_type</code>.
 | 
						|
 | 
						|
   <p>Pointers to structures can be requested independently of a BFD
 | 
						|
so that an architecture's information can be interrogated
 | 
						|
without access to an open BFD.
 | 
						|
 | 
						|
   <p>The architecture information is provided by each architecture package. 
 | 
						|
The set of default architectures is selected by the macro
 | 
						|
<code>SELECT_ARCHITECTURES</code>.  This is normally set up in the
 | 
						|
<span class="file">config/</span><var>target</var><span class="file">.mt</span> file of your choice.  If the name is not
 | 
						|
defined, then all the architectures supported are included.
 | 
						|
 | 
						|
   <p>When BFD starts up, all the architectures are called with an
 | 
						|
initialize method.  It is up to the architecture back end to
 | 
						|
insert as many items into the list of architectures as it wants to;
 | 
						|
generally this would be one for each machine and one for the
 | 
						|
default case (an item with a machine field of 0).
 | 
						|
 | 
						|
   <p>BFD's idea of an architecture is implemented in <span class="file">archures.c</span>.
 | 
						|
 | 
						|
<h4 class="subsection">2.13.1 bfd_architecture</h4>
 | 
						|
 | 
						|
<p><strong>Description</strong><br>
 | 
						|
This enum gives the object file's CPU architecture, in a
 | 
						|
global sense—i.e., what processor family does it belong to? 
 | 
						|
Another field indicates which processor within
 | 
						|
the family is in use.  The machine gives a number which
 | 
						|
distinguishes different versions of the architecture,
 | 
						|
containing, for example, 2 and 3 for Intel i960 KA and i960 KB,
 | 
						|
and 68020 and 68030 for Motorola 68020 and 68030.
 | 
						|
<pre class="example">     enum bfd_architecture
 | 
						|
     {
 | 
						|
       bfd_arch_unknown,   /* File arch not known.  */
 | 
						|
       bfd_arch_obscure,   /* Arch known, not one of these.  */
 | 
						|
       bfd_arch_m68k,      /* Motorola 68xxx */
 | 
						|
     #define bfd_mach_m68000 1
 | 
						|
     #define bfd_mach_m68008 2
 | 
						|
     #define bfd_mach_m68010 3
 | 
						|
     #define bfd_mach_m68020 4
 | 
						|
     #define bfd_mach_m68030 5
 | 
						|
     #define bfd_mach_m68040 6
 | 
						|
     #define bfd_mach_m68060 7
 | 
						|
     #define bfd_mach_cpu32  8
 | 
						|
     #define bfd_mach_fido   9
 | 
						|
     #define bfd_mach_mcf_isa_a_nodiv 10
 | 
						|
     #define bfd_mach_mcf_isa_a 11
 | 
						|
     #define bfd_mach_mcf_isa_a_mac 12
 | 
						|
     #define bfd_mach_mcf_isa_a_emac 13
 | 
						|
     #define bfd_mach_mcf_isa_aplus 14
 | 
						|
     #define bfd_mach_mcf_isa_aplus_mac 15
 | 
						|
     #define bfd_mach_mcf_isa_aplus_emac 16
 | 
						|
     #define bfd_mach_mcf_isa_b_nousp 17
 | 
						|
     #define bfd_mach_mcf_isa_b_nousp_mac 18
 | 
						|
     #define bfd_mach_mcf_isa_b_nousp_emac 19
 | 
						|
     #define bfd_mach_mcf_isa_b 20
 | 
						|
     #define bfd_mach_mcf_isa_b_mac 21
 | 
						|
     #define bfd_mach_mcf_isa_b_emac 22
 | 
						|
     #define bfd_mach_mcf_isa_b_float 23
 | 
						|
     #define bfd_mach_mcf_isa_b_float_mac 24
 | 
						|
     #define bfd_mach_mcf_isa_b_float_emac 25
 | 
						|
     #define bfd_mach_mcf_isa_c 26
 | 
						|
     #define bfd_mach_mcf_isa_c_mac 27
 | 
						|
     #define bfd_mach_mcf_isa_c_emac 28
 | 
						|
     #define bfd_mach_mcf_isa_c_nodiv 29
 | 
						|
     #define bfd_mach_mcf_isa_c_nodiv_mac 30
 | 
						|
     #define bfd_mach_mcf_isa_c_nodiv_emac 31
 | 
						|
       bfd_arch_vax,       /* DEC Vax */
 | 
						|
       bfd_arch_i960,      /* Intel 960 */
 | 
						|
         /* The order of the following is important.
 | 
						|
            lower number indicates a machine type that
 | 
						|
            only accepts a subset of the instructions
 | 
						|
            available to machines with higher numbers.
 | 
						|
            The exception is the "ca", which is
 | 
						|
            incompatible with all other machines except
 | 
						|
            "core".  */
 | 
						|
     
 | 
						|
     #define bfd_mach_i960_core      1
 | 
						|
     #define bfd_mach_i960_ka_sa     2
 | 
						|
     #define bfd_mach_i960_kb_sb     3
 | 
						|
     #define bfd_mach_i960_mc        4
 | 
						|
     #define bfd_mach_i960_xa        5
 | 
						|
     #define bfd_mach_i960_ca        6
 | 
						|
     #define bfd_mach_i960_jx        7
 | 
						|
     #define bfd_mach_i960_hx        8
 | 
						|
     
 | 
						|
       bfd_arch_or32,      /* OpenRISC 32 */
 | 
						|
     
 | 
						|
       bfd_arch_sparc,     /* SPARC */
 | 
						|
     #define bfd_mach_sparc                 1
 | 
						|
     /* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
 | 
						|
     #define bfd_mach_sparc_sparclet        2
 | 
						|
     #define bfd_mach_sparc_sparclite       3
 | 
						|
     #define bfd_mach_sparc_v8plus          4
 | 
						|
     #define bfd_mach_sparc_v8plusa         5 /* with ultrasparc add'ns.  */
 | 
						|
     #define bfd_mach_sparc_sparclite_le    6
 | 
						|
     #define bfd_mach_sparc_v9              7
 | 
						|
     #define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
 | 
						|
     #define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
 | 
						|
     #define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
 | 
						|
     /* Nonzero if MACH has the v9 instruction set.  */
 | 
						|
     #define bfd_mach_sparc_v9_p(mach) \
 | 
						|
       ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
 | 
						|
        && (mach) != bfd_mach_sparc_sparclite_le)
 | 
						|
     /* Nonzero if MACH is a 64 bit sparc architecture.  */
 | 
						|
     #define bfd_mach_sparc_64bit_p(mach) \
 | 
						|
       ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
 | 
						|
       bfd_arch_spu,       /* PowerPC SPU */
 | 
						|
     #define bfd_mach_spu           256
 | 
						|
       bfd_arch_mips,      /* MIPS Rxxxx */
 | 
						|
     #define bfd_mach_mips3000              3000
 | 
						|
     #define bfd_mach_mips3900              3900
 | 
						|
     #define bfd_mach_mips4000              4000
 | 
						|
     #define bfd_mach_mips4010              4010
 | 
						|
     #define bfd_mach_mips4100              4100
 | 
						|
     #define bfd_mach_mips4111              4111
 | 
						|
     #define bfd_mach_mips4120              4120
 | 
						|
     #define bfd_mach_mips4300              4300
 | 
						|
     #define bfd_mach_mips4400              4400
 | 
						|
     #define bfd_mach_mips4600              4600
 | 
						|
     #define bfd_mach_mips4650              4650
 | 
						|
     #define bfd_mach_mips5000              5000
 | 
						|
     #define bfd_mach_mips5400              5400
 | 
						|
     #define bfd_mach_mips5500              5500
 | 
						|
     #define bfd_mach_mips6000              6000
 | 
						|
     #define bfd_mach_mips7000              7000
 | 
						|
     #define bfd_mach_mips8000              8000
 | 
						|
     #define bfd_mach_mips9000              9000
 | 
						|
     #define bfd_mach_mips10000             10000
 | 
						|
     #define bfd_mach_mips12000             12000
 | 
						|
     #define bfd_mach_mips16                16
 | 
						|
     #define bfd_mach_mips5                 5
 | 
						|
     #define bfd_mach_mips_loongson_2e      3001
 | 
						|
     #define bfd_mach_mips_loongson_2f      3002
 | 
						|
     #define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
 | 
						|
     #define bfd_mach_mips_octeon           6501
 | 
						|
     #define bfd_mach_mipsisa32             32
 | 
						|
     #define bfd_mach_mipsisa32r2           33
 | 
						|
     #define bfd_mach_mipsisa64             64
 | 
						|
     #define bfd_mach_mipsisa64r2           65
 | 
						|
       bfd_arch_i386,      /* Intel 386 */
 | 
						|
     #define bfd_mach_i386_i386 1
 | 
						|
     #define bfd_mach_i386_i8086 2
 | 
						|
     #define bfd_mach_i386_i386_intel_syntax 3
 | 
						|
     #define bfd_mach_x86_64 64
 | 
						|
     #define bfd_mach_x86_64_intel_syntax 65
 | 
						|
       bfd_arch_we32k,     /* AT&T WE32xxx */
 | 
						|
       bfd_arch_tahoe,     /* CCI/Harris Tahoe */
 | 
						|
       bfd_arch_i860,      /* Intel 860 */
 | 
						|
       bfd_arch_i370,      /* IBM 360/370 Mainframes */
 | 
						|
       bfd_arch_romp,      /* IBM ROMP PC/RT */
 | 
						|
       bfd_arch_convex,    /* Convex */
 | 
						|
       bfd_arch_m88k,      /* Motorola 88xxx */
 | 
						|
       bfd_arch_m98k,      /* Motorola 98xxx */
 | 
						|
       bfd_arch_pyramid,   /* Pyramid Technology */
 | 
						|
       bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300) */
 | 
						|
     #define bfd_mach_h8300    1
 | 
						|
     #define bfd_mach_h8300h   2
 | 
						|
     #define bfd_mach_h8300s   3
 | 
						|
     #define bfd_mach_h8300hn  4
 | 
						|
     #define bfd_mach_h8300sn  5
 | 
						|
     #define bfd_mach_h8300sx  6
 | 
						|
     #define bfd_mach_h8300sxn 7
 | 
						|
       bfd_arch_pdp11,     /* DEC PDP-11 */
 | 
						|
       bfd_arch_powerpc,   /* PowerPC */
 | 
						|
     #define bfd_mach_ppc           32
 | 
						|
     #define bfd_mach_ppc64         64
 | 
						|
     #define bfd_mach_ppc_403       403
 | 
						|
     #define bfd_mach_ppc_403gc     4030
 | 
						|
     #define bfd_mach_ppc_505       505
 | 
						|
     #define bfd_mach_ppc_601       601
 | 
						|
     #define bfd_mach_ppc_602       602
 | 
						|
     #define bfd_mach_ppc_603       603
 | 
						|
     #define bfd_mach_ppc_ec603e    6031
 | 
						|
     #define bfd_mach_ppc_604       604
 | 
						|
     #define bfd_mach_ppc_620       620
 | 
						|
     #define bfd_mach_ppc_630       630
 | 
						|
     #define bfd_mach_ppc_750       750
 | 
						|
     #define bfd_mach_ppc_860       860
 | 
						|
     #define bfd_mach_ppc_a35       35
 | 
						|
     #define bfd_mach_ppc_rs64ii    642
 | 
						|
     #define bfd_mach_ppc_rs64iii   643
 | 
						|
     #define bfd_mach_ppc_7400      7400
 | 
						|
     #define bfd_mach_ppc_e500      500
 | 
						|
     #define bfd_mach_ppc_e500mc    5001
 | 
						|
       bfd_arch_rs6000,    /* IBM RS/6000 */
 | 
						|
     #define bfd_mach_rs6k          6000
 | 
						|
     #define bfd_mach_rs6k_rs1      6001
 | 
						|
     #define bfd_mach_rs6k_rsc      6003
 | 
						|
     #define bfd_mach_rs6k_rs2      6002
 | 
						|
       bfd_arch_hppa,      /* HP PA RISC */
 | 
						|
     #define bfd_mach_hppa10        10
 | 
						|
     #define bfd_mach_hppa11        11
 | 
						|
     #define bfd_mach_hppa20        20
 | 
						|
     #define bfd_mach_hppa20w       25
 | 
						|
       bfd_arch_d10v,      /* Mitsubishi D10V */
 | 
						|
     #define bfd_mach_d10v          1
 | 
						|
     #define bfd_mach_d10v_ts2      2
 | 
						|
     #define bfd_mach_d10v_ts3      3
 | 
						|
       bfd_arch_d30v,      /* Mitsubishi D30V */
 | 
						|
       bfd_arch_dlx,       /* DLX */
 | 
						|
       bfd_arch_m68hc11,   /* Motorola 68HC11 */
 | 
						|
       bfd_arch_m68hc12,   /* Motorola 68HC12 */
 | 
						|
     #define bfd_mach_m6812_default 0
 | 
						|
     #define bfd_mach_m6812         1
 | 
						|
     #define bfd_mach_m6812s        2
 | 
						|
       bfd_arch_z8k,       /* Zilog Z8000 */
 | 
						|
     #define bfd_mach_z8001         1
 | 
						|
     #define bfd_mach_z8002         2
 | 
						|
       bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500) */
 | 
						|
       bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH) */
 | 
						|
     #define bfd_mach_sh            1
 | 
						|
     #define bfd_mach_sh2        0x20
 | 
						|
     #define bfd_mach_sh_dsp     0x2d
 | 
						|
     #define bfd_mach_sh2a       0x2a
 | 
						|
     #define bfd_mach_sh2a_nofpu 0x2b
 | 
						|
     #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
 | 
						|
     #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
 | 
						|
     #define bfd_mach_sh2a_or_sh4  0x2a3
 | 
						|
     #define bfd_mach_sh2a_or_sh3e 0x2a4
 | 
						|
     #define bfd_mach_sh2e       0x2e
 | 
						|
     #define bfd_mach_sh3        0x30
 | 
						|
     #define bfd_mach_sh3_nommu  0x31
 | 
						|
     #define bfd_mach_sh3_dsp    0x3d
 | 
						|
     #define bfd_mach_sh3e       0x3e
 | 
						|
     #define bfd_mach_sh4        0x40
 | 
						|
     #define bfd_mach_sh4_nofpu  0x41
 | 
						|
     #define bfd_mach_sh4_nommu_nofpu  0x42
 | 
						|
     #define bfd_mach_sh4a       0x4a
 | 
						|
     #define bfd_mach_sh4a_nofpu 0x4b
 | 
						|
     #define bfd_mach_sh4al_dsp  0x4d
 | 
						|
     #define bfd_mach_sh5        0x50
 | 
						|
       bfd_arch_alpha,     /* Dec Alpha */
 | 
						|
     #define bfd_mach_alpha_ev4  0x10
 | 
						|
     #define bfd_mach_alpha_ev5  0x20
 | 
						|
     #define bfd_mach_alpha_ev6  0x30
 | 
						|
       bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
 | 
						|
     #define bfd_mach_arm_unknown   0
 | 
						|
     #define bfd_mach_arm_2         1
 | 
						|
     #define bfd_mach_arm_2a        2
 | 
						|
     #define bfd_mach_arm_3         3
 | 
						|
     #define bfd_mach_arm_3M        4
 | 
						|
     #define bfd_mach_arm_4         5
 | 
						|
     #define bfd_mach_arm_4T        6
 | 
						|
     #define bfd_mach_arm_5         7
 | 
						|
     #define bfd_mach_arm_5T        8
 | 
						|
     #define bfd_mach_arm_5TE       9
 | 
						|
     #define bfd_mach_arm_XScale    10
 | 
						|
     #define bfd_mach_arm_ep9312    11
 | 
						|
     #define bfd_mach_arm_iWMMXt    12
 | 
						|
     #define bfd_mach_arm_iWMMXt2   13
 | 
						|
       bfd_arch_ns32k,     /* National Semiconductors ns32000 */
 | 
						|
       bfd_arch_w65,       /* WDC 65816 */
 | 
						|
       bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
 | 
						|
       bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
 | 
						|
     #define bfd_mach_tic3x         30
 | 
						|
     #define bfd_mach_tic4x         40
 | 
						|
       bfd_arch_tic54x,    /* Texas Instruments TMS320C54X */
 | 
						|
       bfd_arch_tic80,     /* TI TMS320c80 (MVP) */
 | 
						|
       bfd_arch_v850,      /* NEC V850 */
 | 
						|
     #define bfd_mach_v850          1
 | 
						|
     #define bfd_mach_v850e         'E'
 | 
						|
     #define bfd_mach_v850e1        '1'
 | 
						|
       bfd_arch_arc,       /* ARC Cores */
 | 
						|
     #define bfd_mach_arc_5         5
 | 
						|
     #define bfd_mach_arc_6         6
 | 
						|
     #define bfd_mach_arc_7         7
 | 
						|
     #define bfd_mach_arc_8         8
 | 
						|
      bfd_arch_m32c,     /* Renesas M16C/M32C.  */
 | 
						|
     #define bfd_mach_m16c        0x75
 | 
						|
     #define bfd_mach_m32c        0x78
 | 
						|
       bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
 | 
						|
     #define bfd_mach_m32r          1 /* For backwards compatibility.  */
 | 
						|
     #define bfd_mach_m32rx         'x'
 | 
						|
     #define bfd_mach_m32r2         '2'
 | 
						|
       bfd_arch_mn10200,   /* Matsushita MN10200 */
 | 
						|
       bfd_arch_mn10300,   /* Matsushita MN10300 */
 | 
						|
     #define bfd_mach_mn10300               300
 | 
						|
     #define bfd_mach_am33          330
 | 
						|
     #define bfd_mach_am33_2        332
 | 
						|
       bfd_arch_fr30,
 | 
						|
     #define bfd_mach_fr30          0x46523330
 | 
						|
       bfd_arch_frv,
 | 
						|
     #define bfd_mach_frv           1
 | 
						|
     #define bfd_mach_frvsimple     2
 | 
						|
     #define bfd_mach_fr300         300
 | 
						|
     #define bfd_mach_fr400         400
 | 
						|
     #define bfd_mach_fr450         450
 | 
						|
     #define bfd_mach_frvtomcat     499     /* fr500 prototype */
 | 
						|
     #define bfd_mach_fr500         500
 | 
						|
     #define bfd_mach_fr550         550
 | 
						|
       bfd_arch_mcore,
 | 
						|
       bfd_arch_mep,
 | 
						|
     #define bfd_mach_mep           1
 | 
						|
     #define bfd_mach_mep_h1        0x6831
 | 
						|
       bfd_arch_ia64,      /* HP/Intel ia64 */
 | 
						|
     #define bfd_mach_ia64_elf64    64
 | 
						|
     #define bfd_mach_ia64_elf32    32
 | 
						|
       bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
 | 
						|
     #define bfd_mach_ip2022        1
 | 
						|
     #define bfd_mach_ip2022ext     2
 | 
						|
      bfd_arch_iq2000,     /* Vitesse IQ2000.  */
 | 
						|
     #define bfd_mach_iq2000        1
 | 
						|
     #define bfd_mach_iq10          2
 | 
						|
       bfd_arch_mt,
 | 
						|
     #define bfd_mach_ms1           1
 | 
						|
     #define bfd_mach_mrisc2        2
 | 
						|
     #define bfd_mach_ms2           3
 | 
						|
       bfd_arch_pj,
 | 
						|
       bfd_arch_avr,       /* Atmel AVR microcontrollers.  */
 | 
						|
     #define bfd_mach_avr1          1
 | 
						|
     #define bfd_mach_avr2          2
 | 
						|
     #define bfd_mach_avr25         25
 | 
						|
     #define bfd_mach_avr3          3
 | 
						|
     #define bfd_mach_avr31         31
 | 
						|
     #define bfd_mach_avr35         35
 | 
						|
     #define bfd_mach_avr4          4
 | 
						|
     #define bfd_mach_avr5          5
 | 
						|
     #define bfd_mach_avr51         51
 | 
						|
     #define bfd_mach_avr6          6
 | 
						|
       bfd_arch_bfin,        /* ADI Blackfin */
 | 
						|
     #define bfd_mach_bfin          1
 | 
						|
       bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
 | 
						|
     #define bfd_mach_cr16          1
 | 
						|
       bfd_arch_cr16c,       /* National Semiconductor CompactRISC. */
 | 
						|
     #define bfd_mach_cr16c         1
 | 
						|
       bfd_arch_crx,       /*  National Semiconductor CRX.  */
 | 
						|
     #define bfd_mach_crx           1
 | 
						|
       bfd_arch_cris,      /* Axis CRIS */
 | 
						|
     #define bfd_mach_cris_v0_v10   255
 | 
						|
     #define bfd_mach_cris_v32      32
 | 
						|
     #define bfd_mach_cris_v10_v32  1032
 | 
						|
       bfd_arch_s390,      /* IBM s390 */
 | 
						|
     #define bfd_mach_s390_31       31
 | 
						|
     #define bfd_mach_s390_64       64
 | 
						|
       bfd_arch_score,     /* Sunplus score */
 | 
						|
       bfd_arch_openrisc,  /* OpenRISC */
 | 
						|
       bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
 | 
						|
       bfd_arch_xstormy16,
 | 
						|
     #define bfd_mach_xstormy16     1
 | 
						|
       bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
 | 
						|
     #define bfd_mach_msp11          11
 | 
						|
     #define bfd_mach_msp110         110
 | 
						|
     #define bfd_mach_msp12          12
 | 
						|
     #define bfd_mach_msp13          13
 | 
						|
     #define bfd_mach_msp14          14
 | 
						|
     #define bfd_mach_msp15          15
 | 
						|
     #define bfd_mach_msp16          16
 | 
						|
     #define bfd_mach_msp21          21
 | 
						|
     #define bfd_mach_msp31          31
 | 
						|
     #define bfd_mach_msp32          32
 | 
						|
     #define bfd_mach_msp33          33
 | 
						|
     #define bfd_mach_msp41          41
 | 
						|
     #define bfd_mach_msp42          42
 | 
						|
     #define bfd_mach_msp43          43
 | 
						|
     #define bfd_mach_msp44          44
 | 
						|
       bfd_arch_xc16x,     /* Infineon's XC16X Series.               */
 | 
						|
     #define bfd_mach_xc16x         1
 | 
						|
     #define bfd_mach_xc16xl        2
 | 
						|
     #define bfd_mach_xc16xs         3
 | 
						|
       bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
 | 
						|
     #define bfd_mach_xtensa        1
 | 
						|
        bfd_arch_maxq,     /* Dallas MAXQ 10/20 */
 | 
						|
     #define bfd_mach_maxq10    10
 | 
						|
     #define bfd_mach_maxq20    20
 | 
						|
       bfd_arch_z80,
 | 
						|
     #define bfd_mach_z80strict      1 /* No undocumented opcodes.  */
 | 
						|
     #define bfd_mach_z80            3 /* With ixl, ixh, iyl, and iyh.  */
 | 
						|
     #define bfd_mach_z80full        7 /* All undocumented instructions.  */
 | 
						|
     #define bfd_mach_r800           11 /* R800: successor with multiplication.  */
 | 
						|
       bfd_arch_last
 | 
						|
       };
 | 
						|
</pre>
 | 
						|
   <h4 class="subsection">2.13.2 bfd_arch_info</h4>
 | 
						|
 | 
						|
<p><strong>Description</strong><br>
 | 
						|
This structure contains information on architectures for use
 | 
						|
within BFD.
 | 
						|
<pre class="example">     
 | 
						|
     typedef struct bfd_arch_info
 | 
						|
     {
 | 
						|
       int bits_per_word;
 | 
						|
       int bits_per_address;
 | 
						|
       int bits_per_byte;
 | 
						|
       enum bfd_architecture arch;
 | 
						|
       unsigned long mach;
 | 
						|
       const char *arch_name;
 | 
						|
       const char *printable_name;
 | 
						|
       unsigned int section_align_power;
 | 
						|
       /* TRUE if this is the default machine for the architecture.
 | 
						|
          The default arch should be the first entry for an arch so that
 | 
						|
          all the entries for that arch can be accessed via <code>next</code>.  */
 | 
						|
       bfd_boolean the_default;
 | 
						|
       const struct bfd_arch_info * (*compatible)
 | 
						|
         (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
 | 
						|
     
 | 
						|
       bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
 | 
						|
     
 | 
						|
       const struct bfd_arch_info *next;
 | 
						|
     }
 | 
						|
     bfd_arch_info_type;
 | 
						|
     
 | 
						|
</pre>
 | 
						|
   <p><a name="index-bfd_005fprintable_005fname-1319"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.1 <code>bfd_printable_name</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     const char *bfd_printable_name (bfd *abfd);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Return a printable string representing the architecture and machine
 | 
						|
from the pointer to the architecture info structure.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005fscan_005farch-1320"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.2 <code>bfd_scan_arch</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     const bfd_arch_info_type *bfd_scan_arch (const char *string);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Figure out if BFD supports any cpu which could be described with
 | 
						|
the name <var>string</var>.  Return a pointer to an <code>arch_info</code>
 | 
						|
structure if a machine is found, otherwise NULL.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005farch_005flist-1321"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.3 <code>bfd_arch_list</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     const char **bfd_arch_list (void);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Return a freshly malloced NULL-terminated vector of the names
 | 
						|
of all the valid BFD architectures.  Do not modify the names.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005farch_005fget_005fcompatible-1322"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.4 <code>bfd_arch_get_compatible</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     const bfd_arch_info_type *bfd_arch_get_compatible
 | 
						|
        (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Determine whether two BFDs' architectures and machine types
 | 
						|
are compatible.  Calculates the lowest common denominator
 | 
						|
between the two architectures and machine types implied by
 | 
						|
the BFDs and returns a pointer to an <code>arch_info</code> structure
 | 
						|
describing the compatible machine.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005fdefault_005farch_005fstruct-1323"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.5 <code>bfd_default_arch_struct</code></h5>
 | 
						|
 | 
						|
<p><strong>Description</strong><br>
 | 
						|
The <code>bfd_default_arch_struct</code> is an item of
 | 
						|
<code>bfd_arch_info_type</code> which has been initialized to a fairly
 | 
						|
generic state.  A BFD starts life by pointing to this
 | 
						|
structure, until the correct back end has determined the real
 | 
						|
architecture of the file.
 | 
						|
<pre class="example">     extern const bfd_arch_info_type bfd_default_arch_struct;
 | 
						|
</pre>
 | 
						|
   <p><a name="index-bfd_005fset_005farch_005finfo-1324"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.6 <code>bfd_set_arch_info</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Set the architecture info of <var>abfd</var> to <var>arg</var>.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005fdefault_005fset_005farch_005fmach-1325"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.7 <code>bfd_default_set_arch_mach</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     bfd_boolean bfd_default_set_arch_mach
 | 
						|
        (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Set the architecture and machine type in BFD <var>abfd</var>
 | 
						|
to <var>arch</var> and <var>mach</var>.  Find the correct
 | 
						|
pointer to a structure and insert it into the <code>arch_info</code>
 | 
						|
pointer.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005fget_005farch-1326"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.8 <code>bfd_get_arch</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     enum bfd_architecture bfd_get_arch (bfd *abfd);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Return the enumerated type which describes the BFD <var>abfd</var>'s
 | 
						|
architecture.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005fget_005fmach-1327"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.9 <code>bfd_get_mach</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     unsigned long bfd_get_mach (bfd *abfd);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Return the long type which describes the BFD <var>abfd</var>'s
 | 
						|
machine.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005farch_005fbits_005fper_005fbyte-1328"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.10 <code>bfd_arch_bits_per_byte</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     unsigned int bfd_arch_bits_per_byte (bfd *abfd);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Return the number of bits in one of the BFD <var>abfd</var>'s
 | 
						|
architecture's bytes.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005farch_005fbits_005fper_005faddress-1329"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.11 <code>bfd_arch_bits_per_address</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     unsigned int bfd_arch_bits_per_address (bfd *abfd);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Return the number of bits in one of the BFD <var>abfd</var>'s
 | 
						|
architecture's addresses.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005fdefault_005fcompatible-1330"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.12 <code>bfd_default_compatible</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     const bfd_arch_info_type *bfd_default_compatible
 | 
						|
        (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
The default function for testing for compatibility.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005fdefault_005fscan-1331"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.13 <code>bfd_default_scan</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     bfd_boolean bfd_default_scan
 | 
						|
        (const struct bfd_arch_info *info, const char *string);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
The default function for working out whether this is an
 | 
						|
architecture hit and a machine hit.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005fget_005farch_005finfo-1332"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.14 <code>bfd_get_arch_info</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Return the architecture info struct in <var>abfd</var>.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005flookup_005farch-1333"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.15 <code>bfd_lookup_arch</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     const bfd_arch_info_type *bfd_lookup_arch
 | 
						|
        (enum bfd_architecture arch, unsigned long machine);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Look for the architecture info structure which matches the
 | 
						|
arguments <var>arch</var> and <var>machine</var>. A machine of 0 matches the
 | 
						|
machine/architecture structure which marks itself as the
 | 
						|
default.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005fprintable_005farch_005fmach-1334"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.16 <code>bfd_printable_arch_mach</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     const char *bfd_printable_arch_mach
 | 
						|
        (enum bfd_architecture arch, unsigned long machine);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Return a printable string representing the architecture and
 | 
						|
machine type.
 | 
						|
 | 
						|
   <p>This routine is depreciated.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005foctets_005fper_005fbyte-1335"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.17 <code>bfd_octets_per_byte</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     unsigned int bfd_octets_per_byte (bfd *abfd);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
Return the number of octets (8-bit quantities) per target byte
 | 
						|
(minimum addressable unit).  In most cases, this will be one, but some
 | 
						|
DSP targets have 16, 32, or even 48 bits per byte.
 | 
						|
 | 
						|
   <p><a name="index-bfd_005farch_005fmach_005foctets_005fper_005fbyte-1336"></a>
 | 
						|
 | 
						|
<h5 class="subsubsection">2.13.2.18 <code>bfd_arch_mach_octets_per_byte</code></h5>
 | 
						|
 | 
						|
<p><strong>Synopsis</strong>
 | 
						|
<pre class="example">     unsigned int bfd_arch_mach_octets_per_byte
 | 
						|
        (enum bfd_architecture arch, unsigned long machine);
 | 
						|
</pre>
 | 
						|
   <p><strong>Description</strong><br>
 | 
						|
See bfd_octets_per_byte.
 | 
						|
 | 
						|
   <p>This routine is provided for those cases where a bfd * is not
 | 
						|
available
 | 
						|
 | 
						|
   </body></html>
 | 
						|
 |