1 /* 2 * Copyright (C) 2008 The Android Open Source Project 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * * Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * * Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in 12 * the documentation and/or other materials provided with the 13 * distribution. 14 * 15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 18 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 19 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 21 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 22 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 23 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 25 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * SUCH DAMAGE. 27 */ 28 #ifndef _ELF_H 29 #define _ELF_H 30 31 #include <linux/auxvec.h> 32 #include <linux/elf.h> 33 #include <linux/elf-em.h> 34 35 #include <machine/elf_machdep.h> 36 37 typedef struct { 38 __u32 a_type; 39 union { 40 __u32 a_val; 41 } a_un; 42 } Elf32_auxv_t; 43 44 typedef struct { 45 __u64 a_type; 46 union { 47 __u64 a_val; 48 } a_un; 49 } Elf64_auxv_t; 50 51 #define DF_ORIGIN 0x00000001 52 #define DF_SYMBOLIC 0x00000002 53 #define DF_TEXTREL 0x00000004 54 #define DF_BIND_NOW 0x00000008 55 #define DF_STATIC_TLS 0x00000010 56 57 #define DT_BIND_NOW 24 58 #define DT_INIT_ARRAY 25 59 #define DT_FINI_ARRAY 26 60 #define DT_INIT_ARRAYSZ 27 61 #define DT_FINI_ARRAYSZ 28 62 #define DT_RUNPATH 29 63 #define DT_FLAGS 30 64 /* glibc and BSD disagree for DT_ENCODING; glibc looks wrong. */ 65 #define DT_PREINIT_ARRAY 32 66 #define DT_PREINIT_ARRAYSZ 33 67 68 #define ELFOSABI_SYSV 0 /* Synonym for ELFOSABI_NONE used by valgrind. */ 69 70 #define EM_ARM 40 71 #define EM_AARCH64 183 72 73 #define PT_GNU_RELRO 0x6474e552 74 75 #define STB_LOOS 10 76 #define STB_HIOS 12 77 #define STB_LOPROC 13 78 #define STB_HIPROC 15 79 80 #define STT_LOOS 10 81 #define STT_HIOS 12 82 #define STT_LOPROC 13 83 #define STT_HIPROC 15 84 85 #endif /* _ELF_H */ 86