Deleted Added
full compact
mmap.2 (57550) mmap.2 (57686)
1.\" Copyright (c) 1991, 1993
2.\" The Regents of the University of California. All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\" notice, this list of conditions and the following disclaimer.

--- 16 unchanged lines hidden (view full) ---

25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\" @(#)mmap.2 8.4 (Berkeley) 5/11/95
1.\" Copyright (c) 1991, 1993
2.\" The Regents of the University of California. All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\" notice, this list of conditions and the following disclaimer.

--- 16 unchanged lines hidden (view full) ---

25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\" @(#)mmap.2 8.4 (Berkeley) 5/11/95
33.\" $FreeBSD: head/lib/libc/sys/mmap.2 57550 2000-02-28 04:10:35Z ps $
33.\" $FreeBSD: head/lib/libc/sys/mmap.2 57686 2000-03-02 09:14:21Z sheldonh $
34.\"
35.Dd May 11, 1995
36.Dt MMAP 2
37.Os BSD 4
38.Sh NAME
39.Nm mmap
40.Nd map files or devices into memory
41.Sh SYNOPSIS

--- 86 unchanged lines hidden (view full) ---

128.Xr execve 2
129system calls.
130.It Dv MAP_PRIVATE
131Modifications are private.
132.It Dv MAP_SHARED
133Modifications are shared.
134.It Dv MAP_STACK
135This option is only available if your system has been compiled with
34.\"
35.Dd May 11, 1995
36.Dt MMAP 2
37.Os BSD 4
38.Sh NAME
39.Nm mmap
40.Nd map files or devices into memory
41.Sh SYNOPSIS

--- 86 unchanged lines hidden (view full) ---

128.Xr execve 2
129system calls.
130.It Dv MAP_PRIVATE
131Modifications are private.
132.It Dv MAP_SHARED
133Modifications are shared.
134.It Dv MAP_STACK
135This option is only available if your system has been compiled with
136VM_STACK defined when compiling the kernel. This is the default for
137i386 only. Consider adding -DVM_STACK to COPTFLAGS in your /etc/make.conf
138to enable this option for other architechures. MAP_STACK implies
136VM_STACK defined when compiling the kernel.
137This is the default for
138i386 only.
139Consider adding -DVM_STACK to COPTFLAGS in your /etc/make.conf
140to enable this option for other architechures.
141MAP_STACK implies
139MAP_ANON, and
140.Fa offset
141of 0.
142.Fa fd
143must be -1 and
144.Fa prot
145must include at least PROT_READ and PROT_WRITE. This option creates
146a memory region that grows to at most

--- 122 unchanged lines hidden (view full) ---

269.Xr munmap 2 ,
270.Xr getpagesize 3
271.Sh BUGS
272.Ar len
273is limited to 2GB. Mmapping slightly more than 2GB doesn't work, but
274it is possible to map a window of size (filesize % 2GB) for file sizes
275of slightly less than 2G, 4GB, 6GB and 8GB.
276.Pp
142MAP_ANON, and
143.Fa offset
144of 0.
145.Fa fd
146must be -1 and
147.Fa prot
148must include at least PROT_READ and PROT_WRITE. This option creates
149a memory region that grows to at most

--- 122 unchanged lines hidden (view full) ---

272.Xr munmap 2 ,
273.Xr getpagesize 3
274.Sh BUGS
275.Ar len
276is limited to 2GB. Mmapping slightly more than 2GB doesn't work, but
277it is possible to map a window of size (filesize % 2GB) for file sizes
278of slightly less than 2G, 4GB, 6GB and 8GB.
279.Pp
277The limit is imposed for a variety of reasons. Most of them have to do
280The limit is imposed for a variety of reasons.
281Most of them have to do
278with
279.Tn FreeBSD
280not wanting to use 64 bit offsets in the VM system due to
282with
283.Tn FreeBSD
284not wanting to use 64 bit offsets in the VM system due to
281the extreme performance penalty. So
285the extreme performance penalty.
286So
282.Tn FreeBSD
283uses 32bit page indexes and
284this gives
285.Tn FreeBSD
287.Tn FreeBSD
288uses 32bit page indexes and
289this gives
290.Tn FreeBSD
286a maximum of 8TB filesizes. It's actually bugs in
291a maximum of 8TB filesizes.
292It's actually bugs in
287the filesystem code that causes the limit to be further restricted to
2881TB (loss of precision when doing blockno calculations).
289.Pp
290Another reason for the 2GB limit is that filesystem metadata can
291reside at negative offsets.
292.Pp
293We currently can only deal with page aligned file offsets.
293the filesystem code that causes the limit to be further restricted to
2941TB (loss of precision when doing blockno calculations).
295.Pp
296Another reason for the 2GB limit is that filesystem metadata can
297reside at negative offsets.
298.Pp
299We currently can only deal with page aligned file offsets.