Catch up with 5.0-CURRENT-20030329-JPSNAP

Submitted by:	Akira Ikeuchi <yr6a-ikuc@asahi-net.or.jp>
This commit is contained in:
Kazuo Horikawa 2003-04-13 20:06:51 +00:00
parent f087f06a9a
commit cbddcb090f
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=16559
15 changed files with 140 additions and 75 deletions

View file

@ -63,6 +63,7 @@
.Fa clock_id .Fa clock_id
引数には、次の 3 つの値のうちの 1 つを指定します。 引数には、次の 3 つの値のうちの 1 つを指定します。
CLOCK_REALTIME は普通の時計のように進む時間、 CLOCK_REALTIME は普通の時計のように進む時間、
CLOCK_MONOTONIC は SI 単位系の秒で進む時間、
CLOCK_VIRTUAL は呼び出しプロセスのために CPU がユーザモードで CLOCK_VIRTUAL は呼び出しプロセスのために CPU がユーザモードで
実行されているときにだけ進む時間、 実行されているときにだけ進む時間、
CLOCK_PROF は、CPU がユーザモードまたはカーネルモードで実行されている CLOCK_PROF は、CPU がユーザモードまたはカーネルモードで実行されている

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE. .\" SUCH DAMAGE.
.\" .\"
.\" @(#)mincore.2 8.1 (Berkeley) 6/9/93 .\" @(#)mincore.2 8.1 (Berkeley) 6/9/93
.\" %FreeBSD: src/lib/libc/sys/mincore.2,v 1.22 2003/01/17 04:06:57 tjr Exp % .\" %FreeBSD: src/lib/libc/sys/mincore.2,v 1.23 2003/02/23 01:47:47 ru Exp %
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
.Dd January 17, 2003 .Dd January 17, 2003
@ -64,7 +64,7 @@
.Fa vec .Fa vec
配列の中に返されます。 配列の中に返されます。
個々の文字は、そのページが常駐していなければ 0 または、以下の 個々の文字は、そのページが常駐していなければ 0 または、以下の
.Sy ( <sys/mman.h> .Aq ( Pa sys/mman.h
で定義されている) フラグの組み合わせです: で定義されている) フラグの組み合わせです:
.Bl -tag -width ".Dv MINCORE_REFERENCED_OTHER" .Bl -tag -width ".Dv MINCORE_REFERENCED_OTHER"
.It Dv MINCORE_INCORE .It Dv MINCORE_INCORE
@ -80,16 +80,16 @@
.El .El
.Pp .Pp
.Fn mincore .Fn mincore
によって返される情報は、この関数が戻る時間のために によって返される情報は、このシステムコールが戻る時間のために
古くなっているかもしれません。 古くなっているかもしれません。
あるページが常駐することを保証する唯一の方法は、そのページを あるページが常駐することを保証する唯一の方法は、そのページを
.Xr mlock 2 .Xr mlock 2
関数でメモリにロックすることです。 システムコールでメモリにロックすることです。
.Sh 戻り値 .Sh 戻り値
.Rv -std mincore .Rv -std mincore
.Sh エラー .Sh エラー
.Fn mincore .Fn mincore
関数は次の場合に失敗します: システムコールは次の場合に失敗します:
.Bl -tag -width Er .Bl -tag -width Er
.It Bq Er EINVAL .It Bq Er EINVAL
.Fa addr .Fa addr

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE. .\" SUCH DAMAGE.
.\" .\"
.\" @(#)mount.2 8.3 (Berkeley) 5/24/95 .\" @(#)mount.2 8.3 (Berkeley) 5/24/95
.\" %FreeBSD: src/lib/libc/sys/mount.2,v 1.33 2003/01/13 19:42:21 joerg Exp % .\" %FreeBSD: src/lib/libc/sys/mount.2,v 1.34 2003/02/23 01:47:47 ru Exp %
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
.Dd May 24, 1995 .Dd May 24, 1995
@ -75,10 +75,12 @@
.Pp .Pp
デフォルトではスーパユーザのみが デフォルトではスーパユーザのみが
.Fn mount .Fn mount
関数を呼び出すことができます。 システムコールを呼び出すことができます。
この制約は sysctl の この制約は
.Xr sysctl 8
.Em vfs.usermount .Em vfs.usermount
を 0 ではない値に設定することで解除することが可能です。 変数を 0 ではない値に設定することで解除することが可能です。
.Pp .Pp
次の 次の
.Fa flags .Fa flags
@ -185,7 +187,7 @@ vfs
.Bl -tag -width Er .Bl -tag -width Er
.It Bq Er EPERM .It Bq Er EPERM
呼び出し側がスーパユーザでも 呼び出し側がスーパユーザでも
.Ar dir .Fa dir
の所有者でもありません。 の所有者でもありません。
.It Bq Er ENAMETOOLONG .It Bq Er ENAMETOOLONG
パス名の構成要素が 255 文字を越えているか、 パス名の構成要素が 255 文字を越えているか、
@ -260,7 +262,7 @@ nfs_args
.Bl -tag -width Er .Bl -tag -width Er
.It Bq Er EPERM .It Bq Er EPERM
呼び出し側がスーパユーザでも該当する 呼び出し側がスーパユーザでも該当する
.Xr mount 2 .Fn mount
の呼び出しを実行したユーザでもありません。 の呼び出しを実行したユーザでもありません。
.It Bq Er ENOTDIR .It Bq Er ENOTDIR
パスの構成要素中にディレクトリ以外のものが含まれています。 パスの構成要素中にディレクトリ以外のものが含まれています。
@ -287,7 +289,6 @@ nfs_args
.Sh 関連項目 .Sh 関連項目
.Xr lsvfs 1 , .Xr lsvfs 1 ,
.Xr mount 8 , .Xr mount 8 ,
.Xr sysctl 8 ,
.Xr umount 8 .Xr umount 8
.Sh バグ .Sh バグ
エラーコードには、明瞭なメッセージにするために変更が必要なものがあります。 エラーコードには、明瞭なメッセージにするために変更が必要なものがあります。

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE. .\" SUCH DAMAGE.
.\" .\"
.\" @(#)mprotect.2 8.1 (Berkeley) 6/9/93 .\" @(#)mprotect.2 8.1 (Berkeley) 6/9/93
.\" %FreeBSD: src/lib/libc/sys/mprotect.2,v 1.16 2002/12/23 19:25:03 trhodes Exp % .\" %FreeBSD: src/lib/libc/sys/mprotect.2,v 1.17 2003/02/23 01:47:48 ru Exp %
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
.Dd June 9, 1993 .Dd June 9, 1993
@ -57,14 +57,15 @@
の start (開始) と end (終了) のアドレスで定義される仮想アドレス空間です。 の start (開始) と end (終了) のアドレスで定義される仮想アドレス空間です。
.Pp .Pp
現在、以下の OR をとって組み合わせることが可能な保護ビットが知られています。 現在、以下の OR をとって組み合わせることが可能な保護ビットが知られています。
.Bl -tag -width "PROT_WRITE" .Pp
.It PROT_NONE .Bl -tag -width ".Dv PROT_WRITE" -compact
.It Dv PROT_NONE
全く保護しません。 全く保護しません。
.It PROT_READ .It PROT_READ
ページは読取り可能です。 ページは読取り可能です。
.It PROT_WRITE .It Dv PROT_WRITE
ページは書込み可能です。 ページは書込み可能です。
.It PROT_EXEC .It Dv PROT_EXEC
ページは実行可能です。 ページは実行可能です。
.El .El
.Sh 戻り値 .Sh 戻り値

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE. .\" SUCH DAMAGE.
.\" .\"
.\" @(#)open.2 8.2 (Berkeley) 11/16/93 .\" @(#)open.2 8.2 (Berkeley) 11/16/93
.\" %FreeBSD: src/lib/libc/sys/open.2,v 1.25 2002/12/19 09:40:25 ru Exp % .\" %FreeBSD: src/lib/libc/sys/open.2,v 1.26 2003/03/24 16:07:19 charnier Exp %
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
.Dd November 16, 1993 .Dd November 16, 1993
@ -169,7 +169,7 @@ O_NOFOLLOW
システムには、1 つのプロセスによって同時にオープンできる システムには、1 つのプロセスによって同時にオープンできる
ファイル記述子数に制限があります。 ファイル記述子数に制限があります。
.Xr getdtablesize 2 .Xr getdtablesize 2
は現在のシステム制限を返します。 システムコールは現在のシステム制限を返します。
.Sh 戻り値 .Sh 戻り値
正常に完了すると、 正常に完了すると、
.Fn open .Fn open

