]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/man/man2/mprotect.2
xnu-3248.20.55.tar.gz
[apple/xnu.git] / bsd / man / man2 / mprotect.2
index e92b2a69b9e34bf0fd4998b8d7618aab60d65922..5c2df2a2952813329d56451c93b50d202262ba9d 100644 (file)
@@ -1,3 +1,26 @@
+.\"
+.\" Copyright (c) 2008 Apple Inc.  All rights reserved.
+.\"
+.\" @APPLE_LICENSE_HEADER_START@
+.\" 
+.\" This file contains Original Code and/or Modifications of Original Code
+.\" as defined in and that are subject to the Apple Public Source License
+.\" Version 2.0 (the 'License'). You may not use this file except in
+.\" compliance with the License. Please obtain a copy of the License at
+.\" http://www.opensource.apple.com/apsl/ and read it before using this
+.\" file.
+.\" 
+.\" The Original Code and all software distributed under the License are
+.\" distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+.\" EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+.\" INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+.\" FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+.\" Please see the License for the specific language governing rights and
+.\" limitations under the License.
+.\" 
+.\" @APPLE_LICENSE_HEADER_END@
+.\"
+.\"
 .\"    $NetBSD: mprotect.2,v 1.6 1995/10/12 15:41:08 jtc Exp $
 .\"
 .\" Copyright (c) 1991, 1993
 .\"    $NetBSD: mprotect.2,v 1.6 1995/10/12 15:41:08 jtc Exp $
 .\"
 .\" Copyright (c) 1991, 1993
@@ -32,8 +55,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"    @(#)mprotect.2  8.1 (Berkeley) 6/9/93
 .\" SUCH DAMAGE.
 .\"
 .\"    @(#)mprotect.2  8.1 (Berkeley) 6/9/93
+.\" $FreeBSD: src/lib/libc/sys/mprotect.2,v 1.18 2007/01/09 00:28:15 imp Exp $
 .\"
 .\"
-.Dd June 9, 1993
+.Dd October 16, 2008
 .Dt MPROTECT 2
 .Os
 .Sh NAME
 .Dt MPROTECT 2
 .Os
 .Sh NAME
@@ -53,8 +77,25 @@ The
 system call
 changes the specified pages to have protection
 .Fa prot .
 system call
 changes the specified pages to have protection
 .Fa prot .
-Not all implementations will guarantee protection on a page basis;
-the granularity of protection changes may be as large as an entire region.
+Not all implementations will guarantee protection on a page basis but Mac OS X's
+current implementation does.
+.Pp
+When a program violates the protections of a page, it gets a SIGBUS or SIGSEGV signal. 
+.Pp
+Currently
+.Fa prot
+can be one or more of the following:
+.Pp
+.Bl -tag -width ".Dv PROT_WRITE" -compact
+.It Dv PROT_NONE
+No permissions at all.
+.It Dv PROT_READ
+The pages can be read.
+.It Dv PROT_WRITE
+The pages can be written.
+.It Dv PROT_EXEC
+The pages can be executed.
+.El
 .Sh RETURN VALUES
 Upon successful completion,
 a value of 0 is returned.
 .Sh RETURN VALUES
 Upon successful completion,
 a value of 0 is returned.
@@ -77,7 +118,9 @@ on the specified address range.
 .\" ===========
 .It Bq Er EINVAL
 .Fa addr
 .\" ===========
 .It Bq Er EINVAL
 .Fa addr
-is not a multiple of the page size.
+is not a multiple of the page size (i.e.
+.Fa addr
+is not page-aligned).
 .\" ===========
 .\" .It Bq Er ENOMEM
 .\" The specified address range is outside of the address range
 .\" ===========
 .\" .It Bq Er ENOMEM
 .\" The specified address range is outside of the address range