#ifndef _ASM_X86_ELF_H
#define _ASM_X86_ELF_H
#include <linux/thread_info.h>
#include <asm/ia32.h>
#include <asm/ptrace.h>
#include <asm/user.h>
#include <asm/auxvec.h>
#include <asm/fsgsbase.h>
elf_greg_t;
#define ELF_NGREG …
elf_gregset_t;
elf_fpregset_t;
#ifdef __i386__
#define R_386_NONE …
#define R_386_32 …
#define R_386_PC32 …
#define R_386_GOT32 …
#define R_386_PLT32 …
#define R_386_COPY …
#define R_386_GLOB_DAT …
#define R_386_JMP_SLOT …
#define R_386_RELATIVE …
#define R_386_GOTOFF …
#define R_386_GOTPC …
#define R_386_NUM …
#define ELF_CLASS …
#define ELF_DATA …
#define ELF_ARCH …
#else
#define R_X86_64_NONE …
#define R_X86_64_64 …
#define R_X86_64_PC32 …
#define R_X86_64_GOT32 …
#define R_X86_64_PLT32 …
#define R_X86_64_COPY …
#define R_X86_64_GLOB_DAT …
#define R_X86_64_JUMP_SLOT …
#define R_X86_64_RELATIVE …
#define R_X86_64_GOTPCREL …
#define R_X86_64_32 …
#define R_X86_64_32S …
#define R_X86_64_16 …
#define R_X86_64_PC16 …
#define R_X86_64_8 …
#define R_X86_64_PC8 …
#define R_X86_64_PC64 …
#define ELF_CLASS …
#define ELF_DATA …
#define ELF_ARCH …
#endif
#include <asm/vdso.h>
#ifdef CONFIG_X86_64
extern unsigned int vdso64_enabled;
#endif
#if defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION)
extern unsigned int vdso32_enabled;
#endif
#define elf_check_arch_ia32(x) …
#include <asm/processor.h>
#ifdef CONFIG_X86_32
#include <asm/desc.h>
#define elf_check_arch …
#define ELF_PLAT_INIT …
#define ELF_CORE_COPY_REGS …
#define ELF_PLATFORM …
#define set_personality_64bit …
#else
#define elf_check_arch(x) …
#define compat_elf_check_arch(x) …
static inline void elf_common_init(struct thread_struct *t,
struct pt_regs *regs, const u16 ds)
{ … }
#define ELF_PLAT_INIT(_r, load_addr) …
#define COMPAT_ELF_PLAT_INIT(regs, load_addr) …
void compat_start_thread(struct pt_regs *regs, u32 new_ip, u32 new_sp, bool x32);
#define COMPAT_START_THREAD(ex, regs, new_ip, new_sp) …
void set_personality_ia32(bool);
#define COMPAT_SET_PERSONALITY(ex) …
#define COMPAT_ELF_PLATFORM …
#define ELF_CORE_COPY_REGS(pr_reg, regs) …
#define ELF_PLATFORM …
extern void set_personality_64bit(void);
extern int force_personality32;
#endif
#define CORE_DUMP_USE_REGSET
#define ELF_EXEC_PAGESIZE …
#define ELF_ET_DYN_BASE …
#define ELF_HWCAP …
extern u32 elf_hwcap2;
#define ELF_HWCAP2 …
#define SET_PERSONALITY(ex) …
#define elf_read_implies_exec(ex, executable_stack) …
struct task_struct;
#define ARCH_DLINFO_IA32 …
static inline int mmap_is_ia32(void)
{ … }
extern unsigned long task_size_32bit(void);
extern unsigned long task_size_64bit(int full_addr_space);
extern unsigned long get_mmap_base(int is_legacy);
extern bool mmap_address_hint_valid(unsigned long addr, unsigned long len);
extern unsigned long get_sigframe_size(void);
#ifdef CONFIG_X86_32
#define __STACK_RND_MASK …
#define STACK_RND_MASK …
#define ARCH_DLINFO …
#else
#define __STACK_RND_MASK(is32bit) …
#define STACK_RND_MASK …
#define ARCH_DLINFO …
#define ARCH_DLINFO_X32 …
#define AT_SYSINFO …
#define COMPAT_ARCH_DLINFO …
#define COMPAT_ELF_ET_DYN_BASE …
#endif
#define VDSO_CURRENT_BASE …
#define VDSO_ENTRY …
struct linux_binprm;
#define ARCH_HAS_SETUP_ADDITIONAL_PAGES …
extern int arch_setup_additional_pages(struct linux_binprm *bprm,
int uses_interp);
extern int compat_arch_setup_additional_pages(struct linux_binprm *bprm,
int uses_interp, bool x32);
#define COMPAT_ARCH_SETUP_ADDITIONAL_PAGES(bprm, ex, interpreter) …
extern bool arch_syscall_is_vdso_sigreturn(struct pt_regs *regs);
enum align_flags { … };
struct va_alignment { … } ____cacheline_aligned;
extern struct va_alignment va_align;
#endif