libcoff-in.h
来自「基于4个mips核的noc设计」· C头文件 代码 · 共 587 行 · 第 1/2 页
H
587 行
/* BFD COFF object file private structure. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. Written by Cygnus Support.** NOTE: libcoff.h is a GENERATED file. Don't change it; instead,** change libcoff-in.h or coffcode.h.This file is part of BFD, the Binary File Descriptor library.This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */#include "bfdlink.h"/* Object file tdata; access macros */#define coff_data(bfd) ((bfd)->tdata.coff_obj_data)#define exec_hdr(bfd) (coff_data(bfd)->hdr)#define obj_pe(bfd) (coff_data(bfd)->pe)#define obj_symbols(bfd) (coff_data(bfd)->symbols)#define obj_sym_filepos(bfd) (coff_data(bfd)->sym_filepos)#define obj_relocbase(bfd) (coff_data(bfd)->relocbase)#define obj_raw_syments(bfd) (coff_data(bfd)->raw_syments)#define obj_raw_syment_count(bfd) (coff_data(bfd)->raw_syment_count)#define obj_convert(bfd) (coff_data(bfd)->conversion_table)#define obj_conv_table_size(bfd) (coff_data(bfd)->conv_table_size)#define obj_coff_external_syms(bfd) (coff_data (bfd)->external_syms)#define obj_coff_keep_syms(bfd) (coff_data (bfd)->keep_syms)#define obj_coff_strings(bfd) (coff_data (bfd)->strings)#define obj_coff_keep_strings(bfd) (coff_data (bfd)->keep_strings)#define obj_coff_sym_hashes(bfd) (coff_data (bfd)->sym_hashes)#define obj_coff_strings_written(bfd) (coff_data (bfd)->strings_written)#define obj_coff_local_toc_table(bfd) (coff_data(bfd)->local_toc_sym_map)/* `Tdata' information kept for COFF files. */typedef struct coff_tdata{ struct coff_symbol_struct *symbols; /* symtab for input bfd */ unsigned int *conversion_table; int conv_table_size; file_ptr sym_filepos; struct coff_ptr_struct *raw_syments; unsigned long raw_syment_count; /* These are only valid once writing has begun */ long int relocbase; /* These members communicate important constants about the symbol table to GDB's symbol-reading code. These `constants' unfortunately vary from coff implementation to implementation... */ unsigned local_n_btmask; unsigned local_n_btshft; unsigned local_n_tmask; unsigned local_n_tshift; unsigned local_symesz; unsigned local_auxesz; unsigned local_linesz; /* The unswapped external symbols. May be NULL. Read by _bfd_coff_get_external_symbols. */ PTR external_syms; /* If this is true, the external_syms may not be freed. */ boolean keep_syms; /* The string table. May be NULL. Read by _bfd_coff_read_string_table. */ char *strings; /* If this is true, the strings may not be freed. */ boolean keep_strings; /* If this is true, the strings have been written out already. */ boolean strings_written; /* is this a PE format coff file */ int pe; /* Used by the COFF backend linker. */ struct coff_link_hash_entry **sym_hashes; /* used by the pe linker for PowerPC */ int *local_toc_sym_map; struct bfd_link_info *link_info; /* Used by coff_find_nearest_line. */ PTR line_info; /* A place to stash dwarf2 info for this bfd. */ PTR dwarf2_find_line_info; /* The timestamp from the COFF file header. */ long timestamp; /* Copy of some of the f_flags bits in the COFF filehdr structure, used by ARM code. */ flagword flags;} coff_data_type;/* Tdata for pe image files. */typedef struct pe_tdata{ coff_data_type coff; struct internal_extra_pe_aouthdr pe_opthdr; int dll; int has_reloc_section; boolean (*in_reloc_p) PARAMS((bfd *, reloc_howto_type *)); flagword real_flags; int target_subsystem; boolean force_minimum_alignment;} pe_data_type;#define pe_data(bfd) ((bfd)->tdata.pe_obj_data)/* Tdata for XCOFF files. */struct xcoff_tdata{ /* Basic COFF information. */ coff_data_type coff; /* True if this is an XCOFF64 file. */ boolean xcoff64; /* True if a large a.out header should be generated. */ boolean full_aouthdr; /* TOC value. */ bfd_vma toc; /* Index of section holding TOC. */ int sntoc; /* Index of section holding entry point. */ int snentry; /* .text alignment from optional header. */ int text_align_power; /* .data alignment from optional header. */ int data_align_power; /* modtype from optional header. */ short modtype; /* cputype from optional header. */ short cputype; /* maxdata from optional header. */ bfd_vma maxdata; /* maxstack from optional header. */ bfd_vma maxstack; /* Used by the XCOFF backend linker. */ asection **csects; unsigned long *debug_indices; unsigned int import_file_id;};#define xcoff_data(abfd) ((abfd)->tdata.xcoff_obj_data)/* We take the address of the first element of a asymbol to ensure that the * macro is only ever applied to an asymbol. */#define coffsymbol(asymbol) ((coff_symbol_type *)(&((asymbol)->the_bfd)))/* The used_by_bfd field of a section may be set to a pointer to this structure. */struct coff_section_tdata{ /* The relocs, swapped into COFF internal form. This may be NULL. */ struct internal_reloc *relocs; /* If this is true, the relocs entry may not be freed. */ boolean keep_relocs; /* The section contents. This may be NULL. */ bfd_byte *contents; /* If this is true, the contents entry may not be freed. */ boolean keep_contents; /* Information cached by coff_find_nearest_line. */ bfd_vma offset; unsigned int i; const char *function; int line_base; /* A pointer used for .stab linking optimizations. */ PTR stab_info; /* Available for individual backends. */ PTR tdata;};/* An accessor macro for the coff_section_tdata structure. */#define coff_section_data(abfd, sec) \ ((struct coff_section_tdata *) (sec)->used_by_bfd)/* Tdata for sections in XCOFF files. This is used by the linker. */struct xcoff_section_tdata{ /* Used for XCOFF csects created by the linker; points to the real XCOFF section which contains this csect. */ asection *enclosing; /* The lineno_count field for the enclosing section, because we are going to clobber it there. */ unsigned int lineno_count; /* The first and one past the last symbol indices for symbols used by this csect. */ unsigned long first_symndx; unsigned long last_symndx;};/* An accessor macro the xcoff_section_tdata structure. */#define xcoff_section_data(abfd, sec) \ ((struct xcoff_section_tdata *) coff_section_data ((abfd), (sec))->tdata)/* Tdata for sections in PE files. */struct pei_section_tdata{ /* The virtual size of the section. */ bfd_size_type virt_size; /* The PE section flags. */ long pe_flags;};/* An accessor macro for the pei_section_tdata structure. */#define pei_section_data(abfd, sec) \ ((struct pei_section_tdata *) coff_section_data ((abfd), (sec))->tdata)/* COFF linker hash table entries. */struct coff_link_hash_entry{ struct bfd_link_hash_entry root; /* Symbol index in output file. Set to -1 initially. Set to -2 if there is a reloc against this symbol. */ long indx; /* Symbol type. */ unsigned short type; /* Symbol class. */ unsigned char class; /* Number of auxiliary entries. */ char numaux; /* BFD to take auxiliary entries from. */ bfd *auxbfd; /* Pointer to array of auxiliary entries, if any. */ union internal_auxent *aux; /* Flag word; legal values follow. */ unsigned short coff_link_hash_flags; /* Symbol is a PE section symbol. */#define COFF_LINK_HASH_PE_SECTION_SYMBOL (01)};/* COFF linker hash table. */struct coff_link_hash_table{ struct bfd_link_hash_table root; /* A pointer to information used to link stabs in sections. */ PTR stab_info;};/* Look up an entry in a COFF linker hash table. */#define coff_link_hash_lookup(table, string, create, copy, follow) \ ((struct coff_link_hash_entry *) \ bfd_link_hash_lookup (&(table)->root, (string), (create), \ (copy), (follow)))/* Traverse a COFF linker hash table. */#define coff_link_hash_traverse(table, func, info) \
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?