Differences between current version and revision by previous author of mincore(2).
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 2 | Last edited on Monday, March 10, 2003 2:49:12 pm | by PerryLorier | |
Older page: | version 1 | Last edited on Tuesday, June 4, 2002 12:23:42 am | by perry | Revert |
@@ -1,107 +1,40 @@
-MINCORE
-!!!MINCORE
-NAME
-SYNOPSIS
-DESCRIPTION
-RETURN VALUE
-ERRORS
-BUGS
-CONFORMING TO
-HISTORY
-AVAILABILITY
-SEE ALSO
-----
!!NAME
+mincore - get information on whether pages are in core
-
-mincore - get information on whether pages are in core
!!SYNOPSIS
+ #include <unistd.h>
+ #include <sys/mman.h>
+ __int mincore(void *__''start''__, size_t__ ''length''__, unsigned char *__ ''vec''__);__
-__#include __
-#include __
-
-
-__int mincore(void *__''start''__, size_t__
-''length''__, unsigned char *__
-''vec''__);__
!!DESCRIPTION
-
-
-
The __
mincore__
function requests a vector describing
-
which pages of a file are in core and can be read without
-
disk access. The kernel will supply data for ''length''
-bytes following the ''start'' address. On return, the
-
kernel will have filled ''vec'' with bytes, of which the
-
least significant bit indicates if a page is core
+The mincore(2)
function requests a vector describing which pages of a file are in core and can be read without disk access. The kernel will supply data for ''length''
+bytes following the ''start'' address. On return, the kernel will have filled ''vec'' with bytes, of which the least significant bit indicates if a page is core
resident.
+For mincore(2) to return successfully, ''start'' must lie on a page boundary. It is the caller's responsibility to round up to the nearest page. The ''length'' parameter need not be a multiple of the page size. The vector ''vec'' must be large enough to contain length/PAGE_SIZE bytes. One may obtain the page size from
+getpagesize(2).
-For __mincore__ to return successfully, ''start'' must
-lie on a page boundary. It is the caller's responsibility to
-round up to the nearest page. The ''length'' parameter
-need not be a multiple of the page size. The vector
-''vec'' must be large enough to contain length/PAGE_SIZE
-bytes. One may obtain the page size from
-__getpagesize(2).__
!!RETURN VALUE
-
-
-
On success, __mincore__ returns zero. On error, -1 is
-
returned, and ''errno'' is set
-
appropriately.
+On success, __mincore__ returns zero. On error, -1 is returned, and ''errno'' is set appropriately.
!!ERRORS
+;[EAGAIN]: kernel is temporarily out of resources
+;[EINVAL]: is not a multiple of the page size, or has a non-positive value
+;[EFAULT]: ''vec'' points to an illegal address
+;[ENOMEM]: ''address'' to ''address'' + ''length'' contained unmapped memory, or memory not part of a file.
-
-__EAGAIN__ kernel is temporarily out of
-resources
-
-
-__EINVAL__
-
-
-is not a multiple of the page size, or has a non-positive
-value
-
-
-__EFAULT__
-
-
-''vec'' points to an illegal address
-
-
-__ENOMEM__
-
-
-''address'' to ''address'' + ''length'' contained
-unmapped memory, or memory not part of a file.
!!BUGS
+mincore(2) should return a bit vector and not a byte vector. As of Linux 2.4.5, it is not possible to gain information on the core residency of pages which are not
+backed by a file. In other words, calling mincore(2) on an region returned by an anonymous mmap(2) does not work and sets errno to [ENOMEM]. Unless pages are locked in memory, the contents of ''vec'' may be stale by the time they reach userspace.
-
-__mincore__ should return a bit vector and not a byte
-vector. As of Linux 2.4.5, it is not possible to gain
-information on the core residency of pages which are not
-backed by a file. In other words, calling __mincore__ on
-an region returned by an anonymous __mmap(2)__ does not
-work and sets errno to ENOMEM. Unless pages are locked in
-memory, the contents of ''vec'' may be stale by the time
-they reach userspace.
!!CONFORMING TO
+mincore(2) does not appear to be part of POSIX or the Single Unix Specification.
-
-__mincore__ does not appear to be part of POSIX or the
-Single Unix Specification.
!!HISTORY
+The mincore(2) function first appeared in 4.4BSD.
-
-The mincore() function first appeared in
-4.4BSD.
!!AVAILABILITY
+Since Linux 2.3.99pre1 and glibc 2.2.
-
-Since Linux 2.3.99pre1 and glibc 2.2.
!!SEE ALSO
-
-
getpagesize(2), mmap(2)
-----