Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Apropos / Subsearch:
optional field

mprotect(2)                      System Calls                      mprotect(2)

       mprotect - set protection of memory mapping

       #include <sys/mman.h>

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

       The  mprotect() function changes the access protections on the mappings
       specified by the range [addr, addr + len), rounding len up to the  next
       multiple of the page size as returned by sysconf(3C), to be that speci-
       fied by prot. Legitimate values for prot are the same as those  permit-
       ted for mmap(2) and are defined in <&lt;sys/mman.h>&gt; 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 */

       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 protec-
       tions of all whole pages in the range [addr, addr2] will have been mod-

       Upon successful completion, mprotect() returns 0. Otherwise, it returns
       -1 and sets errno to indicate the error.

       The mprotect() function will fail if:

       EACCES          The prot argument specifies a protection that  violates
                       the access permission the process has to the underlying
                       memory object.

       EINVAL          The len argument has a value equal to 0, or addr is not
                       a multiple of the page size as returned by sysconf(3C).

       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.

       The mprotect() function may fail if:

       EAGAIN          The  address  range  [addr, addr + len) includes one or
                       more pages that have been locked  in  memory  and  that
                       were  mapped MAP_PRIVATE; prot includes PROT_WRITE; and
                       the system has insufficient resources to reserve memory
                       for  the  private pages that may be created. These pri-
                       vate pages may be created by store  operations  in  the
                       now-writable address range.

       See attributes(5) for descriptions of the following attributes:

       tab()     allbox;     cw(2.750000i)|    cw(2.750000i)    lw(2.750000i)|
       lw(2.750000i).  ATTRIBUTE  TYPEATTRIBUTE  VALUE  Interface  StabilityT{
       Standard T}

       mmap(2),     plock(3C),     mlock(3C),    mlockall(3C),    sysconf(3C),
       attributes(5), standards(5)

SunOS 5.10                        12 Jan 1998                      mprotect(2)