diff options
author | wosch <wosch@FreeBSD.org> | 1996-02-02 05:06:29 +0000 |
---|---|---|
committer | wosch <wosch@FreeBSD.org> | 1996-02-02 05:06:29 +0000 |
commit | 315bad40390d8a88befdf9d2050e046b6f956947 (patch) | |
tree | aeca7b853a4da8bbd25c5d4ec979e45b84177666 | |
parent | 6e83fbce8655c2c333a6dcba6db82650d981343a (diff) | |
download | FreeBSD-src-315bad40390d8a88befdf9d2050e046b6f956947.zip FreeBSD-src-315bad40390d8a88befdf9d2050e046b6f956947.tar.gz |
Submitted by: bruce, davidg, dyson
add a BUG section for mmap with current limitation
section SYNOPSIS completed
-rw-r--r-- | lib/libc/sys/madvise.2 | 2 | ||||
-rw-r--r-- | lib/libc/sys/mincore.2 | 2 | ||||
-rw-r--r-- | lib/libc/sys/mmap.2 | 20 | ||||
-rw-r--r-- | lib/libc/sys/mprotect.2 | 2 | ||||
-rw-r--r-- | lib/libc/sys/msync.2 | 2 | ||||
-rw-r--r-- | lib/libc/sys/munmap.2 | 2 |
6 files changed, 29 insertions, 1 deletions
diff --git a/lib/libc/sys/madvise.2 b/lib/libc/sys/madvise.2 index 7319442..d3b2124 100644 --- a/lib/libc/sys/madvise.2 +++ b/lib/libc/sys/madvise.2 @@ -38,6 +38,8 @@ .Nm madvise .Nd give advise about use of memory .Sh SYNOPSIS +.Fd #include <sys/types.h> +.Fd #include <sys/mman.h> .Fn madvise "caddr_t addr" "int len" "int behav" .Sh DESCRIPTION The diff --git a/lib/libc/sys/mincore.2 b/lib/libc/sys/mincore.2 index 4e73c2a..bd6d961 100644 --- a/lib/libc/sys/mincore.2 +++ b/lib/libc/sys/mincore.2 @@ -38,6 +38,8 @@ .Nm mincore .Nd get advise about use of memory .Sh SYNOPSIS +.Fd #include <sys/types.h> +.Fd #include <sys/mman.h> .Fn mincore "caddr_t addr" "int len" "char *vec" .Sh DESCRIPTION The diff --git a/lib/libc/sys/mmap.2 b/lib/libc/sys/mmap.2 index 1c0d84a..2ca868e 100644 --- a/lib/libc/sys/mmap.2 +++ b/lib/libc/sys/mmap.2 @@ -207,4 +207,22 @@ was specified and insufficient memory was available. .Xr munmap 2 , .Xr mprotect 2 , .Xr madvise 2 , -.Xr mincore 2 +.Xr mincore 2 , +.Xr mlock 2 , +.Xr munlock 2 + +.Sh BUGS +.Ar len +is limit to 2GB. Mmapping slightly more than 2GB doesn't work, but +mapping a window of size (filesize % 2GB) for file sizes of slightly +less than 2G, 4GB, 6GB and 8GB. + +The limit is imposed for a variety of reasons. Most of them have to do +with FreeBSD not wanting to use 64 bit offsets in the VM system due to +the extreme performance penalty. So FreeBSD use 32bit page indexes and +this gives FreeBSD a maximum of 8TB filesizes. It's actually bugs in +the filesystem code that causes the limit to be further restricted to +1TB (loss of precision when doing blockno calculations). + +Another reason for the 2GB limit is that filesystem metadata can +reside at negative offsets. diff --git a/lib/libc/sys/mprotect.2 b/lib/libc/sys/mprotect.2 index bb2b9ad..c0ad2df 100644 --- a/lib/libc/sys/mprotect.2 +++ b/lib/libc/sys/mprotect.2 @@ -38,6 +38,8 @@ .Nm mprotect .Nd control the protection of pages .Sh SYNOPSIS +.Fd #include <sys/types.h> +.Fd #include <sys/mman.h> .Fn mprotect "caddr_t addr" "int len" "int prot" .Sh DESCRIPTION The diff --git a/lib/libc/sys/msync.2 b/lib/libc/sys/msync.2 index d976e30..88dd7f7 100644 --- a/lib/libc/sys/msync.2 +++ b/lib/libc/sys/msync.2 @@ -38,6 +38,8 @@ .Nm msync .Nd synchronize a mapped region .Sh SYNOPSIS +.Fd #include <sys/types.h> +.Fd #include <sys/mman.h> .Fn msync "caddr_t addr" "int len" "int flags" .Sh DESCRIPTION The diff --git a/lib/libc/sys/munmap.2 b/lib/libc/sys/munmap.2 index b9e8a1b..d62ff37 100644 --- a/lib/libc/sys/munmap.2 +++ b/lib/libc/sys/munmap.2 @@ -38,6 +38,8 @@ .Nm munmap .Nd remove a mapping .Sh SYNOPSIS +.Fd #include <sys/types.h> +.Fd #include <sys/mman.h> .Fn munmap "caddr_t addr" "size_t len" .Sh DESCRIPTION The |