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

📄 common.h

📁 这个是LINUX下的GDB调度工具的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* ELF support for BFD.   Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,   2001, 2002, 2003, 2004   Free Software Foundation, Inc.   Written by Fred Fish @ Cygnus Support, from information published   in "UNIX System V Release 4, Programmers Guide: ANSI C and   Programming Support Tools".   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.  *//* This file is part of ELF support for BFD, and contains the portions   that are common to both the internal and external representations.   For example, ELFMAG0 is the byte 0x7F in both the internal (in-memory)   and external (in-file) representations.  */#ifndef _ELF_COMMON_H#define _ELF_COMMON_H/* Fields in e_ident[].  */#define EI_MAG0		0	/* File identification byte 0 index */#define ELFMAG0		   0x7F	/* Magic number byte 0 */#define EI_MAG1		1	/* File identification byte 1 index */#define ELFMAG1		    'E'	/* Magic number byte 1 */#define EI_MAG2		2	/* File identification byte 2 index */#define ELFMAG2		    'L'	/* Magic number byte 2 */#define EI_MAG3		3	/* File identification byte 3 index */#define ELFMAG3		    'F'	/* Magic number byte 3 */#define EI_CLASS	4	/* File class */#define ELFCLASSNONE	      0	/* Invalid class */#define ELFCLASS32	      1	/* 32-bit objects */#define ELFCLASS64	      2	/* 64-bit objects */#define EI_DATA		5	/* Data encoding */#define ELFDATANONE	      0	/* Invalid data encoding */#define ELFDATA2LSB	      1	/* 2's complement, little endian */#define ELFDATA2MSB	      2	/* 2's complement, big endian */#define EI_VERSION	6	/* File version */#define EI_OSABI	7	/* Operating System/ABI indication */#define ELFOSABI_NONE	      0	/* UNIX System V ABI */#define ELFOSABI_HPUX	      1	/* HP-UX operating system */#define ELFOSABI_NETBSD	      2	/* NetBSD */#define ELFOSABI_LINUX	      3	/* GNU/Linux */#define ELFOSABI_HURD	      4	/* GNU/Hurd */#define ELFOSABI_SOLARIS      6	/* Solaris */#define ELFOSABI_AIX	      7	/* AIX */#define ELFOSABI_IRIX	      8	/* IRIX */#define ELFOSABI_FREEBSD      9	/* FreeBSD */#define ELFOSABI_TRU64	     10	/* TRU64 UNIX */#define ELFOSABI_MODESTO     11	/* Novell Modesto */#define ELFOSABI_OPENBSD     12	/* OpenBSD */#define ELFOSABI_OPENVMS     13	/* OpenVMS */#define ELFOSABI_NSK	     14	/* Hewlett-Packard Non-Stop Kernel */#define ELFOSABI_AROS	     15	/* Amiga Research OS */#define ELFOSABI_ARM	     97	/* ARM */#define ELFOSABI_STANDALONE 255	/* Standalone (embedded) application */#define EI_ABIVERSION	8	/* ABI version */#define EI_PAD		9	/* Start of padding bytes *//* Values for e_type, which identifies the object file type.  */#define ET_NONE		0	/* No file type */#define ET_REL		1	/* Relocatable file */#define ET_EXEC		2	/* Executable file */#define ET_DYN		3	/* Shared object file */#define ET_CORE		4	/* Core file */#define ET_LOOS		0xFE00	/* Operating system-specific */#define ET_HIOS		0xFEFF	/* Operating system-specific */#define ET_LOPROC	0xFF00	/* Processor-specific */#define ET_HIPROC	0xFFFF	/* Processor-specific *//* Values for e_machine, which identifies the architecture.  These numbers   are officially assigned by registry@caldera.com.  See below for a list of   ad-hoc numbers used during initial development.  */#define EM_NONE		  0	/* No machine */#define EM_M32		  1	/* AT&T WE 32100 */#define EM_SPARC	  2	/* SUN SPARC */#define EM_386		  3	/* Intel 80386 */#define EM_68K		  4	/* Motorola m68k family */#define EM_88K		  5	/* Motorola m88k family */#define EM_486		  6	/* Intel 80486 *//* Reserved for future use */#define EM_860		  7	/* Intel 80860 */#define EM_MIPS		  8	/* MIPS R3000 (officially, big-endian only) */#define EM_S370		  9	/* IBM System/370 */#define EM_MIPS_RS3_LE	 10	/* MIPS R3000 little-endian (Oct 4 1999 Draft) Deprecated */#define EM_PARISC	 15	/* HPPA */#define EM_VPP550	 17	/* Fujitsu VPP500 */#define EM_SPARC32PLUS	 18	/* Sun's "v8plus" */#define EM_960		 19	/* Intel 80960 */#define EM_PPC		 20	/* PowerPC */#define EM_PPC64	 21	/* 64-bit PowerPC */#define EM_S390		 22	/* IBM S/390 */#define EM_V800		 36	/* NEC V800 series */#define EM_FR20		 37	/* Fujitsu FR20 */#define EM_RH32		 38	/* TRW RH32 */#define EM_MCORE	 39	/* Motorola M*Core */ /* May also be taken by Fujitsu MMA */#define EM_RCE		 39	/* Old name for MCore */#define EM_ARM		 40	/* ARM */#define EM_OLD_ALPHA	 41	/* Digital Alpha */#define EM_SH		 42	/* Renesas (formerly Hitachi) / SuperH SH */#define EM_SPARCV9	 43	/* SPARC v9 64-bit */#define EM_TRICORE	 44	/* Siemens Tricore embedded processor */#define EM_ARC		 45	/* ARC Cores */#define EM_H8_300	 46	/* Renesas (formerly Hitachi) H8/300 */#define EM_H8_300H	 47	/* Renesas (formerly Hitachi) H8/300H */#define EM_H8S		 48	/* Renesas (formerly Hitachi) H8S */#define EM_H8_500	 49	/* Renesas (formerly Hitachi) H8/500 */#define EM_IA_64	 50	/* Intel IA-64 Processor */#define EM_MIPS_X	 51	/* Stanford MIPS-X */#define EM_COLDFIRE	 52	/* Motorola Coldfire */#define EM_68HC12	 53	/* Motorola M68HC12 */#define EM_MMA		 54	/* Fujitsu Multimedia Accelerator */#define EM_PCP		 55	/* Siemens PCP */#define EM_NCPU		 56	/* Sony nCPU embedded RISC processor */#define EM_NDR1		 57	/* Denso NDR1 microprocesspr */#define EM_STARCORE	 58	/* Motorola Star*Core processor */#define EM_ME16		 59	/* Toyota ME16 processor */#define EM_ST100	 60	/* STMicroelectronics ST100 processor */#define EM_TINYJ	 61	/* Advanced Logic Corp. TinyJ embedded processor */#define EM_X86_64	 62	/* Advanced Micro Devices X86-64 processor */#define EM_PDP10	 64	/* Digital Equipment Corp. PDP-10 */#define EM_PDP11	 65	/* Digital Equipment Corp. PDP-11 */#define EM_FX66		 66	/* Siemens FX66 microcontroller */#define EM_ST9PLUS	 67	/* STMicroelectronics ST9+ 8/16 bit microcontroller */#define EM_ST7		 68	/* STMicroelectronics ST7 8-bit microcontroller */#define EM_68HC16	 69	/* Motorola MC68HC16 Microcontroller */#define EM_68HC11	 70	/* Motorola MC68HC11 Microcontroller */#define EM_68HC08	 71	/* Motorola MC68HC08 Microcontroller */#define EM_68HC05	 72	/* Motorola MC68HC05 Microcontroller */#define EM_SVX		 73	/* Silicon Graphics SVx */#define EM_ST19		 74	/* STMicroelectronics ST19 8-bit cpu */#define EM_VAX		 75	/* Digital VAX */#define EM_CRIS		 76	/* Axis Communications 32-bit embedded processor */#define EM_JAVELIN	 77	/* Infineon Technologies 32-bit embedded cpu */#define EM_FIREPATH	 78	/* Element 14 64-bit DSP processor */#define EM_ZSP		 79	/* LSI Logic's 16-bit DSP processor */#define EM_MMIX		 80	/* Donald Knuth's educational 64-bit processor */#define EM_HUANY	 81	/* Harvard's machine-independent format */#define EM_PRISM	 82	/* SiTera Prism */#define EM_AVR		 83	/* Atmel AVR 8-bit microcontroller */#define EM_FR30		 84	/* Fujitsu FR30 */#define EM_D10V		 85	/* Mitsubishi D10V */#define EM_D30V		 86	/* Mitsubishi D30V */#define EM_V850		 87	/* NEC v850 */#define EM_M32R		 88	/* Renesas M32R (formerly Mitsubishi M32R) */#define EM_MN10300	 89	/* Matsushita MN10300 */#define EM_MN10200	 90	/* Matsushita MN10200 */#define EM_PJ		 91	/* picoJava */#define EM_OPENRISC	 92	/* OpenRISC 32-bit embedded processor */#define EM_ARC_A5	 93	/* ARC Cores Tangent-A5 */#define EM_XTENSA	 94	/* Tensilica Xtensa Architecture */#define EM_IP2K		101	/* Ubicom IP2022 micro controller */#define EM_CR		103	/* National Semiconductor CompactRISC */#define EM_MSP430	105	/* TI msp430 micro controller */#define EM_CRX		114	/* National Semiconductor CRX *//* If it is necessary to assign new unofficial EM_* values, please pick large   random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision   with official or non-GNU unofficial values.   NOTE: Do not just increment the most recent number by one.   Somebody else somewhere will do exactly the same thing, and you   will have a collision.  Instead, pick a random number.   Normally, each entity or maintainer responsible for a machine with an   unofficial e_machine number should eventually ask registry@caldera.com for   an officially blessed number to be added to the list above.	*/#define EM_PJ_OLD      99	/* picoJava *//* Cygnus PowerPC ELF backend.  Written in the absence of an ABI.  */#define EM_CYGNUS_POWERPC 0x9025/* Old version of Sparc v9, from before the ABI; this should be   removed shortly.  */#define EM_OLD_SPARCV9	11/* Old version of PowerPC, this should be removed shortly. */#define EM_PPC_OLD	17/* (Deprecated) Temporary number for the OpenRISC processor.  */#define EM_OR32		0x8472/* Cygnus M32R ELF backend.  Written in the absence of an ABI.  */#define EM_CYGNUS_M32R	0x9041/* Alpha backend magic number.  Written in the absence of an ABI.  */#define EM_ALPHA	0x9026/* old S/390 backend magic number. Written in the absence of an ABI.  */#define EM_S390_OLD	0xa390/* D10V backend magic number.  Written in the absence of an ABI.  */#define EM_CYGNUS_D10V	0x7650/* D30V backend magic number.  Written in the absence of an ABI.  */#define EM_CYGNUS_D30V	0x7676/* V850 backend magic number.  Written in the absense of an ABI.  */#define EM_CYGNUS_V850	0x9080/* mn10200 and mn10300 backend magic numbers.   Written in the absense of an ABI.  */#define EM_CYGNUS_MN10200	0xdead#define EM_CYGNUS_MN10300	0xbeef/* FR30 magic number - no EABI available.  */#define EM_CYGNUS_FR30		0x3330/* AVR magic number   Written in the absense of an ABI.  */#define EM_AVR_OLD		0x1057/* OpenRISC magic number   Written in the absense of an ABI.  */#define EM_OPENRISC_OLD		0x3426/* DLX magic number   Written in the absense of an ABI.  */#define EM_DLX			0x5aa5#define EM_XSTORMY16		0xad45/* FRV magic number - no EABI available??.  */#define EM_CYGNUS_FRV		0x5441/* Ubicom IP2xxx; no ABI */#define EM_IP2K_OLD		0x8217/* MSP430 magic number      Written in the absense everything.  */#define EM_MSP430_OLD		0x1059/* Vitesse IQ2000.  */#define EM_IQ2000		0xFEBA/* Old, unofficial value for Xtensa.  */#define EM_XTENSA_OLD		0xabc7/* See the above comment before you add a new EM_* value here.  *//* Values for e_version.  */#define EV_NONE		0		/* Invalid ELF version */#define EV_CURRENT	1		/* Current version *//* Values for program header, p_type field.  */#define PT_NULL		0		/* Program header table entry unused */#define PT_LOAD		1		/* Loadable program segment */#define PT_DYNAMIC	2		/* Dynamic linking information */#define PT_INTERP	3		/* Program interpreter */#define PT_NOTE		4		/* Auxiliary information */#define PT_SHLIB	5		/* Reserved, unspecified semantics */#define PT_PHDR		6		/* Entry for header table itself */#define PT_TLS		7		/* Thread local storage segment */#define PT_LOOS		0x60000000	/* OS-specific */#define PT_HIOS		0x6fffffff	/* OS-specific */#define PT_LOPROC	0x70000000	/* Processor-specific */#define PT_HIPROC	0x7FFFFFFF	/* Processor-specific */#define PT_GNU_EH_FRAME	(PT_LOOS + 0x474e550) /* Frame unwind information */#define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME      /* Solaris uses the same value */#define PT_GNU_STACK	(PT_LOOS + 0x474e551) /* Stack flags */#define PT_GNU_RELRO	(PT_LOOS + 0x474e552) /* Read-only after relocation *//* Program segment permissions, in program header p_flags field.  */#define PF_X		(1 << 0)	/* Segment is executable */#define PF_W		(1 << 1)	/* Segment is writable */#define PF_R		(1 << 2)	/* Segment is readable *//* #define PF_MASKOS	0x0F000000    *//* OS-specific reserved bits */#define PF_MASKOS	0x0FF00000	/* New value, Oct 4, 1999 Draft */#define PF_MASKPROC	0xF0000000	/* Processor-specific reserved bits *//* Values for section header, sh_type field.  */#define SHT_NULL	0		/* Section header table entry unused */#define SHT_PROGBITS	1		/* Program specific (private) data */#define SHT_SYMTAB	2		/* Link editing symbol table */#define SHT_STRTAB	3		/* A string table */#define SHT_RELA	4		/* Relocation entries with addends */#define SHT_HASH	5		/* A symbol hash table */#define SHT_DYNAMIC	6		/* Information for dynamic linking */#define SHT_NOTE	7		/* Information that marks file */#define SHT_NOBITS	8		/* Section occupies no space in file */#define SHT_REL		9		/* Relocation entries, no addends */#define SHT_SHLIB	10		/* Reserved, unspecified semantics */#define SHT_DYNSYM	11		/* Dynamic linking symbol table */#define SHT_INIT_ARRAY	  14		/* Array of ptrs to init functions */#define SHT_FINI_ARRAY	  15		/* Array of ptrs to finish functions */#define SHT_PREINIT_ARRAY 16		/* Array of ptrs to pre-init funcs */#define SHT_GROUP	  17		/* Section contains a section group */#define SHT_SYMTAB_SHNDX  18		/* Indicies for SHN_XINDEX entries */#define SHT_LOOS	0x60000000	/* First of OS specific semantics */#define SHT_HIOS	0x6fffffff	/* Last of OS specific semantics */#define SHT_GNU_LIBLIST	0x6ffffff7	/* List of prelink dependencies *//* The next three section types are defined by Solaris, and are named   SHT_SUNW*.  We use them in GNU code, so we also define SHT_GNU*   versions.  */#define SHT_SUNW_verdef	0x6ffffffd	/* Versions defined by file */#define SHT_SUNW_verneed 0x6ffffffe	/* Versions needed by file */#define SHT_SUNW_versym	0x6fffffff	/* Symbol versions */#define SHT_GNU_verdef	SHT_SUNW_verdef#define SHT_GNU_verneed	SHT_SUNW_verneed#define SHT_GNU_versym	SHT_SUNW_versym#define SHT_LOPROC	0x70000000	/* Processor-specific semantics, lo */#define SHT_HIPROC	0x7FFFFFFF	/* Processor-specific semantics, hi */#define SHT_LOUSER	0x80000000	/* Application-specific semantics *//* #define SHT_HIUSER	0x8FFFFFFF    *//* Application-specific semantics */#define SHT_HIUSER	0xFFFFFFFF	/* New value, defined in Oct 4, 1999 Draft *//* Values for section header, sh_flags field.  */#define SHF_WRITE	(1 << 0)	/* Writable data during execution */#define SHF_ALLOC	(1 << 1)	/* Occupies memory during execution */#define SHF_EXECINSTR	(1 << 2)	/* Executable machine instructions */#define SHF_MERGE	(1 << 4)	/* Data in this section can be merged */#define SHF_STRINGS	(1 << 5)	/* Contains null terminated character strings */#define SHF_INFO_LINK	(1 << 6)	/* sh_info holds section header table index */#define SHF_LINK_ORDER	(1 << 7)	/* Preserve section ordering when linking */#define SHF_OS_NONCONFORMING (1 << 8)	/* OS specific processing required */#define SHF_GROUP	(1 << 9)	/* Member of a section group */#define SHF_TLS		(1 << 10)	/* Thread local storage section *//* #define SHF_MASKOS	0x0F000000    *//* OS-specific semantics */#define SHF_MASKOS	0x0FF00000	/* New value, Oct 4, 1999 Draft */#define SHF_MASKPROC	0xF0000000	/* Processor-specific semantics *//* Values of note segment descriptor types for core files.  */#define NT_PRSTATUS	1		/* Contains copy of prstatus struct */#define NT_FPREGSET	2		/* Contains copy of fpregset struct */#define NT_PRPSINFO	3		/* Contains copy of prpsinfo struct */#define NT_TASKSTRUCT	4		/* Contains copy of task struct */#define NT_AUXV		6		/* Contains copy of Elfxx_auxv_t */#define NT_PRXFPREG	0x46e62b7f	/* Contains a user_xfpregs_struct; */					/*   note name must be "LINUX".  *//* Note segments for core files on dir-style procfs systems.  */#define NT_PSTATUS	10		/* Has a struct pstatus */

⌨️ 快捷键说明

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