From owner-man-jp-reviewer@jp.freebsd.org  Tue Mar 27 13:19:39 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id NAA83239;
	Tue, 27 Mar 2001 13:19:39 +0900 (JST)
	(envelope-from owner-man-jp-reviewer@jp.FreeBSD.org)
Received: from oasis.sharplabs.com (gatekeeper.sharplabs.com [216.65.151.101])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id NAA83234
	for <man-jp-reviewer@jp.freebsd.org>; Tue, 27 Mar 2001 13:19:38 +0900 (JST)
	(envelope-from kuma@oasis.sharplabs.com)
Received: from oasis.sharplabs.com (localhost.enet.sharplabs.com [127.0.0.1])
	by oasis.sharplabs.com (8.11.0/3.7W) with ESMTP id f2R4JX716664
	for <man-jp-reviewer@jp.freebsd.org>; Mon, 26 Mar 2001 20:19:33 -0800 (PST)
Message-Id: <200103270419.f2R4JX716664@oasis.sharplabs.com>
To: man-jp-reviewer@jp.freebsd.org
Date: Mon, 26 Mar 2001 20:19:33 -0800
From: Norihiro Kumagai <kuma@oasis.sharplabs.com>
Reply-To: man-jp-reviewer@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: man-jp-reviewer 3503
Subject: [man-jp-reviewer 3503] (man2-catchup) mmap.2
Errors-To: owner-man-jp-reviewer@jp.freebsd.org
Sender: owner-man-jp-reviewer@jp.freebsd.org
X-Originator: kuma@oasis.sharplabs.com

$B7'C+$G$9!#(B

