Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
fremap.c File Reference
#include <linux/export.h>
#include <linux/backing-dev.h>
#include <linux/mm.h>
#include <linux/swap.h>
#include <linux/file.h>
#include <linux/mman.h>
#include <linux/pagemap.h>
#include <linux/swapops.h>
#include <linux/rmap.h>
#include <linux/syscalls.h>
#include <linux/mmu_notifier.h>
#include <asm/mmu_context.h>
#include <asm/cacheflush.h>
#include <asm/tlbflush.h>
#include "internal.h"

Go to the source code of this file.

Functions

int generic_file_remap_pages (struct vm_area_struct *vma, unsigned long addr, unsigned long size, pgoff_t pgoff)
 
 EXPORT_SYMBOL (generic_file_remap_pages)
 
 SYSCALL_DEFINE5 (remap_file_pages, unsigned long, start, unsigned long, size, unsigned long, prot, unsigned long, pgoff, unsigned long, flags)
 

Function Documentation

EXPORT_SYMBOL ( generic_file_remap_pages  )
int generic_file_remap_pages ( struct vm_area_struct vma,
unsigned long  addr,
unsigned long  size,
pgoff_t  pgoff 
)

Definition at line 84 of file fremap.c.

SYSCALL_DEFINE5 ( remap_file_pages  ,
unsigned  long,
start  ,
unsigned  long,
size  ,
unsigned  long,
prot  ,
unsigned  long,
pgoff  ,
unsigned  long,
flags   
)

sys_remap_file_pages - remap arbitrary pages of an existing VM_SHARED vma : start of the remapped virtual memory range : size of the remapped virtual memory range : new protection bits of the range (see NOTE) : to-be-mapped page of the backing store file : 0 or MAP_NONBLOCKED - the later will cause no IO.

sys_remap_file_pages remaps arbitrary pages of an existing VM_SHARED vma (shared backing store file).

This syscall works purely via pagetables, so it's the most efficient way to map the same (large) file into a given virtual window. Unlike mmap()/mremap() it does not create any new vmas. The new mappings are also safe across swapout.

NOTE: the parameter right now is ignored (but must be zero), and the vma's default protection is used. Arbitrary protections might be implemented in the future.

Definition at line 124 of file fremap.c.