Catch up with 5.3-BETA1 for man9.
Submitted by: Akira Ikeuchi <a_ikeuchi@mic.mitsumi.co.jp> Reviewed by: Watanabe Kazuhiro <CQG00620@nifty.ne.jp>
This commit is contained in:
parent
8b82a57931
commit
d100276457
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=22425
45 changed files with 362 additions and 204 deletions
ja_JP.eucJP/man/man9
BUS_CONFIG_INTR.9DEVICE_DETACH.9DEVICE_IDENTIFY.9DEVICE_PROBE.9MD5.9VFS_ROOT.9VOP_CREATE.9VOP_GETPAGES.9VOP_LINK.9VOP_LOOKUP.9VOP_OPENCLOSE.9VOP_RDWR.9VOP_RENAME.9accept_filter.9boot.9buf.9bus_alloc_resource.9bus_child_present.9bus_release_resource.9cd.9condvar.9copy.9device_add_child.9device_ids.9devstat.9malloc.9mi_switch.9microseq.9module.9physio.9printf.9pseudofs.9sbuf.9sema.9spl.9style.9suser.9sx.9sysctl_add_oid.9sysctl_ctx_init.9taskqueue.9time.9timeout.9vref.9vslock.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
|
||||
ではじめて登場しました。
|
||||
|
|
|
@ -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 関連項目
|
||||
|
|
|
@ -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 作者
|
||||
このマニュアルページは
|
||||
|
|
|
@ -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 ,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 が戻る前に、現在の
|
||||
* および親ディレクトリの両方が削除された場合には、ここに潜在的な
|
||||
* 競合状態があります。きわめて複雑なデッドロック検出アルゴリズム
|
||||
* 競合状態があります。 きわめて複雑なデッドロック検出アルゴリズム
|
||||
* の実装なしにこの競合状態を避けることができないので、この
|
||||
* 競合状態の発生が稀であることを期待しています。ファイルシステムが、
|
||||
* 競合状態の発生が稀であることを期待しています。 ファイルシステムが、
|
||||
* ".." 以外に、ディレクトリ構造の中に遡りを指すハードリンクを
|
||||
* 持つ場合、この簡単なデッドロック検出機構が働かないことにも注意
|
||||
* してください。
|
||||
|
|
|
@ -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 疑似コード
|
||||
|
|
|
@ -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 エラー
|
||||
|
|
|
@ -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) {
|
||||
/*
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 空間の
|
||||
一部を予約します。
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 関連項目
|
||||
|
|
|
@ -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
|
||||
このマニュアルページは
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 戻り値
|
||||
成功すれば
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
バイトで置き換えます。
|
||||
|
|
|
@ -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_trywait
|
||||
は失敗を示すために 0 を返します。
|
||||
そうでない場合には、成功を示すために 0 ではない値が返されます。
|
||||
.Pp
|
||||
.Fn sema_timedwait
|
||||
および
|
||||
.Fn sema_trywait
|
||||
は、そのセマフォ上でのウェイトに失敗した場合には 0 を返します。
|
||||
そうでない場合には、成功を示すために 0 ではない値が返されます。
|
||||
関数はそのセマフォ上でのウェイトが成功した場合には 0 を返し、
|
||||
そうでない場合には 0 ではないエラーコードが返されます。
|
||||
.Sh エラー
|
||||
.Fn sema_timedwait
|
||||
関数は以下の場合に失敗します。
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EWOULDBLOCK
|
||||
タイムアウトしました。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr condvar 9 ,
|
||||
.Xr mtx_pool 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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 月から、
|
||||
スーパユーザの特権が使用されたことおよびされなかったことを記録しません。
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 (
|
|||
は、コールアウトが既に進行中の場合にはその完了をウェイトすることを除いて、
|
||||
.Fn callout_stop
|
||||
と同一です。
|
||||
これは、そのコールアウトがブロックするかもしれないあらゆるロックを
|
||||
この関数は、そのコールアウトがブロックするかもしれないあらゆるロックを
|
||||
保持している間は、決して呼び出されてはなりません。
|
||||
さもないと結果としてデッドロックします。
|
||||
.Pp
|
||||
|
@ -231,7 +235,8 @@ timeout (
|
|||
.An George Varghese
|
||||
の
|
||||
.%T "Redesigning the BSD Callout and Timer Facilities"
|
||||
と名付けられた技術レポートで発表された作業に基づいています。また、
|
||||
と名付けられた技術レポートで発表された作業に基づいています。
|
||||
また、
|
||||
.Fx
|
||||
への導入のために
|
||||
.An Justin T. Gibbs
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ̾¾Î
|
||||
|
|
Loading…
Reference in a new issue