taglinefilesource code
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))
vma84fs/msdos/mmap.cint msdos_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma)
vma86fs/msdos/mmap.cif (vma->vm_page_prot & PAGE_RW)  /* only PAGE_COW or read-only supported now */
vma88fs/msdos/mmap.cif (vma->vm_offset & (inode->i_sb->s_blocksize - 1))
vma97fs/msdos/mmap.cvma->vm_inode = inode;
vma99fs/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))
vma88fs/nfs/mmap.cint nfs_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma)
vma90fs/nfs/mmap.cif (vma->vm_page_prot & PAGE_RW)  /* only PAGE_COW or read-only supported now */
vma99fs/nfs/mmap.cvma->vm_inode = inode;
vma101fs/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))
vma510fs/super.cstruct vm_area_struct * vma;
vma516fs/super.cfor (vma = current->mm->mmap ; ; ) {
vma517fs/super.cif (!vma ||
vma518fs/super.c(unsigned long) data < vma->vm_start) {
vma521fs/super.cif ((unsigned long) data < vma->vm_end)
vma523fs/super.cvma = vma->vm_next;
vma525fs/super.ci = vma->vm_end - (unsigned long) data;
vma68fs/sysv/mmap.cint sysv_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma)
vma70fs/sysv/mmap.cif (vma->vm_page_prot & PAGE_RW)  /* only PAGE_COW or read-only supported right now */
vma72fs/sysv/mmap.cif (vma->vm_offset & (inode->i_sb->s_blocksize - 1))
vma81fs/sysv/mmap.cvma->vm_inode = inode;
vma83fs/sysv/mmap.cvma->vm_ops = &sysv_file_mmap;
vma168include/linux/mm.hextern void do_wp_page(struct vm_area_struct * vma, unsigned long address,
vma170include/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);
vma614ipc/shm.cstatic unsigned long shm_swap_in(struct vm_area_struct * vma, unsigned long code)
vma85kernel/ptrace.cstatic unsigned long get_long(struct vm_area_struct * vma, unsigned long addr)
vma90kernel/ptrace.cpage = *PAGE_DIR_OFFSET(vma->vm_task->tss.cr3, addr);
vma97kernel/ptrace.cdo_no_page(vma, addr, 0);
vma117kernel/ptrace.cstatic void put_long(struct vm_area_struct * vma, unsigned long addr,
vma124kernel/ptrace.cpage = *PAGE_DIR_OFFSET(vma->vm_task->tss.cr3, addr);
vma132kernel/ptrace.cdo_no_page(vma, addr, 0 /* PAGE_RW */);
vma138kernel/ptrace.cdo_wp_page(vma, addr, PAGE_RW | PAGE_PRESENT);
vma157kernel/ptrace.cstruct vm_area_struct * vma;
vma160kernel/ptrace.cfor (vma = tsk->mm->mmap ; ; vma = vma->vm_next) {
vma161kernel/ptrace.cif (!vma)
vma163kernel/ptrace.cif (vma->vm_end > addr)
vma166kernel/ptrace.cif (vma->vm_start <= addr)
vma167kernel/ptrace.creturn vma;
vma168kernel/ptrace.cif (!(vma->vm_flags & VM_GROWSDOWN))
vma170kernel/ptrace.cif (vma->vm_end - addr > tsk->rlim[RLIMIT_STACK].rlim_cur)
vma172kernel/ptrace.cvma->vm_offset -= vma->vm_start - addr;
vma173kernel/ptrace.cvma->vm_start = addr;
vma174kernel/ptrace.creturn vma;
vma184kernel/ptrace.cstruct vm_area_struct * vma = find_vma(tsk, addr);
vma186kernel/ptrace.cif (!vma)
vma190kernel/ptrace.cstruct vm_area_struct * vma_high = vma;
vma192kernel/ptrace.cif (addr + sizeof(long) >= vma->vm_end) {
vma193kernel/ptrace.cvma_high = vma->vm_next;
vma194kernel/ptrace.cif (!vma_high || vma_high->vm_start != vma->vm_end)
vma197kernel/ptrace.clow = get_long(vma, addr & ~(sizeof(long)-1));
vma215kernel/ptrace.c*result = get_long(vma, addr);
vma226kernel/ptrace.cstruct vm_area_struct * vma = find_vma(tsk, addr);
vma228kernel/ptrace.cif (!vma)
vma232kernel/ptrace.cstruct vm_area_struct * vma_high = vma;
vma234kernel/ptrace.cif (addr + sizeof(long) >= vma->vm_end) {
vma235kernel/ptrace.cvma_high = vma->vm_next;
vma236kernel/ptrace.cif (!vma_high || vma_high->vm_start != vma->vm_end)
vma239kernel/ptrace.clow = get_long(vma, addr & ~(sizeof(long)-1));
vma264kernel/ptrace.cput_long(vma, addr & ~(sizeof(long)-1),low);
vma267kernel/ptrace.cput_long(vma, addr, data);
vma399kernel/sys.cstruct vm_area_struct * vma;
vma428kernel/sys.cfor (vma = current->mm->mmap; vma; vma = vma->vm_next) {
vma429kernel/sys.cif (newbrk <= vma->vm_start)
vma431kernel/sys.cif (oldbrk < vma->vm_end)
vma564mm/memory.cvoid do_wp_page(struct vm_area_struct * vma, unsigned long address,
vma571mm/memory.cpde = PAGE_DIR_OFFSET(vma->vm_task->tss.cr3,address);
vma586mm/memory.cvma->vm_task->mm->min_flt++;
vma592mm/memory.c++vma->vm_task->mm->rss;
vma600mm/memory.coom(vma->vm_task);
vma613mm/memory.csend_sig(SIGKILL, vma->vm_task, 1);
vma618mm/memory.csend_sig(SIGKILL, vma->vm_task, 1);
vma630mm/memory.cstruct vm_area_struct * vma;
vma640mm/memory.cfor (vma = current->mm->mmap ; ; vma = vma->vm_next) {
vma641mm/memory.cif (!vma)
vma643mm/memory.cif (vma->vm_end > start)
vma646mm/memory.cif (vma->vm_start <= start)
vma648mm/memory.cif (!(vma->vm_flags & VM_GROWSDOWN))
vma650mm/memory.cif (vma->vm_end - start > current->rlim[RLIMIT_STACK].rlim_cur)
vma658mm/memory.cif (!(vma->vm_page_prot & PAGE_USER))
vma660mm/memory.cif (type != VERIFY_READ && !(vma->vm_page_prot & (PAGE_COW | PAGE_RW)))
vma662mm/memory.cif (vma->vm_end - start >= size)
vma664mm/memory.cnext = vma->vm_next;
vma665mm/memory.cif (!next || vma->vm_end != next->vm_start)
vma667mm/memory.cvma = next;
vma677mm/memory.cif (!(vma->vm_page_prot & (PAGE_COW | PAGE_RW)))
vma679mm/memory.cdo_wp_page(vma, start, PAGE_PRESENT);
vma684mm/memory.cif (start < vma->vm_end)
vma686mm/memory.cvma = vma->vm_next;
vma687mm/memory.cif (!vma || vma->vm_start != start)
vma889mm/memory.cstatic inline void do_swap_page(struct vm_area_struct * vma,
vma894mm/memory.cif (vma->vm_ops && vma->vm_ops->swapin)
vma895mm/memory.cpage = vma->vm_ops->swapin(vma, entry);
vma902mm/memory.cpage = page | vma->vm_page_prot;
vma905mm/memory.c++vma->vm_task->mm->rss;
vma906mm/memory.c++vma->vm_task->mm->maj_flt;
vma911mm/memory.cvoid do_no_page(struct vm_area_struct * vma, unsigned long address,
vma916mm/memory.cpage = get_empty_pgtable(vma->vm_task,address);
vma925mm/memory.cdo_swap_page(vma, address, (unsigned long *) page, entry);
vma930mm/memory.cif (!vma->vm_ops || !vma->vm_ops->nopage) {
vma931mm/memory.c++vma->vm_task->mm->rss;
vma932mm/memory.c++vma->vm_task->mm->min_flt;
vma933mm/memory.cget_empty_page(vma->vm_task,address);
vma937mm/memory.cif (share_page(vma, address, error_code, page)) {
vma938mm/memory.c++vma->vm_task->mm->min_flt;
vma939mm/memory.c++vma->vm_task->mm->rss;
vma944mm/memory.cput_page(vma->vm_task, BAD_PAGE, address, PAGE_PRIVATE);
vma947mm/memory.c++vma->vm_task->mm->maj_flt;
vma948mm/memory.c++vma->vm_task->mm->rss;
vma949mm/memory.cprot = vma->vm_page_prot;
vma955mm/memory.cpage = vma->vm_ops->nopage(vma, address, page, (error_code & PAGE_RW) && (prot & PAGE_COW));
vma956mm/memory.cif (share_page(vma, address, error_code, 0)) {
vma968mm/memory.cif (put_page(vma->vm_task, page, address, prot))
vma981mm/memory.cstruct vm_area_struct * vma;
vma987mm/memory.cfor (vma = current->mm->mmap ; ; vma = vma->vm_next) {
vma988mm/memory.cif (!vma)
vma990mm/memory.cif (vma->vm_end > address)
vma993mm/memory.cif (vma->vm_start <= address)
vma995mm/memory.cif (!(vma->vm_flags & VM_GROWSDOWN))
vma997mm/memory.cif (vma->vm_end - address > current->rlim[RLIMIT_STACK].rlim_cur)
vma999mm/memory.cvma->vm_offset -= vma->vm_start - (address & PAGE_MASK);
vma1000mm/memory.cvma->vm_start = (address & PAGE_MASK);
vma1011mm/memory.cif (!(vma->vm_page_prot & PAGE_USER))
vma1014mm/memory.cif (!(vma->vm_page_prot & (PAGE_RW | PAGE_COW)))
vma1020mm/memory.cdo_wp_page(vma, address, error_code);
vma1023mm/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);
vma361mm/mmap.cint generic_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma)
vma365mm/mmap.cif (vma->vm_page_prot & PAGE_RW)  /* only PAGE_COW or read-only supported right now */
vma367mm/mmap.cif (vma->vm_offset & (inode->i_sb->s_blocksize - 1))
vma377mm/mmap.cvma->vm_inode = inode;
vma379mm/mmap.cvma->vm_ops = &file_mmap;
vma465mm/mmap.cstatic int anon_map(struct inode *ino, struct file * file, struct vm_area_struct * vma)
vma467mm/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) {