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

📄 bfd-in2.h

📁 基于4个mips核的noc设计
💻 H
📖 第 1 页 / 共 5 页
字号:
     else up the line will take care of it later.  */#define SEC_LINKER_CREATED 0x800000  /* This section should not be subject to garbage collection.  */#define SEC_KEEP 0x1000000  /* This section contains "short" data, and should be placed     "near" the GP.  */#define SEC_SMALL_DATA 0x2000000  /* This section contains data which may be shared with other     executables or shared objects.  */#define SEC_SHARED 0x4000000  /* When a section with this flag is being linked, then if the size of     the input section is less than a page, it should not cross a page     boundary.  If the size of the input section is one page or more, it     should be aligned on a page boundary.  */#define SEC_BLOCK 0x8000000  /* Conditionally link this section; do not link if there are no     references found to any symbol in the section.  */#define SEC_CLINK 0x10000000  /*  End of section flags.  */  /* Some internal packed boolean fields.  */  /* See the vma field.  */  unsigned int user_set_vma : 1;  /* Whether relocations have been processed.  */  unsigned int reloc_done : 1;  /* A mark flag used by some of the linker backends.  */  unsigned int linker_mark : 1;  /* Another mark flag used by some of the linker backends.  Set for     output sections that have a input section.  */  unsigned int linker_has_input : 1;  /* A mark flag used by some linker backends for garbage collection.  */  unsigned int gc_mark : 1;  /* Used by the ELF code to mark sections which have been allocated to segments.  */  unsigned int segment_mark : 1;  /* End of internal packed boolean fields.  */  /*  The virtual memory address of the section - where it will be      at run time.  The symbols are relocated against this.  The      user_set_vma flag is maintained by bfd; if it's not set, the      backend can assign addresses (for example, in <<a.out>>, where      the default address for <<.data>> is dependent on the specific      target and various flags).  */  bfd_vma vma;  /*  The load address of the section - where it would be in a      rom image; really only used for writing section header      information. */  bfd_vma lma;  /* The size of the section in octets, as it will be output.     Contains a value even if the section has no contents (e.g., the     size of <<.bss>>).  This will be filled in after relocation.  */  bfd_size_type _cooked_size;  /* The original size on disk of the section, in octets.  Normally this     value is the same as the size, but if some relaxing has     been done, then this value will be bigger.  */  bfd_size_type _raw_size;  /* If this section is going to be output, then this value is the     offset in *bytes* into the output section of the first byte in the     input section (byte ==> smallest addressable unit on the     target).  In most cases, if this was going to start at the     100th octet (8-bit quantity) in the output section, this value     would be 100.  However, if the target byte size is 16 bits     (bfd_octets_per_byte is "2"), this value would be 50.  */  bfd_vma output_offset;  /* The output section through which to map on output.  */  struct sec *output_section;  /* The alignment requirement of the section, as an exponent of 2 -     e.g., 3 aligns to 2^3 (or 8).  */  unsigned int alignment_power;  /* If an input section, a pointer to a vector of relocation     records for the data in this section.  */  struct reloc_cache_entry *relocation;  /* If an output section, a pointer to a vector of pointers to     relocation records for the data in this section.  */  struct reloc_cache_entry **orelocation;  /* The number of relocation records in one of the above  */  unsigned reloc_count;  /* Information below is back end specific - and not always used     or updated.  */  /* File position of section data.  */  file_ptr filepos;  /* File position of relocation info.  */  file_ptr rel_filepos;  /* File position of line data.  */  file_ptr line_filepos;  /* Pointer to data for applications.  */  PTR userdata;  /* If the SEC_IN_MEMORY flag is set, this points to the actual     contents.  */  unsigned char *contents;  /* Attached line number information.  */  alent *lineno;  /* Number of line number records.  */  unsigned int lineno_count;  /* Optional information about a COMDAT entry; NULL if not COMDAT.  */  struct bfd_comdat_info *comdat;  /* Points to the kept section if this section is a link-once section,     and is discarded.  */  struct sec *kept_section;  /* When a section is being output, this value changes as more     linenumbers are written out.  */  file_ptr moving_line_filepos;  /* What the section number is in the target world.  */  int target_index;  PTR used_by_bfd;  /* If this is a constructor section then here is a list of the     relocations created to relocate items within it.  */  struct relent_chain *constructor_chain;  /* The BFD which owns the section.  */  bfd *owner;  /* A symbol which points at this section only */  struct symbol_cache_entry *symbol;  struct symbol_cache_entry **symbol_ptr_ptr;  struct bfd_link_order *link_order_head;  struct bfd_link_order *link_order_tail;} asection ;/* These sections are global, and are managed by BFD.  The application   and target back end are not permitted to change the values in   these sections.  New code should use the section_ptr macros rather   than referring directly to the const sections.  The const sections   may eventually vanish.  */#define BFD_ABS_SECTION_NAME "*ABS*"#define BFD_UND_SECTION_NAME "*UND*"#define BFD_COM_SECTION_NAME "*COM*"#define BFD_IND_SECTION_NAME "*IND*"/* the absolute section */extern const asection bfd_abs_section;#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)/* Pointer to the undefined section */extern const asection bfd_und_section;#define bfd_und_section_ptr ((asection *) &bfd_und_section)#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)/* Pointer to the common section */extern const asection bfd_com_section;#define bfd_com_section_ptr ((asection *) &bfd_com_section)/* Pointer to the indirect section */extern const asection bfd_ind_section;#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)extern const struct symbol_cache_entry * const bfd_abs_symbol;extern const struct symbol_cache_entry * const bfd_com_symbol;extern const struct symbol_cache_entry * const bfd_und_symbol;extern const struct symbol_cache_entry * const bfd_ind_symbol;#define bfd_get_section_size_before_reloc(section) \     ((section)->reloc_done ? (abort (), (bfd_size_type) 1) \                            : (section)->_raw_size)#define bfd_get_section_size_after_reloc(section) \     ((section)->reloc_done ? (section)->_cooked_size \                            : (abort (), (bfd_size_type) 1))asection *bfd_get_section_by_name PARAMS ((bfd *abfd, const char *name));char *bfd_get_unique_section_name PARAMS ((bfd *abfd,    const char *templat,    int *count));asection *bfd_make_section_old_way PARAMS ((bfd *abfd, const char *name));asection *bfd_make_section_anyway PARAMS ((bfd *abfd, const char *name));asection *bfd_make_section PARAMS ((bfd *, const char *name));booleanbfd_set_section_flags PARAMS ((bfd *abfd, asection *sec, flagword flags));voidbfd_map_over_sections PARAMS ((bfd *abfd,    void (*func) (bfd *abfd,    asection *sect,    PTR obj),    PTR obj));booleanbfd_set_section_size PARAMS ((bfd *abfd, asection *sec, bfd_size_type val));booleanbfd_set_section_contents PARAMS ((bfd *abfd,    asection *section,    PTR data,    file_ptr offset,    bfd_size_type count));booleanbfd_get_section_contents PARAMS ((bfd *abfd, asection *section, PTR location,    file_ptr offset, bfd_size_type count));booleanbfd_copy_private_section_data PARAMS ((bfd *ibfd, asection *isec, bfd *obfd, asection *osec));#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \     BFD_SEND (obfd, _bfd_copy_private_section_data, \               (ibfd, isection, obfd, osection))void_bfd_strip_section_from_output PARAMS ((struct bfd_link_info *info, asection *section));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_mcf5200  9#define bfd_mach_mcf5206e 10#define bfd_mach_mcf5307  11#define bfd_mach_mcf5407  12  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_a29k,      /* AMD 29000 */  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)  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_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_mips6000              6000#define bfd_mach_mips8000              8000#define bfd_mach_mips10000             10000#define bfd_mach_mips12000             12000#define bfd_mach_mips16                16#define bfd_mach_mips32                32#define bfd_mach_mips32_4k             3204113 /* 32, 04, octal 'K' */#define bfd_mach_mips5                 5#define bfd_mach_mips64                64#define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */  bfd_arch_i386,      /* Intel 386 */#define bfd_mach_i386_i386 0#define bfd_mach_i386_i8086 1#define bfd_mach_i386_i386_intel_syntax 2#define bfd_mach_x86_64 3#define bfd_mach_x86_64_intel_syntax 4  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_alliant,   /* Alliant */  bfd_arch_convex,    /* Convex */  bfd_arch_m88k,      /* Motorola 88xxx */  bfd_arch_pyramid,   /* Pyramid Technology */  bfd_arch_h8300,     /* Hitachi H8/300 */#define bfd_mach_h8300   1#define bfd_mach_h8300h  2#define bfd_mach_h8300s  3  bfd_arch_powerpc,   /* PowerPC */#define bfd_mach_ppc           0#define bfd_mach_ppc_403       403#define bfd_mach_ppc_403gc     4030

⌨️ 快捷键说明

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