View file

@ -3,7 +3,7 @@
.\" describe the actual BSD implementation. Permission for .\" describe the actual BSD implementation. Permission for
.\" use of this page comes from Rob Pike <rob@plan9.att.com>. .\" use of this page comes from Rob Pike <rob@plan9.att.com>.
.\" .\"
.\" %FreeBSD: src/lib/libc/sys/rfork.2,v 1.29 2003/01/31 08:59:00 tjr Exp % .\" %FreeBSD: src/lib/libc/sys/rfork.2,v 1.30 2003/02/23 01:47:48 ru Exp %
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
.Dd January 31, 2003 .Dd January 31, 2003
@ -30,26 +30,26 @@ fork, vfork, rfork
許容します) およびオープンファイルが含まれます。 許容します) およびオープンファイルが含まれます。
.Fa flags .Fa flags
引数は次の項目の論理和 (OR) です: 引数は次の項目の論理和 (OR) です:
.Bl -tag -width "RFLINUXTHPN" -offset indent .Bl -tag -width ".Dv RFLINUXTHPN"
.It RFPROC .It Dv RFPROC
設定されている場合、新しいプロセスが作成されます。 設定されている場合、新しいプロセスが作成されます。
そうでない場合、変更が現在のプロセスに影響を及ぼします。 そうでない場合、変更が現在のプロセスに影響を及ぼします。
.It RFNOWAIT .It Dv RFNOWAIT
設定されている場合、子プロセスは親プロセスから分離されます。 設定されている場合、子プロセスは親プロセスから分離されます。
終了時に、子プロセスは、親プロセスが集めるステータスを残しません。 終了時に、子プロセスは、親プロセスが集めるステータスを残しません。
.Xr wait 2 .Xr wait 2
を参照してください。 を参照してください。
.It RFFDG .It Dv RFFDG
設定されている場合、起動側のファイル記述子テーブル 設定されている場合、起動側のファイル記述子テーブル
.Xr ( intro 2 .Xr ( intro 2
を参照) がコピーされます。 を参照) がコピーされます。
そうでない場合、2 つのプロセスが 1 つのテーブルを共有します。 そうでない場合、2 つのプロセスが 1 つのテーブルを共有します。
.It RFCFDG .It Dv RFCFDG
設定されている場合、新しいプロセスは新しいファイル記述子テーブルを持って 設定されている場合、新しいプロセスは新しいファイル記述子テーブルを持って
開始します。 開始します。
.Dv RFFDG .Dv RFFDG
とは互いに排他的です。 とは互いに排他的です。
.It RFMEM .It Dv RFMEM
設定されている場合、 設定されている場合、
通常、ハードウェアのページテーブルを直接共有することで、 通常、ハードウェアのページテーブルを直接共有することで、
カーネルはアドレス空間全体を強制的に共有します。 カーネルはアドレス空間全体を強制的に共有します。
@ -67,9 +67,9 @@ fork, vfork, rfork
詳しくは 詳しくは
.Xr rfork_thread 3 .Xr rfork_thread 3
を参照してください。 を参照してください。
.It RFSIGSHARE .It Dv RFSIGSHARE
設定されている場合、カーネルは、親子間で sigacts 構造体を強制的に共有します。 設定されている場合、カーネルは、親子間で sigacts 構造体を強制的に共有します。
.It RFLINUXTHPN .It Dv RFLINUXTHPN
設定されている場合、カーネルは、子についてのスレッド終了時に、 設定されている場合、カーネルは、子についてのスレッド終了時に、
SIGCHILD の代わりに SIGUSR1 を返します。 SIGCHILD の代わりに SIGUSR1 を返します。
これは特定の Linux クローン動作を模倣するためです。 これは特定の Linux クローン動作を模倣するためです。

