oracular (2) mprotect.2freebsd.gz

Provided by: freebsd-manpages_12.2-2_all bug

NAME

     mprotect — control the protection of pages

LIBRARY

     Standard C Library (libc, -lc)

SYNOPSIS

     #include <sys/mman.h>

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

DESCRIPTION

     The mprotect() system call changes the specified pages to have protection prot.  Not all implementations
     will guarantee protection on a page basis; the granularity of protection changes may be as large as an
     entire region.  A region is the virtual address space defined by the start and end addresses of a struct
     vm_map_entry.

     Currently these protection bits are known, which can be combined, OR'd together:

     PROT_NONE   No permissions at all.
     PROT_READ   The pages can be read.
     PROT_WRITE  The pages can be written.
     PROT_EXEC   The pages can be executed.

RETURN VALUES

     The mprotect() function returns the value 0 if successful; otherwise the value -1 is returned and the
     global variable errno is set to indicate the error.

ERRORS

     The mprotect() system call will fail if:

     [EACCES]           The calling process was not allowed to change the protection to the value specified by
                        the prot argument.

     [EINVAL]           The virtual address range specified by the addr and len arguments is not valid.

SEE ALSO

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

HISTORY

     The mprotect() system call first appeared in 4.4BSD.