Wolfgang Thallerhack libelf to workc70816a9 years agoHistory
3682 lines · 162.5 KB · C
RawDownload
/* This file defines standard ELF types, structures, and macros.   Copyright (C) 1995-2016 Free Software Foundation, Inc.   This file is part of the GNU C Library.    The GNU C Library is free software; you can redistribute it and/or   modify it under the terms of the GNU Lesser General Public   License as published by the Free Software Foundation; either   version 2.1 of the License, or (at your option) any later version.    The GNU C Library 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   Lesser General Public License for more details.    You should have received a copy of the GNU Lesser General Public   License along with the GNU C Library; if not, see   <http://www.gnu.org/licenses/>.  */ #ifndef _ELF_H#define	_ELF_H 1 /* Standard ELF types.  */ #include <stdint.h> /* Type for a 16-bit quantity.  */typedef uint16_t Elf32_Half;typedef uint16_t Elf64_Half; /* Types for signed and unsigned 32-bit quantities.  */typedef uint32_t Elf32_Word;typedef	int32_t  Elf32_Sword;typedef uint32_t Elf64_Word;typedef	int32_t  Elf64_Sword; /* Types for signed and unsigned 64-bit quantities.  */typedef uint64_t Elf32_Xword;typedef	int64_t  Elf32_Sxword;typedef uint64_t Elf64_Xword;typedef	int64_t  Elf64_Sxword; /* Type of addresses.  */typedef uint32_t Elf32_Addr;typedef uint64_t Elf64_Addr; /* Type of file offsets.  */typedef uint32_t Elf32_Off;typedef uint64_t Elf64_Off; /* Type for section indices, which are 16-bit quantities.  */typedef uint16_t Elf32_Section;typedef uint16_t Elf64_Section; /* Type for version symbol information.  */typedef Elf32_Half Elf32_Versym;typedef Elf64_Half Elf64_Versym;  /* The ELF file header.  This appears at the start of every ELF file.  */ #define EI_NIDENT (16) typedef struct{  unsigned char	e_ident[EI_NIDENT];	/* Magic number and other info */  Elf32_Half	e_type;			/* Object file type */  Elf32_Half	e_machine;		/* Architecture */  Elf32_Word	e_version;		/* Object file version */  Elf32_Addr	e_entry;		/* Entry point virtual address */  Elf32_Off	e_phoff;		/* Program header table file offset */  Elf32_Off	e_shoff;		/* Section header table file offset */  Elf32_Word	e_flags;		/* Processor-specific flags */  Elf32_Half	e_ehsize;		/* ELF header size in bytes */  Elf32_Half	e_phentsize;		/* Program header table entry size */  Elf32_Half	e_phnum;		/* Program header table entry count */  Elf32_Half	e_shentsize;		/* Section header table entry size */  Elf32_Half	e_shnum;		/* Section header table entry count */  Elf32_Half	e_shstrndx;		/* Section header string table index */} Elf32_Ehdr; typedef struct{  unsigned char	e_ident[EI_NIDENT];	/* Magic number and other info */  Elf64_Half	e_type;			/* Object file type */  Elf64_Half	e_machine;		/* Architecture */  Elf64_Word	e_version;		/* Object file version */  Elf64_Addr	e_entry;		/* Entry point virtual address */  Elf64_Off	e_phoff;		/* Program header table file offset */  Elf64_Off	e_shoff;		/* Section header table file offset */  Elf64_Word	e_flags;		/* Processor-specific flags */  Elf64_Half	e_ehsize;		/* ELF header size in bytes */  Elf64_Half	e_phentsize;		/* Program header table entry size */  Elf64_Half	e_phnum;		/* Program header table entry count */  Elf64_Half	e_shentsize;		/* Section header table entry size */  Elf64_Half	e_shnum;		/* Section header table entry count */  Elf64_Half	e_shstrndx;		/* Section header string table index */} Elf64_Ehdr; /* Fields in the e_ident array.  The EI_* macros are indices into the   array.  The macros under each EI_* macro are the values the byte   may have.  */ #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 */ /* Conglomeration of the identification bytes, for easy testing as a word.  */#define	ELFMAG		"\177ELF"#define	SELFMAG		4 #define EI_CLASS	4		/* File class byte index */#define ELFCLASSNONE	0		/* Invalid class */#define ELFCLASS32	1		/* 32-bit objects */#define ELFCLASS64	2		/* 64-bit objects */#define ELFCLASSNUM	3 #define EI_DATA		5		/* Data encoding byte index */#define ELFDATANONE	0		/* Invalid data encoding */#define ELFDATA2LSB	1		/* 2's complement, little endian */#define ELFDATA2MSB	2		/* 2's complement, big endian */#define ELFDATANUM	3 #define EI_VERSION	6		/* File version byte index */					/* Value must be EV_CURRENT */ #define EI_OSABI	7		/* OS ABI identification */#define ELFOSABI_NONE		0	/* UNIX System V ABI */#define ELFOSABI_SYSV		0	/* Alias.  */#define ELFOSABI_HPUX		1	/* HP-UX */#define ELFOSABI_NETBSD		2	/* NetBSD.  */#define ELFOSABI_GNU		3	/* Object uses GNU ELF extensions.  */#define ELFOSABI_LINUX		ELFOSABI_GNU /* Compatibility alias.  */#define ELFOSABI_SOLARIS	6	/* Sun Solaris.  */#define ELFOSABI_AIX		7	/* IBM AIX.  */#define ELFOSABI_IRIX		8	/* SGI Irix.  */#define ELFOSABI_FREEBSD	9	/* FreeBSD.  */#define ELFOSABI_TRU64		10	/* Compaq TRU64 UNIX.  */#define ELFOSABI_MODESTO	11	/* Novell Modesto.  */#define ELFOSABI_OPENBSD	12	/* OpenBSD.  */#define ELFOSABI_ARM_AEABI	64	/* ARM EABI */#define ELFOSABI_ARM		97	/* ARM */#define ELFOSABI_STANDALONE	255	/* Standalone (embedded) application */ #define EI_ABIVERSION	8		/* ABI version */ #define EI_PAD		9		/* Byte index of padding bytes */ /* Legal values for e_type (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_NUM		5		/* Number of defined types */#define ET_LOOS		0xfe00		/* OS-specific range start */#define ET_HIOS		0xfeff		/* OS-specific range end */#define ET_LOPROC	0xff00		/* Processor-specific range start */#define ET_HIPROC	0xffff		/* Processor-specific range end */ /* Legal values for e_machine (architecture).  */ #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_IAMCU	 6	/* Intel MCU */#define EM_860		 7	/* Intel 80860 */#define EM_MIPS		 8	/* MIPS R3000 big-endian */#define EM_S370		 9	/* IBM System/370 */#define EM_MIPS_RS3_LE	10	/* MIPS R3000 little-endian */				/* reserved 11-14 */#define EM_PARISC	15	/* HPPA */				/* reserved 16 */#define EM_VPP500	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	/* PowerPC 64-bit */#define EM_S390		22	/* IBM S390 */#define EM_SPU		23	/* IBM SPU/SPC */				/* reserved 24-35 */#define EM_V800		36	/* NEC V800 series */#define EM_FR20		37	/* Fujitsu FR20 */#define EM_RH32		38	/* TRW RH-32 */#define EM_RCE		39	/* Motorola RCE */#define EM_ARM		40	/* ARM */#define EM_FAKE_ALPHA	41	/* Digital Alpha */#define EM_SH		42	/* Hitachi SH */#define EM_SPARCV9	43	/* SPARC v9 64-bit */#define EM_TRICORE	44	/* Siemens Tricore */#define EM_ARC		45	/* Argonaut RISC Core */#define EM_H8_300	46	/* Hitachi H8/300 */#define EM_H8_300H	47	/* Hitachi H8/300H */#define EM_H8S		48	/* Hitachi H8S */#define EM_H8_500	49	/* Hitachi H8/500 */#define EM_IA_64	50	/* Intel Merced */#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 MMA Multimedia Accelerator */#define EM_PCP		55	/* Siemens PCP */#define EM_NCPU		56	/* Sony nCPU embeeded RISC */#define EM_NDR1		57	/* Denso NDR1 microprocessor */#define EM_STARCORE	58	/* Motorola Start*Core processor */#define EM_ME16		59	/* Toyota ME16 processor */#define EM_ST100	60	/* STMicroelectronic ST100 processor */#define EM_TINYJ	61	/* Advanced Logic Corp. Tinyj emb.fam */#define EM_X86_64	62	/* AMD x86-64 architecture */#define EM_PDSP		63	/* Sony DSP Processor */#define EM_PDP10	64	/* Digital PDP-10 */#define EM_PDP11	65	/* Digital PDP-11 */#define EM_FX66		66	/* Siemens FX66 microcontroller */#define EM_ST9PLUS	67	/* STMicroelectronics ST9+ 8/16 mc */#define EM_ST7		68	/* STmicroelectronics ST7 8 bit mc */#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 mc */#define EM_VAX		75	/* Digital VAX */#define EM_CRIS		76	/* Axis Communications 32-bit emb.proc */#define EM_JAVELIN	77	/* Infineon Technologies 32-bit emb.proc */#define EM_FIREPATH	78	/* Element 14 64-bit DSP Processor */#define EM_ZSP		79	/* LSI Logic 16-bit DSP Processor */#define EM_MMIX		80	/* Donald Knuth's educational 64-bit proc */#define EM_HUANY	81	/* Harvard University machine-independent object files */#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	/* 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_COMPACT	93	/* ARC International ARCompact */#define EM_XTENSA	94	/* Tensilica Xtensa Architecture */#define EM_VIDEOCORE	95	/* Alphamosaic VideoCore */#define EM_TMM_GPP	96	/* Thompson Multimedia General Purpose Proc */#define EM_NS32K	97	/* National Semi. 32000 */#define EM_TPC		98	/* Tenor Network TPC */#define EM_SNP1K	99	/* Trebia SNP 1000 */#define EM_ST200	100	/* STMicroelectronics ST200 */#define EM_IP2K		101	/* Ubicom IP2xxx */#define EM_MAX		102	/* MAX processor */#define EM_CR		103	/* National Semi. CompactRISC */#define EM_F2MC16	104	/* Fujitsu F2MC16 */#define EM_MSP430	105	/* Texas Instruments msp430 */#define EM_BLACKFIN	106	/* Analog Devices Blackfin DSP */#define EM_SE_C33	107	/* Seiko Epson S1C33 family */#define EM_SEP		108	/* Sharp embedded microprocessor */#define EM_ARCA		109	/* Arca RISC */#define EM_UNICORE	110	/* PKU-Unity & MPRC Peking Uni. mc series */#define EM_EXCESS	111	/* eXcess configurable cpu */#define EM_DXP		112	/* Icera Semi. Deep Execution Processor */#define EM_ALTERA_NIOS2 113	/* Altera Nios II */#define EM_CRX		114	/* National Semi. CompactRISC CRX */#define EM_XGATE	115	/* Motorola XGATE */#define EM_C166		116	/* Infineon C16x/XC16x */#define EM_M16C		117	/* Renesas M16C */#define EM_DSPIC30F	118	/* Microchip Technology dsPIC30F */#define EM_CE		119	/* Freescale Communication Engine RISC */#define EM_M32C		120	/* Renesas M32C */				/* reserved 121-130 */#define EM_TSK3000	131	/* Altium TSK3000 */#define EM_RS08		132	/* Freescale RS08 */#define EM_SHARC	133	/* Analog Devices SHARC family */#define EM_ECOG2	134	/* Cyan Technology eCOG2 */#define EM_SCORE7	135	/* Sunplus S+core7 RISC */#define EM_DSP24	136	/* New Japan Radio (NJR) 24-bit DSP */#define EM_VIDEOCORE3	137	/* Broadcom VideoCore III */#define EM_LATTICEMICO32 138	/* RISC for Lattice FPGA */#define EM_SE_C17	139	/* Seiko Epson C17 */#define EM_TI_C6000	140	/* Texas Instruments TMS320C6000 DSP */#define EM_TI_C2000	141	/* Texas Instruments TMS320C2000 DSP */#define EM_TI_C5500	142	/* Texas Instruments TMS320C55x DSP */#define EM_TI_ARP32	143	/* Texas Instruments App. Specific RISC */#define EM_TI_PRU	144	/* Texas Instruments Prog. Realtime Unit */				/* reserved 145-159 */#define EM_MMDSP_PLUS	160	/* STMicroelectronics 64bit VLIW DSP */#define EM_CYPRESS_M8C	161	/* Cypress M8C */#define EM_R32C		162	/* Renesas R32C */#define EM_TRIMEDIA	163	/* NXP Semi. TriMedia */#define EM_QDSP6	164	/* QUALCOMM DSP6 */#define EM_8051		165	/* Intel 8051 and variants */#define EM_STXP7X	166	/* STMicroelectronics STxP7x */#define EM_NDS32	167	/* Andes Tech. compact code emb. RISC */#define EM_ECOG1X	168	/* Cyan Technology eCOG1X */#define EM_MAXQ30	169	/* Dallas Semi. MAXQ30 mc */#define EM_XIMO16	170	/* New Japan Radio (NJR) 16-bit DSP */#define EM_MANIK	171	/* M2000 Reconfigurable RISC */#define EM_CRAYNV2	172	/* Cray NV2 vector architecture */#define EM_RX		173	/* Renesas RX */#define EM_METAG	174	/* Imagination Tech. META */#define EM_MCST_ELBRUS	175	/* MCST Elbrus */#define EM_ECOG16	176	/* Cyan Technology eCOG16 */#define EM_CR16		177	/* National Semi. CompactRISC CR16 */#define EM_ETPU		178	/* Freescale Extended Time Processing Unit */#define EM_SLE9X	179	/* Infineon Tech. SLE9X */#define EM_L10M		180	/* Intel L10M */#define EM_K10M		181	/* Intel K10M */				/* reserved 182 */#define EM_AARCH64	183	/* ARM AARCH64 */				/* reserved 184 */#define EM_AVR32	185	/* Amtel 32-bit microprocessor */#define EM_STM8		186	/* STMicroelectronics STM8 */#define EM_TILE64	187	/* Tileta TILE64 */#define EM_TILEPRO	188	/* Tilera TILEPro */#define EM_MICROBLAZE	189	/* Xilinx MicroBlaze */#define EM_CUDA		190	/* NVIDIA CUDA */#define EM_TILEGX	191	/* Tilera TILE-Gx */#define EM_CLOUDSHIELD	192	/* CloudShield */#define EM_COREA_1ST	193	/* KIPO-KAIST Core-A 1st gen. */#define EM_COREA_2ND	194	/* KIPO-KAIST Core-A 2nd gen. */#define EM_ARC_COMPACT2	195	/* Synopsys ARCompact V2 */#define EM_OPEN8	196	/* Open8 RISC */#define EM_RL78		197	/* Renesas RL78 */#define EM_VIDEOCORE5	198	/* Broadcom VideoCore V */#define EM_78KOR	199	/* Renesas 78KOR */#define EM_56800EX	200	/* Freescale 56800EX DSC */#define EM_BA1		201	/* Beyond BA1 */#define EM_BA2		202	/* Beyond BA2 */#define EM_XCORE	203	/* XMOS xCORE */#define EM_MCHP_PIC	204	/* Microchip 8-bit PIC(r) */				/* reserved 205-209 */#define EM_KM32		210	/* KM211 KM32 */#define EM_KMX32	211	/* KM211 KMX32 */#define EM_EMX16	212	/* KM211 KMX16 */#define EM_EMX8		213	/* KM211 KMX8 */#define EM_KVARC	214	/* KM211 KVARC */#define EM_CDP		215	/* Paneve CDP */#define EM_COGE		216	/* Cognitive Smart Memory Processor */#define EM_COOL		217	/* Bluechip CoolEngine */#define EM_NORC		218	/* Nanoradio Optimized RISC */#define EM_CSR_KALIMBA	219	/* CSR Kalimba */#define EM_Z80		220	/* Zilog Z80 */#define EM_VISIUM	221	/* Controls and Data Services VISIUMcore */#define EM_FT32		222	/* FTDI Chip FT32 */#define EM_MOXIE	223	/* Moxie processor */#define EM_AMDGPU	224	/* AMD GPU */				/* reserved 225-242 */#define EM_RISCV	243	/* RISC-V */ #define EM_BPF		247	/* Linux BPF -- in-kernel virtual machine */ #define EM_NUM		248 /* Old spellings/synonyms.  */ #define EM_ARC_A5	EM_ARC_COMPACT /* 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.  */ #define EM_ALPHA	0x9026 /* Legal values for e_version (version).  */ #define EV_NONE		0		/* Invalid ELF version */#define EV_CURRENT	1		/* Current version */#define EV_NUM		2 /* Section header.  */ typedef struct{  Elf32_Word	sh_name;		/* Section name (string tbl index) */  Elf32_Word	sh_type;		/* Section type */  Elf32_Word	sh_flags;		/* Section flags */  Elf32_Addr	sh_addr;		/* Section virtual addr at execution */  Elf32_Off	sh_offset;		/* Section file offset */  Elf32_Word	sh_size;		/* Section size in bytes */  Elf32_Word	sh_link;		/* Link to another section */  Elf32_Word	sh_info;		/* Additional section information */  Elf32_Word	sh_addralign;		/* Section alignment */  Elf32_Word	sh_entsize;		/* Entry size if section holds table */} Elf32_Shdr; typedef struct{  Elf64_Word	sh_name;		/* Section name (string tbl index) */  Elf64_Word	sh_type;		/* Section type */  Elf64_Xword	sh_flags;		/* Section flags */  Elf64_Addr	sh_addr;		/* Section virtual addr at execution */  Elf64_Off	sh_offset;		/* Section file offset */  Elf64_Xword	sh_size;		/* Section size in bytes */  Elf64_Word	sh_link;		/* Link to another section */  Elf64_Word	sh_info;		/* Additional section information */  Elf64_Xword	sh_addralign;		/* Section alignment */  Elf64_Xword	sh_entsize;		/* Entry size if section holds table */} Elf64_Shdr; /* Special section indices.  */ #define SHN_UNDEF	0		/* Undefined section */#define SHN_LORESERVE	0xff00		/* Start of reserved indices */#define SHN_LOPROC	0xff00		/* Start of processor-specific */#define SHN_BEFORE	0xff00		/* Order section before all others					   (Solaris).  */#define SHN_AFTER	0xff01		/* Order section after all others					   (Solaris).  */#define SHN_HIPROC	0xff1f		/* End of processor-specific */#define SHN_LOOS	0xff20		/* Start of OS-specific */#define SHN_HIOS	0xff3f		/* End of OS-specific */#define SHN_ABS		0xfff1		/* Associated symbol is absolute */#define SHN_COMMON	0xfff2		/* Associated symbol is common */#define SHN_XINDEX	0xffff		/* Index is in extra table.  */#define SHN_HIRESERVE	0xffff		/* End of reserved indices */ /* Legal values for sh_type (section type).  */ #define SHT_NULL	  0		/* Section header table entry unused */#define SHT_PROGBITS	  1		/* Program data */#define SHT_SYMTAB	  2		/* Symbol table */#define SHT_STRTAB	  3		/* String table */#define SHT_RELA	  4		/* Relocation entries with addends */#define SHT_HASH	  5		/* Symbol hash table */#define SHT_DYNAMIC	  6		/* Dynamic linking information */#define SHT_NOTE	  7		/* Notes */#define SHT_NOBITS	  8		/* Program space with no data (bss) */#define SHT_REL		  9		/* Relocation entries, no addends */#define SHT_SHLIB	  10		/* Reserved */#define SHT_DYNSYM	  11		/* Dynamic linker symbol table */#define SHT_INIT_ARRAY	  14		/* Array of constructors */#define SHT_FINI_ARRAY	  15		/* Array of destructors */#define SHT_PREINIT_ARRAY 16		/* Array of pre-constructors */#define SHT_GROUP	  17		/* Section group */#define SHT_SYMTAB_SHNDX  18		/* Extended section indeces */#define	SHT_NUM		  19		/* Number of defined types.  */#define SHT_LOOS	  0x60000000	/* Start OS-specific.  */#define SHT_GNU_ATTRIBUTES 0x6ffffff5	/* Object attributes.  */#define SHT_GNU_HASH	  0x6ffffff6	/* GNU-style hash table.  */#define SHT_GNU_LIBLIST	  0x6ffffff7	/* Prelink library list */#define SHT_CHECKSUM	  0x6ffffff8	/* Checksum for DSO content.  */#define SHT_LOSUNW	  0x6ffffffa	/* Sun-specific low bound.  */#define SHT_SUNW_move	  0x6ffffffa#define SHT_SUNW_COMDAT   0x6ffffffb#define SHT_SUNW_syminfo  0x6ffffffc#define SHT_GNU_verdef	  0x6ffffffd	/* Version definition section.  */#define SHT_GNU_verneed	  0x6ffffffe	/* Version needs section.  */#define SHT_GNU_versym	  0x6fffffff	/* Version symbol table.  */#define SHT_HISUNW	  0x6fffffff	/* Sun-specific high bound.  */#define SHT_HIOS	  0x6fffffff	/* End OS-specific type */#define SHT_LOPROC	  0x70000000	/* Start of processor-specific */#define SHT_HIPROC	  0x7fffffff	/* End of processor-specific */#define SHT_LOUSER	  0x80000000	/* Start of application-specific */#define SHT_HIUSER	  0x8fffffff	/* End of application-specific */ /* Legal values for sh_flags (section flags).  */ #define SHF_WRITE	     (1 << 0)	/* Writable */#define SHF_ALLOC	     (1 << 1)	/* Occupies memory during execution */#define SHF_EXECINSTR	     (1 << 2)	/* Executable */#define SHF_MERGE	     (1 << 4)	/* Might be merged */#define SHF_STRINGS	     (1 << 5)	/* Contains nul-terminated strings */#define SHF_INFO_LINK	     (1 << 6)	/* `sh_info' contains SHT index */#define SHF_LINK_ORDER	     (1 << 7)	/* Preserve order after combining */#define SHF_OS_NONCONFORMING (1 << 8)	/* Non-standard OS specific handling					   required */#define SHF_GROUP	     (1 << 9)	/* Section is member of a group.  */#define SHF_TLS		     (1 << 10)	/* Section hold thread-local data.  */#define SHF_COMPRESSED	     (1 << 11)	/* Section with compressed data. */#define SHF_MASKOS	     0x0ff00000	/* OS-specific.  */#define SHF_MASKPROC	     0xf0000000	/* Processor-specific */#define SHF_ORDERED	     (1 << 30)	/* Special ordering requirement					   (Solaris).  */#define SHF_EXCLUDE	     (1U << 31)	/* Section is excluded unless					   referenced or allocated (Solaris).*/ /* Section compression header.  Used when SHF_COMPRESSED is set.  */ typedef struct{  Elf32_Word	ch_type;	/* Compression format.  */  Elf32_Word	ch_size;	/* Uncompressed data size.  */  Elf32_Word	ch_addralign;	/* Uncompressed data alignment.  */} Elf32_Chdr; typedef struct{  Elf64_Word	ch_type;	/* Compression format.  */  Elf64_Word	ch_reserved;  Elf64_Xword	ch_size;	/* Uncompressed data size.  */  Elf64_Xword	ch_addralign;	/* Uncompressed data alignment.  */} Elf64_Chdr;

Lines 1–500 of 3682.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t