Comrite Unix Man page/Perldoc/Info page, English-Chinese Dictionary, Chinese-English Dictionary

remap_file_pages

Command: man perldoc info search(apropos)  


 
REMAP_FILE_PAGES(2)        Linux Programmer's Manual       REMAP_FILE_PAGES(2)



NAME
       remap_file_pages - create a non-linear file mapping

SYNOPSIS
       #include <sys/mman.h>

       void  *remap_file_pages(void  *start,  size_t  size,  int prot, ssize_t
       pgoff, int flags);

DESCRIPTION
       The remap_file_pages() system call is used to create a non-linear  map-
       ping, that is, a mapping in which the pages of the file are mapped into
       a  non-sequential  order   in   memory.    The   advantage   of   using
       remap_file_pages()  over  using  repeated  calls to mmap(2) is that the
       former approach does not require the kernel to  create  additional  VMA
       (Virtual Memory Area) data structures.

       To create a non-linear mapping we perform the following steps:

       1.     Use  mmap()  to  create  a  mapping (which is initially linear).
              This mapping must be created with the MAP_SHARED flag.

       2.     Use one or more calls to  remap_file_pages()  to  rearrange  the
              correspondence between the pages of the mapping and the pages of
              the file.  It is possible to map the same page of  a  file  into
              multiple locations within the mapped region.

       The  pgoff and size arguments specify the region of the file that is to
       be relocated within the mapping: pgoff is a file offset in units of the
       system page size; size is the length of the region in bytes.

       The  start argument serves two purposes.  First, it identifies the map-
       ping whose pages we want to rearrange.  Thus, start must be an  address
       that falls within a region previously mapped by a call to mmap().  Sec-
       ond, start specifies the address at which the file pages identified  by
       pgoff and size will be placed.

       The  prot  argument  is  ignored,  and  must be specified as 0.  In the
       future, it may be possible to use this argument to change  the  protec-
       tion  of  the  pages of the specified region without creating a new VMA
       (as is done by mprotect()).

       The flags argument has the same meaning as for mmap(),  but  all  flags
       other than MAP_NONBLOCK are ignored.

RETURN VALUE
       On  success,  remap_file_pages()  returns 0.  On error, -1 is returned,
       and errno is set appropriately.

NOTES
       The remap_file_pages() system call appeared in Linux 2.5.46.

ERRORS
       EINVAL start does not  refer  to  a  valid  mapping  created  with  the
              MAP_SHARED flag.

       EINVAL start, size, or pgoff is invalid.

CONFORMING TO
       The remap_file_pages() system call is Linux specific.

SEE ALSO
       getpagesize(2), mmap(2), mmap2(2), mprotect(2), mremap(2), msync(2).




Linux 2.6                         2003-12-10               REMAP_FILE_PAGES(2)
 

©2005 Comrite