Define the layout of the data structure shared between kernel and userspace. Track the vdso address in the mm_context; needed for communicating AT_SYSINFO_EHDR to the ELF loader. Add declarations for arm_install_vdso; implementation is in a following patch. Define AT_SYSINFO_EHDR, and, if CONFIG_VDSO=y, report the vdso shared object address via the ELF auxiliary vector. Note - this adds the AT_SYSINFO_EHDR in a new user-visible header asm/auxvec.h; this is consistent with other architectures. Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
		
			
				
	
	
		
			41 lines
		
	
	
		
			694 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			694 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __ARM_MMU_H
 | |
| #define __ARM_MMU_H
 | |
| 
 | |
| #ifdef CONFIG_MMU
 | |
| 
 | |
| typedef struct {
 | |
| #ifdef CONFIG_CPU_HAS_ASID
 | |
| 	atomic64_t	id;
 | |
| #else
 | |
| 	int		switch_pending;
 | |
| #endif
 | |
| 	unsigned int	vmalloc_seq;
 | |
| 	unsigned long	sigpage;
 | |
| #ifdef CONFIG_VDSO
 | |
| 	unsigned long	vdso;
 | |
| #endif
 | |
| } mm_context_t;
 | |
| 
 | |
| #ifdef CONFIG_CPU_HAS_ASID
 | |
| #define ASID_BITS	8
 | |
| #define ASID_MASK	((~0ULL) << ASID_BITS)
 | |
| #define ASID(mm)	((unsigned int)((mm)->context.id.counter & ~ASID_MASK))
 | |
| #else
 | |
| #define ASID(mm)	(0)
 | |
| #endif
 | |
| 
 | |
| #else
 | |
| 
 | |
| /*
 | |
|  * From nommu.h:
 | |
|  *  Copyright (C) 2002, David McCullough <davidm@snapgear.com>
 | |
|  *  modified for 2.6 by Hyok S. Choi <hyok.choi@samsung.com>
 | |
|  */
 | |
| typedef struct {
 | |
| 	unsigned long	end_brk;
 | |
| } mm_context_t;
 | |
| 
 | |
| #endif
 | |
| 
 | |
| #endif
 |