summaryrefslogtreecommitdiffstats
path: root/man2/remap_file_pages.2
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-24 04:52:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-24 04:52:22 +0000
commit3d08cd331c1adcf0d917392f7e527b3f00511748 (patch)
tree312f0d1e1632f48862f044b8bb87e602dcffb5f9 /man2/remap_file_pages.2
parentAdding debian version 6.7-2. (diff)
downloadmanpages-3d08cd331c1adcf0d917392f7e527b3f00511748.tar.xz
manpages-3d08cd331c1adcf0d917392f7e527b3f00511748.zip
Merging upstream version 6.8.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man2/remap_file_pages.2')
-rw-r--r--man2/remap_file_pages.2170
1 files changed, 0 insertions, 170 deletions
diff --git a/man2/remap_file_pages.2 b/man2/remap_file_pages.2
deleted file mode 100644
index f662c46..0000000
--- a/man2/remap_file_pages.2
+++ /dev/null
@@ -1,170 +0,0 @@
-.\" Copyright (C) 2003, Michael Kerrisk <mtk.manpages@gmail.com>
-.\"
-.\" SPDX-License-Identifier: Linux-man-pages-copyleft
-.\"
-.\" 2003-12-10 Initial creation, Michael Kerrisk <mtk.manpages@gmail.com>
-.\" 2004-10-28 aeb, corrected prototype, prot must be 0
-.\"
-.TH remap_file_pages 2 2023-10-31 "Linux man-pages 6.7"
-.SH NAME
-remap_file_pages \- create a nonlinear file mapping
-.SH LIBRARY
-Standard C library
-.RI ( libc ", " \-lc )
-.SH SYNOPSIS
-.nf
-.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
-.B #include <sys/mman.h>
-.P
-.BI "[[deprecated]] int remap_file_pages(void " addr [. size "], size_t " size ,
-.BI " int " prot ", size_t " pgoff ", \
-int " flags );
-.fi
-.SH DESCRIPTION
-.BR Note :
-.\" commit 33041a0d76d3c3e0aff28ac95a2ffdedf1282dbc
-.\" http://lwn.net/Articles/597632/
-this system call was marked as deprecated starting with Linux 3.16.
-In Linux 4.0, the implementation was replaced
-.\" commit c8d78c1823f46519473949d33f0d1d33fe21ea16
-by a slower in-kernel emulation.
-Those few applications that use this system call should
-consider migrating to alternatives.
-This change was made because the kernel code for this system call was complex,
-and it is believed to be little used or perhaps even completely unused.
-While it had some use cases in database applications on 32-bit systems,
-those use cases don't exist on 64-bit systems.
-.P
-The
-.BR remap_file_pages ()
-system call is used to create a nonlinear mapping, that is, a mapping
-in which the pages of the file are mapped into a nonsequential order
-in memory.
-The advantage of using
-.BR remap_file_pages ()
-over using repeated calls to
-.BR mmap (2)
-is that the former approach does not require the kernel to create
-additional VMA (Virtual Memory Area) data structures.
-.P
-To create a nonlinear mapping we perform the following steps:
-.TP 3
-1.
-Use
-.BR mmap (2)
-to create a mapping (which is initially linear).
-This mapping must be created with the
-.B MAP_SHARED
-flag.
-.TP
-2.
-Use one or more calls to
-.BR 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.
-.P
-The
-.I pgoff
-and
-.I size
-arguments specify the region of the file that is to be relocated
-within the mapping:
-.I pgoff
-is a file offset in units of the system page size;
-.I size
-is the length of the region in bytes.
-.P
-The
-.I addr
-argument serves two purposes.
-First, it identifies the mapping whose pages we want to rearrange.
-Thus,
-.I addr
-must be an address that falls within
-a region previously mapped by a call to
-.BR mmap (2).
-Second,
-.I addr
-specifies the address at which the file pages
-identified by
-.I pgoff
-and
-.I size
-will be placed.
-.P
-The values specified in
-.I addr
-and
-.I size
-should be multiples of the system page size.
-If they are not, then the kernel rounds
-.I both
-values
-.I down
-to the nearest multiple of the page size.
-.\" This rounding is weird, and not consistent with the treatment of
-.\" the analogous arguments for munmap()/mprotect() and for mlock().
-.\" MTK, 14 Sep 2005
-.P
-The
-.I prot
-argument must be specified as 0.
-.P
-The
-.I flags
-argument has the same meaning as for
-.BR mmap (2),
-but all flags other than
-.B MAP_NONBLOCK
-are ignored.
-.SH RETURN VALUE
-On success,
-.BR remap_file_pages ()
-returns 0.
-On error, \-1 is returned, and
-.I errno
-is set to indicate the error.
-.SH ERRORS
-.TP
-.B EINVAL
-.I addr
-does not refer to a valid mapping
-created with the
-.B MAP_SHARED
-flag.
-.TP
-.B EINVAL
-.IR addr ,
-.IR size ,
-.IR prot ,
-or
-.I pgoff
-is invalid.
-.\" And possibly others from vma->vm_ops->populate()
-.SH STANDARDS
-Linux.
-.SH HISTORY
-Linux 2.5.46,
-glibc 2.3.3.
-.SH NOTES
-Since Linux 2.6.23,
-.\" commit 3ee6dafc677a68e461a7ddafc94a580ebab80735
-.BR remap_file_pages ()
-creates non-linear mappings only
-on in-memory filesystems such as
-.BR tmpfs (5),
-hugetlbfs or ramfs.
-On filesystems with a backing store,
-.BR remap_file_pages ()
-is not much more efficient than using
-.BR mmap (2)
-to adjust which parts of the file are mapped to which addresses.
-.SH SEE ALSO
-.BR getpagesize (2),
-.BR mmap (2),
-.BR mmap2 (2),
-.BR mprotect (2),
-.BR mremap (2),
-.BR msync (2)