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 37typedef struct { 38 __u32 a_type; 39 union { 40 __u32 a_val; 41 } a_un; 42} Elf32_auxv_t; 43 44typedef 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 PT_GNU_RELRO 0x6474e552 71 72#define STB_LOOS 10 73#define STB_HIOS 12 74#define STB_LOPROC 13 75#define STB_HIPROC 15 76 77#define STT_LOOS 10 78#define STT_HIOS 12 79#define STT_LOPROC 13 80#define STT_HIPROC 15 81 82#endif /* _ELF_H */ 83