mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			80 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From a05af27aec00eacf533ff111ba8eb3dec328d9af Mon Sep 17 00:00:00 2001
 | |
| From: Kurt Mahan <kmahan@freescale.com>
 | |
| Date: Thu, 22 May 2008 11:20:53 -0600
 | |
| Subject: [PATCH] Initial vDSO header changes.
 | |
| 
 | |
| LTIBName: mcfv4e-vdso-headers
 | |
| Signed-off-by: Kurt Mahan <kmahan@freescale.com>
 | |
| ---
 | |
|  include/asm-m68k/auxvec.h |    9 +++++++++
 | |
|  include/asm-m68k/elf.h    |   31 +++++++++++++++++++++++++++++++
 | |
|  include/asm-m68k/page.h   |    5 +++++
 | |
|  3 files changed, 45 insertions(+), 0 deletions(-)
 | |
| 
 | |
| --- a/include/asm-m68k/auxvec.h
 | |
| +++ b/include/asm-m68k/auxvec.h
 | |
| @@ -1,4 +1,13 @@
 | |
|  #ifndef __ASMm68k_AUXVEC_H
 | |
|  #define __ASMm68k_AUXVEC_H
 | |
| +/*
 | |
| + * Architecture-neutral AT_ values in 0-17, leave some room
 | |
| + * for more of them.
 | |
| + */
 | |
| +
 | |
| +#ifdef CONFIG_VSYSCALL
 | |
| +/* Entry point to the vsyscall page */
 | |
| +#define	AT_SYSINFO_EHDR		33
 | |
| +#endif
 | |
|  
 | |
|  #endif
 | |
| --- a/include/asm-m68k/elf.h
 | |
| +++ b/include/asm-m68k/elf.h
 | |
| @@ -136,4 +136,35 @@ typedef struct user_m68kfp_struct elf_fp
 | |
|  
 | |
|  #define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX)
 | |
|  
 | |
| +/*
 | |
| + * VDSO
 | |
| + */
 | |
| +#ifdef CONFIG_VSYSCALL
 | |
| +extern unsigned int vdso_enabled;
 | |
| +
 | |
| +#define	VDSO_BASE		((unsigned long)current->mm->context.vdso)
 | |
| +#define	VDSO_SYM(x)		(VDSO_BASE + (unsigned long)(x))
 | |
| +
 | |
| +#define	VSYSCALL_AUX_ENT					\
 | |
| +	if (vdso_enabled)					\
 | |
| +		NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_BASE);
 | |
| +
 | |
| +/* additional pages */
 | |
| +#define ARCH_HAS_SETUP_ADDITIONAL_PAGES	1
 | |
| +
 | |
| +struct linux_binprm;
 | |
| +extern int arch_setup_additional_pages(struct linux_binprm *bprm,
 | |
| +				       int executable_stack);
 | |
| +
 | |
| +#else
 | |
| +/* no VSYSCALL_AUX_ENT */
 | |
| +#define	VSYSCALL_AUX_ENT
 | |
| +#endif
 | |
| +
 | |
| +#define ARCH_DLINFO						\
 | |
| +do {								\
 | |
| +	/* vsyscall entry */					\
 | |
| +	VSYSCALL_AUX_ENT;					\
 | |
| +} while (0);
 | |
| +
 | |
|  #endif
 | |
| --- a/include/asm-m68k/page.h
 | |
| +++ b/include/asm-m68k/page.h
 | |
| @@ -252,4 +252,9 @@ static inline __attribute_const__ int __
 | |
|  
 | |
|  #include <asm-generic/page.h>
 | |
|  
 | |
| +#ifdef CONFIG_VSYSCALL
 | |
| +/* vDSO support */
 | |
| +#define __HAVE_ARCH_GATE_AREA
 | |
| +#endif
 | |
| +
 | |
|  #endif /* _M68K_PAGE_H */
 |