Initial Japanese translations

Submitted by:	Akira Ikeuchi <a_ikeuchi@mic.mitsumi.co.jp>
This commit is contained in:
Kazuo Horikawa 2003-10-13 00:37:30 +00:00
parent 0cd4f33c61
commit 775db488ec
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=18416
19 changed files with 1865 additions and 5 deletions

View file

@ -74,14 +74,21 @@ MAN9 = BUF_LOCK.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\
@ -100,18 +107,25 @@ MAN9 = BUF_LOCK.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\
@ -126,16 +140,20 @@ MAN9 = BUF_LOCK.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\
@ -172,6 +190,7 @@ 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+=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
@ -210,10 +229,13 @@ 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
@ -224,9 +246,26 @@ 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+= 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+=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_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 getmicrotime.9
MLINKS+=microtime.9 nanotime.9
@ -235,11 +274,16 @@ MLINKS+=microuptime.9 getmicrouptime.9
MLINKS+=microuptime.9 nanouptime.9
MLINKS+=microuptime.9 getnanouptime.9
MLINKS+= printf.9 uprintf.9
MLINKS+= printf.9 tprintf.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
@ -271,6 +315,19 @@ 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

View file

@ -0,0 +1,95 @@
.\" -*- nroff -*-
.\"
.\" Copyright (c) 2003 M. Warner Losh
.\"
.\" 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_activate_resource.9,v 1.3 2003/05/30 21:13:32 ru Exp %
.\"
.\" $FreeBSD$
.Dd March 28, 2003
.Dt BUS_ACTIVATE_RESOURCE 9
.Os
.Sh 名称
.Nm bus_activate_resource , bus_deactivate_resource
.Nd リソースの活性化または非活性化
.Sh 書式
.In sys/param.h
.In sys/bus.h
.Pp
.In machine/bus.h
.In sys/rman.h
.In machine/resource.h
.Ft int
.Fo bus_activate_resource
.Fa "device_t dev" "int type" "int rid" "struct resource *r"
.Fc
.Ft int
.Fo bus_deactivate_resource
.Fa "device_t dev" "int type" "int rid" "struct resource *r"
.Fc
.Sh 解説
これらの関数は、その前に割り当てられたリソースを活性化または非活性化します。
一般的に、バスドライバがそのリソースをデバイス空間にマップできるように
するため、リソースはドライバによってアクセスされる前に活性化されなければ
なりません。
.Pp
引数は以下の通りです。
.Bl -tag -width indent
.It Fa dev
そのリソースの所有を要求するデバイスです。
割り当ての前には、そのリソースは親のバスによって所有されています。
.It Fa type
割り当てたいリソースの型です。
これは下記の中の 1 つです。
.Pp
.Bl -tag -width ".Dv SYS_RES_MEMORY" -compact
.It Dv SYS_RES_IRQ
IRQ のリソースです。
.It Dv SYS_RES_DRQ
ISA DMA ラインのリソースです。
.It Dv SYS_RES_IOPORT
I/O ポートのリソースです。
.It Dv SYS_RES_MEMORY
I/O メモリのリソースです。
.El
.It Fa rid
割り当てられているリソースを識別するバス特有のハンドルへのポインタです。
.It Fa r
.Xr bus_alloc_resource 9
によって返される
.Vt "struct resource"
へのポインタです。
.El
.Sh 戻り値
成功時には 0 が返され、そうでなければエラーが返されます。
.Sh 関連項目
.Xr bus_alloc_resource 9 ,
.Xr device 9 ,
.Xr driver 9
.Sh 作者
このマニュアルページは
.An Warner Losh Aq imp@FreeBSD.org
が書きました。

View file

@ -0,0 +1,90 @@
.\" -*- nroff -*-
.\"
.\" Copyright (c) 2003 M. Warner Losh
.\"
.\" 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_child_present.9,v 1.2 2003/05/30 21:13:32 ru Exp %
.\"
.\" $FreeBSD$
.Dd March 27, 2003
.Dt BUS_CHILD_PRESENT 9
.Os
.Sh 名称
.Nm bus_child_present
.Nd バスドライバへのデバイスが実際に存在しているかどうかの確認の問い合わせ
.Sh 書式
.In sys/param.h
.In sys/bus.h
.Pp
.In machine/bus.h
.In sys/rman.h
.In machine/resource.h
.Ft int
.Fn bus_child_present "device_t dev"
.Sh 解説
.Fn bus_child_present
関数は、
.Fa dev
の親デバイスドライバに対し、
.Fa dev
で記述されるハードウェアが現時点でいまだに物理的にアクセス可能であるか
どうかをチェックすることを要求します。
利用可能の概念はバス毎に異なりますが、
一般的には利用できないハードウェアとは、利用できるときには
.Fn bus_space*
メソッドを介してアクセスできるものが、
.Fn bus_space*
メソッドを介してアクセスできないものを指します。
.Pp
これは
.Dq このデバイスは子デバイスを持っていますか?
という質問を尋ねません。
この質問は
.Xr device_get_children 9
によってより良く回答されることが可能です。
.Sh 戻り値
0 の戻り値はシステム内にそのデバイスが存在しないことを示します。
0 ではない戻り値はシステム内にそのデバイスが存在すること、または
そのデバイスの状態が決定できないことを示します。
.Sh 使用例
これはあるサンプルコードです。
.Xr dc 4
デバイスが実際に存在する時に、stop を呼び出すだけです。
.Bd -literal -offset indent
device_t dev;
dc_softc *sc;
sc = device_get_softc(dev);
if (bus_child_present(dev))
dc_stop(sc);
.Ed
.Sh 関連項目
.Xr device 9 ,
.Xr driver 9
.Sh 作者
このマニュアルページは
.An Warner Losh Aq imp@FreeBSD.org
が書きました。

