diff options
| author | SUZUKI Koichi <metal@FreeBSD.org> | 2004-09-21 21:00:59 +0000 |
|---|---|---|
| committer | SUZUKI Koichi <metal@FreeBSD.org> | 2004-09-21 21:00:59 +0000 |
| commit | d100276457d4e376e62553e03d191ce22f663107 (patch) | |
| tree | 09d0dfc83cdf1990c9aa364ef868f9ee6c86ed8f | |
| parent | 8b82a579315cf747fd9e065347c140ef00198a4b (diff) | |
Notes
45 files changed, 361 insertions, 203 deletions
diff --git a/ja_JP.eucJP/man/man9/BUS_CONFIG_INTR.9 b/ja_JP.eucJP/man/man9/BUS_CONFIG_INTR.9 index 12faae90ef..3a1fa03783 100644 --- a/ja_JP.eucJP/man/man9/BUS_CONFIG_INTR.9 +++ b/ja_JP.eucJP/man/man9/BUS_CONFIG_INTR.9 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/BUS_CONFIG_INTR.9,v 1.2 2003/10/23 06:22:40 hmp Exp % +.\" %FreeBSD: src/share/man/man9/BUS_CONFIG_INTR.9,v 1.4 2004/07/07 07:56:58 ru Exp % .\" .\" $FreeBSD$ .Dd September 23, 2003 @@ -32,29 +32,31 @@ .\" .Sh 名称 .Nm BUS_CONFIG_INTR -.Nd 割り込みの極性およびトリガモードの設定 +.Nd "割り込みの極性およびトリガモードの設定" .\" .Sh 書式 .In sys/param.h .In sys/bus.h .Ft int -.Fn BUS_CONFIG_INTR "device_t dev" "int irq" "enum intr_trigger trig" "enum intr_polarity pol" +.Fo BUS_CONFIG_INTR +.Fa "device_t dev" "int irq" "enum intr_trigger trig" "enum intr_polarity pol" +.Fc .\" .Sh 解説 -.Nm +.Fn BUS_CONFIG_INTR メソッドは、バスまたはデバイスのドライバが、親のバスに割り込み極性および トリガモードを提供することを可能にします。 これは通常は、ルートバス (例えば nexus) までの全ての経路を上がって行きます。 その全ての経路において、 実際にハードウェアをプログラムするために必要な動作がなされます。 -.Nm +.Fn BUS_CONFIG_INTR メソッドは割り込み番号をとるため、 .Xr BUS_SETUP_INTR 9 より先に呼び出されることが必ずしも要求されませんが、当然だと仮定されます。 .Pp .Fa trig 引数は以下のいずれかです。 -.Bl -tag -width INTR_TRIGGER_CONFORM +.Bl -tag -width ".Dv INTR_TRIGGER_CONFORM" .It Dv INTR_TRIGGER_CONFORM 割り込みトリガモードは、デバイスがアタッチされているバスにとっての標準です。 .It Dv INTR_TRIGGER_EDGE @@ -71,7 +73,7 @@ .Pp .Fa pol 引数は以下のいずれかです。 -.Bl -tag -width INTR_POLARITY_CONFORM +.Bl -tag -width ".Dv INTR_POLARITY_CONFORM" .It Dv INTR_POLARITY_CONFORM 割り込みの極性は、デバイスがアタッチされているバスにとっての標準です。 .It Dv INTR_POLARITY_HIGH @@ -90,7 +92,7 @@ .Xr driver 9 .\" .Sh 歴史 -.Nm +.Fn BUS_CONFIG_INTR メソッドは .Fx 5.2 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man9/DEVICE_DETACH.9 b/ja_JP.eucJP/man/man9/DEVICE_DETACH.9 index 410ca3e813..f87d854ec0 100644 --- a/ja_JP.eucJP/man/man9/DEVICE_DETACH.9 +++ b/ja_JP.eucJP/man/man9/DEVICE_DETACH.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/DEVICE_DETACH.9,v 1.10 2003/10/23 01:31:25 hmp Exp % +.\" %FreeBSD: src/share/man/man9/DEVICE_DETACH.9,v 1.11 2004/07/03 18:29:23 ru Exp % .\" .\" $FreeBSD$ .Dd June 16, 1998 @@ -42,15 +42,15 @@ .Fn DEVICE_DETACH "device_t dev" .Sh 解説 デバイスをデタッチします。 -ユーザがドライバソフトウェアを置き換えた場合、またはデバイスが -システムから物理的に切り離されようとしている場合(たとえば pccard デバイス)に、 +ユーザがドライバソフトウェアを置き換えた場合、またはデバイスがシステムから +物理的に切り離されようとしている場合 (たとえば pccard デバイス) に、 呼び出されることができます。 .Pp このメソッドは .Xr DEVICE_ATTACH 9 メソッドで割り当てられたあらゆるシステムリソースを解放し、 ハードウェアを健全な状態に -リセットする (つまり割り込みを無効にするなど) べきです。 +リセットする (すなわち割り込みを無効にするなど) べきです。 .Sh 戻り値 成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。 .Sh 関連項目 diff --git a/ja_JP.eucJP/man/man9/DEVICE_IDENTIFY.9 b/ja_JP.eucJP/man/man9/DEVICE_IDENTIFY.9 index b7b9820850..558582b09a 100644 --- a/ja_JP.eucJP/man/man9/DEVICE_IDENTIFY.9 +++ b/ja_JP.eucJP/man/man9/DEVICE_IDENTIFY.9 @@ -26,9 +26,9 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" +.\" %FreeBSD: src/share/man/man9/DEVICE_IDENTIFY.9,v 1.12 2004/07/03 18:29:23 ru Exp % .\" $FreeBSD$ -.\" $FreeBSD$ -.Dd March 10, 2001 +.Dd May 13, 2004 .Dt DEVICE_IDENTIFY 9 .Os .Sh 名称 @@ -57,14 +57,14 @@ を呼び出すことによってカーネルに登録されます。 .Pp デバイスツリーおよびデバイスドライバツリーが解体されるため、 -.Nm +.Fn DEVICE_IDENTIFY ルーチンはこれを考慮に入れる必要があります。 識別ルーチンを持っているデバイスドライバをロードおよびアンロードする場合には、 +この可能性を排除するための特別の手段がとられない限りは、 その子ノードは同じノードを何度も追加する能力を持っています。 .Sh 使用例 以下の疑似コードは、ハードウェアの一部をプローブし、デバイスと そのリソース (I/O ポート) をカーネルに登録する関数の例を示しています。 -デバイスの解説も設定しています。 .Bd -literal void foo_identify(driver_t *driver, device_t parent) @@ -72,10 +72,9 @@ foo_identify(driver_t *driver, device_t parent) device_t child; デバイス情報の取り出し; - if (サポートするデバイスうちの 1 つがマッチする) { + if (サポートするデバイスうちの 1 つがマッチする && + デバイスツリーに未だ存在しない) { child = BUS_ADD_CHILD(parent, 0, "foo", -1); - device_set_desc_copy(child, "foo chip ver.123"); - device_set_driver(child, driver); bus_set_resource(child, SYS_RES_IOPORT, 0, FOO_IOADDR, 1); } } @@ -88,8 +87,6 @@ foo_identify(driver_t *driver, device_t parent) .Xr DEVICE_ATTACH 9 , .Xr DEVICE_DETACH 9 , .Xr DEVICE_PROBE 9 , -.Xr device_set_desc_copy 9 , -.Xr device_set_driver 9 , .Xr DEVICE_SHUTDOWN 9 .Sh 作者 このマニュアルページは diff --git a/ja_JP.eucJP/man/man9/DEVICE_PROBE.9 b/ja_JP.eucJP/man/man9/DEVICE_PROBE.9 index 79704f602b..28e8e11f11 100644 --- a/ja_JP.eucJP/man/man9/DEVICE_PROBE.9 +++ b/ja_JP.eucJP/man/man9/DEVICE_PROBE.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/DEVICE_PROBE.9,v 1.17 2004/04/11 06:37:21 imp Exp % +.\" %FreeBSD: src/share/man/man9/DEVICE_PROBE.9,v 1.19 2004/08/11 21:52:31 imp Exp % .\" .\" $FreeBSD$ .Dd June 16, 1998 @@ -72,11 +72,13 @@ 成功値 0 を返す場合には、 ドライバはそのデバイスがアタッチされるであろうと想定することはできますが、 プローブルーチンが戻った時にいかなるリソースをも保持してはなりません。 +成功コード 0 を返すときには、 +ドライバは softc は保存されていると決めてかかることができます。 .Sh 戻り値 0 以下の値は成功を表し、0 より大きな値はエラー (errno) を表します。 0 以下の値の時、0 は最高の優先順位を表し、それ以上のプローブは行ないません。 0 未満の値は、低い値程、低い優先順位を表します。 -たとえば、-100 は -50 よりも低い優先順位を表します。 +たとえば -100 は -50 よりも低い優先順位を表します。 .Sh 関連項目 .Xr device 9 , .Xr DEVICE_ATTACH 9 , diff --git a/ja_JP.eucJP/man/man9/MD5.9 b/ja_JP.eucJP/man/man9/MD5.9 index a23eb72877..9a9d953256 100644 --- a/ja_JP.eucJP/man/man9/MD5.9 +++ b/ja_JP.eucJP/man/man9/MD5.9 @@ -28,7 +28,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/MD5.9,v 1.9 2003/10/23 01:31:25 hmp Exp % +.\" %FreeBSD: src/share/man/man9/MD5.9,v 1.10 2004/07/03 18:29:23 ru Exp % .\" .\" $FreeBSD$ .Dd April 17, 1996 @@ -48,7 +48,7 @@ .Fn MD5Transform "u_int32_t buf[4]" "const unsigned char block[64]" .Sh 解説 .Nm -モジュールは、RSA Data Security, Inc. の MD5 メッセージダイジェスト +モジュールは、RSA Data Security, Inc.\& の MD5 メッセージダイジェスト アルゴリズム(MD5)を実装しています。 これはデータの 128 ビットの MD5 ダイジェストを生成します。 .Pp diff --git a/ja_JP.eucJP/man/man9/VFS_ROOT.9 b/ja_JP.eucJP/man/man9/VFS_ROOT.9 index c7d6857082..fef5033e96 100644 --- a/ja_JP.eucJP/man/man9/VFS_ROOT.9 +++ b/ja_JP.eucJP/man/man9/VFS_ROOT.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/VFS_ROOT.9,v 1.9 2003/10/23 06:24:55 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VFS_ROOT.9,v 1.10 2004/07/12 09:06:51 alfred Exp % .\" .\" $FreeBSD$ .Dd July 24, 1996 @@ -40,7 +40,7 @@ .In sys/mount.h .In sys/vnode.h .Ft int -.Fn VFS_ROOT "struct mount *mp" "struct vnode **vpp" +.Fn VFS_ROOT "struct mount *mp" "struct vnode **vpp" "struct thread *td" .Sh 解説 ファイルシステムのルートディレクトリに対する、ロックされた vnode を返します。 .Pp @@ -50,6 +50,8 @@ ファイルシステム。 .It Fa vpp ルート vnode の引数の戻り値。 +.It Fa td +呼び出し側のスレッド。 .El .Sh 関連項目 .Xr VFS 9 , diff --git a/ja_JP.eucJP/man/man9/VOP_CREATE.9 b/ja_JP.eucJP/man/man9/VOP_CREATE.9 index 14540dbfeb..da7e6933e2 100644 --- a/ja_JP.eucJP/man/man9/VOP_CREATE.9 +++ b/ja_JP.eucJP/man/man9/VOP_CREATE.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/VOP_CREATE.9,v 1.14 2003/10/23 02:11:14 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VOP_CREATE.9,v 1.15 2004/07/08 00:08:18 alfred Exp % .\" .\" $FreeBSD$ .Dd July 24, 1996 @@ -72,21 +72,6 @@ これらのエントリポイントは、オブジェクトの生成中に .Xr VOP_LOOKUP 9 の後に呼び出されます。 -通常、 -.Xr VOP_LOOKUP 9 -は -.Dv SAVENAME -フラグを -.Fa cnp->cn_flags -中に設定して、 -.Fa cnp->cn_pnbuf -で指されるメモリを正当なままに保ちます。 -ファイルの作成時にエラーが検出された場合には、このメモリは解放されます。 -ファイルがうまく作成された場合には、 -.Fa cnp -に -.Dv SAVESTART -フラグが指定されていなければ、解放されます。 .Sh ロック ディレクトリ .Fa dvp @@ -114,11 +99,8 @@ vop_create(struct vnode *dvp, mode |= IFREG; error = SOMEFS_VALLOC(dvp, mode, cnp->cn_cred, &vp); - if (error) { - free(cnp->cn_pnbuf, M_NAMEI); - vput(dvp); + if (error) return error; - } /* * 新しい vnode のパーミッションを更新します。 @@ -142,9 +124,6 @@ vop_create(struct vnode *dvp, if (error) goto bad; - if ((cnp->cn_flags & SAVESTART) == 0) - free(cnp->cn_pnbuf, M_NAMEI); - vput(dvp); *vpp = vp; return 0; @@ -154,7 +133,6 @@ bad: * inode またはディレクトリの更新の試みで書き込みエラーが * 発生したため inode の割り当てを解放しなければなりません。 */ - free(cnp->cn_pnbuf, M_NAMEI); vput(vp); /* @@ -162,8 +140,6 @@ bad: */ ...; - vput(dvp); - return error; } .Ed diff --git a/ja_JP.eucJP/man/man9/VOP_GETPAGES.9 b/ja_JP.eucJP/man/man9/VOP_GETPAGES.9 index 702fe18053..9180f8e083 100644 --- a/ja_JP.eucJP/man/man9/VOP_GETPAGES.9 +++ b/ja_JP.eucJP/man/man9/VOP_GETPAGES.9 @@ -27,7 +27,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/VOP_GETPAGES.9,v 1.9 2003/10/23 02:11:14 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VOP_GETPAGES.9,v 1.10 2004/06/16 08:33:57 ru Exp % .\" .\" $FreeBSD$ .Dd September 27, 2003 diff --git a/ja_JP.eucJP/man/man9/VOP_LINK.9 b/ja_JP.eucJP/man/man9/VOP_LINK.9 index 9680854567..c80b377e4d 100644 --- a/ja_JP.eucJP/man/man9/VOP_LINK.9 +++ b/ja_JP.eucJP/man/man9/VOP_LINK.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/VOP_LINK.9,v 1.20 2003/05/31 14:07:25 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VOP_LINK.9,v 1.21 2004/07/04 20:55:49 ru Exp % .\" .\" $FreeBSD$ .Dd July 24, 1996 @@ -109,8 +109,8 @@ vop_link(struct vnode *dvp, struct vnode *vp, struct componentname *cnp) 異なるファイルシステム間ではハードリンクは利用できません。 .El .Sh 関連項目 -.Xr vnode 9 , -.Xr vn_lock 9 +.Xr vn_lock 9 , +.Xr vnode 9 .Sh 作者 このマニュアルページは .An Doug Rabson diff --git a/ja_JP.eucJP/man/man9/VOP_LOOKUP.9 b/ja_JP.eucJP/man/man9/VOP_LOOKUP.9 index 8f02585b64..7c253cb803 100644 --- a/ja_JP.eucJP/man/man9/VOP_LOOKUP.9 +++ b/ja_JP.eucJP/man/man9/VOP_LOOKUP.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/VOP_LOOKUP.9,v 1.19 2003/05/31 14:07:25 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VOP_LOOKUP.9,v 1.21 2004/07/08 00:36:58 alfred Exp % .\" .\" $FreeBSD$ .Dd November 24, 1997 @@ -63,7 +63,7 @@ struct componentname { */ u_long cn_nameiop; /* namei 操作 */ u_long cn_flags; /* namei へのフラグ */ - struct proc *cn_proc; /* lookup を要求しているプロセス */ + struct thread *cn_proc; /* lookup を要求しているスレッド */ struct ucred *cn_cred; /* 証明 */ /* * 検索ルーチンおよびコミットルーチンで共有されます。 @@ -107,7 +107,8 @@ notfound: .Bd -ragged -offset indent 作成または名前変更でパス名の最後の場合には、 .Er EJUSTRETURN -を返し、利用可能な位置に情報を残します。そうでなければ +を返し、利用可能な位置に情報を残します。 +そうでなければ .Er ENOENT を返します。 .Ed @@ -174,7 +175,7 @@ vop_lookup(struct vnode *dvp, if (dvp->v_type != VDIR) return ENOTDIR; - error = VOP_ACCESS(dvp, VEXEC, cred, cnp->cn_proc); + error = VOP_ACCESS(dvp, VEXEC, cred, cnp->cn_thread); if (error) return (error); @@ -225,7 +226,7 @@ vop_lookup(struct vnode *dvp, if (vpid == vp->v_id) { /* * lockparent && islastcn の場合には dvp がロック - * されます。vp がロックされます。 + * されます。 vp がロックされます。 */ return (0); } @@ -261,7 +262,7 @@ vop_lookup(struct vnode *dvp, /* * できる限り、ディレクトリの中の新しい要素の名前のために - * 十分に大きい場所の位置を記録します。これは dvp のための + * 十分に大きい場所の位置を記録します。 これは dvp のための * vnode の私的データの中に記録されることが可能です。 * VOP_CREATE または VOP_RENAME で後で使用するために、 * パス名に保持するために SAVENAME フラグを設定します。 @@ -287,7 +288,7 @@ vop_lookup(struct vnode *dvp, } else { /* * 削除でパス名の最後の場合には、ファイルの削除に使用できる - * パラメータを返します。wantparent フラグが設定されていない + * パラメータを返します。 wantparent フラグが設定されていない * 場合にはそのディレクトリのみを返し、そうでない場合には * 続けてその inode をロックし、"." に注意します。 */ @@ -295,7 +296,7 @@ vop_lookup(struct vnode *dvp, /* * ディレクトリの書込み権をチェックします。 */ - error = VOP_ACCESS(dvp, VWRITE, cred, cnp->cn_proc); + error = VOP_ACCESS(dvp, VWRITE, cred, cnp->cn_thread); if (error) return (error); @@ -330,7 +331,7 @@ vop_lookup(struct vnode *dvp, * ディレクトリエントリの inode を取得しなければなりません。 */ if (nameiop == RENAME && wantparent && islastcn) { - error = VOP_ACCESS(dvp, VWRITE, cred, cnp->cn_proc); + error = VOP_ACCESS(dvp, VWRITE, cred, cnp->cn_thread); if (error) return (error); @@ -355,21 +356,21 @@ vop_lookup(struct vnode *dvp, } /* - * 名前の変換のステップの全容です。シンボリックリンクが現在の + * 名前の変換のステップの全容です。 シンボリックリンクが現在の * ディレクトリからの相対である場合には、再度必要になるので、 - * ディレクトリを 'vput' しません。代わりに "pdp" として - * アンロックされたディレクトリを保存します。取得する前にその + * ディレクトリを 'vput' しません。 代わりに "pdp" として + * アンロックされたディレクトリを保存します。 取得する前にその * inode が削除されないことを保証するために、そのディレクトリを * アンロックする前に目的の inode を取得しなければなりません。 * ルートからディレクトリツリーを下る方向で inode を取得する - * ことで、デッドロックを常に予防します。従がって、逆向きの + * ことで、デッドロックを常に予防します。 従がって、逆向きの * ポインタ ".." を辿るときには、要求されたディレクトリを取得する - * 前に親ディレクトリをアンロックしなければなりません。".." に + * 前に親ディレクトリをアンロックしなければなりません。 ".." に * 関連付けられた inode のための VFS_VGET が戻る前に、現在の * および親ディレクトリの両方が削除された場合には、ここに潜在的な - * 競合状態があります。きわめて複雑なデッドロック検出アルゴリズム + * 競合状態があります。 きわめて複雑なデッドロック検出アルゴリズム * の実装なしにこの競合状態を避けることができないので、この - * 競合状態の発生が稀であることを期待しています。ファイルシステムが、 + * 競合状態の発生が稀であることを期待しています。 ファイルシステムが、 * ".." 以外に、ディレクトリ構造の中に遡りを指すハードリンクを * 持つ場合、この簡単なデッドロック検出機構が働かないことにも注意 * してください。 diff --git a/ja_JP.eucJP/man/man9/VOP_OPENCLOSE.9 b/ja_JP.eucJP/man/man9/VOP_OPENCLOSE.9 index 03332fdb54..d0c37fbfc7 100644 --- a/ja_JP.eucJP/man/man9/VOP_OPENCLOSE.9 +++ b/ja_JP.eucJP/man/man9/VOP_OPENCLOSE.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/VOP_OPENCLOSE.9,v 1.13 2003/10/23 02:11:14 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VOP_OPENCLOSE.9,v 1.15 2004/05/11 14:13:52 hmp Exp % .\" .\" $FreeBSD$ .Dd July 24, 1996 @@ -40,7 +40,7 @@ .In sys/param.h .In sys/vnode.h .Ft int -.Fn VOP_OPEN "struct vnode *vp" "int mode" "struct ucred *cred" "struct thread *td" +.Fn VOP_OPEN "struct vnode *vp" "int mode" "struct ucred *cred" "struct thread *td" "int fdidx" .Ft int .Fn VOP_CLOSE "struct vnode *vp" "int mode" "struct ucred *cred" "struct thread *td" .Sh 解説 @@ -61,6 +61,15 @@ ファイルにアクセスしているスレッド。 .El .Pp +加えて、 +.Fn VOP_OPEN +は +.Fa fdidx +の中のファイル記述子番号を受け入れることが可能です。 +これは例えば +.Xr fdesc 5 +のような情報を要求するファイルシステムで有用です。 +.Pp アクセスモードは、 .Dv FREAD , .Dv FWRITE , @@ -80,6 +89,14 @@ vnode がロックされているかどうかは気にしません。 .Fa vn_close は、ロックされていない参照された vnode を期待し、 戻る前に参照を手繰ることに注意してください。 +.Sh 実装に関する注 +.Fn VOP_OPEN +への +.Fa fdidx +引数は現在使用されておらず、当面は +.Ql \-1 +を使用します。 +しかしながら、これは将来変更されます。 .Sh 戻り値 成功時には 0 が返され、そうでない場合にはエラーコードが返されます。 .Sh 疑似コード diff --git a/ja_JP.eucJP/man/man9/VOP_RDWR.9 b/ja_JP.eucJP/man/man9/VOP_RDWR.9 index 0673eb060c..277625404f 100644 --- a/ja_JP.eucJP/man/man9/VOP_RDWR.9 +++ b/ja_JP.eucJP/man/man9/VOP_RDWR.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/VOP_RDWR.9,v 1.15 2003/10/23 02:11:14 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VOP_RDWR.9,v 1.17 2004/07/08 00:43:50 alfred Exp % .\" .\" $FreeBSD$ .Dd July 24, 1996 @@ -142,7 +142,7 @@ vop_read(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred) if (bp != NULL) bqrelse(bp); - return error; + return (error); } int @@ -207,7 +207,8 @@ vop_write(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred) if (error) { if (ioflag & IO_UNIT) { - VOP_TRUNCATE(vp, osize, ioflag & IO_SYNC, cred, uio->uio_procp); + /* ファイルを切り詰める私的なルーチンを呼び出す。 */ + your_truncate(vp, osize, ioflag & IO_SYNC, cred, uio->uio_td); uio->uio_offset -= resid - uio->uio_resid; uio->uio_resid = resid; } @@ -216,7 +217,7 @@ vop_write(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred) error = VOP_UPDATE(vp, &tv, &tv, 1); /* XXX これは何をしているの? */ } - return error; + return (error); } .Ed .Sh エラー diff --git a/ja_JP.eucJP/man/man9/VOP_RENAME.9 b/ja_JP.eucJP/man/man9/VOP_RENAME.9 index f52f691690..61be4bbb4e 100644 --- a/ja_JP.eucJP/man/man9/VOP_RENAME.9 +++ b/ja_JP.eucJP/man/man9/VOP_RENAME.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/VOP_RENAME.9,v 1.19 2003/10/23 03:52:07 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VOP_RENAME.9,v 1.20 2004/07/08 00:38:28 alfred Exp % .\" .\" $FreeBSD$ .Dd July 24, 1996 @@ -172,7 +172,7 @@ vop_rename(struct vnode *fdvp, struct vnode *fvp, struct componentname *fcnp, * 変更元で ".." を変更できるように書込みパーミッションを持って * いなければなりません。 */ - error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, tcnp->cn_proc); + error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, tcnp->cn_thread); VOP_UNLOCK(fvp); if (doingdirectory && fdvp != tdvp) { /* diff --git a/ja_JP.eucJP/man/man9/accept_filter.9 b/ja_JP.eucJP/man/man9/accept_filter.9 index 03f3e37a04..b5d4271dc6 100644 --- a/ja_JP.eucJP/man/man9/accept_filter.9 +++ b/ja_JP.eucJP/man/man9/accept_filter.9 @@ -23,7 +23,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/accept_filter.9,v 1.12 2003/10/23 14:32:23 hmp Exp % +.\" %FreeBSD: src/share/man/man9/accept_filter.9,v 1.13 2004/06/16 08:33:57 ru Exp % .\" $FreeBSD$ .\" " .Dd June 25, 2000 @@ -62,7 +62,7 @@ accept フィルタは、 システムコールを介して要求されます。 .Sh 実装に関する注 accept フィルタになりたいモジュールは、システムに -.Vt struct accept_filter +.Vt "struct accept_filter" 構造体を提供しなければなりません。 .Bd -literal struct accept_filter { @@ -75,29 +75,29 @@ struct accept_filter { .Ed .Pp そのモジュールは、 -.Fn malloc +.Xr malloc 9 で割当てられた -.Fa struct accept_filter +.Vt "struct accept_filter" 構造体へのポインタを渡す関数 .Fn accept_filt_add を使用して、それを登録するべきです。 .Pp -.Vt struct accept_filter +.Vt "struct accept_filter" のフィールドは以下の通りです。 -.Bl -tag -width accf_callbackXXX -.It Vt accf_name +.Bl -tag -width ".Va accf_callback" +.It Va accf_name フィルタの名前です。 これはユーザ領域からアクセスされる方法です。 -.It Fn accf_callback +.It Va accf_callback 接続が確立されたときにカーネルが実行するコールバックです。 これは socket upcall と同等で、そのコールバックがソケットのフラグを 変更しない限りは、接続が確立したとき、 またソケットに新しいデータが届くたびに、呼出されます。 -.It Fn accf_create +.It Va accf_create 監視しているソケット上に .Xr setsockopt 2 がフィルタをインストールするたびに呼出されます。 -.It Fn accf_destroy +.It Va accf_destroy ユーザがそのソケット上の accept フィルタを取り除くたびに呼出されます。 .El .Pp @@ -111,7 +111,7 @@ struct accept_filter { .Pp .Fn accept_filt_get 関数は -.Fn setsockopt +.Xr setsockopt 2 システムコールを介して使用されるための accept フィルタを 見つけるために内部で使用されます。 .Pp @@ -141,7 +141,7 @@ accept フィルタ機構は .An Jeroen Ruigrok van der Werven が書きました。 .Pp -accept フィルタの構想は Yahoo! の +accept フィルタの構想は Yahoo!\& の .An David Filo によって開拓され、 .An Alfred Perlstein diff --git a/ja_JP.eucJP/man/man9/boot.9 b/ja_JP.eucJP/man/man9/boot.9 index d4b06140d1..58854350dc 100644 --- a/ja_JP.eucJP/man/man9/boot.9 +++ b/ja_JP.eucJP/man/man9/boot.9 @@ -32,7 +32,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/boot.9,v 1.9 2003/10/23 01:14:18 hmp Exp % +.\" %FreeBSD: src/share/man/man9/boot.9,v 1.10 2004/07/03 18:29:23 ru Exp % .\" .\" $FreeBSD$ .Dd February 14, 1997 @@ -74,7 +74,7 @@ .It 割り込みを無効にします。 .It -クラッシュの後の再起動の場合 (例えば、 +クラッシュの後の再起動の場合 (すなわち .Fa howto に .Dv RB_DUMP diff --git a/ja_JP.eucJP/man/man9/buf.9 b/ja_JP.eucJP/man/man9/buf.9 index ca2022db6a..a3d80e400c 100644 --- a/ja_JP.eucJP/man/man9/buf.9 +++ b/ja_JP.eucJP/man/man9/buf.9 @@ -29,7 +29,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/buf.9,v 1.13 2003/10/23 02:22:07 hmp Exp % +.\" %FreeBSD: src/share/man/man9/buf.9,v 1.16 2004/07/03 18:29:23 ru Exp % .\" $FreeBSD$ .\" .Dd December 22, 1998 @@ -126,7 +126,7 @@ VM バッファはカーネル内部の入出力操作を追跡するために使用されます。 ダーティであると目印を付けられ、そのバッファは正当/ダーティの状態情報を 失うことなく、完全に解放されることが可能です。 (XXX この状況に配慮して、その他のフラグをチェックしなければならない -のでしょうか ???)。 +のでしょうか ???) .Pp カーネルは VM バッファのデータマップを保持するために、その KVM 空間の 一部を予約します。 diff --git a/ja_JP.eucJP/man/man9/bus_alloc_resource.9 b/ja_JP.eucJP/man/man9/bus_alloc_resource.9 index e7e5901e18..95f0994b93 100644 --- a/ja_JP.eucJP/man/man9/bus_alloc_resource.9 +++ b/ja_JP.eucJP/man/man9/bus_alloc_resource.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/bus_alloc_resource.9,v 1.18 2004/03/17 17:40:34 njl Exp % +.\" %FreeBSD: src/share/man/man9/bus_alloc_resource.9,v 1.19 2004/06/16 08:33:57 ru Exp % .\" .\" $FreeBSD$ .Dd May 18, 2000 diff --git a/ja_JP.eucJP/man/man9/bus_child_present.9 b/ja_JP.eucJP/man/man9/bus_child_present.9 index 710c23a2af..e0c625efcb 100644 --- a/ja_JP.eucJP/man/man9/bus_child_present.9 +++ b/ja_JP.eucJP/man/man9/bus_child_present.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/bus_child_present.9,v 1.2 2003/05/30 21:13:32 ru Exp % +.\" %FreeBSD: src/share/man/man9/bus_child_present.9,v 1.3 2004/06/21 14:11:45 mpp Exp % .\" .\" $FreeBSD$ .Dd March 27, 2003 diff --git a/ja_JP.eucJP/man/man9/bus_release_resource.9 b/ja_JP.eucJP/man/man9/bus_release_resource.9 index 69cb5e5a32..cc8e8f8d49 100644 --- a/ja_JP.eucJP/man/man9/bus_release_resource.9 +++ b/ja_JP.eucJP/man/man9/bus_release_resource.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/bus_release_resource.9,v 1.8 2001/10/01 16:09:24 ru Exp % +.\" %FreeBSD: src/share/man/man9/bus_release_resource.9,v 1.9 2004/07/03 18:29:23 ru Exp % .\" .\" $FreeBSD$ .Dd May 18, 2000 diff --git a/ja_JP.eucJP/man/man9/cd.9 b/ja_JP.eucJP/man/man9/cd.9 index 68a4ec3af0..65b51fd86c 100644 --- a/ja_JP.eucJP/man/man9/cd.9 +++ b/ja_JP.eucJP/man/man9/cd.9 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/cd.9,v 1.20 2003/10/23 05:34:13 hmp Exp % +.\" %FreeBSD: src/share/man/man9/cd.9,v 1.22 2004/06/16 08:33:57 ru Exp % .\" .\" $FreeBSD$ .Dd September 2, 2003 diff --git a/ja_JP.eucJP/man/man9/condvar.9 b/ja_JP.eucJP/man/man9/condvar.9 index 0dd80d2792..1949cbf4c1 100644 --- a/ja_JP.eucJP/man/man9/condvar.9 +++ b/ja_JP.eucJP/man/man9/condvar.9 @@ -24,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH .\" DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/condvar.9,v 1.9 2004/03/10 15:57:25 jhb Exp % +.\" %FreeBSD: src/share/man/man9/condvar.9,v 1.10 2004/06/21 14:11:45 mpp Exp % .\" .\" $FreeBSD$ .Dd December 11, 2000 diff --git a/ja_JP.eucJP/man/man9/copy.9 b/ja_JP.eucJP/man/man9/copy.9 index 90c0d5d468..dc434ef59c 100644 --- a/ja_JP.eucJP/man/man9/copy.9 +++ b/ja_JP.eucJP/man/man9/copy.9 @@ -32,7 +32,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/copy.9,v 1.14 2004/03/29 19:42:21 hmp Exp % +.\" %FreeBSD: src/share/man/man9/copy.9,v 1.15 2004/06/16 08:33:57 ru Exp % .\" .\" $FreeBSD$ .Dd January 7, 1996 @@ -98,12 +98,10 @@ 末尾のヌル文字を含む実際にコピーされた文字数が .Fa *done に返されます -.Po -.Fa done +.Fa ( done が .Dv NULL -ではない場合 -.Pc Ns 。 +ではない場合)。 .It Fn copyinstr ユーザ空間のアドレス .Fa uaddr @@ -115,12 +113,10 @@ 末尾のヌル文字を含む実際にコピーされた文字数が .Fa *done に返されます -.Po -.Fa done +.Fa ( done が .Dv NULL -ではない場合 -.Pc Ns 。 +ではない場合)。 .\" .It Fn copyoutstr .\" カーネル空間のアドレス .\" .Fa kaddr diff --git a/ja_JP.eucJP/man/man9/device_add_child.9 b/ja_JP.eucJP/man/man9/device_add_child.9 index af8dc966d4..8e0dc7fab0 100644 --- a/ja_JP.eucJP/man/man9/device_add_child.9 +++ b/ja_JP.eucJP/man/man9/device_add_child.9 @@ -26,10 +26,10 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/device_add_child.9,v 1.16 2003/10/23 06:19:45 hmp Exp % +.\" %FreeBSD: src/share/man/man9/device_add_child.9,v 1.19 2004/07/03 18:29:23 ru Exp % .\" .\" $FreeBSD$ -.Dd June 16, 1998 +.Dd May 13, 2004 .Dt DEVICE_ADD_CHILD 9 .Os .Sh 名称 @@ -62,6 +62,8 @@ 名前が指定されている場合には、その名前のドライバのみがプローブされます。 名前が与えられなかった場合には、 認識しているバスの全てのドライバがプローブされます。 +全てのイベントで、その名前に結び付いているドライバのロードとアンロードが +安全にできるように、そのデバイスの名前のみが格納されます。 .Pp これは、デバイスインスタンスを独自に識別することができるバス (PCI 等) が、 個々のドライバが個々のデバイスインスタンスに適合しているか @@ -73,12 +75,12 @@ 通常、ユニット番号はシステムによって自動的に選択されますので、ユニット番号は .Dv -1 が与えられるべきです。 -指定のユニット番号が希望された時に (例えば、ハードウェアの一部分を +指定のユニット番号が希望された時に (例えばハードウェアの一部分を あらかじめ設定されたユニット番号に結びつけるため)、unit は渡されるべきです。 指定されたユニット番号が既に割り当てられていた場合には、新しいユニット番号が 割り当てられ、診断メッセージが表示されます。 .Pp -指定の順序でプローブされなければならないバス (例えば、ISA バス用の幾つかの +指定の順序でプローブされなければならないバス (例えば ISA バス用の幾つかの デバイスは関連の無いドライバのプローブの試みの失敗に敏感で、それゆえ 最初にプローブされなければならない) にアタッチされたデバイスの場合には、 .Fn device_add_child_ordered @@ -89,6 +91,19 @@ 既存のより大きい順序を持つすべてのデバイスの前に追加されます。 .Fn device_add_child が使用された場合には、順序が 0 であるとして新しい子が追加されます。 +.Pp +.Xr DEVICE_IDENTIFY 9 +ルーチンのコンテキストでデバイスを追加するときには、 +そのデバイスが既にツリーに追加されていないことを保証するために +いくつかの注意が払われなければなりません。 +なぜならば、そのデバイスの名前と +.Vt devclass_t +はプローブ時に (子の追加時ではなく) 関連付けられ、(モジュールの中で +後でアンロードされたと示されている) そのドライバの前のインスタンスが +既に追加されているかもしれないからです。 +バスドライバの作者は同様に、 +子デバイスの複製を避けるためにロードおよびアンロードされるときに、 +子の追加時にも注意しなければなりません。 .Sh 戻り値 成功時には新しいデバイスが、そうでなければ NULL が返されます。 .Sh 関連項目 diff --git a/ja_JP.eucJP/man/man9/device_ids.9 b/ja_JP.eucJP/man/man9/device_ids.9 index 272f367af5..65e5685f25 100644 --- a/ja_JP.eucJP/man/man9/device_ids.9 +++ b/ja_JP.eucJP/man/man9/device_ids.9 @@ -24,10 +24,10 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH .\" DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/device_ids.9,v 1.2 2003/10/23 06:19:45 hmp Exp % +.\" %FreeBSD: src/share/man/man9/device_ids.9,v 1.3 2004/06/22 20:18:15 le Exp % .\" .\" $FreeBSD$ -.Dd July 9, 2001 +.Dd June 22, 2004 .Dt DEVICE_IDS 9 .Os .Sh 名称 @@ -41,13 +41,13 @@ .In sys/types.h .In sys/systm.h .Ft int -.Fn major "dev_t dev" +.Fn major "struct cdev *dev" .Ft int -.Fn minor "dev_t dev" +.Fn minor "struct cdev *dev" .Ft int -.Fn umajor "udev_t id" +.Fn umajor "dev_t id" .Ft int -.Fn uminor "udev_t id" +.Fn uminor "dev_t id" .Sh 解説 .Nm ファミリの関数は、ローデバイスの ID である @@ -70,7 +70,7 @@ および .Fn minor は -.Dv NOUDEV +.Dv NODEV を返します。 .Sh AUTHORS このマニュアルページは diff --git a/ja_JP.eucJP/man/man9/devstat.9 b/ja_JP.eucJP/man/man9/devstat.9 index 53d09e96a1..44daab9f65 100644 --- a/ja_JP.eucJP/man/man9/devstat.9 +++ b/ja_JP.eucJP/man/man9/devstat.9 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/devstat.9,v 1.20 2003/10/23 01:54:06 hmp Exp % +.\" %FreeBSD: src/share/man/man9/devstat.9,v 1.21 2004/07/03 18:29:24 ru Exp % .\" .\" $FreeBSD$ .Dd May 22, 1998 diff --git a/ja_JP.eucJP/man/man9/malloc.9 b/ja_JP.eucJP/man/man9/malloc.9 index cfec231c39..4720a58351 100644 --- a/ja_JP.eucJP/man/man9/malloc.9 +++ b/ja_JP.eucJP/man/man9/malloc.9 @@ -33,7 +33,7 @@ .\" POSSIBILITY OF SUCH DAMAGE. .\" .\" $NetBSD: malloc.9,v 1.3 1996/11/11 00:05:11 lukem Exp $ -.\" %FreeBSD: src/share/man/man9/malloc.9,v 1.39 2004/03/06 02:13:03 jkoshy Exp % +.\" %FreeBSD: src/share/man/man9/malloc.9,v 1.40 2004/06/21 14:11:45 mpp Exp % .\" $FreeBSD$ .\" .Dd June 12, 2003 @@ -287,7 +287,7 @@ MALLOC(buf, struct foo_buf *, sizeof *buf, M_FOOBUF, M_NOWAIT); .Dv ( M_NOWAIT 付であっても) または .Fn free -への全ての呼出しは、VM オブジェクトと vnode の相互獲得のために、 +への全ての呼出しは、VM オブジェクトと vnode の相互のからみ合いのために、 LOR (ロック順序の逆転) を引き起こします。 .Sh 関連項目 .Xr vmstat 8 , diff --git a/ja_JP.eucJP/man/man9/mi_switch.9 b/ja_JP.eucJP/man/man9/mi_switch.9 index dbc4c2d5ea..e23031dd0a 100644 --- a/ja_JP.eucJP/man/man9/mi_switch.9 +++ b/ja_JP.eucJP/man/man9/mi_switch.9 @@ -34,7 +34,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/mi_switch.9,v 1.17 2002/12/27 12:15:34 schweikh Exp % +.\" %FreeBSD: src/share/man/man9/mi_switch.9,v 1.18 2004/07/03 18:29:24 ru Exp % .\" .\" $FreeBSD$ .Dd November 24, 1996 diff --git a/ja_JP.eucJP/man/man9/microseq.9 b/ja_JP.eucJP/man/man9/microseq.9 index fb284a4e2c..bdb92ae381 100644 --- a/ja_JP.eucJP/man/man9/microseq.9 +++ b/ja_JP.eucJP/man/man9/microseq.9 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/microseq.9,v 1.17 2002/12/27 12:15:34 schweikh Exp % +.\" %FreeBSD: src/share/man/man9/microseq.9,v 1.18 2004/07/03 18:29:24 ru Exp % .\" $FreeBSD$ .\" .Dd June 6, 1998 diff --git a/ja_JP.eucJP/man/man9/module.9 b/ja_JP.eucJP/man/man9/module.9 index ef5f53d45f..06d0ae6145 100644 --- a/ja_JP.eucJP/man/man9/module.9 +++ b/ja_JP.eucJP/man/man9/module.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/module.9,v 1.7 2001/07/10 15:30:58 ru Exp % +.\" %FreeBSD: src/share/man/man9/module.9,v 1.8 2004/07/13 19:36:58 phk Exp % .\" .\" $FreeBSD$ .Dd March 1, 2001 @@ -45,21 +45,40 @@ .Pp .Xr DECLARE_MODULE 9 マクロはシステムにモジュールを登録します。 +.Pp そのモジュールがロードされた時に、 .Fa what 引数に .Dv MOD_LOAD が設定されて、イベントハンドラ関数が呼び出されます。 -アンロード時には、 +.Pp +アンロード時は最初に +.Fa what +に MOD_QUIESCE が設定されて呼び出されます。 +アンロードが強制されなかった場合には、0 ではない値が返ることで +アンロードの発生を防ぎます。 +.Pp +アンロードが継続する場合には .Fa what -には +に .Dv MOD_UNLOAD が設定されます。 +モジュールがこれに 0 ではない値を返す場合には、アンロードは起こりません。 +.Pp +MOD_QUIESCE と MOD_UNLOAD の違いは、モジュールが使用中であれば +モジュールは MOD_QUIESCE を失敗させるべきであり、それに対して、 +モジュールのアンロードが不可能な場合にのみ MOD_UNLOAD が失敗するべきです。 +例えば、解除することができないそのモジュールへのメモリ参照がある場合です。 +.Pp システムがシャットダウンされる時には、 .Fa what は .Dv MOD_SHUTDOWN の値を含みます。 +.Pp +モジュールは +.Fa what +の値を認識できない場合は EOPNOTSUPP を返すべきです。 .Sh 使用例 .Bd -literal #include <sys/param.h> diff --git a/ja_JP.eucJP/man/man9/physio.9 b/ja_JP.eucJP/man/man9/physio.9 index 28450163fb..5d48ee132d 100644 --- a/ja_JP.eucJP/man/man9/physio.9 +++ b/ja_JP.eucJP/man/man9/physio.9 @@ -34,10 +34,10 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/physio.9,v 1.14 2003/09/12 19:20:05 hmp Exp % +.\" %FreeBSD: src/share/man/man9/physio.9,v 1.15 2004/07/10 01:10:17 imp Exp % .\" $FreeBSD$ .\" -.Dd June 15, 1996 +.Dd July 8, 2004 .Dt PHYSIO 9 .Os .Sh 名称 @@ -62,14 +62,20 @@ 呼び出しごとの最大のデータ転送量は .Fa dev->si_iosize_max によって決定されます。 +.Fn physio +の呼び出しは入出力要求を +.Fn strategy +要求に変換し、その処理のため新しい要求をドライバの +.Fn strategy +ルーチンに渡します。 .Pp .Fa uio 構造体は通常ユーザ空間のアドレスを示すので、 .Fn physio -はプロセスをメモリ中にロックする必要があります。 -これは、プロセスに -.Dv P_PHYSIO -フラグをセットすることで行ないます。 +はこれらのページをメモリ中にロックする必要があります。 +これは適切なページに対する +.Fn vmapbuf +を呼び出すことで行われます。 以前にエラー状態が検出された時を除いて、 .Fn physio は常にリターンする前に全ての要求された転送が完了するまで待ちます。 @@ -87,6 +93,13 @@ フラグに .Dv UIO_USERSPACE 以外の値をセットして渡した場合の結果は未定義です。 +.It Fa ioflag +.Fn physio +を呼び出している +.Fn read +または +.Fn write +関数からの ioflag 引数。 .El .Sh 戻り値 成功すれば diff --git a/ja_JP.eucJP/man/man9/printf.9 b/ja_JP.eucJP/man/man9/printf.9 index b8308ab240..bf64bf5513 100644 --- a/ja_JP.eucJP/man/man9/printf.9 +++ b/ja_JP.eucJP/man/man9/printf.9 @@ -1,5 +1,6 @@ .\" .\" Copyright (c) 2001 Andrew R. Reiter +.\" Copyritht (c) 2004 Joerg Wunsch .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -23,14 +24,14 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/printf.9,v 1.3 2001/10/01 16:09:25 ru Exp % +.\" %FreeBSD: src/share/man/man9/printf.9,v 1.4 2004/08/10 09:19:08 joerg Exp % .\" .\" $FreeBSD$ -.Dd April 25, 2001 +.Dd August 10, 2004 .Dt PRINTF 9 .Os .Sh 名称 -.Nm printf , uprintf , tprintf +.Nm printf , uprintf , tprintf , log .Nd フォーマットされた出力の変換 .Sh 書式 .In sys/types.h @@ -41,12 +42,14 @@ .Fn tprintf "struct proc *p" "int pri" "const char *fmt" "..." .Ft int .Fn uprintf "const char *fmt" "..." +.Ft void +.Fn log "int pri" "const char *fmt" "..." .Sh 解説 .Xr printf 9 ファミリの関数は .Xr printf 3 ファミリの関数と類似しています。 -この 3 つの関数はそれぞれ異なった出力ストリームを使用します。 +この異なった関数はそれぞれ異なった出力ストリームを使用します。 .Fn uprintf 関数は現在のプロセスが制御している tty に出力しますが、 .Fn printf @@ -57,6 +60,11 @@ が \&-1 でない場合には、プロセス .Fa p に関連づけられた tty およびロギングファシリティに出力します。 +.Fn log +関数は +.Fa pri +によって示されたログレベルを使用して、 +カーネルのロギングファシリティにメッセージを送ります。 .Pp これらそれぞれの関連した関数は、 .Xr printf 3 @@ -75,7 +83,8 @@ です。 これらはビットマスクのデコードのため、 レジスタ値と印字マスクとして使用されます。 -この印字マスクは 2 つの部分で構成されます。基数と引数です。 +この印字マスクは 2 つの部分で構成されます。 +基数と引数です。 基数値は整数値として表現される出力の基数です。 例えば、\\10 は 8 進数を \\20 は 16 進数を与えます。 引数はビット識別子の並びとして構成されます。 @@ -98,6 +107,28 @@ 文字列は個々のバイトの間のデリミタとして使用されます。 もし存在すれば、幅ディレクティブが表示するバイト数を指定します。 デフォルトでは、16 バイトのデータが出力されます。 +.Pp +.Fn log +関数はその +.Fa pri +引数 (ここは誤解されて +.Sq priority (優先度) +と呼ばれていた) に +.Xr syslog 3 +のレベル値の +.Dv LOG_DEBUG +から +.Dv LOG_EMERG +までを使用します。 +代わりに、 +.Fa pri +に \&-1 が与えられた場合には、そのメッセージはその前の +.Fn log +の呼び出しによって開始された、最近のログメッセージに追加されます。 +これらのメッセージはカーネル自身によって生成されるため、 +このファシリティは常に +.Dv LOG_KERN +となります。 .Sh 戻り値 .Fn printf および @@ -121,5 +152,15 @@ printf_test(void) reg=3<BITTWO,BITONE> out: 41:41:41:41 .Ed +.Pp +この呼び出し +.Bd -literal -offset indent +log(LOG_DEBUG, "%s%d: been there.\\n", sc->sc_name, sc->sc_unit); +.Ed +.Pp +は適切なデバッグメッセージを優先度 +.Em kern.debug +でシステムログに追加します。 .Sh 関連項目 -.Xr printf 3 +.Xr printf 3 , +.Xr syslog 3 diff --git a/ja_JP.eucJP/man/man9/pseudofs.9 b/ja_JP.eucJP/man/man9/pseudofs.9 index 0854949519..1babfce378 100644 --- a/ja_JP.eucJP/man/man9/pseudofs.9 +++ b/ja_JP.eucJP/man/man9/pseudofs.9 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/pseudofs.9,v 1.4 2002/12/12 17:25:58 ru Exp % +.\" %FreeBSD: src/share/man/man9/pseudofs.9,v 1.5 2004/07/03 18:29:24 ru Exp % .\" .\" $FreeBSD$ .Dd September 30, 2001 diff --git a/ja_JP.eucJP/man/man9/sbuf.9 b/ja_JP.eucJP/man/man9/sbuf.9 index ecfb8fb0e1..57cbc466bb 100644 --- a/ja_JP.eucJP/man/man9/sbuf.9 +++ b/ja_JP.eucJP/man/man9/sbuf.9 @@ -23,10 +23,10 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/sbuf.9,v 1.22 2004/01/25 11:39:41 des Exp % +.\" %FreeBSD: src/share/man/man9/sbuf.9,v 1.24 2004/07/09 11:44:49 des Exp % .\" $FreeBSD$ .\" -.Dd January 3, 2002 +.Dd July 9, 2004 .Dt SBUF 9 .Os .Sh 名称 @@ -60,11 +60,11 @@ .Ft int .Fn sbuf_setpos "struct sbuf *s" "int pos" .Ft int -.Fn sbuf_bcat "struct sbuf *s" "const char *str" "size_t len" +.Fn sbuf_bcat "struct sbuf *s" "const void *buf" "size_t len" .Ft int .Fn sbuf_bcopyin "struct sbuf *s" "const void *uaddr" "size_t len" .Ft int -.Fn sbuf_bcpy "struct sbuf *s" "const char *str" "size_t len" +.Fn sbuf_bcpy "struct sbuf *s" "const void *buf" "size_t len" .Ft int .Fn sbuf_cat "struct sbuf *s" "const char *str" .Ft int @@ -170,8 +170,8 @@ sbuf によって使用されている間に直接その配列にアクセスすることの結果は 結果として、新しい位置において sbuf の先端を切り捨てることになります。 .Pp .Fn sbuf_bcat -関数はバイト列 -.Fa str +関数はバッファ +.Fa buf の最初の .Fa len バイトを @@ -188,8 +188,8 @@ sbuf によって使用されている間に直接その配列にアクセスすることの結果は .Fn sbuf_bcpy 関数は .Fa sbuf -の内容をバイト列 -.Fa str +の内容をバッファ +.Fa buf の最初の .Fa len バイトで置き換えます。 diff --git a/ja_JP.eucJP/man/man9/sema.9 b/ja_JP.eucJP/man/man9/sema.9 index e103f85a93..9fec971d2a 100644 --- a/ja_JP.eucJP/man/man9/sema.9 +++ b/ja_JP.eucJP/man/man9/sema.9 @@ -24,10 +24,10 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH .\" DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/sema.9,v 1.6 2002/03/28 12:51:06 dd Exp % -.\" +.\" %FreeBSD: src/share/man/man9/sema.9,v 1.9 2004/07/07 19:57:15 ru Exp % .\" $FreeBSD$ -.Dd August 13, 2001 +.\" +.Dd June 14, 2004 .Dt SEMA 9 .Os .Sh 名称 @@ -102,13 +102,26 @@ mutex とは違い、セマフォは所有者の概念は持っていないため、 .Fa timo 引数は失敗して戻る前にウェイトするための tick 単位での最小時間を指定します。 .Fn sema_value -は現在のセマフォの値を返します。 +はセマフォの現在の値を読み出すために使用されます。 +.Sh 戻り値 +.Fn sema_value +関数は現在のセマフォの値を返します。 .Pp -.Fn sema_timedwait -および +セマフォのデクリメントによりその値が負になった場合には、 .Fn sema_trywait -は、そのセマフォ上でのウェイトに失敗した場合には 0 を返します。 +は失敗を示すために 0 を返します。 そうでない場合には、成功を示すために 0 ではない値が返されます。 +.Pp +.Fn sema_timedwait +関数はそのセマフォ上でのウェイトが成功した場合には 0 を返し、 +そうでない場合には 0 ではないエラーコードが返されます。 +.Sh エラー +.Fn sema_timedwait +関数は以下の場合に失敗します。 +.Bl -tag -width Er +.It Bq Er EWOULDBLOCK +タイムアウトしました。 +.El .Sh 関連項目 .Xr condvar 9 , .Xr mtx_pool 9 , diff --git a/ja_JP.eucJP/man/man9/spl.9 b/ja_JP.eucJP/man/man9/spl.9 index f391dba001..e645e0eea3 100644 --- a/ja_JP.eucJP/man/man9/spl.9 +++ b/ja_JP.eucJP/man/man9/spl.9 @@ -23,7 +23,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/spl.9,v 1.18 2003/10/23 02:33:03 hmp Exp % +.\" %FreeBSD: src/share/man/man9/spl.9,v 1.19 2004/07/03 18:29:24 ru Exp % .\" $FreeBSD$ .\" .Dd July 21, 1996 diff --git a/ja_JP.eucJP/man/man9/style.9 b/ja_JP.eucJP/man/man9/style.9 index e9b571888d..f5cbccd5a3 100644 --- a/ja_JP.eucJP/man/man9/style.9 +++ b/ja_JP.eucJP/man/man9/style.9 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/style.9,v 1.105 2003/11/12 10:53:52 fanf Exp % +.\" %FreeBSD: src/share/man/man9/style.9,v 1.110 2004/07/03 18:29:24 ru Exp % .\" $FreeBSD$ .\" .Dd December 7, 2001 @@ -50,7 +50,7 @@ * CSRG の KNF (Kernel Normal Form, カーネル標準書式) に基づいています。 * * @(#)style 1.14 (Berkeley) 4/28/95 - * $\&FreeBSD: src/share/man/man9/style.9,v 1.105 2003/11/12 10:53:52 fanf Exp $ + * $\&FreeBSD: src/share/man/man9/style.9,v 1.110 2004/07/03 18:29:24 ru Exp $ */ /* @@ -94,7 +94,7 @@ static char sccsid[] = "@(#)style 1.14 (Berkeley) 4/28/95"; #endif #include <sys/cdefs.h> -__FBSDID("$\&FreeBSD: src/share/man/man9/style.9,v 1.105 2003/11/12 10:53:52 fanf Exp $"); +__FBSDID("$\&FreeBSD: src/share/man/man9/style.9,v 1.110 2004/07/03 18:29:24 ru Exp $"); .Ed .Pp ヘッダファイルの前に、空行を 1 行付けます。 @@ -172,7 +172,8 @@ __FBSDID("$\&FreeBSD: src/share/man/man9/style.9,v 1.105 2003/11/12 10:53:52 fan .\" という ANSI のスタイルと衝突します。 .\" これは MALLOC() については言えないし、インライン関数を使う時の .\" 一般的なやりかたではありません。 -バックスラッシュは右揃えします。こうすると読みやすくなります。 +バックスラッシュは右揃えします。 +こうすると読みやすくなります。 マクロが複合文をカプセル化する場合には、それを .Ic do ループで囲みます。 @@ -254,21 +255,25 @@ __FBSDID("$\&FreeBSD: src/share/man/man9/style.9,v 1.105 2003/11/12 10:53:52 fan /* 更に別の大きな部分が、または他の条件付きのコードがここに */ #else /* COMPAT_43 */ /* またはここに */ -#endif /* !COMPAT_43*/ +#endif /* !COMPAT_43 */ .Ed .Pp このプロジェクトは、 -.Ic u_intXX_t -形式の古い BSD スタイルの整数識別子よりもむしろ、 -.Ic uintXX_t +.Vt u_intXX_t +形式の古い +.Bx +スタイルの整数識別子よりもむしろ、 +.Vt uintXX_t 形式の .St -isoC-99 の符号なし整数識別子を使用するように、徐々に移行しています。 新しいコードは後者を使用するべきで、さらにその領域の他の主要な作業が完了し、 -古い BSD スタイルを好むための優先する理由がない場合には、古いコードは +古い +.Bx +スタイルを好むための優先する理由がない場合には、古いコードは 新しい形式に変換されるべきです。 空白文字のコミットと同様に、 -.Ic uintXX_t +.Vt uintXX_t のみのコミットをするよう、考慮すべきです。 .Pp 列挙値は全て大文字を使用します。 @@ -415,7 +420,7 @@ static void usage(void); /* * 全ての主要なルーチンはそれが何をするのかを簡潔に記述した - * コメントを持つべきです。"main" ルーチンの前のコメントは + * コメントを持つべきです。 "main" ルーチンの前のコメントは * そのプログラムが何をするのかを記述するべきです。 */ int @@ -444,7 +449,7 @@ main(int argc, char *argv[]) .Li NOTREACHED コメントを持つべきです。 .Bd -literal - while ((ch = getopt(argc, argv, "abn:")) != -1) + while ((ch = getopt(argc, argv, "abNn:")) != -1) switch (ch) { /* switch をインデント */ case 'a': /* case はインデントしない */ aflag = 1; @@ -452,6 +457,9 @@ main(int argc, char *argv[]) case 'b': bflag = 1; break; + case 'N': + Nflag = 1; + break; case 'n': num = strtol(optarg, &ep, 10); if (num <= 0 || *ep != '\e0') { @@ -637,7 +645,8 @@ ANSI C によると、このような宣言は、宣言のネスティングによらず、 キャストはいろいろな引数にとって必須で、その他の引数にとっても必要です。) ポインタは .Dv NULL -と比較します。例えば、 +と比較します。 +例えば、 .Bd -literal !(p = f()) .Ed diff --git a/ja_JP.eucJP/man/man9/suser.9 b/ja_JP.eucJP/man/man9/suser.9 index 2bb843420d..8b1d668020 100644 --- a/ja_JP.eucJP/man/man9/suser.9 +++ b/ja_JP.eucJP/man/man9/suser.9 @@ -31,7 +31,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/suser.9,v 1.22 2004/04/06 19:49:21 ru Exp % +.\" %FreeBSD: src/share/man/man9/suser.9,v 1.25 2004/07/26 07:24:01 cperciva Exp % .\" $FreeBSD$ .\" .Dd April 2, 2002 @@ -60,8 +60,9 @@ .Pp .Fn suser_cred 関数は、チェックされるべき証明がそのスレッド自身のものでない時、 -スレッドが存在しない時、またはスーパユーザの権限が -閉じ込められた root に拡大されるべき時に、使用されるべきです。 +スレッドが存在しない時、スーパユーザの権限が +閉じ込められた root に拡大されるべき時、またはチェックされるべき証明が +実効ユーザというよりは実際のユーザである時に、使用されるべきです。 .Pp デフォルトでは、 .Xr jail 2 @@ -72,7 +73,7 @@ 関数へ渡す .Fa flags 引数に -.Dv PRISON_ROOT +.Dv SUSER_ALLOWJAIL ビットを設定することによって実現されます。 これが牢屋を弱くしないことを、注意深く再調査することが重要です。 一般的には @@ -82,6 +83,17 @@ によって行動が保護されている場所のみにおいて、 このような権限を承諾されるべきです。 .Pp +デフォルトでは、チェックされる証明は実効ユーザです。 +代わりに実際のユーザをチェックする必要がある場合 (例えば、 +リソースリミットが適用された場合の決定のとき) があります。 +そして、これは +.Fn suser_cred +関数への +.Fa flag +引数に +.Dv SUSER_RUID +を渡すことによって行うことが可能です。 +.Pp .Fn suser および .Fn suser_cred @@ -108,3 +120,9 @@ TRUE の応答の .Sh 関連項目 .Xr chroot 2 , .Xr jail 2 +.Sh バグ +.Fn suser +および +.Fn suser_cred +関数は事実上は 2000 年の 8 月から、 +スーパユーザの特権が使用されたことおよびされなかったことを記録しません。 diff --git a/ja_JP.eucJP/man/man9/sx.9 b/ja_JP.eucJP/man/man9/sx.9 index 0e6fffe8b5..ce9e5d1bfc 100644 --- a/ja_JP.eucJP/man/man9/sx.9 +++ b/ja_JP.eucJP/man/man9/sx.9 @@ -24,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH .\" DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/sx.9,v 1.27 2004/02/24 21:36:39 jhb Exp % +.\" %FreeBSD: src/share/man/man9/sx.9,v 1.29 2004/07/11 16:08:25 darrenr Exp % .\" .\" $FreeBSD$ .Dd August 14, 2001 @@ -43,6 +43,7 @@ .Nm sx_try_upgrade , .Nm sx_downgrade , .Nm sx_assert , +.Nm sx_unlock , .Nm SX_SYSINIT .Nd カーネルの共有/排他ロック .Sh 書式 @@ -69,13 +70,17 @@ .Fn sx_try_upgrade "struct sx *sx" .Ft void .Fn sx_downgrade "struct sx *sx" -.Pp -.Cd "options INVARIANTS" -.Cd "options INVARIANT_SUPPORT" .Ft void .Fn sx_assert "struct sx *sx" "int what" -.In sys/kernel.h +.\" +.Ss sx ユーティリティマクロ +.Fn sx_unlock "struct sx *sx" .Fn SX_SYSINIT "name" "struct sx *sx" "const char *description" +.\" +.Ss カーネルオプション +.Cd "options INVARIANTS" +.Cd "options INVARIANT_SUPPORT" +.In sys/kernel.h .Sh 解説 共有/排他ロックは書き込まれるよりも、読み込まれる方が非常に多いデータを 保護するために使用されます。 @@ -84,7 +89,8 @@ mutex は本質的に共有/排他ロックよりも能率的なので、共有/排他ロックは .Pp 共有/排他ロックは .Fn sx_init -を使用して作成されます。ここで +を使用して作成されます。 +ここで .Fa sx は .Vt struct sx @@ -100,6 +106,8 @@ mutex は本質的に共有/排他ロックよりも能率的なので、共有/排他ロックは .Fn sx_try_slock および .Fn sx_sunlock +または +.Fn sx_unlock の呼び出しによって共有ロックを獲得および解放します。 スレッドは .Fn sx_xlock @@ -107,6 +115,8 @@ mutex は本質的に共有/排他ロックよりも能率的なので、共有/排他ロックは .Fn sx_try_xlock および .Fn sx_xunlock +または +.Fn sx_unlock の呼び出しによって排他ロックを獲得および解放します。 スレッドは .Fn sx_try_upgrade @@ -132,9 +142,9 @@ mutex は本質的に共有/排他ロックよりも能率的なので、共有/排他ロックは 付きでコンパイルされたときには、 .Fn sx_assert 関数は -.Ar what +.Fa what に指定されたアサートのために -.Ar sx +.Fa sx をテストし、それらが合わなかった場合には panic します。 以下のアサートがサポートされています。 .Bl -tag -width ".Dv SX_UNLOCKED" @@ -156,6 +166,16 @@ mutex は本質的に共有/排他ロックよりも能率的なので、共有/排他ロックは ロック上に、ロックを持っていないことをアサートします。 .El .Pp +プログラミングを簡単にするために、 +.Fn sx_sunlock +および +.Fn sx_xunlock +各々の関数へのフロントエンドマクロとして +.Fn sx_unlock +が提供されています。 +ロックがどの状態になっているかを知っているアルゴリズムは、 +小さなパフォーマンスの利益のために各々の 2 つの特定の関数を使用すべきです。 +.Pp .Fn SX_SYSINIT マクロはシステムスタートアップ時に与えられた .Fa sx @@ -186,7 +206,7 @@ mutex は本質的に共有/排他ロックよりも能率的なので、共有/排他ロックは 現在、ロックが保持されていないことをアサートする方法がありません。 .Dv WITNESS ではない場合には、このスレッドが共有ロックを保持していないことを -アサートすることは不可能です。 +アサートすることは不可能です。 .Dv WITNESS ではない場合には、 .Dv SX_LOCKED diff --git a/ja_JP.eucJP/man/man9/sysctl_add_oid.9 b/ja_JP.eucJP/man/man9/sysctl_add_oid.9 index 15a1af14d4..252ccd543b 100644 --- a/ja_JP.eucJP/man/man9/sysctl_add_oid.9 +++ b/ja_JP.eucJP/man/man9/sysctl_add_oid.9 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/sysctl_add_oid.9,v 1.19 2004/02/27 17:13:42 des Exp % +.\" %FreeBSD: src/share/man/man9/sysctl_add_oid.9,v 1.20 2004/07/03 18:29:24 ru Exp % .\" $FreeBSD$ .\" .Dd July 15, 2000 diff --git a/ja_JP.eucJP/man/man9/sysctl_ctx_init.9 b/ja_JP.eucJP/man/man9/sysctl_ctx_init.9 index bd26925a66..c03b50a69e 100644 --- a/ja_JP.eucJP/man/man9/sysctl_ctx_init.9 +++ b/ja_JP.eucJP/man/man9/sysctl_ctx_init.9 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/sysctl_ctx_init.9,v 1.11 2004/04/06 20:16:10 markm Exp % +.\" %FreeBSD: src/share/man/man9/sysctl_ctx_init.9,v 1.12 2004/07/03 18:29:24 ru Exp % .\" $FreeBSD$ .\" .Dd July 15, 2000 diff --git a/ja_JP.eucJP/man/man9/taskqueue.9 b/ja_JP.eucJP/man/man9/taskqueue.9 index 5cb13758f3..7d16c8b036 100644 --- a/ja_JP.eucJP/man/man9/taskqueue.9 +++ b/ja_JP.eucJP/man/man9/taskqueue.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/taskqueue.9,v 1.9 2004/01/02 07:23:40 scottl Exp % +.\" %FreeBSD: src/share/man/man9/taskqueue.9,v 1.12 2004/08/08 02:37:22 jmg Exp % .\" .\" $FreeBSD$ .Dd May 12, 2000 @@ -53,7 +53,6 @@ struct task { task_fn ta_func; /* タスクハンドラ */ void *ta_context; /* ハンドラの引数 */ }; - .Ed .Ft struct taskqueue * .Fn taskqueue_create "const char *name" "int mflags" "taskqueue_enqueue_fn enqueue" "void *context" @@ -70,6 +69,7 @@ struct task { .Fn TASK_INIT "struct task *task" "int priority" "task_fn_t *func" "void *context" .Fn TASKQUEUE_DECLARE "name" .Fn TASKQUEUE_DEFINE "name" "taskqueue_enqueue_fn enqueue" "void *context" "init" +.Fn TASKQUEUE_DEFINE_THREAD "name" .Sh 解説 これらの関数はコードの非同期の実行のための単純なインタフェースを提供します。 .Pp @@ -155,12 +155,13 @@ task 構造体の .Va ta_pending フィールドはクリアされます。 .Pp -2 つのマクロ -.Fn TASKQUEUE_DECLARE "name" -および +3 つのマクロ +.Fn TASKQUEUE_DECLARE "name" , .Fn TASKQUEUE_DEFINE "name" "enqueue" "context" "init" -は、グローバルなキューへの参照の宣言およびそのキューの実装の定義の -ために使用されます。 +および ++.Fn TASKQUEUE_DEFINE_THREAD "name" +は、グローバルなキューへの参照の宣言、そのキューの実装の定義、 +および所有するスレッドを使用するキューを宣言するために使用されます。 .Fn TASKQUEUE_DEFINE マクロは .Va name , @@ -176,6 +177,16 @@ task 構造体の .Va init 引数が C のステートメントとして実行されます。 .Pp +.Fn TASKQUEUE_DEFINE_THREAD +マクロはタスクを取り扱う自身が所有するカーネルスレッドで +新しいタスクキューを定義します。 +変数 +.Vt struct proc *taskqueue_name_proc +はタスクを取り扱うカーネルスレッドを含んで定義されます。 +変数 +.Vt struct taskqueue *taskqueue_name +はそのキューにタスクを追加するために使用されます。 +.Pp システムは 3 つのグローバルなタスクキュー .Va taskqueue_swi , .Va taskqueue_swi_giant , diff --git a/ja_JP.eucJP/man/man9/time.9 b/ja_JP.eucJP/man/man9/time.9 index d690c5e0f4..84db846126 100644 --- a/ja_JP.eucJP/man/man9/time.9 +++ b/ja_JP.eucJP/man/man9/time.9 @@ -29,7 +29,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/time.9,v 1.10 2003/10/23 02:33:03 hmp Exp % +.\" %FreeBSD: src/share/man/man9/time.9,v 1.12 2004/06/16 08:33:57 ru Exp % .\" .\" $FreeBSD$ .Dd March 22, 1997 diff --git a/ja_JP.eucJP/man/man9/timeout.9 b/ja_JP.eucJP/man/man9/timeout.9 index 3e318dcf5c..aff90d0f40 100644 --- a/ja_JP.eucJP/man/man9/timeout.9 +++ b/ja_JP.eucJP/man/man9/timeout.9 @@ -34,7 +34,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/timeout.9,v 1.21 2004/04/06 23:08:49 cperciva Exp % +.\" %FreeBSD: src/share/man/man9/timeout.9,v 1.23 2004/06/16 08:33:57 ru Exp % .\" $FreeBSD$ .\" .Dd September 10, 1996 @@ -103,7 +103,9 @@ struct callout_handle handle = CALLOUT_HANDLE_INITIALIZER(&handle) .Ft struct callout_handle です。 .Fn timeout -の呼び出しは古いスタイルで、新しいコードは callout_* 関数を使用するべきです。 +の呼び出しは古いスタイルで、新しいコードは +.Fn callout_* +関数を使用するべきです。 .Pp 関数 .Fn callout_handle_init @@ -143,7 +145,9 @@ struct callout_handle handle = CALLOUT_HANDLE_INITIALIZER(&handle) 以前に初期化されたハンドルを伴なわない untimeout の呼び出しの振る舞いは 未定義です。 .Fn untimeout -の呼び出しは古いスタイルで、新しいコードは callout_* 関数を使用するべきです。 +の呼び出しは古いスタイルで、新しいコードは +.Fn callout_* +関数を使用するべきです。 .Pp ハンドルがシステムによって再利用されるので、 両方の呼び出しが同じ関数のポインタおよび引数を使用し、2 番目の呼び出しの前に @@ -201,7 +205,7 @@ timeout (訳注: および untimeout) は は、コールアウトが既に進行中の場合にはその完了をウェイトすることを除いて、 .Fn callout_stop と同一です。 -これは、そのコールアウトがブロックするかもしれないあらゆるロックを +この関数は、そのコールアウトがブロックするかもしれないあらゆるロックを 保持している間は、決して呼び出されてはなりません。 さもないと結果としてデッドロックします。 .Pp @@ -231,7 +235,8 @@ timeout (訳注: および untimeout) は .An George Varghese の .%T "Redesigning the BSD Callout and Timer Facilities" -と名付けられた技術レポートで発表された作業に基づいています。また、 +と名付けられた技術レポートで発表された作業に基づいています。 +また、 .Fx への導入のために .An Justin T. Gibbs diff --git a/ja_JP.eucJP/man/man9/vref.9 b/ja_JP.eucJP/man/man9/vref.9 index 6c5dbe4d30..25998e4b1f 100644 --- a/ja_JP.eucJP/man/man9/vref.9 +++ b/ja_JP.eucJP/man/man9/vref.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/vref.9,v 1.11 2003/10/23 02:22:07 hmp Exp % +.\" %FreeBSD: src/share/man/man9/vref.9,v 1.12 2004/07/03 18:29:24 ru Exp % .\" .\" $FreeBSD$ .Dd July 24, 1996 diff --git a/ja_JP.eucJP/man/man9/vslock.9 b/ja_JP.eucJP/man/man9/vslock.9 index 62c016268d..2ec5467197 100644 --- a/ja_JP.eucJP/man/man9/vslock.9 +++ b/ja_JP.eucJP/man/man9/vslock.9 @@ -34,10 +34,10 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/vslock.9,v 1.11 2004/03/15 10:05:27 truckman Exp % +.\" %FreeBSD: src/share/man/man9/vslock.9,v 1.15 2004/08/16 03:12:10 green Exp % .\" .\" $FreeBSD$ -.Dd June 15, 1996 +.Dd August 10, 2004 .Dt VSLOCK 9 .Os .Sh 名称 |
