[malta] add a MIPS Malta target to be used with qemu
[openwrt.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 */