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 + -
显示快捷键?