unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OpenBSD-5.7)
Page:
Section:
Apropos / Subsearch:
optional field

MPROTECT(2)                 BSD System Calls Manual                MPROTECT(2)

NAME
     mprotect -- control the protection of pages

SYNOPSIS
     #include <&lt;sys/mman.h>&gt;

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

DESCRIPTION
     The mprotect() 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.

     The protections (region accessibility) are specified in the prot argu-
     ment.  It should either be PROT_NONE (no permissions) or the bitwise OR
     of one or more of the following values:

           PROT_EXEC     Pages may be executed.
           PROT_READ     Pages may be read.
           PROT_WRITE    Pages may be written.

     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 per-
     missions; more permissions may be granted than requested by prot.  How-
     ever, if PROT_WRITE was not specified then the page will not be writable.

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
     mprotect() will fail if:

     [EACCES]           The process does not have sufficient access to the
                        underlying memory object to provide the requested pro-
                        tection.

     [ENOMEM]           The process has locked future pages with
                        mlockall(MCL_FUTURE), a page being protected is not
                        currently accessible, and making it accessible and
                        locked would exceed process or system limits.

     [EINVAL]           The prot argument is invalid or the specified address
                        range would wrap around.

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

STANDARDS
     The mprotect() function conforms to IEEE Std 1003.1-2008 (``POSIX.1'').

HISTORY
     The mprotect() function first appeared in 4.4BSD.

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

BSD                              July 2, 2014                              BSD