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

📄 xcoff.h

📁 这个是LINUX下的GDB调度工具的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* Internal format of XCOFF object file data structures for BFD.   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003   Free Software Foundation, Inc.   Written by Ian Lance Taylor <ian@cygnus.com>, Cygnus Support.   This file is part of BFD, the Binary File Descriptor library.   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the 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 of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.      You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */#ifndef _INTERNAL_XCOFF_H#define _INTERNAL_XCOFF_H/* Linker *//* Names of "special" sections.  */#define _TEXT	".text"#define _DATA	".data"#define _BSS	".bss"#define _PAD	".pad"#define _LOADER	".loader"#define _EXCEPT ".except"#define _TYPCHK ".typchk"/* XCOFF uses a special .loader section with type STYP_LOADER.  */#define STYP_LOADER 0x1000/* XCOFF uses a special .debug section with type STYP_DEBUG.  */#define STYP_DEBUG 0x2000/* XCOFF handles line number or relocation overflow by creating   another section header with STYP_OVRFLO set.  */#define STYP_OVRFLO 0x8000/* Specifies an exception section.  A section of this type provides    information to identify the reason that a trap or ececptin occured within    and executable object program */#define STYP_EXCEPT 0x0100/* Specifies a type check section.  A section of this type contains parameter    argument type check strings used by the AIX binder.  */#define STYP_TYPCHK 0x4000#define	RS6K_AOUTHDR_OMAGIC 0x0107 /* old: text & data writeable */#define	RS6K_AOUTHDR_NMAGIC 0x0108 /* new: text r/o, data r/w */#define	RS6K_AOUTHDR_ZMAGIC 0x010B /* paged: text r/o, both page-aligned *//* XCOFF relocation types.     The relocations are described in the function     xcoff[64]_ppc_relocate_section in coff64-rs6000.c and coff-rs6000.c  */#define R_POS   (0x00)#define R_NEG   (0x01)#define R_REL   (0x02)#define R_TOC   (0x03)#define R_RTB   (0x04)#define R_GL    (0x05)#define R_TCL   (0x06)#define R_BA    (0x08)#define R_BR    (0x0a)#define R_RL    (0x0c)#define R_RLA   (0x0d)#define R_REF   (0x0f)#define R_TRL   (0x12)#define R_TRLA  (0x13)#define R_RRTBI (0x14)#define R_RRTBA (0x15)#define R_CAI   (0x16)#define R_CREL  (0x17)#define R_RBA   (0x18)#define R_RBAC  (0x19)#define R_RBR   (0x1a)#define R_RBRC  (0x1b)/* Storage class #defines, from /usr/include/storclass.h that are not already    defined in internal.h *//* Comment string in .info section */#define	C_INFO		110	/* Auxillary Symbol Entries  *//* x_smtyp values:  */#define	SMTYP_ALIGN(x)	((x) >> 3)	/* log2 of alignment */#define	SMTYP_SMTYP(x)	((x) & 0x7)	/* symbol type *//* Symbol type values:  */#define	XTY_ER	0		/* External reference */#define	XTY_SD	1		/* Csect definition */#define	XTY_LD	2		/* Label definition */#define XTY_CM	3		/* .BSS */#define	XTY_EM	4		/* Error message */#define	XTY_US	5		/* "Reserved for internal use" *//* x_smclas values:  */#define	XMC_PR	0		/* Read-only program code */#define	XMC_RO	1		/* Read-only constant */#define	XMC_DB	2		/* Read-only debug dictionary table */#define	XMC_TC	3		/* Read-write general TOC entry */#define	XMC_UA	4		/* Read-write unclassified */#define	XMC_RW	5		/* Read-write data */#define	XMC_GL	6		/* Read-only global linkage */#define	XMC_XO	7		/* Read-only extended operation */#define	XMC_SV	8		/* Read-only supervisor call */#define	XMC_BS	9		/* Read-write BSS */#define	XMC_DS	10		/* Read-write descriptor csect */#define	XMC_UC	11		/* Read-write unnamed Fortran common */#define	XMC_TI	12		/* Read-only traceback index csect */#define	XMC_TB	13		/* Read-only traceback table csect *//* 		14	??? */#define	XMC_TC0	15		/* Read-write TOC anchor */#define XMC_TD	16		/* Read-write data in TOC */#define	XMC_SV64   17		/* Read-only 64 bit supervisor call */#define	XMC_SV3264 18		/* Read-only 32 or 64 bit supervisor call *//* The ldhdr structure.  This appears at the start of the .loader   section.  */struct internal_ldhdr{  /* The version number:      1 : 32 bit     2 : 64 bit */  unsigned long l_version;  /* The number of symbol table entries.  */  bfd_size_type l_nsyms;  /* The number of relocation table entries.  */  bfd_size_type l_nreloc;  /* The length of the import file string table.  */  bfd_size_type l_istlen;  /* The number of import files.  */  bfd_size_type l_nimpid;  /* The offset from the start of the .loader section to the first     entry in the import file table.  */  bfd_size_type l_impoff;  /* The length of the string table.  */  bfd_size_type l_stlen;  /* The offset from the start of the .loader section to the first     entry in the string table.  */  bfd_size_type l_stoff;  /* The offset to start of the symbol table, only in XCOFF64 */  bfd_vma l_symoff;  /* The offset to the start of the relocation table, only in XCOFF64 */  bfd_vma l_rldoff;};/* The ldsym structure.  This is used to represent a symbol in the   .loader section.  */struct internal_ldsym{  union  {    /* The symbol name if <= SYMNMLEN characters.  */    char _l_name[SYMNMLEN];    struct    {      /* Zero if the symbol name is more than SYMNMLEN characters.  */	long _l_zeroes;            /* The offset in the string table if the symbol name is more	 than SYMNMLEN characters.  */      long _l_offset;    }     _l_l;  }  _l;  /* The symbol value.  */  bfd_vma l_value;  /* The symbol section number.  */  short l_scnum;  /* The symbol type and flags.  */  char l_smtype;  /* The symbol storage class.  */  char l_smclas;  /* The import file ID.  */  bfd_size_type l_ifile;  /* Offset to the parameter type check string.  */  bfd_size_type l_parm;};/* These flags are for the l_smtype field (the lower three bits are an   XTY_* value).  *//* Imported symbol.  */#define L_IMPORT (0x40)/* Entry point.  */#define L_ENTRY (0x20)/* Exported symbol.  */#define L_EXPORT (0x10)/* The ldrel structure.  This is used to represent a reloc in the   .loader section.  */struct internal_ldrel{  /* The reloc address.  */  bfd_vma l_vaddr;  /* The symbol table index in the .loader section symbol table.  */  bfd_size_type l_symndx;  /* The relocation type and size.  */  short l_rtype;  /* The section number this relocation applies to.  */  short l_rsecnm;};/* An entry in the XCOFF linker hash table.  */struct xcoff_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;  /* If we have created a TOC entry for this symbol, this is the .tc     section which holds it.  */  asection *toc_section;  union  {    /* If we have created a TOC entry (the XCOFF_SET_TOC flag is       set), this is the offset in toc_section.  */    bfd_vma toc_offset;        /* If the TOC entry comes from an input file, this is set to the       symbol index of the C_HIDEXT XMC_TC or XMC_TD symbol.  */    long toc_indx;  }   u;  /* If this symbol is a function entry point which is called, this     field holds a pointer to the function descriptor.  If this symbol     is a function descriptor, this field holds a pointer to the     function entry point.  */  struct xcoff_link_hash_entry *descriptor;  /* The .loader symbol table entry, if there is one.  */  struct internal_ldsym *ldsym;  /* If XCOFF_BUILT_LDSYM is set, this is the .loader symbol table     index.  If XCOFF_BUILD_LDSYM is clear, and XCOFF_IMPORT is set,     this is the l_ifile value.  */  long ldindx;  /* Some linker flags.  */  unsigned long flags;  /* The storage mapping class.  */  unsigned char smclas;};/*  Flags for xcoff_link_hash_entry.  *//* Symbol is referenced by a regular object. */#define XCOFF_REF_REGULAR      0x00000001/* Symbol is defined by a regular object. */#define XCOFF_DEF_REGULAR      0x00000002/* Symbol is defined by a dynamic object. */#define XCOFF_DEF_DYNAMIC      0x00000004/* Symbol is used in a reloc being copied into the .loader section.  */#define XCOFF_LDREL            0x00000008/* Symbol is the entry point.  */#define XCOFF_ENTRY            0x00000010/* Symbol is called; this is, it appears in a R_BR reloc.  */#define XCOFF_CALLED           0x00000020/* Symbol needs the TOC entry filled in.  */#define XCOFF_SET_TOC          0x00000040/* Symbol is explicitly imported.  */#define XCOFF_IMPORT           0x00000080/* Symbol is explicitly exported.  */#define XCOFF_EXPORT           0x00000100/* Symbol has been processed by xcoff_build_ldsyms.  */#define XCOFF_BUILT_LDSYM      0x00000200/* Symbol is mentioned by a section which was not garbage collected. */#define XCOFF_MARK             0x00000400/* Symbol size is recorded in size_list list from hash table.  */#define XCOFF_HAS_SIZE         0x00000800/* Symbol is a function descriptor.  */#define XCOFF_DESCRIPTOR       0x00001000/* Multiple definitions have been for the symbol. */#define XCOFF_MULTIPLY_DEFINED 0x00002000/* Symbol is the __rtinit symbol.  */#define XCOFF_RTINIT           0x00004000/* Symbol is an imported 32 bit syscall.  */#define XCOFF_SYSCALL32        0x00008000/* Symbol is an imported 64 bit syscall.  */#define XCOFF_SYSCALL64        0x00010000 /* The XCOFF linker hash table.  */

⌨️ 快捷键说明

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