2.6.31 support (WiP)
[openwrt/staging/chunkeey.git] / target / linux / coldfire / patches / 059-mcfv4e_vdso_headers.patch
1 From a05af27aec00eacf533ff111ba8eb3dec328d9af Mon Sep 17 00:00:00 2001
2 From: Kurt Mahan <kmahan@freescale.com>
3 Date: Thu, 22 May 2008 11:20:53 -0600
4 Subject: [PATCH] Initial vDSO header changes.
5
6 LTIBName: mcfv4e-vdso-headers
7 Signed-off-by: Kurt Mahan <kmahan@freescale.com>
8 ---
9 include/asm-m68k/auxvec.h | 9 +++++++++
10 include/asm-m68k/elf.h | 31 +++++++++++++++++++++++++++++++
11 include/asm-m68k/page.h | 5 +++++
12 3 files changed, 45 insertions(+), 0 deletions(-)
13
14 --- a/include/asm-m68k/auxvec.h
15 +++ b/include/asm-m68k/auxvec.h
16 @@ -1,4 +1,13 @@
17 #ifndef __ASMm68k_AUXVEC_H
18 #define __ASMm68k_AUXVEC_H
19 +/*
20 + * Architecture-neutral AT_ values in 0-17, leave some room
21 + * for more of them.
22 + */
23 +
24 +#ifdef CONFIG_VSYSCALL
25 +/* Entry point to the vsyscall page */
26 +#define AT_SYSINFO_EHDR 33
27 +#endif
28
29 #endif
30 --- a/include/asm-m68k/elf.h
31 +++ b/include/asm-m68k/elf.h
32 @@ -136,4 +136,35 @@ typedef struct user_m68kfp_struct elf_fp
33
34 #define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX)
35
36 +/*
37 + * VDSO
38 + */
39 +#ifdef CONFIG_VSYSCALL
40 +extern unsigned int vdso_enabled;
41 +
42 +#define VDSO_BASE ((unsigned long)current->mm->context.vdso)
43 +#define VDSO_SYM(x) (VDSO_BASE + (unsigned long)(x))
44 +
45 +#define VSYSCALL_AUX_ENT \
46 + if (vdso_enabled) \
47 + NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_BASE);
48 +
49 +/* additional pages */
50 +#define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
51 +
52 +struct linux_binprm;
53 +extern int arch_setup_additional_pages(struct linux_binprm *bprm,
54 + int executable_stack);
55 +
56 +#else
57 +/* no VSYSCALL_AUX_ENT */
58 +#define VSYSCALL_AUX_ENT
59 +#endif
60 +
61 +#define ARCH_DLINFO \
62 +do { \
63 + /* vsyscall entry */ \
64 + VSYSCALL_AUX_ENT; \
65 +} while (0);
66 +
67 #endif
68 --- a/include/asm-m68k/page.h
69 +++ b/include/asm-m68k/page.h
70 @@ -252,4 +252,9 @@ static inline __attribute_const__ int __
71
72 #include <asm-generic/page.h>
73
74 +#ifdef CONFIG_VSYSCALL
75 +/* vDSO support */
76 +#define __HAVE_ARCH_GATE_AREA
77 +#endif
78 +
79 #endif /* _M68K_PAGE_H */