Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mprotect(2) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

mlock(3C)

mlockall(3C)

memcntl(2)

mmap(2)

plock(2)

sysconf(3C)






       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








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026