Catch up with 20031005-JPSNAP

Submitted by:	Akira Ikeuchi <a_ikeuchi@mic.mitsumi.co.jp>
This commit is contained in:
Kazuo Horikawa 2003-11-03 02:37:55 +00:00
parent 47b817aa0c
commit c4b3509f38
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=18686
16 changed files with 181 additions and 55 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.13 2003/05/21 15:49:01 ru Exp %
.\" %FreeBSD: src/share/man/man9/BUS_SETUP_INTR.9,v 1.14 2003/09/08 19:57:21 ru Exp %
.\"
.\" $FreeBSD$
.Dd March 28, 2003
@ -54,7 +54,7 @@
割り込みハンドラを生成してアタッチします。
.Fa flags
.Aq Pa sys/bus.h
.In sys/bus.h
で見つかり、割り込みの大まかな種類を与えます。また、
.Fa flags
はデバイスドライバの特性についての信頼できる情報を、割り込みハンドラに伝えます。

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/DECLARE_MODULE.9,v 1.6 2002/06/10 04:37:11 davidc Exp %
.\" %FreeBSD: src/share/man/man9/DECLARE_MODULE.9,v 1.7 2003/09/10 19:24:35 ru Exp %
.\" $FreeBSD$
.\"
.Dd March 3, 2001
@ -80,7 +80,7 @@
このための有効な値は
.Vt sysinit_sub_id
列挙に
.Pa ( kernel.h
.In ( sys/kernel.h
を参照) 含まれていて、システムスタートアップインタフェースの型を明示します。
例えば
.Xr DRIVER_MODULE 9
@ -99,8 +99,8 @@
有効な値は
.Vt sysinit_elem_order
列挙
.Pa ( kernel.h
を参照) に定義されています。
.Pq In kernel.h
に定義されています。
.Sh 関連項目
.Xr DEV_MODULE 9 ,
.Xr DRIVER_MODULE 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/SYSCALL_MODULE.9,v 1.4 2001/12/26 23:14:04 davidc Exp %
.\" %FreeBSD: src/share/man/man9/SYSCALL_MODULE.9,v 1.5 2003/09/08 19:57:21 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 27, 2001
@ -60,7 +60,7 @@
.Pp
.Fa new_sysent
は syscall を実装する関数およびこの関数が必要とする引数の個数
.Aq ( Pa sys/sysent.h
.In ( sys/sysent.h
参照) を明示します。
.Pp
.Fa evh

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/VOP_GETEXTATTR.9,v 1.19 2003/06/05 14:20:48 rwatson Exp %
.\" %FreeBSD: src/share/man/man9/VOP_GETEXTATTR.9,v 1.20 2003/09/12 21:54:11 ru Exp %
.\"
.\" $FreeBSD$
.Dd December 23, 1999

View file

@ -1,6 +1,7 @@
.\" -*- nroff -*-
.\"
.\" Copyright (c) 1996 Doug Rabson
.\" Copyright 2003, Garrett A. Wollman
.\"
.\" All rights reserved.
.\"
@ -26,10 +27,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/VOP_GETPAGES.9,v 1.7 2003/05/31 14:07:25 hmp Exp %
.\" %FreeBSD: src/share/man/man9/VOP_GETPAGES.9,v 1.8 2003/09/28 03:15:21 wollman Exp %
.\"
.\" $FreeBSD$
.Dd July 24, 1996
.Dd September 27, 2003
.Os
.Dt VOP_GETPAGES 9
.Sh 名称
@ -45,30 +46,108 @@
.Ft int
.Fn VOP_PUTPAGES "struct vnode *vp" "vm_page_t *m" "int count" "int sync" "int *rtvals" "vm_ooffset_t offset"
.Sh 解説
.Fn VOP_GETPAGES
メソッドは、通常のファイルが背後にある仮想メモリのページの読み込み
のために、呼び出されます。
他の隣接したページの背後に同じファイルの隣接した領域がある場合には、
.Fn VOP_GETPAGES
は同様にそれらのページを読み込ませるために要求されますが、そうすることが
必須なわけではありません。
.Fn VOP_PUTPAGES
メソッドは反対のことを行います。
すなわち、仮想メモリの隣接したダーティなページを書き出させます。
.Pp
入る時に、vnode のロックは保持されますが、ページキューと VM オブジェクトの
ロックはどちらも保持されません。
両方のメソッドは、成功して戻る時とエラーで戻る時と両方とも、
そのままの状態で戻ります。
.Pp
引数は以下の通りです。
.Bl -tag -width reqpage
.It Fa vp
アクセスするファイル。
.It Fa m
ページ ???。
読み込まれるまたは書き込まれるべきファイルの連続した領域を表現する
連続したページの配列の最初の要素へのポインタです。
.It Fa count
アクセスするページ数。
その配列の中のページ数です
.It Fa sync
書き込みが同期するべきである場合には 0 でない値。
書き込みが同期されるべき場合には
.Dv VM_PAGER_PUT_SYNC
です。
.It Fa rtvals
???。
.Fn VOP_PUTPAGES
によって書き込まれたそれぞれのページの状態を示している VM システムの
結果コードの配列です。
.It Fa reqpage
???。
ページ配列の中の要求されたページのインデクスです。
すなわち、このメソッドの実装が取り扱わなければならない、1 ページです。
.It Fa offset
アクセスを開始するファイルの中のオフセット。
ファイルの中のそのマップされたページが始まる場所へのオフセットです。
.El
.Pp
.Fn VOP_PUTPAGES
メソッドの状態は、配列
.Fa rtvals[]
の中に、個々のページごとに返されます。
起こり得る状態値は以下の通りです。
.Bl -tag -width VM_PAGER_ERROR
.It Dv VM_PAGER_OK
そのページは成功して書き込まれました。
実装はそのページがクリーンであることを記録するために
.Xr vm_pager_undirty 9
を呼び出さなければなりません。
.It Dv VM_PAGER_PEND
そのページは非同期に書き込まれるようにスケジュールされました。
書き込みが完了した時には、完了コールバックはビジーフラグをクリアし、
このページをウェイトしている他のスレッドを起こすために、
.Xr vm_object_pip_wakeup 9
および
.Xr vm_page_io_finish 9
を呼び出すべきです。
さらに
.Xr vm_page_undirty 9
を呼び出します。
.It Dv VM_PAGER_BAD
このページは完全に背後にあるファイルの終端を越えていました。
その vnode のファイルシステムが正しく実装されている場合には、
この状態は起こり得るべきではありません。
.It Dv VM_PAGER_ERROR
下位の保存メディアまたはプロトコルのエラーのため、
このページは書き込まれることが出来ませんでした。
.It Dv VM_PAGER_FAIL
.Dv VM_PAGER_ERROR
と同様に取り扱われました。
.Dv VM_PAGER_ERROR
.It Dv VM_PAGER_AGAIN
そのページはこの要求によって取り扱われませんでした。
.El
.Pp
この引数については完全に確かではありません。
.Sh 戻り値
成功時には 0 が返され、そうでない場合にはエラーが返されます。
成功して
.Fa m[reqpage]
を読み込んだ場合には
.Fn VOP_GETPAGES
.Dv VM_PAGER_OK
を返し、そうでない場合には
.Dv VM_PAGER_ERROR
を返します。
慣習で、
.Fn VOP_PUTPAGES
の戻り値は
.Fa rtvals[0]
です。
.Sh 関連項目
.Xr vm_object_pip_wakeup 9 ,
.Xr vm_page_free 9 ,
.Xr vm_page_io_finish 9 ,
.Xr vm_page_undirty 9 ,
.Xr vm_page_wakeup 9 ,
.Xr vnode 9
.Sh 作者
このマニュアルページは
.An Doug Rabson
が書きました。
が書き、その後実質上
.An Garrett Wollman
が書き直しました。

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/VOP_SETEXTATTR.9,v 1.17 2003/06/08 13:27:57 charnier Exp %
.\" %FreeBSD: src/share/man/man9/VOP_SETEXTATTR.9,v 1.18 2003/09/12 21:54:11 ru Exp %
.\"
.\" $FreeBSD$
.Dd December 23, 1999

View file

@ -25,10 +25,10 @@
.\" 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.17 2002/04/15 06:02:58 trhodes Exp %
.\" %FreeBSD: src/share/man/man9/cd.9,v 1.18 2003/09/03 04:46:28 ken Exp %
.\"
.\" $FreeBSD$
.Dd October 10, 1998
.Dd September 2, 2003
.Dt CD 9
.Os
.Sh 名称
@ -79,6 +79,26 @@ type 4)
このフラグを設定する唯一の効果は、チェンジャのスケジューリングコードを通して、
チェンジャの LUN 0 に対して初期の容量読み取りコマンドを実行することを、
ドライバに通知することです。
.It Dv CD_Q_10_BYTE_ONLY
このフラグは、与えられたデバイスが 10 バイトの MODE SENSE/MODE SELECT コマンド
のみを受け付けることを、ドライバに通知します。
一般的にこういった癖は
.Xr cd 4
ドライバに追加されるべきではありません。
その理由は、ドライバは問題のドライブが 10 バイトコマンドを必要としているか
どうかを幾つかの方法で決定しようとするためです。
最初にドライバは、ドライブが一般的に話すプロトコルが 10 バイトコマンドを
認めるかどうかを決定するために CAM Path Inquiry (CAM パス照会) コマンドを
発行します。
(ATAPI および USB は一般的に 10 バイトコマンドのみを送りたい
プロトコルの 2 つの顕著な例です。)
それから、6 バイトの MODE SENSE または MODE REQUEST コマンド
から ILLEGAL REQUEST エラーが返された場合には、代わりに
そのコマンドの 10 バイトバージョンを送ろうとします。
癖が必要になるだろう唯一の理由は、ドライブが一般的に 6 バイトコマンドに問題を
持っていないプロトコル (例えば
.Tn SCSI )
の場合です。
.El
.Sh 関連ファイル
.Bl -tag -width /sys/cam/scsi/scsi_cd.c -compact

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/devstat.9,v 1.18 2002/01/09 11:43:47 mpp Exp %
.\" %FreeBSD: src/share/man/man9/devstat.9,v 1.19 2003/09/10 19:24:35 ru Exp %
.\"
.\" $FreeBSD$
.Dd May 22, 1998
@ -381,7 +381,7 @@ CCB
に渡すタグの型を判定します。
.\" AND じゃないの?
.Pp
.Aq sys/devicestat.h
.In sys/devicestat.h
.Dv DEVSTAT_VERSION
マクロが定義されています。

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/lock.9,v 1.10 2002/04/12 05:16:27 davidc Exp %
.\" %FreeBSD: src/share/man/man9/lock.9,v 1.11 2003/09/08 19:57:21 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 9, 2001
@ -152,7 +152,7 @@
.It Dv LK_DRAIN
ロック上の全ての行動の終了を待ち、それから役割を終えた印を付けます。
今にも解放されようとしているメモリの一部分のロックを解放する前に使用されます。
.Aq ( Pa sys/lockmgr.h
.In ( sys/lockmgr.h
に解説されています。)
.It Dv LK_SLEEPFAIL
操作がスリープした場合には、失敗します。

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/make_dev.9,v 1.13 2003/05/31 14:20:30 hmp Exp %
.\" %FreeBSD: src/share/man/man9/make_dev.9,v 1.14 2003/09/08 19:57:21 ru Exp %
.\"
.\" $FreeBSD$
.Dd May 27, 2001
@ -62,7 +62,7 @@ DEVFS
で指定される名前を持ちます。
.Va perms
に指定するファイルのパーミッションは
.Aq Pa sys/stat.h
.In sys/stat.h
で定義されています。
.Pp
.Bd -literal -offset indent -compact

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.35 2003/06/12 09:03:15 harti Exp %
.\" %FreeBSD: src/share/man/man9/malloc.9,v 1.36 2003/09/08 19:57:21 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 12, 2003
@ -223,10 +223,10 @@ MALLOC(buf, struct foo_buf *, sizeof *buf, M_FOOBUF, M_NOWAIT);
.Pp
.Fn MALLOC_DEFINE
を使用するためには、
.Aq Pa sys/param.h
.Aq ( Pa sys/types.h
.In sys/param.h
.In ( sys/types.h
の代わりに) および
.Aq Pa sys/kernel.h
.In sys/kernel.h
をインクルードしなければなりません。
.Sh 戻り値
.Fn malloc ,

View file

@ -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/physio.9,v 1.13 2002/03/18 10:59:58 ru Exp %
.\" %FreeBSD: src/share/man/man9/physio.9,v 1.14 2003/09/12 19:20:05 hmp Exp %
.\" $FreeBSD$
.\"
.Dd June 15, 1996
@ -121,5 +121,5 @@
に適応させるために少しの変更があります。
.Pp
.Nm
の呼び出しは、より高い入出力のパフォーマンスと
より良いページングのパフォーマンスのため、完全に書き直されています。
の呼び出しは、より高い入出力およびページングのパフォーマンスのために
完全に書き直されています。

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.19 2002/10/04 09:58:17 phk Exp %
.\" %FreeBSD: src/share/man/man9/sbuf.9,v 1.20 2003/09/08 19:57:21 ru Exp %
.\" $FreeBSD$
.\"
.Dd January 3, 2002
@ -96,7 +96,7 @@
ファミリの関数は、カーネル空間内の境界のあるヌル終端文字列の、
安全な割り当て、構築、および解放を可能にします。
これらの関数は、文字の配列の代わりに、
.Aq Pa sys/sbuf.h
.In sys/sbuf.h
で定義される
.Fa sbuf
と呼ばれる構造体を操作します。

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/style.9,v 1.101 2003/04/26 15:37:39 trhodes Exp %
.\" %FreeBSD: src/share/man/man9/style.9,v 1.103 2003/09/27 22:17:37 imp Exp %
.\" $FreeBSD$
.\"
.Dd December 7, 2001
@ -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.101 2003/04/26 15:37:39 trhodes Exp $");
__FBSDID("$\&FreeBSD: src/share/man/man9/style.9,v 1.103 2003/09/27 22:17:37 imp Exp $");
.Ed
.Pp
ヘッダファイルの前に、空行を 1 行付けます。
@ -103,14 +103,14 @@ __FBSDID("$\&FreeBSD: src/share/man/man9/style.9,v 1.101 2003/04/26 15:37:39 trh
.Pa sys/*.h
) が初めに来ます。
通常、
.Aq Pa sys/types.h
.In sys/types.h
または
.Aq Pa sys/param.h
.In sys/param.h
のどちらかが必要ですが、
両方は必要ないでしょう。
.Aq Pa sys/types.h
.In sys/types.h
.Aq Pa sys/cdefs.h
.In sys/cdefs.h
をインクルードしており、
依存関係は問題ありません。
.Bd -literal
@ -132,16 +132,16 @@ __FBSDID("$\&FreeBSD: src/share/man/man9/style.9,v 1.101 2003/04/26 15:37:39 trh
中のファイルを使用しないでください。
.Pp
それから空行を置き、
.Pa /usr
インクルードファイルを続けます。
.Pa /usr
インクルードファイルはアルファベット順にソートされているべきです。
.Pa /usr/include
ファイルを続けます。
.Pa /usr/include
ファイルはアルファベット順にソートされているべきです。
.Bd -literal
#include <stdio.h>
.Ed
.Pp
グローバルなパス名は
.Pa /usr/include/paths.h
.In /usr/include/paths.h
で定義されています。
プログラムにローカルなパス名はローカルディレクトリの
.Qq Pa pathnames.h
@ -257,6 +257,20 @@ __FBSDID("$\&FreeBSD: src/share/man/man9/style.9,v 1.101 2003/04/26 15:37:39 trh
#endif /* !COMPAT_43*/
.Ed
.Pp
このプロジェクトは、
.Ic u_intXX_t
形式の古い BSD スタイルの整数識別子よりもむしろ、
.Ic uintXX_t
形式の
.St -isoC-99
の符号なし整数識別子を使用するように、徐々に移行しています。
新しいコードは後者を使用するべきで、さらにその領域の他の主要な作業が完了し、
古い BSD スタイルを好むための優先する理由がない場合には、古いコードは
新しい形式に変換されるべきです。
空白文字のコミットと同様に、
.Ic uintXX_t
のみのコミットをするよう、考慮すべきです。
.Pp
列挙値は全て大文字を使用します。
.Bd -literal
enum enumtype { ONE, TWO } et;

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 1.17 2003/01/04 17:01:50 schweikh Exp %
.\" %FreeBSD: src/share/man/man9/sysctl_add_oid.9,v W1.18 2003/09/10 19:24:35 ru Exp %
.\" $FreeBSD$
.\"
.Dd July 15, 2000
@ -181,7 +181,7 @@
これらの関数およびマクロは sysctl oid のランタイム (例えばモジュールの
存在期間) での作成と削除のためのインタフェースを提供します。
リンカセット (詳細は
.Aq sys/linker_set.h
.In sys/linker_set.h
および
.\" XXX マニュアルページはソースファイルの参照を避けるべきです。
.Pa src/sys/kern/kern_sysctl.c
@ -265,7 +265,7 @@ oid
新しく作成された oid は名前のコピーを含んでいます。
.It Fa kind
oid の種類で、
.Aq sys/sysctl.h
.In sys/sysctl.h
ヘッダファイルの中で定義される型とアクセス値のビットマスクとして明示されます。
動的に作成された oid は常に
.Dv CTLFLAG_DYN

View file

@ -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.18 2001/10/01 16:09:25 ru Exp %
.\" %FreeBSD: src/share/man/man9/timeout.9,v 1.20 2003/10/01 21:32:42 imp Exp %
.\" $FreeBSD$
.\"
.Dd September 10, 1996
@ -99,6 +99,8 @@ struct callout_handle handle = CALLOUT_HANDLE_INITIALIZER(&handle)
関数との接続に使用されることが可能な
.Ft struct callout_handle
です。
.Fn timeout
の呼び出しは古いスタイルで、新しいコードは callout_* 関数を使用するべきです。
.Pp
関数
.Fn callout_handle_init
@ -137,6 +139,8 @@ struct callout_handle handle = CALLOUT_HANDLE_INITIALIZER(&handle)
の値の割当てによって初期化されなければなりません。
以前に初期化されたハンドルを伴なわない untimeout の呼び出しの振る舞いは
未定義です。
.Fn untimeout
の呼び出しは古いスタイルで、新しいコードは callout_* 関数を使用するべきです。
.Pp
ハンドルがシステムによって再利用されるので、
両方の呼び出しが同じ関数のポインタおよび引数を使用し、2 番目の呼び出しの前に
@ -202,8 +206,17 @@ timeout (
.Ft struct callout_handle
を返します。
.Fn callout_stop
関数はコールアウトが未だ保留の場合には 0 以外を、そうでない場合には 0 を
返します。
関数は呼び出された時にコールアウトが未だ保留の場合には 0 以外を、
そうでない場合には 0 を返します。
.Sh バグ
コールアウトを取り消すか、もし取り消しが遅過ぎた場合には
コールアウトが本当に完了されていることを保証することは、
この API にはできません。
.Fn callout_stop
は 0 を返した時に、コールアウトが開始されていている場合のみを保証します。
コールアウトが完了していることは保証しません。
ドライバのデタッチルーチンから戻る前に実行されるスレッドがないことを
保証したい時に、レース状態を発生させることがあります。
.Sh 歴史
現在の timeout および untimeout ルーチンは
.An Adam M. Costello