View file

@ -0,0 +1,95 @@
.\" -*- nroff -*-
.\"
.\" Copyright (c) 2003 M. Warner Losh
.\"
.\" 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_set_resource.9,v 1.2 2003/05/30 21:13:32 ru Exp %
.\"
.\" $FreeBSD$
.Dd March 29, 2003
.Dt BUS_SET_RESOURCE 9
.Os
.Sh 名称
.Nm bus_set_resource
.Nd "確定したリソースと与えられたリソース ID との関連付け"
.Sh 書式
.In sys/param.h
.In sys/bus.h
.Pp
.In machine/bus.h
.In sys/rman.h
.In machine/resource.h
.Ft int
.Fo bus_set_resource
.Fa "device_t dev" "int type" "int rid" "u_long start" "u_long count"
.Fc
.Sh 解説
.Fn bus_set_resource
関数は、
.Fa type , rid
ペアで指定されるリソースのうち、指定された開始アドレスのものを長さ
.Fa count
に設定します。
通常は、クライアントドライバはこのインタフェースを使用しません。
しかしながら、バスドライバはクライアントドライバが使用するリソースを
設定するためにしばしば使用します。
.Pp
引数は以下の通りです。
.Bl -tag -width indent
.It Fa dev
リソースを設定するデバイスです。
.It Fa type
割り当てたいリソースの型です。
これは下記の中の 1 つです。
.Pp
.Bl -tag -width ".Dv SYS_RES_MEMORY" -compact
.It Dv SYS_RES_IRQ
IRQ のリソースです。
.It Dv SYS_RES_DRQ
ISA DMA ラインのリソースです。
.It Dv SYS_RES_IOPORT
I/O ポートのリソースです。
.It Dv SYS_RES_MEMORY
I/O メモリのリソースです。
.El
.It Fa rid
割り当てられているリソースを識別するバス特有のハンドルへのポインタです。
.It Fa start
このリソースの開始アドレスです。
.It Fa count
このリソースの長さです。
.El
.Sh 戻り値
成功時には 0 が返され、そうでなければエラーが返されます。
.Sh 関連項目
.Xr bus_alloc_resource 9 ,
.Xr bus_get_resource 9 ,
.Xr device 9 ,
.Xr driver 9
.Sh 作者
このマニュアルページは
.An Warner Losh Aq imp@FreeBSD.org
が書きました。

View file

@ -0,0 +1,167 @@
.\" Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
.\" 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/byteorder.9,v 1.6 2003/05/21 17:32:55 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 29, 2002
.Dt BYTEORDER 9
.Os
.Sh 名称
.Nm bswap16 , bswap32 , bswap64 ,
.Nm be16toh , be32toh , be64toh , htobe16 , htobe32 , htobe64 ,
.Nm htole16 , htole32 , htole64 , le16toh , le32toh , le64toh ,
.Nm be16enc , be16dec , be32enc , be32dec , be64enc , be64dec ,
.Nm le16enc , le16dec , le32enc , le32dec , le64enc , le64dec
.Nd バイトオーダの操作
.Sh 書式
.In sys/endian.h
.Ft uint16_t
.Fn bswap16 "uint16_t int16"
.Ft uint32_t
.Fn bswap32 "uint32_t int32"
.Ft uint64_t
.Fn bswap64 "uint64_t int64"
.Ft uint16_t
.Fn be16toh "uint16_t big16"
.Ft uint32_t
.Fn be32toh "uint32_t big32"
.Ft uint64_t
.Fn be64toh "uint64_t big64"
.Ft uint16_t
.Fn htobe16 "uint16_t host16"
.Ft uint32_t
.Fn htobe32 "uint32_t host32"
.Ft uint64_t
.Fn htobe64 "uint64_t host64"
.Ft uint16_t
.Fn htole16 "uint16_t host16"
.Ft uint32_t
.Fn htole32 "uint32_t host32"
.Ft uint64_t
.Fn htole64 "uint64_t host64"
.Ft uint16_t
.Fn le16toh "uint16_t little16"
.Ft uint32_t
.Fn le32toh "uint32_t little32"
.Ft uint64_t
.Fn le64toh "uint64_t little64"
.Ft uint16_t
.Fn be16dec "const void *"
.Ft uint32_t
.Fn be32dec "const void *"
.Ft uint64_t
.Fn be64dec "const void *"
.Ft uint16_t
.Fn le16dec "const void *"
.Ft uint32_t
.Fn le32dec "const void *"
.Ft uint64_t
.Fn le64dec "const void *"
.Ft void
.Fn be16enc "void *" uint16_t
.Ft void
.Fn be32enc "void *" uint32_t
.Ft void
.Fn be64enc "void *" uint64_t
.Ft void
.Fn le16enc "void *" uint16_t
.Ft void
.Fn le32enc "void *" uint32_t
.Ft void
.Fn le64enc "void *" uint64_t
.Sh 解説
.Fn bswap16 ,
.Fn bswap32
および
.Fn bswap64
関数はバイトオーダが交換された整数を返します。
ビッグエンディアンのシステム上では、
その数値はリトルエンディアンのバイトオーダに変換されます。
リトルエンディアンのシステム上では、
その数値はビッグエンディアンのバイトオーダに変換されます。
.Pp
.Fn be16toh ,
.Fn be32toh
および
.Fn be64toh
関数はビッグエンディアンのバイトオーダの整数をシステムのネイティブな
バイトオーダに変換して返します。
ビッグエンディアンのシステム上では、戻り値は引数と同じになります。
.Pp
.Fn le16toh ,
.Fn le32toh
および
.Fn le64toh
関数はリトルエンディアンのバイトオーダの整数をシステムのネイティブな
バイトオーダに変換して返します。
リトルエンディアンのシステム上では、戻り値は引数と同じになります。
.Pp
.Fn htobe16 ,
.Fn htobe32
および
.Fn htobe64
関数はシステムのネイティブなバイトオーダの整数をビッグエンディアンの
バイトオーダに変換して返します。
ビッグエンディアンのシステム上では、戻り値は引数と同じになります。
.Pp
.Fn htole16 ,
.Fn htole32
および
.Fn htole64
関数はシステムのネイティブなバイトオーダの整数をリトルエンディアンの
バイトオーダに変換して返します。
リトルエンディアンのシステム上では、戻り値は引数と同じになります。
.Pp
.Fn be16enc ,
.Fn be16dec ,
.Fn be32enc ,
.Fn be32dec ,
.Fn be64enc ,
.Fn be64dec ,
.Fn le16enc ,
.Fn le16dec ,
.Fn le32enc ,
.Fn le32dec ,
.Fn le64enc ,
および
.Fn le64dec
関数はビッグ/リトルエンディアンのあらゆるアライメントの、
整数からバイトストリングへエンコードおよび
バイトコードから整数へデコードを行います。
.Sh 関連項目
.Xr byteorder 3
.Sh 歴史
.Fn hto*
および
.Fn *toh
関数は
.Fx 5.0
ではじめて登場し、元々は
.Nx
プロジェクトによって開発されていました。
.Pp
エンコード/デコード関数は
.Fx 5.1
ではじめて登場しました。

