tag | line | file | source code |
vma | 44 | arch/alpha/mm/fault.c | struct vm_area_struct * vma; |
vma | 48 | arch/alpha/mm/fault.c | vma = find_vma(current, address); |
vma | 49 | arch/alpha/mm/fault.c | if (!vma) |
vma | 51 | arch/alpha/mm/fault.c | if (vma->vm_start <= address) |
vma | 53 | arch/alpha/mm/fault.c | if (!(vma->vm_flags & VM_GROWSDOWN)) |
vma | 55 | arch/alpha/mm/fault.c | if (vma->vm_end - address > current->rlim[RLIMIT_STACK].rlim_cur) |
vma | 57 | arch/alpha/mm/fault.c | vma->vm_offset -= vma->vm_start - (address & PAGE_MASK); |
vma | 58 | arch/alpha/mm/fault.c | vma->vm_start = (address & PAGE_MASK); |
vma | 65 | arch/alpha/mm/fault.c | if (!(vma->vm_flags & VM_EXEC)) |
vma | 68 | arch/alpha/mm/fault.c | if (!(vma->vm_flags & VM_READ)) |
vma | 71 | arch/alpha/mm/fault.c | if (!(vma->vm_flags & VM_WRITE)) |
vma | 76 | arch/alpha/mm/fault.c | do_wp_page(vma, address, cause > 0); |
vma | 79 | arch/alpha/mm/fault.c | do_no_page(vma, address, cause > 0); |
vma | 85 | arch/i386/kernel/ptrace.c | static unsigned long get_long(struct vm_area_struct * vma, unsigned long addr) |
vma | 92 | arch/i386/kernel/ptrace.c | pgdir = PAGE_DIR_OFFSET(vma->vm_task, addr); |
vma | 94 | arch/i386/kernel/ptrace.c | do_no_page(vma, addr, 0); |
vma | 104 | arch/i386/kernel/ptrace.c | do_no_page(vma, addr, 0); |
vma | 124 | arch/i386/kernel/ptrace.c | static void put_long(struct vm_area_struct * vma, unsigned long addr, |
vma | 132 | arch/i386/kernel/ptrace.c | pgdir = PAGE_DIR_OFFSET(vma->vm_task, addr); |
vma | 134 | arch/i386/kernel/ptrace.c | do_no_page(vma, addr, 1); |
vma | 144 | arch/i386/kernel/ptrace.c | do_no_page(vma, addr, 1); |
vma | 149 | arch/i386/kernel/ptrace.c | do_wp_page(vma, addr, 1); |
vma | 159 | arch/i386/kernel/ptrace.c | *pgtable = pte_mkdirty(mk_pte(page, vma->vm_page_prot)); |
vma | 165 | arch/i386/kernel/ptrace.c | struct vm_area_struct * vma; |
vma | 168 | arch/i386/kernel/ptrace.c | vma = find_vma(tsk,addr); |
vma | 169 | arch/i386/kernel/ptrace.c | if (!vma) |
vma | 171 | arch/i386/kernel/ptrace.c | if (vma->vm_start <= addr) |
vma | 172 | arch/i386/kernel/ptrace.c | return vma; |
vma | 173 | arch/i386/kernel/ptrace.c | if (!(vma->vm_flags & VM_GROWSDOWN)) |
vma | 175 | arch/i386/kernel/ptrace.c | if (vma->vm_end - addr > tsk->rlim[RLIMIT_STACK].rlim_cur) |
vma | 177 | arch/i386/kernel/ptrace.c | vma->vm_offset -= vma->vm_start - addr; |
vma | 178 | arch/i386/kernel/ptrace.c | vma->vm_start = addr; |
vma | 179 | arch/i386/kernel/ptrace.c | return vma; |
vma | 189 | arch/i386/kernel/ptrace.c | struct vm_area_struct * vma = find_extend_vma(tsk, addr); |
vma | 191 | arch/i386/kernel/ptrace.c | if (!vma) |
vma | 195 | arch/i386/kernel/ptrace.c | struct vm_area_struct * vma_high = vma; |
vma | 197 | arch/i386/kernel/ptrace.c | if (addr + sizeof(long) >= vma->vm_end) { |
vma | 198 | arch/i386/kernel/ptrace.c | vma_high = vma->vm_next; |
vma | 199 | arch/i386/kernel/ptrace.c | if (!vma_high || vma_high->vm_start != vma->vm_end) |
vma | 202 | arch/i386/kernel/ptrace.c | low = get_long(vma, addr & ~(sizeof(long)-1)); |
vma | 220 | arch/i386/kernel/ptrace.c | *result = get_long(vma, addr); |
vma | 231 | arch/i386/kernel/ptrace.c | struct vm_area_struct * vma = find_extend_vma(tsk, addr); |
vma | 233 | arch/i386/kernel/ptrace.c | if (!vma) |
vma | 237 | arch/i386/kernel/ptrace.c | struct vm_area_struct * vma_high = vma; |
vma | 239 | arch/i386/kernel/ptrace.c | if (addr + sizeof(long) >= vma->vm_end) { |
vma | 240 | arch/i386/kernel/ptrace.c | vma_high = vma->vm_next; |
vma | 241 | arch/i386/kernel/ptrace.c | if (!vma_high || vma_high->vm_start != vma->vm_end) |
vma | 244 | arch/i386/kernel/ptrace.c | low = get_long(vma, addr & ~(sizeof(long)-1)); |
vma | 269 | arch/i386/kernel/ptrace.c | put_long(vma, addr & ~(sizeof(long)-1),low); |
vma | 272 | arch/i386/kernel/ptrace.c | put_long(vma, addr, data); |
vma | 36 | arch/i386/mm/fault.c | struct vm_area_struct * vma; |
vma | 42 | arch/i386/mm/fault.c | vma = find_vma(current, address); |
vma | 43 | arch/i386/mm/fault.c | if (!vma) |
vma | 45 | arch/i386/mm/fault.c | if (vma->vm_start <= address) |
vma | 47 | arch/i386/mm/fault.c | if (!(vma->vm_flags & VM_GROWSDOWN)) |
vma | 49 | arch/i386/mm/fault.c | if (vma->vm_end - address > current->rlim[RLIMIT_STACK].rlim_cur) |
vma | 51 | arch/i386/mm/fault.c | vma->vm_offset -= vma->vm_start - (address & PAGE_MASK); |
vma | 52 | arch/i386/mm/fault.c | vma->vm_start = (address & PAGE_MASK); |
vma | 62 | arch/i386/mm/fault.c | if (!(vma->vm_flags & VM_WRITE)) |
vma | 68 | arch/i386/mm/fault.c | if (!(vma->vm_flags & (VM_READ | VM_EXEC))) |
vma | 84 | arch/i386/mm/fault.c | do_wp_page(vma, address, error_code & 2); |
vma | 87 | arch/i386/mm/fault.c | do_no_page(vma, address, error_code & 2); |
vma | 85 | arch/mips/kernel/ptrace.c | static unsigned long get_long(struct vm_area_struct * vma, unsigned long addr) |
vma | 92 | arch/mips/kernel/ptrace.c | pgdir = PAGE_DIR_OFFSET(vma->vm_task, addr); |
vma | 94 | arch/mips/kernel/ptrace.c | do_no_page(vma, addr, 0); |
vma | 104 | arch/mips/kernel/ptrace.c | do_no_page(vma, addr, 0); |
vma | 124 | arch/mips/kernel/ptrace.c | static void put_long(struct vm_area_struct * vma, unsigned long addr, |
vma | 132 | arch/mips/kernel/ptrace.c | pgdir = PAGE_DIR_OFFSET(vma->vm_task, addr); |
vma | 134 | arch/mips/kernel/ptrace.c | do_no_page(vma, addr, 1); |
vma | 144 | arch/mips/kernel/ptrace.c | do_no_page(vma, addr, 1); |
vma | 149 | arch/mips/kernel/ptrace.c | do_wp_page(vma, addr, 1); |
vma | 159 | arch/mips/kernel/ptrace.c | *pgtable = pte_mkdirty(mk_pte(page, vma->vm_page_prot)); |
vma | 165 | arch/mips/kernel/ptrace.c | struct vm_area_struct * vma; |
vma | 168 | arch/mips/kernel/ptrace.c | vma = find_vma(tsk, addr); |
vma | 169 | arch/mips/kernel/ptrace.c | if (!vma) |
vma | 171 | arch/mips/kernel/ptrace.c | if (vma->vm_start <= addr) |
vma | 172 | arch/mips/kernel/ptrace.c | return vma; |
vma | 173 | arch/mips/kernel/ptrace.c | if (!(vma->vm_flags & VM_GROWSDOWN)) |
vma | 175 | arch/mips/kernel/ptrace.c | if (vma->vm_end - addr > tsk->rlim[RLIMIT_STACK].rlim_cur) |
vma | 177 | arch/mips/kernel/ptrace.c | vma->vm_offset -= vma->vm_start - addr; |
vma | 178 | arch/mips/kernel/ptrace.c | vma->vm_start = addr; |
vma | 179 | arch/mips/kernel/ptrace.c | return vma; |
vma | 189 | arch/mips/kernel/ptrace.c | struct vm_area_struct * vma = find_extend_vma(tsk, addr); |
vma | 191 | arch/mips/kernel/ptrace.c | if (!vma) |
vma | 195 | arch/mips/kernel/ptrace.c | struct vm_area_struct * vma_high = vma; |
vma | 197 | arch/mips/kernel/ptrace.c | if (addr + sizeof(long) >= vma->vm_end) { |
vma | 198 | arch/mips/kernel/ptrace.c | vma_high = vma->vm_next; |
vma | 199 | arch/mips/kernel/ptrace.c | if (!vma_high || vma_high->vm_start != vma->vm_end) |
vma | 202 | arch/mips/kernel/ptrace.c | low = get_long(vma, addr & ~(sizeof(long)-1)); |
vma | 220 | arch/mips/kernel/ptrace.c | *result = get_long(vma, addr); |
vma | 231 | arch/mips/kernel/ptrace.c | struct vm_area_struct * vma = find_extend_vma(tsk, addr); |
vma | 233 | arch/mips/kernel/ptrace.c | if (!vma) |
vma | 237 | arch/mips/kernel/ptrace.c | struct vm_area_struct * vma_high = vma; |
vma | 239 | arch/mips/kernel/ptrace.c | if (addr + sizeof(long) >= vma->vm_end) { |
vma | 240 | arch/mips/kernel/ptrace.c | vma_high = vma->vm_next; |
vma | 241 | arch/mips/kernel/ptrace.c | if (!vma_high || vma_high->vm_start != vma->vm_end) |
vma | 244 | arch/mips/kernel/ptrace.c | low = get_long(vma, addr & ~(sizeof(long)-1)); |
vma | 269 | arch/mips/kernel/ptrace.c | put_long(vma, addr & ~(sizeof(long)-1),low); |
vma | 272 | arch/mips/kernel/ptrace.c | put_long(vma, addr, data); |
vma | 39 | arch/mips/mm/fault.c | struct vm_area_struct * vma; |
vma | 47 | arch/mips/mm/fault.c | for (vma = current->mm->mmap ; ; vma = vma->vm_next) { |
vma | 48 | arch/mips/mm/fault.c | if (!vma) |
vma | 50 | arch/mips/mm/fault.c | if (vma->vm_end > address) |
vma | 53 | arch/mips/mm/fault.c | if (vma->vm_start <= address) |
vma | 55 | arch/mips/mm/fault.c | if (!(vma->vm_flags & VM_GROWSDOWN)) |
vma | 57 | arch/mips/mm/fault.c | if (vma->vm_end - address > current->rlim[RLIMIT_STACK].rlim_cur) |
vma | 59 | arch/mips/mm/fault.c | vma->vm_offset -= vma->vm_start - (address & PAGE_MASK); |
vma | 60 | arch/mips/mm/fault.c | vma->vm_start = (address & PAGE_MASK); |
vma | 70 | arch/mips/mm/fault.c | if (!(vma->vm_flags & VM_WRITE)) |
vma | 76 | arch/mips/mm/fault.c | if (!(vma->vm_flags & (VM_READ | VM_EXEC))) |
vma | 80 | arch/mips/mm/fault.c | do_wp_page(vma, address, error_code & 2); |
vma | 83 | arch/mips/mm/fault.c | do_no_page(vma, address, error_code & 2); |
vma | 87 | drivers/char/mem.c | static int mmap_mem(struct inode * inode, struct file * file, struct vm_area_struct * vma) |
vma | 89 | drivers/char/mem.c | if (vma->vm_offset & ~PAGE_MASK) |
vma | 98 | drivers/char/mem.c | if (x86 > 3 && vma->vm_offset >= high_memory) |
vma | 99 | drivers/char/mem.c | vma->vm_page_prot |= PAGE_PCD; |
vma | 101 | drivers/char/mem.c | if (remap_page_range(vma->vm_start, vma->vm_offset, vma->vm_end - vma->vm_start, vma->vm_page_prot)) |
vma | 103 | drivers/char/mem.c | vma->vm_inode = inode; |
vma | 171 | drivers/char/mem.c | static int mmap_zero(struct inode * inode, struct file * file, struct vm_area_struct * vma) |
vma | 173 | drivers/char/mem.c | if (vma->vm_flags & VM_SHARED) |
vma | 175 | drivers/char/mem.c | if (zeromap_page_range(vma->vm_start, vma->vm_end - vma->vm_start, vma->vm_page_prot)) |
vma | 93 | fs/msdos/mmap.c | int msdos_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma) |
vma | 95 | fs/msdos/mmap.c | if (vma->vm_flags & VM_SHARED) /* only PAGE_COW or read-only supported now */ |
vma | 97 | fs/msdos/mmap.c | if (vma->vm_offset & (inode->i_sb->s_blocksize - 1)) |
vma | 106 | fs/msdos/mmap.c | vma->vm_inode = inode; |
vma | 108 | fs/msdos/mmap.c | vma->vm_ops = &msdos_file_mmap; |
vma | 31 | fs/namei.c | struct vm_area_struct * vma; |
vma | 35 | fs/namei.c | vma = find_vma(current, address); |
vma | 36 | fs/namei.c | if (!vma || vma->vm_start > address || !(vma->vm_flags & VM_READ)) |
vma | 38 | fs/namei.c | address = vma->vm_end - address; |
vma | 41 | fs/namei.c | if (vma->vm_next && vma->vm_next->vm_start == vma->vm_end && |
vma | 42 | fs/namei.c | (vma->vm_next->vm_flags & VM_READ)) |
vma | 97 | fs/nfs/mmap.c | int nfs_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma) |
vma | 99 | fs/nfs/mmap.c | if (vma->vm_flags & VM_SHARED) /* only PAGE_COW or read-only supported now */ |
vma | 108 | fs/nfs/mmap.c | vma->vm_inode = inode; |
vma | 110 | fs/nfs/mmap.c | vma->vm_ops = &nfs_file_mmap; |
vma | 137 | fs/proc/link.c | struct vm_area_struct * vma = p->mm->mmap; |
vma | 138 | fs/proc/link.c | while (vma) { |
vma | 139 | fs/proc/link.c | if (vma->vm_flags & VM_EXECUTABLE) { |
vma | 140 | fs/proc/link.c | new_inode = vma->vm_inode; |
vma | 143 | fs/proc/link.c | vma = vma->vm_next; |
vma | 155 | fs/proc/mem.c | struct vm_area_struct * vma) |
vma | 182 | fs/proc/mem.c | stmp = vma->vm_offset; |
vma | 183 | fs/proc/mem.c | while (stmp < vma->vm_offset + (vma->vm_end - vma->vm_start)) { |
vma | 211 | fs/proc/mem.c | stmp = vma->vm_offset; |
vma | 212 | fs/proc/mem.c | dtmp = vma->vm_start; |
vma | 214 | fs/proc/mem.c | while (dtmp < vma->vm_end) { |
vma | 244 | fs/proc/mem.c | if ((vma->vm_flags & VM_WRITE) && !pte_write(*src_table)) |
vma | 515 | fs/super.c | struct vm_area_struct * vma; |
vma | 521 | fs/super.c | vma = find_vma(current, (unsigned long) data); |
vma | 522 | fs/super.c | if (!vma || (unsigned long) data < vma->vm_start) |
vma | 524 | fs/super.c | i = vma->vm_end - (unsigned long) data; |
vma | 184 | include/linux/mm.h | extern void do_wp_page(struct vm_area_struct * vma, unsigned long address, int write_access); |
vma | 185 | include/linux/mm.h | extern void do_no_page(struct vm_area_struct * vma, unsigned long address, int write_access); |
vma | 116 | include/linux/nfs_fs.h | extern int nfs_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma); |
vma | 63 | mm/filemap.c | static inline void file_mmap_sync_page(struct vm_area_struct * vma, |
vma | 85 | mm/filemap.c | static void file_mmap_sync(struct vm_area_struct * vma, unsigned long start, |
vma | 94 | mm/filemap.c | start -= vma->vm_start; |
vma | 131 | mm/filemap.c | file_mmap_sync_page(vma, start, pte_page(pte)); |
vma | 142 | mm/filemap.c | static void file_mmap_unmap(struct vm_area_struct *vma, unsigned long start, size_t len) |
vma | 144 | mm/filemap.c | file_mmap_sync(vma, start, len, MS_ASYNC); |
vma | 150 | mm/filemap.c | static void file_mmap_close(struct vm_area_struct * vma) |
vma | 152 | mm/filemap.c | file_mmap_sync(vma, vma->vm_start, vma->vm_end - vma->vm_start, MS_ASYNC); |
vma | 162 | mm/filemap.c | void file_mmap_swapout(struct vm_area_struct * vma, |
vma | 208 | mm/filemap.c | int generic_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma) |
vma | 212 | mm/filemap.c | if (vma->vm_offset & (inode->i_sb->s_blocksize - 1)) |
vma | 219 | mm/filemap.c | if (vma->vm_flags & VM_SHARED) { |
vma | 220 | mm/filemap.c | if (vma->vm_flags & (VM_WRITE | VM_MAYWRITE)) { |
vma | 232 | mm/filemap.c | vma->vm_inode = inode; |
vma | 234 | mm/filemap.c | vma->vm_ops = ops; |
vma | 518 | mm/memory.c | void do_wp_page(struct vm_area_struct * vma, unsigned long address, |
vma | 526 | mm/memory.c | page_dir = PAGE_DIR_OFFSET(vma->vm_task,address); |
vma | 541 | mm/memory.c | vma->vm_task->mm->min_flt++; |
vma | 548 | mm/memory.c | ++vma->vm_task->mm->rss; |
vma | 550 | mm/memory.c | *page_table = pte_mkwrite(pte_mkdirty(mk_pte(new_page, vma->vm_page_prot))); |
vma | 556 | mm/memory.c | oom(vma->vm_task); |
vma | 569 | mm/memory.c | send_sig(SIGKILL, vma->vm_task, 1); |
vma | 574 | mm/memory.c | send_sig(SIGKILL, vma->vm_task, 1); |
vma | 586 | mm/memory.c | struct vm_area_struct * vma; |
vma | 596 | mm/memory.c | vma = find_vma(current, start); |
vma | 597 | mm/memory.c | if (!vma) |
vma | 599 | mm/memory.c | if (vma->vm_start <= start) |
vma | 601 | mm/memory.c | if (!(vma->vm_flags & VM_GROWSDOWN)) |
vma | 603 | mm/memory.c | if (vma->vm_end - start > current->rlim[RLIMIT_STACK].rlim_cur) |
vma | 611 | mm/memory.c | if (!(vma->vm_flags & VM_READ)) |
vma | 613 | mm/memory.c | if (vma->vm_end - start >= size) |
vma | 615 | mm/memory.c | next = vma->vm_next; |
vma | 616 | mm/memory.c | if (!next || vma->vm_end != next->vm_start) |
vma | 618 | mm/memory.c | vma = next; |
vma | 622 | mm/memory.c | if (!(vma->vm_flags & VM_WRITE)) |
vma | 627 | mm/memory.c | if (vma->vm_end - start >= size) |
vma | 629 | mm/memory.c | if (!vma->vm_next || vma->vm_end != vma->vm_next->vm_start) |
vma | 631 | mm/memory.c | vma = vma->vm_next; |
vma | 632 | mm/memory.c | if (!(vma->vm_flags & VM_WRITE)) |
vma | 644 | mm/memory.c | do_wp_page(vma, start, 1); |
vma | 649 | mm/memory.c | if (start < vma->vm_end) |
vma | 651 | mm/memory.c | vma = vma->vm_next; |
vma | 652 | mm/memory.c | if (!vma || vma->vm_start != start) |
vma | 654 | mm/memory.c | if (!(vma->vm_flags & VM_WRITE)) |
vma | 663 | mm/memory.c | static inline void get_empty_page(struct vm_area_struct * vma, pte_t * page_table) |
vma | 668 | mm/memory.c | oom(vma->vm_task); |
vma | 672 | mm/memory.c | put_page(page_table, pte_mkwrite(mk_pte(tmp, vma->vm_page_prot))); |
vma | 852 | mm/memory.c | static inline void do_swap_page(struct vm_area_struct * vma, unsigned long address, |
vma | 857 | mm/memory.c | if (!vma->vm_ops || !vma->vm_ops->swapin) { |
vma | 858 | mm/memory.c | swap_in(vma, page_table, pte_val(entry), write_access); |
vma | 861 | mm/memory.c | page = vma->vm_ops->swapin(vma, address - vma->vm_start + vma->vm_offset, pte_val(entry)); |
vma | 866 | mm/memory.c | if (mem_map[MAP_NR(pte_page(page))] > 1 && !(vma->vm_flags & VM_SHARED)) |
vma | 868 | mm/memory.c | ++vma->vm_task->mm->rss; |
vma | 869 | mm/memory.c | ++vma->vm_task->mm->maj_flt; |
vma | 880 | mm/memory.c | void do_no_page(struct vm_area_struct * vma, unsigned long address, |
vma | 887 | mm/memory.c | page_table = get_empty_pgtable(vma->vm_task,address); |
vma | 894 | mm/memory.c | do_swap_page(vma, address, page_table, entry, write_access); |
vma | 899 | mm/memory.c | if (!vma->vm_ops || !vma->vm_ops->nopage) { |
vma | 900 | mm/memory.c | ++vma->vm_task->mm->rss; |
vma | 901 | mm/memory.c | ++vma->vm_task->mm->min_flt; |
vma | 902 | mm/memory.c | get_empty_page(vma, page_table); |
vma | 906 | mm/memory.c | if (share_page(vma, address, write_access, page)) { |
vma | 907 | mm/memory.c | ++vma->vm_task->mm->min_flt; |
vma | 908 | mm/memory.c | ++vma->vm_task->mm->rss; |
vma | 916 | mm/memory.c | ++vma->vm_task->mm->maj_flt; |
vma | 917 | mm/memory.c | ++vma->vm_task->mm->rss; |
vma | 923 | mm/memory.c | page = vma->vm_ops->nopage(vma, address, page, |
vma | 924 | mm/memory.c | write_access && !(vma->vm_flags & VM_SHARED)); |
vma | 925 | mm/memory.c | if (share_page(vma, address, write_access, 0)) { |
vma | 939 | mm/memory.c | entry = mk_pte(page, vma->vm_page_prot); |
vma | 942 | mm/memory.c | } else if (mem_map[MAP_NR(page)] > 1 && !(vma->vm_flags & VM_SHARED)) |
vma | 47 | mm/mmap.c | struct vm_area_struct * vma; |
vma | 108 | mm/mmap.c | vma = (struct vm_area_struct *)kmalloc(sizeof(struct vm_area_struct), |
vma | 110 | mm/mmap.c | if (!vma) |
vma | 113 | mm/mmap.c | vma->vm_task = current; |
vma | 114 | mm/mmap.c | vma->vm_start = addr; |
vma | 115 | mm/mmap.c | vma->vm_end = addr + len; |
vma | 116 | mm/mmap.c | vma->vm_flags = prot & (VM_READ | VM_WRITE | VM_EXEC); |
vma | 117 | mm/mmap.c | vma->vm_flags |= flags & (VM_GROWSDOWN | VM_DENYWRITE | VM_EXECUTABLE); |
vma | 121 | mm/mmap.c | vma->vm_flags |= VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC; |
vma | 123 | mm/mmap.c | vma->vm_flags |= VM_SHARED | VM_MAYSHARE; |
vma | 135 | mm/mmap.c | vma->vm_flags &= ~(VM_MAYWRITE | VM_SHARED); |
vma | 138 | mm/mmap.c | vma->vm_flags |= VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC; |
vma | 139 | mm/mmap.c | vma->vm_page_prot = protection_map[vma->vm_flags & 0x0f]; |
vma | 140 | mm/mmap.c | vma->vm_ops = NULL; |
vma | 141 | mm/mmap.c | vma->vm_offset = off; |
vma | 142 | mm/mmap.c | vma->vm_inode = NULL; |
vma | 143 | mm/mmap.c | vma->vm_pte = 0; |
vma | 148 | mm/mmap.c | error = file->f_op->mmap(file->f_inode, file, vma); |
vma | 150 | mm/mmap.c | error = anon_map(NULL, NULL, vma); |
vma | 153 | mm/mmap.c | kfree(vma); |
vma | 156 | mm/mmap.c | insert_vm_struct(current, vma); |
vma | 157 | mm/mmap.c | merge_segments(current, vma->vm_start, vma->vm_end); |
vma | 244 | mm/mmap.c | struct vm_area_struct * vma; |
vma | 246 | mm/mmap.c | for (vma = task->mm->mmap ; ; vma = vma->vm_next) { |
vma | 247 | mm/mmap.c | if (!vma) |
vma | 249 | mm/mmap.c | if (vma->vm_end > addr) |
vma | 250 | mm/mmap.c | return vma; |
vma | 274 | mm/mmap.c | struct vm_area_struct * vma; |
vma | 277 | mm/mmap.c | for (vma = task->mm->mmap; vma; vma = vma->vm_next) { |
vma | 278 | mm/mmap.c | if (end_addr <= vma->vm_start) |
vma | 280 | mm/mmap.c | if (start_addr < vma->vm_end) |
vma | 281 | mm/mmap.c | return vma; |
vma | 285 | mm/mmap.c | vma = find_vma(task,start_addr); |
vma | 286 | mm/mmap.c | if (!vma || end_addr <= vma->vm_start) |
vma | 288 | mm/mmap.c | return vma; |
vma | 526 | mm/mmap.c | static void printk_list (struct vm_area_struct * vma) |
vma | 529 | mm/mmap.c | while (vma) { |
vma | 530 | mm/mmap.c | printk("%08lX-%08lX", vma->vm_start, vma->vm_end); |
vma | 531 | mm/mmap.c | vma = vma->vm_next; |
vma | 532 | mm/mmap.c | if (!vma) |
vma | 791 | mm/mmap.c | struct vm_area_struct * vma; |
vma | 794 | mm/mmap.c | for (vma = task->mm->mmap; vma; vma = vma->vm_next) |
vma | 795 | mm/mmap.c | avl_insert(vma, &task->mm->mmap_avl); |
vma | 969 | mm/mmap.c | static int anon_map(struct inode *ino, struct file * file, struct vm_area_struct * vma) |
vma | 971 | mm/mmap.c | if (zeromap_page_range(vma->vm_start, vma->vm_end - vma->vm_start, vma->vm_page_prot)) |
vma | 59 | mm/mprotect.c | static inline int mprotect_fixup_all(struct vm_area_struct * vma, |
vma | 62 | mm/mprotect.c | vma->vm_flags = newflags; |
vma | 63 | mm/mprotect.c | vma->vm_page_prot = prot; |
vma | 67 | mm/mprotect.c | static inline int mprotect_fixup_start(struct vm_area_struct * vma, |
vma | 76 | mm/mprotect.c | *n = *vma; |
vma | 77 | mm/mprotect.c | vma->vm_start = end; |
vma | 79 | mm/mprotect.c | vma->vm_offset += vma->vm_start - n->vm_start; |
vma | 90 | mm/mprotect.c | static inline int mprotect_fixup_end(struct vm_area_struct * vma, |
vma | 99 | mm/mprotect.c | *n = *vma; |
vma | 100 | mm/mprotect.c | vma->vm_end = start; |
vma | 102 | mm/mprotect.c | n->vm_offset += n->vm_start - vma->vm_start; |
vma | 113 | mm/mprotect.c | static inline int mprotect_fixup_middle(struct vm_area_struct * vma, |
vma | 127 | mm/mprotect.c | *left = *vma; |
vma | 128 | mm/mprotect.c | *right = *vma; |
vma | 130 | mm/mprotect.c | vma->vm_start = start; |
vma | 131 | mm/mprotect.c | vma->vm_end = end; |
vma | 133 | mm/mprotect.c | vma->vm_offset += vma->vm_start - left->vm_start; |
vma | 135 | mm/mprotect.c | vma->vm_flags = newflags; |
vma | 136 | mm/mprotect.c | vma->vm_page_prot = prot; |
vma | 137 | mm/mprotect.c | if (vma->vm_inode) |
vma | 138 | mm/mprotect.c | vma->vm_inode->i_count += 2; |
vma | 139 | mm/mprotect.c | if (vma->vm_ops && vma->vm_ops->open) { |
vma | 140 | mm/mprotect.c | vma->vm_ops->open(left); |
vma | 141 | mm/mprotect.c | vma->vm_ops->open(right); |
vma | 148 | mm/mprotect.c | static int mprotect_fixup(struct vm_area_struct * vma, |
vma | 154 | mm/mprotect.c | if (newflags == vma->vm_flags) |
vma | 157 | mm/mprotect.c | if (start == vma->vm_start) |
vma | 158 | mm/mprotect.c | if (end == vma->vm_end) |
vma | 159 | mm/mprotect.c | error = mprotect_fixup_all(vma, newflags, newprot); |
vma | 161 | mm/mprotect.c | error = mprotect_fixup_start(vma, end, newflags, newprot); |
vma | 162 | mm/mprotect.c | else if (end == vma->vm_end) |
vma | 163 | mm/mprotect.c | error = mprotect_fixup_end(vma, start, newflags, newprot); |
vma | 165 | mm/mprotect.c | error = mprotect_fixup_middle(vma, start, end, newflags, newprot); |
vma | 177 | mm/mprotect.c | struct vm_area_struct * vma, * next; |
vma | 190 | mm/mprotect.c | vma = find_vma(current, start); |
vma | 191 | mm/mprotect.c | if (!vma || vma->vm_start > start) |
vma | 199 | mm/mprotect.c | newflags = prot | (vma->vm_flags & ~(PROT_READ | PROT_WRITE | PROT_EXEC)); |
vma | 205 | mm/mprotect.c | if (vma->vm_end >= end) { |
vma | 206 | mm/mprotect.c | error = mprotect_fixup(vma, nstart, end, newflags); |
vma | 210 | mm/mprotect.c | tmp = vma->vm_end; |
vma | 211 | mm/mprotect.c | next = vma->vm_next; |
vma | 212 | mm/mprotect.c | error = mprotect_fixup(vma, nstart, tmp, newflags); |
vma | 216 | mm/mprotect.c | vma = next; |
vma | 217 | mm/mprotect.c | if (!vma || vma->vm_start != nstart) { |
vma | 281 | mm/swap.c | void swap_in(struct vm_area_struct * vma, pte_t * page_table, |
vma | 301 | mm/swap.c | vma->vm_task->mm->rss++; |
vma | 302 | mm/swap.c | vma->vm_task->mm->maj_flt++; |
vma | 304 | mm/swap.c | *page_table = mk_pte(page, vma->vm_page_prot); |
vma | 307 | mm/swap.c | *page_table = pte_mkwrite(pte_mkdirty(mk_pte(page, vma->vm_page_prot))); |
vma | 312 | mm/swap.c | static inline int try_to_swap_out(struct vm_area_struct* vma, unsigned offset, pte_t * page_table) |
vma | 333 | mm/swap.c | if (vma->vm_ops && vma->vm_ops->swapout) |
vma | 334 | mm/swap.c | vma->vm_ops->swapout(vma, offset, page_table); |
vma | 394 | mm/swap.c | struct vm_area_struct* vma; |
vma | 405 | mm/swap.c | vma = find_vma(p, address); |
vma | 406 | mm/swap.c | if (!vma) |
vma | 408 | mm/swap.c | if (address < vma->vm_start) |
vma | 409 | mm/swap.c | address = vma->vm_start; |
vma | 437 | mm/swap.c | if (address+offset < vma->vm_end) |
vma | 439 | mm/swap.c | vma = vma->vm_next; |
vma | 440 | mm/swap.c | if (!vma) |
vma | 444 | mm/swap.c | switch(try_to_swap_out(vma, offset+address-vma->vm_start, pg_table)) { |