diff options
Diffstat (limited to 'include/asm-sh/elf.h')
| -rw-r--r-- | include/asm-sh/elf.h | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/include/asm-sh/elf.h b/include/asm-sh/elf.h index 1b63dfeea4f2..3a07ab40ac4d 100644 --- a/include/asm-sh/elf.h +++ b/include/asm-sh/elf.h | |||
| @@ -1,6 +1,11 @@ | |||
| 1 | #ifndef __ASM_SH_ELF_H | 1 | #ifndef __ASM_SH_ELF_H |
| 2 | #define __ASM_SH_ELF_H | 2 | #define __ASM_SH_ELF_H |
| 3 | 3 | ||
| 4 | #include <asm/processor.h> | ||
| 5 | #include <asm/auxvec.h> | ||
| 6 | #include <asm/ptrace.h> | ||
| 7 | #include <asm/user.h> | ||
| 8 | |||
| 4 | /* SH relocation types */ | 9 | /* SH relocation types */ |
| 5 | #define R_SH_NONE 0 | 10 | #define R_SH_NONE 0 |
| 6 | #define R_SH_DIR32 1 | 11 | #define R_SH_DIR32 1 |
| @@ -46,9 +51,6 @@ | |||
| 46 | * ELF register definitions.. | 51 | * ELF register definitions.. |
| 47 | */ | 52 | */ |
| 48 | 53 | ||
| 49 | #include <asm/ptrace.h> | ||
| 50 | #include <asm/user.h> | ||
| 51 | |||
| 52 | typedef unsigned long elf_greg_t; | 54 | typedef unsigned long elf_greg_t; |
| 53 | 55 | ||
| 54 | #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) | 56 | #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) |
| @@ -91,7 +93,7 @@ typedef struct user_fpu_struct elf_fpregset_t; | |||
| 91 | instruction set this CPU supports. This could be done in user space, | 93 | instruction set this CPU supports. This could be done in user space, |
| 92 | but it's not easy, and we've already done it here. */ | 94 | but it's not easy, and we've already done it here. */ |
| 93 | 95 | ||
| 94 | #define ELF_HWCAP (0) | 96 | #define ELF_HWCAP (boot_cpu_data.flags) |
| 95 | 97 | ||
| 96 | /* This yields a string that ld.so will use to load implementation | 98 | /* This yields a string that ld.so will use to load implementation |
| 97 | specific libraries for optimization. This is more specific in | 99 | specific libraries for optimization. This is more specific in |
| @@ -119,4 +121,24 @@ extern int dump_task_fpu (struct task_struct *, elf_fpregset_t *); | |||
| 119 | #define ELF_CORE_COPY_FPREGS(tsk, elf_fpregs) dump_task_fpu(tsk, elf_fpregs) | 121 | #define ELF_CORE_COPY_FPREGS(tsk, elf_fpregs) dump_task_fpu(tsk, elf_fpregs) |
| 120 | #endif | 122 | #endif |
| 121 | 123 | ||
| 124 | #ifdef CONFIG_VSYSCALL | ||
| 125 | /* vDSO has arch_setup_additional_pages */ | ||
| 126 | #define ARCH_HAS_SETUP_ADDITIONAL_PAGES | ||
| 127 | struct linux_binprm; | ||
| 128 | extern int arch_setup_additional_pages(struct linux_binprm *bprm, | ||
| 129 | int executable_stack); | ||
| 130 | |||
| 131 | extern unsigned int vdso_enabled; | ||
| 132 | extern void __kernel_vsyscall; | ||
| 133 | |||
| 134 | #define VDSO_BASE ((unsigned long)current->mm->context.vdso) | ||
| 135 | #define VDSO_SYM(x) (VDSO_BASE + (unsigned long)(x)) | ||
| 136 | |||
| 137 | #define ARCH_DLINFO \ | ||
| 138 | do { \ | ||
| 139 | if (vdso_enabled) \ | ||
| 140 | NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_BASE); \ | ||
| 141 | } while (0) | ||
| 142 | #endif /* CONFIG_VSYSCALL */ | ||
| 143 | |||
| 122 | #endif /* __ASM_SH_ELF_H */ | 144 | #endif /* __ASM_SH_ELF_H */ |