View file

@ -0,0 +1,66 @@
.\"
.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. 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/cdevsw_add.9,v 1.5 2001/07/13 09:09:52 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 9, 2001
.Dt CDEVSW_ADD 9
.Os
.Sh 名称
.Nm cdevsw_add
.Nd
.Vt cdevsw
エントリの追加
.Sh 書式
.In sys/param.h
.In sys/conf.h
.Ft int
.Fn cdevsw_add "struct cdevsw *newentry"
.Sh 解説
.Fn cdevsw_add
関数は、そのメジャー番号が 0 以上でかつ
.Dv NUMCDEVSW
より小さい場合に、
.Fa newentry
エントリを
.Va cdevsw
テーブルに追加します。
.Pp
引数は以下の通りです。
.Bl -tag -width ".Fa newentry"
.It Fa newentry
テーブルに追加されるべきデバイスです。
.El
.Sh 戻り値
成功時には 0 の値が返され、そうでない場合には
メジャー番号が有効な範囲にはないことを示す
.Er EINVAL
が返されます。
.Sh 作者
このマニュアルページは
.An Chad David Aq davidc@acns.ab.ca
が書きました。

View file

@ -0,0 +1,66 @@
.\"
.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. 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/cdevsw_remove.9,v 1.5 2001/07/13 09:09:52 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 9, 2001
.Dt CDEVSW_REMOVE 9
.Os
.Sh 名称
.Nm cdevsw_remove
.Nd
.Vt cdevsw
エントリの削除
.Sh 書式
.In sys/param.h
.In sys/conf.h
.Ft int
.Fn cdevsw_remove "struct cdevsw *oldentry"
.Sh 解説
.Fn cdevsw_remove
関数は、そのメジャー番号が 0 以上でかつ
.Dv NUMCDEVSW
より小さい場合に、
.Fa oldentry
エントリを
.Va cdevsw
テーブルから削除します。
.Pp
引数は以下の通りです。
.Bl -tag -width ".Fa oldentry"
.It Fa oldentry
テーブルから削除されるべきデバイスです。
.El
.Sh 戻り値
成功時には 0 の値が返され、そうでない場合には
メジャー番号が有効な範囲にはないことを示す
.Er EINVAL
が返されます。
.Sh 作者
このマニュアルページは
.An Chad David Aq davidc@acns.ab.ca
が書きました。

View file

