Penguin
Annotated edit history of mincore(2) version 2, including all changes. View license author blame.
Rev Author # Line
1 perry 1 !!NAME
2 PerryLorier 2 mincore - get information on whether pages are in core
1 perry 3
4 !!SYNOPSIS
2 PerryLorier 5 #include <unistd.h>
6 #include <sys/mman.h>
1 perry 7
2 PerryLorier 8 __int mincore(void *__''start''__, size_t__ ''length''__, unsigned char *__ ''vec''__);__
1 perry 9
10 !!DESCRIPTION
2 PerryLorier 11 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''
12 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
1 perry 13 resident.
14
2 PerryLorier 15 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
16 getpagesize(2).
1 perry 17
18 !!RETURN VALUE
2 PerryLorier 19 On success, __mincore__ returns zero. On error, -1 is returned, and ''errno'' is set appropriately.
1 perry 20 !!ERRORS
2 PerryLorier 21 ;[EAGAIN]: kernel is temporarily out of resources
22 ;[EINVAL]: is not a multiple of the page size, or has a non-positive value
23 ;[EFAULT]: ''vec'' points to an illegal address
24 ;[ENOMEM]: ''address'' to ''address'' + ''length'' contained unmapped memory, or memory not part of a file.
1 perry 25
26 !!BUGS
2 PerryLorier 27 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
28 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.
1 perry 29
30 !!CONFORMING TO
2 PerryLorier 31 mincore(2) does not appear to be part of POSIX or the Single Unix Specification.
1 perry 32
33 !!HISTORY
2 PerryLorier 34 The mincore(2) function first appeared in 4.4BSD.
1 perry 35
36 !!AVAILABILITY
2 PerryLorier 37 Since Linux 2.3.99pre1 and glibc 2.2.
1 perry 38
39 !!SEE ALSO
40 getpagesize(2), mmap(2)
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.

PHP Warning

lib/blame.php:177: Warning: Invalid argument supplied for foreach() (...repeated 11 times)