Add elf.h to newlib
This is copied from musl (MIT license). This is newer and more thorough than that of FreeBSD currently shipped only on Cygwin. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
This commit is contained in:
		
							
								
								
									
										3146
									
								
								newlib/libc/include/elf.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3146
									
								
								newlib/libc/include/elf.h
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,41 +0,0 @@ | |||||||
| /*- |  | ||||||
|  * Copyright (c) 2001 David E. O'Brien. |  | ||||||
|  * All rights reserved. |  | ||||||
|  * |  | ||||||
|  * Redistribution and use in source and binary forms, with or without |  | ||||||
|  * modification, are permitted provided that the following conditions |  | ||||||
|  * are met: |  | ||||||
|  * 1. Redistributions of source code must retain the above copyright |  | ||||||
|  *    notice, this list of conditions and the following disclaimer. |  | ||||||
|  * 2. Redistributions in binary form must reproduce the above copyright |  | ||||||
|  *    notice, this list of conditions and the following disclaimer in the |  | ||||||
|  *    documentation and/or other materials provided with the distribution. |  | ||||||
|  * |  | ||||||
|  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |  | ||||||
|  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |  | ||||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |  | ||||||
|  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |  | ||||||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |  | ||||||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |  | ||||||
|  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |  | ||||||
|  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |  | ||||||
|  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |  | ||||||
|  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |  | ||||||
|  * SUCH DAMAGE. |  | ||||||
|  * |  | ||||||
|  * $FreeBSD$ |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * This is a Solaris compatibility header |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_ELF_H_ |  | ||||||
| #define	_ELF_H_ |  | ||||||
|  |  | ||||||
| #include <sys/types.h> |  | ||||||
| #include <machine/elf.h> |  | ||||||
| #include <sys/elf32.h> |  | ||||||
| #include <sys/elf64.h> |  | ||||||
|  |  | ||||||
| #endif /* !_ELF_H_ */ |  | ||||||
| @@ -1,117 +0,0 @@ | |||||||
| /*- |  | ||||||
|  * Copyright (c) 1996-1997 John D. Polstra. |  | ||||||
|  * All rights reserved. |  | ||||||
|  * |  | ||||||
|  * Redistribution and use in source and binary forms, with or without |  | ||||||
|  * modification, are permitted provided that the following conditions |  | ||||||
|  * are met: |  | ||||||
|  * 1. Redistributions of source code must retain the above copyright |  | ||||||
|  *    notice, this list of conditions and the following disclaimer. |  | ||||||
|  * 2. Redistributions in binary form must reproduce the above copyright |  | ||||||
|  *    notice, this list of conditions and the following disclaimer in the |  | ||||||
|  *    documentation and/or other materials provided with the distribution. |  | ||||||
|  * |  | ||||||
|  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |  | ||||||
|  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |  | ||||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |  | ||||||
|  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |  | ||||||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |  | ||||||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |  | ||||||
|  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |  | ||||||
|  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |  | ||||||
|  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |  | ||||||
|  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |  | ||||||
|  * SUCH DAMAGE. |  | ||||||
|  * |  | ||||||
|  * $FreeBSD$ |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _MACHINE_ELF_H_ |  | ||||||
| #define	_MACHINE_ELF_H_ 1 |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * ELF definitions for the i386 architecture. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include <sys/elf32.h>	/* Definitions common to all 32 bit architectures. */ |  | ||||||
| #if defined(__ELF_WORD_SIZE) && __ELF_WORD_SIZE == 64 |  | ||||||
| #include <sys/elf64.h>	/* Definitions common to all 64 bit architectures. */ |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef __ELF_WORD_SIZE |  | ||||||
| #define	__ELF_WORD_SIZE	32	/* Used by <sys/elf_generic.h> */ |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #include <sys/elf_generic.h> |  | ||||||
|  |  | ||||||
| #define	ELF_ARCH	EM_386 |  | ||||||
|  |  | ||||||
| #define	ELF_MACHINE_OK(x) ((x) == EM_386 || (x) == EM_486) |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Auxiliary vector entries for passing information to the interpreter. |  | ||||||
|  * |  | ||||||
|  * The i386 supplement to the SVR4 ABI specification names this "auxv_t", |  | ||||||
|  * but POSIX lays claim to all symbols ending with "_t". |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef struct {	/* Auxiliary vector entry on initial stack */ |  | ||||||
| 	int	a_type;			/* Entry type. */ |  | ||||||
| 	union { |  | ||||||
| 		long	a_val;		/* Integer value. */ |  | ||||||
| 		void	*a_ptr;		/* Address. */ |  | ||||||
| 		void	(*a_fcn)(void);	/* Function pointer (not used). */ |  | ||||||
| 	} a_un; |  | ||||||
| } Elf32_Auxinfo; |  | ||||||
|  |  | ||||||
| #if __ELF_WORD_SIZE == 64 |  | ||||||
| /* Fake for amd64 loader support */ |  | ||||||
| typedef struct { |  | ||||||
| 	int fake; |  | ||||||
| } Elf64_Auxinfo; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| __ElfType(Auxinfo); |  | ||||||
|  |  | ||||||
| /* Values for a_type. */ |  | ||||||
| #define	AT_NULL		0	/* Terminates the vector. */ |  | ||||||
| #define	AT_IGNORE	1	/* Ignored entry. */ |  | ||||||
| #define	AT_EXECFD	2	/* File descriptor of program to load. */ |  | ||||||
| #define	AT_PHDR		3	/* Program header of program already loaded. */ |  | ||||||
| #define	AT_PHENT	4	/* Size of each program header entry. */ |  | ||||||
| #define	AT_PHNUM	5	/* Number of program header entries. */ |  | ||||||
| #define	AT_PAGESZ	6	/* Page size in bytes. */ |  | ||||||
| #define	AT_BASE		7	/* Interpreter's base address. */ |  | ||||||
| #define	AT_FLAGS	8	/* Flags (unused for i386). */ |  | ||||||
| #define	AT_ENTRY	9	/* Where interpreter should transfer control. */ |  | ||||||
| #define	AT_NOTELF	10	/* Program is not ELF ?? */ |  | ||||||
| #define	AT_UID		11	/* Real uid. */ |  | ||||||
| #define	AT_EUID		12	/* Effective uid. */ |  | ||||||
| #define	AT_GID		13	/* Real gid. */ |  | ||||||
| #define	AT_EGID		14	/* Effective gid. */ |  | ||||||
| #define	AT_EXECPATH	15	/* Path to the executable. */ |  | ||||||
| #define	AT_CANARY	16	/* Canary for SSP. */ |  | ||||||
| #define	AT_CANARYLEN	17	/* Length of the canary. */ |  | ||||||
| #define	AT_OSRELDATE	18	/* OSRELDATE. */ |  | ||||||
| #define	AT_NCPUS	19	/* Number of CPUs. */ |  | ||||||
| #define	AT_PAGESIZES	20	/* Pagesizes. */ |  | ||||||
| #define	AT_PAGESIZESLEN	21	/* Number of pagesizes. */ |  | ||||||
| #define	AT_STACKPROT	23	/* Initial stack protection. */ |  | ||||||
|  |  | ||||||
| #define	AT_COUNT	24	/* Count of defined aux entry types. */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Relocation types. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #define	R_386_COUNT	38	/* Count of defined relocation types. */ |  | ||||||
|  |  | ||||||
| /* Define "machine" characteristics */ |  | ||||||
| #define	ELF_TARG_CLASS	ELFCLASS32 |  | ||||||
| #define	ELF_TARG_DATA	ELFDATA2LSB |  | ||||||
| #define	ELF_TARG_MACH	EM_386 |  | ||||||
| #define	ELF_TARG_VER	1 |  | ||||||
|  |  | ||||||
| #define	ET_DYN_LOAD_ADDR 0x01001000 |  | ||||||
|  |  | ||||||
| #endif /* !_MACHINE_ELF_H_ */ |  | ||||||
| @@ -1,41 +0,0 @@ | |||||||
| /*- |  | ||||||
|  * Copyright (c) 2001 David E. O'Brien. |  | ||||||
|  * All rights reserved. |  | ||||||
|  * |  | ||||||
|  * Redistribution and use in source and binary forms, with or without |  | ||||||
|  * modification, are permitted provided that the following conditions |  | ||||||
|  * are met: |  | ||||||
|  * 1. Redistributions of source code must retain the above copyright |  | ||||||
|  *    notice, this list of conditions and the following disclaimer. |  | ||||||
|  * 2. Redistributions in binary form must reproduce the above copyright |  | ||||||
|  *    notice, this list of conditions and the following disclaimer in the |  | ||||||
|  *    documentation and/or other materials provided with the distribution. |  | ||||||
|  * |  | ||||||
|  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |  | ||||||
|  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |  | ||||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |  | ||||||
|  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |  | ||||||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |  | ||||||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |  | ||||||
|  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |  | ||||||
|  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |  | ||||||
|  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |  | ||||||
|  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |  | ||||||
|  * SUCH DAMAGE. |  | ||||||
|  * |  | ||||||
|  * $FreeBSD$ |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * This is a Solaris compatibility header |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_SYS_ELF_H_ |  | ||||||
| #define	_SYS_ELF_H_ |  | ||||||
|  |  | ||||||
| #include <sys/types.h> |  | ||||||
| #include <machine/elf.h> |  | ||||||
| #include <sys/elf32.h> |  | ||||||
| #include <sys/elf64.h> |  | ||||||
|  |  | ||||||
| #endif /* !_SYS_ELF_H_ */ |  | ||||||
| @@ -1,245 +0,0 @@ | |||||||
| /*- |  | ||||||
|  * Copyright (c) 1996-1998 John D. Polstra. |  | ||||||
|  * All rights reserved. |  | ||||||
|  * |  | ||||||
|  * Redistribution and use in source and binary forms, with or without |  | ||||||
|  * modification, are permitted provided that the following conditions |  | ||||||
|  * are met: |  | ||||||
|  * 1. Redistributions of source code must retain the above copyright |  | ||||||
|  *    notice, this list of conditions and the following disclaimer. |  | ||||||
|  * 2. Redistributions in binary form must reproduce the above copyright |  | ||||||
|  *    notice, this list of conditions and the following disclaimer in the |  | ||||||
|  *    documentation and/or other materials provided with the distribution. |  | ||||||
|  * |  | ||||||
|  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |  | ||||||
|  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |  | ||||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |  | ||||||
|  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |  | ||||||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |  | ||||||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |  | ||||||
|  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |  | ||||||
|  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |  | ||||||
|  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |  | ||||||
|  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |  | ||||||
|  * SUCH DAMAGE. |  | ||||||
|  * |  | ||||||
|  * $FreeBSD$ |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _SYS_ELF32_H_ |  | ||||||
| #define _SYS_ELF32_H_ 1 |  | ||||||
|  |  | ||||||
| #include <sys/elf_common.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * ELF definitions common to all 32-bit architectures. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef uint32_t	Elf32_Addr; |  | ||||||
| typedef uint16_t	Elf32_Half; |  | ||||||
| typedef uint32_t	Elf32_Off; |  | ||||||
| typedef int32_t		Elf32_Sword; |  | ||||||
| typedef uint32_t	Elf32_Word; |  | ||||||
| typedef uint64_t	Elf32_Lword; |  | ||||||
|  |  | ||||||
| typedef Elf32_Word	Elf32_Hashelt; |  | ||||||
|  |  | ||||||
| /* Non-standard class-dependent datatype used for abstraction. */ |  | ||||||
| typedef Elf32_Word	Elf32_Size; |  | ||||||
| typedef Elf32_Sword	Elf32_Ssize; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * ELF header. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	unsigned char	e_ident[EI_NIDENT];	/* File identification. */ |  | ||||||
| 	Elf32_Half	e_type;		/* File type. */ |  | ||||||
| 	Elf32_Half	e_machine;	/* Machine architecture. */ |  | ||||||
| 	Elf32_Word	e_version;	/* ELF format version. */ |  | ||||||
| 	Elf32_Addr	e_entry;	/* Entry point. */ |  | ||||||
| 	Elf32_Off	e_phoff;	/* Program header file offset. */ |  | ||||||
| 	Elf32_Off	e_shoff;	/* Section header file offset. */ |  | ||||||
| 	Elf32_Word	e_flags;	/* Architecture-specific flags. */ |  | ||||||
| 	Elf32_Half	e_ehsize;	/* Size of ELF header in bytes. */ |  | ||||||
| 	Elf32_Half	e_phentsize;	/* Size of program header entry. */ |  | ||||||
| 	Elf32_Half	e_phnum;	/* Number of program header entries. */ |  | ||||||
| 	Elf32_Half	e_shentsize;	/* Size of section header entry. */ |  | ||||||
| 	Elf32_Half	e_shnum;	/* Number of section header entries. */ |  | ||||||
| 	Elf32_Half	e_shstrndx;	/* Section name strings section. */ |  | ||||||
| } Elf32_Ehdr; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Section header. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	Elf32_Word	sh_name;	/* Section name (index into the |  | ||||||
| 					   section header string table). */ |  | ||||||
| 	Elf32_Word	sh_type;	/* Section type. */ |  | ||||||
| 	Elf32_Word	sh_flags;	/* Section flags. */ |  | ||||||
| 	Elf32_Addr	sh_addr;	/* Address in memory image. */ |  | ||||||
| 	Elf32_Off	sh_offset;	/* Offset in file. */ |  | ||||||
| 	Elf32_Word	sh_size;	/* Size in bytes. */ |  | ||||||
| 	Elf32_Word	sh_link;	/* Index of a related section. */ |  | ||||||
| 	Elf32_Word	sh_info;	/* Depends on section type. */ |  | ||||||
| 	Elf32_Word	sh_addralign;	/* Alignment in bytes. */ |  | ||||||
| 	Elf32_Word	sh_entsize;	/* Size of each entry in section. */ |  | ||||||
| } Elf32_Shdr; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Program header. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	Elf32_Word	p_type;		/* Entry type. */ |  | ||||||
| 	Elf32_Off	p_offset;	/* File offset of contents. */ |  | ||||||
| 	Elf32_Addr	p_vaddr;	/* Virtual address in memory image. */ |  | ||||||
| 	Elf32_Addr	p_paddr;	/* Physical address (not used). */ |  | ||||||
| 	Elf32_Word	p_filesz;	/* Size of contents in file. */ |  | ||||||
| 	Elf32_Word	p_memsz;	/* Size of contents in memory. */ |  | ||||||
| 	Elf32_Word	p_flags;	/* Access permission flags. */ |  | ||||||
| 	Elf32_Word	p_align;	/* Alignment in memory and file. */ |  | ||||||
| } Elf32_Phdr; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Dynamic structure.  The ".dynamic" section contains an array of them. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	Elf32_Sword	d_tag;		/* Entry type. */ |  | ||||||
| 	union { |  | ||||||
| 		Elf32_Word	d_val;	/* Integer value. */ |  | ||||||
| 		Elf32_Addr	d_ptr;	/* Address value. */ |  | ||||||
| 	} d_un; |  | ||||||
| } Elf32_Dyn; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Relocation entries. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* Relocations that don't need an addend field. */ |  | ||||||
| typedef struct { |  | ||||||
| 	Elf32_Addr	r_offset;	/* Location to be relocated. */ |  | ||||||
| 	Elf32_Word	r_info;		/* Relocation type and symbol index. */ |  | ||||||
| } Elf32_Rel; |  | ||||||
|  |  | ||||||
| /* Relocations that need an addend field. */ |  | ||||||
| typedef struct { |  | ||||||
| 	Elf32_Addr	r_offset;	/* Location to be relocated. */ |  | ||||||
| 	Elf32_Word	r_info;		/* Relocation type and symbol index. */ |  | ||||||
| 	Elf32_Sword	r_addend;	/* Addend. */ |  | ||||||
| } Elf32_Rela; |  | ||||||
|  |  | ||||||
| /* Macros for accessing the fields of r_info. */ |  | ||||||
| #define ELF32_R_SYM(info)	((info) >> 8) |  | ||||||
| #define ELF32_R_TYPE(info)	((unsigned char)(info)) |  | ||||||
|  |  | ||||||
| /* Macro for constructing r_info from field values. */ |  | ||||||
| #define ELF32_R_INFO(sym, type)	(((sym) << 8) + (unsigned char)(type)) |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  *	Note entry header |  | ||||||
|  */ |  | ||||||
| typedef Elf_Note Elf32_Nhdr; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  *	Move entry |  | ||||||
|  */ |  | ||||||
| typedef struct { |  | ||||||
| 	Elf32_Lword	m_value;	/* symbol value */ |  | ||||||
| 	Elf32_Word 	m_info;		/* size + index */ |  | ||||||
| 	Elf32_Word	m_poffset;	/* symbol offset */ |  | ||||||
| 	Elf32_Half	m_repeat;	/* repeat count */ |  | ||||||
| 	Elf32_Half	m_stride;	/* stride info */ |  | ||||||
| } Elf32_Move; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  *	The macros compose and decompose values for Move.r_info |  | ||||||
|  * |  | ||||||
|  *	sym = ELF32_M_SYM(M.m_info) |  | ||||||
|  *	size = ELF32_M_SIZE(M.m_info) |  | ||||||
|  *	M.m_info = ELF32_M_INFO(sym, size) |  | ||||||
|  */ |  | ||||||
| #define	ELF32_M_SYM(info)	((info)>>8) |  | ||||||
| #define	ELF32_M_SIZE(info)	((unsigned char)(info)) |  | ||||||
| #define	ELF32_M_INFO(sym, size)	(((sym)<<8)+(unsigned char)(size)) |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  *	Hardware/Software capabilities entry |  | ||||||
|  */ |  | ||||||
| typedef struct { |  | ||||||
| 	Elf32_Word	c_tag;		/* how to interpret value */ |  | ||||||
| 	union { |  | ||||||
| 		Elf32_Word	c_val; |  | ||||||
| 		Elf32_Addr	c_ptr; |  | ||||||
| 	} c_un; |  | ||||||
| } Elf32_Cap; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Symbol table entries. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	Elf32_Word	st_name;	/* String table index of name. */ |  | ||||||
| 	Elf32_Addr	st_value;	/* Symbol value. */ |  | ||||||
| 	Elf32_Word	st_size;	/* Size of associated object. */ |  | ||||||
| 	unsigned char	st_info;	/* Type and binding information. */ |  | ||||||
| 	unsigned char	st_other;	/* Reserved (not used). */ |  | ||||||
| 	Elf32_Half	st_shndx;	/* Section index of symbol. */ |  | ||||||
| } Elf32_Sym; |  | ||||||
|  |  | ||||||
| /* Macros for accessing the fields of st_info. */ |  | ||||||
| #define ELF32_ST_BIND(info)		((info) >> 4) |  | ||||||
| #define ELF32_ST_TYPE(info)		((info) & 0xf) |  | ||||||
|  |  | ||||||
| /* Macro for constructing st_info from field values. */ |  | ||||||
| #define ELF32_ST_INFO(bind, type)	(((bind) << 4) + ((type) & 0xf)) |  | ||||||
|  |  | ||||||
| /* Macro for accessing the fields of st_other. */ |  | ||||||
| #define ELF32_ST_VISIBILITY(oth)	((oth) & 0x3) |  | ||||||
|  |  | ||||||
| /* Structures used by Sun & GNU symbol versioning. */ |  | ||||||
| typedef struct |  | ||||||
| { |  | ||||||
| 	Elf32_Half	vd_version; |  | ||||||
| 	Elf32_Half	vd_flags; |  | ||||||
| 	Elf32_Half	vd_ndx; |  | ||||||
| 	Elf32_Half	vd_cnt; |  | ||||||
| 	Elf32_Word	vd_hash; |  | ||||||
| 	Elf32_Word	vd_aux; |  | ||||||
| 	Elf32_Word	vd_next; |  | ||||||
| } Elf32_Verdef; |  | ||||||
|  |  | ||||||
| typedef struct |  | ||||||
| { |  | ||||||
| 	Elf32_Word	vda_name; |  | ||||||
| 	Elf32_Word	vda_next; |  | ||||||
| } Elf32_Verdaux; |  | ||||||
|  |  | ||||||
| typedef struct |  | ||||||
| { |  | ||||||
| 	Elf32_Half	vn_version; |  | ||||||
| 	Elf32_Half	vn_cnt; |  | ||||||
| 	Elf32_Word	vn_file; |  | ||||||
| 	Elf32_Word	vn_aux; |  | ||||||
| 	Elf32_Word	vn_next; |  | ||||||
| } Elf32_Verneed; |  | ||||||
|  |  | ||||||
| typedef struct |  | ||||||
| { |  | ||||||
| 	Elf32_Word	vna_hash; |  | ||||||
| 	Elf32_Half	vna_flags; |  | ||||||
| 	Elf32_Half	vna_other; |  | ||||||
| 	Elf32_Word	vna_name; |  | ||||||
| 	Elf32_Word	vna_next; |  | ||||||
| } Elf32_Vernaux; |  | ||||||
|  |  | ||||||
| typedef Elf32_Half Elf32_Versym; |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	Elf32_Half	si_boundto;	/* direct bindings - symbol bound to */ |  | ||||||
| 	Elf32_Half	si_flags;	/* per symbol flags */ |  | ||||||
| } Elf32_Syminfo; |  | ||||||
|  |  | ||||||
| #endif /* !_SYS_ELF32_H_ */ |  | ||||||
| @@ -1,248 +0,0 @@ | |||||||
| /*- |  | ||||||
|  * Copyright (c) 1996-1998 John D. Polstra. |  | ||||||
|  * All rights reserved. |  | ||||||
|  * |  | ||||||
|  * Redistribution and use in source and binary forms, with or without |  | ||||||
|  * modification, are permitted provided that the following conditions |  | ||||||
|  * are met: |  | ||||||
|  * 1. Redistributions of source code must retain the above copyright |  | ||||||
|  *    notice, this list of conditions and the following disclaimer. |  | ||||||
|  * 2. Redistributions in binary form must reproduce the above copyright |  | ||||||
|  *    notice, this list of conditions and the following disclaimer in the |  | ||||||
|  *    documentation and/or other materials provided with the distribution. |  | ||||||
|  * |  | ||||||
|  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |  | ||||||
|  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |  | ||||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |  | ||||||
|  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |  | ||||||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |  | ||||||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |  | ||||||
|  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |  | ||||||
|  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |  | ||||||
|  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |  | ||||||
|  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |  | ||||||
|  * SUCH DAMAGE. |  | ||||||
|  * |  | ||||||
|  * $FreeBSD$ |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _SYS_ELF64_H_ |  | ||||||
| #define _SYS_ELF64_H_ 1 |  | ||||||
|  |  | ||||||
| #include <sys/elf_common.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * ELF definitions common to all 64-bit architectures. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef uint64_t	Elf64_Addr; |  | ||||||
| typedef uint16_t	Elf64_Half; |  | ||||||
| typedef uint64_t	Elf64_Off; |  | ||||||
| typedef int32_t		Elf64_Sword; |  | ||||||
| typedef int64_t		Elf64_Sxword; |  | ||||||
| typedef uint32_t	Elf64_Word; |  | ||||||
| typedef uint64_t	Elf64_Lword; |  | ||||||
| typedef uint64_t	Elf64_Xword; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Types of dynamic symbol hash table bucket and chain elements. |  | ||||||
|  * |  | ||||||
|  * This is inconsistent among 64 bit architectures, so a machine dependent |  | ||||||
|  * typedef is required. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef Elf64_Word	Elf64_Hashelt; |  | ||||||
|  |  | ||||||
| /* Non-standard class-dependent datatype used for abstraction. */ |  | ||||||
| typedef Elf64_Xword	Elf64_Size; |  | ||||||
| typedef Elf64_Sxword	Elf64_Ssize; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * ELF header. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	unsigned char	e_ident[EI_NIDENT];	/* File identification. */ |  | ||||||
| 	Elf64_Half	e_type;		/* File type. */ |  | ||||||
| 	Elf64_Half	e_machine;	/* Machine architecture. */ |  | ||||||
| 	Elf64_Word	e_version;	/* ELF format version. */ |  | ||||||
| 	Elf64_Addr	e_entry;	/* Entry point. */ |  | ||||||
| 	Elf64_Off	e_phoff;	/* Program header file offset. */ |  | ||||||
| 	Elf64_Off	e_shoff;	/* Section header file offset. */ |  | ||||||
| 	Elf64_Word	e_flags;	/* Architecture-specific flags. */ |  | ||||||
| 	Elf64_Half	e_ehsize;	/* Size of ELF header in bytes. */ |  | ||||||
| 	Elf64_Half	e_phentsize;	/* Size of program header entry. */ |  | ||||||
| 	Elf64_Half	e_phnum;	/* Number of program header entries. */ |  | ||||||
| 	Elf64_Half	e_shentsize;	/* Size of section header entry. */ |  | ||||||
| 	Elf64_Half	e_shnum;	/* Number of section header entries. */ |  | ||||||
| 	Elf64_Half	e_shstrndx;	/* Section name strings section. */ |  | ||||||
| } Elf64_Ehdr; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Section header. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	Elf64_Word	sh_name;	/* Section name (index into the |  | ||||||
| 					   section header string table). */ |  | ||||||
| 	Elf64_Word	sh_type;	/* Section type. */ |  | ||||||
| 	Elf64_Xword	sh_flags;	/* Section flags. */ |  | ||||||
| 	Elf64_Addr	sh_addr;	/* Address in memory image. */ |  | ||||||
| 	Elf64_Off	sh_offset;	/* Offset in file. */ |  | ||||||
| 	Elf64_Xword	sh_size;	/* Size in bytes. */ |  | ||||||
| 	Elf64_Word	sh_link;	/* Index of a related section. */ |  | ||||||
| 	Elf64_Word	sh_info;	/* Depends on section type. */ |  | ||||||
| 	Elf64_Xword	sh_addralign;	/* Alignment in bytes. */ |  | ||||||
| 	Elf64_Xword	sh_entsize;	/* Size of each entry in section. */ |  | ||||||
| } Elf64_Shdr; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Program header. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	Elf64_Word	p_type;		/* Entry type. */ |  | ||||||
| 	Elf64_Word	p_flags;	/* Access permission flags. */ |  | ||||||
| 	Elf64_Off	p_offset;	/* File offset of contents. */ |  | ||||||
| 	Elf64_Addr	p_vaddr;	/* Virtual address in memory image. */ |  | ||||||
| 	Elf64_Addr	p_paddr;	/* Physical address (not used). */ |  | ||||||
| 	Elf64_Xword	p_filesz;	/* Size of contents in file. */ |  | ||||||
| 	Elf64_Xword	p_memsz;	/* Size of contents in memory. */ |  | ||||||
| 	Elf64_Xword	p_align;	/* Alignment in memory and file. */ |  | ||||||
| } Elf64_Phdr; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Dynamic structure.  The ".dynamic" section contains an array of them. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	Elf64_Sxword	d_tag;		/* Entry type. */ |  | ||||||
| 	union { |  | ||||||
| 		Elf64_Xword	d_val;	/* Integer value. */ |  | ||||||
| 		Elf64_Addr	d_ptr;	/* Address value. */ |  | ||||||
| 	} d_un; |  | ||||||
| } Elf64_Dyn; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Relocation entries. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* Relocations that don't need an addend field. */ |  | ||||||
| typedef struct { |  | ||||||
| 	Elf64_Addr	r_offset;	/* Location to be relocated. */ |  | ||||||
| 	Elf64_Xword	r_info;		/* Relocation type and symbol index. */ |  | ||||||
| } Elf64_Rel; |  | ||||||
|  |  | ||||||
| /* Relocations that need an addend field. */ |  | ||||||
| typedef struct { |  | ||||||
| 	Elf64_Addr	r_offset;	/* Location to be relocated. */ |  | ||||||
| 	Elf64_Xword	r_info;		/* Relocation type and symbol index. */ |  | ||||||
| 	Elf64_Sxword	r_addend;	/* Addend. */ |  | ||||||
| } Elf64_Rela; |  | ||||||
|  |  | ||||||
| /* Macros for accessing the fields of r_info. */ |  | ||||||
| #define	ELF64_R_SYM(info)	((info) >> 32) |  | ||||||
| #define	ELF64_R_TYPE(info)	((info) & 0xffffffffL) |  | ||||||
|  |  | ||||||
| /* Macro for constructing r_info from field values. */ |  | ||||||
| #define	ELF64_R_INFO(sym, type)	(((sym) << 32) + ((type) & 0xffffffffL)) |  | ||||||
|  |  | ||||||
| #define	ELF64_R_TYPE_DATA(info)	(((Elf64_Xword)(info)<<32)>>40) |  | ||||||
| #define	ELF64_R_TYPE_ID(info)	(((Elf64_Xword)(info)<<56)>>56) |  | ||||||
| #define	ELF64_R_TYPE_INFO(data, type)	\ |  | ||||||
| 				(((Elf64_Xword)(data)<<8)+(Elf64_Xword)(type)) |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  *	Note entry header |  | ||||||
|  */ |  | ||||||
| typedef Elf_Note Elf64_Nhdr; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  *	Move entry |  | ||||||
|  */ |  | ||||||
| typedef struct { |  | ||||||
| 	Elf64_Lword	m_value;	/* symbol value */ |  | ||||||
| 	Elf64_Xword 	m_info;		/* size + index */ |  | ||||||
| 	Elf64_Xword	m_poffset;	/* symbol offset */ |  | ||||||
| 	Elf64_Half	m_repeat;	/* repeat count */ |  | ||||||
| 	Elf64_Half	m_stride;	/* stride info */ |  | ||||||
| } Elf64_Move; |  | ||||||
|  |  | ||||||
| #define	ELF64_M_SYM(info)	((info)>>8) |  | ||||||
| #define	ELF64_M_SIZE(info)	((unsigned char)(info)) |  | ||||||
| #define	ELF64_M_INFO(sym, size)	(((sym)<<8)+(unsigned char)(size)) |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  *	Hardware/Software capabilities entry |  | ||||||
|  */ |  | ||||||
| typedef struct { |  | ||||||
| 	Elf64_Xword	c_tag;		/* how to interpret value */ |  | ||||||
| 	union { |  | ||||||
| 		Elf64_Xword	c_val; |  | ||||||
| 		Elf64_Addr	c_ptr; |  | ||||||
| 	} c_un; |  | ||||||
| } Elf64_Cap; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Symbol table entries. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	Elf64_Word	st_name;	/* String table index of name. */ |  | ||||||
| 	unsigned char	st_info;	/* Type and binding information. */ |  | ||||||
| 	unsigned char	st_other;	/* Reserved (not used). */ |  | ||||||
| 	Elf64_Half	st_shndx;	/* Section index of symbol. */ |  | ||||||
| 	Elf64_Addr	st_value;	/* Symbol value. */ |  | ||||||
| 	Elf64_Xword	st_size;	/* Size of associated object. */ |  | ||||||
| } Elf64_Sym; |  | ||||||
|  |  | ||||||
| /* Macros for accessing the fields of st_info. */ |  | ||||||
| #define	ELF64_ST_BIND(info)		((info) >> 4) |  | ||||||
| #define	ELF64_ST_TYPE(info)		((info) & 0xf) |  | ||||||
|  |  | ||||||
| /* Macro for constructing st_info from field values. */ |  | ||||||
| #define	ELF64_ST_INFO(bind, type)	(((bind) << 4) + ((type) & 0xf)) |  | ||||||
|  |  | ||||||
| /* Macro for accessing the fields of st_other. */ |  | ||||||
| #define	ELF64_ST_VISIBILITY(oth)	((oth) & 0x3) |  | ||||||
|  |  | ||||||
| /* Structures used by Sun & GNU-style symbol versioning. */ |  | ||||||
| typedef struct { |  | ||||||
| 	Elf64_Half	vd_version; |  | ||||||
| 	Elf64_Half	vd_flags; |  | ||||||
| 	Elf64_Half	vd_ndx; |  | ||||||
| 	Elf64_Half	vd_cnt; |  | ||||||
| 	Elf64_Word	vd_hash; |  | ||||||
| 	Elf64_Word	vd_aux; |  | ||||||
| 	Elf64_Word	vd_next; |  | ||||||
| } Elf64_Verdef; |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	Elf64_Word	vda_name; |  | ||||||
| 	Elf64_Word	vda_next; |  | ||||||
| } Elf64_Verdaux; |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	Elf64_Half	vn_version; |  | ||||||
| 	Elf64_Half	vn_cnt; |  | ||||||
| 	Elf64_Word	vn_file; |  | ||||||
| 	Elf64_Word	vn_aux; |  | ||||||
| 	Elf64_Word	vn_next; |  | ||||||
| } Elf64_Verneed; |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	Elf64_Word	vna_hash; |  | ||||||
| 	Elf64_Half	vna_flags; |  | ||||||
| 	Elf64_Half	vna_other; |  | ||||||
| 	Elf64_Word	vna_name; |  | ||||||
| 	Elf64_Word	vna_next; |  | ||||||
| } Elf64_Vernaux; |  | ||||||
|  |  | ||||||
| typedef Elf64_Half Elf64_Versym; |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	Elf64_Half	si_boundto;	/* direct bindings - symbol bound to */ |  | ||||||
| 	Elf64_Half	si_flags;	/* per symbol flags */ |  | ||||||
| } Elf64_Syminfo; |  | ||||||
|  |  | ||||||
| #endif /* !_SYS_ELF64_H_ */ |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,88 +0,0 @@ | |||||||
| /*- |  | ||||||
|  * Copyright (c) 1998 John D. Polstra. |  | ||||||
|  * All rights reserved. |  | ||||||
|  * |  | ||||||
|  * Redistribution and use in source and binary forms, with or without |  | ||||||
|  * modification, are permitted provided that the following conditions |  | ||||||
|  * are met: |  | ||||||
|  * 1. Redistributions of source code must retain the above copyright |  | ||||||
|  *    notice, this list of conditions and the following disclaimer. |  | ||||||
|  * 2. Redistributions in binary form must reproduce the above copyright |  | ||||||
|  *    notice, this list of conditions and the following disclaimer in the |  | ||||||
|  *    documentation and/or other materials provided with the distribution. |  | ||||||
|  * |  | ||||||
|  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |  | ||||||
|  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |  | ||||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |  | ||||||
|  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |  | ||||||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |  | ||||||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |  | ||||||
|  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |  | ||||||
|  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |  | ||||||
|  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |  | ||||||
|  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |  | ||||||
|  * SUCH DAMAGE. |  | ||||||
|  * |  | ||||||
|  * $FreeBSD$ |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _SYS_ELF_GENERIC_H_ |  | ||||||
| #define	_SYS_ELF_GENERIC_H_ 1 |  | ||||||
|  |  | ||||||
| #include <sys/cdefs.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Definitions of generic ELF names which relieve applications from |  | ||||||
|  * needing to know the word size. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #if __ELF_WORD_SIZE != 32 && __ELF_WORD_SIZE != 64 |  | ||||||
| #error "__ELF_WORD_SIZE must be defined as 32 or 64" |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #define	ELF_CLASS	__CONCAT(ELFCLASS,__ELF_WORD_SIZE) |  | ||||||
|  |  | ||||||
| #if BYTE_ORDER == LITTLE_ENDIAN |  | ||||||
| #define	ELF_DATA	ELFDATA2LSB |  | ||||||
| #elif BYTE_ORDER == BIG_ENDIAN |  | ||||||
| #define	ELF_DATA	ELFDATA2MSB |  | ||||||
| #else |  | ||||||
| #error "Unknown byte order" |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #define	__elfN(x)	__CONCAT(__CONCAT(__CONCAT(elf,__ELF_WORD_SIZE),_),x) |  | ||||||
| #define	__ElfN(x)	__CONCAT(__CONCAT(__CONCAT(Elf,__ELF_WORD_SIZE),_),x) |  | ||||||
| #define	__ELFN(x)	__CONCAT(__CONCAT(__CONCAT(ELF,__ELF_WORD_SIZE),_),x) |  | ||||||
| #define	__ElfType(x)	typedef __ElfN(x) __CONCAT(Elf_,x) |  | ||||||
|  |  | ||||||
| __ElfType(Addr); |  | ||||||
| __ElfType(Half); |  | ||||||
| __ElfType(Off); |  | ||||||
| __ElfType(Sword); |  | ||||||
| __ElfType(Word); |  | ||||||
| __ElfType(Ehdr); |  | ||||||
| __ElfType(Shdr); |  | ||||||
| __ElfType(Phdr); |  | ||||||
| __ElfType(Dyn); |  | ||||||
| __ElfType(Rel); |  | ||||||
| __ElfType(Rela); |  | ||||||
| __ElfType(Sym); |  | ||||||
| __ElfType(Verdef); |  | ||||||
| __ElfType(Verdaux); |  | ||||||
| __ElfType(Verneed); |  | ||||||
| __ElfType(Vernaux); |  | ||||||
| __ElfType(Versym); |  | ||||||
|  |  | ||||||
| /* Non-standard ELF types. */ |  | ||||||
| __ElfType(Hashelt); |  | ||||||
| __ElfType(Size); |  | ||||||
| __ElfType(Ssize); |  | ||||||
|  |  | ||||||
| #define	ELF_R_SYM	__ELFN(R_SYM) |  | ||||||
| #define	ELF_R_TYPE	__ELFN(R_TYPE) |  | ||||||
| #define	ELF_R_INFO	__ELFN(R_INFO) |  | ||||||
| #define	ELF_ST_BIND	__ELFN(ST_BIND) |  | ||||||
| #define	ELF_ST_TYPE	__ELFN(ST_TYPE) |  | ||||||
| #define	ELF_ST_INFO	__ELFN(ST_INFO) |  | ||||||
|  |  | ||||||
| #endif /* !_SYS_ELF_GENERIC_H_ */ |  | ||||||
		Reference in New Issue
	
	Block a user