diff --git a/ja_JP.eucJP/man/man9/BUF_LOCKINIT.9 b/ja_JP.eucJP/man/man9/BUF_LOCKINIT.9 index 7fb1d9a06a..fd7b5fe1e2 100644 --- a/ja_JP.eucJP/man/man9/BUF_LOCKINIT.9 +++ b/ja_JP.eucJP/man/man9/BUF_LOCKINIT.9 @@ -1,63 +1,63 @@ .\" .\" Copyright (C) 2001 Chad David . All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice(s), this list of conditions and the following disclaimer as .\" the first lines of this file unmodified other than the possible .\" addition of one or more copyright notices. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice(s), this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY .\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE .\" DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY .\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES .\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR .\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER .\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (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/BUF_LOCKINIT.9,v 1.6 2001/12/26 23:14:04 davidc Exp % +.\" %FreeBSD: src/share/man/man9/BUF_LOCKINIT.9,v 1.6.8.1 2005/01/10 23:00:58 keramida Exp % .\" .\" $FreeBSD$ -.Dd July 9, 2001 +.Dd January 6, 2005 .Dt BUF_LOCKINIT 9 .Os .Sh 名称 .Nm BUF_LOCKINIT -.Nd ロックされたバッファのロック解除 +.Nd バッファロックの初期化 .Sh 書式 .In sys/param.h .In sys/systm.h .In sys/uio.h .In sys/bio.h .In sys/buf.h .Ft void .Fn BUF_LOCKINIT "struct buf *bp" .Sh 解説 .Fn BUF_LOCKINIT マクロはバッファのロックを初期化します。 .Pp 引数は以下の通りです。 .Bl -tag -width ".Fa bp" .It Fa bp ロックを初期化されるべきバッファです。 .El .Sh 関連項目 .Xr buf 9 , .Xr BUF_LOCK 9 , .Xr BUF_TIMELOCK 9 , .Xr BUF_UNLOCK 9 , .Xr lockinit 9 , .Xr lockmgr 9 .Sh 作者 このマニュアルページは .An Chad David Aq davidc@acns.ab.ca -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/BUS_CONFIG_INTR.9 b/ja_JP.eucJP/man/man9/BUS_CONFIG_INTR.9 index 3a1fa03783..a80fbf5d9b 100644 --- a/ja_JP.eucJP/man/man9/BUS_CONFIG_INTR.9 +++ b/ja_JP.eucJP/man/man9/BUS_CONFIG_INTR.9 @@ -1,104 +1,104 @@ .\" Copyright (c) 2003 Marcel Moolenaar .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (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_CONFIG_INTR.9,v 1.4 2004/07/07 07:56:58 ru Exp % +.\" %FreeBSD: src/share/man/man9/BUS_CONFIG_INTR.9,v 1.4.2.1 2005/01/10 23:01:44 keramida Exp % .\" .\" $FreeBSD$ -.Dd September 23, 2003 +.Dd January 6, 2005 .Dt BUS_CONFIG_INTR 9 .Os .\" .Sh 名称 .Nm BUS_CONFIG_INTR .Nd "割り込みの極性およびトリガモードの設定" .\" .Sh 書式 .In sys/param.h .In sys/bus.h .Ft int .Fo BUS_CONFIG_INTR .Fa "device_t dev" "int irq" "enum intr_trigger trig" "enum intr_polarity pol" .Fc .\" .Sh 解説 .Fn BUS_CONFIG_INTR メソッドは、バスまたはデバイスのドライバが、親のバスに割り込み極性および トリガモードを提供することを可能にします。 これは通常は、ルートバス (例えば nexus) までの全ての経路を上がって行きます。 その全ての経路において、 実際にハードウェアをプログラムするために必要な動作がなされます。 .Fn BUS_CONFIG_INTR メソッドは割り込み番号をとるため、 .Xr BUS_SETUP_INTR 9 より先に呼び出されることが必ずしも要求されませんが、当然だと仮定されます。 .Pp .Fa trig 引数は以下のいずれかです。 .Bl -tag -width ".Dv INTR_TRIGGER_CONFORM" .It Dv INTR_TRIGGER_CONFORM 割り込みトリガモードは、デバイスがアタッチされているバスにとっての標準です。 .It Dv INTR_TRIGGER_EDGE 割り込みは、エッジトリガされます。 これは、割り込み線の信号の立上りエッジによって、 割り込みが立ち上げられることを意味します。 その信号は通常、スパイクを発生させるように元の状態に戻ります。 .It Dv INTR_TRIGGER_LEVEL 割り込みは、レベルトリガされます。 これは、割り込み線の信号が変化して、その割り込みのサービス完了までの間 変化せずに維持される時に、割り込みが立ち上げられることを意味します。 サービス完了後、信号は戻ります。 .El .Pp .Fa pol 引数は以下のいずれかです。 .Bl -tag -width ".Dv INTR_POLARITY_CONFORM" .It Dv INTR_POLARITY_CONFORM 割り込みの極性は、デバイスがアタッチされているバスにとっての標準です。 .It Dv INTR_POLARITY_HIGH 割り込み線の電圧がハイになることによって、割り込みが活性化されます。 .It Dv INTR_POLARITY_LOW 割り込み線の電圧がローになることによって、割り込みが活性化されます。 .El .\" .Sh 戻り値 成功時には 0 が返され、そうでなければ適切なエラーが返されます。 .\" .Sh 関連項目 .Xr BUS_SETUP_INTR 9 , .Xr BUS_TEARDOWN_INTR 9 , .Xr device 9 , .Xr driver 9 .\" .Sh 歴史 .Fn BUS_CONFIG_INTR メソッドは .Fx 5.2 ではじめて登場しました。 .\" .Sh 作者 このマニュアルページは .An Marcel Moolenaar .Aq marcel@xcllnt.net -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/BUS_PRINT_CHILD.9 b/ja_JP.eucJP/man/man9/BUS_PRINT_CHILD.9 index d7f28cd00c..920aa31e7b 100644 --- a/ja_JP.eucJP/man/man9/BUS_PRINT_CHILD.9 +++ b/ja_JP.eucJP/man/man9/BUS_PRINT_CHILD.9 @@ -1,59 +1,61 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1998 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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_PRINT_CHILD.9,v 1.14 2003/10/23 06:22:40 hmp Exp % +.\" %FreeBSD: src/share/man/man9/BUS_PRINT_CHILD.9,v 1.14.4.1 2005/01/10 23:06:34 keramida Exp % .\" .\" $FreeBSD$ -.Dd June 16, 1998 +.Dd January 6, 2005 .Dt BUS_PRINT_CHILD 9 .Os .Sh 名称 .Nm BUS_PRINT_CHILD .Nd デバイスについての情報の表示 .Sh 書式 .In sys/param.h .In sys/bus.h .Ft int .Fn BUS_PRINT_CHILD "device_t dev" "device_t child" .Sh 解説 -これはデバイスの説明をプリントアウトするシステムのコードから呼び出されます。 +.Fn BUS_PRINT_CHILD +メソッドはデバイスの説明をプリントアウトするシステムのコードから呼び出されます。 それは子デバイスが持っている親とのアタッチメントを記述するべきです。 例えば、TurboLaser のバスはどのノードにアタッチされたかをプリントします。 -BUS_PRINT_CHILD によって出力されるメッセージの適切なフォーマット +.Fn BUS_PRINT_CHILD +によって出力されるメッセージの適切なフォーマット に関しての更なる情報は .Xr bus_generic_print_child 9 を見てください。 .Sh 関連項目 .Xr device 9 , .Xr driver 9 .Sh 戻り値 出力の文字数です。 .Sh 作者 このマニュアルページは .An Doug Rabson -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/BUS_SETUP_INTR.9 b/ja_JP.eucJP/man/man9/BUS_SETUP_INTR.9 index 89462775d9..d575a7786b 100644 --- a/ja_JP.eucJP/man/man9/BUS_SETUP_INTR.9 +++ b/ja_JP.eucJP/man/man9/BUS_SETUP_INTR.9 @@ -1,124 +1,127 @@ .\" Copyright (c) 2000 Jeroen Ruigrok van der Werven .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (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_SETUP_INTR.9,v 1.17 2004/02/10 20:34:44 jmg Exp % +.\" %FreeBSD: src/share/man/man9/BUS_SETUP_INTR.9,v 1.17.2.1 2005/01/10 23:06:34 keramida Exp % .\" .\" $FreeBSD$ -.Dd March 28, 2003 +.Dd January 6, 2005 .Dt BUS_SETUP_INTR 9 .Os .Sh 名称 .Nm BUS_SETUP_INTR , .Nm bus_setup_intr , .Nm BUS_TEARDOWN_INTR , .Nm bus_teardown_intr .Nd 割り込みハンドラの作成と接続および破壊 .Sh 書式 .In sys/param.h .In sys/bus.h .Ft int .Fn BUS_SETUP_INTR "device_t dev" "device_t child" "struct resource *irq" "int flags" "driver_intr_t *intr" "void *arg" "void **cookiep" .Ft int .Fn bus_setup_intr "device_t dev" "struct resource *r" "int flags" "driver_intr_t handler" "void *arg" "void **cookiep" .Ft int .Fn BUS_TEARDOWN_INTR "device_t dev" "device_t child" "struct resource *irq" "void *cookiep" .Ft int .Fn bus_teardown_intr "device_t dev" "struct resource *r" "void *cookiep" .Sh 解説 -メソッド -.Nm -は、資源マネージャの +.Fn BUS_SETUP_INTR +メソッドは、資源マネージャの .Xr BUS_ALLOC_RESOURCE 9 メソッドによって以前に割り当てられた割り込みに対し、 割り込みハンドラを生成してアタッチします。 .Fa flags は .In sys/bus.h で見つかり、割り込みの大まかな種類を与えます。 また、 .Fa flags はデバイスドライバの特性についての信頼できる情報を、割り込みハンドラに伝えます。 .Dv INTR_FAST はそのハンドラが時間にクリティカルな関数のための ハンドラであることを意味します。 これらのハンドラのスピードアップのために特別な注意がはらわれます。 これの利用は .Dv INTR_EXCL を暗に含みます。 .Dv INTR_EXCL はそのハンドラをこの割り込みのための排他的なハンドラとして記録します。 .Dv INTR_MPSAFE はその割り込みハンドラはプリエンプティブな環境で適切に 振舞う (``SMP セーフ'') こと、および ``ジャイアントロック'' mutex によって 保護される必要がないことを、スケジューラに通知します。 .Dv INTR_ENTROPY はその割り込みがエントロピの良い供給源であるとして記録します。 これは、エントロピデバイス .Pa /dev/random によって使用されることができます。 ハンドラ .Fa intr は唯一の引数 .Fa arg の値を伴なって呼び出されます。 .Pp .Fa cookiep 引数は、 割り込みの確立が成功した場合に、 -.Nm +.Fn BUS_SETUP_INTR が書込む親のバスが使用するクッキーである .Vt "void *" 型へのポインタです。 ドライバ作成者は、このクッキーが 0 ではないことを仮定することが出来ます。 nexus ドライバは失敗時に .Fa cookiep に 0 を書込みます。 .Pp 割り込みハンドラは、 .Fn BUS_TEARDOWN_INTR によってデタッチされます。 正しい割り込みハンドラを破棄するために、クッキーが .Fn BUS_TEARDOWN_INTR に渡される必要があります。 一度 .Fn BUS_TEARDOWN_INTR が戻ると、その割り込み関数は有効ではなくなり二度と呼び出されないことが 保証されます。 .Pp これらの関数への呼び出しに交差して mutex が保持されていることは認められません。 .Sh 戻り値 成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。 .Sh 関連項目 .Xr random 4 , .Xr device 9 , .Xr driver 9 .Sh 作者 .An -nosplit このマニュアルページは、 .An Doug Rabson .Aq dfr@FreeBSD.org -が書いた BUS_CREATE_INTR および BUS_CONNECT_INTR のマニュアルページを基に、 +によって書かれた、 +.Fn BUS_CREATE_INTR +および +.Fn BUS_CONNECT_INTR +のマニュアルページを基に、 .An Jeroen Ruigrok van der Werven .Aq asmodai@FreeBSD.org -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/DECLARE_MODULE.9 b/ja_JP.eucJP/man/man9/DECLARE_MODULE.9 index 63139235a0..b6f4bcebe6 100644 --- a/ja_JP.eucJP/man/man9/DECLARE_MODULE.9 +++ b/ja_JP.eucJP/man/man9/DECLARE_MODULE.9 @@ -1,118 +1,114 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 2000 Alexander Langer .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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.7 2003/09/10 19:24:35 ru Exp % +.\" %FreeBSD: src/share/man/man9/DECLARE_MODULE.9,v 1.7.4.2 2005/01/13 13:45:52 keramida Exp % .\" $FreeBSD$ .\" -.Dd March 3, 2001 +.Dd January 6, 2005 .Dt DECLARE_MODULE 9 .Os .Sh 名称 .Nm DECLARE_MODULE .Nd カーネルモジュール宣言マクロ .Sh 書式 .In sys/param.h .In sys/kernel.h .In sys/module.h .Fn DECLARE_MODULE "name" "moduledata_t data" "sub" "order" .Sh 解説 .Fn DECLARE_MODULE マクロは一般的なカーネルモジュールを宣言します。 これは .Fn SYSINIT マクロを使用して、そのモジュールをシステムに登録します。 .Fn DECLARE_MODULE は通常、 .Xr DRIVER_MODULE 9 , .Xr DEV_MODULE 9 および .Xr SYSCALL_MODULE 9 のような他のマクロの中で使用されます。 -しかしながら、例えば動的な sysctl を実装するために、 -直接呼び出されることがもちろん可能です。 +もちろん、例えば動的な sysctl を実装するために、 +直接呼び出されることも可能です。 .Pp -.Fn DECLARE_MODULE -への引数は以下のとおりです。 -.Pp -.Fa name -はモジュールの名前で、そのモジュールを識別するために +引数は以下のとおりです。 +.Bl -tag -width indent +.It Fa name +モジュールを識別するために .Fn SYSINIT -の呼び出しで使用されます。 -.Pp -.Fa data -は 2 つの主要な要素を含む -.Vt moduledata_t -構造体です。その要素は、 +呼び出しで使用されるモジュールの名前です。 +.It Fa data .Vt module_t 構造体の中で使用されるモジュール名の正式名称および型 .Vt modeventhand_t -のイベントハンドラ関数へのポインタです。 -.Pp -.Fa sub -は +のイベントハンドラ関数へのポインタの 2 つの主要な要素を含む +.Vt moduledata_t +構造体です。 +.It Fa sub .Fn SYSINIT マクロへの直接の引数です。 このための有効な値は .Vt sysinit_sub_id -列挙に +列挙型に .In ( sys/kernel.h を参照) 含まれていて、システムスタートアップインタフェースの型を明示します。 例えば .Xr DRIVER_MODULE 9 -マクロは、ドライバモジュールはデバイスのためのドライバを含んでいるので、ここに +マクロは、これらのモジュールがデバイスのためのドライバを含んでいるので、 +ここで .Dv SI_SUB_DRIVERS の値を使用します。 -実行時にロードされるカーネルモジュールには、 +実行時にロードされるカーネルモジュールでは、 .Dv SI_SUB_EXEC -の値が共通です。 -.Pp -.Fa order -の値は +の値は共通です。 +.It Fa order .Fn SYSINIT -のためのもう 1 つの引数です。 +のための引数です。 これは KLD のサブシステム内の初期化の順序を意味します。 有効な値は .Vt sysinit_elem_order -列挙 -.Pq In kernel.h -に定義されています。 +列挙型 +.Pq In sys/kernel.h +で定義されています。 +.El .Sh 関連項目 .Xr DEV_MODULE 9 , .Xr DRIVER_MODULE 9 , .Xr module 9 , .Xr SYSCALL_MODULE 9 .Pp .Pa /usr/include/sys/kernel.h , .Pa /usr/share/examples/kld .Sh 作者 .An -nosplit このマニュアルページは .An Andrew Reiter Aq arr@watson.org -が書いた KLD Facility Programming Tutorial に触発されて、 +によって書かれた +KLD Facility Programming Tutorial に触発されて、 .An Alexander Langer Aq alex@FreeBSD.org -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/DEVICE_ATTACH.9 b/ja_JP.eucJP/man/man9/DEVICE_ATTACH.9 index e661e1c373..836be27aa0 100644 --- a/ja_JP.eucJP/man/man9/DEVICE_ATTACH.9 +++ b/ja_JP.eucJP/man/man9/DEVICE_ATTACH.9 @@ -1,67 +1,71 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1998 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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_ATTACH.9,v 1.8 2004/04/11 06:37:50 imp Exp % +.\" %FreeBSD: src/share/man/man9/DEVICE_ATTACH.9,v 1.8.2.1 2005/01/10 23:51:38 keramida Exp % .\" .\" $FreeBSD$ -.Dd June 16, 1998 +.Dd January 6, 2005 .Dt DEVICE_ATTACH 9 .Os .Sh 名称 .Nm DEVICE_ATTACH .Nd デバイスのアタッチ .Sh 書式 .In sys/param.h .In sys/bus.h .Ft int .Fn DEVICE_ATTACH "device_t dev" .Sh 解説 +.Fn DEVICE_PROBE +メソッドが既に呼び出され、デバイスが存在していると示された後に デバイスをシステムにアタッチします。 -プローブメソッドは既に呼び出されているでしょうし、 -デバイスが存在していると示されているでしょう。 -このルーチンはハードウェアの初期化と -その他の (devfs エントリのような) システムリソース +.Fn DEVICE_ATTACH +メソッドはハードウェアの初期化と +その他の +.Pf ( Xr devfs 5 +エントリのような) システムリソース の割り当てを行なうべきです。 .Pp バスを実装するデバイスは、そのバスにアタッチされたデバイスの存在のプローブ、 およびそれらを子として追加するためにこのメソッドを使用するべきです。 .Xr bus_generic_attach 9 と共に使用された場合、その子デバイスは自動的にプローブされて アタッチされます。 .Sh 戻り値 成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。 .Sh 関連項目 +.Xr devfs 5 , .Xr device 9 , .Xr DEVICE_DETACH 9 , .Xr DEVICE_IDENTIFY 9 , .Xr DEVICE_PROBE 9 , .Xr DEVICE_SHUTDOWN 9 .Sh 作者 このマニュアルページは -.An Doug Rabson -が書きました。 +.An Doug Rabson Aq dfr@FreeBSD.org +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/DEVICE_DETACH.9 b/ja_JP.eucJP/man/man9/DEVICE_DETACH.9 index f87d854ec0..cc0aeaf6db 100644 --- a/ja_JP.eucJP/man/man9/DEVICE_DETACH.9 +++ b/ja_JP.eucJP/man/man9/DEVICE_DETACH.9 @@ -1,65 +1,68 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1998 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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.11 2004/07/03 18:29:23 ru Exp % +.\" %FreeBSD: src/share/man/man9/DEVICE_DETACH.9,v 1.11.2.1 2005/01/10 23:36:20 keramida Exp % .\" .\" $FreeBSD$ .Dd June 16, 1998 .Dt DEVICE_DETACH 9 .Os .Sh 名称 .Nm DEVICE_DETACH .Nd デバイスのデタッチ .Sh 書式 .In sys/param.h .In sys/bus.h .Ft int .Fn DEVICE_DETACH "device_t dev" .Sh 解説 デバイスをデタッチします。 ユーザがドライバソフトウェアを置き換えた場合、またはデバイスがシステムから -物理的に切り離されようとしている場合 (たとえば pccard デバイス) に、 +物理的に切り離されようとしている場合 (たとえば +.Xr pccard 4 +デバイス) に、 呼び出されることができます。 .Pp このメソッドは .Xr DEVICE_ATTACH 9 メソッドで割り当てられたあらゆるシステムリソースを解放し、 ハードウェアを健全な状態に リセットする (すなわち割り込みを無効にするなど) べきです。 .Sh 戻り値 成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。 .Sh 関連項目 +.Xr pccard 4 , .Xr device 9 , .Xr DEVICE_ATTACH 9 , .Xr DEVICE_IDENTIFY 9 , .Xr DEVICE_PROBE 9 , .Xr DEVICE_SHUTDOWN 9 .Sh 作者 このマニュアルページは .An Doug Rabson -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/DEVICE_PROBE.9 b/ja_JP.eucJP/man/man9/DEVICE_PROBE.9 index 28e8e11f11..b9bf9dd8c7 100644 --- a/ja_JP.eucJP/man/man9/DEVICE_PROBE.9 +++ b/ja_JP.eucJP/man/man9/DEVICE_PROBE.9 @@ -1,91 +1,91 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1998 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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.19 2004/08/11 21:52:31 imp Exp % +.\" %FreeBSD: src/share/man/man9/DEVICE_PROBE.9,v 1.19.2.1 2005/01/10 23:51:38 keramida Exp % .\" .\" $FreeBSD$ -.Dd June 16, 1998 -.Os +.Dd January 6, 2005 .Dt DEVICE_PROBE 9 .Os .Sh 名称 .Nm DEVICE_PROBE .Nd デバイスの存在のプローブ .Sh 書式 .In sys/param.h .In sys/bus.h .Ft int .Fn DEVICE_PROBE "device_t dev" .Sh 解説 -このデバイスメソッドはデバイスがあるかどうかを知るためにプローブするべきです。 +.Fn DEVICE_PROBE +メソッドはデバイスがあるかどうかを知るためにプローブするべきです。 デバイスが存在すれば 0 を、デバイスが見つからなければ .Er ENXIO を返すべきです。 プローブの間にその他のエラー (メモリ割当の失敗など) が起こった場合は、 適切なエラーコードが返されるべきです。 1 つのデバイスに 2 つ以上のドライバが当てはまるような場合のために、 優先順位を返すことができます。 この場合、成功の値は 0 以下の値で、 最も大きな値が最も適切であることを意味します。 失敗の値は正の値で表現され、通常の .Ux エラーコードが目的に応じて使用されるべきです。 .Pp ドライバが 0 より小さい成功値を返す場合、 ドライバはそのデバイスにアタッチされるのが 同じドライバであると想定してはいけません。 特に、softc 構造体に格納されたすべての値が アタッチメソッドで利用可能であると想定してはいけませんし、 また、アタッチメソッドが呼ばれた場合、 プローブの間に割り当てられたあらゆるリソースは解放して 再割り当てしなければなりません。 加えて、そのプローブルーチンはどんなことがあっても副作用がないことが、 絶対必要条件です。 プローブルーチンは、アタッチルーチンが呼び出される前に 2 回以上 呼び出されることがあります。 .Pp 成功値 0 を返す場合には、 ドライバはそのデバイスがアタッチされるであろうと想定することはできますが、 プローブルーチンが戻った時にいかなるリソースをも保持してはなりません。 成功コード 0 を返すときには、 ドライバは softc は保存されていると決めてかかることができます。 .Sh 戻り値 0 以下の値は成功を表し、0 より大きな値はエラー (errno) を表します。 0 以下の値の時、0 は最高の優先順位を表し、それ以上のプローブは行ないません。 0 未満の値は、低い値程、低い優先順位を表します。 たとえば -100 は -50 よりも低い優先順位を表します。 .Sh 関連項目 .Xr device 9 , .Xr DEVICE_ATTACH 9 , .Xr DEVICE_DETACH 9 , .Xr DEVICE_IDENTIFY 9 , .Xr DEVICE_SHUTDOWN 9 .Sh 作者 このマニュアルページは .An Doug Rabson -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/DEVICE_SHUTDOWN.9 b/ja_JP.eucJP/man/man9/DEVICE_SHUTDOWN.9 index d0bc9bc60d..a7eac51f52 100644 --- a/ja_JP.eucJP/man/man9/DEVICE_SHUTDOWN.9 +++ b/ja_JP.eucJP/man/man9/DEVICE_SHUTDOWN.9 @@ -1,58 +1,59 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1998 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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_SHUTDOWN.9,v 1.7 2001/10/01 16:09:23 ru Exp % +.\" %FreeBSD: src/share/man/man9/DEVICE_SHUTDOWN.9,v 1.7.8.1 2005/01/10 23:51:38 keramida Exp % .\" .\" $FreeBSD$ -.Dd June 16, 1998 +.Dd January 6, 2005 .Dt DEVICE_SHUTDOWN 9 .Os .Sh 名称 .Nm DEVICE_SHUTDOWN .Nd システムシャットダウンの間に呼ばれる .Sh 書式 .In sys/param.h .In sys/bus.h .Ft int .Fn DEVICE_SHUTDOWN "device_t dev" .Sh 解説 -システムシャットダウンの間に呼び出され、 +.Fn DEVICE_SHUTDOWN +メソッドは、システムシャットダウンの間に呼び出され、 ドライバがハードウェアをコンピュータがリブートしても構わない状態にすることを 可能にします。 .Sh 戻り値 成功時には 0 が返され、それ以外の場合にはエラーが返されます。 .Sh 関連項目 .Xr device 9 , .Xr DEVICE_ATTACH 9 , .Xr DEVICE_DETACH 9 , .Xr DEVICE_IDENTIFY 9 , .Xr DEVICE_PROBE 9 .Sh 作者 このマニュアルページは .An Doug Rabson -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/MODULE_DEPEND.9 b/ja_JP.eucJP/man/man9/MODULE_DEPEND.9 index dd173196e1..c74e5cc165 100644 --- a/ja_JP.eucJP/man/man9/MODULE_DEPEND.9 +++ b/ja_JP.eucJP/man/man9/MODULE_DEPEND.9 @@ -1,64 +1,72 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 2001 Alexander Langer .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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_DEPEND.9,v 1.4 2001/12/26 23:14:04 davidc Exp % +.\" %FreeBSD: src/share/man/man9/MODULE_DEPEND.9,v 1.4.8.1 2005/01/10 23:39:18 keramida Exp % .\" .\" $FreeBSD$ -.Dd March 11, 2001 +.Dd January 7, 2005 .Dt MODULE_DEPEND 9 .Os .Sh 名称 .Nm MODULE_DEPEND .Nd カーネルモジュール依存性の設定 .Sh 書式 .In sys/param.h .In sys/module.h .Fn MODULE_DEPEND "name" "moddepend" "int minversion" "int prefversion" "int maxversion" .Sh 解説 .Fn MODULE_DEPEND マクロは、 .Fn MODULE_VERSION でそのバージョンを既に登録している .Fa moddepend という名前の別のカーネルモジュールとの依存性を設定します。 -どのモジュールが依存できるのか、3 つのバージョンが明示されなければなりません。 -それはこのモジュールが依存することができる、望ましいバージョンはもちろん、 -最小と最大のバージョンです。 +.Pp +.Fa moddepend +に 3 つのバージョンを指定しなければなりません: +.Bl -tag -width ".Fa prefversion" +.It Fa minversion +現在のモジュールが依存できる最小のバージョン。 +.It Fa maxversion +現在のモジュールが依存できる最大のバージョン。 +.It Fa prefversion +現在のモジュールが依存できる望ましいバージョン。 +.El .Sh 使用例 .Bd -literal MODULE_DEPEND(foo, bar, 1, 3, 4); .Ed .Sh 関連項目 .Xr DECLARE_MODULE 9 , .Xr module 9 , .Xr MODULE_VERSION 9 .Sh 作者 このマニュアルページは .An -nosplit .An Alexander Langer Aq alex@FreeBSD.org -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/Makefile b/ja_JP.eucJP/man/man9/Makefile index 8934a28363..4c6123b37c 100644 --- a/ja_JP.eucJP/man/man9/Makefile +++ b/ja_JP.eucJP/man/man9/Makefile @@ -1,343 +1,358 @@ # $FreeBSD$ MAN9 = BUF_LOCK.9\ BUF_LOCKFREE.9\ BUF_LOCKINIT.9\ BUF_REFCNT.9\ BUF_TIMELOCK.9\ BUF_UNLOCK.9\ BUS_ADD_CHILD.9\ BUS_CONFIG_INTR.9\ BUS_PRINT_CHILD.9\ BUS_READ_IVAR.9\ BUS_SETUP_INTR.9\ CTASSERT.9\ DECLARE_MODULE.9\ DELAY.9\ DEVICE_ATTACH.9\ DEVICE_DETACH.9\ DEVICE_IDENTIFY.9\ DEVICE_PROBE.9\ DEVICE_SHUTDOWN.9\ DEV_MODULE.9\ DRIVER_MODULE.9\ KASSERT.9\ MD5.9\ MODULE_DEPEND.9\ MODULE_VERSION.9\ SYSCALL_MODULE.9\ VFS.9\ VFS_CHECKEXP.9\ VFS_FHTOVP.9\ VFS_INIT.9\ VFS_MOUNT.9\ VFS_QUOTACTL.9\ VFS_ROOT.9\ VFS_SET.9\ VFS_START.9\ VFS_STATFS.9\ VFS_SYNC.9\ VFS_UNMOUNT.9\ VFS_VGET.9\ VFS_VPTOFH.9\ VOP_ACCESS.9\ VOP_ACLCHECK.9\ VOP_ADVLOCK.9\ VOP_ATTRIB.9\ VOP_BWRITE.9\ VOP_CREATE.9\ VOP_FSYNC.9\ VOP_GETACL.9\ VOP_GETEXTATTR.9\ VOP_GETPAGES.9\ VOP_GETVOBJECT.9\ VOP_INACTIVE.9\ VOP_IOCTL.9\ VOP_LEASE.9\ VOP_LINK.9\ VOP_LOCK.9\ VOP_LOOKUP.9\ VOP_OPENCLOSE.9\ VOP_PATHCONF.9\ VOP_PRINT.9\ VOP_RDWR.9\ VOP_READDIR.9\ VOP_READLINK.9\ VOP_REALLOCBLKS.9\ VOP_REMOVE.9\ VOP_RENAME.9\ VOP_REVOKE.9\ VOP_SETACL.9\ VOP_SETEXTATTR.9\ VOP_STRATEGY.9\ accept_filter.9\ accf_data.9\ accf_http.9\ acl.9\ bios.9\ boot.9\ buf.9\ bus_activate_resource.9\ bus_alloc_resource.9\ bus_child_present.9\ bus_generic_attach.9\ bus_generic_detach.9\ bus_generic_print_child.9\ bus_generic_read_ivar.9\ bus_generic_shutdown.9\ bus_release_resource.9\ bus_set_resource.9\ byteorder.9\ cd.9\ cdevsw_add.9\ cdevsw_remove.9\ condvar.9\ copy.9\ devclass.9\ devclass_add_driver.9\ devclass_find.9\ devclass_get_device.9\ devclass_get_devices.9\ devclass_get_maxunit.9\ devclass_get_name.9\ devclass_get_softc.9\ device.9\ device_add_child.9\ device_delete_child.9\ device_enable.9\ device_find_child.9\ device_get_children.9\ device_get_devclass.9\ device_get_driver.9\ device_get_ivars.9\ device_get_name.9\ device_get_parent.9\ device_get_softc.9\ device_get_state.9\ device_get_unit.9\ device_ids.9\ device_printf.9\ device_probe_and_attach.9\ device_quiet.9\ device_set_desc.9\ device_set_driver.9\ device_set_flags.9\ devstat.9\ devsw.9\ devtoname.9\ driver.9\ extattr.9\ fetch.9\ groupmember.9\ inittodr.9\ intro.9\ kernacc.9\ lock.9\ make_dev.9\ malloc.9\ mi_switch.9\ microseq.9\ microtime.9\ microuptime.9\ module.9\ namei.9\ panic.9\ physio.9\ printf.9\ pseudofs.9\ psignal.9\ resettodr.9\ sbuf.9\ sema.9\ sleep.9\ spl.9\ store.9\ style.9\ suser.9\ sx.9\ sysctl_add_oid.9\ sysctl_ctx_init.9\ taskqueue.9\ time.9\ timeout.9\ tvtohz.9\ uio.9\ vfs_unmountall.9\ vget.9\ vnode.9\ vput.9\ vref.9\ vrele.9\ vslock.9\ zone.9 MLINKS+=BUS_SETUP_INTR.9 bus_setup_intr.9 MLINKS+=BUS_SETUP_INTR.9 BUS_TEARDOWN_INTR.9 MLINKS+=BUS_SETUP_INTR.9 bus_teardown_intr.9 MLINKS+=DRIVER_MODULE.9 MULTI_DRIVER_MODULE.9 MLINKS+=MD5.9 MD5Init.9 MD5.9 MD5Transform.9 MLINKS+=VOP_ATTRIB.9 VOP_GETATTR.9 MLINKS+=VOP_ATTRIB.9 VOP_SETATTR.9 MLINKS+=VOP_CREATE.9 VOP_MKDIR.9 MLINKS+=VOP_CREATE.9 VOP_MKNOD.9 MLINKS+=VOP_CREATE.9 VOP_SYMLINK.9 MLINKS+=VOP_GETPAGES.9 VOP_PUTPAGES.9 MLINKS+=VOP_GETVOBJECT.9 VOP_CREATEVOBJECT.9 MLINKS+=VOP_GETVOBJECT.9 VOP_DESTROYVOBJECT.9 MLINKS+=VOP_INACTIVE.9 VOP_RECLAIM.9 MLINKS+=VOP_LOCK.9 VOP_ISLOCKED.9 MLINKS+=VOP_LOCK.9 VOP_UNLOCK.9 MLINKS+=VOP_LOCK.9 vn_lock.9 MLINKS+=VOP_OPENCLOSE.9 VOP_CLOSE.9 MLINKS+=VOP_OPENCLOSE.9 VOP_OPEN.9 MLINKS+=VOP_RDWR.9 VOP_READ.9 MLINKS+=VOP_RDWR.9 VOP_WRITE.9 MLINKS+=VOP_REMOVE.9 VOP_RMDIR.9 MLINKS+=bus_activate_resource.9 bus_deactivate_resource.9 +MLINKS+=bus_alloc_resource.9 bus_alloc_resource_any.9 MLINKS+=copy.9 copyin.9 copy.9 copyinstr.9 copy.9 copyout.9 copy.9 copystr.9 MLINKS+=devstat.9 devicestat.9 MLINKS+=devstat.9 devstat_add_entry.9 MLINKS+=devstat.9 devstat_remove_entry.9 MLINKS+=devstat.9 devstat_start_transaction.9 MLINKS+=devstat.9 devstat_end_transaction.9 MLINKS+=fetch.9 fubyte.9 fetch.9 fuswintr.9 fetch.9 fusword.9 fetch.9 fuword.9 #MLINKS+=ifnet.9 if_data.9 ifnet.9 ifaddr.9 ifnet.9 ifqueue.9 MLINKS+=kernacc.9 useracc.9 MLINKS+=make_dev.9 dev_depends.9 MLINKS+=make_dev.9 destroy_dev.9 MLINKS+=make_dev.9 make_dev_alias.9 MLINKS+=malloc.9 FREE.9 malloc.9 MALLOC.9 malloc.9 free.9 MLINKS+=malloc.9 realloc.9 malloc.9 reallocf.9 +MLINKS+=malloc.9 MALLOC_DECLARE.9 malloc.9 MALLOC_DEFINE.9 MLINKS+=mi_switch.9 cpu_switch.9 mi_switch.9 cpu_throw.9 MLINKS+=namei.9 NDINIT.9 MLINKS+=namei.9 NDFREE.9 MLINKS+=psignal.9 gsignal.9 MLINKS+=psignal.9 pgsignal.9 #MLINKS+=rtalloc.9 rtalloc1.9 rtalloc.9 rtalloc_ign.9 MLINKS+=sleep.9 tsleep.9 sleep.9 wakeup.9 sleep.9 wakeup_one.9 MLINKS+=sleep.9 msleep.9 MLINKS+=buf.9 bp.9 MLINKS+=spl.9 spl0.9 MLINKS+=spl.9 splbio.9 spl.9 splclock.9 spl.9 splhigh.9 spl.9 splimp.9 MLINKS+=spl.9 splnet.9 spl.9 splsoftclock.9 spl.9 splsofttty.9 MLINKS+=spl.9 splstatclock.9 spl.9 spltty.9 spl.9 splvm.9 spl.9 splx.9 MLINKS+=store.9 subyte.9 store.9 suswintr.9 store.9 susword.9 store.9 suword.9 -MLINKS+=time.9 boottime.9 time.9 mono_time.9 time.9 runtime.9 +MLINKS+=time.9 boottime.9 +MLINKS+=time.9 time_second.9 +MLINKS+=time.9 time_uptime.9 MLINKS+=timeout.9 untimeout.9 MLINKS+=timeout.9 callout_handle_init.9 timeout.9 callout_init.9 MLINKS+=timeout.9 callout_stop.9 timeout.9 callout_reset.9 +MLINKS+=timeout.9 callout.9 timeout.9 callout_active.9 +MLINKS+=timeout.9 callout_deactivate.9 timeout.9 callout_drain.9 +MLINKS+=timeout.9 callout_pending.9 MLINKS+=uio.9 uiomove.9 MLINKS+=vref.9 VREF.9 MLINKS+=vslock.9 vsunlock.9 MLINKS+=device_add_child.9 device_add_child_ordered.9 MLINKS+=device_enable.9 device_disable.9 MLINKS+=device_enable.9 device_is_enabled.9 MLINKS+=device_get_ivars.9 device_set_ivars.9 MLINKS+=device_get_name.9 device_get_nameunit.9 MLINKS+=device_get_state.9 device_busy.9 MLINKS+=device_get_state.9 device_unbusy.9 MLINKS+=device_get_state.9 device_is_alive.9 MLINKS+=device_get_state.9 device_is_attached.9 MLINKS+=device_ids.9 major.9 device_ids.9 umajor.9 MLINKS+=device_ids.9 minor.9 device_ids.9 uminor.9 MLINKS+=device_quiet.9 device_verbose.9 MLINKS+=device_quiet.9 device_is_quiet.9 MLINKS+=device_set_desc.9 device_get_desc.9 MLINKS+=device_set_desc.9 device_set_desc_copy.9 MLINKS+=device_set_flags.9 device_get_flags.9 MLINKS+=devclass_add_driver.9 devclass_delete_driver.9 MLINKS+=devclass_add_driver.9 devclass_find_driver.9 MLINKS+=BUS_READ_IVAR.9 BUS_WRITE_IVAR.9 MLINKS+=bus_generic_read_ivar.9 bus_generic_write_ivar.9 MLINKS+=byteorder.9 bswap16.9 byteorder.9 bswap32.9 byteorder.9 bswap64.9 MLINKS+=byteorder.9 be16toh.9 byteorder.9 be32toh.9 byteorder.9 be64toh.9 MLINKS+=byteorder.9 htobe16.9 byteorder.9 htobe32.9 byteorder.9 htobe64.9 MLINKS+=byteorder.9 le16toh.9 byteorder.9 le32toh.9 byteorder.9 le64toh.9 MLINKS+=byteorder.9 htole16.9 byteorder.9 htole32.9 byteorder.9 htole64.9 MLINKS+=byteorder.9 be16enc.9 byteorder.9 be32enc.9 byteorder.9 be64enc.9 MLINKS+=byteorder.9 be16dec.9 byteorder.9 be32dec.9 byteorder.9 be64dec.9 MLINKS+=byteorder.9 le16enc.9 byteorder.9 le32enc.9 byteorder.9 le64enc.9 MLINKS+=byteorder.9 le16dec.9 byteorder.9 le32dec.9 byteorder.9 le64dec.9 MLINKS+=condvar.9 cv_init.9 condvar.9 cv_destroy.9 MLINKS+=condvar.9 cv_wait.9 condvar.9 cv_wait_sig.9 MLINKS+=condvar.9 cv_timedwait.9 condvar.9 cv_timedwait_sig.9 MLINKS+=condvar.9 cv_signal.9 condvar.9 cv_broadcast.9 -MLINKS+=condvar.9 cv_waitq_remove.9 condvar.9 cv_waitq_empty.9 +MLINKS+=condvar.9 cv_broadcastpri.9 MLINKS+=condvar.9 cv_wmesg.9 MLINKS+=lock.9 lockinit.9 lock.9 lockdestroy.9 MLINKS+=lock.9 lockcount.9 lock.9 lockmgr.9 MLINKS+=lock.9 lockstatus.9 lock.9 lockmgr_printinfo.9 +MLINKS+=microtime.9 bintime.9 +MLINKS+=microtime.9 getbintime.9 MLINKS+=microtime.9 getmicrotime.9 MLINKS+=microtime.9 nanotime.9 MLINKS+=microtime.9 getnanotime.9 +MLINKS+=microuptime.9 binuptime.9 +MLINKS+=microuptime.9 getbinuptime.9 MLINKS+=microuptime.9 getmicrouptime.9 MLINKS+=microuptime.9 nanouptime.9 MLINKS+=microuptime.9 getnanouptime.9 +MLINKS+=printf.9 log.9 MLINKS+=printf.9 uprintf.9 MLINKS+=printf.9 tprintf.9 MLINKS+=suser.9 suser_cred.9 MLINKS+=sx.9 sx_init.9 sx.9 sx_destroy.9 sx.9 sx_slock.9 sx.9 sx_xlock.9 MLINKS+=sx.9 sx_try_slock.9 sx.9 sx_try_xlock.9 sx.9 sx_sunlock.9 MLINKS+=sx.9 sx_xunlock.9 sx.9 sx_try_upgrade.9 sx.9 sx_downgrade.9 MLINKS+=sx.9 sx_assert.9 sx.9 SX_SYSINIT.9 MLINKS+=sysctl_add_oid.9 sysctl_remove_oid.9 MLINKS+=sysctl_add_oid.9 SYSCTL_ADD_OID.9 MLINKS+=sysctl_add_oid.9 SYSCTL_ADD_NODE.9 MLINKS+=sysctl_add_oid.9 SYSCTL_ADD_STRING.9 MLINKS+=sysctl_add_oid.9 SYSCTL_ADD_INT.9 MLINKS+=sysctl_add_oid.9 SYSCTL_ADD_UINT.9 MLINKS+=sysctl_add_oid.9 SYSCTL_ADD_LONG.9 MLINKS+=sysctl_add_oid.9 SYSCTL_ADD_ULONG.9 MLINKS+=sysctl_add_oid.9 SYSCTL_ADD_OPAQUE.9 MLINKS+=sysctl_add_oid.9 SYSCTL_ADD_STRUCT.9 MLINKS+=sysctl_add_oid.9 SYSCTL_ADD_PROC.9 +MLINKS+=sysctl_add_oid.9 SYSCTL_CHILDREN.9 +MLINKS+=sysctl_add_oid.9 SYSCTL_STATIC_CHILDREN.9 +MLINKS+=sysctl_add_oid.9 sysctl_move_oid.9 MLINKS+=sysctl_ctx_init.9 sysctl_ctx_free.9 MLINKS+=sysctl_ctx_init.9 sysctl_ctx_entry_add.9 MLINKS+=sysctl_ctx_init.9 sysctl_ctx_entry_del.9 MLINKS+=sysctl_ctx_init.9 sysctl_ctx_entry_find.9 MLINKS+=sbuf.9 sbuf_new.9 MLINKS+=sbuf.9 sbuf_clear.9 MLINKS+=sbuf.9 sbuf_setpos.9 MLINKS+=sbuf.9 sbuf_cat.9 MLINKS+=sbuf.9 sbuf_cpy.9 MLINKS+=sbuf.9 sbuf_printf.9 MLINKS+=sbuf.9 sbuf_putc.9 MLINKS+=sbuf.9 sbuf_overflowed.9 MLINKS+=sbuf.9 sbuf_finish.9 MLINKS+=sbuf.9 sbuf_data.9 MLINKS+=sbuf.9 sbuf_len.9 MLINKS+=sbuf.9 sbuf_delete.9 MLINKS+=sbuf.9 sbuf_trim.9 MLINKS+=sbuf.9 sbuf_vprintf.9 MLINKS+=sema.9 sema_init.9 sema.9 sema_destroy.9 sema.9 sema_post.9 MLINKS+=sema.9 sema_wait.9 sema.9 sema_timedwait.9 MLINKS+=sema.9 sema_trywait.9 sema.9 sema_value.9 MLINKS+=taskqueue.9 TASKQUEUE_DECLARE.9 MLINKS+=taskqueue.9 TASKQUEUE_DEFINE.9 MLINKS+=taskqueue.9 TASK_INIT.9 MLINKS+=taskqueue.9 taskqueue_create.9 MLINKS+=taskqueue.9 taskqueue_enqueue.9 MLINKS+=taskqueue.9 taskqueue_find.9 MLINKS+=taskqueue.9 taskqueue_free.9 MLINKS+=taskqueue.9 taskqueue_run.9 MLINKS+=zone.9 uma.9 MLINKS+=zone.9 uma_zalloc.9 MLINKS+=zone.9 uma_zcreate.9 MLINKS+=zone.9 uma_zfree.9 MLINKS+=zone.9 uma_zdestroy.9 MLINKS+=zone.9 uma_zone_set_max.9 .include "bsd.prog.mk" diff --git a/ja_JP.eucJP/man/man9/SYSCALL_MODULE.9 b/ja_JP.eucJP/man/man9/SYSCALL_MODULE.9 index ffe3bb62f9..3ed251c66f 100644 --- a/ja_JP.eucJP/man/man9/SYSCALL_MODULE.9 +++ b/ja_JP.eucJP/man/man9/SYSCALL_MODULE.9 @@ -1,85 +1,88 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 2001 Alexander Langer .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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.5 2003/09/08 19:57:21 ru Exp % +.\" %FreeBSD: src/share/man/man9/SYSCALL_MODULE.9,v 1.5.4.1 2005/01/10 23:45:00 keramida Exp % .\" .\" $FreeBSD$ -.Dd April 27, 2001 +.Dd January 7, 2005 .Dt SYSCALL_MODULE 9 .Os .Sh 名称 .Nm SYSCALL_MODULE .Nd syscall カーネルモジュール宣言マクロ .Sh 書式 .In sys/param.h .In sys/kernel.h .In sys/proc.h .In sys/module.h .In sys/sysent.h .Fn SYSCALL_MODULE name "int *offset" "struct sysent new_sysent" "modeventhand_t evh" "void *arg" .Sh 解説 .Fn SYSCALL_MODULE マクロは新しい syscall を宣言します。 .Fn SYSCALL_MODULE は .Fa name という名前のカーネルモジュールの宣言に展開されます。 .Pp -.Fa offset -は -.Vt int -型へのポインタであり、 -そこにはその syscall が割り当てられた +このマクロで要求される残りの引数は以下の通りです。 +.Bl -tag -width ".Fa new_sysent" +.It Fa offset +syscall が割り付ける .Vt "struct sysent" -構造体の中のオフセット位置が保存されます。 -.Pp -.Fa new_sysent -は syscall を実装する関数およびこの関数が必要とする引数の個数 +中のオフセットを保存する +.Vt int +へのポインタ。 +.It Fa new_sysent +syscall を実装する関数およびこの関数が必要とする引数の数 .In ( sys/sysent.h -参照) を明示します。 -.Pp -.Fa evh -は、カーネルモジュールのイベントハンドラ関数へのポインタであり、 -この関数は引数 +参照)。 +.It Fa evh +引数 .Fa arg -を取ります。 +を取るカーネルモジュールのイベントハンドラ関数へのポインタ。 詳細については .Xr module 9 を参照してください。 +.It Fa arg +それが呼び出されるとき、 +.Fa evh +イベントハンドラのコールバック関数へ渡される引数。 +.El .Sh 使用例 syscall モジュールのための最低限の例が、 .Pa /usr/share/examples/kld/syscall/module/syscall.c の中に見つけられます。 .Sh 関連項目 .Xr module 9 .Pp .Pa /usr/share/examples/kld/syscall/module/syscall.c .Sh 作者 このマニュアルページは .An Alexander Langer Aq alex@FreeBSD.org -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/VFS.9 b/ja_JP.eucJP/man/man9/VFS.9 index f001cd38f8..1fa0f2e48a 100644 --- a/ja_JP.eucJP/man/man9/VFS.9 +++ b/ja_JP.eucJP/man/man9/VFS.9 @@ -1,66 +1,65 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1996 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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.9,v 1.10 2003/10/23 06:24:55 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VFS.9,v 1.10.4.1 2005/01/10 23:29:08 keramida Exp % .\" .\" $FreeBSD$ .Dd July 24, 1996 .Os .Dt VFS 9 .Sh 名称 .Nm VFS .Nd ファイルシステムへのカーネルインタフェース .Sh 解説 ファイルシステムの設定や情報を、 設定したり問い合わせたりするために使用される呼び出しです。 .Pp ある VFS 操作を実装しないファイルシステムは、 空の関数を実装したり、 .Fa eopnotsupp にキャストしたりするよりも、 .Pa src/sys/kern/vfs_default.c にある適切な .Fa vfs_std 関数を使用するべきです。 .Sh 関連項目 .Xr VFS_CHECKEXP 9 , .Xr VFS_FHTOVP 9 , -.Xr VFS_INIT 9 , .Xr VFS_MOUNT 9 , .Xr VFS_QUOTACTL 9 , .Xr VFS_START 9 , .Xr VFS_STATFS 9 , .Xr VFS_SYNC 9 , .Xr VFS_UNMOUNT 9 , .Xr VFS_VGET 9 , .Xr VFS_VPTOFH 9 , .Xr vnode 9 .Sh 作者 このマニュアルページは .An Doug Rabson -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/VFS_CHECKEXP.9 b/ja_JP.eucJP/man/man9/VFS_CHECKEXP.9 index cea4984d8e..0b76c50564 100644 --- a/ja_JP.eucJP/man/man9/VFS_CHECKEXP.9 +++ b/ja_JP.eucJP/man/man9/VFS_CHECKEXP.9 @@ -1,89 +1,91 @@ .\" .\" Copyright (c) 1999 Alfred Perlstein .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following condition .\" is met: .\" Redistributions of source code must retain the above copyright .\" notice, this condition and the following disclaimer. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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_CHECKEXP.9,v 1.11 2003/10/23 06:24:55 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VFS_CHECKEXP.9,v 1.11.4.1 2005/01/10 23:51:38 keramida Exp % .\" .\" $FreeBSD$ -.Dd September 10, 1999 +.Dd January 7, 2005 .Os .Dt VFS_CHECKEXP 9 .Sh 名称 .Nm VFS_CHECKEXP .Nd ファイルシステムがクライアントにエクスポートされているかどうかのチェック .Sh 書式 .In sys/param.h .In sys/mount.h .Ft int .Fn VFS_CHECKEXP "struct mount *mp" "struct sockaddr *nam" "int *exflagsp" "struct ucred **credanonp" .Sh 解説 -これは、クライアントにマウントポイントがエクスポート +.Fn VFS_CHECKEXP +マクロは、クライアントにマウントポイントがエクスポート されているかどうかをチェックするために、NFS サーバが使用します。 .Pp 引数は以下の通りです。 .Bl -tag -width credanonp .It Fa mp チェック対象のマウントポイント。 .It Fa nam クライアントのネットワークアドレスを含む mbuf。 .It Fa exflagsp このクライアントに対する、エクスポートフラグの戻り値。 .It Fa credanonp このクライアントに対する、匿名の証明の戻り値。 .El .Pp -ファイルシステムのマウント構造に対して呼び出して、 +.Fn VFS_CHECKEXP +マクロは、ファイルシステムのマウント構造に対して呼び出して、 .Fa nam にアドレスが含まれるクライアントに対してそのファイルシステムが エクスポートされているかどうかを決定できます。 .Pp 一般的には、 クライアントがファイルシステムにアクセス可能かを確認するために、 .Xr VFS_FHTOVP 9 の前に呼び出されます。 .Pp ファイルシステムは、 クライアントがファイルシステムをアクセスできるかを実証するために、 .Vt netexport 構造体の適切なアドレス、クライアントのアドレス、および .Fa nam を伴って、 .Xr vfs_export_lookup 9 を呼び出すべきです。 .Sh 戻り値 -そのクライアントに対するエクスポートフラグと ( -.Xr vfs_export_lookup 9 +そのクライアントに対するエクスポートフラグと +.Pf ( Xr vfs_export_lookup 9 から返される) 匿名の証明が .Fa *exflagsp と .Fa *credanonp に返されるでしょう。 .Sh 関連項目 .Xr VFS 9 , .Xr VFS_FHTOVP 9 , .Xr VFS_VPTOFH 9 , .Xr vnode 9 .Sh 作者 このマニュアルページは .An Alfred Perlstein -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/VFS_FHTOVP.9 b/ja_JP.eucJP/man/man9/VFS_FHTOVP.9 index a9d8f3e100..3fac0d2f57 100644 --- a/ja_JP.eucJP/man/man9/VFS_FHTOVP.9 +++ b/ja_JP.eucJP/man/man9/VFS_FHTOVP.9 @@ -1,82 +1,85 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1996 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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_FHTOVP.9,v 1.16 2003/10/23 06:24:55 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VFS_FHTOVP.9,v 1.16.4.1 2005/01/10 23:51:38 keramida Exp % .\" .\" $FreeBSD$ -.Dd July 24, 1996 +.Dd January 7, 2005 .Os .Dt VFS_FHTOVP 9 .Sh 名称 .Nm VFS_FHTOVP .Nd NFS ファイルハンドルから vnode への変換 .Sh 書式 .In sys/param.h .In sys/mount.h .In sys/vnode.h .Ft int .Fn VFS_FHTOVP "struct mount *mp" "struct fid *fhp" "struct vnode **vpp" .Sh 解説 -これは NFS ファイルハンドルから vnode へ +.Fn VFS_FHTOVP +マクロは NFS ファイルハンドルから vnode へ 変換するために NFS サーバによって使用されます。 .Pp 引数は以下の通りです。 .Bl -tag -width vpp .It Fa mp ファイルシステム。 .It Fa fhp 変換されるファイルハンドル。 .It Fa vpp 新しい、ロックされた vnode の戻り値。 .El .Pp ファイルハンドルの内容は、ファイルシステムによって定義されていて、 システムの他の部分によって検査されません。 ファイルが削除された時や新しいファイルのためにファイルシステムの資源が 再利用された時の通知と同じ程度に、ファイルシステムの中のファイルを 独自に識別するための十分な情報を含んでいるべきです。 例えば、UFS ファイルシステムは、ファイルハンドルの中に inode 番号 および inode 世代カウンタを格納します。 .Pp -一般的にはこの関数への呼び出し前は、そのファイルがクライアントにとって +一般的には +.Fn VFS_FHTOVP +への呼び出し前は、そのファイルがクライアントにとって アクセス可能であるかどうかを検査するために .Xr VFS_CHECKEXP 9 呼び出しが行われます。 .Sh 戻り値 そのファイルのロックされた vnode が .Fa *vpp に返されます。 .Sh 関連項目 .Xr VFS 9 , .Xr VFS_CHECKEXP 9 , .Xr VFS_VPTOFH 9 , .Xr vnode 9 .Sh 作者 このマニュアルページは .An Doug Rabson -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/VFS_MOUNT.9 b/ja_JP.eucJP/man/man9/VFS_MOUNT.9 index 0bc9323db6..bd673b2983 100644 --- a/ja_JP.eucJP/man/man9/VFS_MOUNT.9 +++ b/ja_JP.eucJP/man/man9/VFS_MOUNT.9 @@ -1,93 +1,85 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1996 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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_MOUNT.9,v 1.13 2003/10/23 06:24:55 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VFS_MOUNT.9,v 1.13.4.1 2005/01/10 23:46:12 keramida Exp % .\" .\" $FreeBSD$ -.Dd July 24, 1996 +.Dd January 7, 2005 .Os .Dt VFS_MOUNT 9 .Sh 名称 .Nm VFS_MOUNT .Nd ファイルシステムのマウント .Sh 書式 .In sys/param.h .In sys/mount.h .In sys/vnode.h .Ft int -.Fn VFS_MOUNT "struct mount *mp" "char *path" "caddr_t data" "struct nameidata *ndp" "struct thread *td" +.Fn VFS_MOUNT "struct mount *mp" "struct thread *td" .Sh 解説 -システムの名前空間にファイルシステムをマウントします。 +.Fn VFS_MOUNT +マクロは、システムの名前空間にファイルシステムをマウントするか、 +既にマウントされたファイルシステムの属性を更新します。 .Pp 引数は以下の通りです。 .Bl -tag -width data .It Fa mp ファイルシステムを表現する構造体。 -.It Fa path -そのファイルシステムがマウントされるパス名。 -.It Fa data -ファイルシステム固有データ。 -これはカーネルに -.Xr copyin 9 -を使用して読み込まれるべきです。 -.It Fa ndp -マウントポイントのパス名での -.Xr namei 9 -の呼び出しの結果。 .It Fa td ファイルシステムをマウントしようとしているスレッド。 .El .Pp -これは、新しいファイルシステムをマウントする目的と、 +.Fn VFS_MOUNT +マクロは、新しいファイルシステムをマウントする目的と、 既存のファイルシステムの属性変更の目的の、両方の用途で呼び出されます。 .Fa mp->mnt_flag に .Dv MNT_UPDATE フラグが設定されている場合には、ファイルシステムは .Fa mp->mnt_flag の値により内部状態を更新するべきです。 例えば、読み取り専用ファイルシステムから読み書き可能への変換に 使用されることが可能です。 また、 .Xr mountd 8 によってファイルシステムの NFS エクスポート情報の更新にも使用されています。 .Pp .Dv MNT_UPDATE フラグが設定されていない場合には、 これは新規にマウントされたファイルシステムです。 ファイルシステムのコードは、ファイルシステムの表現に必要な私的データの 割り当てと初期化を行なうべきです (この情報を格納するために .Fa mp->mnt_data フィールドを使用可能です)。 .Sh 関連項目 .Xr VFS 9 , .Xr vnode 9 .Sh 作者 このマニュアルページは .An Doug Rabson -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/VFS_SET.9 b/ja_JP.eucJP/man/man9/VFS_SET.9 index af8eaf40fa..b3c3589f2d 100644 --- a/ja_JP.eucJP/man/man9/VFS_SET.9 +++ b/ja_JP.eucJP/man/man9/VFS_SET.9 @@ -1,106 +1,106 @@ .\" .\" Copyright (C) 2001 Chad David . All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice(s), this list of conditions and the following disclaimer as .\" the first lines of this file unmodified other than the possible .\" addition of one or more copyright notices. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice(s), this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY .\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE .\" DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY .\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES .\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR .\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER .\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (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_SET.9,v 1.7 2003/10/23 06:24:55 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VFS_SET.9,v 1.7.4.1 2005/01/10 23:47:20 keramida Exp % .\" .\" $FreeBSD$ .Dd December 2, 2001 .Dt VFS_SET 9 .Os .Sh 名称 .Nm VFS_SET .Nd ローダブルファイルシステム .Vt vfsconf のセットアップ .Sh 書式 .In sys/param.h .In sys/kernel.h .In sys/module.h .In sys/mount.h .Ft void .Fn VFS_SET "struct vfsops *vfsops" "fsname" "int flags" .Sh 解説 .Fn VFS_SET はローダブルモジュールのために与えられた .Fa vfsops , fsname および -.Fa flags , +.Fa flags で .Vt vfsconf 構造体を作成し、イベントハンドラとして .Fn vfs_modevent を使用して .Xr DECLARE_MODULE 9 の呼び出しによって宣言します。 .Pp .Fa flags -引数のために利用可能な値は以下に記述されています。 +引数のために利用可能な値は以下のとおりです: .Bl -hang -width ".Dv VFCF_SYNTHETIC" .It Dv VFCF_STATIC ファイルシステムはカーネル内で静的に利用可能であるべきです。 .It Dv VFCF_NETWORK ネットワークにエクスポート可能なファイルシステムです。 .It Dv VFCF_READONLY 書き込み操作がサポートされていません。 .It Dv VFCF_SYNTHETIC 疑似ファイルシステムであり、データはディスク上のファイルを表現していません。 .It Dv VFCF_LOOPBACK ループバックファイルシステムレイヤです。 .It Dv VFCF_UNICODE ファイル名は Unicode として格納されます。 .El .Sh 疑似コード .Bd -literal /* * 使用するものを記述し、残りは vfs_std を使用します。 */ static struct vfsops myfs_vfsops = { myfs_mount, vfs_stdstart, myfs_unmount, myfs_root, vfs_stdquotactl, myfs_statfs, vfs_stdsync, vfs_stdvget, vfs_stdfhtovp, vfs_stdcheckexp, vfs_stdvptofh, vfs_stdinit, vfs_stduninit, vfs_stdextattrctl, }; VFS_SET(myfs_vfsops, skelfs, 0); .Ed .Sh 関連項目 .Xr DECLARE_MODULE 9 , .Xr vfsconf 9 , .Xr vfs_modevent 9 .Sh 作者 このマニュアルページは .An Chad David Aq davidc@acns.ab.ca -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/VFS_START.9 b/ja_JP.eucJP/man/man9/VFS_START.9 index acb83907ff..b9d586abc8 100644 --- a/ja_JP.eucJP/man/man9/VFS_START.9 +++ b/ja_JP.eucJP/man/man9/VFS_START.9 @@ -1,63 +1,67 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1996 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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_START.9,v 1.10 2003/10/23 06:24:55 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VFS_START.9,v 1.10.4.2 2005/01/13 13:45:52 keramida Exp % .\" .\" $FreeBSD$ -.Dd July 24, 1996 +.Dd January 7, 2005 .Os .Dt VFS_START 9 .Sh 名称 .Nm VFS_START .Nd ファイルシステムを操作可能にする .Sh 書式 .In sys/param.h .In sys/mount.h .In sys/vnode.h .Ft int .Fn VFS_START "struct mount *mp" "int flags" "struct thread *td" .Sh 解説 -これは +.Fn VFS_START +マクロは .Xr VFS_MOUNT 9 の後且つファイルシステムへの最初のアクセスの前に呼び出されます。 +.Pp 引数は以下の通りです。 .Bl -tag -width flags .It Fa mp ファイルシステム。 .It Fa flags -?? +フラグはファイルシステムの +.Va vfs_start +メソッドに渡します。 .It Fa td ファイルシステムを起動しているスレッド。 .El .Sh 関連項目 .Xr VFS 9 , .Xr vnode 9 .Sh 作者 このマニュアルページは .An Doug Rabson -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/VFS_STATFS.9 b/ja_JP.eucJP/man/man9/VFS_STATFS.9 index 495ec4651d..255704f035 100644 --- a/ja_JP.eucJP/man/man9/VFS_STATFS.9 +++ b/ja_JP.eucJP/man/man9/VFS_STATFS.9 @@ -1,63 +1,121 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1996 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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_STATFS.9,v 1.10 2003/10/23 06:24:55 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VFS_STATFS.9,v 1.10.4.2 2005/01/13 13:45:52 keramida Exp % .\" .\" $FreeBSD$ -.Dd July 24, 1996 +.Dd January 7, 2005 .Os .Dt VFS_STATFS 9 .Sh 名称 .Nm VFS_STATFS .Nd ファイルシステムの状態の取得 .Sh 書式 .In sys/param.h .In sys/mount.h .In sys/vnode.h .Ft int .Fn VFS_STATFS "struct mount *mp" "struct statfs *sbp" "struct thread *td" .Sh 解説 -この呼び出しは、ファイルシステムについての様々な情報を返します。 +.Fn VFS_STATFS +マクロは、ファイルシステムについての様々な情報を返します。 この情報には、推奨されている入出力サイズ、空き領域、空き inode 等があります。 .Pp 引数は以下の通りです。 .Bl -tag -width sbp .It Fa mp ファイルシステム。 .It Fa sbp -ファイルシステムの状態のための戻り値。 +ファイルシステムに関する情報が置かれる、 +.In sys/mount.h +で定義される +.Vt statfs +構造体です。 .It Fa td ファイルシステムに問い合わせているスレッド。 .El +.Pp +ファイルシステムに関連する +.Vt "struct statfs" +フイールドは以下の通りです。 +.Bl -tag -width ".Va f_mntfromname" +.It Va f_type +ファイルシステムのタイプ。 +.It Va f_flags +エクスポートされたマウントフラグのコピー。 +.It Va f_bsize +フラグメントサイズ。 +.It Va f_iosize +最適化された転送ブロックサイズ。 +.It Va f_blocks +ファイルシステム中のデータブロックの総数。 +.It Va f_bfree +ファイルシステム中のフリーブロックの数。 +.It Va f_bavail +スーパユーザでないプロセスで利用可能なフリーブロックの数。 +.It Va f_files +ファイルシステム中のファイルノードの総数。 +.It Va f_ffree +スーパユーザでないプロセスで利用可能なフリーのノードの数。 +.It Va f_syncwrites +ファイルシステムがマウントされたときからの同期書き込みの数。 +.It Va f_asyncwrites +ファイルシステムがマウントされたときからの非同期書き込みの数。 +.It Va f_syncreads +ファイルシステムがマウントされたときからの同期読み込みの数。 +.It Va f_asyncreads +ファイルシステムがマウントされたときからの非同期読み込みの数。 +.It Va f_namemax +このファイルシステムでの最大のファイル名の長さ。 +.It Va f_owner +ファイルシステムをマウントしたユーザのユーザ ID。 +.It Va f_fsid +ユニークなファイルシステム ID。 +.It Va f_fstypename +ファイルシステムタイプ名。 +最大 +.Dv MFSNAMELEN +バイトの文字列。 +.It Va f_mntfromname +マウントされたファイルシステムのデバイス名。 +最大 +.Dv MNAMELEN +バイトの文字列。 +.It Va f_mntonname +ファイルシステムがマウントされたディレクトリの名前。 +最大 +.Dv MNAMELEN +バイトの文字列。 +.El .Sh 関連項目 .Xr VFS 9 , .Xr vnode 9 .Sh 作者 このマニュアルページは .An Doug Rabson -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/VFS_SYNC.9 b/ja_JP.eucJP/man/man9/VFS_SYNC.9 index 034e175c2a..855199b4a2 100644 --- a/ja_JP.eucJP/man/man9/VFS_SYNC.9 +++ b/ja_JP.eucJP/man/man9/VFS_SYNC.9 @@ -1,80 +1,85 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1996 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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_SYNC.9,v 1.12 2003/10/23 06:24:55 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VFS_SYNC.9,v 1.12.4.2 2005/01/13 13:45:52 keramida Exp % .\" .\" $FreeBSD$ -.Dd July 24, 1996 +.Dd January 7, 2005 .Os .Dt VFS_SYNC 9 .Sh 名称 .Nm VFS_SYNC .Nd 未書き込みデータの吐き出し .Sh 書式 .In sys/param.h .In sys/mount.h .In sys/vnode.h .Ft int .Fn VFS_SYNC "struct mount *mp" "int waitfor" "struct ucred *cred" "struct thread *td" .Sh 解説 -これはファイルシステムの全ての未書き込みのデータを書き出します。 +.Fn VFS_SYNC +マクロはファイルシステムの全ての未書き込みのデータを書き出します。 .Pp 引数は以下の通りです。 -.Bl -tag -width waitfor +.Bl -tag -width ".Fa waitfor" .It Fa mp ファイルシステム。 .It Fa waitfor 関数が入出力の完了まで待つべきかどうか。 指定可能な値は以下のとおりです。 .Bl -tag -width MNT_NOWAIT .It Dv MNT_WAIT 入出力の完了を同期的に待ちます。 .It Dv MNT_NOWAIT 全ての入出力を開始しますが、それを待ちません。 .It Dv MNT_LAZY ファイルシステムの syncer によって書込まれていないデータを出力します。 .El .It Fa cred 呼び出し元の証明。 .It Fa td 呼び出しているスレッド。 .El .Pp -これは、通常、ファイルシステム中の全ての vnode のために +.Fn VFS_SYNC +マクロは、ファイルシステムの +.Va vfs_sync +メソッドを呼び出します。 +それは、通常、ファイルシステム中の全ての vnode のために .Xr VOP_FSYNC 9 を呼び出します。 .Sh 関連項目 .Xr fsync 2 , .Xr sync 2 , .Xr VFS 9 , .Xr vnode 9 , .Xr VOP_FSYNC 9 .Sh 作者 このマニュアルページは .An Doug Rabson -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/VFS_UNMOUNT.9 b/ja_JP.eucJP/man/man9/VFS_UNMOUNT.9 index 2690481ecc..591d6368f5 100644 --- a/ja_JP.eucJP/man/man9/VFS_UNMOUNT.9 +++ b/ja_JP.eucJP/man/man9/VFS_UNMOUNT.9 @@ -1,66 +1,72 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1996 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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_UNMOUNT.9,v 1.10 2003/10/23 06:24:55 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VFS_UNMOUNT.9,v 1.10.4.1 2005/01/10 23:08:56 keramida Exp % .\" .\" $FreeBSD$ -.Dd July 24, 1996 +.Dd January 7, 2005 .Os .Dt VFS_UNMOUNT 9 .Sh 名称 .Nm VFS_UNMOUNT .Nd ファイルシステムのアンマウント .Sh 書式 .In sys/param.h .In sys/mount.h .In sys/vnode.h .Ft int .Fn VFS_UNMOUNT "struct mount *mp" "int mntflags" "struct thread *td" .Sh 解説 -ファイルシステムをアンマウントします。 +.Fn VFS_UNMOUNT +マクロは、ファイルシステムをアンマウントします。 .Pp 引数は以下の通りです。 .Bl -tag -width mntflags .It Fa mp ファイルシステム。 .It Fa mntflags -いろいろなフラグ。 +アンマウント操作のためのフラグのビットマスクです。 +現在 +.Fn VFS_UNMOUNT +によってサポートされているフラグは以下の通りです。 +.Bl -tag -width ".Dv MNT_FORCE" +.It Dv MNT_FORCE +ファイルシステムがアンマウントされる前に +オープンしているファイルは強制的に閉じられます。 +.El .It Fa td ファイルシステムをアンマウントしているスレッド。 .El -.Pp -.Dv MNT_FORCE -フラグが指定された場合には、開いているファイルは強制的に閉じられるべきです。 .Sh 関連項目 .Xr vflush 9 , .Xr VFS 9 , .Xr vnode 9 .Sh 作者 このマニュアルページは .An Doug Rabson -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/VFS_VGET.9 b/ja_JP.eucJP/man/man9/VFS_VGET.9 index 649dfa18b2..5dd4012b96 100644 --- a/ja_JP.eucJP/man/man9/VFS_VGET.9 +++ b/ja_JP.eucJP/man/man9/VFS_VGET.9 @@ -1,77 +1,78 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1996 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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_VGET.9,v 1.14 2003/10/23 06:24:55 hmp Exp % +.\" %FreeBSD: src/share/man/man9/VFS_VGET.9,v 1.14.4.1 2005/01/10 23:51:38 keramida Exp % .\" .\" $FreeBSD$ -.Dd July 24, 1996 +.Dd January 7, 2004 .Os .Dt VFS_VGET 9 .Sh 名称 .Nm VFS_VGET .Nd inode 番号から vnode への変換 .Sh 書式 .In sys/param.h .In sys/mount.h .In sys/vnode.h .Ft int .Fn VFS_VGET "struct mount *mp" "ino_t ino" "int flags" "struct vnode **vpp" .Sh 解説 -これは inode 番号を、ロックされた vnode へ変換します。 +.Fn VFS_VGET +マクロは inode 番号を、ロックされた vnode へ変換します。 .Pp 引数は以下の通りです。 .Bl -tag -width ".Fa flags" .It Fa mp ファイルシステム。 .It Fa ino そのファイルを表現する inode。 .It Fa flags パススルーのための追加のロックフラグ。 .It Fa vpp vnode の戻り値。 .El .Pp これは、ファイルシステム中の各ファイルに対して 一意の識別番号を持つファイルシステムのための、 オプションのファイルシステムエントリポイントです。 UFS ファイルシステムはこれを内部的に使用していますし、 また NFSv3 サーバは .Dv READDIRPLUS NFS 呼び出しを実装するために使用しています。 .Pp ファイルシステムがこの呼び出しをサポートしていない場合には、 .Er EOPNOTSUPP を返すべきです。 .Sh 関連項目 .Xr VFS 9 , .Xr vget 9 , .Xr vnode 9 .Sh 作者 このマニュアルページは .An Doug Rabson -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/bus_alloc_resource.9 b/ja_JP.eucJP/man/man9/bus_alloc_resource.9 index 4b984333a3..3613b97179 100644 --- a/ja_JP.eucJP/man/man9/bus_alloc_resource.9 +++ b/ja_JP.eucJP/man/man9/bus_alloc_resource.9 @@ -1,181 +1,182 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 2000 Alexander Langer .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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.19 2004/06/16 08:33:57 ru Exp % +.\" %FreeBSD: src/share/man/man9/bus_alloc_resource.9,v 1.19.2.1 2005/03/14 07:19:03 jmg Exp % .\" .\" $FreeBSD$ .Dd May 18, 2000 .Dt BUS_ALLOC_RESOURCE 9 .Os .Sh 名称 .Nm bus_alloc_resource , .Nm bus_alloc_resource_any .Nd 親のバスからの資源の割り当て .Sh 書式 .In sys/param.h .In sys/bus.h .Pp .In machine/bus.h .In sys/rman.h .In machine/resource.h .Ft struct resource * .Fn bus_alloc_resource "device_t dev" "int type" "int *rid" "u_long start" "u_long end" "u_long count" "u_int flags" .Ft struct resource * .Fn bus_alloc_resource_any "device_t dev" "int type" "int *rid" "u_int flags" .Sh 解説 これは資源管理関数群への簡単なインタフェースです。 親のメソッドテーブルを通る間接的な方法を隠蔽します。 この関数は、一般的にアタッチ時に呼び出されるべきですが、 (幾つかの稀な場合を除いて) 決してその前に呼び出してはなりません。 .Pp .Fn bus_alloc_resource_any 関数は .Fn bus_alloc_resource のための簡単なラッパです。 これは .Fa start , .Fa end および .Fa count の値としてデフォルトのリソース (下記の .Fa start の解説を参照してください) を設定します。 .Pp 引数は以下の通りです。 .Bl -item .It .Fa dev は、資源の所有を要求するデバイスです。 割り当て前は、資源は親のバスによって所有されています。 .It .Fa type は、割り当てたい資源の型です。 以下の内の 1 つです。 .Bl -tag -width SYS_RES_MEMORY .It Dv SYS_RES_IRQ IRQ 用。 .It Dv SYS_RES_DRQ ISA DMA ライン用。 .It Dv SYS_RES_IOPORT 入出力ポート用。 .It Dv SYS_RES_MEMORY 入出力メモリ用。 .El .It .Fa rid は、割り当てている資源を識別する、バス固有のハンドルを指します。 ISA では、PnP の仕組みまたは hints の仕組みを通して、デバイスのために セットアップされている資源の配列へのインデックスです。 PCCARD では、この文章を書いている現時点では同様ですが、 将来の newcard では変わるかもしれません。 PCI では、pci コンフィグ空間において、 資源を記述するワードへのオフセットになっています。 バスのメソッドは、引数として与えられている RID を無制限に変更します。 以前に与えた時の値に依存してはなりません。 .It .Fa start および .Fa end は資源の開始/終了アドレスです。 .Fa start に 0ul を、 .Fa end に ~0ul を、 .Fa count に 1 を指定した場合には、バスのためのデフォルト値が計算されます。 .It .Fa count は資源の大きさです。 例えば、入出力ポートの大きさは通常 1 バイトです (しかし、 幾つかのデバイスはこれを上書きします)。 .Fa start および .Fa end にデフォルト値を指定した場合、 .Fa count がデフォルト値よりも小さいならばデフォルト値が使用され、 .Fa count がデフォルト値以上ならば count が使用されます。 .It .Fa flags は資源のためのフラグを設定します。 以下のフラグを 1 つ以上設定できます。 .Bl -tag -width RF_SHAREABLE .It Dv RF_ALLOCATED 資源は既に予約されています。 資源は引続き .Xr bus_activate_resource 9 で活性化される必要があります。 .It Dv RF_ACTIVE 不可分に、資源を活性化します。 .It Dv RF_SHAREABLE 資源は同時共有を許可します。 その資源が共有不可であることを知らない場合、常に設定されるべきです。 そのバスが共有をサポートしていない場合、 このフラグを取り除くのはバスドライバの仕事です。 例えば、 .Xr pccard 4 は IRQ を共有できませんが、一方 .Xr cardbus 4 は共有できます。 .It Dv RF_TIMESHARE 資源は時分割共有を許可します。 .El .El .Sh 戻り値 成功時には .Va struct resource 構造体へのポインタが返され、そうでない場合にはヌルポインタが返されます。 .Sh 使用例 これは 32 バイトの I/O ポート範囲と IRQ を割り当てるサンプルのコードです。 .Va portid および .Va irqid の値はこれらの呼び出しの後で、デバイスの softc の中に保存されるはずです。 .Bd -literal struct resource *portres, irqres; int portid, irqid; portid = 0; irqid = 0; portres = bus_alloc_resource(dev, SYS_RES_IOPORT, &portid, 0ul, ~0ul, 32, RF_ACTIVE); irqres = bus_alloc_resource_any(dev, SYS_RES_IRQ, &irqid, RF_ACTIVE | RF_SHAREABLE); .Ed .Sh 関連項目 .Xr bus_activate_resource 9 , .Xr bus_release_resource 9 , .Xr device 9 , .Xr driver 9 .Sh 作者 +.An -nosplit このマニュアルページは .An Alexander Langer Aq alex@big.endian.de -が書き、部分的に +によって書かれ、部分的に .An Warner Losh Aq imp@FreeBSD.org -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/device_find_child.9 b/ja_JP.eucJP/man/man9/device_find_child.9 index 797631a58b..2776b76e52 100644 --- a/ja_JP.eucJP/man/man9/device_find_child.9 +++ b/ja_JP.eucJP/man/man9/device_find_child.9 @@ -1,58 +1,65 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1998 Doug Rabson .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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_find_child.9,v 1.8 2003/10/23 06:19:45 hmp Exp % +.\" %FreeBSD: src/share/man/man9/device_find_child.9,v 1.8.4.1 2005/02/25 20:25:35 njl Exp % .\" .\" $FreeBSD$ -.Dd June 16, 1998 +.Dd February 8, 2005 .Dt DEVICE_FIND_CHILD 9 .Os .Sh 名称 .Nm device_find_child .Nd デバイスの子の検索 .Sh 書式 .In sys/param.h .In sys/bus.h .Ft device_t -.Fn device_find_child "device_t dev" "const char* name" "int unit" +.Fn device_find_child "device_t dev" "const char *classname" "int unit" .Sh 解説 この関数は、 .Dv dev の子で、 -.Fa name +.Fa classname および .Fa unit を持つものを検索します。 +.Fa unit +が -1 であるなら、一致する +.Fa classname +で +.Dv dev +の最初の子を返します。 +(すなわち、最も低い unit です。) .Sh 戻り値 存在している場合には子デバイスが返され、そうでない場合には NULL が返されます。 .Sh 関連項目 .Xr device_add_child 9 .Sh 作者 このマニュアルページは .An Doug Rabson -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/make_dev.9 b/ja_JP.eucJP/man/man9/make_dev.9 index 4a8e2c33f6..bb1ba97c3f 100644 --- a/ja_JP.eucJP/man/man9/make_dev.9 +++ b/ja_JP.eucJP/man/man9/make_dev.9 @@ -1,139 +1,139 @@ .\" Copyright (c) 1999 Chris Costello .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (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/make_dev.9,v 1.15 2003/10/23 01:54:06 hmp Exp % +.\" %FreeBSD: src/share/man/man9/make_dev.9,v 1.15.4.1 2005/03/31 14:20:12 brueffer Exp % .\" .\" $FreeBSD$ -.Dd May 27, 2001 +.Dd March 28, 2005 .Os .Dt MAKE_DEV 9 .Sh 名称 .Nm make_dev , .Nm make_dev_alias , .Nm destroy_dev , .Nm dev_depends .Nd デバイスのための -.Vt dev_t +.Vt cdev および DEVFS 登録の管理 .Sh 書式 .In sys/param.h .In sys/conf.h -.Ft dev_t +.Ft struct cdev .Fn make_dev "struct cdevsw *cdevsw" "int minor" "uid_t uid" "gid_t gid" "int perms" "const char *fmt" ... -.Ft dev_t -.Fn make_dev_alias "dev_t pdev" "const char *fmt" ... +.Ft struct cdev +.Fn make_dev_alias "struct cdev pdev" "const char *fmt" ... .Ft void -.Fn destroy_dev "dev_t dev" +.Fn destroy_dev "struct cdev dev" .Ft void -.Fn dev_depends "dev_t pdev" "dev_t cdev" +.Fn dev_depends "struct cdev pdev" "struct cdev cdev" .Sh 解説 .Fn make_dev 関数は新しいデバイスのための -.Fa dev_t +.Fa cdev 構造体を作成します。 DEVFS が利用可能の場合には、新しいデバイスの存在も通知されます。 そのデバイスは .Va uid によって所有され、 .Va gid のグループに所有され、 .Va name で指定される名前を持ちます。 .Va perms に指定するファイルのパーミッションは .In sys/stat.h で定義されています。 .Pp .Bd -literal -offset indent -compact #define S_IRWXU 0000700 /* 所有者の RWX マスク #define S_IRUSR 0000400 /* 所有者の R */ #define S_IWUSR 0000200 /* 所有者の W */ #define S_IXUSR 0000100 /* 所有者の X */ #define S_IRWXG 0000070 /* グループの RWX マスク */ #define S_IRGRP 0000040 /* グループの R */ #define S_IWGRP 0000020 /* グループの W */ #define S_IXGRP 0000010 /* グループの X */ #define S_IRWXO 0000007 /* その他の RWX マスク */ #define S_IROTH 0000004 /* その他の R */ #define S_IWOTH 0000002 /* その他の W */ #define S_IXOTH 0000001 /* その他の X */ #define S_ISUID 0004000 /* 実行時にユーザ ID を設定 */ #define S_ISGID 0002000 /* 実行時にグループ ID を設定 */ #define S_ISVTX 0001000 /* スティッキビット */ #ifndef _POSIX_SOURCE #define S_ISTXT 0001000 #endif .Ed .Pp .Fn make_dev_alias 関数は .Fn make_dev から返された -.Ft dev_t +.Ft cdev をとり、このデバイスのための別の名前 (別名) を作成します。 .Fn make_dev の呼出しの前の .Fn make_dev_alias の呼出しは、誤りです。 .Pp .Fn destroy_dev 関数は .Fn make_dev から返された -.Fa dev_t +.Fa cdev をとり、そのデバイスの登録を削除します。 .Fn make_dev_alias で作成されたデバイスで .Fn destroy_dev を呼出さないでください。 .Pp .Fn dev_depends 関数は 2 つのデバイス間の親子関係を確立します。 このネット効果は、親デバイスの .Fn destroy_dev は、もしあれば、結果としてその子デバイスの破壊に終わります。 1 つのデバイスは同時に親にも子にもなれ、 そのため、完全な階層構造を構築することが可能です。 .Sh 関連項目 .Xr devfs 5 .Sh 歴史 .Fn make_dev および .Fn destroy_dev 関数は .Fx 4.0 ではじめて登場しました。 関数 .Fn make_dev_alias は .Fx 4.1 ではじめて登場しました。 関数 .Fn dev_depends は -.Fx 5.0 . +.Fx 5.0 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man9/namei.9 b/ja_JP.eucJP/man/man9/namei.9 index 6df202fbe9..a9d6c15a46 100644 --- a/ja_JP.eucJP/man/man9/namei.9 +++ b/ja_JP.eucJP/man/man9/namei.9 @@ -1,313 +1,311 @@ .\" .\" Copyright (c) 1998, 1999 Eivind Eklund .\" Copyright (c) 2003 Hiten M. Pandya .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" .\" If you integrate this manpage in another OS, I'd appreciate a note .\" - eivind@FreeBSD.org .\" -.\" %FreeBSD: src/share/man/man9/namei.9,v 1.25 2003/06/02 15:02:06 ru Exp % +.\" %FreeBSD: src/share/man/man9/namei.9,v 1.25.4.1 2005/03/04 00:17:40 brueffer Exp % .\" .\" $FreeBSD$ .Dd May 27, 2003 .Os .Dt NAMEI 9 .Sh 名称 .Nm namei , .Nm NDINIT , .Nm NDFREE .Nd パス名の変換および検索操作 .Sh 書式 .In sys/param.h .In sys/proc.h .In sys/namei.h .Ft int .Fn namei "struct nameidata *ndp" .Ft void .Fo NDINIT .Fa "struct nameidata *ndp" "u_long op" "u_long flags" .Fa "enum uio_seg segflg" "const char *namep" "struct thread *td" .Fc .Ft void .Fn NDFREE "struct nameidata *ndp" "const uint flags" .Sh 解説 .Nm の仕組みはクライアントによるパス名の変換および検索の操作を可能にします。 .Nm 関数は対象の vnode のための参照カウントをインクリメントします。 その参照カウントは、 .Dv LOCKLEAF フラグが指定されたかどうかに依存して、 .Xr vrele 9 または .Xr vput 9 のどちらかを使用して、その vnode の使用後にデクリメントされなければなりません。 .Pp .Fn NDINIT 関数は .Nm の要素を初期化するために使用されます。 これは以下の引数を取ります。 .Bl -tag -width ".Fa segflg" .It Fa ndp 初期化されるべき .Vt "struct nameidata" 構造体です。 .It Fa op .Fn namei が実行する操作です。 .Dv LOOKUP , CREATE , DELETE および .Dv RENAME の操作が有効です。 後者 3 つはこれらの効果のためのセットアップだけです。 .Fn namei の呼び出しだけでは .Fn VOP_RENAME が呼び出されたような結果にはなりません。 .It Fa flags 操作フラグです。 これらの内の幾つかは、同時に有効化されることが可能です。 .It Fa segflg UIO セグメントのインジケータです。 これはオブジェクトの名前がユーザ空間 .Pq Dv UIO_USERSPACE にあるのかカーネルアドレス空間 .Pq Dv UIO_SYSSPACE にあるのかを示します。 .It Fa namep 構成要素のパス名バッファへのポインタです (検索されるファイル名またはディレクトリ名)。 .It Fa td .Nm の操作およびロックのために使用されるスレッドコンテキストです。 .El .Sh NAMEI 操作フラグ .Fn namei は操作がどのような影響を及ぼすかという、以下の .Dq 操作フラグ のセットを取ります。 .Bl -tag -width ".Dv WANTPARENT" .It Dv LOCKLEAF 戻るときに vnode をロックします。 これはその vnode の完全なロックで、ロックを解放するためには .Xr VOP_UNLOCK 9 を使用するべきです。 (または .Xr vrele 9 が後に続く .Xr VOP_UNLOCK 9 の呼び出しを一緒に行うことと等価である .Xr vput 9 を使用するべきです。) .It Dv LOCKPARENT このフラグは -.Va ni_vdp -と .Va ni_vp が一致しない場合には、 .Fn namei 関数に親 (ディレクトリ) の vnode である .Va ni_dvp がロックされた状態で返されるようにします。 この場合、これ自体では .Va ni_dvp はロックされません (が、 .Dv LOCKLEAF のためロックされるかもしれません)。 ロックが実施された場合には、 .Xr vput 9 または .Xr VOP_UNLOCK 9 と .Xr vrele 9 を使用してロックが解放されるべきです。 .It Dv WANTPARENT このフラグは .Fn namei 関数が親 (ディレクトリ) の vnode をロックされていない状態で、 返すようにします。 その親の vnode は .Xr vrele 9 を使用して個別に解放されなければなりません。 .It Dv NOCACHE 名前キャッシュのエントリが既に存在していない場合には、 .Fn namei が名前キャッシュにこのエントリを作成することを回避します。 通常、そこにエントリが未だない場合には、 .Fn namei は名前キャッシュにエントリを追加します。 .It Dv FOLLOW このフラグがあると、 .Fn namei は与えられたパス名の最後の部分がシンボリックリンクであれば、 シンボリックリンクを辿ります (すなわち、リンクそれ自体の vnode の代わりに、 リンクが指しているところの vnode が返されます)。 .It Dv NOOBJ たとえ VM サポートのための要求された基準を満たしているとしても、 返される vnode のために .Fn vfs_object_create を呼び出しません。 .It Dv NOFOLLOW シンボリックリンクを辿りません (擬似フラグ)。 このフラグは実際のコードによって期待されません。 コードは .Dv FOLLOW の有無をみます。 .Dv NOFOLLOW は、シンボリックリンクが辿られないことを、 ソースコードの読者に対して意図的に示すために使用されます。 .It Dv SAVENAME 呼出し側がそのパス名のバッファにアクセスするかもしれない時のために、 .Fn namei の実行の最後で、パス名のバッファを解放しません。 代わりに後で .Fn NDFREE でその名前バッファを解放します。 詳細は下記を参照してください。 .It Dv SAVESTART 親ディレクトリへの追加の参照を維持します。 パス名のバッファを解放しません。 詳細は下記を参照してください。 .El .Sh 割当てられた要素 .Vt nameidata 構造体は以下のフィールドで構成されます。 .Bl -tag -width ".Va ni_cnd.cn_pnbuf" .It Va ni_startdir 通常の場合、これは現在のディレクトリまたはルートディレクトリのどちらかです。 渡された名前が .Ql / で始まっておらず、絶対パスのシンボリックリンクを 通り抜けていない場合には現在のディレクトリで、そうでない場合にはルートです。 .Pp この場合、 .Fn lookup によってのみ使用され、 .Fn namei への呼出しの後で利用可能だとみなされるべきではありません。 .Dv SAVESTART が設定されている場合には、追加の .Xr vref 9 を伴なった .Va ni_dvp と同様に設定されます。 .Va ni_startdir の解放から .Fn NDFREE をブロックするために、 .Dv NDF_NO_STARTDIR_RELE を設定することが可能です。 .It Va ni_dvp 検索が実行されているオブジェクトのディレクトリへの vnode ポインタです。 .Dv LOCKPARENT または .Dv WANTPARENT が設定されている場合に、成功して戻った時に利用可能です。 .Dv LOCKPARENT が設定されている場合にはロックされます。 .Dv NDF_NO_DVP_RELE , NDF_NO_DVP_PUT または .Dv NDF_NO_DVP_UNLOCK によって、(明らかな効果を伴って) .Fn NDFREE 内の .Va ni_dvp の解放を抑制することが可能です。 .It Va ni_vp オブジェクトが返されるための vnode ポインタで、そうでなければ .Dv NULL です。 この vnode の .Va v_usecount フィールドがインクリメントされます。 .Dv LOCKLEAF が設定されている場合には、ロックもされます。 .Pp .Dv NDF_NO_VP_RELE , NDF_NO_VP_PUT または .Dv NDF_NO_VP_UNLOCK によって、(明らかな効果を伴って) .Fn NDFREE 内の .Va ni_vp の解放を抑制することが可能です。 .It Va ni_cnd.cn_pnbuf .Nm 操作によって使用される、 ファイルまたはディレクトリの位置が入っているパス名のバッファです。 これは .Xr uma 9 ゾーン割り当てインタフェースによって管理されます。 .Dv SAVESTART または .Dv SAVENAME フラグが設定されている場合には、そのパス名のバッファは .Fn namei 関数の呼び出し後も利用可能です。 .Pp パス名のバッファ .Va ni_cnd.cn_pnbuf によって使用されているリソースのみを解放するために、 .Dv NDF_ONLY_PNBUF フラグを .Fn NDFREE 関数に渡すことが可能です。 パス名のバッファをそのままで保持するために、 -.Dv ND_NO_FREE_PNBUF +.Dv NDF_NO_FREE_PNBUF フラグを .Fn NDFREE 関数に渡すことが可能です。 .El .Sh 関連ファイル .Bl -tag .It Pa src/sys/kern/vfs_lookup.c .El .Sh 関連項目 .Xr uio 9 , .Xr uma 9 , .Xr VFS 9 , .Xr vnode 9 , .Xr vput 9 , .Xr vref 9 .Sh 作者 .An -nosplit このマニュアルページは .An Eivind Eklund Aq eivind@FreeBSD.org -が書き、その後で +によって書かれ、その後で .An Hiten M. Pandya Aq hmp@FreeBSD.org が大幅に修正しました。 .Sh バグ .Dv LOCKPARENT フラグは常に親の vnode がロックされる結果になるとは限りません。 .Dv LOCKPARENT が使用される時には、複雑化する結果となります。 .Dv LOCKPARENT および .Dv LOCKLEAF の両方が使用される場合のこの問題の解決のために、 再帰的ロックに頼ることが必要になります。 diff --git a/ja_JP.eucJP/man/man9/physio.9 b/ja_JP.eucJP/man/man9/physio.9 index 5d48ee132d..3a3e2f283f 100644 --- a/ja_JP.eucJP/man/man9/physio.9 +++ b/ja_JP.eucJP/man/man9/physio.9 @@ -1,138 +1,138 @@ .\" %NetBSD: physio.9,v 1.2 1996/11/11 00:05:12 lukem Exp % .\" .\" Copyright (c) 1996 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation .\" by Paul Kranenburg. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the NetBSD .\" Foundation, Inc. and its contributors. .\" 4. Neither the name of The NetBSD Foundation nor the names of its .\" contributors may be used to endorse or promote products derived .\" from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE .\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN .\" CONTRACT, STRICT LIABILITY, OR TORT (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/physio.9,v 1.15 2004/07/10 01:10:17 imp Exp % +.\" %FreeBSD: src/share/man/man9/physio.9,v 1.15.2.1 2005/01/05 08:31:19 krion Exp % .\" $FreeBSD$ .\" .Dd July 8, 2004 .Dt PHYSIO 9 .Os .Sh 名称 .Nm physio .Nd ロウデバイスの入出力の開始 .Sh 書式 .In sys/param.h .In sys/systm.h .In sys/bio.h .In sys/buf.h .Ft int .Fn physio "dev_t dev" "struct uio *uio" "int ioflag" .Sh 解説 .Fn physio は通常、 文字型デバイスの .Fn read および .Fn write ルーチンから呼び出されるヘルパー関数で、 ユーザプロセスのバッファへの入出力を開始させます。 呼び出しごとの最大のデータ転送量は .Fa dev->si_iosize_max によって決定されます。 .Fn physio の呼び出しは入出力要求を .Fn strategy 要求に変換し、その処理のため新しい要求をドライバの .Fn strategy ルーチンに渡します。 .Pp .Fa uio 構造体は通常ユーザ空間のアドレスを示すので、 .Fn physio はこれらのページをメモリ中にロックする必要があります。 これは適切なページに対する .Fn vmapbuf を呼び出すことで行われます。 以前にエラー状態が検出された時を除いて、 .Fn physio は常にリターンする前に全ての要求された転送が完了するまで待ちます。 .Pp 引数の詳細を下記に示します。 -.Bl -tag -width "strategy" +.Bl -tag -width indent .It Fa dev デバイスを識別するために関連付けられたデバイス番号。 .It Fa uio ユーザプロセスから要求された転送全体の記述。 現在は、 .Fa uio 構造体の .Va uio_segflg フラグに .Dv UIO_USERSPACE 以外の値をセットして渡した場合の結果は未定義です。 .It Fa ioflag .Fn physio を呼び出している .Fn read または .Fn write 関数からの ioflag 引数。 .El .Sh 戻り値 成功すれば .Fn physio は 0 を返します。 .Fa uio 構造体に示されているアドレス範囲が要求したプロセスから アクセスできない場合には .Er EFAULT を返します。 .Fn physio はデバイスの strategy ルーチンを呼んだ結果として発生する あらゆるエラーを .Dv B_ERROR バッファフラグおよび .Va b_error フィールドを調査して返します。 デバイスが .Dq "end of file" の状態を示している時には、実際の転送サイズは .Fa uio 構造体で要求しているサイズよりも小さくなる事に注意してください。 .Sh 関連項目 .Xr read 2 , .Xr write 2 .Sh 歴史 .Nm のマニュアルページは元々は .Nx のもので、 .Fx に適応させるために少しの変更があります。 .Pp .Nm の呼び出しは、より高い入出力およびページングのパフォーマンスのために、 完全に書き直されています。 diff --git a/ja_JP.eucJP/man/man9/printf.9 b/ja_JP.eucJP/man/man9/printf.9 index bf64bf5513..07aea9cf25 100644 --- a/ja_JP.eucJP/man/man9/printf.9 +++ b/ja_JP.eucJP/man/man9/printf.9 @@ -1,166 +1,167 @@ .\" .\" 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 .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, .\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; .\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED .\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, .\" OR TORT (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/printf.9,v 1.4 2004/08/10 09:19:08 joerg Exp % +.\" %FreeBSD: src/share/man/man9/printf.9,v 1.4.2.1 2005/01/23 10:08:45 glebius Exp % .\" .\" $FreeBSD$ .Dd August 10, 2004 .Dt PRINTF 9 .Os .Sh 名称 .Nm printf , uprintf , tprintf , log .Nd フォーマットされた出力の変換 .Sh 書式 .In sys/types.h .In sys/systm.h .Ft int -.Fn printf "const char *fmt" "..." +.Fn printf "const char *fmt" ... .Ft void -.Fn tprintf "struct proc *p" "int pri" "const char *fmt" "..." +.Fn tprintf "struct proc *p" "int pri" "const char *fmt" ... .Ft int -.Fn uprintf "const char *fmt" "..." +.Fn uprintf "const char *fmt" ... +.In sys/syslog.h .Ft void -.Fn log "int pri" "const char *fmt" "..." +.Fn log "int pri" "const char *fmt" ... .Sh 解説 .Xr printf 9 ファミリの関数は .Xr printf 3 ファミリの関数と類似しています。 この異なった関数はそれぞれ異なった出力ストリームを使用します。 .Fn uprintf 関数は現在のプロセスが制御している tty に出力しますが、 .Fn printf はロギングファシリティおよびコンソールに出力します。 .Fn tprintf 関数は .Fa pri -が \&-1 でない場合には、プロセス +が \-1 でない場合には、プロセス .Fa p に関連づけられた tty およびロギングファシリティに出力します。 .Fn log 関数は .Fa pri によって示されたログレベルを使用して、 カーネルのロギングファシリティにメッセージを送ります。 .Pp これらそれぞれの関連した関数は、 .Xr printf 3 と同じ方法で .Fa fmt パラメータを使用します。 しかしながら、 .Xr printf 9 は 2 つの他の変換指定子を追加しています。 .Pp .Cm \&%b 識別子は 2 つの引数を期待します。 .Vt int および .Vt "char *" です。 これらはビットマスクのデコードのため、 レジスタ値と印字マスクとして使用されます。 この印字マスクは 2 つの部分で構成されます。 基数と引数です。 基数値は整数値として表現される出力の基数です。 -例えば、\\10 は 8 進数を \\20 は 16 進数を与えます。 +例えば、\e10 は 8 進数を \e20 は 16 進数を与えます。 引数はビット識別子の並びとして構成されます。 個々のビット識別子はこの識別子が表すビット番号の整数値で始まります。 識別子の残り部分はそのビットの名前を含む文字列です。 この文字列は次のビット識別子の始まりのビット番号、 または最後のビット識別子のために .Dv NUL で終端されます。 .Pp .Cm \&%D 識別子は 16 進ダンプを補助することを意図されています。 .Cm \&%D これは 2 つの引数を要求します。 .Vt "u_char *" ポインタおよび .Vt "char *" 文字列です。 ポインタが指しているメモリは、16 進数で一度に 1 バイト出力されます。 文字列は個々のバイトの間のデリミタとして使用されます。 もし存在すれば、幅ディレクティブが表示するバイト数を指定します。 デフォルトでは、16 バイトのデータが出力されます。 .Pp .Fn log 関数はその .Fa pri 引数 (ここは誤解されて .Sq priority (優先度) と呼ばれていた) に .Xr syslog 3 のレベル値の .Dv LOG_DEBUG から .Dv LOG_EMERG までを使用します。 代わりに、 .Fa pri -に \&-1 が与えられた場合には、そのメッセージはその前の +に \-1 が与えられた場合には、そのメッセージはその前の .Fn log の呼び出しによって開始された、最近のログメッセージに追加されます。 これらのメッセージはカーネル自身によって生成されるため、 このファシリティは常に .Dv LOG_KERN となります。 .Sh 戻り値 .Fn printf および .Fn uprintf 関数は表示された文字数を返します。 .Sh 使用例 この使用例は \&%b および \&%D 変換指定子の使用方法を示しています。 関数 .Bd -literal -offset indent void printf_test(void) { - printf("reg=%b\\n", 3, "\\10\\2BITTWO\\1BITONE\\n"); - printf("out: %4D\\n", "AAAA", ":"); + printf("reg=%b\en", 3, "\e10\e2BITTWO\e1BITONE\en"); + printf("out: %4D\en", "AAAA", ":"); } .Ed .Pp は下記の出力を発生させます。 .Bd -literal -offset indent reg=3 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); +log(LOG_DEBUG, "%s%d: been there.\en", sc->sc_name, sc->sc_unit); .Ed .Pp は適切なデバッグメッセージを優先度 -.Em kern.debug +.Dq Li kern.debug でシステムログに追加します。 .Sh 関連項目 .Xr printf 3 , .Xr syslog 3 diff --git a/ja_JP.eucJP/man/man9/sleep.9 b/ja_JP.eucJP/man/man9/sleep.9 index f2b748f7ff..f95baac582 100644 --- a/ja_JP.eucJP/man/man9/sleep.9 +++ b/ja_JP.eucJP/man/man9/sleep.9 @@ -1,159 +1,163 @@ .\" .\" Copyright (c) 1996 Joerg Wunsch .\" .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (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.43 2004/02/17 13:31:36 maxim Exp % +.\" %FreeBSD: src/share/man/man9/sleep.9,v 1.43.2.1 2005/01/10 08:27:21 cperciva Exp % .\" $FreeBSD$ .\" " .Dd December 17, 1998 .Os .Dt SLEEP 9 .Sh 名称 .Nm sleep , .Nm msleep , .Nm tsleep , .Nm wakeup .Nd イベントのウェイト .Sh 書式 .In sys/param.h .In sys/systm.h .In sys/proc.h .Ft int .Fn tsleep "void *ident" "int priority" "const char *wmesg" "int timo" .Ft int .Fn msleep "void *ident" "struct mtx *mtx" "int priority" "const char *wmesg" "int timo" .Ft void .Fn wakeup "void *ident" .Ft void .Fn wakeup_one "void *ident" .Sh 解説 関数 .Fn tsleep および .Fn wakeup はイベントに基づいたプロセスのブロックを取り扱います。 プロセスが外部イベントを待たなければならない場合には、そのプロセスは .Fn tsleep によってスリープ状態に置かれます。 パラメータ .Fa ident は、プロセスがどのイベント上でスリープしているかを識別する一意的な 任意のアドレスです。 単一の .Fa ident 上でスリープしている全てのプロセスは後で、 .Fn wakeup によって起こされます。 これは、しばしば割り込みルーチンの中から呼び出され、 プロセスがブロックしているリソースが現在利用可能になったことを示します。 .Pp パラメータ .Fa wmesg は .Xr ps 1 のようなツールのためのスリープ状態を解説する文字列です。 これらのプログラムの任意の文字列を表示するための領域の制限のため、 このメッセージは 6 文字を超えるべきではありません。 .Pp .Fn wakeup_one 関数はパラメータ .Fa ident 上でスリープしているキューの中の最初のプロセスを実行可能に するために使用されます。 これは、多数のプロセスが同じアドレス上でスリープしているが、 実行可能となったときその中の 1 つのみが実際には役に立つ作業ができるときに、 システムが飽和することを防ぐことが可能です。 .Pp .Fn tsleep 関数は一般的なスリープの呼び出しです。 明示された識別子上の wakeup が実行されるまでの間、 現在のプロセスを一時停止させます。 それからそのプロセスは明示された優先度 .Fa priority で実行可能にされます。 長くて .Fa timo \&/ hz 秒間 (0 はタイムアウトなしを意味します) スリープします。 +.Va Giant +ロックが保持されていないなら、 +.Fa timo +は 0 以外でなければなりません。 .Fa priority が .Dv PCATCH フラグを含む場合には、スリープの前後でシグナルがチェックされます。 そうでない場合には、シグナルはチェックされません。 起こされた場合には 0 を返し、タイムアウトが経過した場合には .Er EWOULDBLOCK を返します。 .Dv PCATCH が設定されていてシグナルが配信される必要がある場合で、 可能であれば現在のシステムコールが再開始されるべきである場合には .Er ERESTART が返され、 .Er ( EINTR を返す) シグナルによってそのシステムコールが中断されるべき場合には .Er EINTR が返されます。 .Pp .Fn msleep 関数は tsleep の変種です。 パラメータ .Fa mtx は、スリープの前に抜け、 .Fn msleep が戻る前に入る mutex です。 .Fa priority が .Dv PDROP フラグを含む場合には、戻る前に .Fa mtx 引数を再取得しません。 ある状態を不可分にチェックできることを保証し、 その状態の変更も対応する wakeup も失うことなく 現在のプロセスを中断できることを保証するために、 この mutex は使用されます。 .Sh 戻り値 上記を参照してください。 .Sh 関連項目 .Xr ps 1 , .Xr malloc 9 , .Xr mi_switch 9 .Sh 歴史 sleep/wakeup プロセス同期機構はとても古いです。 これはとても早期のバージョンの .Ux で登場しました。 .Pp .Fn tsleep 関数は .Bx 4.4 で登場しました。 .Pp .Fn sleep 関数は伝統的な形式でした。 これはタイムアウトも .Fa wmesg も指定できないため、使用取り止めとなりました。 .Sh 作者 .An -nosplit このマニュアルページは .An J\(:org Wunsch Aq joerg@FreeBSD.org -が書きました。 +によって書かれました。 diff --git a/ja_JP.eucJP/man/man9/style.9 b/ja_JP.eucJP/man/man9/style.9 index f5cbccd5a3..2f5ef914a9 100644 --- a/ja_JP.eucJP/man/man9/style.9 +++ b/ja_JP.eucJP/man/man9/style.9 @@ -1,818 +1,847 @@ -.\" Copyright (c) 1995-2001 FreeBSD Inc. +.\"- +.\" Copyright (c) 1995-2005 The FreeBSD Project .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL [your name] OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (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/style.9,v 1.110 2004/07/03 18:29:24 ru Exp % +.\" %FreeBSD: src/share/man/man9/style.9,v 1.110.2.1 2005/03/01 12:44:49 brueffer Exp % .\" $FreeBSD$ .\" .Dd December 7, 2001 .Dt STYLE 9 .Os .Sh 名称 .Nm style .Nd カーネルソースファイルのスタイルガイド .Sh 解説 このファイルは .Fx ソースツリーのカーネルソースに好ましいスタイルを明記しています。 これはユーザランドのコードスタイルの手引きでもあります。 例において、スタイル規則の多くを暗黙的に使用しています。 .Nm がこれらの事例について言及していないと決め付ける前に、 注意して例を確認してください。 .Nm はそのような事柄については記述していません。 .\" $ と FreeBSD を続けるとキーワード置換されるので、\& を挿入 .\" 2001/05/23 horikawa@jp.FreeBSD.org .Bd -literal /* * FreeBSD のためのスタイルガイドです。 * CSRG の KNF (Kernel Normal Form, カーネル標準書式) に基づいています。 * * @(#)style 1.14 (Berkeley) 4/28/95 - * $\&FreeBSD: src/share/man/man9/style.9,v 1.110 2004/07/03 18:29:24 ru Exp $ + * $\&FreeBSD: src/share/man/man9/style.9,v 1.110.2.1 2005/03/01 12:44:49 brueffer Exp $ */ /* * とても重要な 1 行のコメントはこのようにします。 */ /* 殆どの 1 行のコメントはこのようにします。 */ /* * 複数行にわたるコメントはこのようにします。実際の文章を書きます。実際の * 段落に見えるように埋めていきます。 */ .Ed .Pp +著作権のヘッダは複数行にわたるコメントであるべきで、 +コメントの最初の行は次のように星 (アスタリスク) の後ろにダッシュ (-) を +付けます: +.Bd -literal +/*- + * Copyright (c) 1984-2025 John Q. Public. All Rights Reserved. + * + * 長くて、退屈なライセンスはここに記述しますが、簡潔にするために + * 編集しています + */ +.Ed +.Pp +自動スクリプトは最初のカラムが +.Dq Li "/*-" +で始まるすべてのコメントを対照としてツリーからライセンス情報を集めます。 +利用者がライセンスまたは著作権表示でもない最初のカラムで始まるコメントを +最初のカラムから始まるコメントでライセンスや著作権表示でないものを +.Xr indent 1 +に再整形させたくない場合は、 +それらのコメントのダッシュを星に変えてください。 +最初のコメント以外のカラムで始まるコメントは +決してライセンス声明とはみなしません。 +訳注: 行頭にないものはライセンス表明とみなしません。 +.Pp 著作権ヘッダの後には空行を 1 行入れ、ソースファイルには .Va rcsid を付けます。 バージョン管理システムの ID タグは、ファイル中に 1 個のみあるべきです (このファイルでは違いますが)。 C/C++ ソースファイル以外はこの例に従いますが、 C/C++ ソースファイルは以降の例に従います。 外部から入手したファイルの すべての VCS (バージョン管理システム) リビジョン識別子は、 存在すれば維持します。 これには、ファイルの来歴を示す複数の ID も含みます。 一般的に、外来の ID またはその下部構造は編集しません。 -さもなければ -.Dq Li ( "#if defined(LIBC_SCCS)" +さもなければ +.Dq ( Li "#if defined(LIBC_SCCS)" のように) 囲まれていない場合には、全ての互換性のない小片を隠すため、および その ID をオブジェクトファイルから追い出しておくために、両方を .Dq Li "#if 0 ... #endif" の中に囲みます。 ファイルの名前が変更された場合には、外来の VCS ID の前に .Dq Li "From: " のみを追加します。 .Bd -literal #if 0 #ifndef lint static char sccsid[] = "@(#)style 1.14 (Berkeley) 4/28/95"; #endif /* not lint */ #endif #include -__FBSDID("$\&FreeBSD: src/share/man/man9/style.9,v 1.110 2004/07/03 18:29:24 ru Exp $"); +__FBSDID("$\&FreeBSD: src/share/man/man9/style.9,v 1.110.2.1 2005/03/01 12:44:49 brueffer Exp $"); .Ed .Pp ヘッダファイルの前に、空行を 1 行付けます。 .Pp カーネルのインクルードファイル (すなわち、 -.Pa sys/*.h -) が初めに来ます。 +.Pa sys/*.h ) +が初めに来ます。 通常、 .In sys/types.h または .In sys/param.h のどちらかが必要ですが、 両方は必要ないでしょう。 .In sys/types.h は .In sys/cdefs.h をインクルードしており、 依存関係は問題ありません。 .Bd -literal #include /* 山括弧による非ローカルインクルード */ .Ed .Pp ネットワークプログラムである場合は、 次にネットワークインクルードファイルを置きます。 .Bd -literal #include #include #include #include #include .Ed .Pp カーネル用のファイルには、 .Pa /usr/include 中のファイルを使用しないでください。 .Pp それから空行を置き、 .Pa /usr/include のファイルを続けます。 .Pa /usr/include のファイルはアルファベット順にソートされているべきです。 .Bd -literal #include .Ed .Pp グローバルなパス名は -.In /usr/include/paths.h +.In paths.h で定義されています。 プログラムにローカルなパス名はローカルディレクトリの .Qq Pa pathnames.h に入れます。 .Bd -literal #include .Ed .Pp それから、空行があって、ユーザインクルードファイルが来ます。 .Bd -literal #include "pathnames.h" /* " " によるローカルインクルード */ .Ed .Pp アプリケーションインタフェースを実装している場合を除き、 実装の名前空間で .Ic #define したり名前を定義したりしてはいけません。 .Pp -.Dq Li 安全でない +.Dq 安全でない マクロ (副作用を持っているもの) の名前と、 明らかな定数のマクロの名前はすべて大文字です。 式のように展開されるマクロは、単一のトークンにするか外側に括弧をつけます。 .Ic #define とマクロ名の間にタブ文字を 1 個入れます。 マクロがある関数のインライン展開である場合は、 関数名は全て小文字で、マクロはすべて大文字の同じ名前を持ちます。 .\" XXX 上記は名前が同じマクロを #undef すれば関数を使える .\" という ANSI のスタイルと衝突します。 .\" これは MALLOC() については言えないし、インライン関数を使う時の .\" 一般的なやりかたではありません。 バックスラッシュは右揃えします。 こうすると読みやすくなります。 マクロが複合文をカプセル化する場合には、それを .Ic do ループで囲みます。 これにより、 .Ic if 文で安全に使用できます。 最後の文の終端のセミコロンは、 マクロではなくマクロの実施時に付けられるべきです。 これにより、清書器やエディタで文法解析しやすくなります。 .Bd -literal #define MACRO(x, y) do { \e variable = (x) + (y); \e (y) += 2; \e } while (0) .Ed .Pp コードが .Ic #ifdef または .Ic #if を使用して条件付きでコンパイルされるときには、 どこで条件付きでコンパイルされるコードが終了するのかを 読む人が容易に識別することが可能にするために、それに続く適合する .Ic #endif または .Ic #else にコメントを追加しても構いません。 このコメントは (主観的に) 長い部分、20 行以上の部分、またはネストされた .Ic #ifdef の連続が読む人を混乱させるかもしれないとき、にのみ使用されるべきです。 たとえコンパイルされない領域が小さくなるかもしれないでも、 .Xr lint 1 の目的のために条件付きでコンパイルされない個所のために、 例外が作られても構いません。 そのコメントは .Ic #endif または .Ic #else から 1 つの空白によって分離されるべきです。 短い条件付きでコンパイルされる部分のために、 終わりのコメントを使用するべきではありません。 .Pp .Ic #endif のためのコメントは対応する .Ic #if または .Ic #ifdef で使用されている表現に合わせるべきです。 .Ic #else および .Ic #elif のためのコメントは先行する .Ic #if および/または .Ic #elif 文に使用されている表現の反対に合わせるべきです。 コメントの中では、補助表現 .Dq Li defined(FOO) は .Dq Li FOO と省略されます。 コメントの目的のためには、 .Dq Ic #ifndef Li FOO は .Dq Ic #if Li !defined(FOO) とみなされます。 .Bd -literal #ifdef KTRACE #include #endif #ifdef COMPAT_43 /* 大きな部分が、または他の条件付きのコードがここに */ #else /* !COMPAT_43 */ /* またはここに */ #endif /* COMPAT_43 */ #ifndef COMPAT_43 /* 更に別の大きな部分が、または他の条件付きのコードがここに */ #else /* COMPAT_43 */ /* またはここに */ #endif /* !COMPAT_43 */ .Ed .Pp このプロジェクトは、 .Vt u_intXX_t 形式の古い .Bx スタイルの整数識別子よりもむしろ、 .Vt uintXX_t 形式の .St -isoC-99 の符号なし整数識別子を使用するように、徐々に移行しています。 新しいコードは後者を使用するべきで、さらにその領域の他の主要な作業が完了し、 古い .Bx スタイルを好むための優先する理由がない場合には、古いコードは 新しい形式に変換されるべきです。 空白文字のコミットと同様に、 .Vt uintXX_t のみのコミットをするよう、考慮すべきです。 .Pp 列挙値は全て大文字を使用します。 .Bd -literal enum enumtype { ONE, TWO } et; .Ed .Pp 宣言の中では、型に関係付けられたトークンを除いて、 アスタリスクと隣接したトークンの間には空白文字を置きません。 (これらの識別子は基本の型の名前、型の修飾語句、および今宣言されようとしている もの以外の .Ic typedef 名です。) これらの識別子はアスタリスクから 1 つの空白で分離します。 .Pp 構造体の中で変数を宣言する時には、 -使用順、サイズ順、アルファベット順にソートして宣言します。 +使用順、サイズ順 (大きいものから小さなものへ)、 +アルファベット順にソートして宣言します。 最初の区分は通常適用しませんが、例外があります。 各宣言は、それぞれ独立した行にて行います。 構造体の名前の位置を、あなたの判断で読み易いように、 タブ 1 個または 2 個を使用して揃えてください。 少なくとも 90% のメンバの名前を揃えるのに十分な場合には、 1 つだけのタブを使用するべきです。 非常に長い型の後の名前は、単一の空白で区切られるべきです。 .Pp 重要な構造体は、それが使用されるファイルの先頭で宣言されるか、 複数のソースファイルで使用される場合は別のヘッダファイルで宣言されるべきです。 構造体がヘッダファイルで宣言されている場合には、 それら構造体の使用は、宣言とは分けられるべきで、かつ -.Ic "extern +.Ic extern であるべきです。 .Bd -literal struct foo { struct foo *next; /* 使用中の foo のリスト */ struct mumble amumble; /* mumble のコメント */ - int bar; /* コメントを揃えようとしています */ + int bar; /* コメントを揃えます */ struct verylongtypename *baz; /* タブ 2 個には収まりません */ }; struct foo *foohead; /* グローバルな foo リストの先頭 */ .Ed .Pp 可能な時には必ず、あなた自身でリストを操作するのではなく、 .Xr queue 3 マクロを使用してください。 従って、前の例をより良く書くと次のようになります。 .Bd -literal #include + struct foo { LIST_ENTRY(foo) link; /* foo リストにキューマクロを使用 */ struct mumble amumble; /* mumble のコメント */ - int bar; /* コメントを揃えようとしています */ + int bar; /* コメントを揃えます */ struct verylongtypename *baz; /* タブ 2 個には収まりません */ }; LIST_HEAD(, foo) foohead; /* グローバルな foo リストの先頭 */ .Ed .Pp 構造体の型に typedef を使用する事は避けてください。 typedef は、その下位にある型を適切に隠さないので、問題となり得ます。 例えば、typedef が構造体そのものであるのか、構造体へのポインタであるのか、 あなたが知る必要があります。 更に、typedef は正確に 1 度だけ宣言しなければなりませんが、 不完全な構造体型は必要な回数だけ宣言可能です。 typedef はスタンドアロンなヘッダファイル中で使用することが困難です。 typedef を定義するヘッダは、この typedef を使用するヘッダの前に インクルードするか、この typedef を使用するヘッダによってインクルード する必要があります (これは名前空間の汚染となります)。 さもなければ、typedef を得るための裏口が必要となってしまいます。 .Pp 規約が .Ic typedef を要求する場合には、その名前を構造体タグに一致させます。 標準 C または .Tn POSIX によって明示されたものを除いては、 .Dq Li _t で終る typedef を避けてください。 .Bd -literal /* 構造体名と typedef を一致させます */ typedef struct bar { int level; } BAR; typedef int foo; /* これは foo です */ typedef const long baz; /* これは baz です */ .Ed .Pp 全ての関数はどこかでプロトタイプされます。 .Pp 私的な関数 (すなわち、他のどこでも使用されない関数など) の関数プロトタイプは、 最初のソースモジュールの先頭に置かれます。 単一のソースモジュールにローカルな関数は、 .Ic static で宣言されるべきです。 .Pp カーネルの別の部分から使用される関数は、 関連のあるインクルードファイルの中でプロトタイプされます。 関数プロトタイプは、異なる順序の使用を強制する理由がない場合には、 なるべくアルファベット順の論理的な順序で整列されるべきです。 .Pp 複数のモジュールでローカルに使用される関数は、 .Qq Pa extern.h 等の分離したヘッダファイルの中に置かれます。 .Pp .Dv __P マクロは使用しません。 .Pp ファイルの 50% かそれ以上を巻き込んだ修正の場合は、 一般にコードは .Dq 新しいコード とみなすことができます。 これは既存のコードの慣例を破り、 現在の .Nm ガイドラインを使用するのに十分です。 .Pp カーネルはパラメータの型に関連付けられた名前を持ちます。 -例えば、カーネル内でこのように使用します。 +例えば、カーネル内で次のように使用します: .Bd -literal void function(int fd); .Ed .Pp ユーザランドのアプリケーションに対して見えるヘッダファイルの中では、 可視のプロトタイプは、 型を伴った .Dq 保護された (アンダスコアで開始する) 名前を使用するか、 型だけで名前を使用しないかのどちらかが必要です。 保護された名前の使用がより望ましいです。 -例えば、このように使用します。 +例えば、次のように使用します: .Bd -literal void function(int); .Ed .Pp または .Bd -literal void function(int _fd); .Ed .Pp -プロトタイプは関数名の行揃えを行なうために、タブの後に追加のスペース文字を -置いても構いません。 +プロトタイプは関数名の行揃えを行なうために、次のように +タブの後に追加のスペース文字を置いても構いません: .Bd -literal static char *function(int _arg, const char *_arg2, struct foo *_arg3, struct bar *_arg4); static void usage(void); /* * 全ての主要なルーチンはそれが何をするのかを簡潔に記述した * コメントを持つべきです。 "main" ルーチンの前のコメントは * そのプログラムが何をするのかを記述するべきです。 */ int main(int argc, char *argv[]) { char *ep; long num; int ch; .Ed .Pp 一貫性のために、オプションの解析には .Xr getopt 3 が使用されるべきです。 .Xr getopt 3 呼び出しと .Ic switch 文では、オプションをソートすべきですが、 .Ic switch 文のカスケードの一部の場合は例外です。 .Ic switch 文のカスケード要素は .Li FALLTHROUGH コメントを持つべきです。 数値の引数は精度をチェックされるべきです。 到達できないコードは .Li NOTREACHED コメントを持つべきです。 .Bd -literal while ((ch = getopt(argc, argv, "abNn:")) != -1) switch (ch) { /* switch をインデント */ case 'a': /* case はインデントしない */ aflag = 1; /* FALLTHROUGH */ case 'b': bflag = 1; break; case 'N': Nflag = 1; break; case 'n': num = strtol(optarg, &ep, 10); if (num <= 0 || *ep != '\e0') { warnx("illegal number, -n argument -- %s", optarg); usage(); } break; case '?': default: usage(); /* NOTREACHED */ } argc -= optind; argv += optind; .Ed .Pp 予約語 .Pq Ic if , while , for , return , switch の後にスペースを入れます。 何も伴わないか、ただ 1 つの文を伴う制御文は、ブレース .Ql ( \&{ および .Ql \&} ) を使用しません。 1 つの文が 複数行である文の場合には、これは許されます。 無限ループは .Ic while ではなく .Ic for で行ないます。 .Bd -literal for (p = buf; *p != '\e0'; ++p) ; /* 何もなし */ for (;;) stmt; for (;;) { z = a + really + long + statement + that + needs + two + lines + gets + indented + four + spaces + on + the + second + and + subsequent + lines; } for (;;) { if (cond) stmt; } if (val != NULL) val = realloc(val, newsize); .Ed .Pp .Ic for ループの各部は空のまま残しても構いません。 異常に複雑なルーチンでない限りは、ブロックの中に宣言を置いてはなりません。 .Bd -literal for (; cnt < 15; cnt++) { stmt1; stmt2; } .Ed .Pp インデントは 8 文字のタブです。 第 2 レベルのインデントは 4 文字のスペースです。 長い分を折り返す必要がある場合、オペレータを行末に置きます。 .Bd -literal while (cnt < 20 && this_variable_name_is_too_long && ep != NULL) z = a + really + long + statement + that + needs + two + lines + gets + indented + four + spaces + on + the + second + and + subsequent + lines; .Ed .Pp 空白文字を行末に追加してはいけません。 また、インデントを形成するためには、タブとその後にスペースのみを使用します。 タブが生み出す以上のスペースや、タブの前のスペースは使用しません。 .Pp ブレースの終了と開始は .Ic else と同じ行に置かれます。 必要でないブレースは省いても構いません。 .Bd -literal if (test) stmt; else if (bar) { stmt; stmt; } else stmt; .Ed .Pp 関数名の後はスペースを空けません。 コンマの後にはスペースを持ちます。 .Ql \&( または .Ql \&[ の後ろまたは .Ql \&] または .Ql \&) の前にはスペースを空けません。 .Bd -literal error = function(a1, a2); if (error != 0) exit(error); .Ed .Pp 単項演算子はスペースを要求しませんが、二項演算子は要求します。 優先順位が要求する場合または文が括弧なしでは混乱する場合以外は、 括弧は使用しません。 他人はあなたよりも混乱しやすいかもしれないということを覚えておいてください。 あなたは以下を理解できますか? .Bd -literal a = b->c[0] + ~d == (e || f) || g && h ? i : j >> 1; k = !(l & FLAGS); .Ed .Pp 成功時には 0 で、または .Xr sysexits 3 にあらかじめ定義してある値で exit するべきです。 .Bd -literal exit(EX_OK); /* * "Exit 0 on success." (成功時は 0 で終了) - * の様に明白なコメントは避けてください + * の様に分かりきったコメントは避けてください */ } .Ed .Pp 関数の型は、関数自身に先行する行にあるべきです。 関数の本体の開始のブレースは、単独で 1 行であるべきです。 .Bd -literal static char * function(int a1, int a2, float fl, int a4) { .Ed .Pp 関数の中で変数を宣言する時には、サイズ順に、次にアルファベット順に ソートして宣言します。 1 行に複数の宣言は可能です。 行が溢れる場合は、型の予約語を再度使用します。 .Pp 宣言時に変数を初期化することによってコードを 不明瞭にしない様に注意してください。 この機能は良く考えて使用してください。 初期化に関数呼び出しを使用しないでください。 .Bd -literal struct foo one, *two; double three; int *four, five; char *six, seven, eight, nine, ten, eleven, twelve; four = myfunction(); .Ed .Pp 他の関数の内部で関数を宣言しないでください。 ANSI C によると、このような宣言は、宣言のネスティングによらず、 ファイルスコープになります。 ローカルスコープに見えるものの中にファイルの宣言を隠すことは好ましくなく、 良いコンパイラは苦情を言います。 .Pp キャストと .Ic sizeof 演算子の後にはスペースを続けません。 この規則は .Xr indent 1 が理解しないことに注意してください。 .Ic sizeof は常に括弧をつけて書かれます。 冗長な括弧の規則は .Fn sizeof var の事例には適用されません。 .Pp .Dv NULL は、好まれるヌルポインタ定数です。 コンパイラが型を知っている文脈、例えば代入では、 .Vt ( "type *" ) Ns 0 または .Vt ( "type *" ) Ns Dv NULL の代わりに、 .Dv NULL を使用します。 他の文脈では、特に全ての関数の引数では、 .Vt ( "type *" ) Ns Dv NULL を使用します。 (関数のプロトタイプがスコープ外かもしれない場合に、 キャストはいろいろな引数にとって必須で、その他の引数にとっても必要です。) ポインタは .Dv NULL と比較します。 -例えば、 +例えば、次のように使います: +.Pp .Bd -literal -!(p = f()) +(p = f()) == NULL .Ed .Pp -ではなく、このように使います。 +次のようには使いません: .Bd -literal -(p = f()) == NULL +!(p = f()) .Ed .Pp -真理値ではない場合、テストには +真理値 (ブール値) ではない場合、テストには .Ic \&! を使用しないでください。 -例えば、下記のように使います。 +例えば、次のように使います: .Bd -literal if (*p == '\e0') .Ed .Pp -下記のようには使いません。 +次のようには使いません: .Bd -literal if (!*p) .Ed .Pp .Vt "void *" を返すルーチンでは、 戻り値をどのポインタ型にもキャストしてはなりません。 .Pp .Ic return 文の値は括弧で囲まれているべきです。 .Pp .Xr err 3 または .Xr warn 3 を使用し、勝手に作らないでください。 .Bd -literal if ((four = malloc(sizeof(struct foo))) == NULL) err(1, (char *)NULL); if ((six = (int *)overflow()) == NULL) errx(1, "number overflowed"); return (eight); } .Ed .Pp -古いスタイルの関数宣言はこのようになっています。 +古いスタイルの関数宣言はこのようになっています: .Bd -literal static char * function(a1, a2, fl, a4) int a1, a2; /* int 型も宣言します、デフォルトにしないこと */ float fl; /* double と float の違いに気を付けてください */ int a4; /* 出てきた順に宣言します */ { .Ed .Pp あなたが明確に K&R との互換性を必要とする場合以外は、 ANSI の関数宣言を使用してください。 長いパラメータリストの折り返しには、 4 個の空白による通常のインデントを付けます。 .Pp -可変個数の引数はこのようにします。 +可変個数の引数はこのようにします: .Bd -literal #include void vaf(const char *fmt, ...) { va_list ap; va_start(ap, fmt); STUFF; va_end(ap); /* void 型の関数に return は不要です */ } static void usage() { /* 関数がローカル変数を持たない場合、空行をいれます */ .Ed .Pp .Xr fputs 3 , .Xr puts 3 , .Xr putchar 3 等ではなく、 .Xr printf 3 を使用してください。 これは速くて大抵はきれいで、言うまでもなくつまらないバグを避けます。 .Pp 使用法 (usage) の文はマニュアルページの .Sx SYNOPSIS (書式) の様であるべきです。 使用法の文は、次の構造であるべきです: .Bl -enum .It オペランドの無いオプションが、最初にアルファベット順に、 1 組の大括弧 .Ql ( \&[ と .Ql \&] ) でくくられます。 .It オプションとそのオペランドがこれもアルファベット順に続き、 それぞれのオプションとその引数を 1 組の大括弧でくくります。 .It 必須の引数 (もしあれば) が続き、 コマンドラインで指定されるべき順で一覧されます。 .It 最後に、 すべての任意の引数が指定されるべき順で、 すべて大括弧の中に一覧されます。 .El .Pp 縦棒 .Pq Ql \&| は、 .Dq 二者択一 のオプションまたは引数を分割し、 同時に使用するオプションと引数は、単一の大括弧でくくります。 .Bd -literal -offset 4n "usage: f [-aDde] [-b b_arg] [-m m_arg] req1 req2 [opt1 [opt2]]\en" "usage: f [-a | -b] [-c [-dEe] [-n number]]\en" .Ed .Bd -literal (void)fprintf(stderr, "usage: f [-ab]\en"); exit(EX_USAGE); } .Ed .Pp マニュアルページのオプション記述は、 純粋なアルファベット順であるべきであることに注意してください。 つまり、オプションが引数を取るか否かに関わらないということです。 アルファベット順は、前述の大文字小文字の順序を考慮に入れるべきです。 .Pp 新しい中心的なカーネルのコードは、適度に .Nm ガイドに従うべきです。 サードパーティが保守するモジュールやデバイスドライバのためのガイドラインは より緩やかですが、最低限内部的には彼らの一貫したスタイルであるべきです。 .Pp ソースリポジトリの文体の変更 (空白文字の変更を含む) は困難で、 正当な理由なしには避けるべきです。 リポジトリの中のおおよそ +.Fx KNF .Nm に適合しているコードは、この適合から離れてはなりません。 .Pp 可能な時にはいつでも、 コードはコードチェッカ (例えば、 .Xr lint 1 または -.Nm gcc Fl Wall -) を +.Nm gcc Fl Wall ) +を 通過し、発生する警告は最小限となるべきです。 .Sh 関連項目 .Xr indent 1 , .Xr lint 1 , .Xr err 3 , .Xr sysexits 3 , .Xr warn 3 , .Xr style.Makefile 5 .Sh 歴史 このページは .Bx 4.4 Lite2 リリースの .Pa src/admin/style/style ファイルに大きく基づいていて、 現在の実装と .Fx プロジェクトの要望を反映して、頻繁に更新しています。 diff --git a/ja_JP.eucJP/man/man9/suser.9 b/ja_JP.eucJP/man/man9/suser.9 index e783226bba..0817ea5ee7 100644 --- a/ja_JP.eucJP/man/man9/suser.9 +++ b/ja_JP.eucJP/man/man9/suser.9 @@ -1,128 +1,128 @@ .\" .\" Copyright (c) 1996 Julian R Elischer .\" All rights reserved. .\" .\" This code is derived from software contributed by Kenneth Stailey. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed for the FreeBSD Project .\" by Julian R Elischer .\" 4. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, .\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; .\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED .\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, .\" OR TORT (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/suser.9,v 1.25.2.1 2004/08/24 20:43:10 simon Exp % +.\" %FreeBSD: src/share/man/man9/suser.9,v 1.25.2.2 2005/01/05 08:31:19 krion Exp % .\" $FreeBSD$ .\" .Dd April 2, 2002 .Dt SUSER 9 .Os .Sh 名称 .Nm suser , .Nm suser_cred .Nd 証明がスーパユーザの権限を持っているかどうかのチェック .Sh 書式 .In sys/param.h .In sys/systm.h .Ft int .Fn suser "struct thread *td" .Ft int .Fn suser_cred "struct ucred *cred" "int flag" .Sh 解説 .Fn suser および .Fn suser_cred 関数は、スーパユーザの権限を含む証明が与えられているかどうかをチェックします。 .Pp .Fn suser 関数は最も普通で、特別な事情がその他の方法を要求するのでなければ、 これが使用されるべきです。 .Pp .Fn suser_cred 関数は、チェックされるべき証明がそのスレッド自身のものでない時、 スレッドが存在しない時、スーパユーザの権限が 閉じ込められた root に拡大されるべき時、またはチェックされるべき証明が 実効ユーザというよりは実際のユーザである時に、使用されるべきです。 .Pp デフォルトでは、 .Xr jail 2 システムコールによって閉じ込められている場合には、 プロセスはスーパユーザの権限を持ちません。 しかしながら、これが適切な場合があり、 .Fn suser_cred 関数へ渡す .Fa flag 引数に .Dv SUSER_ALLOWJAIL ビットを設定することによって実現されます。 これが牢屋を弱くしないことを、注意深く再調査することが重要です。 一般的には .Xr jail 2 呼び出しの中の暗黙の .Xr chroot 2 によって行動が保護されている場所のみにおいて、 このような権限を承諾されるべきです。 .Pp デフォルトでは、チェックされる証明は実効ユーザです。 代わりに実際のユーザをチェックする必要がある場合 (例えば、 リソースリミットが適用された場合の決定のとき) があります。 そして、これは .Fn suser_cred 関数への .Fa flag 引数に .Dv SUSER_RUID を渡すことによって行うことが可能です。 .Pp .Fn suser および .Fn suser_cred 関数は、スーパユーザの権限が使用された事を、 指定されたプロセスのプロセス構造体中に記録します。 これらの関数の機能の一部は、スーパユーザの権限が使用されたかどうかを 通知することにありますので、 他のパーミッションの可能性が使い尽くされた後でのみ、 これら関数を呼び出すべきです。 .Sh 戻り値 .Fn suser および .Fn suser_cred 関数は、そのユーザがスーパユーザの権限を持っている場合には 0 を返し、 そうでない場合には .Er EPERM を返します。 これは、TRUE の応答がスーパユーザ権限を持つことを示すような他の実装とは .Em 逆の論理 になっています。 TRUE の応答の .Fn suser はスーパユーザの権限を示します。 .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 c4fafa418a..661a7ccf25 100644 --- a/ja_JP.eucJP/man/man9/sx.9 +++ b/ja_JP.eucJP/man/man9/sx.9 @@ -1,216 +1,227 @@ .\" .\" Copyright (C) 2001 Jason Evans . All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice(s), this list of conditions and the following disclaimer as .\" the first lines of this file unmodified other than the possible .\" addition of one or more copyright notices. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice(s), this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY .\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE .\" DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY .\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES .\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR .\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER .\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (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/sx.9,v 1.29 2004/07/11 16:08:25 darrenr Exp % +.\" %FreeBSD: src/share/man/man9/sx.9,v 1.29.2.2 2005/01/17 11:34:57 keramida Exp % .\" .\" $FreeBSD$ .Dd August 14, 2001 .Dt SX 9 .Os .Sh 名称 .Nm sx , .Nm sx_init , .Nm sx_destroy , .Nm sx_slock , .Nm sx_xlock , .Nm sx_try_slock , .Nm sx_try_xlock , .Nm sx_sunlock , .Nm sx_xunlock , .Nm sx_try_upgrade , .Nm sx_downgrade , .Nm sx_assert , .Nm sx_unlock , .Nm SX_SYSINIT .Nd カーネルの共有/排他ロック .Sh 書式 .In sys/param.h .In sys/lock.h .In sys/sx.h .Ft void .Fn sx_init "struct sx *sx" "const char *description" .Ft void .Fn sx_destroy "struct sx *sx" .Ft void .Fn sx_slock "struct sx *sx" .Ft void .Fn sx_xlock "struct sx *sx" .Ft int .Fn sx_try_slock "struct sx *sx" .Ft int .Fn sx_try_xlock "struct sx *sx" .Ft void .Fn sx_sunlock "struct sx *sx" .Ft void .Fn sx_xunlock "struct sx *sx" .Ft int .Fn sx_try_upgrade "struct sx *sx" .Ft void .Fn sx_downgrade "struct sx *sx" .Ft void .Fn sx_assert "struct sx *sx" "int what" .\" -.Ss sx ユーティリティマクロ +.Ss Nm Ss ユーティリティマクロ .Fn sx_unlock "struct sx *sx" .Fn SX_SYSINIT "name" "struct sx *sx" "const char *description" .\" .Ss カーネルオプション .Cd "options INVARIANTS" .Cd "options INVARIANT_SUPPORT" .Sh 解説 共有/排他ロックは書き込まれるよりも、読み込まれる方が非常に多いデータを 保護するために使用されます。 mutex は本質的に共有/排他ロックよりも能率的なので、共有/排他ロックは 用心深く使用されるべきです。 .Pp 共有/排他ロックは .Fn sx_init を使用して作成されます。 ここで .Fa sx は .Vt struct sx のための領域へのポインタで、 .Fa description はその共有/排他ロックを説明するヌルで終端された文字列へのポインタです。 共有/排他ロックは .Fn sx_destroy を使用して破壊されます。 スレッドは .Fn sx_slock または .Fn sx_try_slock および .Fn sx_sunlock または .Fn sx_unlock の呼び出しによって共有ロックを獲得および解放します。 スレッドは .Fn sx_xlock または .Fn sx_try_xlock および .Fn sx_xunlock または .Fn sx_unlock の呼び出しによって排他ロックを獲得および解放します。 スレッドは .Fn sx_try_upgrade の呼び出しによって、現在保有している共有ロックから排他ロックへの アップグレードを試みることが可能です。 排他ロックを持っているスレッドは、 .Fn sx_downgrade の呼び出しによってその排他ロックから共有ロックへのダウングレードが可能です。 .Pp .Fn sx_try_slock および .Fn sx_try_xlock は共有/排他ロックがすぐに獲得できなかった場合には 0 を返し、 そうでない場合には共有/排他ロックが獲得され 0 ではない値が返されます。 .Pp .Fn sx_try_upgrade は共有ロックをすぐに排他ロックにアップグレードできない場合には 0 を返し、 そうでない場合には排他ロックが獲得され 0 ではない値が返されます。 .Pp .Cd "options INVARIANTS" および .Cd "options INVARIANT_SUPPORT" 付きでコンパイルされたときには、 .Fn sx_assert 関数は .Fa what に指定されたアサートのために .Fa 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_sunlock および .Fn sx_xunlock 各々の関数へのフロントエンドマクロとして .Fn sx_unlock が提供されています。 ロックがどの状態になっているかを知っているアルゴリズムは、 小さなパフォーマンスの利益のために各々の 2 つの特定の関数を使用すべきです。 .Pp .Fn SX_SYSINIT マクロはシステムスタートアップ時に与えられた .Fa sx ロックを初期化するために .Fn sx_sysinit の呼び出しを生成します。 引数は .Fn sx_init と同様ですが、 そのロックと sysinit ルーチンに関連付けられた構造体に関連した唯一の 変数名を生成する際に使用される追加の引数として .Fa name を持ちます。 .Pp スレッドは同じロック上に共有ロックと排他ロックを同時には持つことができません。 同時に持つことはデッドロックを引き起こすことになるためです。 .Sh コンテキスト スリープしている間に .Nm ロック上に共有ロックまたは排他ロックを所有することは許可されます。 +その結果、ミューテックスを保持している間、 +.Nm +ロックは獲得されないかもしれません。 +そうでなければ、ミューテックスを獲得した後に同じ +.Nm +ロック上で別のスレッドがブロックされる間に、 +一つのスレッドが +.Nm +ロックを保持している間にスリープするなら、 +事実上、2 番目のスレッドは最後には許可されていないミューテックスを +保持している間にスリープすることになるでしょう。 .Sh 関連項目 .Xr condvar 9 , .Xr mtx_pool 9 , .Xr mutex 9 , .Xr panic 9 , .Xr sema 9 .Sh バグ 現在、ロックが保持されていないことをアサートする方法がありません。 .Dv WITNESS ではない場合には、このスレッドが共有ロックを保持していないことを アサートすることは不可能です。 .Dv WITNESS ではない場合には、 .Dv SX_LOCKED および .Dv SX_SLOCKED のアサートは、あるスレッドが共有ロックを保持していることを 単にチェックするに過ぎません。 これらは、現在のスレッドが共有ロックを保持していることを保証しません。 diff --git a/ja_JP.eucJP/man/man9/timeout.9 b/ja_JP.eucJP/man/man9/timeout.9 index aff90d0f40..46c29a1b1a 100644 --- a/ja_JP.eucJP/man/man9/timeout.9 +++ b/ja_JP.eucJP/man/man9/timeout.9 @@ -1,256 +1,510 @@ .\" $NetBSD: timeout.9,v 1.2 1996/06/23 22:32:34 pk Exp $ .\" .\" Copyright (c) 1996 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation .\" by Paul Kranenburg. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the NetBSD .\" Foundation, Inc. and its contributors. .\" 4. Neither the name of The NetBSD Foundation nor the names of its .\" contributors may be used to endorse or promote products derived .\" from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE .\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN .\" CONTRACT, STRICT LIABILITY, OR TORT (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/timeout.9,v 1.23 2004/06/16 08:33:57 ru Exp % +.\" %FreeBSD: src/share/man/man9/timeout.9,v 1.23.2.2 2005/03/21 23:01:30 iedowse Exp % .\" $FreeBSD$ .\" -.Dd September 10, 1996 +.Dd February 6, 2005 .Dt TIMEOUT 9 .Os .Sh 名称 .Nm timeout , .Nm untimeout , .Nm callout_handle_init , .Nm callout_init , .Nm callout_stop , .Nm callout_drain , -.Nm callout_reset +.Nm callout_reset , +.Nm callout_pending , +.Nm callout_active , +.Nm callout_deactivate .Nd 明示された時間長の後の関数の実行 .Sh 書式 .In sys/types.h .In sys/systm.h .Pp .Bd -literal typedef void timeout_t (void *); .Ed .Ft struct callout_handle .Fn timeout "timeout_t *func" "void *arg" "int ticks" .Ft void .Fn callout_handle_init "struct callout_handle *handle" .Pp .Bd -literal struct callout_handle handle = CALLOUT_HANDLE_INITIALIZER(&handle) .Ed .Ft void .Fn untimeout "timeout_t *func" "void *arg" "struct callout_handle handle" .Ft void .Fn callout_init "struct callout *c" "int mpsafe" .Ft int .Fn callout_stop "struct callout *c" .Ft int .Fn callout_drain "struct callout *c" .Ft void .Fn callout_reset "struct callout *c" "int ticks" "timeout_t *func" "void *arg" +.Ft int +.Fn callout_pending "struct callout *c" +.Ft int +.Fn callout_active "struct callout *c" +.Fn callout_deactivate "struct callout *c" .Sh 解説 関数 .Fn timeout は .Fa ticks Ns No /hz 秒後に実行されるための引数 .Fa func によって与えられる関数を呼び出すためのスケジュールを行います。 正ではない値の .Fa ticks は暗黙のうちに値 .Sq 1 に変換されます。 .Fa func は .Fa void * の引数を取る関数へのポインタであるべきです。 実行時には、 .Fa func は .Fa arg をその唯一の引数として受け取ります。 .Fn timeout からの戻り値は、スケジュールされた timeout を取り消す要求のための .Fn untimeout 関数との接続に使用されることが可能な .Ft struct callout_handle です。 .Fn timeout の呼び出しは古いスタイルで、新しいコードは .Fn callout_* 関数を使用するべきです。 .Pp 関数 .Fn callout_handle_init はハンドルを初期化するために使用し、untimeout と共に 使用されても副作用無しに戻るようにします。 .Pp コールアウトハンドルに .Fn CALLOUT_HANDLE_INITIALIZER の値を割当てることは、 .Fn callout_handle_init と同様の機能を実行し、静的な宣言またはグローバルなコールアウトハンドルで 使用するために提供されています。 .Pp 関数 .Fn untimeout は、そのハンドルの正当性を確認するために .Fa func および .Fa arg 引数を使用して、 .Fa handle に関連付けられた timeout を取り消します。 そのハンドルが引数 .Fa arg を取る関数 .Fa func を持つ timeout と一致しない場合には、何も行いません。 .Fa handle は .Fn untimeout に渡される前に以前の .Fn timeout , .Fn callout_handle_init の呼び出し、または .Fn CALLOUT_HANDLE_INITIALIZER "&handle" の値の割当てによって初期化されなければなりません。 以前に初期化されたハンドルを伴なわない untimeout の呼び出しの振る舞いは 未定義です。 .Fn untimeout の呼び出しは古いスタイルで、新しいコードは .Fn callout_* 関数を使用するべきです。 .Pp ハンドルがシステムによって再利用されるので、 両方の呼び出しが同じ関数のポインタおよび引数を使用し、2 番目の呼び出しの前に 最初の timeout が終了するか取り消された場合には、1 つの .Fn timeout の実行からのハンドルが別の .Fn timeout の実行のハンドルが一致することができることが (意外ではあるが) 可能です。 timeout の設備は .Fn timeout および .Fn untimeout のための O(1) 実行時間を提供します。 timeout (訳注: および untimeout) は -.Fn splsoftclock -の状態で +.Va Giant +ロックが保持されている状態で、 .Fn softclock から実行されます。 従って、再入から保護されます。 .Pp 関数 .Fn callout_init , .Fn callout_stop , .Fn callout_drain および .Fn callout_reset は固有のコールアウト構造を割当てることを希望するクライアントのための、 低レベルのルーチンです。 .Pp 関数 .Fn callout_init はコールアウトを初期化し、そのためそのコールアウトは何の副作用もなしに .Fn callout_stop , .Fn callout_drain または .Fn callout_reset に渡されることができます。 .Fa mpsafe 引数が 0 の場合には、callout 構造体は .Dq マルチプロセッサセーフ であるとはみなされません。 -すなわち、ジャイアントロックが callout 関数の呼出し前に -獲得され、callout 関数が戻るときに解放されるようにします。 +すなわち、ジャイアントロックがコールアウト関数の呼出し前に +獲得され、コールアウト関数が戻るときに解放されるようにします。 .Pp 関数 .Fn callout_stop は、そのコールアウトが現在保留中の場合には、コールアウトを取り消します。 コールアウトが保留中の場合には、 .Fn callout_stop は 0 でない値を返します。 -コールアウトが既に実行されたか現在実行中の場合には、0 が返されます。 +コールアウトが設定されていないか既に実行されているか現在実行中の場合には、 +0 が返されます。 +この関数が呼び出されるとき、コールアウトが +.Va Giant +ミューテックス (mutex) によって保護されている場合には、 +.Va Giant +を保持していなければなりません。 .Pp 関数 .Fn callout_drain は、コールアウトが既に進行中の場合にはその完了をウェイトすることを除いて、 .Fn callout_stop と同一です。 この関数は、そのコールアウトがブロックするかもしれないあらゆるロックを 保持している間は、決して呼び出されてはなりません。 さもないと結果としてデッドロックします。 +コールアウトサブシステムが既にこのコールアウトを処理し始めたなら +コールアウト関数が +.Fn callout_drain +の実行の間に呼び出されるかもしれないことに注意してください。 +しかしながら、コールアウトサブシステムは、 +.Fn callout_drain +が返る前にコールアウトが完全に停止されることを保証します。 .Pp 関数 .Fn callout_reset は最初にそのコールアウトを廃止するために .Fn callout_stop -を呼び出し、それから新しいコールアウトを +と同様のことを実行し、それから新しいコールアウトを .Fn timeout と同じ流儀で確立します。 +この関数が呼び出されるとき、コールアウトが +.Va Giant +ミューテックスによって保護される場合には、 +.Va Giant +は保持されなければなりません。 +.Pp +マクロ +.Fn callout_pending , +.Fn callout_active +および +.Fn callout_deactivate +はコールアウトの現在の状態へのアクセスを提供します。 +これらのマクロを慎重に使用すれば、非同期タイマ機構に +特有の多くの競合条件を避けることができます。 +さらなる詳細については下記の +.Sx "競合条件を回避する" +を参照してださい。 +.Fn callout_pending +マクロは、コールアウトが +.Em 保留中 +であるかどうかチェックします。 +コールアウトはタイムアウトが設定されているが時間がまだ到着していない時、 +.Em 保留中 +であると見なされます。 +いったんタイムアウト時間が来て、コールアウトサブシステムがこのコールアウト +を処理し始めれば、 +.Fn callout_pending +はたとえコールアウト関数が実行を終了して (または、始めて) いなくても +.Dv FALSE +を返すことに注意してください。 +.\" even though = 〜にもかかわらず、たとえ〜としても、たとえ〜でも +.Fn callout_active +マクロはコールアウトが +.Em アクティブ +としてマークされているかどうかチェックし、 +.Fn callout_deactivate +マクロはコールアウトの +.Em アクティブ +フラグをクリアします。 +コールアウトサブシステムは、タイムアウトが設定されているコールアウトを +.Em アクティブ +に設定し、 +.Fn callout_stop +と +.Fn callout_drain +では +.Em アクティブ +をクリアしますが、 +コールアウト関数の実行を通して +通常どおりコールアウトの期限が切れた場合には、クリア +.Em しません +。 +.Ss "競合条件を回避する" +コールアウトサブシステムはそれ自体のタイマコンテキストから +コールアウト関数を呼び出します。 +ある種の同期なしでは、コールアウト関数は他のスレッドからコールアウトの +停止やリセットを試みながら並行して起動される可能性があります。 +特に、コールアウト関数は典型的には最初の動作として +ミューテックスを獲得するので、 +コールアウト関数は既に呼び出されたとしても、 +別のスレッドがコールアウトをリセットするかまたは停止しようとするまで +そのミューテックスを待ってブロックされてしまいます。 +.Pp +コールアウトサブシステムはこれらの同期関係に対処するために +多くのメカニズムを提供します。 +.Bl -enum -offset indent +.It +.Fa mpsafe +を +.Dv FALSE +に設定して +.Fn callout_init +を使用することで指定される) +.Va Giant +ミューテックスによってコールアウトが保護される場合は、 +このミューテックスは競合条件を避けるために使用できます。 +.Fn callout_stop +か +.Fn callout_reset +を呼び出す前に、 +.Va Giant +ミューテックスは呼び出し側によって獲得されなければなりませんが、 +コールアウトが想定したとおりに正しく停止されるかまたはリセットされる +ことが保証されます。 +.\" as expected = 案の定、予想どおり(に)、想定したとおり +コールアウトかその関連のミューテックスを破壊する前に +.Fn callout_drain +を使用する必要がまだあることに注意してください。 +.It +.Fn callout_stop +からのリターン値は、コールアウトが削除されたかどうかを示します。 +コールアウトが設定され、 +コールアウト関数がまだ実行されていないことがわかっている場合は、 +.Dv FALSE +の値はコールアウト関数がまさに呼び出されようとしていることを示します。 +.\" about to = 《be 〜》まさに〜しようとしている +例えば: +.Bd -literal -offset indent +if (sc->sc_flags & SCFLG_CALLOUT_RUNNING) { + if (callout_stop(&sc->sc_callout)) { + sc->sc_flags &= ~SCFLG_CALLOUT_RUNNING; + /* successfully stopped */ + } else { + /* + * callout has expired and callout + * function is about to be executed + */ + } +} +.Ed +.Pp +.Fn callout_reset +がコールアウトを停止したかどうか決定するための +同等なメカニズムがなにもないことに注意してください。 +.It +.Fn callout_pending , +.Fn callout_active +および +.Fn callout_deactivate +マクロは競合条件を回避するために連携して使用できます。 +.\" work around = 問題に取り掛かる、対処する、 +コールアウトのタイムアウトが設定されるとき、コールアウトサブシステムは +ともに +.Em アクティブ +と +.Em 保留中 +の両方でコールアウトをマークします。 +タイムアウト時間に達するとき、コールアウトサブシステムは +.Em 保留中 +のフラグを最初にクリアすることによってコールアウトを処理し始めます。 +次に、 +.Em アクティブ +フラグを変えないでコールアウト関数を呼び出して、 +コールアウト関数が戻った後でさえ +.Em アクティブ +フラグをクリアしません。 +ここで説明されたメカニズムでは、 +コールアウト関数自体が +.Fn callout_deactivate +マクロを使用して +.Em アクティブ +フラグをクリアすることを要求します。 +.Fn callout_stop +と +.Fn callout_drain +関数は戻る前に、 +常に +.Em アクティブ +と +.Em 保留中 +フラグの両方をクリアします。 +.Pp +.Fn callout_pending +が +.Dv TRUE +を返す場合、 +コールアウト関数は、最初に +.Em 保留中 +フラグをチェックして動作なしで戻るべきです。 +これは、コールアウトがコールアウト関数が呼び出される直前に +.Fn callout_reset +を使用して再スケジュールされたことを示します。 +.Fn callout_active +が +.Dv FALSE +を返す場合、コールアウト関数は同様に動作なしで返るべきです。 +これは、コールアウトが停止されたことを示します。 +最後に、コールアウト関数は、 +.Em アクティブ +フラグをクリアするために +.Fn callout_deactivate +を呼び出すべきです。 +例えば: +.Bd -literal -offset indent +mtx_lock(&sc->sc_mtx); +if (callout_pending(&sc->sc_callout)) { + /* callout was reset */ + mtx_unlock(&sc->sc_mtx); + return; +} +if (!callout_active(&sc->sc_callout)) { + /* callout was stopped */ + mtx_unlock(&sc->sc_mtx); + return; +} +callout_deactivate(&sc->sc_callout); +/* rest of callout function */ +.Ed +.Pp +上記で使用したミューテックスのような適切な同期をともに使うことにより、 +このアプローチは +.Fn callout_stop +と +.Fn callout_reset +関数がいつも競合なしで使用できます。 +.\" together with = 〜とともに、〜に加えて +例えば: +.Bd -literal -offset indent +mtx_lock(&sc->sc_mtx); +callout_stop(&sc->sc_callout); +/* The callout is effectively stopped now. */ +.Ed +.Pp +コールアウトがまだ保留中である場合、これらの関数は通常どおり動作しますが、 +コールアウトの処理が既に始まっている場合、 +コールアウト関数におけるテストにおいて、これらの関数はさらなる +動作なしで戻ることになります。 +コールアウト関数と他のコードの間の同期は、コールアウト関数が +.Fn callout_deactivate +呼び出しを終えるまでコールアウトの停止やリセットが行われないことを +確実にします。 +.Pp +さらに、上記のテクニックは、 +.Em アクティブ +フラグが実際にコールアウトが有効か無効かを反映することを確実にします。 +.Fn callout_active +が FALSE を返した場合、たとえコールアウトサブシステムが +実際にコールアウト関数を開始しようとしていたとしても、 +コールアウト関数は動作なしに終了してしまうので、 +実質的に無効化されています。 +.\" since even if = たとえ〜でも〜なので、 +.\" even if = たとえ〜でも +.El +.Pp +最後に、コールアウトを停止しようとしているときに +考慮しなければならない最後の競合条件が 1 つあります。 +この場合、既に破壊されるかまたは再利用されたデータオブジェクトに +アクセスする必要があるかもしれないので、 +コールアウト関数自体に +停止されたコールアウトを検出するさせるために安全でないかもしれません。 +コールアウトが完全に終了したことを保証するためには、 +.Fn callout_drain +呼び出しを使用しなければなりません。 .Sh 戻り値 .Fn timeout 関数は .Fn untimeout に渡すことが可能な .Ft struct callout_handle を返します。 .Fn callout_stop および .Fn callout_drain -関数は呼び出された時にコールアウトが未だ保留の場合には 0 以外を、 +関数は呼び出された時にコールアウトが未だ保留中の場合には 0 以外を、 そうでない場合には 0 を返します。 .Sh 歴史 現在の timeout および untimeout ルーチンは .An Adam M. Costello および .An George Varghese の .%T "Redesigning the BSD Callout and Timer Facilities" と名付けられた技術レポートで発表された作業に基づいています。 また、 .Fx への導入のために .An Justin T. Gibbs によって少し修正されています。 この実装で使用されているデータ構造の元の作業は、 .An G. Varghese および .An A. Lauck によって .%B "Proceedings of the 11th ACM Annual Symposium on Operating Systems Principles" の .%T "Hashed and Hierarchical Timing Wheels: Data Structures for the Efficient Implementation of a Timer Facility" で発表されました。 現在の実装は、長らく存在していた、挿入および削除の O(n) 実行時間を 提供するが untimeout 操作のためのハンドルを生成または要求しなかった .Bx リンクリストのコールアウト機構に、取って代りました。