#ifndef __x86_64_MMU_H #define __x86_64_MMU_H #include #include /* * The x86_64 doesn't have a mmu context, but * we put the segment information here. * * cpu_vm_mask is used to optimize ldt flushing. */ typedef struct { void *ldt; rwlock_t ldtlock; int size; struct semaphore sem; #ifdef CONFIG_XEN unsigned pinned:1; unsigned has_foreign_mappings:1; struct list_head unpinned; #endif } mm_context_t; #ifdef CONFIG_XEN extern struct list_head mm_unpinned; extern spinlock_t mm_unpinned_lock; /* mm/memory.c:exit_mmap hook */ extern void _arch_exit_mmap(struct mm_struct *mm); #define arch_exit_mmap(_mm) _arch_exit_mmap(_mm) /* kernel/fork.c:dup_mmap hook */ extern void _arch_dup_mmap(struct mm_struct *mm); #define arch_dup_mmap(mm, oldmm) ((void)(oldmm), _arch_dup_mmap(mm)) #endif #endif