xref: /linux/arch/x86/include/asm/mmu.h (revision 8c57a5e7b2820f349c95b8c8393fec1e0f4070d2)
1 #ifndef _ASM_X86_MMU_H
2 #define _ASM_X86_MMU_H
3 
4 #include <linux/spinlock.h>
5 #include <linux/mutex.h>
6 
7 /*
8  * The x86 doesn't have a mmu context, but
9  * we put the segment information here.
10  */
11 typedef struct {
12 #ifdef CONFIG_MODIFY_LDT_SYSCALL
13 	struct ldt_struct *ldt;
14 #endif
15 
16 #ifdef CONFIG_X86_64
17 	/* True if mm supports a task running in 32 bit compatibility mode. */
18 	unsigned short ia32_compat;
19 #endif
20 
21 	struct mutex lock;
22 	void __user *vdso;			/* vdso base address */
23 	const struct vdso_image *vdso_image;	/* vdso image in use */
24 
25 	atomic_t perf_rdpmc_allowed;	/* nonzero if rdpmc is allowed */
26 } mm_context_t;
27 
28 #ifdef CONFIG_SMP
29 void leave_mm(int cpu);
30 #else
31 static inline void leave_mm(int cpu)
32 {
33 }
34 #endif
35 
36 #endif /* _ASM_X86_MMU_H */
37