Manual Page Result
0
Command: mimmutable | Section: 2 | Source: OpenBSD | File: mimmutable.2
MIMMUTABLE(2) FreeBSD System Calls Manual MIMMUTABLE(2)
NAME
mimmutable - control the immutability of pages
SYNOPSIS
#include <sys/mman.h>
int
mimmutable(void *addr, size_t len);
DESCRIPTION
The mimmutable() system call changes currently mapped pages in the region
to be marked immutable, which means their protection or mapping may not
be changed in the future. Most requests to madvise(2), minherit(2),
mmap(2), mprotect(2), msync(2), and munmap(2) to pages marked immutable
will return with error EPERM.
Unmapped pages in the region do not retain immutability, but this
behaviour should not be relied upon.
Not all implementations will guarantee that the immutable characteristic
can be set on a page basis; the granularity of changes may be as large as
an entire region.
RETURN VALUES
Upon successful completion, the value 0 is returned; otherwise the
value -1 is returned and the global variable errno is set to indicate the
error.
ERRORS
The mimmutable() system call will fail if:
[EINVAL] The virtual address range specified by the addr and
len arguments is not valid.
[EPERM] At least one page has inheritance of MAP_INHERIT_ZERO.
SEE ALSO
minherit(2), mmap(2), mprotect(2), munmap(2)
HISTORY
The mimmutable() function first appeared in OpenBSD 7.3.
FreeBSD 14.1-RELEASE-p8 January 21, 2024 FreeBSD 14.1-RELEASE-p8