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),   at-
       tributes(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