blob: e9d095e6c5519c7119b7a5acf5a1ee5913fcbc75 [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef __ASMARM_ELF_H
13#define __ASMARM_ELF_H
Ben Cheng4b29af02012-03-07 16:14:53 -080014
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080015#include <asm/ptrace.h>
16#include <asm/user.h>
17#ifdef __KERNEL
18#include <asm/procinfo.h>
19#endif
Ben Cheng4b29af02012-03-07 16:14:53 -080020
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080021typedef unsigned long elf_greg_t;
22typedef unsigned long elf_freg_t[3];
Ben Cheng4b29af02012-03-07 16:14:53 -080023
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080024#define EM_ARM 40
25#define EF_ARM_APCS26 0x08
26#define EF_ARM_SOFT_FLOAT 0x200
27#define EF_ARM_EABI_MASK 0xFF000000
Ben Cheng4b29af02012-03-07 16:14:53 -080028
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080029#define R_ARM_NONE 0
30#define R_ARM_PC24 1
31#define R_ARM_ABS32 2
32#define R_ARM_CALL 28
33#define R_ARM_JUMP24 29
Ben Cheng4b29af02012-03-07 16:14:53 -080034
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080035#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t))
36typedef elf_greg_t elf_gregset_t[ELF_NGREG];
Ben Cheng4b29af02012-03-07 16:14:53 -080037
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080038typedef struct user_fp elf_fpregset_t;
Ben Cheng4b29af02012-03-07 16:14:53 -080039
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080040#define elf_check_arch(x) ( ((x)->e_machine == EM_ARM) && (ELF_PROC_OK((x))) )
Ben Cheng4b29af02012-03-07 16:14:53 -080041
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080042#define ELF_CLASS ELFCLASS32
43#ifdef __ARMEB__
44#define ELF_DATA ELFDATA2MSB
45#else
46#define ELF_DATA ELFDATA2LSB
47#endif
48#define ELF_ARCH EM_ARM
Ben Cheng4b29af02012-03-07 16:14:53 -080049
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080050#define USE_ELF_CORE_DUMP
51#define ELF_EXEC_PAGESIZE 4096
Ben Cheng4b29af02012-03-07 16:14:53 -080052
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080053#define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3)
Ben Cheng4b29af02012-03-07 16:14:53 -080054
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080055#define ELF_PLAT_INIT(_r, load_addr) (_r)->ARM_r0 = 0
Ben Cheng4b29af02012-03-07 16:14:53 -080056
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080057#define ELF_HWCAP (elf_hwcap)
Ben Cheng4b29af02012-03-07 16:14:53 -080058
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080059#define ELF_PLATFORM_SIZE 8
Ben Cheng4b29af02012-03-07 16:14:53 -080060
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080061#define ELF_PLATFORM (elf_platform)
Ben Cheng4b29af02012-03-07 16:14:53 -080062
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080063#endif