View file

@ -23,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE. .\" SUCH DAMAGE.
.\" .\"
.\" %FreeBSD: src/lib/libc/sys/sendfile.2,v 1.16 2002/12/19 09:40:25 ru Exp % .\" %FreeBSD: src/lib/libc/sys/sendfile.2,v 1.17 2003/03/12 09:28:44 seanc Exp %
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
.Dd November 5, 1998 .Dd November 5, 1998
@ -101,6 +101,53 @@ NULL
.Fx .Fx
での実装は「0 コピー」です。 での実装は「0 コピー」です。
すなわち、ファイルデータのコピーが回避されるように最適化されています。 すなわち、ファイルデータのコピーが回避されるように最適化されています。
.Sh チューニング
内部ではこのシステムコールは、クライアントへの送信ファイルデータを
取り扱うために、特別な
.Xr sendfile 2
バッファ
.Pq Fa "struct sf_buf"
を使用しています。
送信ソケットがブロックされていて、
利用可能な送信ファイルバッファが十分でない場合には、
.Xr sendfile 2
はブロックされ、
.Dq sfbufa
の状態を報告します。
送信ソケットがブロックされておらず、
利用可能な送信ファイルバッファが十分でない場合には、
この呼び出しはブロックされ、呼び出しを終了する前に必要なバッファが
利用可能になるのを待ちます。
.Pp
.Fa sf_buf
の割り当てられた数は、
.Xr sendfile 2
を介してクライアントにデータを送信するために使用される nmbclusters の数に、
比例しているべきです。
ブロッキングを避けるために適宜にチューンしましょう!
.Xr sendfile 2
を広範囲に使用する忙しい装置が、
.Ar kern.ipc.nmbclusters
に展開されるこれらの値を増加させたくなるかもしれません
.Po
詳細は
.Xr tuning 7
を参照してください
.Pc
.Pp
使用中の
.Xr sendfile 2
バッファの数は、
.Xr loader.conf 5
の中の
.Em kern.ipc.nsfbufs
変数または
.Em NSFBUFS
カーネルコンフィギュレーション調整のどちらかによって、ブート時に決定されます。
sendfile バッファの数は
.Em kern.maxusers
に合わせて調整されます。
.Sh 戻り値 .Sh 戻り値
.Rv -std sendfile .Rv -std sendfile
.Sh エラー .Sh エラー
@ -144,6 +191,7 @@ sbytes
.Xr open 2 , .Xr open 2 ,
.Xr send 2 , .Xr send 2 ,
.Xr socket 2 , .Xr socket 2 ,
.Xr tuning 7 ,
.Xr writev 2 .Xr writev 2
.Sh 歴史 .Sh 歴史
.Fn sendfile .Fn sendfile

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE. .\" SUCH DAMAGE.
.\" .\"
.\" From: @(#)sigaction.2 8.2 (Berkeley) 4/3/94 .\" From: @(#)sigaction.2 8.2 (Berkeley) 4/3/94
.\" %FreeBSD: src/lib/libc/sys/sigaction.2,v 1.47 2002/12/27 12:15:29 schweikh Exp % .\" %FreeBSD: src/lib/libc/sys/sigaction.2,v 1.48 2003/03/24 16:07:19 charnier Exp %
.\" .\"
.\" 2001/01/01 horikawa@jp.FreeBSD.org .\" 2001/01/01 horikawa@jp.FreeBSD.org
.\" sigvec.2 を更新する場合は、共通部分の多い sigaction.2 も同時に更新 .\" sigvec.2 を更新する場合は、共通部分の多い sigaction.2 も同時に更新
@ -260,8 +260,8 @@ struct sigaction {
再開フラグ、割込みフラグが子プロセスに継承されます。 再開フラグ、割込みフラグが子プロセスに継承されます。
.Pp .Pp
.Xr execve 2 .Xr execve 2
は、捕捉されていたすべてのシグナルのデフォルトアクションを元に戻し、 システムコールは、捕捉されていたすべてのシグナルのデフォルトアクションを
すべてのシグナルをユーザスタックで受信されるようにリセットします。 元に戻し、すべてのシグナルをユーザスタックで受信されるようにリセットします。
無視されたシグナルは無視されたままです。 無視されたシグナルは無視されたままです。
シグナルマスクは同じ状態のままです。 シグナルマスクは同じ状態のままです。
保留中のシステムコールを再開する設定のシグナルは、その再開の設定のままです。 保留中のシステムコールを再開する設定のシグナルは、その再開の設定のままです。

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE. .\" SUCH DAMAGE.
.\" .\"
.\" From: @(#)socket.2 8.1 (Berkeley) 6/4/93 .\" From: @(#)socket.2 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/sys/socket.2,v 1.26 2003/01/01 18:48:43 schweikh Exp % .\" %FreeBSD: src/lib/libc/sys/socket.2,v 1.28 2003/03/24 16:07:19 charnier Exp %
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
.\" .\"
@ -64,29 +64,10 @@ PF_LOCAL PF_UNIX
PF_UNIX ホスト内プロトコル、使用は奨励されない。 PF_UNIX ホスト内プロトコル、使用は奨励されない。
PF_LOCAL を使用のこと PF_LOCAL を使用のこと
PF_INET IPv4 プロトコル PF_INET IPv4 プロトコル
PF_IMPLINK ARPAnet IMP アドレス
PF_PUP BSP のような PUP プロトコル PF_PUP BSP のような PUP プロトコル
PF_CHAOS MIT CHAOS プロトコル
PF_NS XNS (Xerox Network Systems) プロトコル
PF_ISO ISO プロトコル
PF_OSI 開放型システム間相互接続プロトコル
(Open System Interconnection)
PF_ECMA ヨーロッパ電子計算機工業会
(European Computer Manufacturers)
PF_DATAKIT データキット (Datakit) プロトコル
PF_CCITT X.25 に似た ITU-T プロトコル
PF_SNA IBM SNA
PF_DECnet DECnet
PF_DLI DEC Direct / DLI (Data Link Interface) プロトコル
PF_LAT LAT プロトコル
PF_HYLINK NSC ハイパーチャネル
PF_APPLETALK AppleTalk プロトコル PF_APPLETALK AppleTalk プロトコル
PF_ROUTE 内部ルーティングプロトコル PF_ROUTE 内部ルーティングプロトコル
PF_LINK リンク層インタフェース PF_LINK リンク層インタフェース
PF_XTP XTP プロトコル (Xpress Transfer Protocol)
PF_COIP コネクションオリエンテッド IP, 別名 ST II
PF_CNT Computer Network Technology 社のプロトコル
PF_SIP SIP プロトコル (Simple Internet Protocol)
PF_IPX Novell 社 IPX (Internet Packet eXchange) プロトコル PF_IPX Novell 社 IPX (Internet Packet eXchange) プロトコル
PF_RTIP RTIP パケットの識別に使用 PF_RTIP RTIP パケットの識別に使用
PF_PIP PIP パケットの識別に使用 PF_PIP PIP パケットの識別に使用
@ -122,9 +103,7 @@ SOCK_SEQPACKET
ソケットは、連続した、信頼性のある、双方向接続ベースの ソケットは、連続した、信頼性のある、双方向接続ベースの
最大長が固定のデータグラムの転送を提供します。 最大長が固定のデータグラムの転送を提供します。
各読取りシステムコールでパケット全体を読み取る必要があるかもしれません。 各読取りシステムコールでパケット全体を読み取る必要があるかもしれません。
この機能はプロトコル固有のもので、現在のところ この機能はプロトコル固有のもので、現在のところ実装されていません。
.Dv PF_NS
でしか実装されていません。
.Dv SOCK_RAW .Dv SOCK_RAW
ソケットでは、内部ネットワークプロトコルとインタフェースにアクセスできます。 ソケットでは、内部ネットワークプロトコルとインタフェースにアクセスできます。
スーパユーザしか使用できない スーパユーザしか使用できない
@ -230,9 +209,9 @@ SOCK_SEQPACKET
.Ao Pa sys/socket.h Ac .Ao Pa sys/socket.h Ac
に定義されています。 に定義されています。
.Xr setsockopt 2 .Xr setsockopt 2
はオプションの設定に、 システムコールはオプションの設定に、
.Xr getsockopt 2 .Xr getsockopt 2
はオプションの入手に使用します。 システムコールはオプションの入手に使用します。
.Sh 戻り値 .Sh 戻り値
エラーが発生すると -1 が戻されます。 エラーが発生すると -1 が戻されます。
エラーが発生しなかった場合は、ソケットを参照する記述子が戻されます。 エラーが発生しなかった場合は、ソケットを参照する記述子が戻されます。

View file

@ -26,7 +26,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\" .\"
.\" %FreeBSD: src/share/man/man9/device_get_softc.9,v 1.7 2001/10/01 16:09:24 ru Exp % .\" %FreeBSD: src/share/man/man9/device_get_softc.9,v 1.8 2003/03/28 07:28:31 imp Exp %
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
.Dd June 16, 1998 .Dd June 16, 1998
@ -41,11 +41,24 @@
.Ft void * .Ft void *
.Fn device_get_softc "device_t dev" .Fn device_get_softc "device_t dev"
.Sh 解説 .Sh 解説
デバイスのドライバ固有のインスタンス変数を返します。 デバイス
.Fa dev
のドライバ固有の状態を返します。 
この softc は最初に要求された時に自動的に割り当てられます。
割り当ての大きさは、ドライバを定義するために使用されるデバイスの
.Ft driver_t
情報によって決定されます。
softc は一般的に、デバイスの実体の状態をカプセル化します。
.Pp
ドライバ設計者が、独自の softc 管理メカニズムを使用することは推奨されません。
ドライバ設計者は、この関数より以前のツリーの中のドライバで見つけた、
このようなメカニズムをコピーするべきではありません。
.Sh 戻り値 .Sh 戻り値
デバイス固有のインスタンス変数へのポインタが返されます。 デバイス固有のインスタンス変数へのポインタが返されます。
.Sh 関連項目 .Sh 関連項目
.Xr device 9 .Xr driver 9 ,
.Xr device 9 ,
.Xr device_set_softc 9
.Sh 作者 .Sh 作者
このマニュアルページは このマニュアルページは
.An Doug Rabson .An Doug Rabson

View file

@ -152,9 +152,31 @@ free((addr), type)
はブロックせずに はブロックせずに
.Dv NULL .Dv NULL
を返します。 を返します。
割り込みコンテキストでの動作時には
.Dv M_NOWAIT .Dv M_NOWAIT
が必要であることに注意してください。 が 0 に定義されているということは、ブロッキング操作がデフォルトであることを
意味することに注意してください。
また、割り込みコンテキストでの動作時には
.Dv M_NOWAIT
が必要であることにも注意してください。
.Pp
プログラマは、
.Fn malloc
フラグ
.Dv M_NOWAIT
.Xr mbuf 9
の割り当てフラグ
.Dv M_DONTWAIT
を、混乱しないようにするべきです。
後者は
.Fn malloc
にとって有効ではない引数です。
.It Dv M_WAITOK
はリソースを待つことが OK であることを示します。
これは都合の悪いことに 0 として定義されていますので、
この値を直接比較すること、またはフラグとして AND をとろうとすることを
決して行なわないように注意が払われるべきです。
デフォルトの操作はメモリ割り当てが成功するまでブロックされます。
.Dv M_NOWAIT .Dv M_NOWAIT
が指定されると が指定されると
.Fn malloc , .Fn malloc ,

View file

@ -54,7 +54,7 @@
.Fn wakeup .Fn wakeup
はイベントに基づいたプロセスのブロックを取り扱います。 はイベントに基づいたプロセスのブロックを取り扱います。
プロセスが外部イベントを待たなければならない場合には、そのプロセスは プロセスが外部イベントを待たなければならない場合には、そのプロセスは
.Nm tsleep .Fn tsleep
によってスリープ状態に置かれます。 によってスリープ状態に置かれます。
パラメータ パラメータ
.Ar ident .Ar ident
@ -63,7 +63,7 @@
単一の 単一の
.Ar ident .Ar ident
上でスリープしている全てのプロセスは後で、 上でスリープしている全てのプロセスは後で、
.Nm wakeup .Fn wakeup
によって起こされます。これは、しばしば割り込みルーチンの中から呼び出され、 によって起こされます。これは、しばしば割り込みルーチンの中から呼び出され、
プロセスがブロックしているリソースが現在利用可能になったことを示します。 プロセスがブロックしているリソースが現在利用可能になったことを示します。
.Pp .Pp
@ -84,7 +84,7 @@
実行可能となったときその中の 1 つのみが実際には役に立つ作業ができるときに、 実行可能となったときその中の 1 つのみが実際には役に立つ作業ができるときに、
システムが飽和することを防ぐことが可能です。 システムが飽和することを防ぐことが可能です。
.Pp .Pp
.Nm tsleep .Fn tsleep
関数は一般的なスリープの呼び出しです。 関数は一般的なスリープの呼び出しです。
明示された識別子上の wakeup が実行されるまでの間、 明示された識別子上の wakeup が実行されるまでの間、
現在のプロセスを一時停止させます。 現在のプロセスを一時停止させます。
@ -112,11 +112,11 @@
.Er EINTR .Er EINTR
が返されます。 が返されます。
.Pp .Pp
.Nm msleep .Fn msleep
関数は tsleep の変種です。パラメータ 関数は tsleep の変種です。パラメータ
.Ar mtx .Ar mtx
は、スリープの前に抜け、 は、スリープの前に抜け、
.Nm msleep .Fn msleep
が戻る前に入る mutex です。 が戻る前に入る mutex です。
.Ar pri .Ar pri
@ -140,12 +140,12 @@ sleep/wakeup
.Ux .Ux
で登場しました。 で登場しました。
.Pp .Pp
.Nm tsleep .Fn tsleep
関数は 関数は
.Bx 4.4 .Bx 4.4
で登場しました。 で登場しました。
.Pp .Pp
.Nm .Fn sleep
関数は伝統的な形式のために使用されます。 関数は伝統的な形式のために使用されます。
これはタイムアウトまたは これはタイムアウトまたは
.Ar wmesg .Ar wmesg

View file

@ -50,7 +50,7 @@
* CSRG の KNF (Kernel Normal Form, カーネル標準書式) に基づいています。 * CSRG の KNF (Kernel Normal Form, カーネル標準書式) に基づいています。
* *
* @(#)style 1.14 (Berkeley) 4/28/95 * @(#)style 1.14 (Berkeley) 4/28/95
* $\&FreeBSD: src/share/man/man9/style.9,v 1.98 2002/12/27 12:15:34 schweikh Exp $ * $\&FreeBSD: src/share/man/man9/style.9,v 1.100 2003/03/25 19:46:55 jhb Exp $
*/ */
/* /*

View file

@ -23,7 +23,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\" .\"
.\" %FreeBSD: src/share/man/man9/uio.9,v 1.13 2002/06/20 07:09:24 peter Exp % .\" %FreeBSD: src/share/man/man9/uio.9,v 1.14 2003/03/03 10:49:37 des Exp %
.\" .\"
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
@ -50,7 +50,7 @@ struct uio {
}; };
.Ed .Ed
.Ft int .Ft int
.Fn uiomove "caddr_t buf" "int howmuch" "struct uio *uiop" .Fn uiomove "void *buf" "int howmuch" "struct uio *uiop"
.Sh 解説 .Sh 解説
.Fn uiomove .Fn uiomove
関数は、ユーザ空間とカーネル空間の境界を越えることさえ可能で、 関数は、ユーザ空間とカーネル空間の境界を越えることさえ可能で、
@ -134,7 +134,7 @@ fooread(dev_t dev, struct uio *uio, int flag)
while (uio->uio_resid > 0) { while (uio->uio_resid > 0) {
if (data_available > 0) { if (data_available > 0) {
amnt = MIN(uio->uio_resid, data_available); amnt = MIN(uio->uio_resid, data_available);
if ((rv = uiomove((caddr_t)buffer, amnt, uio)) if ((rv = uiomove(buffer, amnt, uio))
!= 0) != 0)
goto error; goto error;
data_available -= amnt; data_available -= amnt;

View file

@ -26,7 +26,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\" .\"
.\" %FreeBSD: src/share/man/man9/vnode.9,v 1.23 2003/01/19 15:44:32 sheldonh Exp % .\" %FreeBSD: src/share/man/man9/vnode.9,v 1.24 2003/03/06 23:55:51 ceri Exp %
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
.Dd June 30, 1999 .Dd June 30, 1999
@ -260,7 +260,7 @@ VFIFO/VSOCK
.Fn malloc .Fn malloc
または または
.Fn free .Fn free
への全ての呼出しは、VM オブジェクトと vnode の相互獲得のために、 への全ての呼出しは、VM オブジェクトと vnode のもつれ合いのために、
LOR (ロック順序の逆転) を引き起こします。 LOR (ロック順序の逆転) を引き起こします。
.Sh 関連項目 .Sh 関連項目
.Xr malloc 9 , .Xr malloc 9 ,