@ -0,0 +1,212 @@
.\"
.\" Copyright (C) 2000 Jason Evans <jasone@FreeBSD.org>. 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/condvar.9,v 1.8 2002/03/28 12:51:06 dd Exp %
.\"
.\" $FreeBSD$
.Dd December 11, 2000
.Dt CONDVAR 9
.Os
.Sh 名称
.Nm condvar ,
.Nm cv_init ,
.Nm cv_destroy ,
.Nm cv_wait ,
.Nm cv_wait_sig ,
.Nm cv_timedwait ,
.Nm cv_timedwait_sig ,
.Nm cv_signal ,
.Nm cv_broadcast ,
.Nm cv_waitq_remove ,
.Nm cv_waitq_empty ,
.Nm cv_wmesg
.Nd カーネル状態変数
.Sh 書式
.In sys/param.h
.In sys/proc.h
.In sys/condvar.h
.Ft void
.Fn cv_init "struct cv *cvp" "const char *desc"
.Ft void
.Fn cv_destroy "struct cv *cvp"
.Ft void
.Fn cv_wait "struct cv *cvp" "struct mtx *mp"
.Ft int
.Fn cv_wait_sig "struct cv *cvp" "struct mtx *mp"
.Ft int
.Fn cv_timedwait "struct cv *cvp" "struct mtx *mp" "int timo"
.Ft int
.Fn cv_timedwait_sig "struct cv *cvp" "struct mtx *mp" "int timo"
.Ft void
.Fn cv_signal "struct cv *cvp"
.Ft void
.Fn cv_broadcast "struct cv *cvp"
.Ft void
.Fn cv_waitq_remove "struct thread *td"
.Ft int
.Fn cv_waitq_empty "struct cv *cvp"
.Ft const char *
.Fn cv_wmesg "struct cv *cvp"
.Sh 解説
状態変数は mutex と連携して状態の発生を待つために使用されます。
状態変数は
.Fn cv_init
を使用して作成されます。
ここで
.Fa cvp
.Vt struct cv
のための領域へのポインタ、
.Fa desc
はその状態変数を説明するヌルで終端された文字列へのポインタです。
状態変数は
.Fn cv_destroy
を使用して破壊されます。
スレッドは
.Fn cv_wait ,
.Fn cv_wait_sig ,
.Fn cv_timedwait
または
.Fn cv_timedwait_sig
の呼び出しによって、状態変数上でウェイトします。
スレッドは、
1 つのウェイトのブロックを解除するためには
.Fn cv_signal
の、または全てのウェイトのブロックを解除するには
.Fn cv_broadcast
の呼び出しによってウェイトのブロック解除を行います。
.Fn cv_waitq_remove
は状態変数のウェイトキューからウェイトしているスレッドを取り除きます。
.Fn cv_waitq_empty
.Fa cvp
上にウェイトしているものが存在しているかどうかを報告します。
.Fn cv_wmesg
.Fn cv_init
への最初の呼び出しによって設定された
.Fa cvp
の説明文字列を返します。
.Pp
スレッドは
.Fn cv_wait ,
.Fn cv_wait_sig ,
.Fn cv_timedwait
または
.Fn cv_timedwait_sig
の呼び出しの前に
.Fa mp
を保持しなければなしません。
スレッドがある状態でウェイトするときに、
.Fa mp
はそのスレッドがブロックされる前に不可分に開放され、それから
その関数呼び出しが戻る前に不可分に再獲得されます。
全てのウェイトするものは
.Fa cvp
と連携している同一の
.Fa mp
を渡さなければなりません。
スレッドは
.Fn cv_signal
または
.Fn cv_broadcast
を呼び出している間は、たとえ引数として渡していないとしても、
.Fa mp
を保持しなければなりません。
.Pp
.Fn cv_wait ,
.Fn cv_wait_sig ,
.Fn cv_timedwait
および
.Fn cv_timedwait_sig
のブロックが解除された時に、これらの呼び出しスレッドが実行可能にされます。
.Fn cv_timedwait
および
.Fn cv_timedwait_sig
はブロックが解除され
.Er EWOULDBLOCK
を返す前に最長
.Fa timo
/
.Dv HZ
秒間ウェイトします。
そうでなければ、0 を返します。
.Fn cv_wait_sig
および
.Fn cv_timedwait_sig
は、シグナルがとらえられた場合には未完のまま
.Er EINTR
または
.Er ERESTART
の値で戻ります。
または、
.Fn cv_signal
または
.Fn cv_broadcast
で通知を受けた場合には 0 の値で戻ります。
.Sh 戻り値
成功の場合には、
.Fn cv_wait_sig ,
.Fn cv_timedwait
および
.Fn cv_timedwait_sig
は 0 を返します。
そうでない場合には、0 ではないエラーコードが返されます。
.Pp
.Fn cv_waitq_empty
は、ウェイトキュー上にスレッドが存在しない場合には
は 0 ではない値を、そうでない場合には 0 を、返します。
.Pp
.Fn cv_wmesg
.Fn cv_init
に渡された説明文字列を返します。
.Sh エラー
.Fn cv_wait_sig
および
.Fn cv_timedwait_sig
は以下の場合に失敗します。
.Bl -tag -width Er
.It Bq Er EINTR
マスクされていないシグナルがつかまりました。
.It Bq Er ERESTART
マスクされているシグナルがつかまりました。
.El
.Pp
.Fn cv_timedwait
および
.Fn cv_timedwait_sig
は以下の場合に失敗します。
.Bl -tag -width Er
.It Bq Er EWOULDBLOCK
タイムアウトが満了しました。
.El
.Sh 関連項目
.Xr msleep 9 ,
.Xr mtx_pool 9 ,
.Xr mutex 9 ,
.Xr sema 9 ,
.Xr sx 9

View file

@ -0,0 +1,56 @@
.\" -*- nroff -*-
.\"
.\" Copyright (c) 2003 M. Warner Losh
.\"
.\" 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_get_name.9,v 1.2 2003/05/30 21:13:32 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 21, 2003
.Dt DEVICE_GET_NAME 9
.Os
.Sh 名称
.Nm device_get_name , device_get_nameunit
.Nd デバイスのデバイスクラスまたは実体の名前へのアクセス
.Sh 書式
.In sys/param.h
.In sys/bus.h
.Ft int
.Fn device_get_name "device_t dev"
.Ft int
.Fn device_get_nameunit "device_t dev"
.Sh 解説
.Fn device_get_name
関数はデバイスのデバイスクラスの名前を返します。
.Pp
.Fn device_get_nameunit
関数はデバイスの実体の名前を返します。
.Sh 関連項目
.Xr device 9
.Sh 作者
このマニュアルページは
.An Warner Losh
が書きました。

View file

