move mm_struct and vm_area_struct.
Subsystems (3)
PATCH 1/1 move mm_struct and vm_area_struct.
Hi Andrew,
I've updated the patch that moves mm_struct and vm_area_struct to include/linux/mm_types.h to 2.6.23-rc2-mm1. The conflicting patch is gone, could we readd this one to -mm? I will need it for the tlb flush rework for s390.
--
blue skies,
Martin.
"Reality continues to ruin my life." - Calvin. --
Subject: [PATCH] move mm_struct and vm_area_struct.
From: Martin Schwidefsky <[email protected]>
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.
---
include/linux/mm.h | 63 -------------------- include/linux/mm_types.h | 143 +++++++++++++++++++++++++++++++++++++++++++++++ include/linux/sched.h | 74 ------------------------ 3 files changed, 144 insertions(+), 136 deletions(-)
include/linux/mm.h +0 -63
@@ -51,69 +51,6 @@ extern int sysctl_legacy_va_layout;* mmap() functions). */ -/* -* This struct defines a memory VMM memory area. There is one of these -* per VM-area/task. A VM area is any part of the process virtual memory -* space that has a special rule for the page-fault handlers (ie a shared -* library, the executable area etc). -*/ -struct vm_area_struct { -struct mm_struct * vm_mm;/* The address space we belong to. */ -unsigned long vm_start;/* Our start address within vm_mm. */ -unsigned long vm_end;/* The first byte after our end address -within vm_mm. */ - -/* linked list of VM areas per task, sorted by address */ -struct vm_area_struct *vm_next; - -pgprot_t vm_page_prot;/* Access permissions of this VMA. */ -unsigned long vm_flags;/* Flags, listed below. */ - -struct rb_node vm_rb; - -/* -* For areas with an address space and backing store, -* linkage into the address_space->i_mmap prio tree, or -* linkage to the list of like vmas hanging off its node, or -* linkage of vma in the address_space->i_mmap_nonlinear list. -*/ -union { -struct { -struct list_head list; -void *parent;/* aligns with prio_tree_node parent */ -struct vm_area_struct *head; - } vm_set; - -struct raw_prio_tree_node prio_tree_node; - } shared; - -/* -* A file's MAP_PRIVATE vma can be in both i_mmap tree and anon_vma -* list, after a COW of one of the file pages. A MAP_SHARED vma -* can only be in the i_mmap tree. An anonymous MAP_PRIVATE, stack -* or brk vma (with NULL file) can only be in an anon_vma list. -*/ -struct list_head anon_vma_node;/* Serialized by anon_vma->lock */ -struct anon_vma *anon_vma;/* Serialized by page_table_lock */ - -/* Function pointers to deal with this struct. */ -struct vm_operations_struct * vm_ops; - -/* Information about our backing store: */ -unsigned long vm_pgoff;/* Offset (within vm_file) in PAGE_SIZE -units, *not* PAGE_CACHE_SIZE */ -struct file * vm_file;/* File we map to (can be NULL). */ -void * vm_private_data;/* was vm_pte (shared mem) */ -unsigned long vm_truncate_count;/* truncate_count or restart_addr */ - -#ifndef CONFIG_MMU -atomic_t vm_usage;/* refcount (VMAs shared if !MMU) */ -#endif -#ifdef CONFIG_NUMA -struct mempolicy *vm_policy;/* NUMA policy for the VMA */ -#endif -}; -extern struct kmem_cache *vm_area_cachep;/*
include/linux/mm_types.h +143 -0
160 lines not on this page · raw message
include/linux/sched.h +1 -73
109 lines not on this page · raw message
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>