taglinefilesource code
vma85arch/i386/kernel/ptrace.cstatic unsigned long get_long(struct vm_area_struct * vma, unsigned long addr)
vma90arch/i386/kernel/ptrace.cpage = *PAGE_DIR_OFFSET(vma->vm_task->tss.cr3, addr);
vma97arch/i386/kernel/ptrace.cdo_no_page(vma, addr, 0);
vma117arch/i386/kernel/ptrace.cstatic void put_long(struct vm_area_struct * vma, unsigned long addr,
vma124arch/i386/kernel/ptrace.cpage = *PAGE_DIR_OFFSET(vma->vm_task->tss.cr3, addr);
vma132arch/i386/kernel/ptrace.cdo_no_page(vma, addr, 0 /* PAGE_RW */);
vma138arch/i386/kernel/ptrace.cdo_wp_page(vma, addr, PAGE_RW | PAGE_PRESENT);
vma157arch/i386/kernel/ptrace.cstruct vm_area_struct * vma;
vma160arch/i386/kernel/ptrace.cfor (vma = tsk->mm->mmap ; ; vma = vma->vm_next) {
vma161arch/i386/kernel/ptrace.cif (!vma)
vma163arch/i386/kernel/ptrace.cif (vma->vm_end > addr)
vma166arch/i386/kernel/ptrace.cif (vma->vm_start <= addr)
vma167arch/i386/kernel/ptrace.creturn vma;
vma168arch/i386/kernel/ptrace.cif (!(vma->vm_flags & VM_GROWSDOWN))
vma170arch/i386/kernel/ptrace.cif (vma->vm_end - addr > tsk->rlim[RLIMIT_STACK].rlim_cur)
vma172arch/i386/kernel/ptrace.cvma->vm_offset -= vma->vm_start - addr;
vma173arch/i386/kernel/ptrace.cvma->vm_start = addr;
vma174arch/i386/kernel/ptrace.creturn vma;
vma184arch/i386/kernel/ptrace.cstruct vm_area_struct * vma = find_vma(tsk, addr);
vma186arch/i386/kernel/ptrace.cif (!vma)
vma190arch/i386/kernel/ptrace.cstruct vm_area_struct * vma_high = vma;
vma192arch/i386/kernel/ptrace.cif (addr + sizeof(long) >= vma->vm_end) {
vma193arch/i386/kernel/ptrace.cvma_high = vma->vm_next;
vma194arch/i386/kernel/ptrace.cif (!vma_high || vma_high->vm_start != vma->vm_end)
vma197arch/i386/kernel/ptrace.clow = get_long(vma, addr & ~(sizeof(long)-1));
vma215arch/i386/kernel/ptrace.c*result = get_long(vma, addr);
vma226arch/i386/kernel/ptrace.cstruct vm_area_struct * vma = find_vma(tsk, addr);
vma228arch/i386/kernel/ptrace.cif (!vma)
vma232arch/i386/kernel/ptrace.cstruct vm_area_struct * vma_high = vma;
vma234arch/i386/kernel/ptrace.cif (addr + sizeof(long) >= vma->vm_end) {
vma235arch/i386/kernel/ptrace.cvma_high = vma->vm_next;
vma236arch/i386/kernel/ptrace.cif (!vma_high || vma_high->vm_start != vma->vm_end)
vma239arch/i386/kernel/ptrace.clow = get_long(vma, addr & ~(sizeof(long)-1));
vma264arch/i386/kernel/ptrace.cput_long(vma, addr & ~(sizeof(long)-1),low);
vma267arch/i386/kernel/ptrace.cput_long(vma, addr, data);
vma86drivers/char/mem.cstatic int mmap_mem(struct inode * inode, struct file * file, struct vm_area_struct * vma)
vma88drivers/char/mem.cif (vma->vm_offset & ~PAGE_MASK)
vma90drivers/char/mem.cif (x86 > 3 && vma->vm_offset >= high_memory)
vma91drivers/char/mem.cvma->vm_page_prot |= PAGE_PCD;
vma92drivers/char/mem.cif (remap_page_range(vma->vm_start, vma->vm_offset, vma->vm_end - vma->vm_start, vma->vm_page_prot))
vma94drivers/char/mem.cvma->vm_inode = inode;
vma162drivers/char/mem.cstatic int mmap_zero(struct inode * inode, struct file * file, struct vm_area_struct * vma)
vma164drivers/char/mem.cif (vma->vm_page_prot & PAGE_RW)
vma166drivers/char/mem.cif (zeromap_page_range(vma->vm_start, vma->vm_end - vma->vm_start, vma->vm_page_prot))
vma89fs/msdos/mmap.cint msdos_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma)
vma91fs/msdos/mmap.cif (vma->vm_page_prot & PAGE_RW)  /* only PAGE_COW or read-only supported now */
vma93fs/msdos/mmap.cif (vma->vm_offset & (inode->i_sb->s_blocksize - 1))
vma102fs/msdos/mmap.cvma->vm_inode = inode;
vma104fs/msdos/mmap.cvma->vm_ops = &msdos_file_mmap;
vma30fs/namei.cstruct vm_area_struct * vma;
vma34fs/namei.cfor (vma = current->mm->mmap ; ; vma = vma->vm_next) {
vma35fs/namei.cif (!vma)
vma37fs/namei.cif (vma->vm_end > address)
vma40fs/namei.cif (vma->vm_start > address || !(vma->vm_page_prot & PAGE_USER))
vma42fs/namei.caddress = vma->vm_end - address;
vma45fs/namei.cif (vma->vm_next && vma->vm_next->vm_start == vma->vm_end &&
vma46fs/namei.c(vma->vm_next->vm_page_prot & PAGE_USER))
vma93fs/nfs/mmap.cint nfs_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma)
vma95fs/nfs/mmap.cif (vma->vm_page_prot & PAGE_RW)  /* only PAGE_COW or read-only supported now */
vma104fs/nfs/mmap.cvma->vm_inode = inode;
vma106fs/nfs/mmap.cvma->vm_ops = &nfs_file_mmap;
vma136fs/proc/link.cstruct vm_area_struct * vma = p->mm->mmap;
vma137fs/proc/link.cwhile (vma) {
vma138fs/proc/link.cif (vma->vm_flags & VM_EXECUTABLE) {
vma139fs/proc/link.cnew_inode = vma->vm_inode;
vma142fs/proc/link.cvma = vma->vm_next;
vma145fs/proc/mem.cstruct vm_area_struct * vma)
vma169fs/proc/mem.cstmp = vma->vm_offset;
vma170fs/proc/mem.cwhile (stmp < vma->vm_offset + (vma->vm_end - vma->vm_start)) {
vma193fs/proc/mem.cstmp    = vma->vm_offset;
vma194fs/proc/mem.cdtmp    = vma->vm_start;
vma196fs/proc/mem.cwhile (dtmp < vma->vm_end) {
vma216fs/proc/mem.cif ((vma->vm_flags & VM_WRITE) && !(*src_table & PAGE_RW))
vma514fs/super.cstruct vm_area_struct * vma;
vma520fs/super.cfor (vma = current->mm->mmap ; ; ) {
vma521fs/super.cif (!vma ||
vma522fs/super.c(unsigned long) data < vma->vm_start) {
vma525fs/super.cif ((unsigned long) data < vma->vm_end)
vma527fs/super.cvma = vma->vm_next;
vma529fs/super.ci = vma->vm_end - (unsigned long) data;
vma175include/linux/mm.hextern void do_wp_page(struct vm_area_struct * vma, unsigned long address,
vma177include/linux/mm.hextern void do_no_page(struct vm_area_struct * vma, unsigned long address,
vma116include/linux/nfs_fs.hextern int nfs_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma);
vma607ipc/shm.cstatic unsigned long shm_swap_in(struct vm_area_struct * vma, unsigned long code)
vma383kernel/sys.cstruct vm_area_struct * vma;
vma412kernel/sys.cfor (vma = current->mm->mmap; vma; vma = vma->vm_next) {
vma413kernel/sys.cif (newbrk <= vma->vm_start)
vma415kernel/sys.cif (oldbrk < vma->vm_end)
vma63mm/filemap.cstatic inline void file_mmap_sync_page(struct vm_area_struct * vma,
vma85mm/filemap.cstatic void file_mmap_sync(struct vm_area_struct * vma, unsigned long start,
vma95mm/filemap.cstart -= vma->vm_start;
vma125mm/filemap.cfile_mmap_sync_page(vma, start, page);
vma136mm/filemap.cstatic void file_mmap_unmap(struct vm_area_struct *vma, unsigned long start, size_t len)
vma138mm/filemap.cif (vma->vm_page_prot & PAGE_RW)
vma139mm/filemap.cfile_mmap_sync(vma, start, len, MS_ASYNC);
vma145mm/filemap.cstatic void file_mmap_close(struct vm_area_struct * vma)
vma147mm/filemap.cif (vma->vm_page_prot & PAGE_RW)
vma148mm/filemap.cfile_mmap_sync(vma, vma->vm_start, vma->vm_end - vma->vm_start, MS_ASYNC);
vma158mm/filemap.cvoid file_mmap_swapout(struct vm_area_struct * vma,
vma204mm/filemap.cint generic_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma)
vma208mm/filemap.cif (vma->vm_offset & (inode->i_sb->s_blocksize - 1))
vma215mm/filemap.cif (vma->vm_flags & VM_SHARED) {
vma216mm/filemap.cif (vma->vm_flags & (VM_WRITE | VM_MAYWRITE)) {
vma228mm/filemap.cvma->vm_inode = inode;
vma230mm/filemap.cvma->vm_ops = ops;
vma563mm/memory.cvoid do_wp_page(struct vm_area_struct * vma, unsigned long address,
vma570mm/memory.cpde = PAGE_DIR_OFFSET(vma->vm_task->tss.cr3,address);
vma585mm/memory.cvma->vm_task->mm->min_flt++;
vma591mm/memory.c++vma->vm_task->mm->rss;
vma599mm/memory.coom(vma->vm_task);
vma612mm/memory.csend_sig(SIGKILL, vma->vm_task, 1);
vma617mm/memory.csend_sig(SIGKILL, vma->vm_task, 1);
vma629mm/memory.cstruct vm_area_struct * vma;
vma639mm/memory.cfor (vma = current->mm->mmap ; ; vma = vma->vm_next) {
vma640mm/memory.cif (!vma)
vma642mm/memory.cif (vma->vm_end > start)
vma645mm/memory.cif (vma->vm_start <= start)
vma647mm/memory.cif (!(vma->vm_flags & VM_GROWSDOWN))
vma649mm/memory.cif (vma->vm_end - start > current->rlim[RLIMIT_STACK].rlim_cur)
vma657mm/memory.cif (!(vma->vm_page_prot & PAGE_USER))
vma659mm/memory.cif (type != VERIFY_READ && !(vma->vm_page_prot & (PAGE_COW | PAGE_RW)))
vma661mm/memory.cif (vma->vm_end - start >= size)
vma663mm/memory.cnext = vma->vm_next;
vma664mm/memory.cif (!next || vma->vm_end != next->vm_start)
vma666mm/memory.cvma = next;
vma676mm/memory.cif (!(vma->vm_page_prot & (PAGE_COW | PAGE_RW)))
vma678mm/memory.cdo_wp_page(vma, start, PAGE_PRESENT);
vma683mm/memory.cif (start < vma->vm_end)
vma685mm/memory.cvma = vma->vm_next;
vma686mm/memory.cif (!vma || vma->vm_start != start)
vma883mm/memory.cstatic inline void do_swap_page(struct vm_area_struct * vma,
vma888mm/memory.cif (vma->vm_ops && vma->vm_ops->swapin)
vma889mm/memory.cpage = vma->vm_ops->swapin(vma, entry);
vma896mm/memory.cpage = page | vma->vm_page_prot;
vma899mm/memory.c++vma->vm_task->mm->rss;
vma900mm/memory.c++vma->vm_task->mm->maj_flt;
vma905mm/memory.cvoid do_no_page(struct vm_area_struct * vma, unsigned long address,
vma910mm/memory.cpage = get_empty_pgtable(vma->vm_task,address);
vma919mm/memory.cdo_swap_page(vma, address, (unsigned long *) page, entry);
vma924mm/memory.cif (!vma->vm_ops || !vma->vm_ops->nopage) {
vma925mm/memory.c++vma->vm_task->mm->rss;
vma926mm/memory.c++vma->vm_task->mm->min_flt;
vma927mm/memory.cget_empty_page(vma->vm_task,address);
vma931mm/memory.cif (share_page(vma, address, error_code, page)) {
vma932mm/memory.c++vma->vm_task->mm->min_flt;
vma933mm/memory.c++vma->vm_task->mm->rss;
vma938mm/memory.cput_page(vma->vm_task, BAD_PAGE, address, PAGE_PRIVATE);
vma941mm/memory.c++vma->vm_task->mm->maj_flt;
vma942mm/memory.c++vma->vm_task->mm->rss;
vma943mm/memory.cprot = vma->vm_page_prot;
vma949mm/memory.cpage = vma->vm_ops->nopage(vma, address, page, (error_code & PAGE_RW) && (prot & PAGE_COW));
vma950mm/memory.cif (share_page(vma, address, error_code, 0)) {
vma962mm/memory.cif (put_page(vma->vm_task, page, address, prot))
vma975mm/memory.cstruct vm_area_struct * vma;
vma981mm/memory.cfor (vma = current->mm->mmap ; ; vma = vma->vm_next) {
vma982mm/memory.cif (!vma)
vma984mm/memory.cif (vma->vm_end > address)
vma987mm/memory.cif (vma->vm_start <= address)
vma989mm/memory.cif (!(vma->vm_flags & VM_GROWSDOWN))
vma991mm/memory.cif (vma->vm_end - address > current->rlim[RLIMIT_STACK].rlim_cur)
vma993mm/memory.cvma->vm_offset -= vma->vm_start - (address & PAGE_MASK);
vma994mm/memory.cvma->vm_start = (address & PAGE_MASK);
vma1005mm/memory.cif (!(vma->vm_page_prot & PAGE_USER))
vma1008mm/memory.cif (!(vma->vm_page_prot & (PAGE_RW | PAGE_COW)))
vma1014mm/memory.cdo_wp_page(vma, address, error_code);
vma1017mm/memory.cdo_no_page(vma, address, error_code);
vma42mm/mmap.cstruct vm_area_struct * vma;
vma111mm/mmap.cvma = (struct vm_area_struct *)kmalloc(sizeof(struct vm_area_struct),
vma113mm/mmap.cif (!vma)
vma116mm/mmap.cvma->vm_task = current;
vma117mm/mmap.cvma->vm_start = addr;
vma118mm/mmap.cvma->vm_end = addr + len;
vma119mm/mmap.cvma->vm_page_prot = mask;
vma120mm/mmap.cvma->vm_flags = prot & (VM_READ | VM_WRITE | VM_EXEC);
vma121mm/mmap.cvma->vm_flags |= flags & (VM_GROWSDOWN | VM_DENYWRITE | VM_EXECUTABLE);
vma125mm/mmap.cvma->vm_flags |= VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
vma127mm/mmap.cvma->vm_flags |= VM_SHARED | VM_MAYSHARE;
vma129mm/mmap.cvma->vm_flags &= ~VM_MAYWRITE;
vma132mm/mmap.cvma->vm_flags |= VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
vma133mm/mmap.cvma->vm_ops = NULL;
vma134mm/mmap.cvma->vm_offset = off;
vma135mm/mmap.cvma->vm_inode = NULL;
vma136mm/mmap.cvma->vm_pte = 0;
vma141mm/mmap.cerror = file->f_op->mmap(file->f_inode, file, vma);
vma143mm/mmap.cerror = anon_map(NULL, NULL, vma);
vma146mm/mmap.ckfree(vma);
vma149mm/mmap.cinsert_vm_struct(current, vma);
vma483mm/mmap.cstatic int anon_map(struct inode *ino, struct file * file, struct vm_area_struct * vma)
vma485mm/mmap.cif (zeromap_page_range(vma->vm_start, vma->vm_end - vma->vm_start, vma->vm_page_prot))
vma53mm/mprotect.cstatic inline int mprotect_fixup_all(struct vm_area_struct * vma,
vma56mm/mprotect.cvma->vm_flags = newflags;
vma57mm/mprotect.cvma->vm_page_prot = prot;
vma61mm/mprotect.cstatic inline int mprotect_fixup_start(struct vm_area_struct * vma,
vma70mm/mprotect.c*n = *vma;
vma71mm/mprotect.cvma->vm_start = end;
vma73mm/mprotect.cvma->vm_offset += vma->vm_start - n->vm_start;
vma84mm/mprotect.cstatic inline int mprotect_fixup_end(struct vm_area_struct * vma,
vma93mm/mprotect.c*n = *vma;
vma94mm/mprotect.cvma->vm_end = start;
vma96mm/mprotect.cn->vm_offset += n->vm_start - vma->vm_start;
vma107mm/mprotect.cstatic inline int mprotect_fixup_middle(struct vm_area_struct * vma,
vma121mm/mprotect.c*left = *vma;
vma122mm/mprotect.c*right = *vma;
vma124mm/mprotect.cvma->vm_start = start;
vma125mm/mprotect.cvma->vm_end = end;
vma127mm/mprotect.cvma->vm_offset += vma->vm_start - left->vm_start;
vma129mm/mprotect.cvma->vm_flags = newflags;
vma130mm/mprotect.cvma->vm_page_prot = prot;
vma131mm/mprotect.cif (vma->vm_inode)
vma132mm/mprotect.cvma->vm_inode->i_count += 2;
vma133mm/mprotect.cif (vma->vm_ops && vma->vm_ops->open) {
vma134mm/mprotect.cvma->vm_ops->open(left);
vma135mm/mprotect.cvma->vm_ops->open(right);
vma142mm/mprotect.cstatic int mprotect_fixup(struct vm_area_struct * vma, 
vma147mm/mprotect.cif (newflags == vma->vm_flags)
vma158mm/mprotect.cif (start == vma->vm_start)
vma159mm/mprotect.cif (end == vma->vm_end)
vma160mm/mprotect.cerror = mprotect_fixup_all(vma, newflags, prot);
vma162mm/mprotect.cerror = mprotect_fixup_start(vma, end, newflags, prot);
vma163mm/mprotect.celse if (end == vma->vm_end)
vma164mm/mprotect.cerror = mprotect_fixup_end(vma, start, newflags, prot);
vma166mm/mprotect.cerror = mprotect_fixup_middle(vma, start, end, newflags, prot);
vma178mm/mprotect.cstruct vm_area_struct * vma, * next;
vma191mm/mprotect.cfor (vma = current->mm->mmap ; ; vma = vma->vm_next) {
vma192mm/mprotect.cif (!vma)
vma194mm/mprotect.cif (vma->vm_end > start)
vma197mm/mprotect.cif (vma->vm_start > start)
vma205mm/mprotect.cnewflags = prot | (vma->vm_flags & ~(PROT_READ | PROT_WRITE | PROT_EXEC));
vma211mm/mprotect.cif (vma->vm_end >= end) {
vma212mm/mprotect.cerror = mprotect_fixup(vma, start, end, newflags);
vma216mm/mprotect.ctmp = vma->vm_end;
vma217mm/mprotect.cnext = vma->vm_next;
vma218mm/mprotect.cerror = mprotect_fixup(vma, start, tmp, newflags);
vma222mm/mprotect.cvma = next;
vma223mm/mprotect.cif (!vma || vma->vm_start != start) {
vma291mm/swap.cstatic inline int try_to_swap_out(struct vm_area_struct* vma, unsigned offset, unsigned long * table_ptr)
vma315mm/swap.cif (vma->vm_ops && vma->vm_ops->swapout)
vma316mm/swap.cvma->vm_ops->swapout(vma, offset, table_ptr);
vma379mm/swap.cstruct vm_area_struct* vma;
vma390mm/swap.cvma = p->mm->mmap;
vma392mm/swap.cif (!vma)
vma394mm/swap.cif (address <= vma->vm_end)
vma396mm/swap.cvma = vma->vm_next;
vma398mm/swap.cif (address < vma->vm_start)
vma399mm/swap.caddress = vma->vm_start;
vma427mm/swap.cif (address+offset < vma->vm_end)
vma429mm/swap.cvma = vma->vm_next;
vma430mm/swap.cif (!vma)
vma434mm/swap.cswitch(try_to_swap_out(vma, offset+address-vma->vm_start, (unsigned long *) (pg_table + (offset >> 10)))) {