@ -0,0 +1,51 @@
.\" -*- nroff -*-
.\"
.\" Copyright (c) 2003 M. Warner Losh
.\"
.\" 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_get_parent.9,v 1.2 2003/05/30 21:13:32 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 21, 2003
.Dt DEVICE_GET_PARENT 9
.Os
.Sh 名称
.Nm device_get_parent
.Nd デバイスの親の取得
.Sh 書式
.In sys/param.h
.In sys/bus.h
.Ft device_t
.Fn device_get_parent "device_t dev"
.Sh 解説
.Fn device_get_parent
関数はデバイスの親デバイスの名前を返します。
.Sh 関連項目
.Xr device 9
.Sh 作者
このマニュアルページは
.An Warner Losh
が書きました。

View file

@ -0,0 +1,78 @@
.\"
.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. 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/device_ids.9,v 1.1 2001/07/13 18:35:48 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 9, 2001
.Dt DEVICE_IDS 9
.Os
.Sh 名称
.Nm device_ids ,
.Nm major ,
.Nm minor ,
.Nm umajor ,
.Nm uminor
.Nd デバイス ID の計算
.Sh 書式
.In sys/types.h
.In sys/systm.h
.Ft int
.Fn major "dev_t dev"
.Ft int
.Fn minor "dev_t dev"
.Ft int
.Fn umajor "udev_t id"
.Ft int
.Fn uminor "udev_t id"
.Sh 解説
.Nm
ファミリの関数は、ローデバイスの ID である
.Fa id
またはデバイス構造体へのポインタである
.Fa dev
をとり、要求されたメジャーまたはマイナデバイス ID の整数値を返します。
.Pp
実際のメジャーおよびマイナデバイス ID はローデバイス ID から
マスクされた値です。
実際のメジャーおよびマイナ ID を決定するために使用される計算上の詳細は、
.Pa kern_conf.c
の実際のソースを参照して下さい。
.Sh 戻り値
0 より大きくかつ
.Dv NUMCDEVSW
より小さい整数値です。
そのデバイスが無効である場合には、
.Fn major
および
.Fn minor
.Dv NOUDEV
を返します。
.Sh AUTHORS
このマニュアルページは
.An Chad David Aq davidc@acns.ab.ca
が書きました。

View file

@ -0,0 +1,58 @@
.\"
.\" Copyright (c) 2003 M. Warner Losh
.\" 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/device_printf.9,v 1.2 2003/05/30 21:13:32 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 21, 2003
.Dt DEVICE_PRINTF 9
.Os
.Sh 名称
.Nm device_printf
.Nd フォーマット出力の変換
.Sh 書式
.In sys/param.h
.In sys/bus.h
.Ft int
.Fn device_printf "device_t dev" "const char *fmt" ...
.Sh 解説
.Fn device_printf
関数は
.Xr printf 9
関数への便利なインタフェースです。
コロンおよびスペースが後に続く
.Fa dev
デバイスの名前を出力します。
それから、
.Fa fmt
およびそれへの残りの引数が渡された場合には
.Xr printf 9
が印字するものを出力します。
.Sh 戻り値
.Fn device_printf
関数は表示された文字数を返します。
.Sh 関連項目
.Xr printf 3 ,
.Xr printf 9

View file

@ -0,0 +1,57 @@
.\" -*- nroff -*-
.\"
.\" Copyright (c) 2003 M. Warner Losh
.\"
.\" 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_set_driver.9,v 1.2 2003/05/30 21:13:32 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 21, 2003
.Dt DEVICE_SET_DRIVER 9
.Os
.Sh 名称
.Nm device_set_driver
.Nd "指定したドライバとツリーの中のデバイスノードとの関連付け"
.Sh 書式
.In sys/param.h
.In sys/bus.h
.Ft void
.Fn device_set_driver "device_t dev" "driver_t *driver"
.Sh 解説
この関数は指定したドライバとツリーの中の与えられたデバイスノードを
関連付けます。
これは一般的には
.Xr isa 4
バスのような、関連付けを自動的に行なうことをサポートしていないバスへ
デバイスを追加するために、
.Xr DEVICE_IDENTIFY 9
関数の中で使用されます。
.Sh 関連項目
.Xr device 9
.Sh 作者
このマニュアルページは
.An M. Warner Losh
が書きました。

View file

@ -0,0 +1,73 @@
.\"
.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. 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/devsw.9,v 1.6 2001/12/26 23:14:04 davidc Exp %
.\"
.\" $FreeBSD$
.Dd July 9, 2001
.Dt DEVSW 9
.Os
.Sh 名称
.Nm devsw
.Nd
.Vt cdevsw
構造体の取得
.Sh 書式
.In sys/param.h
.In sys/conf.h
.Ft "struct cdevsw *"
.Fn devsw "dev_t dev"
.Sh 解説
.Fn devsw
関数はこの文字型デバイス ID に関連付けられた
.Vt cdevsw
構造体へのポインタを返します。
.Fa dev->si_cdevsw
が設定されている場合にはそれが返され、そうでない場合には
.Va cdevsw
配列へ
.Xr major 9
値分オフセットさせたものが返されます。
.Pp
引数は以下の通りです。
.Bl -tag -width ".Fa dev"
.It Fa dev
返されるべき
.Vt cdevsw
エントリのデバイスです。
.El
.Sh 戻り値
.Vt cdevsw
構造体へのポインタです。
.Sh 関連項目
.Xr major 9 ,
.Xr minor 9 ,
.Xr umajor 9 ,
.Xr uminor 9
.Sh 作者
このマニュアルページは
.An Chad David Aq davidc@acns.ab.ca
が書きました。

View file

