⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bfd-in2.h

📁 基于4个mips核的noc设计
💻 H
📖 第 1 页 / 共 5 页
字号:
#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  bfd_arch_rs6000,    /* IBM RS/6000 */#define bfd_mach_rs6k          0#define bfd_mach_rs6k_rs1      6001#define bfd_mach_rs6k_rsc      6003#define bfd_mach_rs6k_rs2      6002  bfd_arch_hppa,      /* HP PA RISC */  bfd_arch_d10v,      /* Mitsubishi D10V */#define bfd_mach_d10v          0#define bfd_mach_d10v_ts2      2#define bfd_mach_d10v_ts3      3  bfd_arch_d30v,      /* Mitsubishi D30V */  bfd_arch_m68hc11,   /* Motorola 68HC11 */  bfd_arch_m68hc12,   /* Motorola 68HC12 */  bfd_arch_z8k,       /* Zilog Z8000 */#define bfd_mach_z8001         1#define bfd_mach_z8002         2  bfd_arch_h8500,     /* Hitachi H8/500 */  bfd_arch_sh,        /* Hitachi SH */#define bfd_mach_sh            0#define bfd_mach_sh2        0x20#define bfd_mach_sh_dsp     0x2d#define bfd_mach_sh3        0x30#define bfd_mach_sh3_dsp    0x3d#define bfd_mach_sh3e       0x3e#define bfd_mach_sh4        0x40  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_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  bfd_arch_ns32k,     /* National Semiconductors ns32000 */  bfd_arch_w65,       /* WDC 65816 */  bfd_arch_tic30,     /* Texas Instruments TMS320C30 */  bfd_arch_tic54x,    /* Texas Instruments TMS320C54X */  bfd_arch_tic80,     /* TI TMS320c80 (MVP) */  bfd_arch_v850,      /* NEC V850 */#define bfd_mach_v850          0#define bfd_mach_v850e         'E'#define bfd_mach_v850ea        'A'  bfd_arch_arc,       /* ARC Cores */#define bfd_mach_arc_5         0#define bfd_mach_arc_6         1#define bfd_mach_arc_7         2#define bfd_mach_arc_8         3  bfd_arch_m32r,      /* Mitsubishi M32R/D */#define bfd_mach_m32r          0 /* backwards compatibility */#define bfd_mach_m32rx         'x'  bfd_arch_mn10200,   /* Matsushita MN10200 */  bfd_arch_mn10300,   /* Matsushita MN10300 */#define bfd_mach_mn10300               300#define bfd_mach_am33          330  bfd_arch_fr30,#define bfd_mach_fr30          0x46523330  bfd_arch_mcore,  bfd_arch_ia64,      /* HP/Intel ia64 */#define bfd_mach_ia64_elf64    0#define bfd_mach_ia64_elf32    1  bfd_arch_pj,  bfd_arch_avr,       /* Atmel AVR microcontrollers */#define bfd_mach_avr1          1#define bfd_mach_avr2          2#define bfd_mach_avr3          3#define bfd_mach_avr4          4#define bfd_mach_avr5          5  bfd_arch_cris,      /* Axis CRIS */  bfd_arch_last  };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.  */  boolean the_default;  const struct bfd_arch_info * (*compatible)       PARAMS ((const struct bfd_arch_info *a,                const struct bfd_arch_info *b));  boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));  const struct bfd_arch_info *next;} bfd_arch_info_type;const char *bfd_printable_name PARAMS ((bfd *abfd));const bfd_arch_info_type *bfd_scan_arch PARAMS ((const char *string));const char **bfd_arch_list PARAMS ((void));const bfd_arch_info_type *bfd_arch_get_compatible PARAMS ((    const bfd *abfd,    const bfd *bbfd));voidbfd_set_arch_info PARAMS ((bfd *abfd, const bfd_arch_info_type *arg));enum bfd_architecturebfd_get_arch PARAMS ((bfd *abfd));unsigned longbfd_get_mach PARAMS ((bfd *abfd));unsigned intbfd_arch_bits_per_byte PARAMS ((bfd *abfd));unsigned intbfd_arch_bits_per_address PARAMS ((bfd *abfd));const bfd_arch_info_type *bfd_get_arch_info PARAMS ((bfd *abfd));const bfd_arch_info_type *bfd_lookup_arch PARAMS ((enum bfd_architecture    arch,    unsigned long machine));const char *bfd_printable_arch_mach PARAMS ((enum bfd_architecture arch, unsigned long machine));unsigned intbfd_octets_per_byte PARAMS ((bfd *abfd));unsigned intbfd_arch_mach_octets_per_byte PARAMS ((enum bfd_architecture arch,    unsigned long machine));typedef enum bfd_reloc_status{       /* No errors detected */  bfd_reloc_ok,       /* The relocation was performed, but there was an overflow. */  bfd_reloc_overflow,       /* The address to relocate was not within the section supplied. */  bfd_reloc_outofrange,       /* Used by special functions */  bfd_reloc_continue,       /* Unsupported relocation size requested. */  bfd_reloc_notsupported,       /* Unused */  bfd_reloc_other,       /* The symbol to relocate against was undefined. */  bfd_reloc_undefined,       /* The relocation was performed, but may not be ok - presently          generated only when linking i960 coff files with i960 b.out          symbols.  If this type is returned, the error_message argument          to bfd_perform_relocation will be set.  */  bfd_reloc_dangerous } bfd_reloc_status_type;typedef struct reloc_cache_entry{       /* A pointer into the canonical table of pointers  */  struct symbol_cache_entry **sym_ptr_ptr;       /* offset in section */  bfd_size_type address;       /* addend for relocation value */  bfd_vma addend;       /* Pointer to how to perform the required relocation */  reloc_howto_type *howto;} arelent;enum complain_overflow{       /* Do not complain on overflow. */  complain_overflow_dont,       /* Complain if the bitfield overflows, whether it is considered          as signed or unsigned. */  complain_overflow_bitfield,       /* Complain if the value overflows when considered as signed          number. */  complain_overflow_signed,       /* Complain if the value overflows when considered as an          unsigned number. */  complain_overflow_unsigned};struct reloc_howto_struct{       /*  The type field has mainly a documentary use - the back end can           do what it wants with it, though normally the back end's           external idea of what a reloc number is stored           in this field. For example, a PC relative word relocation           in a coff environment has the type 023 - because that's           what the outside world calls a R_PCRWORD reloc. */  unsigned int type;       /*  The value the final relocation is shifted right by. This drops           unwanted data from the relocation.  */  unsigned int rightshift;       /*  The size of the item to be relocated.  This is *not* a           power-of-two measure.  To get the number of bytes operated           on by a type of relocation, use bfd_get_reloc_size.  */  int size;       /*  The number of bits in the item to be relocated.  This is used           when doing overflow checking.  */  unsigned int bitsize;       /*  Notes that the relocation is relative to the location in the           data section of the addend. The relocation function will           subtract from the relocation value the address of the location           being relocated. */  boolean pc_relative;       /*  The bit position of the reloc value in the destination.           The relocated value is left shifted by this amount. */  unsigned int bitpos;       /* What type of overflow error should be checked for when          relocating. */  enum complain_overflow complain_on_overflow;       /* If this field is non null, then the supplied function is          called rather than the normal function. This allows really          strange relocation methods to be accomodated (e.g., i960 callj          instructions). */  bfd_reloc_status_type (*special_function)                                   PARAMS ((bfd *abfd,                                            arelent *reloc_entry,                                            struct symbol_cache_entry *symbol,                                            PTR data,                                            asection *input_section,                                            bfd *output_bfd,                                            char **error_message));       /* The textual name of the relocation type. */  char *name;       /* Some formats record a relocation addend in the section contents          rather than with the relocation.  For ELF formats this is the          distinction between USE_REL and USE_RELA (though the code checks          for USE_REL == 1/0).  The value of this field is TRUE if the          addend is recorded with the section contents; when performing a          partial link (ld -r) the section contents (the data) will be          modified.  The value of this field is FALSE if addends are          recorded with the relocation (in arelent.addend); when performing          a partial link the relocation will be modified.          All relocations for all ELF USE_RELA targets should set this field          to FALSE (values of TRUE should be looked on with suspicion).          However, the converse is not true: not all relocations of all ELF          USE_REL targets set this field to TRUE.  Why this is so is peculiar          to each particular target.  For relocs that aren't used in partial          links (e.g. GOT stuff) it doesn't matter what this is set to.  */  boolean partial_inplace;       /* The src_mask selects which parts of the read in data          are to be used in the relocation sum.  E.g., if this was an 8 bit          byte of data which we read and relocated, this would be          0x000000ff. When we have relocs which have an addend, such as          sun4 extended relocs, the value in the offset part of a          relocating field is garbage so we never use it. In this case          the mask would be 0x00000000. */  bfd_vma src_mask;       /* The dst_mask selects which parts of the instruction are replaced          into the instruction. In most cases src_mask == dst_mask,          except in the above special case, where dst_mask would be          0x000000ff, and src_mask would be 0x00000000.   */  bfd_vma dst_mask;       /* When some formats create PC relative instructions, they leave          the value of the pc of the place being relocated in the offset          slot of the instruction, so that a PC relative relocation can          be made just by adding in an ordinary offset (e.g., sun3 a.out).          Some formats leave the displacement part of an instruction          empty (e.g., m88k bcs); this flag signals the fact.*/  boolean pcrel_offset;};#define HOWTO(C, R,S,B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \  {(unsigned)C,R,S,B, P, BI, O,SF,NAME,INPLACE,MASKSRC,MASKDST,PC}#define NEWHOWTO( FUNCTION, NAME,SIZE,REL,IN) HOWTO(0,0,SIZE,0,REL,0,complain_overflow_dont,FUNCTION, NAME,false,0,0,IN)#define EMPTY_HOWTO(C) \  HOWTO((C),0,0,0,false,0,complain_overflow_dont,NULL,NULL,false,0,0,false)#define HOWTO_PREPARE(relocation, symbol)      \  {                                            \  if (symbol != (asymbol *)NULL) {             \    if (bfd_is_com_section (symbol->section)) { \      relocation = 0;                          \    }                                          \    else {                                     \      relocation = symbol->value;              \    }                                          \  }                                            \}unsigned intbfd_get_reloc_size PARAMS ((reloc_howto_type *));typedef struct relent_chain {  arelent relent;  struct   relent_chain *next;} arelent_chain;bfd_reloc_status_typebfd_check_overflow PARAMS ((enum complain_overflow how,    unsigned int bitsize,    unsigned int rightshift,    unsigned int addrsize,    bfd_vma relocation));bfd_reloc_status_typebfd_perform_relocation PARAMS ((bfd *abfd,    arelent *reloc_entry,    PTR data,    asection *input_section,    bfd *output_bfd,    char **error_message));bfd_reloc_status_typebf

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -