OpenBSD manual page server

Manual Page Search Parameters

MPROTECT(2) System Calls Manual MPROTECT(2)

mprotectcontrol the protection of pages

#include <sys/types.h>
#include <sys/mman.h>

int
mprotect(void *addr, size_t len, int prot);

The () system call sets the access protections for the pages that contain the address range addr through addr + len - 1 (inclusive). If len is 0, no action is taken on the page that contains addr.

Not all implementations will guarantee protection on a page basis; the granularity of protection changes may be as large as an entire region. Nor will all implementations guarantee to give exactly the requested permissions; more permissions may be granted than requested by prot.

The protections (region accessibility) are specified in the prot argument by OR'ing the following values:

Pages may be executed.
Pages may be read.
Pages may be written.
No permissions.

Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error.

madvise(2), mincore(2), msync(2), munmap(2)

The mprotect() function first appeared in 4.4BSD.

The OpenBSD implementation of mprotect() does not require addr to be page-aligned, although other implementations may.

February 12, 2010 OpenBSD-5.1