diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2007-10-16 04:24:43 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:42:53 -0400 |
commit | c92ff1bde06f69d59b40f3194016aee51cc5da55 (patch) | |
tree | d365a7723a05a073ed715c6f4e99363e27516d04 /include/linux/mm.h | |
parent | c0bc9875b701c588e448302d41181995c21e8040 (diff) |
move mm_struct and vm_area_struct
Move the definitions of struct mm_struct and struct vma_area_struct to
include/mm_types.h. This allows to define more function in asm/pgtable.h
and friends with inline assemblies instead of macros. Compile tested on
i386, powerpc, powerpc64, s390-32, s390-64 and x86_64.
[aurelien@aurel32.net: build fix]
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/mm.h')
-rw-r--r-- | include/linux/mm.h | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h index fbbc29a29dff..6a68d41444f8 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -50,69 +50,6 @@ extern int sysctl_legacy_va_layout; | |||
50 | * mmap() functions). | 50 | * mmap() functions). |
51 | */ | 51 | */ |
52 | 52 | ||
53 | /* | ||
54 | * This struct defines a memory VMM memory area. There is one of these | ||
55 | * per VM-area/task. A VM area is any part of the process virtual memory | ||
56 | * space that has a special rule for the page-fault handlers (ie a shared | ||
57 | * library, the executable area etc). | ||
58 | */ | ||
59 | struct vm_area_struct { | ||
60 | struct mm_struct * vm_mm; /* The address space we belong to. */ | ||
61 | unsigned long vm_start; /* Our start address within vm_mm. */ | ||
62 | unsigned long vm_end; /* The first byte after our end address | ||
63 | within vm_mm. */ | ||
64 | |||
65 | /* linked list of VM areas per task, sorted by address */ | ||
66 | struct vm_area_struct *vm_next; | ||
67 | |||
68 | pgprot_t vm_page_prot; /* Access permissions of this VMA. */ | ||
69 | unsigned long vm_flags; /* Flags, listed below. */ | ||
70 | |||
71 | struct rb_node vm_rb; | ||
72 | |||
73 | /* | ||
74 | * For areas with an address space and backing store, | ||
75 | * linkage into the address_space->i_mmap prio tree, or | ||
76 | * linkage to the list of like vmas hanging off its node, or | ||
77 | * linkage of vma in the address_space->i_mmap_nonlinear list. | ||
78 | */ | ||
79 | union { | ||
80 | struct { | ||
81 | struct list_head list; | ||
82 | void *parent; /* aligns with prio_tree_node parent */ | ||
83 | struct vm_area_struct *head; | ||
84 | } vm_set; | ||
85 | |||
86 | struct raw_prio_tree_node prio_tree_node; | ||
87 | } shared; | ||
88 | |||
89 | /* | ||
90 | * A file's MAP_PRIVATE vma can be in both i_mmap tree and anon_vma | ||
91 | * list, after a COW of one of the file pages. A MAP_SHARED vma | ||
92 | * can only be in the i_mmap tree. An anonymous MAP_PRIVATE, stack | ||
93 | * or brk vma (with NULL file) can only be in an anon_vma list. | ||
94 | */ | ||
95 | struct list_head anon_vma_node; /* Serialized by anon_vma->lock */ | ||
96 | struct anon_vma *anon_vma; /* Serialized by page_table_lock */ | ||
97 | |||
98 | /* Function pointers to deal with this struct. */ | ||
99 | struct vm_operations_struct * vm_ops; | ||
100 | |||
101 | /* Information about our backing store: */ | ||
102 | unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE | ||
103 | units, *not* PAGE_CACHE_SIZE */ | ||
104 | struct file * vm_file; /* File we map to (can be NULL). */ | ||
105 | void * vm_private_data; /* was vm_pte (shared mem) */ | ||
106 | unsigned long vm_truncate_count;/* truncate_count or restart_addr */ | ||
107 | |||
108 | #ifndef CONFIG_MMU | ||
109 | atomic_t vm_usage; /* refcount (VMAs shared if !MMU) */ | ||
110 | #endif | ||
111 | #ifdef CONFIG_NUMA | ||
112 | struct mempolicy *vm_policy; /* NUMA policy for the VMA */ | ||
113 | #endif | ||
114 | }; | ||
115 | |||
116 | extern struct kmem_cache *vm_area_cachep; | 53 | extern struct kmem_cache *vm_area_cachep; |
117 | 54 | ||
118 | /* | 55 | /* |