Catch up with 5.2-CURRENT-20040308-JPSNAP

Submitted by:	Akira Ikeuchi <a_ikeuchi@mic.mitsumi.co.jp>
Reviewed by:	Koichi Suzuki <metal@gc5.so-net.ne.jp>
This commit is contained in:
Jun Kuriyama 2004-04-24 16:05:43 +00:00
parent b0da3a8b0b
commit 870a91d483
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=20781
11 changed files with 121 additions and 68 deletions

View file

@ -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 関連項目

View file

@ -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 ,

View file

@ -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

View file

@ -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 が返され、そうでなければエラーが返されます。

View file

@ -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

View file

@ -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
が書きました。

View file

@ -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
フラグを含む場合には、戻る前に

View file

@ -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 バグ
現在、ロックが保持されていないことをアサートする方法がありません。

View file

@ -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 をツリーから削除し、
オプションでそのリソースを解放します。

View file

@ -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
を呼び出します。

View file

@ -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