Go to the documentation of this file.
15 #ifndef _ASM_TILE_ELF_H
16 #define _ASM_TILE_ELF_H
24 #include <linux/ptrace.h>
25 #include <asm/byteorder.h>
30 #define ELF_NGREG (sizeof(struct pt_regs) / sizeof(elf_greg_t))
34 #define EM_TILEPRO 188
43 #define ELF_CLASS ELFCLASS64
45 #define ELF_CLASS ELFCLASS32
48 #define ELF_DATA ELFDATA2MSB
50 #define ELF_DATA ELFDATA2LSB
59 #define ELF_ARCH ELF_ARCH
64 #define elf_check_arch(x) \
65 ((x)->e_ident[EI_CLASS] == ELF_CLASS && \
66 (x)->e_ident[EI_DATA] == ELF_DATA && \
67 (x)->e_machine == CHIP_ELF_TYPE())
72 #define R_TILE_JOFFLONG_X1 15
73 #define R_TILE_IMM16_X0_LO 25
74 #define R_TILE_IMM16_X1_LO 26
75 #define R_TILE_IMM16_X0_HA 29
76 #define R_TILE_IMM16_X1_HA 30
79 #define R_TILEGX_JUMPOFF_X1 21
80 #define R_TILEGX_IMM16_X0_HW0 36
81 #define R_TILEGX_IMM16_X1_HW0 37
82 #define R_TILEGX_IMM16_X0_HW1 38
83 #define R_TILEGX_IMM16_X1_HW1 39
84 #define R_TILEGX_IMM16_X0_HW2_LAST 48
85 #define R_TILEGX_IMM16_X1_HW2_LAST 49
89 #define ELF_EXEC_PAGESIZE PAGE_SIZE
97 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
99 #define ELF_CORE_COPY_REGS(_dest, _regs) \
100 memcpy((char *) &_dest, (char *) _regs, \
101 sizeof(struct pt_regs));
104 #define ELF_CORE_COPY_FPREGS(t, fpu) 0
111 #define ELF_HWCAP (0)
118 #define ELF_PLATFORM (NULL)
122 #define ELF_PLAT_INIT(_r, load_addr) elf_plat_init(_r, load_addr)
125 #define ELF_CORE_COPY_TASK_REGS(tsk, elf_regs) dump_task_regs(tsk, elf_regs)
128 #define SET_PERSONALITY(ex) do { } while (0)
130 #define ARCH_HAS_SETUP_ADDITIONAL_PAGES
134 int executable_stack);
137 #define COMPAT_ELF_PLATFORM "tilegx-m32"
144 #define compat_elf_check_arch(x) \
145 ((x)->e_ident[EI_CLASS] == ELFCLASS32 && \
146 (x)->e_machine == CHIP_ELF_TYPE())
148 #define compat_start_thread(regs, ip, usp) do { \
149 regs->pc = ptr_to_compat_reg((void *)(ip)); \
150 regs->sp = ptr_to_compat_reg((void *)(usp)); \
156 #undef SET_PERSONALITY
157 #define SET_PERSONALITY(ex) \
159 set_personality(PER_LINUX | (current->personality & (~PER_MASK))); \
160 current_thread_info()->status &= ~TS_COMPAT; \
162 #define COMPAT_SET_PERSONALITY(ex) \
164 set_personality(PER_LINUX | (current->personality & (~PER_MASK))); \
165 current_thread_info()->status |= TS_COMPAT; \
168 #define COMPAT_ELF_ET_DYN_BASE (0xffffffff / 3 * 2)