mmap.2 $B$N99?7$r$d$j$^$7$?!#(Bdiff $B$O0J2<$NDL$j!#(B
$B?7LuItJ,$,<c43$"$j$^$9$N$G!"$=$NJU$r8+$F$F$b$i$($P$$$$$+$H!#(B

$B$"$H!"(Bmodification/modify (the mmaped memory) $B$NLu$O(B
$B!V=$@5!W$K$J$C$F$^$9$,!"!V99?7!W$b$7$/$O!VJQ99!W$NJ}$,(B
$B$$$$$h$&$J5$$,$9$k$s$G$9$,G!2?$G$7$g$&!#(B

$B8=:_$O!"!V=$@5!W$G9g$o$;$F$"$j$^$9$,!#(B

--- mmap-org.2	Fri Mar 16 15:56:37 2001
+++ mmap.2	Mon Mar 26 18:37:42 2001
@@ -30,21 +30,21 @@
 .\" SUCH DAMAGE.
 .\"
 .\"	@(#)mmap.2	8.4 (Berkeley) 5/11/95
-.\" %FreeBSD: src/lib/libc/sys/mmap.2,v 1.22.2.5 2000/12/29 14:44:52 ru Exp %
+.\" $FreeBSD: src/lib/libc/sys/mmap.2,v 1.22.2.6 2001/03/06 16:46:06 ru Exp $
 .\"
 .Dd May 11, 1995
 .Dt MMAP 2
 .Os BSD 4
 .Sh $BL>>N(B
 .Nm mmap
-.Nd $B%U%!%$%k$^$?$O%G%P%$%9$r%a%b%j$K%^%C%W$9$k(B
+.Nd $B%a%b%j$N3d$jEv$F!"$^$?$O%U%!%$%k$^$?$O%G%P%$%9$N%a%b%j$X$N%^%C%W(B
 .Sh $B%i%$%V%i%j(B
 .Lb libc
 .Sh $B=q<0(B
 .Fd #include <sys/types.h>
 .Fd #include <sys/mman.h>
 .Ft void *
-.Fn mmap "void * addr" "size_t len" "int prot" "int flags" "int fd" "off_t offset"
+.Fn mmap "void *addr" "size_t len" "int prot" "int flags" "int fd" "off_t offset"
 .Sh $B2r@b(B
 .Fn mmap
 $B4X?t$O!"(B
@@ -56,7 +56,7 @@
 $B$K$h$C$F5-=R$5$l$k%*%V%8%'%/%H$N(B
 $B%P%$%H%*%U%;%C%H(B
 .Fa offset
-$B$N0LCV$+$i%^%C%W$5$l$k$h$&$K$7$^$9!#(B
+$B$N0LCV$+$i;O$^$kItJ,$r%^%C%W$5$l$k$h$&$K$7$^$9!#(B
 .Fa len
 $B$,%Z!<%8%5%$%:$NG\?t$G$J$$>l9g!"(B
 $B%^%C%W$5$l$?NN0h$O;XDj$NHO0O$r1[$($F3HD%$5$l$k$+$b$7$l$^$;$s!#(B
@@ -81,13 +81,15 @@
 .Em ( or )
 $B$r<h$C$?CM$G;XDj$7$^$9!#(B
 .Pp
-.Bl -tag -width MAP_FIXEDX
-.It Dv PROT_EXEC
-$B%Z!<%8$O<B9T$G$-$^$9!#(B
+.Bl -tag -width PROT_WRITE -compact
+.It Dv PROT_NONE
+$B%Z!<%8$O%"%/%;%9$G$-$^$;$s!#(B
 .It Dv PROT_READ
 $B%Z!<%8$OFI<h$j$G$-$^$9!#(B
 .It Dv PROT_WRITE
 $B%Z!<%8$O=q9~$_$G$-$^$9!#(B
+.It Dv PROT_EXEC
+$B%Z!<%8$O<B9T2DG=$G$9!#(B
 .El
 .Pp
 .Fa flags
@@ -100,8 +102,7 @@
 $B$r<h$C$?CM$G(B
 .Fa flags
 $B0z?t$K;XDj$7$^$9!#(B
-.Pp
-.Bl -tag -width MAP_FIXEDX
+.Bl -tag -width MAP_HASSEMAPHORE
 .It Dv MAP_ANON
 $B$I$NFCDj$N%U%!%$%k$H$bBP1~$7$F$$$J$$F?L>%a%b%j$r%^%C%W$7$^$9!#(B
 .Dv MAP_ANON
@@ -115,7 +116,9 @@
 $B%7%9%F%`$,!";XDj$5$l$?%"%I%l%9$H0[$J$k%"%I%l%9$rA*Br$9$k$3$H$r5vMF$7$^$;$s!#(B
 $B;XDj$5$l$?%"%I%l%9$,;HMQ$G$-$J$$>l9g!"(B
 .Fn mmap
-$B$O=hM}$K<:GT$7$^$9!#(BMAP_FIXED $B$,;XDj$5$l$F$$$k>l9g!"(B
+$B$O=hM}$K<:GT$7$^$9!#(B
+.Dv MAP_FIXED
+$B$,;XDj$5$l$F$$$k>l9g!"(B
 .Fa addr
 $B$O%Z!<%8%5%$%:$NG\?t$G$"$kI,MW$,$"$j$^$9!#(B
 $B$3$N%*%W%7%g%s$N;HMQ$O$*4+$a$G$-$^$;$s!#(B
@@ -125,47 +128,67 @@
 .It Dv MAP_INHERIT
 .Xr execve 2
 $B%7%9%F%`%3!<%k$rDL$8$FNN0h$,7Q>5$G$-$k$h$&$K$7$^$9!#(B
-.It Dv MAP_PRIVATE
-$B=$@5$O8GM-$K$J$j$^$9!#(B
-.It Dv MAP_SHARED
-$B=$@5$O6&M-$5$l$^$9!#(B
-.It Dv MAP_STACK
-$B$3$N%*%W%7%g%s$,MxMQ$G$-$k$N$O!"%7%9%F%`$N%+!<%M%k$r%3%s%Q%$%k$9$k$H$-$K(B
-VM_STACK $B$rDj5A$7$F%3%s%Q%$%k$7$?>l9g$@$1$G$9!#(B
-$B$3$l$O(B i386 $B$K$D$$$F$@$1%G%U%)%k%H$G$9!#B>$N%"!<%-%F%/%A%c$G(B
-$B$3$N%*%W%7%g%s$rM-8z$K$7$?$$>l9g$O!"(B/etc/make.conf $BFb$G(B -DVM_STACK $B$r(B
-COPTFLAGS $B$KDI2C$9$kJ}K!$r8!F$$7$F$/$@$5$$!#(B
-MAP_STACK $B$O(B MAP_ANON $B$*$h$S(B 0 $B$N(B
-.Fa offset
-$B;XDj$r4^$_$^$9!#(B
-.Fa fd
-$B$O(B -1 $B$G$J$1$l$P$J$i$:!"(B
-.Fa prot
-$B$K$O>/$J$/$H$b(B PROT_READ $B$H(B PROT_WRITE $B$,F~$C$F$$$kI,MW$,$"$j$^$9!#(B
-$B$3$N%*%W%7%g%s$O!"%9%?%C%/$N(B
-$B@hF,$r3+;OE@$H$72<J}$K?-$S$k!"%5%$%:$,:GBg$G(B
-.Fa len
-$B%P%$%H$^$G?-$S$k%a%b%jNN0h$r:n@.$7$^$9!#(B
+.It Dv MAP_NOCORE
+$BNN0h$O%3%"%U%!%$%k$K4^$^$l$^$;$s!#(B
 .It Dv MAP_NOSYNC
 $B$O$3$N(B VM $B%^%C%W$r7PM3$7$F1x$5$l$?%G!<%?$r!"L50G$K$G$O$J$/(B
 ($BDL>o$O%Z!<%8%c$K$h$C$F(B) $BI,MW$J;~$N$_J*M}E*$J%a%G%#%"$K(B
 $B%U%i%C%7%e$9$k$h$&$K$7$^$9!#(B
+$B$U$D$&!"$3$N%*%W%7%g%s$K$h$j!"99?7%G!<%b%s$O$3$N%^%C%W$G(B
+$B1x$5$l$?%Z!<%8$r%U%i%C%7%e$7$J$$$h$&$K$J$j$^$9!#$3$l$K$h$j!"(B
+$B%U%!%$%k%P%C%/%"%C%W$5$l$?6&M-%a%b%j$N%^%C%T%s%0$r;HMQ$7$F(B
+$BL54X78$J%W%m%;%9$N4V$G%a%b%j%"%/%;%9$r8zN(E*$K6&M-$9$k$3$H$,(B
+$B$G$-$k$h$&$K$J$j$^$9!#(B
 $B$3$N%*%W%7%g%s$,$J$$$H!"1x$5$l$?(B VM $B%Z!<%8$OIQHK(B ($BDL>o(B 30-60 $BICKh(B) $B$K(B
 $B%G%#%9%/$K%U%i%C%7%e$5$l$k$+$bCN$l$:!"$=$N$h$&$JF0:n$rI,MW$H$7$J$$>l9g(B
 ($BNc$($P(B IPC $B$N$?$a$K%U%!%$%k$rMQ$$$?6&M-(B mmap $BNN0h$rMQ$$$F$$$k>l9g(B)
 $B%Q%U%)!<%^%s%9$KLdBj$,=P$k$3$H$,$"$j$^$9!#(B
-MAP_NOSYNC $B$r;H$C$F$$$k$+$K$+$+$o$i$:!"(B
+.Dv MAP_NOSYNC
+$B$r;H$C$F$$$k$+$K$+$+$o$i$:!"(B
 VM/ $B%U%!%$%k%7%9%F%`$N0l4S@-$OJ]$?$l$k$3$H$KCm0U$7$F$/$@$5$$!#(B
-$B$3$N%*%W%7%g%s$O(B UNIX $B%W%i%C%H%U%)!<%`4V$G(B ($B$^$@(B) $B0\?"@-$O$"$j$^$;$s$,!"(B
+$B$3$N%*%W%7%g%s$O(B
+.Ux
+$B%W%i%C%H%U%)!<%`4V$G(B ($B$^$@(B) $B0\?"@-$O$"$j$^$;$s$,!"(B
 $B$$$/$D$+$N%W%i%C%H%U%)!<%`$G$O%G%U%)%k%H$GF1$8F0:n$r$9$k$h$&$K(B
 $B<BAu$5$l$F$$$k$+$bCN$l$^$;$s!#(B
 .Pp
-.Xr fsync2
-$B4X?t$O$9$Y$F$N1x@w$5$l$?%G!<%?$H!"%U%!%$%k$K4XO"$E$1$i$l$?%a%?%G!<%?$r(B
-$B%U%i%C%7%e$7$^$9!#(BNOSYNC $B$N1x$l$?(B VM $B%G!<%?J*M}E*G^BN$K%U%i%C%7%e$7$^$9!#(B
+.Em $B7Y9p(B !
+.Xr ftruncate 2
+$B$r;H$$%U%!%$%k$r3HD%$7$F$+$i!"$D$^$j%U%!%$%k$KBg$-$J7j$r6u$1$F$+$i!"(B
+$B$=$N7j$r6&M-(B
+.Fn mmap
+$B$r=$@5$7$FKd$a$k>l9g!"?<9o$J%U%!%$%kCGJR2=$,@8$8$k2DG=@-$,$"$j$^$9!#(B
+$B$3$NCGJR2=$rHr$1$k$?$a$K!"(B
+.Fn mmap
+$B$G$=$NNN0h$r=$@5$9$kA0$K!"?75,$K3HD%$7$?NN0h$K%<%m$r(B
+.Fn write
+$B$7$F!"%U%!%$%k$N%P%C%-%s%0%9%H%"$r;vA0$K3d$jEv$F$F$*$/I,MW$,$"$j$^$9!#(B
+$B%G%#%9%/$X$N%U%i%C%7%e$,A4$/%i%s%@%`$K@8$8$k$?$a!"(B
+$BCGJR2=LdBj$KFC$KIR46$J$N$O!"(B
+.Dv MAP_NOSYNC
+$B%Z!<%8$G$9!#(B
+.Pp
+$BF1$8$3$H$,!"(B
+.Dv MAP_NOSYNC
+$B$r;H$$%U%!%$%k%Y!<%9$N6&M-%a%b%j%9%H%"$r<BAu$9$k>l9g$K$b$$$($^$9!#(B
+.Fn ftruncate
+$B$7$F%P%C%-%s%0%9%H%"$r:n$k$N$G$O$J$/!"%<%m$r(B
+.Fn write
+$B$7$F%P%C%-%s%0%9%H%"$r:n$k$3$H$r?d>)$7$^$9!#(B
+$B$?$H$($P!"(B
+.Dq Li dd if=filename of=/dev/null bs=32k
+$B$r;H$&$J$I$7$F5pBg$J%U%!%$%k$r%7!<%1%s%7%c%k$KFI$_9~$_$J$,$i!"(B
+.Dq Li iostat 1
+$B$r8F$S=P$9$3$H$GF@$i$l$k(B
+KB/t ($BE>Aw(B 1 $B2s$"$?$j$N%-%m%P%$%H?t(B) $B$r4Q;!$9$k$3$H$G(B
+$B%U%!%$%kCGJR2=$N%F%9%H$,2DG=$G$9!#(B
+.Pp
+.Xr fsync 2
+$B4X?t$O$9$Y$F$N1x@w$5$l$?%G!<%?$H%U%!%$%k$K4XO"$E$1$i$l$?%a%?%G!<%?(B
+(NOSYNC $B$N1x$l$?(B VM $B%G!<%?$r4^$`(B) $B$rJ*M}E*G^BN$K%U%i%C%7%e$7$^$9!#(B
 .Xr sync 8
 $B%3%^%s%I$H(B
-.Xr sync2
+.Xr sync 2
 $B%7%9%F%`%3!<%k$O!"1x@w$5$l$?(B NOSYNC VM $B$N%G!<%?$rDL>o%U%i%C%7%e$7$^$;$s!#(B
 .Xr msync 2
 $B%7%9%F%`%3!<%k$O(B
@@ -174,9 +197,40 @@
 $BGQ;_$5$l$^$7$?!#$7$+$7$J$,$i!"1x$l$?(B VM $B%Z!<%8$H%U%!%$%k%7%9%F%`$r(B
 $B7k$S$D$1!"J*M}E*G^BN$K$9$0$K(B($B8eDx$G$O$J$/(B)$B%U%i%C%7%e$5$;$kMQES$K(B
 $B;H$o$l$k$3$H$b$"$j$^$9!#(B
-.It Dv MAP_NOCORE
-$BNN0h$O%3%"%U%!%$%k$K$O4^$^$l$^$;$s!#(B
-.Pp
+.It Dv MAP_PRIVATE
+$B=$@5$O%W%m%;%98GM-$K9T$J$o$l$^$9!#(B
+.It Dv MAP_SHARED
+$B=$@5$O6&M-$5$l$^$9!#(B
+.It Dv MAP_STACK
+$B$3$N%*%W%7%g%s$,MxMQ$G$-$k$N$O!"%7%9%F%`$N%+!<%M%k$r%3%s%Q%$%k$9$k$H$-$K(B
+.Dv VM_STACK
+$B$rDj5A$7$F%3%s%Q%$%k$7$?>l9g$@$1$G$9!#(B
+$B$3$l$O(B i386 $B$K$D$$$F$@$1%G%U%)%k%H$G$9!#B>$N%"!<%-%F%/%A%c$G(B
+$B$3$N%*%W%7%g%s$rM-8z$K$7$?$$>l9g$O!"(B
+.Pa /etc/make.conf
+$BFb$G(B
+.Li -DVM_STACK
+$B$r(B
+.Va COPTFLAGS
+$B$KDI2C$9$kJ}K!$r8!F$$7$F$/$@$5$$!#(B
+.Dv MAP_STACK
+$B$O(B
+.Dv  MAP_ANON
+$B$*$h$S(B 0 $B$N(B
+.Fa offset
+$B;XDj$r4^$_$^$9!#(B
+.Fa fd
+$B$O(B -1 $B$G$J$1$l$P$J$i$:!"(B
+.Fa prot
+$B$K$O>/$J$/$H$b(B
+.Dv PROT_READ
+$B$H(B
+.Dv PROT_WRITE
+$B$,F~$C$F$$$kI,MW$,$"$j$^$9!#(B
+$B$3$N%*%W%7%g%s$O!"%9%?%C%/$N(B
+$B@hF,$r3+;OE@$H$72<J}$K?-$S$k!"%5%$%:$,:GBg$G(B
+.Fa len
+$B%P%$%H$^$G?-$S$k%a%b%jNN0h$r:n@.$7$^$9!#(B
 $B%9%?%C%/$N@hF,$O!"8F$S=P$7$+$iJV$5$l$?3+;O%"%I%l%9$K(B
 .Fa len
 $B%P%$%H$r2C$($?$b$N$K$J$j$^$9!#:G$b?-$S$?>l9g$N%9%?%C%/$N2<C<$O!"(B
@@ -197,7 +251,9 @@
 $B@5>o$K40N;$9$k$H!"(B
 .Fn mmap
 $B$O!"%^%C%W$5$l$?NN0h$r;X$9%]%$%s%?$rJV$7$^$9!#$=$&$G$J$$>l9g$O(B
-$BCM(B MAP_FAILED $B$,JV$5$l!"%(%i!<$r<($9$?$a$K(B
+$BCM(B
+.Dv MAP_FAILED
+$B$,JV$5$l!"%(%i!<$r<($9$?$a$K(B
 .Va errno
 $B$,@_Dj$5$l$^$9!#(B
 .Sh $B%(%i!<(B
@@ -247,13 +303,18 @@
 $B$,DL>o$N%U%!%$%k$^$?$O%-%c%i%/%?7?FC<l%U%!%$%k$r;2>H$7$F$$$^$;$s$G$7$?!#(B
 .It Bq Er EINVAL
 .Fa offset
-$B$,%Z!<%86-3&$K@0Ns$7$F$$$^$;$s$G$7$?(B ($B8e=R$9$k!V%P%0$N>O!W$r;2>H(B)$B!#(B
+$B$,%Z!<%86-3&$K@0Ns$7$F$$$^$;$s$G$7$?(B ($B8e=R$9$k!V(B
+.Sx $B%P%0(B
+$B$N>O!W$r;2>H(B)$B!#(B
 .It Bq Er ENOMEM
 .Dv MAP_FIXED
 $B$,;XDj$5$l$F(B
 .Fa addr
-$B%Q%i%a!<%?$,M?$($i$l$J$$!"$b$7$/$O(B vm.nax_proc_mmap $B$G;XDj$5$l$?(B
-$B%W%m%;%9Kh$N(B mmap $B$KC#$7$^$7$?!#(B
+$B%Q%i%a!<%?$,M?$($i$l$J$$!"$b$7$/$O(B
+sysctl $BCM(B
+.Va vm.nax_proc_mmap
+$B$G;XDj$5$l$?(B
+$B%W%m%;%9Kh$N(B mmap $B8B3&$KC#$7$^$7$?!#(B
 .Dv MAP_ANON
 $B$,;XDj$5$l$FMxMQ$G$-$k%a%b%j$,IT=<J,$G$7$?!#(B
 .Sh $B4XO"9`L\(B
@@ -272,16 +333,17 @@
 ($B%U%!%$%k%5%$%:(B % 2GB) $B$N%5%$%:$N%&%#%s%I%&$r%^%C%W$G$-$^$9!#(B
 .Pp
 $B@)Ls$OB?:L$JM}M3$+$i@8$8$F$$$^$9!#(B
-$B$=$N$[$H$s$I$O!"(B
+$B$=$N$[$H$s$I$O!"%Q%U%)!<%^%s%9>e$NCx$7$$%Z%J%k%F%#$N$?$a!"(B
 .Fx
-$B$N(B VM $B%7%9%F%`Fb$G(B 64 $B%S%C%H$N%*%U%;%C%H$r;HMQ$7$?$/$J$$$H$$$&$b$N$G$9!#(B
+$B$G$O(B VM $B%7%9%F%`Fb$G(B 64 $B%S%C%H$N%*%U%;%C%H$r;HMQ$7$?$/$J$$$3$H$H(B
+$B4X78$7$F$$$^$9!#(B
 $B$7$?$,$C$F(B
 .Fx
 $B$O(B 32 $B%S%C%H$N%Z!<%8%$%s%G%C%/%9$r;HMQ$7$F$*$j!"$3$l$K$h$C$F(B
 .Fx
 $B$G$O:G9b$G(B 8TB $B$^$G$N%U%!%$%k%5%$%:$rMxMQ$G$-$^$9!#<B:]$K$O(B
-$B%U%!%$%k%7%9%F%`%3!<%IFb$N%P%0$K$h$C$F$5$i$K@)Ls$,2]$5$l$F!"(B
-1TB $B$^$G$,MxMQ$G$-$^$9!#(B
+$B$5$i$K@)Ls$,2]$5$l$F;HMQ2DG=%5%$%:$O(B 1TB $B$^$G$G$9$,!"$3$l$O!"(B
+$B%U%!%$%k%7%9%F%`%3!<%IFb$N%P%0$K$h$k$b$N$G$9(B
 ($B%V%m%C%/HV9f7W;;$r9T$J$C$F$$$k$H$-$N7eMn$A(B)$B!#(B
 .Pp
 2GB $B@)8B$N$b$&$R$H$D$NM}M3$O!"%U%!%$%k%7%9%F%`%a%?%G!<%?$,Ii$N%*%U%;%C%H$K(B
