mprotect(2) mprotect(2)
NAME
mprotect - set protection of memory mapping
SYNOPSIS
#include <sys/types.h>
#include <sys/mman.h>
int mprotect(caddr_t addr, size_t len, int prot);
DESCRIPTION
mprotect changes the access protections on the mappings
specified by the range [addr, addr + len) to be that specified
by prot. The access protections will apply to the entire page
or pages containing [addr, addr + len). (The notation [start,
end) denotes the interval from start to end, including start
but excluding end.)
Legitimate values for prot are the same as those permitted for
mmap and are defined in sys/mman.h as:
PROT_READ /* page can be read */
PROT_WRITE /* page can be written */
PROT_EXEC /* page can be executed */
PROT_NONE /* page can not be accessed */
Return Values
On success, mprotect returns 0. On failure, mprotect returns
-1 and sets errno to identify the error.
Errors
In the following conditions, mprotect fails and sets errno to:
EACCES prot specifies a protection that violates the access
permission the process has to the underlying memory
object.
EAGAIN prot specifies PROT_WRITE over a MAP_PRIVATE mapping and
there are insufficient memory resources to reserve for
locking the private page.
EINVAL addr is not a multiple of the page size as returned by
sysconf.
ENOMEM The argument len has a value less than or equal to 0.
ENOMEM Addresses in the range [addr, addr + len] are invalid
for the address space of a process, or specify one or
more pages which are not mapped.
Copyright 1994 Novell, Inc. Page 1
mprotect(2) mprotect(2)
When mprotect fails for reasons other than EINVAL, the
protections on some of the pages in the range [addr, addr +
len] may have been changed. If the error occurs on some page
at addr2, then the protections of all whole pages in the range
[addr, addr2] will have been modified.
REFERENCES
mlock(3C), mlockall(3C), memcntl(2), mmap(2), plock(2),
sysconf(3C)
NOTICES
Considerations for Threads Programming
Sibling threads share (by definition) the same address space;
modifications to the address space by one can be perceived by
the others.
Copyright 1994 Novell, Inc. Page 2