#ifndef _ASM_X86_MMU_H #define _ASM_X86_MMU_H #include <linux/spinlock.h> #include <linux/mutex.h> /* * The x86 doesn't have a mmu context, but * we put the segment information here. */ typedef struct { #ifdef [31mCONFIG_MODIFY_LDT_SYSCALL[0m struct ldt_struct *ldt; #endif #ifdef [31mCONFIG_X86_64[0m /* True if mm supports a task running in 32 bit compatibility mode. */ unsigned short ia32_compat; #endif struct mutex lock; void __user *vdso; /* vdso base address */ const struct vdso_image *vdso_image; /* vdso image in use */ atomic_t perf_rdpmc_allowed; /* nonzero if rdpmc is allowed */ #ifdef [31mCONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS[0m /* * One bit per protection key says whether userspace can * use it or not. protected by mmap_sem. */ u16 pkey_allocation_map; s16 execute_only_pkey; #endif #ifdef [31mCONFIG_X86_INTEL_MPX[0m /* address of the bounds directory */ void __user *bd_addr; #endif } mm_context_t; #ifdef [31mCONFIG_SMP[0m void leave_mm(int cpu); #else static inline void leave_mm(int cpu) { } #endif #endif /* _ASM_X86_MMU_H */ |