@ -0,0 +1,60 @@
.\"
.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. 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/groupmember.9,v 1.1 2001/07/13 18:35:48 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 9, 2001
.Dt GROUPMEMBER 9
.Os
.Sh 名称
.Nm groupmember
.Nd グループ ID のためのグループセットのチェック
.Sh 書式
.In sys/param.h
.In sys/ucred.h
.Ft int
.Fn groupmember "gid_t gid" "struct ucred *cred"
.Sh 解説
.Fn groupmember
関数は与えられた
.Fa gid
が証明のグループセット内にあるかどうかを、見るためにチェックします。
.Pp
引数は以下の通りです。
.Bl -tag -width ".Fa cred"
.It Fa gid
チェックするべきグループ ID です。
.It Fa cred
これらの証明を検索して、グループをみつけようとします。
.El
.Sh 戻り値
.Fa gid
が見つかった場合には 1 が返され、そうでない場合には 0 が返されます。
.Sh 作者
このマニュアルページは
.An Chad David Aq davidc@acns.ab.ca
が書きました。

View file

@ -0,0 +1,69 @@
.\"-
.\" Copyright (c) 2001 Dag-Erling Co骾an Sm鷨grav
.\" 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/pseudofs.9,v 1.4 2002/12/12 17:25:58 ru Exp %
.\"
.\" $FreeBSD$
.Dd September 30, 2001
.Dt PSEUDOFS 9
.Os
.Sh 抩憊
.Nm pseudofs
.Nd 翕僻白央奶伙扑旦氾丞厭蹲平永玄
.Sh 踏摯
.In fs/pseudofs/pseudofs.h
.\" 仇仇卞銀迕拺毛醣じ允月
.Sh 荸濩
.Nm
乒斥亙□伙反
.Xr procfs 5
云方太
.Xr linprocfs 5
及方丹卅翕僻白央奶伙扑旦氾丞及凶戶及鏟擂 API 毛羼間仄引允﹝
仇木反 VFS 扑旦氾丞午及奶件正白尼□旦﹜失弁本旦孺豢及雄孺﹜白央奶伙醒及
馨濘及問儅﹜云方太皿伕本旦冂肣及白央奶伙午犯奴伊弁玄伉及呁擠﹜
及方丹卅蟈化及呁豪卅儀岏及昍邐毛心引允﹝
戊件扑亙□穴乒斥亙□伙﹜允卅歹切白央奶伙扑旦氾丞及撢端及醱艘朿毛
撢隸允月乒斥亙□伙反﹜(燭蛻今木凶厭瞻蟲及螂寧卞方勻化筏課今木﹜
.Nm
卞方勻化羼間今木月穴弁伕卞方勻化賡渝祭今木凶) 犯奴伊弁玄伉厭瞻云方太﹜
白央奶伙及簞嶺及扷屢引凶反 sbuf 卞白央奶伙及〇芢毛
撢端卞踏五慇戈戊□伙田永弁分仃毛﹜羼間允月优邰互丐曰引允﹝
.\" 仇仇卞方曰聶仁及樹扷毛醣じ允月
.Sh 楮洘嫩杴
.Xr linprocfs 5 ,
.Xr procfs 5 ,
.Xr sbuf 9 ,
.Xr vnode 9
.Sh 昳銖
.Nm
乒斥亙□伙反
.Fx 5.0
匹瓚樺仄引仄凶﹝
.Sh 綜樊
.Nm
乒斥亙□伙午仇及穴瓦亙失伙矢□斥反
.An Dag-Erling Sm\(/orgrav
互踏五引仄凶﹝

116
ja_JP.eucJP/man/man9/sema.9 Normal file
View file

@ -0,0 +1,116 @@
.\"
.\" Copyright (C) 2001 Jason Evans <jasone@FreeBSD.org>. 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/sema.9,v 1.6 2002/03/28 12:51:06 dd Exp %
.\"
.\" $FreeBSD$
.Dd August 13, 2001
.Dt SEMA 9
.Os
.Sh 名称
.Nm sema ,
.Nm sema_init ,
.Nm sema_destroy ,
.Nm sema_post ,
.Nm sema_wait ,
.Nm sema_timedwait ,
.Nm sema_trywait ,
.Nm sema_value
.Nd カーネル計数セマフォ
.Sh 書式
.In sys/types.h
.In sys/lock.h
.In sys/sema.h
.Ft void
.Fn sema_init "struct sema *sema" "int value" "const char *description"
.Ft void
.Fn sema_destroy "struct sema *sema"
.Ft void
.Fn sema_post "struct sema *sema"
.Ft void
.Fn sema_wait "struct sema *sema"
.Ft int
.Fn sema_timedwait "struct sema *sema" "int timo"
.Ft int
.Fn sema_trywait "struct sema *sema"
.Ft int
.Fn sema_value "struct sema *sema"
.Sh 解説
計数セマフォはリソースのプールへのアクセスの同期のための
仕組みを提供します。
mutex とは違い、セマフォは所有者の概念は持っていないため、
1 つのスレッドがリソースの獲得を必要とし、別のスレッドがそのリソースの
開放を必要とするような状況でも、利用できます。
各々のセマフォは、それに関連付けられた整数値を持っています。
ポスト (インクリメント) は常に成功しますが、ウェイト (デクリメント) は
そのセマフォの値が 0 以上になる場合にのみ、成功して完了することが可能です。
.Pp
セマフォは mutex と状態変数で十分であるようなところでは使用するべきでは
ありません。
セマフォは mutex と状態変数より複雑な同期の仕組みですので、
そのため効率的ではありません。
.Pp
セマフォは
.Fn sema_init
を使用して作成されます。
ここで
.Fa sema
.Vt "struct sema"
のための領域へのポインタで、
.Fa value
はセマフォの初期値で、
.Fa description
はそのセマフォを説明するヌルで終端された文字列へのポインタです。
セマフォは
.Fn sema_destroy
を使用して破壊されます。
セマフォは
.Fn sema_post
を使用してポスト (インクリメント) されます。
セマフォは
.Fn sema_wait ,
.Fn sema_timedwait
または
.Fn sema_trywait
を使用してウェイト (デクリメント) されます。
.Fn sema_timedwait
への
.Fa timo
引数は失敗して戻る前にウェイトするための tick 単位での最小時間を指定します。
.Fn sema_value
は現在のセマフォの値を返します。
.Pp
.Fn sema_timedwait
および
.Fn sema_trywait
は、そのセマフォ上でのウェイトに失敗した場合には 0 を返します。
そうでない場合には、成功を示すために 0 ではない値が返されます。
.Sh 関連項目
.Xr condvar 9 ,
.Xr mtx_pool 9 ,
.Xr mutex 9 ,
.Xr sx 9

182
ja_JP.eucJP/man/man9/sx.9 Normal file
View file

@ -0,0 +1,182 @@
.\"
.\" Copyright (C) 2001 Jason Evans <jasone@FreeBSD.org>. 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.22 2003/09/14 13:41:59 ru 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_SYSINIT
.Nd カーネルの共有/排他ロック
.Sh 書式
.In sys/param.h
.In sys/lock.h
.In sys/mutex.h
.In sys/sx.h
.Ft void
.Fn sx_init "struct sx *sx" "const char *description"
.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"
.Fn SX_SYSINIT "name" "struct sx *sx" "const char *description"
.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_xlock
または
.Fn sx_try_xlock
および
.Fn sx_xunlock
の呼び出しによって排他ロックを獲得および解放します。
スレッドは
.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
.Fn sx_assert
関数は指定された状態をテストして、その状態に合わずかつカーネルが
.Dv INVARIANTS
付きでコンパイルされている場合には、panic します。
.Pp
.Fn SX_SYSINIT
マクロはシステムスタートアップ時に与えられた
.Fa sx
ロックを初期化するために
.Fn sx_sysinit
の呼び出しを生成します。
引数は
.Fn sx_init
と同様ですが、
そのロックと sysinit ルーチンに関連付けられた構造体に関連した唯一の
変数名を生成する際に使用される追加の引数として
.Fa name
を持ちます。
.Pp
以下のアサートがサポートされています。
.Bl -tag -width ".Dv SX_XLOCKED"
.It Dv SX_LOCKED
現在のスレッドが、最初の引数によって指されている
.Vt sx
ロック上に、共有または排他ロックのいずれかを持っていることをアサートします。
.It Dv SX_SLOCKED
現在のスレッドが、最初の引数によって指されている
.Vt sx
ロック上に、共有ロックを持っていることをアサートします。
.It Dv SX_XLOCKED
現在のスレッドが、最初の引数によって指されている
.Vt sx
ロック上に、排他ロックを持っていることをアサートします。
.El
.Pp
スレッドは共有ロックと排他ロックを同時には持つことができません。
同時に持つことはデッドロックを引き起こすことになるためです。
.Sh コンテキスト
スリープしている間に共有ロックまたは排他ロックを所有することは許可されます。
.Sh 関連項目
.Xr condvar 9 ,
.Xr mtx_pool 9 ,
.Xr mutex 9 ,
.Xr sema 9
.Sh バグ
現在、ロックが保持されていないことをアサートする方法がありません。
.Dv WITNESS
ではない場合には、このスレッドが共有ロックを保持していないことを
アサートすることは不可能です。 
.Dv WITNESS
ではない場合には、
.Dv SX_LOCKED
および
.Dv SX_SLOCKED
のアサートは、あるスレッドが共有ロックを保持していることを
単にチェックするに過ぎません。
これらは、現在のスレッドが共有ロックを保持していることを保証しません。

View file

@ -0,0 +1,212 @@
.\" -*- nroff -*-
.\"
.\" Copyright (c) 2000 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/taskqueue.9,v 1.8 2003/09/03 05:35:37 ken Exp %
.\"
.\" $FreeBSD$
.Dd May 12, 2000
.Dt TASKQUEUE 9
.Os
.Sh 名称
.Nm taskqueue
.Nd 非同期タスクの実行
.Sh 書式
.In sys/param.h
.In sys/kernel.h
.In sys/malloc.h
.In sys/queue.h
.In sys/taskqueue.h
.Bd -literal
typedef void (*task_fn)(void *context, int pending);
typedef void (*taskqueue_enqueue_fn)(void *context);
struct task {
STAILQ_ENTRY(task) ta_link; /* キューのためのリンク */
int ta_pending; /* キューに入った回数 */
int ta_priority; /* キュー内タスク優先度 */
task_fn ta_func; /* タスクハンドラ */
void *ta_context; /* ハンドラの引数 */
};
.Ed
.Ft struct taskqueue *
.Fn taskqueue_create "const char *name" "int mflags" "taskqueue_enqueue_fn enqueue" "void *context"
.Ft void
.Fn taskqueue_free "struct taskqueue *queue"
.Ft struct taskqueue *
.Fn taskqueue_find "const char *name"
.Ft int
.Fn taskqueue_enqueue "struct taskqueue *queue" "struct task *task"
.Ft void
.Fn taskqueue_run "struct taskqueue *queue"
.Fn TASK_INIT "struct task *task" "int priority" "task_fn_t *func" "void *context"
.Fn TASKQUEUE_DECLARE "name"
.Fn TASKQUEUE_DEFINE "name" "taskqueue_enqueue_fn enqueue" "void *context" "init"
.Sh 解説
これらの関数はコードの非同期の実行のための単純なインタフェースを提供します。
.Pp
関数
.Fn taskqueue_create
は新しいキューを作成するために使用されます。
.Fn taskqueue_create
への引数は、唯一であるべき名前、
.Fn malloc
の呼び出しがスリープを認めるかどうかを指定する
.Xr malloc 9
フラグの組、タスクがキューに追加されたときに
.Fn taskqueue_enqueue
から呼び出される関数を含みます。
.\" XXX 以下の文は多くは最初の部分に関係しています。
これは、(たとえば、ソフトウェア割り込みによるスケジューリングまたは
カーネルスレッドが起こされることによって) キューが後で実行されるために
準備されることができるようにするためです。
.Pp
関数
.Fn taskqueue_free
はキューのグローバルなリストからそのキューを取り除くためと、
キューによって使用されたメモリを開放するために使用されるべきです。
キュー上の全てのタスクはこのとき実行されます。
.Pp
システムは、
.Fn taskqueue_find
を使用して検索されることが可能な、全てのキューのリストを管理します。
名前が一致する最初のキューが返され、そうでなければ
.Dv NULL
が返されます。
.Pp
タスクキュー上のキューに入れられたタスクのリストに、タスクを追加するためには、
キューへのポインタとタスクへのポインタを指定して
.Fn taskqueue_enqueue
を呼び出します。
タスクの
.Va ta_pending
フィールドが 0 でない場合には、タスクがキューに入れられた回数に反映するために
単純にインクリメントされます。
そうでない場合には、そのタスクはより低い
.Va ta_priority
値を持つ最初のタスクの前に、またはより低い優先度持つタスクがない場合は
リストの最後に、追加されます。
タスクをキューに入れることは、割り込みハンドラの中から呼び出されることに
適応するために、メモリの割り当てを実行しません。
この関数は、そのキューが開放されようとしている場合には、
.Er EPIPE
を返します。
.Pp
キュー上の全てのタスクを実行するには、
.Fn taskqueue_run
を呼び出します。
タスクが実行されるときには、先ずそのタスクがキューから取り除かれ、
.Va ta_pending
の値が記録されそれからそのフィールドが 0 でクリアされます。
task 構造体の
.Va ta_func
関数は
.Va ta_context
フィールドの値を最初の引数として、
.Va ta_pending
の値を 2 番目の引数として、呼び出されます。
.Pp
便利なマクロ
.Fn TASK_INIT "task" "priority" "func" "context"
.Va task
構造体を初期化するために提供されています。
.Va priority ,
.Va func
および
.Va context
の値は単純に task 構造体のフィールドにコピーされ、
.Va ta_pending
フィールドはクリアされます。
.Pp
2 つのマクロ
.Fn TASKQUEUE_DECLARE "name"
および
.Fn TASKQUEUE_DEFINE "name" "enqueue" "context" "init"
は、グローバルなキューへの参照の宣言およびそのキューの実装の定義の
ために使用されます。
.Fn TASKQUEUE_DEFINE
マクロは
.Va name ,
.Va enqueue
および
.Va context
引数の値で、システムの初期化の間に
.Fn taskqueue_create
を呼び出すための手配を行います。
.Fn taskqueue_create
の呼び出しの後で、(割り込みハンドラの登録などの) その他の初期化が
実行されることを可能にするために、このマクロへの
.Va init
引数が C のステートメントとして実行されます。
.Pp
システムは 3 つのグローバルなタスクキュー
.Va taskqueue_swi ,
.Va taskqueue_swi_giant ,
および
.Va taskqueue_thread
を提供します。
swi タスクキューはソフトウェア割り込みの仕組みを介して実行されます。
taskqueue_swi キューは Giant カーネルロックの保護無しで実行し、
taskqueue_swi_giant キューは Giant カーネルロックの保護有りで
実行します。
スレッドタスクキューはカーネルスレッドコンテキストで実行され、このスレッド
から実行されるタスクは、Giant カーネルロック下で実行されません。
呼び出し側が Giant ロック下で実行したい場合には、呼び出し側の
タスクキューハンドラルーチンの中で、呼び出し側が明確に Giant ロックの
獲得および解放を行なうべきです。
.Pp
このキューを使用するためには、使用したいキュー (
.Va taskqueue_swi ,
.Va taskqueue_swi_giant
または
.Va taskqueue_thread
) のためのグローバルタスクキュー変数の値で
.Fn taskqueue_enqueue
を呼び出します。
.Pp
ソフトウェア割り込みキューは、例えば、ハンドラの中で著しい量の処理を実行
しなければならない割り込みハンドラを実装するために、使用されることが可能です。
ハードウェア割り込みハンドラは、その割り込みの最小の処理を実行し、それから
作業を完了させるためにタスクをキューに入れます。
これは、割り込みが無効化されて費やされる時間を最小量にまで縮小します。
.Pp
スレッドキューは、例えば、スレッドコンテキストからのみ実行することが可能な
何かを行なうカーネル関数を呼び出すことが必要な、割り込みレベルのルーチンに
よって使用されることが可能です。
(例えば、M_WAITOK フラグを伴った malloc の呼び出しです。)
.Sh 歴史
このインタフェースは
.Fx 5.0
ではじめて登場しました。
Linux カーネルで tqueue と呼ばれる同様のファシリティがあります。
.Sh 作者
このマニュアルページは
.An Doug Rabson
が書きました。