From 870a91d4831336db4e8f84418504e36d45907a7e Mon Sep 17 00:00:00 2001 From: Jun Kuriyama Date: Sat, 24 Apr 2004 16:05:43 +0000 Subject: [PATCH] Catch up with 5.2-CURRENT-20040308-JPSNAP Submitted by: Akira Ikeuchi Reviewed by: Koichi Suzuki --- ja_JP.eucJP/man/man9/BUS_SETUP_INTR.9 | 10 +++- ja_JP.eucJP/man/man9/DEVICE_IDENTIFY.9 | 12 +++-- ja_JP.eucJP/man/man9/bus_alloc_resource.9 | 25 +++++---- ja_JP.eucJP/man/man9/bus_set_resource.9 | 5 +- ja_JP.eucJP/man/man9/malloc.9 | 3 +- ja_JP.eucJP/man/man9/sbuf.9 | 31 ++++++----- ja_JP.eucJP/man/man9/sleep.9 | 6 +-- ja_JP.eucJP/man/man9/sx.9 | 65 ++++++++++++++--------- ja_JP.eucJP/man/man9/sysctl_add_oid.9 | 16 +++++- ja_JP.eucJP/man/man9/taskqueue.9 | 12 ++++- ja_JP.eucJP/man/man9/zone.9 | 4 +- 11 files changed, 121 insertions(+), 68 deletions(-) diff --git a/ja_JP.eucJP/man/man9/BUS_SETUP_INTR.9 b/ja_JP.eucJP/man/man9/BUS_SETUP_INTR.9 index 121fd6a8f5..89462775d9 100644 --- a/ja_JP.eucJP/man/man9/BUS_SETUP_INTR.9 +++ b/ja_JP.eucJP/man/man9/BUS_SETUP_INTR.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/BUS_SETUP_INTR.9,v 1.15 2003/10/23 06:22:40 hmp Exp % +.\" %FreeBSD: src/share/man/man9/BUS_SETUP_INTR.9,v 1.17 2004/02/10 20:34:44 jmg Exp % .\" .\" $FreeBSD$ .Dd March 28, 2003 @@ -75,7 +75,7 @@ .Dv INTR_ENTROPY はその割り込みがエントロピの良い供給源であるとして記録します。 これは、エントロピデバイス -.Pa /dev/tandom +.Pa /dev/random によって使用されることができます。 ハンドラ .Fa intr @@ -101,6 +101,12 @@ nexus 正しい割り込みハンドラを破棄するために、クッキーが .Fn BUS_TEARDOWN_INTR に渡される必要があります。 +一度 +.Fn BUS_TEARDOWN_INTR +が戻ると、その割り込み関数は有効ではなくなり二度と呼び出されないことが +保証されます。 +.Pp +これらの関数への呼び出しに交差して mutex が保持されていることは認められません。 .Sh 戻り値 成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。 .Sh 関連項目 diff --git a/ja_JP.eucJP/man/man9/DEVICE_IDENTIFY.9 b/ja_JP.eucJP/man/man9/DEVICE_IDENTIFY.9 index d6e4074f24..b7b9820850 100644 --- a/ja_JP.eucJP/man/man9/DEVICE_IDENTIFY.9 +++ b/ja_JP.eucJP/man/man9/DEVICE_IDENTIFY.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_IDENTIFY.9,v 1.7 2002/03/16 18:07:07 schweikh Exp % +.\" $FreeBSD$ .\" $FreeBSD$ .Dd March 10, 2001 .Dt DEVICE_IDENTIFY 9 @@ -55,6 +55,12 @@ .Xr bus_set_resource 9 を参照) を呼び出すことによってカーネルに登録されます。 +.Pp +デバイスツリーおよびデバイスドライバツリーが解体されるため、 +.Nm +ルーチンはこれを考慮に入れる必要があります。 +識別ルーチンを持っているデバイスドライバをロードおよびアンロードする場合には、 +その子ノードは同じノードを何度も追加する能力を持っています。 .Sh 使用例 以下の疑似コードは、ハードウェアの一部をプローブし、デバイスと そのリソース (I/O ポート) をカーネルに登録する関数の例を示しています。 @@ -74,10 +80,6 @@ foo_identify(driver_t *driver, device_t parent) } } .Ed -.Sh 戻り値 -成功時には 0 が返され、それ以外の場合は適切なエラー -.Xr ( errno 2 -参照) が返されます。 .Sh 関連項目 .Xr BUS_ADD_CHILD 9 , .Xr bus_set_resource 9 , diff --git a/ja_JP.eucJP/man/man9/bus_alloc_resource.9 b/ja_JP.eucJP/man/man9/bus_alloc_resource.9 index 2ccf9cde2e..d2522f5dda 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.14 2003/05/21 15:49:01 ru Exp % +.\" %FreeBSD: src/share/man/man9/bus_alloc_resource.9,v 1.17 2004/01/27 16:16:31 imp Exp % .\" .\" $FreeBSD$ .Dd May 18, 2000 @@ -34,7 +34,7 @@ .Os .Sh 名称 .Nm bus_alloc_resource -.Nd バス上の資源の割り当て +.Nd 親のバスからの資源の割り当て .Sh 書式 .In sys/param.h .In sys/bus.h @@ -87,15 +87,16 @@ PCI .Fa end は資源の開始/終了アドレスです。 .Fa start -に 0 を、 +に 0ul を、 .Fa end -に ~0 を、 +に ~0ul を、 .Fa count に 1 を指定した場合には、バスのためのデフォルト値が計算されます。 .It .Fa count -は資源の大きさで、例えば、入出力ポートの大きさです -(これは大抵 1 ですが、幾つかのデバイスはこれを上書きします)。 +は資源の大きさです。 +例えば、入出力ポートの大きさは通常 1 バイトです (しかし、 +幾つかのデバイスはこれを上書きします)。 .Fa start および .Fa end @@ -119,9 +120,13 @@ PCI .It Dv RF_SHAREABLE 資源は同時共有を許可します。 その資源が共有不可であることを知らない場合、常に設定されるべきです。 -バスが共有をサポートしていない場合、 -このフラグを取り除くのはバスのコードの仕事です。この例として、 -pccard/cardbus ではデバイスを共有できるかできないかは、バスに依存します。 +そのバスが共有をサポートしていない場合、 +このフラグを取り除くのはバスドライバの仕事です。 +例えば、 +.Xr pccard 4 +は IRQ を共有できませんが、一方 +.Xr cardbus 4 +は共有できます。 .It Dv RF_TIMESHARE 資源は時分割共有を許可します。 .El @@ -131,7 +136,7 @@ pccard/cardbus .Va struct resource 構造体へのポインタが返され、そうでない場合にはヌルポインタが返されます。 .Sh 使用例 -これはあるサンプルのコードです。 +これは 32 バイトの I/O ポート範囲と IRQ を割り当てるサンプルのコードです。 .Va portid および .Va irqid diff --git a/ja_JP.eucJP/man/man9/bus_set_resource.9 b/ja_JP.eucJP/man/man9/bus_set_resource.9 index 70e19c2fb5..1d6bc1c87c 100644 --- a/ja_JP.eucJP/man/man9/bus_set_resource.9 +++ b/ja_JP.eucJP/man/man9/bus_set_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_set_resource.9,v 1.2 2003/05/30 21:13:32 ru Exp % +.\" %FreeBSD: src/share/man/man9/bus_set_resource.9,v 1.4 2004/02/22 00:29:04 njl Exp % .\" .\" $FreeBSD$ .Dd March 29, 2003 @@ -76,11 +76,12 @@ I/O I/O メモリのリソースです。 .El .It Fa rid -割り当てられているリソースを識別するバス特有のハンドルへのポインタです。 +割り当てられているリソースを識別するバス特有のハンドルです。 .It Fa start このリソースの開始アドレスです。 .It Fa count このリソースの長さです。 +例えば、バイト単位でのメモリの大きさです。 .El .Sh 戻り値 成功時には 0 が返され、そうでなければエラーが返されます。 diff --git a/ja_JP.eucJP/man/man9/malloc.9 b/ja_JP.eucJP/man/man9/malloc.9 index c6846c9d96..cfec231c39 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.36 2003/09/08 19:57:21 ru Exp % +.\" %FreeBSD: src/share/man/man9/malloc.9,v 1.39 2004/03/06 02:13:03 jkoshy Exp % .\" $FreeBSD$ .\" .Dd June 12, 2003 @@ -291,6 +291,7 @@ MALLOC(buf, struct foo_buf *, sizeof *buf, M_FOOBUF, M_NOWAIT); LOR (ロック順序の逆転) を引き起こします。 .Sh 関連項目 .Xr vmstat 8 , +.Xr contigmalloc 9 , .Xr vnode 9 .Sh 診断 .Dv INVARIANTS diff --git a/ja_JP.eucJP/man/man9/sbuf.9 b/ja_JP.eucJP/man/man9/sbuf.9 index f5701171b5..ecfb8fb0e1 100644 --- a/ja_JP.eucJP/man/man9/sbuf.9 +++ b/ja_JP.eucJP/man/man9/sbuf.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/sbuf.9,v 1.20 2003/09/08 19:57:21 ru Exp % +.\" %FreeBSD: src/share/man/man9/sbuf.9,v 1.22 2004/01/25 11:39:41 des Exp % .\" $FreeBSD$ .\" .Dd January 3, 2002 @@ -142,12 +142,19 @@ でない場合には、少なくとも .Fa length 文字以上の配列を指さなければならないことに注意してください。 -提供されるバッファの内容は未定義です。 -sbuf データを取り出すためには、完了した +sbuf によって使用されている間に直接その配列にアクセスすることの結果は +未定義です。 +.Pp +.Fn sbuf_delete +関数は .Fa sbuf -に対して -.Fn sbuf_data -を呼び出す必要があります。 +をクリアして、そのために割り当てられた全てのメモリを開放します。 +全ての +.Fn sbuf_new +への呼び出しのための +.Fn sbuf_delete +の呼び出しがなければなりません。 +削除された後の sbuf への全てのアクセスの試みは失敗します。 .Pp .Fn sbuf_clear 関数は @@ -278,14 +285,6 @@ sbuf に対してのみ機能します。 .Fn sbuf_done はその sbuf が終了した場合には、0 でない値を返します。 -.Pp -最後に、 -.Fn sbuf_delete -関数は -.Fa sbuf -をクリアし、 -.Fn sbuf_new -によって格納バッファを割り当てられていれば、それを解放します。 .Sh 注 ある操作が .Fa sbuf @@ -352,7 +351,7 @@ sbuf ファミリの関数は .An Poul-Henning Kamp Aq phk@FreeBSD.org が設計し、 -.An Dag-Erling Co\(:idan Sm\(/orgrav Aq des@FreeBSD.org +.An Dag-Erling Sm\(/orgrav Aq des@FreeBSD.org が実装しました。 追加の改良は .An Justin T. Gibbs Aq gibbs@FreeBSD.org @@ -362,5 +361,5 @@ sbuf が追加しました。 .Pp このマニュアルページは -.An Dag-Erling Co\(:idan Sm\(/orgrav +.An Dag-Erling Sm\(/orgrav Aq des@FreeBSD.org が書きました。 diff --git a/ja_JP.eucJP/man/man9/sleep.9 b/ja_JP.eucJP/man/man9/sleep.9 index 519208b4af..f2b748f7ff 100644 --- a/ja_JP.eucJP/man/man9/sleep.9 +++ b/ja_JP.eucJP/man/man9/sleep.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/sleep.9,v 1.42 2003/10/23 02:33:03 hmp Exp % +.\" %FreeBSD: src/share/man/man9/sleep.9,v 1.43 2004/02/17 13:31:36 maxim Exp % .\" $FreeBSD$ .\" " .Dd December 17, 1998 @@ -95,7 +95,7 @@ 長くて .Fa timo \&/ hz 秒間 (0 はタイムアウトなしを意味します) スリープします。 -.Fa pri +.Fa priority が .Dv PCATCH フラグを含む場合には、スリープの前後でシグナルがチェックされます。 @@ -120,7 +120,7 @@ は、スリープの前に抜け、 .Fn msleep が戻る前に入る mutex です。 -.Fa pri +.Fa priority が .Dv PDROP フラグを含む場合には、戻る前に diff --git a/ja_JP.eucJP/man/man9/sx.9 b/ja_JP.eucJP/man/man9/sx.9 index 5e8282dfeb..0e6fffe8b5 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.22 2003/09/14 13:41:59 ru Exp % +.\" %FreeBSD: src/share/man/man9/sx.9,v 1.27 2004/02/24 21:36:39 jhb Exp % .\" .\" $FreeBSD$ .Dd August 14, 2001 @@ -48,7 +48,6 @@ .Sh 書式 .In sys/param.h .In sys/lock.h -.In sys/mutex.h .In sys/sx.h .Ft void .Fn sx_init "struct sx *sx" "const char *description" @@ -70,8 +69,12 @@ .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 .Fn SX_SYSINIT "name" "struct sx *sx" "const char *description" .Sh 解説 共有/排他ロックは書き込まれるよりも、読み込まれる方が非常に多いデータを @@ -107,9 +110,9 @@ mutex の呼び出しによって排他ロックを獲得および解放します。 スレッドは .Fn sx_try_upgrade -の呼び出しによって、現在所有している共有ロックから排他ロックへの +の呼び出しによって、現在保有している共有ロックから排他ロックへの アップグレードを試みることが可能です。 -排他ロックを所有しているスレッドは、 +排他ロックを持っているスレッドは、 .Fn sx_downgrade の呼び出しによってその排他ロックから共有ロックへのダウングレードが可能です。 .Pp @@ -123,10 +126,35 @@ mutex は共有ロックをすぐに排他ロックにアップグレードできない場合には 0 を返し、 そうでない場合には排他ロックが獲得され 0 ではない値が返されます。 .Pp +.Cd "options INVARIANTS" +および +.Cd "options INVARIANT_SUPPORT" +付きでコンパイルされたときには、 .Fn sx_assert -関数は指定された状態をテストして、その状態に合わずかつカーネルが -.Dv INVARIANTS -付きでコンパイルされている場合には、panic します。 +関数は +.Ar what +に指定されたアサートのために +.Ar sx +をテストし、それらが合わなかった場合には panic します。 +以下のアサートがサポートされています。 +.Bl -tag -width ".Dv SX_UNLOCKED" +.It Dv SX_LOCKED +現在のスレッドが、最初の引数によって指されている +.Vt sx +ロック上に、共有または排他ロックのいずれかを持っていることをアサートします。 +.It Dv SX_SLOCKED +現在のスレッドが、最初の引数によって指されている +.Vt sx +ロック上に、共有ロックを持っていることをアサートします。 +.It Dv SX_XLOCKED +現在のスレッドが、最初の引数によって指されている +.Vt sx +ロック上に、排他ロックを持っていることをアサートします。 +.It Dv SX_UNLOCKED +現在のスレッドが、最初の引数によって指されている +.Vt sx +ロック上に、ロックを持っていないことをアサートします。 +.El .Pp .Fn SX_SYSINIT マクロはシステムスタートアップ時に与えられた @@ -142,30 +170,17 @@ mutex .Fa name を持ちます。 .Pp -以下のアサートがサポートされています。 -.Bl -tag -width ".Dv SX_XLOCKED" -.It Dv SX_LOCKED -現在のスレッドが、最初の引数によって指されている -.Vt sx -ロック上に、共有または排他ロックのいずれかを持っていることをアサートします。 -.It Dv SX_SLOCKED -現在のスレッドが、最初の引数によって指されている -.Vt sx -ロック上に、共有ロックを持っていることをアサートします。 -.It Dv SX_XLOCKED -現在のスレッドが、最初の引数によって指されている -.Vt sx -ロック上に、排他ロックを持っていることをアサートします。 -.El -.Pp -スレッドは共有ロックと排他ロックを同時には持つことができません。 +スレッドは同じロック上に共有ロックと排他ロックを同時には持つことができません。 同時に持つことはデッドロックを引き起こすことになるためです。 .Sh コンテキスト -スリープしている間に共有ロックまたは排他ロックを所有することは許可されます。 +スリープしている間に +.Nm +ロック上に共有ロックまたは排他ロックを所有することは許可されます。 .Sh 関連項目 .Xr condvar 9 , .Xr mtx_pool 9 , .Xr mutex 9 , +.Xr panic 9 , .Xr sema 9 .Sh バグ 現在、ロックが保持されていないことをアサートする方法がありません。 diff --git a/ja_JP.eucJP/man/man9/sysctl_add_oid.9 b/ja_JP.eucJP/man/man9/sysctl_add_oid.9 index 131e7d3b74..15a1af14d4 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 W1.18 2003/09/10 19:24:35 ru Exp % +.\" %FreeBSD: src/share/man/man9/sysctl_add_oid.9,v 1.19 2004/02/27 17:13:42 des Exp % .\" $FreeBSD$ .\" .Dd July 15, 2000 @@ -33,6 +33,7 @@ .Os .Sh 名称 .Nm sysctl_add_oid , +.Nm sysctl_move_oid , .Nm sysctl_remove_oid .Nd ランタイム sysctl ツリー操作 .Sh 書式 @@ -52,6 +53,11 @@ .Fa "const char *descr" .Fc .Ft int +.Fo sysctl_move_oid +.Fa "struct sysctl_oid *oidp" +.Fa "struct sysctl_oid_list *parent" +.Fc +.Ft int .Fo sysctl_remove_oid .Fa "struct sysctl_oid *oidp" .Fa "int del" @@ -325,6 +331,14 @@ oid この oid の解説テキストへのポインタです。 .El .Pp +.Fn sysctl_move_oid +関数は存在している oid の親を付け変えます。 +その oid は、まるで +.Fa number +に +.Dv OID_AUTO +が設定されて作成されたかの様に、新しい番号を割り当てられます。 +.Pp .Fn sysctl_remove_oid 関数は動的に作成された oid をツリーから削除し、 オプションでそのリソースを解放します。 diff --git a/ja_JP.eucJP/man/man9/taskqueue.9 b/ja_JP.eucJP/man/man9/taskqueue.9 index 5ecc716f81..5cb13758f3 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.8 2003/09/03 05:35:37 ken Exp % +.\" %FreeBSD: src/share/man/man9/taskqueue.9,v 1.9 2004/01/02 07:23:40 scottl Exp % .\" .\" $FreeBSD$ .Dd May 12, 2000 @@ -63,6 +63,8 @@ struct task { .Fn taskqueue_find "const char *name" .Ft int .Fn taskqueue_enqueue "struct taskqueue *queue" "struct task *task" +.Ft int +.Fn taskqueue_enqueue_fast "struct taskqueue *queue" "struct task *task" .Ft void .Fn taskqueue_run "struct taskqueue *queue" .Fn TASK_INIT "struct task *task" "int priority" "task_fn_t *func" "void *context" @@ -118,6 +120,14 @@ struct task { .Er EPIPE を返します。 .Pp +関数 +.Fn taskqueue_enqueue_fast +は、高速割り込みハンドラからキューに入れることが発生するときには、 +.Fn taskqueue_enqueue +の代わりに使用されるべきです。 +このメソッドは高速割り込みコンテキスト内でスリープの可能性を避けるために +スピンロックを使用します。 +.Pp キュー上の全てのタスクを実行するには、 .Fn taskqueue_run を呼び出します。 diff --git a/ja_JP.eucJP/man/man9/zone.9 b/ja_JP.eucJP/man/man9/zone.9 index d5b6061d19..e04fbb7d1a 100644 --- a/ja_JP.eucJP/man/man9/zone.9 +++ b/ja_JP.eucJP/man/man9/zone.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/zone.9,v 1.24 2003/05/31 14:07:25 hmp Exp % +.\" %FreeBSD: src/share/man/man9/zone.9,v 1.26 2004/01/25 11:39:41 des Exp % .\" .\" $FreeBSD$ .Dd July 21, 2003 @@ -198,7 +198,7 @@ uma が大部分を書き直しました。 .Pp このマニュアルページは -.An Dag-Erling Co\(:idan Sm\(/orgrav Aq des@FreeBSD.org +.An Dag-Erling Sm\(/orgrav Aq des@FreeBSD.org が書きました。 UMA のために .An Jeroen Ruigrok van der Werven Aq asmodai@FreeBSD.org