This commit was manufactured by cvs2svn to create branch 'vserver'.
[linux-2.6.git] / include / asm-x86_64 / mach-xen / asm / mmu.h
1 #ifndef __x86_64_MMU_H
2 #define __x86_64_MMU_H
3
4 #include <linux/spinlock.h>
5 #include <asm/semaphore.h>
6
7 /*
8  * The x86_64 doesn't have a mmu context, but
9  * we put the segment information here.
10  *
11  * cpu_vm_mask is used to optimize ldt flushing.
12  */
13 typedef struct { 
14         void *ldt;
15         rwlock_t ldtlock; 
16         int size;
17         struct semaphore sem; 
18 #ifdef CONFIG_XEN
19         unsigned pinned:1;
20         unsigned has_foreign_mappings:1;
21         struct list_head unpinned;
22 #endif
23 } mm_context_t;
24
25 #ifdef CONFIG_XEN
26 extern struct list_head mm_unpinned;
27 extern spinlock_t mm_unpinned_lock;
28
29 /* mm/memory.c:exit_mmap hook */
30 extern void _arch_exit_mmap(struct mm_struct *mm);
31 #define arch_exit_mmap(_mm) _arch_exit_mmap(_mm)
32
33 /* kernel/fork.c:dup_mmap hook */
34 extern void _arch_dup_mmap(struct mm_struct *mm);
35 #define arch_dup_mmap(mm, oldmm) ((void)(oldmm), _arch_dup_mmap(mm))
36 #endif
37
38 #endif