Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
mprotect(2)			 System	Calls			   mprotect(2)

NAME
       mprotect	- set protection of memory mapping

SYNOPSIS
       #include	<sys/mman.h>

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

DESCRIPTION
       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 <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 */

       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-
       ified.

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

ERRORS
       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.

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

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+

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

SunOS 5.10			  12 Jan 1998			   mprotect(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=mprotect&sektion=2&manpath=SunOS+5.10>

home | help