Catch up with 5.4-Release.
Submitted by: Nobuyuki Koganemaru <n-kogane at syd odn ne jp> Reviewed by: kano at na rim or jp Yoshihiko Sarumaru <mistral at imasy or jp>
This commit is contained in:
parent
89213d0b83
commit
b3aee9efe3
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=25074
33 changed files with 657 additions and 247 deletions
ja_JP.eucJP/man/man9
BUF_LOCKINIT.9BUS_CONFIG_INTR.9BUS_PRINT_CHILD.9BUS_SETUP_INTR.9DECLARE_MODULE.9DEVICE_ATTACH.9DEVICE_DETACH.9DEVICE_PROBE.9DEVICE_SHUTDOWN.9MODULE_DEPEND.9MakefileSYSCALL_MODULE.9VFS.9VFS_CHECKEXP.9VFS_FHTOVP.9VFS_MOUNT.9VFS_SET.9VFS_START.9VFS_STATFS.9VFS_SYNC.9VFS_UNMOUNT.9VFS_VGET.9bus_alloc_resource.9device_find_child.9make_dev.9namei.9physio.9printf.9sleep.9style.9suser.9sx.9timeout.9
|
@ -24,15 +24,15 @@
|
|||
.\" 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
|
||||
|
@ -60,4 +60,4 @@
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Chad David Aq davidc@acns.ab.ca
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -23,10 +23,10 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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
|
||||
.\"
|
||||
|
@ -101,4 +101,4 @@
|
|||
このマニュアルページは
|
||||
.An Marcel Moolenaar
|
||||
.Aq marcel@xcllnt.net
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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 名称
|
||||
|
@ -41,10 +41,12 @@
|
|||
.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
|
||||
を見てください。
|
||||
|
@ -56,4 +58,4 @@ BUS_PRINT_CHILD
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Doug Rabson
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -22,10 +22,10 @@
|
|||
.\" 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 名称
|
||||
|
@ -46,9 +46,8 @@
|
|||
.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
|
||||
メソッドによって以前に割り当てられた割り込みに対し、
|
||||
割り込みハンドラを生成してアタッチします。
|
||||
|
@ -86,7 +85,7 @@
|
|||
.Fa cookiep
|
||||
引数は、
|
||||
割り込みの確立が成功した場合に、
|
||||
.Nm
|
||||
.Fn BUS_SETUP_INTR
|
||||
が書込む親のバスが使用するクッキーである
|
||||
.Vt "void *"
|
||||
型へのポインタです。
|
||||
|
@ -118,7 +117,11 @@ nexus
|
|||
このマニュアルページは、
|
||||
.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
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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 名称
|
||||
|
@ -53,54 +53,49 @@
|
|||
および
|
||||
.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 ,
|
||||
|
@ -113,6 +108,7 @@
|
|||
.An -nosplit
|
||||
このマニュアルページは
|
||||
.An Andrew Reiter Aq arr@watson.org
|
||||
が書いた KLD Facility Programming Tutorial に触発されて、
|
||||
によって書かれた
|
||||
KLD Facility Programming Tutorial に触発されて、
|
||||
.An Alexander Langer Aq alex@FreeBSD.org
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/DEVICE_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 名称
|
||||
|
@ -41,11 +41,14 @@
|
|||
.Ft int
|
||||
.Fn DEVICE_ATTACH "device_t dev"
|
||||
.Sh 解説
|
||||
.Fn DEVICE_PROBE
|
||||
メソッドが既に呼び出され、デバイスが存在していると示された後に
|
||||
デバイスをシステムにアタッチします。
|
||||
プローブメソッドは既に呼び出されているでしょうし、
|
||||
デバイスが存在していると示されているでしょう。
|
||||
このルーチンはハードウェアの初期化と
|
||||
その他の (devfs エントリのような) システムリソース
|
||||
.Fn DEVICE_ATTACH
|
||||
メソッドはハードウェアの初期化と
|
||||
その他の
|
||||
.Pf ( Xr devfs 5
|
||||
エントリのような) システムリソース
|
||||
の割り当てを行なうべきです。
|
||||
.Pp
|
||||
バスを実装するデバイスは、そのバスにアタッチされたデバイスの存在のプローブ、
|
||||
|
@ -56,6 +59,7 @@
|
|||
.Sh 戻り値
|
||||
成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。
|
||||
.Sh 関連項目
|
||||
.Xr devfs 5 ,
|
||||
.Xr device 9 ,
|
||||
.Xr DEVICE_DETACH 9 ,
|
||||
.Xr DEVICE_IDENTIFY 9 ,
|
||||
|
@ -63,5 +67,5 @@
|
|||
.Xr DEVICE_SHUTDOWN 9
|
||||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Doug Rabson
|
||||
が書きました。
|
||||
.An Doug Rabson Aq dfr@FreeBSD.org
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/DEVICE_DETACH.9,v 1.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
|
||||
|
@ -43,7 +43,9 @@
|
|||
.Sh 解説
|
||||
デバイスをデタッチします。
|
||||
ユーザがドライバソフトウェアを置き換えた場合、またはデバイスがシステムから
|
||||
物理的に切り離されようとしている場合 (たとえば pccard デバイス) に、
|
||||
物理的に切り離されようとしている場合 (たとえば
|
||||
.Xr pccard 4
|
||||
デバイス) に、
|
||||
呼び出されることができます。
|
||||
.Pp
|
||||
このメソッドは
|
||||
|
@ -54,6 +56,7 @@
|
|||
.Sh 戻り値
|
||||
成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。
|
||||
.Sh 関連項目
|
||||
.Xr pccard 4 ,
|
||||
.Xr device 9 ,
|
||||
.Xr DEVICE_ATTACH 9 ,
|
||||
.Xr DEVICE_IDENTIFY 9 ,
|
||||
|
@ -62,4 +65,4 @@
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Doug Rabson
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,11 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/DEVICE_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 名称
|
||||
|
@ -42,7 +41,8 @@
|
|||
.Ft int
|
||||
.Fn DEVICE_PROBE "device_t dev"
|
||||
.Sh 解説
|
||||
このデバイスメソッドはデバイスがあるかどうかを知るためにプローブするべきです。
|
||||
.Fn DEVICE_PROBE
|
||||
メソッドはデバイスがあるかどうかを知るためにプローブするべきです。
|
||||
デバイスが存在すれば 0 を、デバイスが見つからなければ
|
||||
.Er ENXIO
|
||||
を返すべきです。
|
||||
|
@ -88,4 +88,4 @@
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Doug Rabson
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/DEVICE_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 名称
|
||||
|
@ -41,7 +41,8 @@
|
|||
.Ft int
|
||||
.Fn DEVICE_SHUTDOWN "device_t dev"
|
||||
.Sh 解説
|
||||
システムシャットダウンの間に呼び出され、
|
||||
.Fn DEVICE_SHUTDOWN
|
||||
メソッドは、システムシャットダウンの間に呼び出され、
|
||||
ドライバがハードウェアをコンピュータがリブートしても構わない状態にすることを
|
||||
可能にします。
|
||||
.Sh 戻り値
|
||||
|
@ -55,4 +56,4 @@
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Doug Rabson
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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 名称
|
||||
|
@ -46,9 +46,17 @@
|
|||
でそのバージョンを既に登録している
|
||||
.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);
|
||||
|
@ -61,4 +69,4 @@ MODULE_DEPEND(foo, bar, 1, 3, 4);
|
|||
このマニュアルページは
|
||||
.An -nosplit
|
||||
.An Alexander Langer Aq alex@FreeBSD.org
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -194,6 +194,7 @@ 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
|
||||
|
@ -208,6 +209,7 @@ 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
|
||||
|
@ -222,10 +224,15 @@ 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
|
||||
|
@ -265,20 +272,25 @@ 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
|
||||
|
||||
|
@ -300,6 +312,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
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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 名称
|
||||
|
@ -50,27 +50,30 @@
|
|||
.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
|
||||
|
@ -82,4 +85,4 @@ syscall
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Alexander Langer Aq alex@FreeBSD.org
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/VFS.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
|
||||
|
@ -50,7 +50,6 @@
|
|||
.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 ,
|
||||
|
@ -63,4 +62,4 @@
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Doug Rabson
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -22,10 +22,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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 名称
|
||||
|
@ -37,7 +37,8 @@
|
|||
.Ft int
|
||||
.Fn VFS_CHECKEXP "struct mount *mp" "struct sockaddr *nam" "int *exflagsp" "struct ucred **credanonp"
|
||||
.Sh 解説
|
||||
これは、クライアントにマウントポイントがエクスポート
|
||||
.Fn VFS_CHECKEXP
|
||||
マクロは、クライアントにマウントポイントがエクスポート
|
||||
されているかどうかをチェックするために、NFS サーバが使用します。
|
||||
.Pp
|
||||
引数は以下の通りです。
|
||||
|
@ -52,7 +53,8 @@
|
|||
このクライアントに対する、匿名の証明の戻り値。
|
||||
.El
|
||||
.Pp
|
||||
ファイルシステムのマウント構造に対して呼び出して、
|
||||
.Fn VFS_CHECKEXP
|
||||
マクロは、ファイルシステムのマウント構造に対して呼び出して、
|
||||
.Fa nam
|
||||
にアドレスが含まれるクライアントに対してそのファイルシステムが
|
||||
エクスポートされているかどうかを決定できます。
|
||||
|
@ -71,8 +73,8 @@
|
|||
.Xr vfs_export_lookup 9
|
||||
を呼び出すべきです。
|
||||
.Sh 戻り値
|
||||
そのクライアントに対するエクスポートフラグと (
|
||||
.Xr vfs_export_lookup 9
|
||||
そのクライアントに対するエクスポートフラグと
|
||||
.Pf ( Xr vfs_export_lookup 9
|
||||
から返される) 匿名の証明が
|
||||
.Fa *exflagsp
|
||||
と
|
||||
|
@ -86,4 +88,4 @@
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Alfred Perlstein
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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 名称
|
||||
|
@ -42,7 +42,8 @@
|
|||
.Ft int
|
||||
.Fn VFS_FHTOVP "struct mount *mp" "struct fid *fhp" "struct vnode **vpp"
|
||||
.Sh 解説
|
||||
これは NFS ファイルハンドルから vnode へ
|
||||
.Fn VFS_FHTOVP
|
||||
マクロは NFS ファイルハンドルから vnode へ
|
||||
変換するために NFS サーバによって使用されます。
|
||||
.Pp
|
||||
引数は以下の通りです。
|
||||
|
@ -63,7 +64,9 @@
|
|||
例えば、UFS ファイルシステムは、ファイルハンドルの中に inode 番号
|
||||
および inode 世代カウンタを格納します。
|
||||
.Pp
|
||||
一般的にはこの関数への呼び出し前は、そのファイルがクライアントにとって
|
||||
一般的には
|
||||
.Fn VFS_FHTOVP
|
||||
への呼び出し前は、そのファイルがクライアントにとって
|
||||
アクセス可能であるかどうかを検査するために
|
||||
.Xr VFS_CHECKEXP 9
|
||||
呼び出しが行われます。
|
||||
|
@ -79,4 +82,4 @@
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Doug Rabson
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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 名称
|
||||
|
@ -40,30 +40,22 @@
|
|||
.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
|
||||
に
|
||||
|
@ -90,4 +82,4 @@
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Doug Rabson
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
.\" DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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
|
||||
|
@ -47,7 +47,7 @@
|
|||
はローダブルモジュールのために与えられた
|
||||
.Fa vfsops , fsname
|
||||
および
|
||||
.Fa flags ,
|
||||
.Fa flags
|
||||
で
|
||||
.Vt vfsconf
|
||||
構造体を作成し、イベントハンドラとして
|
||||
|
@ -57,7 +57,7 @@
|
|||
の呼び出しによって宣言します。
|
||||
.Pp
|
||||
.Fa flags
|
||||
引数のために利用可能な値は以下に記述されています。
|
||||
引数のために利用可能な値は以下のとおりです:
|
||||
.Bl -hang -width ".Dv VFCF_SYNTHETIC"
|
||||
.It Dv VFCF_STATIC
|
||||
ファイルシステムはカーネル内で静的に利用可能であるべきです。
|
||||
|
@ -103,4 +103,4 @@ VFS_SET(myfs_vfsops, skelfs, 0);
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Chad David Aq davidc@acns.ab.ca
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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 名称
|
||||
|
@ -42,15 +42,19 @@
|
|||
.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
|
||||
|
@ -60,4 +64,4 @@
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Doug Rabson
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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 名称
|
||||
|
@ -42,7 +42,8 @@
|
|||
.Ft int
|
||||
.Fn VFS_STATFS "struct mount *mp" "struct statfs *sbp" "struct thread *td"
|
||||
.Sh 解説
|
||||
この呼び出しは、ファイルシステムについての様々な情報を返します。
|
||||
.Fn VFS_STATFS
|
||||
マクロは、ファイルシステムについての様々な情報を返します。
|
||||
この情報には、推奨されている入出力サイズ、空き領域、空き inode 等があります。
|
||||
.Pp
|
||||
引数は以下の通りです。
|
||||
|
@ -50,14 +51,71 @@
|
|||
.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
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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 名称
|
||||
|
@ -42,10 +42,11 @@
|
|||
.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
|
||||
|
@ -65,7 +66,11 @@
|
|||
呼び出しているスレッド。
|
||||
.El
|
||||
.Pp
|
||||
これは、通常、ファイルシステム中の全ての vnode のために
|
||||
.Fn VFS_SYNC
|
||||
マクロは、ファイルシステムの
|
||||
.Va vfs_sync
|
||||
メソッドを呼び出します。
|
||||
それは、通常、ファイルシステム中の全ての vnode のために
|
||||
.Xr VOP_FSYNC 9
|
||||
を呼び出します。
|
||||
.Sh 関連項目
|
||||
|
@ -77,4 +82,4 @@
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Doug Rabson
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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 名称
|
||||
|
@ -42,20 +42,26 @@
|
|||
.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 ,
|
||||
|
@ -63,4 +69,4 @@
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Doug Rabson
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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 名称
|
||||
|
@ -42,7 +42,8 @@
|
|||
.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"
|
||||
|
@ -74,4 +75,4 @@ NFS
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Doug Rabson
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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
|
||||
|
@ -174,8 +174,9 @@ PCI
|
|||
.Xr device 9 ,
|
||||
.Xr driver 9
|
||||
.Sh 作者
|
||||
.An -nosplit
|
||||
このマニュアルページは
|
||||
.An Alexander Langer Aq alex@big.endian.de
|
||||
が書き、部分的に
|
||||
によって書かれ、部分的に
|
||||
.An Warner Losh Aq imp@FreeBSD.org
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/device_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 名称
|
||||
|
@ -39,15 +39,22 @@
|
|||
.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 関連項目
|
||||
|
@ -55,4 +62,4 @@
|
|||
.Sh 作者
|
||||
このマニュアルページは
|
||||
.An Doug Rabson
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -22,10 +22,10 @@
|
|||
.\" 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 名称
|
||||
|
@ -34,23 +34,23 @@
|
|||
.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 が利用可能の場合には、新しいデバイスの存在も通知されます。
|
||||
そのデバイスは
|
||||
|
@ -93,7 +93,7 @@ DEVFS
|
|||
関数は
|
||||
.Fn make_dev
|
||||
から返された
|
||||
.Ft dev_t
|
||||
.Ft cdev
|
||||
をとり、このデバイスのための別の名前 (別名) を作成します。
|
||||
.Fn make_dev
|
||||
の呼出しの前の
|
||||
|
@ -104,7 +104,7 @@ DEVFS
|
|||
関数は
|
||||
.Fn make_dev
|
||||
から返された
|
||||
.Fa dev_t
|
||||
.Fa cdev
|
||||
をとり、そのデバイスの登録を削除します。
|
||||
.Fn make_dev_alias
|
||||
で作成されたデバイスで
|
||||
|
@ -135,5 +135,5 @@ DEVFS
|
|||
関数
|
||||
.Fn dev_depends
|
||||
は
|
||||
.Fx 5.0 .
|
||||
.Fx 5.0
|
||||
ではじめて登場しました。
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
.\" 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
|
||||
|
@ -126,8 +126,6 @@ UIO
|
|||
を使用するべきです。)
|
||||
.It Dv LOCKPARENT
|
||||
このフラグは
|
||||
.Va ni_vdp
|
||||
と
|
||||
.Va ni_vp
|
||||
が一致しない場合には、
|
||||
.Fn namei
|
||||
|
@ -278,7 +276,7 @@ UIO
|
|||
.Fn NDFREE
|
||||
関数に渡すことが可能です。
|
||||
パス名のバッファをそのままで保持するために、
|
||||
.Dv ND_NO_FREE_PNBUF
|
||||
.Dv NDF_NO_FREE_PNBUF
|
||||
フラグを
|
||||
.Fn NDFREE
|
||||
関数に渡すことが可能です。
|
||||
|
@ -298,7 +296,7 @@ UIO
|
|||
.An -nosplit
|
||||
このマニュアルページは
|
||||
.An Eivind Eklund Aq eivind@FreeBSD.org
|
||||
が書き、その後で
|
||||
によって書かれ、その後で
|
||||
.An Hiten M. Pandya Aq hmp@FreeBSD.org
|
||||
が大幅に修正しました。
|
||||
.Sh バグ
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
.\" POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/physio.9,v 1.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
|
||||
|
@ -81,7 +81,7 @@
|
|||
は常にリターンする前に全ての要求された転送が完了するまで待ちます。
|
||||
.Pp
|
||||
引数の詳細を下記に示します。
|
||||
.Bl -tag -width "strategy"
|
||||
.Bl -tag -width indent
|
||||
.It Fa dev
|
||||
デバイスを識別するために関連付けられたデバイス番号。
|
||||
.It Fa uio
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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
|
||||
|
@ -37,13 +37,14 @@
|
|||
.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
|
||||
ファミリの関数は
|
||||
|
@ -57,7 +58,7 @@
|
|||
.Fn tprintf
|
||||
関数は
|
||||
.Fa pri
|
||||
が \&-1 でない場合には、プロセス
|
||||
が \-1 でない場合には、プロセス
|
||||
.Fa p
|
||||
に関連づけられた tty およびロギングファシリティに出力します。
|
||||
.Fn log
|
||||
|
@ -86,7 +87,7 @@
|
|||
この印字マスクは 2 つの部分で構成されます。
|
||||
基数と引数です。
|
||||
基数値は整数値として表現される出力の基数です。
|
||||
例えば、\\10 は 8 進数を \\20 は 16 進数を与えます。
|
||||
例えば、\e10 は 8 進数を \e20 は 16 進数を与えます。
|
||||
引数はビット識別子の並びとして構成されます。
|
||||
個々のビット識別子はこの識別子が表すビット番号の整数値で始まります。
|
||||
識別子の残り部分はそのビットの名前を含む文字列です。
|
||||
|
@ -122,7 +123,7 @@
|
|||
までを使用します。
|
||||
代わりに、
|
||||
.Fa pri
|
||||
に \&-1 が与えられた場合には、そのメッセージはその前の
|
||||
に \-1 が与えられた場合には、そのメッセージはその前の
|
||||
.Fn log
|
||||
の呼び出しによって開始された、最近のログメッセージに追加されます。
|
||||
これらのメッセージはカーネル自身によって生成されるため、
|
||||
|
@ -142,8 +143,8 @@ 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
|
||||
|
@ -155,11 +156,11 @@ out: 41:41:41:41
|
|||
.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 ,
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/sleep.9,v 1.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
|
||||
|
@ -95,6 +95,10 @@
|
|||
長くて
|
||||
.Fa timo
|
||||
\&/ hz 秒間 (0 はタイムアウトなしを意味します) スリープします。
|
||||
.Va Giant
|
||||
ロックが保持されていないなら、
|
||||
.Fa timo
|
||||
は 0 以外でなければなりません。
|
||||
.Fa priority
|
||||
が
|
||||
.Dv PCATCH
|
||||
|
@ -156,4 +160,4 @@ sleep/wakeup
|
|||
.An -nosplit
|
||||
このマニュアルページは
|
||||
.An J\(:org Wunsch Aq joerg@FreeBSD.org
|
||||
が書きました。
|
||||
によって書かれました。
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
.\" 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
|
||||
|
@ -22,7 +23,7 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/style.9,v 1.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
|
||||
|
@ -50,7 +51,7 @@
|
|||
* 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 $
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -65,6 +66,30 @@
|
|||
*/
|
||||
.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
|
||||
を付けます。
|
||||
|
@ -77,8 +102,8 @@ C/C++
|
|||
存在すれば維持します。
|
||||
これには、ファイルの来歴を示す複数の ID も含みます。
|
||||
一般的に、外来の ID またはその下部構造は編集しません。
|
||||
さもなければ
|
||||
.Dq Li ( "#if defined(LIBC_SCCS)"
|
||||
さもなければ
|
||||
.Dq ( Li "#if defined(LIBC_SCCS)"
|
||||
のように) 囲まれていない場合には、全ての互換性のない小片を隠すため、および
|
||||
その ID をオブジェクトファイルから追い出しておくために、両方を
|
||||
.Dq Li "#if 0 ... #endif"
|
||||
|
@ -94,14 +119,14 @@ static char sccsid[] = "@(#)style 1.14 (Berkeley) 4/28/95";
|
|||
#endif
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__FBSDID("$\&FreeBSD: src/share/man/man9/style.9,v 1.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
|
||||
または
|
||||
|
@ -141,7 +166,7 @@ __FBSDID("$\&FreeBSD: src/share/man/man9/style.9,v 1.110 2004/07/03 18:29:24 ru
|
|||
.Ed
|
||||
.Pp
|
||||
グローバルなパス名は
|
||||
.In /usr/include/paths.h
|
||||
.In paths.h
|
||||
で定義されています。
|
||||
プログラムにローカルなパス名はローカルディレクトリの
|
||||
.Qq Pa pathnames.h
|
||||
|
@ -160,7 +185,7 @@ __FBSDID("$\&FreeBSD: src/share/man/man9/style.9,v 1.110 2004/07/03 18:29:24 ru
|
|||
.Ic #define
|
||||
したり名前を定義したりしてはいけません。
|
||||
.Pp
|
||||
.Dq Li 安全でない
|
||||
.Dq 安全でない
|
||||
マクロ (副作用を持っているもの) の名前と、
|
||||
明らかな定数のマクロの名前はすべて大文字です。
|
||||
式のように展開されるマクロは、単一のトークンにするか外側に括弧をつけます。
|
||||
|
@ -290,7 +315,8 @@ enum enumtype { ONE, TWO } et;
|
|||
これらの識別子はアスタリスクから 1 つの空白で分離します。
|
||||
.Pp
|
||||
構造体の中で変数を宣言する時には、
|
||||
使用順、サイズ順、アルファベット順にソートして宣言します。
|
||||
使用順、サイズ順 (大きいものから小さなものへ)、
|
||||
アルファベット順にソートして宣言します。
|
||||
最初の区分は通常適用しませんが、例外があります。
|
||||
各宣言は、それぞれ独立した行にて行います。
|
||||
構造体の名前の位置を、あなたの判断で読み易いように、
|
||||
|
@ -303,13 +329,13 @@ enum enumtype { ONE, TWO } et;
|
|||
複数のソースファイルで使用される場合は別のヘッダファイルで宣言されるべきです。
|
||||
構造体がヘッダファイルで宣言されている場合には、
|
||||
それら構造体の使用は、宣言とは分けられるべきで、かつ
|
||||
.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 リストの先頭 */
|
||||
|
@ -321,10 +347,11 @@ struct foo *foohead; /*
|
|||
従って、前の例をより良く書くと次のようになります。
|
||||
.Bd -literal
|
||||
#include <sys/queue.h>
|
||||
|
||||
struct foo {
|
||||
LIST_ENTRY(foo) link; /* foo リストにキューマクロを使用 */
|
||||
struct mumble amumble; /* mumble のコメント */
|
||||
int bar; /* コメントを揃えようとしています */
|
||||
int bar; /* コメントを揃えます */
|
||||
struct verylongtypename *baz; /* タブ 2 個には収まりません */
|
||||
};
|
||||
LIST_HEAD(, foo) foohead; /* グローバルな foo リストの先頭 */
|
||||
|
@ -389,7 +416,7 @@ typedef const long baz; /*
|
|||
ガイドラインを使用するのに十分です。
|
||||
.Pp
|
||||
カーネルはパラメータの型に関連付けられた名前を持ちます。
|
||||
例えば、カーネル内でこのように使用します。
|
||||
例えば、カーネル内で次のように使用します:
|
||||
.Bd -literal
|
||||
void function(int fd);
|
||||
.Ed
|
||||
|
@ -401,7 +428,7 @@ void function(int fd);
|
|||
(アンダスコアで開始する) 名前を使用するか、
|
||||
型だけで名前を使用しないかのどちらかが必要です。
|
||||
保護された名前の使用がより望ましいです。
|
||||
例えば、このように使用します。
|
||||
例えば、次のように使用します:
|
||||
.Bd -literal
|
||||
void function(int);
|
||||
.Ed
|
||||
|
@ -411,8 +438,8 @@ void function(int);
|
|||
void function(int _fd);
|
||||
.Ed
|
||||
.Pp
|
||||
プロトタイプは関数名の行揃えを行なうために、タブの後に追加のスペース文字を
|
||||
置いても構いません。
|
||||
プロトタイプは関数名の行揃えを行なうために、次のように
|
||||
タブの後に追加のスペース文字を置いても構いません:
|
||||
.Bd -literal
|
||||
static char *function(int _arg, const char *_arg2, struct foo *_arg3,
|
||||
struct bar *_arg4);
|
||||
|
@ -580,7 +607,7 @@ main(int argc, char *argv[])
|
|||
.Bd -literal
|
||||
exit(EX_OK); /*
|
||||
* "Exit 0 on success." (成功時は 0 で終了)
|
||||
* の様に明白なコメントは避けてください
|
||||
* の様に分かりきったコメントは避けてください
|
||||
*/
|
||||
}
|
||||
.Ed
|
||||
|
@ -646,25 +673,26 @@ ANSI C
|
|||
ポインタは
|
||||
.Dv NULL
|
||||
と比較します。
|
||||
例えば、
|
||||
.Bd -literal
|
||||
!(p = f())
|
||||
.Ed
|
||||
例えば、次のように使います:
|
||||
.Pp
|
||||
ではなく、このように使います。
|
||||
.Bd -literal
|
||||
(p = f()) == NULL
|
||||
.Ed
|
||||
.Pp
|
||||
真理値ではない場合、テストには
|
||||
次のようには使いません:
|
||||
.Bd -literal
|
||||
!(p = f())
|
||||
.Ed
|
||||
.Pp
|
||||
真理値 (ブール値) ではない場合、テストには
|
||||
.Ic \&!
|
||||
を使用しないでください。
|
||||
例えば、下記のように使います。
|
||||
例えば、次のように使います:
|
||||
.Bd -literal
|
||||
if (*p == '\e0')
|
||||
.Ed
|
||||
.Pp
|
||||
下記のようには使いません。
|
||||
次のようには使いません:
|
||||
.Bd -literal
|
||||
if (!*p)
|
||||
.Ed
|
||||
|
@ -689,7 +717,7 @@ if (!*p)
|
|||
}
|
||||
.Ed
|
||||
.Pp
|
||||
古いスタイルの関数宣言はこのようになっています。
|
||||
古いスタイルの関数宣言はこのようになっています:
|
||||
.Bd -literal
|
||||
static char *
|
||||
function(a1, a2, fl, a4)
|
||||
|
@ -704,7 +732,7 @@ ANSI
|
|||
長いパラメータリストの折り返しには、
|
||||
4 個の空白による通常のインデントを付けます。
|
||||
.Pp
|
||||
可変個数の引数はこのようにします。
|
||||
可変個数の引数はこのようにします:
|
||||
.Bd -literal
|
||||
#include <stdarg.h>
|
||||
|
||||
|
@ -789,6 +817,7 @@ usage()
|
|||
ソースリポジトリの文体の変更 (空白文字の変更を含む) は困難で、
|
||||
正当な理由なしには避けるべきです。
|
||||
リポジトリの中のおおよそ
|
||||
.Fx
|
||||
KNF
|
||||
.Nm
|
||||
に適合しているコードは、この適合から離れてはなりません。
|
||||
|
@ -797,8 +826,8 @@ KNF
|
|||
コードはコードチェッカ (例えば、
|
||||
.Xr lint 1
|
||||
または
|
||||
.Nm gcc Fl Wall
|
||||
) を
|
||||
.Nm gcc Fl Wall )
|
||||
を
|
||||
通過し、発生する警告は最小限となるべきです。
|
||||
.Sh 関連項目
|
||||
.Xr indent 1 ,
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/suser.9,v 1.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
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
.\" DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/sx.9,v 1.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
|
||||
|
@ -73,7 +73,7 @@
|
|||
.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"
|
||||
.\"
|
||||
|
@ -195,6 +195,17 @@ mutex
|
|||
スリープしている間に
|
||||
.Nm
|
||||
ロック上に共有ロックまたは排他ロックを所有することは許可されます。
|
||||
その結果、ミューテックスを保持している間、
|
||||
.Nm
|
||||
ロックは獲得されないかもしれません。
|
||||
そうでなければ、ミューテックスを獲得した後に同じ
|
||||
.Nm
|
||||
ロック上で別のスレッドがブロックされる間に、
|
||||
一つのスレッドが
|
||||
.Nm
|
||||
ロックを保持している間にスリープするなら、
|
||||
事実上、2 番目のスレッドは最後には許可されていないミューテックスを
|
||||
保持している間にスリープすることになるでしょう。
|
||||
.Sh 関連項目
|
||||
.Xr condvar 9 ,
|
||||
.Xr mtx_pool 9 ,
|
||||
|
|
|
@ -34,10 +34,10 @@
|
|||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
.\" POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/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 名称
|
||||
|
@ -47,7 +47,10 @@
|
|||
.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
|
||||
|
@ -74,6 +77,11 @@ struct callout_handle handle = CALLOUT_HANDLE_INITIALIZER(&handle)
|
|||
.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
|
||||
|
@ -162,8 +170,8 @@ timeout
|
|||
.Fn untimeout
|
||||
のための O(1) 実行時間を提供します。
|
||||
timeout (訳注: および untimeout) は
|
||||
.Fn splsoftclock
|
||||
の状態で
|
||||
.Va Giant
|
||||
ロックが保持されている状態で、
|
||||
.Fn softclock
|
||||
から実行されます。
|
||||
従って、再入から保護されます。
|
||||
|
@ -189,8 +197,8 @@ timeout (
|
|||
引数が 0 の場合には、callout 構造体は
|
||||
.Dq マルチプロセッサセーフ
|
||||
であるとはみなされません。
|
||||
すなわち、ジャイアントロックが callout 関数の呼出し前に
|
||||
獲得され、callout 関数が戻るときに解放されるようにします。
|
||||
すなわち、ジャイアントロックがコールアウト関数の呼出し前に
|
||||
獲得され、コールアウト関数が戻るときに解放されるようにします。
|
||||
.Pp
|
||||
関数
|
||||
.Fn callout_stop
|
||||
|
@ -198,7 +206,13 @@ timeout (
|
|||
コールアウトが保留中の場合には、
|
||||
.Fn callout_stop
|
||||
は 0 でない値を返します。
|
||||
コールアウトが既に実行されたか現在実行中の場合には、0 が返されます。
|
||||
コールアウトが設定されていないか既に実行されているか現在実行中の場合には、
|
||||
0 が返されます。
|
||||
この関数が呼び出されるとき、コールアウトが
|
||||
.Va Giant
|
||||
ミューテックス (mutex) によって保護されている場合には、
|
||||
.Va Giant
|
||||
を保持していなければなりません。
|
||||
.Pp
|
||||
関数
|
||||
.Fn callout_drain
|
||||
|
@ -208,14 +222,254 @@ timeout (
|
|||
この関数は、そのコールアウトがブロックするかもしれないあらゆるロックを
|
||||
保持している間は、決して呼び出されてはなりません。
|
||||
さもないと結果としてデッドロックします。
|
||||
コールアウトサブシステムが既にこのコールアウトを処理し始めたなら
|
||||
コールアウト関数が
|
||||
.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
|
||||
関数は
|
||||
|
@ -226,7 +480,7 @@ timeout (
|
|||
.Fn callout_stop
|
||||
および
|
||||
.Fn callout_drain
|
||||
関数は呼び出された時にコールアウトが未だ保留の場合には 0 以外を、
|
||||
関数は呼び出された時にコールアウトが未だ保留中の場合には 0 以外を、
|
||||
そうでない場合には 0 を返します。
|
||||
.Sh 歴史
|
||||
現在の timeout および untimeout ルーチンは
|
||||
|
|
Loading…
Reference in a new issue