aboutsummaryrefslogtreecommitdiff
path: root/documentation/manual-pages/ja/man9
diff options
context:
space:
mode:
authorSergio Carlavilla Delgado <carlavilla@FreeBSD.org>2021-01-25 23:31:29 +0000
committerSergio Carlavilla Delgado <carlavilla@FreeBSD.org>2021-01-25 23:31:29 +0000
commit989d921f5d4ac8d8b7c831c13b8954ad1901be24 (patch)
treea5d768f9af4b55422fdf5b17064879ae1c7ce032 /documentation/manual-pages/ja/man9
parent0cff342f42461c5081b98bce7581f43df319e4f4 (diff)
downloaddoc-989d921f5d4ac8d8b7c831c13b8954ad1901be24.tar.gz
doc-989d921f5d4ac8d8b7c831c13b8954ad1901be24.zip
Migrate doc to Hugo/AsciiDoctor
I'm very pleased to announce the release of our new website and documentation using the new toolchain with Hugo and AsciiDoctor. To get more information about the new toolchain please read the FreeBSD Documentation Project Primer[1], Hugo docs[2] and AsciiDoctor docs[3]. Acknowledgment: Benedict Reuschling <bcr@> Glen Barber <gjb@> Hiroki Sato <hrs@> Li-Wen Hsu <lwhsu@> Sean Chittenden <seanc@> The FreeBSD Foundation [1] https://docs.FreeBSD.org/en/books/fdp-primer/ [2] https://gohugo.io/documentation/ [3] https://docs.asciidoctor.org/home/ Approved by: doceng, core
Diffstat (limited to 'documentation/manual-pages/ja/man9')
-rw-r--r--documentation/manual-pages/ja/man9/BUF_LOCK.975
-rw-r--r--documentation/manual-pages/ja/man9/BUF_LOCKFREE.964
-rw-r--r--documentation/manual-pages/ja/man9/BUF_LOCKINIT.963
-rw-r--r--documentation/manual-pages/ja/man9/BUF_REFCNT.962
-rw-r--r--documentation/manual-pages/ja/man9/BUF_TIMELOCK.983
-rw-r--r--documentation/manual-pages/ja/man9/BUF_UNLOCK.966
-rw-r--r--documentation/manual-pages/ja/man9/BUS_ADD_CHILD.976
-rw-r--r--documentation/manual-pages/ja/man9/BUS_CONFIG_INTR.9104
-rw-r--r--documentation/manual-pages/ja/man9/BUS_PRINT_CHILD.961
-rw-r--r--documentation/manual-pages/ja/man9/BUS_READ_IVAR.964
-rw-r--r--documentation/manual-pages/ja/man9/BUS_SETUP_INTR.9127
-rw-r--r--documentation/manual-pages/ja/man9/CTASSERT.961
-rw-r--r--documentation/manual-pages/ja/man9/DECLARE_MODULE.9114
-rw-r--r--documentation/manual-pages/ja/man9/DELAY.948
-rw-r--r--documentation/manual-pages/ja/man9/DEVICE_ATTACH.971
-rw-r--r--documentation/manual-pages/ja/man9/DEVICE_DETACH.968
-rw-r--r--documentation/manual-pages/ja/man9/DEVICE_IDENTIFY.994
-rw-r--r--documentation/manual-pages/ja/man9/DEVICE_PROBE.991
-rw-r--r--documentation/manual-pages/ja/man9/DEVICE_SHUTDOWN.959
-rw-r--r--documentation/manual-pages/ja/man9/DEV_MODULE.9107
-rw-r--r--documentation/manual-pages/ja/man9/DRIVER_MODULE.9113
-rw-r--r--documentation/manual-pages/ja/man9/KASSERT.984
-rw-r--r--documentation/manual-pages/ja/man9/MD5.977
-rw-r--r--documentation/manual-pages/ja/man9/MODULE_DEPEND.972
-rw-r--r--documentation/manual-pages/ja/man9/MODULE_VERSION.962
-rw-r--r--documentation/manual-pages/ja/man9/SYSCALL_MODULE.988
-rw-r--r--documentation/manual-pages/ja/man9/VFS.965
-rw-r--r--documentation/manual-pages/ja/man9/VFS_CHECKEXP.991
-rw-r--r--documentation/manual-pages/ja/man9/VFS_FHTOVP.985
-rw-r--r--documentation/manual-pages/ja/man9/VFS_MOUNT.985
-rw-r--r--documentation/manual-pages/ja/man9/VFS_QUOTACTL.955
-rw-r--r--documentation/manual-pages/ja/man9/VFS_ROOT.962
-rw-r--r--documentation/manual-pages/ja/man9/VFS_SET.9106
-rw-r--r--documentation/manual-pages/ja/man9/VFS_START.967
-rw-r--r--documentation/manual-pages/ja/man9/VFS_STATFS.9121
-rw-r--r--documentation/manual-pages/ja/man9/VFS_SYNC.985
-rw-r--r--documentation/manual-pages/ja/man9/VFS_UNMOUNT.972
-rw-r--r--documentation/manual-pages/ja/man9/VFS_VGET.978
-rw-r--r--documentation/manual-pages/ja/man9/VFS_VPTOFH.964
-rw-r--r--documentation/manual-pages/ja/man9/VOP_ACCESS.9153
-rw-r--r--documentation/manual-pages/ja/man9/VOP_ACLCHECK.9102
-rw-r--r--documentation/manual-pages/ja/man9/VOP_ADVLOCK.985
-rw-r--r--documentation/manual-pages/ja/man9/VOP_ATTRIB.9169
-rw-r--r--documentation/manual-pages/ja/man9/VOP_BWRITE.958
-rw-r--r--documentation/manual-pages/ja/man9/VOP_CREATE.9165
-rw-r--r--documentation/manual-pages/ja/man9/VOP_FSYNC.9149
-rw-r--r--documentation/manual-pages/ja/man9/VOP_GETACL.9100
-rw-r--r--documentation/manual-pages/ja/man9/VOP_GETEXTATTR.9134
-rw-r--r--documentation/manual-pages/ja/man9/VOP_GETPAGES.9153
-rw-r--r--documentation/manual-pages/ja/man9/VOP_GETVOBJECT.9118
-rw-r--r--documentation/manual-pages/ja/man9/VOP_INACTIVE.9113
-rw-r--r--documentation/manual-pages/ja/man9/VOP_IOCTL.986
-rw-r--r--documentation/manual-pages/ja/man9/VOP_LEASE.964
-rw-r--r--documentation/manual-pages/ja/man9/VOP_LINK.9117
-rw-r--r--documentation/manual-pages/ja/man9/VOP_LOCK.9177
-rw-r--r--documentation/manual-pages/ja/man9/VOP_LOOKUP.9455
-rw-r--r--documentation/manual-pages/ja/man9/VOP_OPENCLOSE.9119
-rw-r--r--documentation/manual-pages/ja/man9/VOP_PATHCONF.987
-rw-r--r--documentation/manual-pages/ja/man9/VOP_PRINT.956
-rw-r--r--documentation/manual-pages/ja/man9/VOP_RDWR.9240
-rw-r--r--documentation/manual-pages/ja/man9/VOP_READDIR.9169
-rw-r--r--documentation/manual-pages/ja/man9/VOP_READLINK.984
-rw-r--r--documentation/manual-pages/ja/man9/VOP_REALLOCBLKS.961
-rw-r--r--documentation/manual-pages/ja/man9/VOP_REMOVE.9109
-rw-r--r--documentation/manual-pages/ja/man9/VOP_RENAME.9319
-rw-r--r--documentation/manual-pages/ja/man9/VOP_REVOKE.972
-rw-r--r--documentation/manual-pages/ja/man9/VOP_SETACL.9109
-rw-r--r--documentation/manual-pages/ja/man9/VOP_SETEXTATTR.9122
-rw-r--r--documentation/manual-pages/ja/man9/VOP_STRATEGY.965
-rw-r--r--documentation/manual-pages/ja/man9/accept_filter.9148
-rw-r--r--documentation/manual-pages/ja/man9/accf_data.977
-rw-r--r--documentation/manual-pages/ja/man9/accf_http.994
-rw-r--r--documentation/manual-pages/ja/man9/acl.9212
-rw-r--r--documentation/manual-pages/ja/man9/bios.9127
-rw-r--r--documentation/manual-pages/ja/man9/boot.9104
-rw-r--r--documentation/manual-pages/ja/man9/buf.9148
-rw-r--r--documentation/manual-pages/ja/man9/bus_activate_resource.995
-rw-r--r--documentation/manual-pages/ja/man9/bus_alloc_resource.9182
-rw-r--r--documentation/manual-pages/ja/man9/bus_child_present.990
-rw-r--r--documentation/manual-pages/ja/man9/bus_generic_attach.960
-rw-r--r--documentation/manual-pages/ja/man9/bus_generic_detach.960
-rw-r--r--documentation/manual-pages/ja/man9/bus_generic_print_child.970
-rw-r--r--documentation/manual-pages/ja/man9/bus_generic_read_ivar.960
-rw-r--r--documentation/manual-pages/ja/man9/bus_generic_shutdown.961
-rw-r--r--documentation/manual-pages/ja/man9/bus_release_resource.9109
-rw-r--r--documentation/manual-pages/ja/man9/bus_set_resource.996
-rw-r--r--documentation/manual-pages/ja/man9/byteorder.9167
-rw-r--r--documentation/manual-pages/ja/man9/cd.9127
-rw-r--r--documentation/manual-pages/ja/man9/condvar.9208
-rw-r--r--documentation/manual-pages/ja/man9/copy.9151
-rw-r--r--documentation/manual-pages/ja/man9/devclass.970
-rw-r--r--documentation/manual-pages/ja/man9/devclass_add_driver.960
-rw-r--r--documentation/manual-pages/ja/man9/devclass_find.957
-rw-r--r--documentation/manual-pages/ja/man9/devclass_get_device.955
-rw-r--r--documentation/manual-pages/ja/man9/devclass_get_devices.960
-rw-r--r--documentation/manual-pages/ja/man9/devclass_get_maxunit.953
-rw-r--r--documentation/manual-pages/ja/man9/devclass_get_name.951
-rw-r--r--documentation/manual-pages/ja/man9/devclass_get_softc.956
-rw-r--r--documentation/manual-pages/ja/man9/device.9114
-rw-r--r--documentation/manual-pages/ja/man9/device_add_child.9114
-rw-r--r--documentation/manual-pages/ja/man9/device_delete_child.960
-rw-r--r--documentation/manual-pages/ja/man9/device_enable.965
-rw-r--r--documentation/manual-pages/ja/man9/device_find_child.965
-rw-r--r--documentation/manual-pages/ja/man9/device_get_children.962
-rw-r--r--documentation/manual-pages/ja/man9/device_get_devclass.954
-rw-r--r--documentation/manual-pages/ja/man9/device_get_driver.954
-rw-r--r--documentation/manual-pages/ja/man9/device_get_ivars.964
-rw-r--r--documentation/manual-pages/ja/man9/device_get_name.956
-rw-r--r--documentation/manual-pages/ja/man9/device_get_parent.951
-rw-r--r--documentation/manual-pages/ja/man9/device_get_softc.965
-rw-r--r--documentation/manual-pages/ja/man9/device_get_state.9103
-rw-r--r--documentation/manual-pages/ja/man9/device_get_unit.950
-rw-r--r--documentation/manual-pages/ja/man9/device_ids.978
-rw-r--r--documentation/manual-pages/ja/man9/device_printf.958
-rw-r--r--documentation/manual-pages/ja/man9/device_probe_and_attach.961
-rw-r--r--documentation/manual-pages/ja/man9/device_quiet.968
-rw-r--r--documentation/manual-pages/ja/man9/device_set_desc.965
-rw-r--r--documentation/manual-pages/ja/man9/device_set_driver.957
-rw-r--r--documentation/manual-pages/ja/man9/device_set_flags.959
-rw-r--r--documentation/manual-pages/ja/man9/devstat.9439
-rw-r--r--documentation/manual-pages/ja/man9/devsw.973
-rw-r--r--documentation/manual-pages/ja/man9/devtoname.957
-rw-r--r--documentation/manual-pages/ja/man9/driver.9114
-rw-r--r--documentation/manual-pages/ja/man9/extattr.9101
-rw-r--r--documentation/manual-pages/ja/man9/fetch.991
-rw-r--r--documentation/manual-pages/ja/man9/groupmember.960
-rw-r--r--documentation/manual-pages/ja/man9/inittodr.9117
-rw-r--r--documentation/manual-pages/ja/man9/intro.9112
-rw-r--r--documentation/manual-pages/ja/man9/kernacc.991
-rw-r--r--documentation/manual-pages/ja/man9/lock.9280
-rw-r--r--documentation/manual-pages/ja/man9/make_dev.9139
-rw-r--r--documentation/manual-pages/ja/man9/malloc.9304
-rw-r--r--documentation/manual-pages/ja/man9/mi_switch.9160
-rw-r--r--documentation/manual-pages/ja/man9/microseq.9492
-rw-r--r--documentation/manual-pages/ja/man9/microtime.9114
-rw-r--r--documentation/manual-pages/ja/man9/microuptime.9101
-rw-r--r--documentation/manual-pages/ja/man9/module.9114
-rw-r--r--documentation/manual-pages/ja/man9/namei.9311
-rw-r--r--documentation/manual-pages/ja/man9/panic.968
-rw-r--r--documentation/manual-pages/ja/man9/physio.9138
-rw-r--r--documentation/manual-pages/ja/man9/printf.9167
-rw-r--r--documentation/manual-pages/ja/man9/pseudofs.969
-rw-r--r--documentation/manual-pages/ja/man9/psignal.9142
-rw-r--r--documentation/manual-pages/ja/man9/resettodr.960
-rw-r--r--documentation/manual-pages/ja/man9/sbuf.9365
-rw-r--r--documentation/manual-pages/ja/man9/sema.9129
-rw-r--r--documentation/manual-pages/ja/man9/sleep.9163
-rw-r--r--documentation/manual-pages/ja/man9/spl.9211
-rw-r--r--documentation/manual-pages/ja/man9/store.991
-rw-r--r--documentation/manual-pages/ja/man9/style.9846
-rw-r--r--documentation/manual-pages/ja/man9/suser.9128
-rw-r--r--documentation/manual-pages/ja/man9/sx.9227
-rw-r--r--documentation/manual-pages/ja/man9/sysctl_add_oid.9499
-rw-r--r--documentation/manual-pages/ja/man9/sysctl_ctx_init.9232
-rw-r--r--documentation/manual-pages/ja/man9/taskqueue.9233
-rw-r--r--documentation/manual-pages/ja/man9/time.9113
-rw-r--r--documentation/manual-pages/ja/man9/timeout.9510
-rw-r--r--documentation/manual-pages/ja/man9/tvtohz.960
-rw-r--r--documentation/manual-pages/ja/man9/uio.9177
-rw-r--r--documentation/manual-pages/ja/man9/vfs_unmountall.945
-rw-r--r--documentation/manual-pages/ja/man9/vget.973
-rw-r--r--documentation/manual-pages/ja/man9/vnode.9177
-rw-r--r--documentation/manual-pages/ja/man9/vput.965
-rw-r--r--documentation/manual-pages/ja/man9/vref.970
-rw-r--r--documentation/manual-pages/ja/man9/vrele.967
-rw-r--r--documentation/manual-pages/ja/man9/vslock.995
-rw-r--r--documentation/manual-pages/ja/man9/zone.9205
167 files changed, 20126 insertions, 0 deletions
diff --git a/documentation/manual-pages/ja/man9/BUF_LOCK.9 b/documentation/manual-pages/ja/man9/BUF_LOCK.9
new file mode 100644
index 0000000000..20719e7c33
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/BUF_LOCK.9
@@ -0,0 +1,75 @@
+.\"
+.\" 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/BUF_LOCK.9,v 1.7 2001/12/26 23:14:04 davidc Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 9, 2001
+.Dt BUF_LOCK 9
+.Os
+.Sh 名称
+.Nm BUF_LOCK
+.Nd バッファのロック
+.Sh 書式
+.In sys/param.h
+.In sys/systm.h
+.In sys/uio.h
+.In sys/bio.h
+.In sys/buf.h
+.Ft int
+.Fn BUF_LOCK "struct buf *bp" "int locktype"
+.Sh 解説
+.Fn BUF_LOCK
+関数は与えられたバッファをロックします。
+既にロックされている場合には、
+.Dv LK_NOWAIT
+が設定されていなければそのロックを取得できるまでの間、
+この呼び出しはブロックされます。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width ".Fa locktype"
+.It Fa bp
+ロックされるべきバッファです。
+.It Fa locktype
+ロックの型を制御するフラグです。
+詳細については
+.Xr lockmgr 9
+を参照して下さい。
+.El
+.Sh 戻り値
+成功時には、値 0 が返されます。
+0 ではない戻り値についての情報は
+.Xr lockmgr 9
+を参照して下さい。
+.Sh 関連項目
+.Xr buf 9 ,
+.Xr BUF_TIMELOCK 9 ,
+.Xr BUF_UNLOCK 9 ,
+.Xr lockmgr 9
+.Sh 作者
+このマニュアルページは
+.An Chad David Aq davidc@acns.ab.ca
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/BUF_LOCKFREE.9 b/documentation/manual-pages/ja/man9/BUF_LOCKFREE.9
new file mode 100644
index 0000000000..b74f19d74c
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/BUF_LOCKFREE.9
@@ -0,0 +1,64 @@
+.\"
+.\" 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/BUF_LOCKFREE.9,v 1.6 2001/12/26 23:14:04 davidc Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 9, 2001
+.Dt BUF_LOCKFREE 9
+.Os
+.Sh 名称
+.Nm BUF_LOCKFREE
+.Nd バッファのロックの削除
+.Sh 書式
+.In sys/param.h
+.In sys/systm.h
+.In sys/uio.h
+.In sys/bio.h
+.In sys/buf.h
+.Ft void
+.Fn BUF_LOCKFREE "struct buf *bp"
+.Sh 解説
+.Fn BUF_LOCKFREE
+マクロはバッファのロックを破壊します。
+このマクロが呼び出される時には、ロックが保持されていなければなりません。
+さもなければパニックします。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width ".Fa bp"
+.It Fa bp
+ロックが破壊されるべきバッファです。
+.El
+.Sh 関連項目
+.Xr buf 9 ,
+.Xr BUF_LOCK 9 ,
+.Xr BUF_TIMELOCK 9 ,
+.Xr BUF_UNLOCK 9 ,
+.Xr lockdestroy 9
+.Sh 作者
+このマニュアルページは
+.An Chad David Aq davidc@acns.ab.ca
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/BUF_LOCKINIT.9 b/documentation/manual-pages/ja/man9/BUF_LOCKINIT.9
new file mode 100644
index 0000000000..fd7b5fe1e2
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/BUF_LOCKINIT.9
@@ -0,0 +1,63 @@
+.\"
+.\" 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/BUF_LOCKINIT.9,v 1.6.8.1 2005/01/10 23:00:58 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 6, 2005
+.Dt BUF_LOCKINIT 9
+.Os
+.Sh 名称
+.Nm BUF_LOCKINIT
+.Nd バッファロックの初期化
+.Sh 書式
+.In sys/param.h
+.In sys/systm.h
+.In sys/uio.h
+.In sys/bio.h
+.In sys/buf.h
+.Ft void
+.Fn BUF_LOCKINIT "struct buf *bp"
+.Sh 解説
+.Fn BUF_LOCKINIT
+マクロはバッファのロックを初期化します。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width ".Fa bp"
+.It Fa bp
+ロックを初期化されるべきバッファです。
+.El
+.Sh 関連項目
+.Xr buf 9 ,
+.Xr BUF_LOCK 9 ,
+.Xr BUF_TIMELOCK 9 ,
+.Xr BUF_UNLOCK 9 ,
+.Xr lockinit 9 ,
+.Xr lockmgr 9
+.Sh 作者
+このマニュアルページは
+.An Chad David Aq davidc@acns.ab.ca
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/BUF_REFCNT.9 b/documentation/manual-pages/ja/man9/BUF_REFCNT.9
new file mode 100644
index 0000000000..dce5f788fb
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/BUF_REFCNT.9
@@ -0,0 +1,62 @@
+.\"
+.\" 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/BUF_REFCNT.9,v 1.6 2001/12/26 23:14:04 davidc Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 9, 2001
+.Dt BUF_REFCNT 9
+.Os
+.Sh 名称
+.Nm BUF_REFCNT
+.Nd バッファのロックの参照カウントの取得
+.Sh 書式
+.In sys/param.h
+.In sys/systm.h
+.In sys/uio.h
+.In sys/bio.h
+.In sys/buf.h
+.Ft int
+.Fn BUF_REFCNT "struct buf *bp"
+.Sh 解説
+.Fn BUF_REFCNT
+関数はバッファのロックの参照カウントを返します。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width ".Fa bp"
+.It Fa bp
+ロックの参照カウントを返すべきバッファです。
+.El
+.Sh 関連項目
+.Xr buf 9 ,
+.Xr BUF_LOCK 9 ,
+.Xr BUF_TIMELOCK 9 ,
+.Xr BUF_UNLOCK 9 ,
+.Xr lockcount 9
+.Sh 作者
+このマニュアルページは
+.An Chad David Aq davidc@acns.ab.ca
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/BUF_TIMELOCK.9 b/documentation/manual-pages/ja/man9/BUF_TIMELOCK.9
new file mode 100644
index 0000000000..d3f497e086
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/BUF_TIMELOCK.9
@@ -0,0 +1,83 @@
+.\"
+.\" 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/BUF_TIMELOCK.9,v 1.8 2002/01/09 11:43:45 mpp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 9, 2001
+.Dt BUF_TIMELOCK 9
+.Os
+.Sh 名称
+.Nm BUF_TIMELOCK
+.Nd バッファのロック
+.Sh 書式
+.In sys/param.h
+.In sys/systm.h
+.In sys/uio.h
+.In sys/bio.h
+.In sys/buf.h
+.Ft int
+.Fn BUF_TIMELOCK "struct buf *bp" "int locktype" "char *wmesg" "int catch" "int timo"
+.Sh 解説
+.Fn BUF_TIMELOCK
+関数は与えられたバッファをロックし、スリープする時間量を
+.Fa timo
+に制限し、さらにそのスリープの優先度と
+.Fa catch
+の OR をとります。
+.Fa wmesg
+はスリープで使用される状態文字列です。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width ".Fa locktype"
+.It Fa bp
+ロックされるべきバッファです。
+.It Fa locktype
+ロックの型を制御するフラグです。
+詳細については
+.Xr lockmgr 9
+を参照して下さい。
+.It Fa wmesg
+ロックを獲得している間の全てのスリープで使用される状態文字列です。
+.It Fa catch
+スリープの優先度に OR をとる優先度です。
+.It Fa timo
+ロックされている間に発生する全てのスリープのためのタイムアウトです。
+.El
+.Sh 戻り値
+成功時には、値 0 が返されます。
+0 ではない戻り値についての詳細は
+.Xr lockmgr 9
+を参照して下さい。
+.Sh 関連項目
+.Xr buf 9 ,
+.Xr BUF_LOCK 9 ,
+.Xr BUF_UNLOCK 9 ,
+.Xr lockmgr 9
+.Sh 作者
+このマニュアルページは
+.An Chad David Aq davidc@acns.ab.ca
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/BUF_UNLOCK.9 b/documentation/manual-pages/ja/man9/BUF_UNLOCK.9
new file mode 100644
index 0000000000..91cb05bc50
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/BUF_UNLOCK.9
@@ -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/BUF_UNLOCK.9,v 1.6 2001/12/26 23:14:04 davidc Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 9, 2001
+.Dt BUF_UNLOCK 9
+.Os
+.Sh 名称
+.Nm BUF_UNLOCK
+.Nd ロックされたバッファのロック解除
+.Sh 書式
+.In sys/param.h
+.In sys/systm.h
+.In sys/uio.h
+.In sys/bio.h
+.In sys/buf.h
+.Ft void
+.Fn BUF_UNLOCK "struct buf *bp"
+.Sh 解説
+.Fn BUF_UNLOCK
+関数は以前に
+.Fn BUF_LOCK
+または
+.Fn BUF_TIMELOCK
+を用いてロックされたバッファを、ロック解除します。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width ".Fa bp"
+.It Fa bp
+ロック解除されるべきバッファです。
+このバッファは既にロックされていなければなりません。
+.El
+.Sh 関連項目
+.Xr buf 9 ,
+.Xr BUF_LOCK 9 ,
+.Xr BUF_TIMELOCK 9 ,
+.Xr lockmgr 9
+.Sh 作者
+このマニュアルページは
+.An Chad David Aq davidc@acns.ab.ca
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/BUS_ADD_CHILD.9 b/documentation/manual-pages/ja/man9/BUS_ADD_CHILD.9
new file mode 100644
index 0000000000..e9827972ef
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/BUS_ADD_CHILD.9
@@ -0,0 +1,76 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2004 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_ADD_CHILD.9,v 1.3 2004/07/07 07:56:58 ru Exp %
+.\" $FreeBSD$
+.\"
+.Dd May 13, 2004
+.Dt BUS_ADD_CHILD 9
+.Os
+.Sh 名称
+.Nm BUS_ADD_CHILD
+.Nd "与えられた優先度でデバイスノードをツリーに追加"
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn BUS_ADD_CHILD "device_t dev" "int order" "const char *name" "int unit"
+.Sh 解説
+.Fn BUS_ADD_CHILD
+メソッドはドライバの認識ルーチンによってツリーにデバイスを追加するために
+使用されます。
+詳細については
+.Xr device_add_child 9
+を参照して下さい。
+このインタフェースは
+.Xr device_add_child 9
+と同じですが、バスの
+.Fn BUS_ADD_CHILD
+が呼び出されます。
+.Pp
+固有の内部値およびリソースリストのようなものをそのデバイスに追加する前に、
+バスの
+.Fn BUS_ADD_CHILD
+の実装は
+.Xr device_add_child 9
+を使用してツリーの中にそのデバイスを挿入するべきです。
+.Sh 関連項目
+.Xr device 9 ,
+.Xr device_add_child 9 ,
+.Xr driver 9
+.Sh 戻り値
+.Fn BUS_ADD_CHILD
+メソッドはツリーに追加された
+.Vt device_t
+または
+.Dv NULL
+を返します。
+.Sh 作者
+このマニュアルページは
+.An M. Warner Losh
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/BUS_CONFIG_INTR.9 b/documentation/manual-pages/ja/man9/BUS_CONFIG_INTR.9
new file mode 100644
index 0000000000..a80fbf5d9b
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/BUS_CONFIG_INTR.9
@@ -0,0 +1,104 @@
+.\" Copyright (c) 2003 Marcel Moolenaar
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\"
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/BUS_CONFIG_INTR.9,v 1.4.2.1 2005/01/10 23:01:44 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 6, 2005
+.Dt BUS_CONFIG_INTR 9
+.Os
+.\"
+.Sh 名称
+.Nm BUS_CONFIG_INTR
+.Nd "割り込みの極性およびトリガモードの設定"
+.\"
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fo BUS_CONFIG_INTR
+.Fa "device_t dev" "int irq" "enum intr_trigger trig" "enum intr_polarity pol"
+.Fc
+.\"
+.Sh 解説
+.Fn BUS_CONFIG_INTR
+メソッドは、バスまたはデバイスのドライバが、親のバスに割り込み極性および
+トリガモードを提供することを可能にします。
+これは通常は、ルートバス (例えば nexus) までの全ての経路を上がって行きます。
+その全ての経路において、
+実際にハードウェアをプログラムするために必要な動作がなされます。
+.Fn BUS_CONFIG_INTR
+メソッドは割り込み番号をとるため、
+.Xr BUS_SETUP_INTR 9
+より先に呼び出されることが必ずしも要求されませんが、当然だと仮定されます。
+.Pp
+.Fa trig
+引数は以下のいずれかです。
+.Bl -tag -width ".Dv INTR_TRIGGER_CONFORM"
+.It Dv INTR_TRIGGER_CONFORM
+割り込みトリガモードは、デバイスがアタッチされているバスにとっての標準です。
+.It Dv INTR_TRIGGER_EDGE
+割り込みは、エッジトリガされます。
+これは、割り込み線の信号の立上りエッジによって、
+割り込みが立ち上げられることを意味します。
+その信号は通常、スパイクを発生させるように元の状態に戻ります。
+.It Dv INTR_TRIGGER_LEVEL
+割り込みは、レベルトリガされます。
+これは、割り込み線の信号が変化して、その割り込みのサービス完了までの間
+変化せずに維持される時に、割り込みが立ち上げられることを意味します。
+サービス完了後、信号は戻ります。
+.El
+.Pp
+.Fa pol
+引数は以下のいずれかです。
+.Bl -tag -width ".Dv INTR_POLARITY_CONFORM"
+.It Dv INTR_POLARITY_CONFORM
+割り込みの極性は、デバイスがアタッチされているバスにとっての標準です。
+.It Dv INTR_POLARITY_HIGH
+割り込み線の電圧がハイになることによって、割り込みが活性化されます。
+.It Dv INTR_POLARITY_LOW
+割り込み線の電圧がローになることによって、割り込みが活性化されます。
+.El
+.\"
+.Sh 戻り値
+成功時には 0 が返され、そうでなければ適切なエラーが返されます。
+.\"
+.Sh 関連項目
+.Xr BUS_SETUP_INTR 9 ,
+.Xr BUS_TEARDOWN_INTR 9 ,
+.Xr device 9 ,
+.Xr driver 9
+.\"
+.Sh 歴史
+.Fn BUS_CONFIG_INTR
+メソッドは
+.Fx 5.2
+ではじめて登場しました。
+.\"
+.Sh 作者
+このマニュアルページは
+.An Marcel Moolenaar
+.Aq marcel@xcllnt.net
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/BUS_PRINT_CHILD.9 b/documentation/manual-pages/ja/man9/BUS_PRINT_CHILD.9
new file mode 100644
index 0000000000..920aa31e7b
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/BUS_PRINT_CHILD.9
@@ -0,0 +1,61 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/BUS_PRINT_CHILD.9,v 1.14.4.1 2005/01/10 23:06:34 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 6, 2005
+.Dt BUS_PRINT_CHILD 9
+.Os
+.Sh 名称
+.Nm BUS_PRINT_CHILD
+.Nd デバイスについての情報の表示
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn BUS_PRINT_CHILD "device_t dev" "device_t child"
+.Sh 解説
+.Fn BUS_PRINT_CHILD
+メソッドはデバイスの説明をプリントアウトするシステムのコードから呼び出されます。
+それは子デバイスが持っている親とのアタッチメントを記述するべきです。
+例えば、TurboLaser のバスはどのノードにアタッチされたかをプリントします。
+.Fn BUS_PRINT_CHILD
+によって出力されるメッセージの適切なフォーマット
+に関しての更なる情報は
+.Xr bus_generic_print_child 9
+を見てください。
+.Sh 関連項目
+.Xr device 9 ,
+.Xr driver 9
+.Sh 戻り値
+出力の文字数です。
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/BUS_READ_IVAR.9 b/documentation/manual-pages/ja/man9/BUS_READ_IVAR.9
new file mode 100644
index 0000000000..d218b2ac9f
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/BUS_READ_IVAR.9
@@ -0,0 +1,64 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/BUS_READ_IVAR.9,v 1.9 2003/10/23 06:22:40 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt BUS_READ_IVAR 9
+.Os
+.Sh 名称
+.Nm BUS_READ_IVAR ,
+.Nm BUS_WRITE_IVAR
+.Nd バス特有のデバイスインスタンス変数の操作
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn BUS_READ_IVAR "device_t dev" "device_t child" "int index" "uintptr_t *result"
+.Ft int
+.Fn BUS_WRITE_IVAR "device_t dev" "device_t child" "int index" "uintptr_t value"
+.Sh 解説
+これらの 2 つのメソッドは子デバイスのバス特有のインスタンス変数の組
+を管理します。
+その意図は、異なった型のバスはそれぞれが適当なインスタンス変数
+の組(ISA バスにおける port や irq という具合に)を定義するということです。
+.Pp
+この情報は構造体として子デバイスに与えられることも出来ましたが、
+そうすると、全てのドライバを編集し再コンパイルするという作業なしには、
+バスが変数を追加したり削除したりすることは困難になります。
+この作業はベンダが供給するバイナリのドライバでは不可能かもしれません。
+.Sh 戻り値
+成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。
+.Sh 関連項目
+.Xr device 9 ,
+.Xr driver 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/BUS_SETUP_INTR.9 b/documentation/manual-pages/ja/man9/BUS_SETUP_INTR.9
new file mode 100644
index 0000000000..d575a7786b
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/BUS_SETUP_INTR.9
@@ -0,0 +1,127 @@
+.\" Copyright (c) 2000 Jeroen Ruigrok van der Werven
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/BUS_SETUP_INTR.9,v 1.17.2.1 2005/01/10 23:06:34 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 6, 2005
+.Dt BUS_SETUP_INTR 9
+.Os
+.Sh 名称
+.Nm BUS_SETUP_INTR ,
+.Nm bus_setup_intr ,
+.Nm BUS_TEARDOWN_INTR ,
+.Nm bus_teardown_intr
+.Nd 割り込みハンドラの作成と接続および破壊
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn BUS_SETUP_INTR "device_t dev" "device_t child" "struct resource *irq" "int flags" "driver_intr_t *intr" "void *arg" "void **cookiep"
+.Ft int
+.Fn bus_setup_intr "device_t dev" "struct resource *r" "int flags" "driver_intr_t handler" "void *arg" "void **cookiep"
+.Ft int
+.Fn BUS_TEARDOWN_INTR "device_t dev" "device_t child" "struct resource *irq" "void *cookiep"
+.Ft int
+.Fn bus_teardown_intr "device_t dev" "struct resource *r" "void *cookiep"
+.Sh 解説
+.Fn BUS_SETUP_INTR
+メソッドは、資源マネージャの
+.Xr BUS_ALLOC_RESOURCE 9
+メソッドによって以前に割り当てられた割り込みに対し、
+割り込みハンドラを生成してアタッチします。
+.Fa flags
+は
+.In sys/bus.h
+で見つかり、割り込みの大まかな種類を与えます。
+また、
+.Fa flags
+はデバイスドライバの特性についての信頼できる情報を、割り込みハンドラに伝えます。
+.Dv INTR_FAST
+はそのハンドラが時間にクリティカルな関数のための
+ハンドラであることを意味します。
+これらのハンドラのスピードアップのために特別な注意がはらわれます。
+これの利用は
+.Dv INTR_EXCL
+を暗に含みます。
+.Dv INTR_EXCL
+はそのハンドラをこの割り込みのための排他的なハンドラとして記録します。
+.Dv INTR_MPSAFE
+はその割り込みハンドラはプリエンプティブな環境で適切に
+振舞う (``SMP セーフ'') こと、および ``ジャイアントロック'' mutex によって
+保護される必要がないことを、スケジューラに通知します。
+.Dv INTR_ENTROPY
+はその割り込みがエントロピの良い供給源であるとして記録します。
+これは、エントロピデバイス
+.Pa /dev/random
+によって使用されることができます。
+ハンドラ
+.Fa intr
+は唯一の引数
+.Fa arg
+の値を伴なって呼び出されます。
+.Pp
+.Fa cookiep
+引数は、
+割り込みの確立が成功した場合に、
+.Fn BUS_SETUP_INTR
+が書込む親のバスが使用するクッキーである
+.Vt "void *"
+型へのポインタです。
+ドライバ作成者は、このクッキーが 0 ではないことを仮定することが出来ます。
+nexus ドライバは失敗時に
+.Fa cookiep
+に 0 を書込みます。
+.Pp
+割り込みハンドラは、
+.Fn BUS_TEARDOWN_INTR
+によってデタッチされます。
+正しい割り込みハンドラを破棄するために、クッキーが
+.Fn BUS_TEARDOWN_INTR
+に渡される必要があります。
+一度
+.Fn BUS_TEARDOWN_INTR
+が戻ると、その割り込み関数は有効ではなくなり二度と呼び出されないことが
+保証されます。
+.Pp
+これらの関数への呼び出しに交差して mutex が保持されていることは認められません。
+.Sh 戻り値
+成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。
+.Sh 関連項目
+.Xr random 4 ,
+.Xr device 9 ,
+.Xr driver 9
+.Sh 作者
+.An -nosplit
+このマニュアルページは、
+.An Doug Rabson
+.Aq dfr@FreeBSD.org
+によって書かれた、
+.Fn BUS_CREATE_INTR
+および
+.Fn BUS_CONNECT_INTR
+のマニュアルページを基に、
+.An Jeroen Ruigrok van der Werven
+.Aq asmodai@FreeBSD.org
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/CTASSERT.9 b/documentation/manual-pages/ja/man9/CTASSERT.9
new file mode 100644
index 0000000000..74529bc0ed
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/CTASSERT.9
@@ -0,0 +1,61 @@
+.\" Copyright (c) 2003 Hiten M. Pandya
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/CTASSERT.9,v 1.2 2003/05/30 21:13:32 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd May 15, 2003
+.Os
+.Dt CTASSERT 9
+.Sh 名称
+.Nm CTASSERT
+.Nd コンパイル時のアサーションマクロ
+.Sh 書式
+.In sys/param.h
+.In sys/systm.h
+.Fn CTASSERT expression
+.Sh 解説
+.Fn CTASSERT
+マクロは
+.Fa expression
+をコンパイル時に評価し、それが偽の場合にはコンパイラエラーを発生させます。
+.Pp
+.Fn CTASSERT
+マクロは重要なデータ構造体または変数のサイズまたはアライメントを
+コンパイル時にアサートするのに便利です。
+これは実行時にコードを失敗させる事とは異なります。
+.Sh 使用例
+.Vt uuid
+構造体の大きさが 16 バイトであることをアサートします。
+.Pp
+.Dl "CTASSERT(sizeof(struct uuid) == 16);"
+.Sh 関連項目
+.Xr KASSERT 9
+.Sh 作者
+このマニュアルページは
+.An Hiten M. Pandya
+.Aq hmp@FreeBSD.org
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/DECLARE_MODULE.9 b/documentation/manual-pages/ja/man9/DECLARE_MODULE.9
new file mode 100644
index 0000000000..b6f4bcebe6
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/DECLARE_MODULE.9
@@ -0,0 +1,114 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2000 Alexander Langer
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/DECLARE_MODULE.9,v 1.7.4.2 2005/01/13 13:45:52 keramida Exp %
+.\" $FreeBSD$
+.\"
+.Dd January 6, 2005
+.Dt DECLARE_MODULE 9
+.Os
+.Sh 名称
+.Nm DECLARE_MODULE
+.Nd カーネルモジュール宣言マクロ
+.Sh 書式
+.In sys/param.h
+.In sys/kernel.h
+.In sys/module.h
+.Fn DECLARE_MODULE "name" "moduledata_t data" "sub" "order"
+.Sh 解説
+.Fn DECLARE_MODULE
+マクロは一般的なカーネルモジュールを宣言します。
+これは
+.Fn SYSINIT
+マクロを使用して、そのモジュールをシステムに登録します。
+.Fn DECLARE_MODULE
+は通常、
+.Xr DRIVER_MODULE 9 ,
+.Xr DEV_MODULE 9
+および
+.Xr SYSCALL_MODULE 9
+のような他のマクロの中で使用されます。
+もちろん、例えば動的な sysctl を実装するために、
+直接呼び出されることも可能です。
+.Pp
+引数は以下のとおりです。
+.Bl -tag -width indent
+.It Fa name
+モジュールを識別するために
+.Fn SYSINIT
+呼び出しで使用されるモジュールの名前です。
+.It Fa data
+.Vt module_t
+構造体の中で使用されるモジュール名の正式名称および型
+.Vt modeventhand_t
+のイベントハンドラ関数へのポインタの 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
+の値は共通です。
+.It Fa order
+.Fn SYSINIT
+のための引数です。
+これは KLD のサブシステム内の初期化の順序を意味します。
+有効な値は
+.Vt sysinit_elem_order
+列挙型
+.Pq In sys/kernel.h
+で定義されています。
+.El
+.Sh 関連項目
+.Xr DEV_MODULE 9 ,
+.Xr DRIVER_MODULE 9 ,
+.Xr module 9 ,
+.Xr SYSCALL_MODULE 9
+.Pp
+.Pa /usr/include/sys/kernel.h ,
+.Pa /usr/share/examples/kld
+.Sh 作者
+.An -nosplit
+このマニュアルページは
+.An Andrew Reiter Aq arr@watson.org
+によって書かれた
+KLD Facility Programming Tutorial に触発されて、
+.An Alexander Langer Aq alex@FreeBSD.org
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/DELAY.9 b/documentation/manual-pages/ja/man9/DELAY.9
new file mode 100644
index 0000000000..c95668b8c5
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/DELAY.9
@@ -0,0 +1,48 @@
+.\"
+.\" Copyright (c) 2000 Alfred Perlstein
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following 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/DELAY.9,v 1.7 2003/10/23 01:31:24 hmp Exp %
+.\" $FreeBSD$
+.\"
+.Dd November 21, 2000
+.Os
+.Dt DELAY 9
+.Sh 名称
+.Nm DELAY
+.Nd 時間間隔のためのビジーループ
+.Sh 書式
+.In sys/types.h
+.In sys/systm.h
+.Ft void
+.Fn DELAY "int delay"
+.Sh 解説
+.Fa delay
+マイクロ秒 (1/1000000 秒) 間遅延します。
+.Sh 作者
+このマニュアルページは
+.An Alfred Perlstein
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/DEVICE_ATTACH.9 b/documentation/manual-pages/ja/man9/DEVICE_ATTACH.9
new file mode 100644
index 0000000000..836be27aa0
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/DEVICE_ATTACH.9
@@ -0,0 +1,71 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/DEVICE_ATTACH.9,v 1.8.2.1 2005/01/10 23:51:38 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 6, 2005
+.Dt DEVICE_ATTACH 9
+.Os
+.Sh 名称
+.Nm DEVICE_ATTACH
+.Nd デバイスのアタッチ
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn DEVICE_ATTACH "device_t dev"
+.Sh 解説
+.Fn DEVICE_PROBE
+メソッドが既に呼び出され、デバイスが存在していると示された後に
+デバイスをシステムにアタッチします。
+.Fn DEVICE_ATTACH
+メソッドはハードウェアの初期化と
+その他の
+.Pf ( Xr devfs 5
+エントリのような) システムリソース
+の割り当てを行なうべきです。
+.Pp
+バスを実装するデバイスは、そのバスにアタッチされたデバイスの存在のプローブ、
+およびそれらを子として追加するためにこのメソッドを使用するべきです。
+.Xr bus_generic_attach 9
+と共に使用された場合、その子デバイスは自動的にプローブされて
+アタッチされます。
+.Sh 戻り値
+成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。
+.Sh 関連項目
+.Xr devfs 5 ,
+.Xr device 9 ,
+.Xr DEVICE_DETACH 9 ,
+.Xr DEVICE_IDENTIFY 9 ,
+.Xr DEVICE_PROBE 9 ,
+.Xr DEVICE_SHUTDOWN 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson Aq dfr@FreeBSD.org
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/DEVICE_DETACH.9 b/documentation/manual-pages/ja/man9/DEVICE_DETACH.9
new file mode 100644
index 0000000000..cc0aeaf6db
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/DEVICE_DETACH.9
@@ -0,0 +1,68 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/DEVICE_DETACH.9,v 1.11.2.1 2005/01/10 23:36:20 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVICE_DETACH 9
+.Os
+.Sh 名称
+.Nm DEVICE_DETACH
+.Nd デバイスのデタッチ
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn DEVICE_DETACH "device_t dev"
+.Sh 解説
+デバイスをデタッチします。
+ユーザがドライバソフトウェアを置き換えた場合、またはデバイスがシステムから
+物理的に切り離されようとしている場合 (たとえば
+.Xr pccard 4
+デバイス) に、
+呼び出されることができます。
+.Pp
+このメソッドは
+.Xr DEVICE_ATTACH 9
+メソッドで割り当てられたあらゆるシステムリソースを解放し、
+ハードウェアを健全な状態に
+リセットする (すなわち割り込みを無効にするなど) べきです。
+.Sh 戻り値
+成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。
+.Sh 関連項目
+.Xr pccard 4 ,
+.Xr device 9 ,
+.Xr DEVICE_ATTACH 9 ,
+.Xr DEVICE_IDENTIFY 9 ,
+.Xr DEVICE_PROBE 9 ,
+.Xr DEVICE_SHUTDOWN 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/DEVICE_IDENTIFY.9 b/documentation/manual-pages/ja/man9/DEVICE_IDENTIFY.9
new file mode 100644
index 0000000000..558582b09a
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/DEVICE_IDENTIFY.9
@@ -0,0 +1,94 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2001 Alexander Langer
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/DEVICE_IDENTIFY.9,v 1.12 2004/07/03 18:29:23 ru Exp %
+.\" $FreeBSD$
+.Dd May 13, 2004
+.Dt DEVICE_IDENTIFY 9
+.Os
+.Sh 名称
+.Nm DEVICE_IDENTIFY
+.Nd デバイスの識別とその登録
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft void
+.Fn DEVICE_IDENTIFY "driver_t *driver" "device_t parent"
+.Sh 解説
+デバイスのための識別関数は、例えば ISA バスなどの、子デバイスを独立して
+識別できないバス上のデバイスのためにだけ必要とされます。
+これはデバイスを認識 (大抵はハードウェアの不明瞭でないレジスタに
+アクセスすることによって行われます) し、
+そのデバイスに関してカーネルに通知し、
+新しいデバイスの実体を作成するために、使用されます。
+.Pp
+.Xr BUS_ADD_CHILD 9
+はバスの子デバイスとして、デバイスを登録するために使用されます。
+そのデバイスの (IRQ や I/O ポートのような) リソースは、個々のリソースのために
+.Fn bus_set_resource
+(詳細は
+.Xr bus_set_resource 9
+を参照)
+を呼び出すことによってカーネルに登録されます。
+.Pp
+デバイスツリーおよびデバイスドライバツリーが解体されるため、
+.Fn DEVICE_IDENTIFY
+ルーチンはこれを考慮に入れる必要があります。
+識別ルーチンを持っているデバイスドライバをロードおよびアンロードする場合には、
+この可能性を排除するための特別の手段がとられない限りは、
+その子ノードは同じノードを何度も追加する能力を持っています。
+.Sh 使用例
+以下の疑似コードは、ハードウェアの一部をプローブし、デバイスと
+そのリソース (I/O ポート) をカーネルに登録する関数の例を示しています。
+.Bd -literal
+void
+foo_identify(driver_t *driver, device_t parent)
+{
+ device_t child;
+
+ デバイス情報の取り出し;
+ if (サポートするデバイスうちの 1 つがマッチする &&
+ デバイスツリーに未だ存在しない) {
+ child = BUS_ADD_CHILD(parent, 0, "foo", -1);
+ bus_set_resource(child, SYS_RES_IOPORT, 0, FOO_IOADDR, 1);
+ }
+}
+.Ed
+.Sh 関連項目
+.Xr BUS_ADD_CHILD 9 ,
+.Xr bus_set_resource 9 ,
+.Xr device 9 ,
+.Xr device_add_child 9 ,
+.Xr DEVICE_ATTACH 9 ,
+.Xr DEVICE_DETACH 9 ,
+.Xr DEVICE_PROBE 9 ,
+.Xr DEVICE_SHUTDOWN 9
+.Sh 作者
+このマニュアルページは
+.An Alexander Langer Aq alex@FreeBSD.org
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/DEVICE_PROBE.9 b/documentation/manual-pages/ja/man9/DEVICE_PROBE.9
new file mode 100644
index 0000000000..b9bf9dd8c7
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/DEVICE_PROBE.9
@@ -0,0 +1,91 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/DEVICE_PROBE.9,v 1.19.2.1 2005/01/10 23:51:38 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 6, 2005
+.Dt DEVICE_PROBE 9
+.Os
+.Sh 名称
+.Nm DEVICE_PROBE
+.Nd デバイスの存在のプローブ
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn DEVICE_PROBE "device_t dev"
+.Sh 解説
+.Fn DEVICE_PROBE
+メソッドはデバイスがあるかどうかを知るためにプローブするべきです。
+デバイスが存在すれば 0 を、デバイスが見つからなければ
+.Er ENXIO
+を返すべきです。
+プローブの間にその他のエラー (メモリ割当の失敗など) が起こった場合は、
+適切なエラーコードが返されるべきです。
+1 つのデバイスに 2 つ以上のドライバが当てはまるような場合のために、
+優先順位を返すことができます。
+この場合、成功の値は 0 以下の値で、
+最も大きな値が最も適切であることを意味します。
+失敗の値は正の値で表現され、通常の
+.Ux
+エラーコードが目的に応じて使用されるべきです。
+.Pp
+ドライバが 0 より小さい成功値を返す場合、
+ドライバはそのデバイスにアタッチされるのが
+同じドライバであると想定してはいけません。
+特に、softc 構造体に格納されたすべての値が
+アタッチメソッドで利用可能であると想定してはいけませんし、
+また、アタッチメソッドが呼ばれた場合、
+プローブの間に割り当てられたあらゆるリソースは解放して
+再割り当てしなければなりません。
+加えて、そのプローブルーチンはどんなことがあっても副作用がないことが、
+絶対必要条件です。
+プローブルーチンは、アタッチルーチンが呼び出される前に 2 回以上
+呼び出されることがあります。
+.Pp
+成功値 0 を返す場合には、
+ドライバはそのデバイスがアタッチされるであろうと想定することはできますが、
+プローブルーチンが戻った時にいかなるリソースをも保持してはなりません。
+成功コード 0 を返すときには、
+ドライバは softc は保存されていると決めてかかることができます。
+.Sh 戻り値
+0 以下の値は成功を表し、0 より大きな値はエラー (errno) を表します。
+0 以下の値の時、0 は最高の優先順位を表し、それ以上のプローブは行ないません。
+0 未満の値は、低い値程、低い優先順位を表します。
+たとえば -100 は -50 よりも低い優先順位を表します。
+.Sh 関連項目
+.Xr device 9 ,
+.Xr DEVICE_ATTACH 9 ,
+.Xr DEVICE_DETACH 9 ,
+.Xr DEVICE_IDENTIFY 9 ,
+.Xr DEVICE_SHUTDOWN 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/DEVICE_SHUTDOWN.9 b/documentation/manual-pages/ja/man9/DEVICE_SHUTDOWN.9
new file mode 100644
index 0000000000..a7eac51f52
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/DEVICE_SHUTDOWN.9
@@ -0,0 +1,59 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/DEVICE_SHUTDOWN.9,v 1.7.8.1 2005/01/10 23:51:38 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 6, 2005
+.Dt DEVICE_SHUTDOWN 9
+.Os
+.Sh 名称
+.Nm DEVICE_SHUTDOWN
+.Nd システムシャットダウンの間に呼ばれる
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn DEVICE_SHUTDOWN "device_t dev"
+.Sh 解説
+.Fn DEVICE_SHUTDOWN
+メソッドは、システムシャットダウンの間に呼び出され、
+ドライバがハードウェアをコンピュータがリブートしても構わない状態にすることを
+可能にします。
+.Sh 戻り値
+成功時には 0 が返され、それ以外の場合にはエラーが返されます。
+.Sh 関連項目
+.Xr device 9 ,
+.Xr DEVICE_ATTACH 9 ,
+.Xr DEVICE_DETACH 9 ,
+.Xr DEVICE_IDENTIFY 9 ,
+.Xr DEVICE_PROBE 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/DEV_MODULE.9 b/documentation/manual-pages/ja/man9/DEV_MODULE.9
new file mode 100644
index 0000000000..818d8520c1
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/DEV_MODULE.9
@@ -0,0 +1,107 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2001 Alexander Langer
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/DEV_MODULE.9,v 1.4 2001/12/26 23:14:04 davidc Exp %
+.\"
+.\" $FreeBSD$
+.Dd March 11, 2001
+.Dt DEV_MODULE 9
+.Os
+.Sh 名称
+.Nm DEV_MODULE
+.Nd デバイスドライバモジュール宣言マクロ
+.Sh 書式
+.In sys/param.h
+.In sys/kernel.h
+.In sys/module.h
+.In sys/conf.h
+.Fn DEV_MODULE "name" "modeventhand_t evh" "void *arg"
+.Sh 解説
+.Fn DEV_MODULE
+マクロはデバイスドライバカーネルモジュールを宣言します。
+これは
+.Vt moduledata_t
+構造体を埋めて、それから
+.Fn DECLARE_MODULE
+を正しい引数で呼び出します。ここで、
+.Fa name
+はモジュール名で、
+.Fa ( arg
+を引数として持つ)
+.Fa evh
+はそのモジュールのためのイベントハンドラです (詳細については
+.Xr DECLARE_MODULE 9
+を参照)。
+イベントハンドラはロード時に
+.Fn make_dev
+でデバイスを作成し、アンロードされる時に
+.Fn destroy_dev
+でそのデバイスを破壊することを、期待されています。
+.Sh 使用例
+.Bd -literal
+#include <sys/module.h>
+#include <sys/conf.h>
+
+static struct cdevsw foo_devsw = { ... };
+
+static dev_t sdev;
+
+static int
+foo_load(module_t mod, int cmd, void *arg)
+{
+ int err = 0;
+
+ switch (cmd) {
+ case MOD_LOAD:
+ sdev = make_dev(&foo_devsw, 0, UID_ROOT, GID_WHEEL, 0600, "foo");
+ break; /* 成功 */
+
+ case MOD_UNLOAD:
+ case MOD_SHUTDOWN:
+ destroy_dev(sdev);
+ break; /* 成功 */
+
+ default:
+ err = EINVAL;
+ break;
+ }
+
+ return(err);
+}
+
+DEV_MODULE(foo, foo_load, NULL);
+.Ed
+.Sh 関連項目
+.Xr DECLARE_MODULE 9 ,
+.Xr destroy_dev 9 ,
+.Xr make_dev 9 ,
+.Xr module 9
+.Sh 作者
+このマニュアルページは
+.An Alexander Langer Aq alex@FreeBSD.org
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/DRIVER_MODULE.9 b/documentation/manual-pages/ja/man9/DRIVER_MODULE.9
new file mode 100644
index 0000000000..38e859d057
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/DRIVER_MODULE.9
@@ -0,0 +1,113 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2000 Alexander Langer
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/DRIVER_MODULE.9,v 1.10 2001/12/26 23:14:04 davidc Exp %
+.\"
+.\" $FreeBSD$
+.Dd May 16, 2000
+.Dt DRIVER_MODULE 9
+.Os
+.Sh 名称
+.Nm DRIVER_MODULE
+.Nd カーネルドライバ宣言マクロ
+.Sh 書式
+.In sys/param.h
+.In sys/kernel.h
+.In sys/bus.h
+.In sys/module.h
+.Fn DRIVER_MODULE name busname "driver_t driver" "devclass_t devclass" "modeventhand_t evh" "void *arg"
+.Fn MULTI_DRIVER_MODULE name busname "driver_t drivers[]" "devclass_t devclass" "modeventhand_t evh" "void *arg"
+.Sh 解説
+.Fn DRIVER_MODULE
+マクロは、カーネルドライバを宣言します。
+.Fn DRIVER_MODULE
+は実際のドライバ宣言に展開し、そこで
+.Fa name
+はドライバとその関数の接頭辞として使用されます。
+これはプレインテキストとして与えられ、
+.Li char
+または
+.Li char *
+ではないことに注意してください。
+.Pp
+.Fa busname
+はドライバの親のバス (PCI, ISA, PPBUS, その他) で、
+.Ql pci ,
+.Ql isa ,
+.Ql ppbus
+等です。
+.Pp
+.Fn DRIVER_MODULE
+の中で使用される識別子は、ドライバの名前と別のものにすることができます。
+また、異なるバス上には同じドライバ識別子が存在できます。
+これは、同じドライバを使用する同一または異なるバス上の種々のカード用に、
+フロントエンドをうまくきれいに作成する方法です。
+例えば、次のようにできます。
+.Pp
+.Fn DRIVER_MODULE foo isa foo_driver foo_devclass NULL NULL ;
+.Pp
+.Fn DRIVER_MODULE foo pci foo_driver foo_devclass NULL NULL ;
+.Pp
+.Fa driver
+は
+.Li driver_t
+型のドライバで、ドライバについての情報を含み、それゆえ
+.Fn DRIVER_MODULE
+を呼び出すための最も重要な 2 つの部分のうちの 1 つです。
+.Pp
+引数
+.Fa devclass
+はデバイスについてのカーネル内部の情報を含み、
+カーネルドライバモジュールの内部で使用されます。
+.Pp
+引数
+.Fa evh
+はドライバ (またはモジュール) がロードまたはアンロードされた時に
+呼び出されるイベントハンドラです (
+.Xr module 9
+を参照してください)。
+.Pp
+現時点では
+.Fa arg
+は使用されず、
+.Dv NULL
+ポインタであるべきです。
+.Pp
+.Fn MULTI_DRIVER_MODULE
+は
+.Fn DRIVER_MODULE
+の特殊バージョンであり、
+単一のドライバインスタンスの代りにドライバリストを取ります。
+.Sh 関連項目
+.Xr device 9 ,
+.Xr driver 9 ,
+.Xr module 9
+.Sh 作者
+このマニュアルページは
+.An Alexander Langer Aq alex@FreeBSD.org
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/KASSERT.9 b/documentation/manual-pages/ja/man9/KASSERT.9
new file mode 100644
index 0000000000..15bbc8df66
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/KASSERT.9
@@ -0,0 +1,84 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2000 Jonathan M. Bresler
+.\"
+.\" 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/KASSERT.9,v 1.12 2003/05/16 19:54:20 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 14, 2000
+.Os
+.Dt KASSERT 9
+.Sh 名称
+.Nm KASSERT
+.Nd カーネル数式検証マクロ
+.Sh 書式
+.Cd "options INVARIANTS"
+.Pp
+.In sys/param.h
+.In sys/systm.h
+.Fn KASSERT expression msg
+.Sh 解説
+.Cd "options INVARIANTS"
+オプション付きでコンパイルされたカーネル内では、
+.Fn KASSERT
+マクロは与えられた数式
+.Fa expression
+をテストし、それが偽である場合には
+.Xr panic 9
+関数を呼び出し、稼働中のシステムを停止させます。
+.Pp
+.Cd "options INVARIANTS"
+オプションの無いカーネル内では、
+.Fn KASSERT
+マクロは何もしない様に定義されます。
+第 2 引数は、
+.Xr printf 9
+フォーマット文字列とその引数を括弧に括ったものです。
+.Sh 使用例
+カーネル関数
+.Fn vput
+は、
+.Dv NULL
+ポインタを引数として呼び出されてはなりません。
+.Bd -literal -offset indent
+void
+vput(vp)
+ struct vnode *vp;
+{
+ struct proc *p = curproc;
+ KASSERT(vp != NULL, ("vput: null vp"));
+ ...
+}
+.Ed
+.Sh 関連項目
+.Xr config 8 ,
+.Xr panic 9
+.Sh 作者
+このマニュアルページは
+.An Jonathan M. Bresler
+.Aq jmb@FreeBSD.org
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/MD5.9 b/documentation/manual-pages/ja/man9/MD5.9
new file mode 100644
index 0000000000..9a9d953256
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/MD5.9
@@ -0,0 +1,77 @@
+.\" $OpenBSD: md5.9,v 1.1 1996/04/17 21:40:14 mickey Exp $
+.\"
+.\" Copyright (c) 1996 Michael Shalayeff
+.\" 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.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by Michael Shalayeff
+.\" 3. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/MD5.9,v 1.10 2004/07/03 18:29:23 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd April 17, 1996
+.Dt MD5 9
+.Os
+.Sh 名称
+.Nm MD5 ,
+.Nm MD5Init ,
+.Nm MD5Transform
+.Nd メッセージダイジェストルーチン
+.Sh 書式
+.In sys/types.h
+.In sys/md5.h
+.Ft void
+.Fn MD5Init "MD5_CTX *buf"
+.Ft void
+.Fn MD5Transform "u_int32_t buf[4]" "const unsigned char block[64]"
+.Sh 解説
+.Nm
+モジュールは、RSA Data Security, Inc.\& の MD5 メッセージダイジェスト
+アルゴリズム(MD5)を実装しています。
+これはデータの 128 ビットの MD5 ダイジェストを生成します。
+.Pp
+.Bl -hang -width MD5Transformxx
+.It Pa MD5Init
+ダイジェストを生成するために
+.Fn MD5Transform
+を使用する直前に呼び出さなくてはなりません。
+引数
+.Fa buf
+は次に続いて呼ばれる
+.Fn MD5Transform
+ルーチンが生成するダイジェストの格納領域です。
+.It Pa MD5Transform
+MD5 アルゴリズムの中核で、
+引数
+.Fa block
+で渡される 64 文字の新しいデータの追加を反映するように、
+.Fa buf
+に格納してある MD5 ハッシュを変更します。
+.El
+.Sh 著作権
+MD5 変換のコードはパブリックドメインに置かれていた Colin Plumb の
+実装から得ています。
+MD5 暗号化チェックサムは Ronald Rivest が考案し、
+RFC 1321 "The MD5 Message Digest Algorithm" に記述されています。
diff --git a/documentation/manual-pages/ja/man9/MODULE_DEPEND.9 b/documentation/manual-pages/ja/man9/MODULE_DEPEND.9
new file mode 100644
index 0000000000..c74e5cc165
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/MODULE_DEPEND.9
@@ -0,0 +1,72 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2001 Alexander Langer
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/MODULE_DEPEND.9,v 1.4.8.1 2005/01/10 23:39:18 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 7, 2005
+.Dt MODULE_DEPEND 9
+.Os
+.Sh 名称
+.Nm MODULE_DEPEND
+.Nd カーネルモジュール依存性の設定
+.Sh 書式
+.In sys/param.h
+.In sys/module.h
+.Fn MODULE_DEPEND "name" "moddepend" "int minversion" "int prefversion" "int maxversion"
+.Sh 解説
+.Fn MODULE_DEPEND
+マクロは、
+.Fn MODULE_VERSION
+でそのバージョンを既に登録している
+.Fa moddepend
+という名前の別のカーネルモジュールとの依存性を設定します。
+.Pp
+.Fa moddepend
+に 3 つのバージョンを指定しなければなりません:
+.Bl -tag -width ".Fa prefversion"
+.It Fa minversion
+現在のモジュールが依存できる最小のバージョン。
+.It Fa maxversion
+現在のモジュールが依存できる最大のバージョン。
+.It Fa prefversion
+現在のモジュールが依存できる望ましいバージョン。
+.El
+.Sh 使用例
+.Bd -literal
+MODULE_DEPEND(foo, bar, 1, 3, 4);
+.Ed
+.Sh 関連項目
+.Xr DECLARE_MODULE 9 ,
+.Xr module 9 ,
+.Xr MODULE_VERSION 9
+.Sh 作者
+このマニュアルページは
+.An -nosplit
+.An Alexander Langer Aq alex@FreeBSD.org
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/MODULE_VERSION.9 b/documentation/manual-pages/ja/man9/MODULE_VERSION.9
new file mode 100644
index 0000000000..525c1e03fe
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/MODULE_VERSION.9
@@ -0,0 +1,62 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2001 Alexander Langer
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/MODULE_VERSION.9,v 1.5 2001/12/26 23:14:04 davidc Exp %
+.\"
+.\" $FreeBSD$
+.Dd March 11, 2001
+.Dt MODULE_VERSION 9
+.Os
+.Sh 名称
+.Nm MODULE_VERSION
+.Nd カーネルモジュールバージョンの設定
+.Sh 書式
+.In sys/param.h
+.In sys/module.h
+.Fn MODULE_VERSION "name" "int version"
+.Sh 解説
+.Fn MODULE_VERSION
+マクロは
+.Fa name
+と呼ばれているモジュールのバージョンを設定します。
+それで、他のカーネルモジュールがこのモジュール
+.Xr ( MODULE_DEPEND 9
+参照) に依存することが可能です。
+.Sh 使用例
+.Bd -literal
+MODULE_VERSION(foo, 1);
+.Ed
+.Sh 関連項目
+.Xr DECLARE_MODULE 9 ,
+.Xr module 9 ,
+.Xr MODULE_DEPEND 9
+.Sh 作者
+このマニュアルページは
+.An -nosplit
+.An Alexander Langer Aq alex@FreeBSD.org
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/SYSCALL_MODULE.9 b/documentation/manual-pages/ja/man9/SYSCALL_MODULE.9
new file mode 100644
index 0000000000..3ed251c66f
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/SYSCALL_MODULE.9
@@ -0,0 +1,88 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2001 Alexander Langer
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/SYSCALL_MODULE.9,v 1.5.4.1 2005/01/10 23:45:00 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 7, 2005
+.Dt SYSCALL_MODULE 9
+.Os
+.Sh 名称
+.Nm SYSCALL_MODULE
+.Nd syscall カーネルモジュール宣言マクロ
+.Sh 書式
+.In sys/param.h
+.In sys/kernel.h
+.In sys/proc.h
+.In sys/module.h
+.In sys/sysent.h
+.Fn SYSCALL_MODULE name "int *offset" "struct sysent new_sysent" "modeventhand_t evh" "void *arg"
+.Sh 解説
+.Fn SYSCALL_MODULE
+マクロは新しい syscall を宣言します。
+.Fn SYSCALL_MODULE
+は
+.Fa name
+という名前のカーネルモジュールの宣言に展開されます。
+.Pp
+このマクロで要求される残りの引数は以下の通りです。
+.Bl -tag -width ".Fa new_sysent"
+.It Fa offset
+syscall が割り付ける
+.Vt "struct sysent"
+中のオフセットを保存する
+.Vt int
+へのポインタ。
+.It Fa new_sysent
+syscall を実装する関数およびこの関数が必要とする引数の数
+.In ( sys/sysent.h
+参照)。
+.It Fa evh
+引数
+.Fa arg
+を取るカーネルモジュールのイベントハンドラ関数へのポインタ。
+詳細については
+.Xr module 9
+を参照してください。
+.It Fa arg
+それが呼び出されるとき、
+.Fa evh
+イベントハンドラのコールバック関数へ渡される引数。
+.El
+.Sh 使用例
+syscall モジュールのための最低限の例が、
+.Pa /usr/share/examples/kld/syscall/module/syscall.c
+の中に見つけられます。
+.Sh 関連項目
+.Xr module 9
+.Pp
+.Pa /usr/share/examples/kld/syscall/module/syscall.c
+.Sh 作者
+このマニュアルページは
+.An Alexander Langer Aq alex@FreeBSD.org
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/VFS.9 b/documentation/manual-pages/ja/man9/VFS.9
new file mode 100644
index 0000000000..1fa0f2e48a
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VFS.9
@@ -0,0 +1,65 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VFS.9,v 1.10.4.1 2005/01/10 23:29:08 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VFS 9
+.Sh 名称
+.Nm VFS
+.Nd ファイルシステムへのカーネルインタフェース
+.Sh 解説
+ファイルシステムの設定や情報を、
+設定したり問い合わせたりするために使用される呼び出しです。
+.Pp
+ある VFS 操作を実装しないファイルシステムは、
+空の関数を実装したり、
+.Fa eopnotsupp
+にキャストしたりするよりも、
+.Pa src/sys/kern/vfs_default.c
+にある適切な
+.Fa vfs_std
+関数を使用するべきです。
+.Sh 関連項目
+.Xr VFS_CHECKEXP 9 ,
+.Xr VFS_FHTOVP 9 ,
+.Xr VFS_MOUNT 9 ,
+.Xr VFS_QUOTACTL 9 ,
+.Xr VFS_START 9 ,
+.Xr VFS_STATFS 9 ,
+.Xr VFS_SYNC 9 ,
+.Xr VFS_UNMOUNT 9 ,
+.Xr VFS_VGET 9 ,
+.Xr VFS_VPTOFH 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/VFS_CHECKEXP.9 b/documentation/manual-pages/ja/man9/VFS_CHECKEXP.9
new file mode 100644
index 0000000000..0b76c50564
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VFS_CHECKEXP.9
@@ -0,0 +1,91 @@
+.\"
+.\" Copyright (c) 1999 Alfred Perlstein
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following condition
+.\" is met:
+.\" Redistributions of source code must retain the above copyright
+.\" notice, this condition and the following disclaimer.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VFS_CHECKEXP.9,v 1.11.4.1 2005/01/10 23:51:38 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 7, 2005
+.Os
+.Dt VFS_CHECKEXP 9
+.Sh 名称
+.Nm VFS_CHECKEXP
+.Nd ファイルシステムがクライアントにエクスポートされているかどうかのチェック
+.Sh 書式
+.In sys/param.h
+.In sys/mount.h
+.Ft int
+.Fn VFS_CHECKEXP "struct mount *mp" "struct sockaddr *nam" "int *exflagsp" "struct ucred **credanonp"
+.Sh 解説
+.Fn VFS_CHECKEXP
+マクロは、クライアントにマウントポイントがエクスポート
+されているかどうかをチェックするために、NFS サーバが使用します。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width credanonp
+.It Fa mp
+チェック対象のマウントポイント。
+.It Fa nam
+クライアントのネットワークアドレスを含む mbuf。
+.It Fa exflagsp
+このクライアントに対する、エクスポートフラグの戻り値。
+.It Fa credanonp
+このクライアントに対する、匿名の証明の戻り値。
+.El
+.Pp
+.Fn VFS_CHECKEXP
+マクロは、ファイルシステムのマウント構造に対して呼び出して、
+.Fa nam
+にアドレスが含まれるクライアントに対してそのファイルシステムが
+エクスポートされているかどうかを決定できます。
+.Pp
+一般的には、
+クライアントがファイルシステムにアクセス可能かを確認するために、
+.Xr VFS_FHTOVP 9
+の前に呼び出されます。
+.Pp
+ファイルシステムは、
+クライアントがファイルシステムをアクセスできるかを実証するために、
+.Vt netexport
+構造体の適切なアドレス、クライアントのアドレス、および
+.Fa nam
+を伴って、
+.Xr vfs_export_lookup 9
+を呼び出すべきです。
+.Sh 戻り値
+そのクライアントに対するエクスポートフラグと
+.Pf ( Xr vfs_export_lookup 9
+から返される) 匿名の証明が
+.Fa *exflagsp
+と
+.Fa *credanonp
+に返されるでしょう。
+.Sh 関連項目
+.Xr VFS 9 ,
+.Xr VFS_FHTOVP 9 ,
+.Xr VFS_VPTOFH 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Alfred Perlstein
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/VFS_FHTOVP.9 b/documentation/manual-pages/ja/man9/VFS_FHTOVP.9
new file mode 100644
index 0000000000..3fac0d2f57
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VFS_FHTOVP.9
@@ -0,0 +1,85 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VFS_FHTOVP.9,v 1.16.4.1 2005/01/10 23:51:38 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 7, 2005
+.Os
+.Dt VFS_FHTOVP 9
+.Sh 名称
+.Nm VFS_FHTOVP
+.Nd NFS ファイルハンドルから vnode への変換
+.Sh 書式
+.In sys/param.h
+.In sys/mount.h
+.In sys/vnode.h
+.Ft int
+.Fn VFS_FHTOVP "struct mount *mp" "struct fid *fhp" "struct vnode **vpp"
+.Sh 解説
+.Fn VFS_FHTOVP
+マクロは NFS ファイルハンドルから vnode へ
+変換するために NFS サーバによって使用されます。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width vpp
+.It Fa mp
+ファイルシステム。
+.It Fa fhp
+変換されるファイルハンドル。
+.It Fa vpp
+新しい、ロックされた vnode の戻り値。
+.El
+.Pp
+ファイルハンドルの内容は、ファイルシステムによって定義されていて、
+システムの他の部分によって検査されません。
+ファイルが削除された時や新しいファイルのためにファイルシステムの資源が
+再利用された時の通知と同じ程度に、ファイルシステムの中のファイルを
+独自に識別するための十分な情報を含んでいるべきです。
+例えば、UFS ファイルシステムは、ファイルハンドルの中に inode 番号
+および inode 世代カウンタを格納します。
+.Pp
+一般的には
+.Fn VFS_FHTOVP
+への呼び出し前は、そのファイルがクライアントにとって
+アクセス可能であるかどうかを検査するために
+.Xr VFS_CHECKEXP 9
+呼び出しが行われます。
+.Sh 戻り値
+そのファイルのロックされた vnode が
+.Fa *vpp
+に返されます。
+.Sh 関連項目
+.Xr VFS 9 ,
+.Xr VFS_CHECKEXP 9 ,
+.Xr VFS_VPTOFH 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/VFS_MOUNT.9 b/documentation/manual-pages/ja/man9/VFS_MOUNT.9
new file mode 100644
index 0000000000..bd673b2983
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VFS_MOUNT.9
@@ -0,0 +1,85 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VFS_MOUNT.9,v 1.13.4.1 2005/01/10 23:46:12 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 7, 2005
+.Os
+.Dt VFS_MOUNT 9
+.Sh 名称
+.Nm VFS_MOUNT
+.Nd ファイルシステムのマウント
+.Sh 書式
+.In sys/param.h
+.In sys/mount.h
+.In sys/vnode.h
+.Ft int
+.Fn VFS_MOUNT "struct mount *mp" "struct thread *td"
+.Sh 解説
+.Fn VFS_MOUNT
+マクロは、システムの名前空間にファイルシステムをマウントするか、
+既にマウントされたファイルシステムの属性を更新します。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width data
+.It Fa mp
+ファイルシステムを表現する構造体。
+.It Fa td
+ファイルシステムをマウントしようとしているスレッド。
+.El
+.Pp
+.Fn VFS_MOUNT
+マクロは、新しいファイルシステムをマウントする目的と、
+既存のファイルシステムの属性変更の目的の、両方の用途で呼び出されます。
+.Fa mp->mnt_flag
+に
+.Dv MNT_UPDATE
+フラグが設定されている場合には、ファイルシステムは
+.Fa mp->mnt_flag
+の値により内部状態を更新するべきです。
+例えば、読み取り専用ファイルシステムから読み書き可能への変換に
+使用されることが可能です。
+また、
+.Xr mountd 8
+によってファイルシステムの NFS エクスポート情報の更新にも使用されています。
+.Pp
+.Dv MNT_UPDATE
+フラグが設定されていない場合には、
+これは新規にマウントされたファイルシステムです。
+ファイルシステムのコードは、ファイルシステムの表現に必要な私的データの
+割り当てと初期化を行なうべきです (この情報を格納するために
+.Fa mp->mnt_data
+フィールドを使用可能です)。
+.Sh 関連項目
+.Xr VFS 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/VFS_QUOTACTL.9 b/documentation/manual-pages/ja/man9/VFS_QUOTACTL.9
new file mode 100644
index 0000000000..cd55d6d741
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VFS_QUOTACTL.9
@@ -0,0 +1,55 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VFS_QUOTACTL.9,v 1.10 2003/10/23 06:24:55 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VFS_QUOTACTL 9
+.Sh 名称
+.Nm VFS_QUOTACTL
+.Nd ファイルシステムクォータの操作
+.Sh 書式
+.In sys/param.h
+.In sys/mount.h
+.In sys/vnode.h
+.Ft int
+.Fn VFS_QUOTACTL "struct mount *mp" "int cmds" "uid_t uid" "caddr_t arg" "struct thread *td"
+.Sh 解説
+ファイルシステムのクォータを実装します。
+引数についての解説は
+.Xr quotactl 2
+を参照してください。
+.Sh 関連項目
+.Xr quotactl 2 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VFS_ROOT.9 b/documentation/manual-pages/ja/man9/VFS_ROOT.9
new file mode 100644
index 0000000000..fef5033e96
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VFS_ROOT.9
@@ -0,0 +1,62 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VFS_ROOT.9,v 1.10 2004/07/12 09:06:51 alfred Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VFS_ROOT 9
+.Sh 名称
+.Nm VFS_ROOT
+.Nd ファイルシステムのルート vnode の取得
+.Sh 書式
+.In sys/param.h
+.In sys/mount.h
+.In sys/vnode.h
+.Ft int
+.Fn VFS_ROOT "struct mount *mp" "struct vnode **vpp" "struct thread *td"
+.Sh 解説
+ファイルシステムのルートディレクトリに対する、ロックされた vnode を返します。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width vpp
+.It Fa mp
+ファイルシステム。
+.It Fa vpp
+ルート vnode の引数の戻り値。
+.It Fa td
+呼び出し側のスレッド。
+.El
+.Sh 関連項目
+.Xr VFS 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VFS_SET.9 b/documentation/manual-pages/ja/man9/VFS_SET.9
new file mode 100644
index 0000000000..b3c3589f2d
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VFS_SET.9
@@ -0,0 +1,106 @@
+.\"
+.\" 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/VFS_SET.9,v 1.7.4.1 2005/01/10 23:47:20 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd December 2, 2001
+.Dt VFS_SET 9
+.Os
+.Sh 名称
+.Nm VFS_SET
+.Nd ローダブルファイルシステム
+.Vt vfsconf
+のセットアップ
+.Sh 書式
+.In sys/param.h
+.In sys/kernel.h
+.In sys/module.h
+.In sys/mount.h
+.Ft void
+.Fn VFS_SET "struct vfsops *vfsops" "fsname" "int flags"
+.Sh 解説
+.Fn VFS_SET
+はローダブルモジュールのために与えられた
+.Fa vfsops , fsname
+および
+.Fa flags
+で
+.Vt vfsconf
+構造体を作成し、イベントハンドラとして
+.Fn vfs_modevent
+を使用して
+.Xr DECLARE_MODULE 9
+の呼び出しによって宣言します。
+.Pp
+.Fa flags
+引数のために利用可能な値は以下のとおりです:
+.Bl -hang -width ".Dv VFCF_SYNTHETIC"
+.It Dv VFCF_STATIC
+ファイルシステムはカーネル内で静的に利用可能であるべきです。
+.It Dv VFCF_NETWORK
+ネットワークにエクスポート可能なファイルシステムです。
+.It Dv VFCF_READONLY
+書き込み操作がサポートされていません。
+.It Dv VFCF_SYNTHETIC
+疑似ファイルシステムであり、データはディスク上のファイルを表現していません。
+.It Dv VFCF_LOOPBACK
+ループバックファイルシステムレイヤです。
+.It Dv VFCF_UNICODE
+ファイル名は Unicode として格納されます。
+.El
+.Sh 疑似コード
+.Bd -literal
+/*
+ * 使用するものを記述し、残りは vfs_std を使用します。
+ */
+static struct vfsops myfs_vfsops = {
+ myfs_mount,
+ vfs_stdstart,
+ myfs_unmount,
+ myfs_root,
+ vfs_stdquotactl,
+ myfs_statfs,
+ vfs_stdsync,
+ vfs_stdvget,
+ vfs_stdfhtovp,
+ vfs_stdcheckexp,
+ vfs_stdvptofh,
+ vfs_stdinit,
+ vfs_stduninit,
+ vfs_stdextattrctl,
+};
+
+VFS_SET(myfs_vfsops, skelfs, 0);
+.Ed
+.Sh 関連項目
+.Xr DECLARE_MODULE 9 ,
+.Xr vfsconf 9 ,
+.Xr vfs_modevent 9
+.Sh 作者
+このマニュアルページは
+.An Chad David Aq davidc@acns.ab.ca
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/VFS_START.9 b/documentation/manual-pages/ja/man9/VFS_START.9
new file mode 100644
index 0000000000..b9d586abc8
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VFS_START.9
@@ -0,0 +1,67 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VFS_START.9,v 1.10.4.2 2005/01/13 13:45:52 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 7, 2005
+.Os
+.Dt VFS_START 9
+.Sh 名称
+.Nm VFS_START
+.Nd ファイルシステムを操作可能にする
+.Sh 書式
+.In sys/param.h
+.In sys/mount.h
+.In sys/vnode.h
+.Ft int
+.Fn VFS_START "struct mount *mp" "int flags" "struct thread *td"
+.Sh 解説
+.Fn VFS_START
+マクロは
+.Xr VFS_MOUNT 9
+の後且つファイルシステムへの最初のアクセスの前に呼び出されます。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width flags
+.It Fa mp
+ファイルシステム。
+.It Fa flags
+フラグはファイルシステムの
+.Va vfs_start
+メソッドに渡します。
+.It Fa td
+ファイルシステムを起動しているスレッド。
+.El
+.Sh 関連項目
+.Xr VFS 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/VFS_STATFS.9 b/documentation/manual-pages/ja/man9/VFS_STATFS.9
new file mode 100644
index 0000000000..255704f035
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VFS_STATFS.9
@@ -0,0 +1,121 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VFS_STATFS.9,v 1.10.4.2 2005/01/13 13:45:52 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 7, 2005
+.Os
+.Dt VFS_STATFS 9
+.Sh 名称
+.Nm VFS_STATFS
+.Nd ファイルシステムの状態の取得
+.Sh 書式
+.In sys/param.h
+.In sys/mount.h
+.In sys/vnode.h
+.Ft int
+.Fn VFS_STATFS "struct mount *mp" "struct statfs *sbp" "struct thread *td"
+.Sh 解説
+.Fn VFS_STATFS
+マクロは、ファイルシステムについての様々な情報を返します。
+この情報には、推奨されている入出力サイズ、空き領域、空き inode 等があります。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width sbp
+.It Fa mp
+ファイルシステム。
+.It Fa sbp
+ファイルシステムに関する情報が置かれる、
+.In sys/mount.h
+で定義される
+.Vt statfs
+構造体です。
+.It Fa td
+ファイルシステムに問い合わせているスレッド。
+.El
+.Pp
+ファイルシステムに関連する
+.Vt "struct statfs"
+フイールドは以下の通りです。
+.Bl -tag -width ".Va f_mntfromname"
+.It Va f_type
+ファイルシステムのタイプ。
+.It Va f_flags
+エクスポートされたマウントフラグのコピー。
+.It Va f_bsize
+フラグメントサイズ。
+.It Va f_iosize
+最適化された転送ブロックサイズ。
+.It Va f_blocks
+ファイルシステム中のデータブロックの総数。
+.It Va f_bfree
+ファイルシステム中のフリーブロックの数。
+.It Va f_bavail
+スーパユーザでないプロセスで利用可能なフリーブロックの数。
+.It Va f_files
+ファイルシステム中のファイルノードの総数。
+.It Va f_ffree
+スーパユーザでないプロセスで利用可能なフリーのノードの数。
+.It Va f_syncwrites
+ファイルシステムがマウントされたときからの同期書き込みの数。
+.It Va f_asyncwrites
+ファイルシステムがマウントされたときからの非同期書き込みの数。
+.It Va f_syncreads
+ファイルシステムがマウントされたときからの同期読み込みの数。
+.It Va f_asyncreads
+ファイルシステムがマウントされたときからの非同期読み込みの数。
+.It Va f_namemax
+このファイルシステムでの最大のファイル名の長さ。
+.It Va f_owner
+ファイルシステムをマウントしたユーザのユーザ ID。
+.It Va f_fsid
+ユニークなファイルシステム ID。
+.It Va f_fstypename
+ファイルシステムタイプ名。
+最大
+.Dv MFSNAMELEN
+バイトの文字列。
+.It Va f_mntfromname
+マウントされたファイルシステムのデバイス名。
+最大
+.Dv MNAMELEN
+バイトの文字列。
+.It Va f_mntonname
+ファイルシステムがマウントされたディレクトリの名前。
+最大
+.Dv MNAMELEN
+バイトの文字列。
+.El
+.Sh 関連項目
+.Xr VFS 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/VFS_SYNC.9 b/documentation/manual-pages/ja/man9/VFS_SYNC.9
new file mode 100644
index 0000000000..855199b4a2
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VFS_SYNC.9
@@ -0,0 +1,85 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VFS_SYNC.9,v 1.12.4.2 2005/01/13 13:45:52 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 7, 2005
+.Os
+.Dt VFS_SYNC 9
+.Sh 名称
+.Nm VFS_SYNC
+.Nd 未書き込みデータの吐き出し
+.Sh 書式
+.In sys/param.h
+.In sys/mount.h
+.In sys/vnode.h
+.Ft int
+.Fn VFS_SYNC "struct mount *mp" "int waitfor" "struct ucred *cred" "struct thread *td"
+.Sh 解説
+.Fn VFS_SYNC
+マクロはファイルシステムの全ての未書き込みのデータを書き出します。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width ".Fa waitfor"
+.It Fa mp
+ファイルシステム。
+.It Fa waitfor
+関数が入出力の完了まで待つべきかどうか。
+指定可能な値は以下のとおりです。
+.Bl -tag -width MNT_NOWAIT
+.It Dv MNT_WAIT
+入出力の完了を同期的に待ちます。
+.It Dv MNT_NOWAIT
+全ての入出力を開始しますが、それを待ちません。
+.It Dv MNT_LAZY
+ファイルシステムの syncer によって書込まれていないデータを出力します。
+.El
+.It Fa cred
+呼び出し元の証明。
+.It Fa td
+呼び出しているスレッド。
+.El
+.Pp
+.Fn VFS_SYNC
+マクロは、ファイルシステムの
+.Va vfs_sync
+メソッドを呼び出します。
+それは、通常、ファイルシステム中の全ての vnode のために
+.Xr VOP_FSYNC 9
+を呼び出します。
+.Sh 関連項目
+.Xr fsync 2 ,
+.Xr sync 2 ,
+.Xr VFS 9 ,
+.Xr vnode 9 ,
+.Xr VOP_FSYNC 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/VFS_UNMOUNT.9 b/documentation/manual-pages/ja/man9/VFS_UNMOUNT.9
new file mode 100644
index 0000000000..591d6368f5
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VFS_UNMOUNT.9
@@ -0,0 +1,72 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VFS_UNMOUNT.9,v 1.10.4.1 2005/01/10 23:08:56 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 7, 2005
+.Os
+.Dt VFS_UNMOUNT 9
+.Sh 名称
+.Nm VFS_UNMOUNT
+.Nd ファイルシステムのアンマウント
+.Sh 書式
+.In sys/param.h
+.In sys/mount.h
+.In sys/vnode.h
+.Ft int
+.Fn VFS_UNMOUNT "struct mount *mp" "int mntflags" "struct thread *td"
+.Sh 解説
+.Fn VFS_UNMOUNT
+マクロは、ファイルシステムをアンマウントします。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width mntflags
+.It Fa mp
+ファイルシステム。
+.It Fa mntflags
+アンマウント操作のためのフラグのビットマスクです。
+現在
+.Fn VFS_UNMOUNT
+によってサポートされているフラグは以下の通りです。
+.Bl -tag -width ".Dv MNT_FORCE"
+.It Dv MNT_FORCE
+ファイルシステムがアンマウントされる前に
+オープンしているファイルは強制的に閉じられます。
+.El
+.It Fa td
+ファイルシステムをアンマウントしているスレッド。
+.El
+.Sh 関連項目
+.Xr vflush 9 ,
+.Xr VFS 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/VFS_VGET.9 b/documentation/manual-pages/ja/man9/VFS_VGET.9
new file mode 100644
index 0000000000..5dd4012b96
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VFS_VGET.9
@@ -0,0 +1,78 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VFS_VGET.9,v 1.14.4.1 2005/01/10 23:51:38 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 7, 2004
+.Os
+.Dt VFS_VGET 9
+.Sh 名称
+.Nm VFS_VGET
+.Nd inode 番号から vnode への変換
+.Sh 書式
+.In sys/param.h
+.In sys/mount.h
+.In sys/vnode.h
+.Ft int
+.Fn VFS_VGET "struct mount *mp" "ino_t ino" "int flags" "struct vnode **vpp"
+.Sh 解説
+.Fn VFS_VGET
+マクロは inode 番号を、ロックされた vnode へ変換します。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width ".Fa flags"
+.It Fa mp
+ファイルシステム。
+.It Fa ino
+そのファイルを表現する inode。
+.It Fa flags
+パススルーのための追加のロックフラグ。
+.It Fa vpp
+vnode の戻り値。
+.El
+.Pp
+これは、ファイルシステム中の各ファイルに対して
+一意の識別番号を持つファイルシステムのための、
+オプションのファイルシステムエントリポイントです。
+UFS ファイルシステムはこれを内部的に使用していますし、
+また NFSv3 サーバは
+.Dv READDIRPLUS
+NFS 呼び出しを実装するために使用しています。
+.Pp
+ファイルシステムがこの呼び出しをサポートしていない場合には、
+.Er EOPNOTSUPP
+を返すべきです。
+.Sh 関連項目
+.Xr VFS 9 ,
+.Xr vget 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/VFS_VPTOFH.9 b/documentation/manual-pages/ja/man9/VFS_VPTOFH.9
new file mode 100644
index 0000000000..341d42799a
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VFS_VPTOFH.9
@@ -0,0 +1,64 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VFS_VPTOFH.9,v 1.9 2003/10/23 06:24:55 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VFS_VPTOFH 9
+.Sh 名称
+.Nm VFS_VPTOFH
+.Nd vnode から NFS ファイルハンドルへの変換
+.Sh 書式
+.In sys/param.h
+.In sys/mount.h
+.In sys/vnode.h
+.Ft int
+.Fn VFS_VPTOFH "struct vnode *vp" "struct fid *fhp"
+.Sh 解説
+これは NFS サーバが使用し、
+一意にファイルを識別する不透明なファイルハンドルを作成します。
+このファイルハンドルを使用することにより、
+将来 NFS クライアントがそのファイルをアクセス可能となります。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width fhp
+.It Fa vp
+ファイルハンドルを生成する対象の vnode。
+.It Fa fhp
+ファイルハンドルの戻り値。
+.El
+.Sh 関連項目
+.Xr VFS 9 ,
+.Xr VFS_FHTOVP 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_ACCESS.9 b/documentation/manual-pages/ja/man9/VOP_ACCESS.9
new file mode 100644
index 0000000000..f65ac4af95
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_ACCESS.9
@@ -0,0 +1,153 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_ACCESS.9,v 1.19 2003/05/31 14:07:25 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_ACCESS 9
+.Sh 名称
+.Nm VOP_ACCESS
+.Nd ファイルまたは UNIX ドメインソケットのアクセス許可の調査
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_ACCESS "struct vnode *vp" "int mode" "struct ucred *cred" "struct thread *td"
+.Sh 解説
+このエントリポイントは、与えられた証明に対する、ファイルの
+アクセス許可を調査します。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width mode
+.It Fa vp
+調査対象ファイルの vnode。
+.It Fa mode
+要求されたアクセスのタイプ。
+.It Fa cred
+調査対象のユーザ証明。
+.It Fa td
+調査しているスレッド。
+.El
+.Pp
+.Fa mode
+は
+.Dv VREAD ,
+.Dv VWRITE
+または
+.Dv VEXEC
+を含むマスクです。
+.Sh ロック
+vnode は、入る時にロックされ、戻る時にもロックされ続けます。
+.Sh 戻り値
+ファイルが指定された方法でアクセス可能な場合には、0 が返されます。
+そうでない場合には、適切なエラーコードが返されます。
+.Sh 疑似コード
+.Bd -literal
+int
+vop_access(struct vnode *vp, int mode, struct ucred *cred, struct thread *td)
+{
+ int error;
+
+ /*
+ * ファイルがソケット、FIFO、またはファイルシステムに存在する
+ * ブロック型または文字型デバイスでない場合には、読み込み専用
+ * ファイルシステムへの書き込みは認められません。
+ */
+ if (mode & VWRITE) {
+ switch (vp->v_type) {
+ case VDIR:
+ case VLNK:
+ case VREG:
+ if (vp->v_mount->mnt_flag & MNT_RDONLY)
+ return EROFS;
+
+ break;
+ }
+ }
+
+ /* 不変ビットが設定されていれば、誰も書き込めません。 */
+ if ((mode & VWRITE) && vp has immutable bit set)
+ return EPERM;
+
+ /* そうでなければ、uid が 0 ならば常に許可。 */
+ if (cred->cr_uid == 0)
+ return 0;
+
+ mask = 0;
+
+ /* そうでなければ、所有者を調べます。 */
+ if (cred->cr_uid == owner of vp) {
+ if (mode & VEXEC)
+ mask |= S_IXUSR;
+ if (mode & VREAD)
+ mask |= S_IRUSR;
+ if (mode & VWRITE)
+ mask |= S_IWUSR;
+ return (((mode of vp) & mask) == mask ? 0 : EACCES);
+ }
+
+ /* そうでなければ、グループを調べます。 */
+ for (i = 0, gp = cred->cr_groups; i < cred->cr_ngroups; i++, gp++)
+ if (group of vp == *gp) {
+ if (mode & VEXEC)
+ mask |= S_IXGRP;
+ if (mode & VREAD)
+ mask |= S_IRGRP;
+ if (mode & VWRITE)
+ mask |= S_IWGRP;
+ return (((mode of vp) & mask) == mask ? 0 : EACCES);
+ }
+
+ /* そうでなければ、その他を調べます。 */
+ if (mode & VEXEC)
+ mask |= S_IXOTH;
+ if (mode & VREAD)
+ mask |= S_IROTH;
+ if (mode & VWRITE)
+ mask |= S_IWOTH;
+ return (((mode of vp) & mask) == mask ? 0 : EACCES);
+}
+.Ed
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er EPERM
+不変ファイルを変更しようとしました。
+.It Bq Er EACCES
+パーミッションビットのファイルモードまたは ACL が要求されたアクセスを
+許可しませんでした。
+.El
+.Sh 関連項目
+.Xr vaccess 9 ,
+.Xr vaccess_acl_posix1e 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_ACLCHECK.9 b/documentation/manual-pages/ja/man9/VOP_ACLCHECK.9
new file mode 100644
index 0000000000..9083794029
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_ACLCHECK.9
@@ -0,0 +1,102 @@
+.\"-
+.\" Copyright (c) 1999 Robert N. M. Watson
+.\" 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/VOP_ACLCHECK.9,v 1.11 2003/10/23 02:11:14 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd December 23, 1999
+.Os
+.Dt VOP_ACLCHECK 9
+.Sh 名称
+.Nm VOP_ACLCHECK
+.Nd vnode のアクセス制御リストの調査
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In sys/acl.h
+.Ft int
+.Fn VOP_ACLCHECK "struct vnode *vp" "acl_type_t type" "struct acl *aclp" "struct ucred *cred" "struct thread *td"
+.Sh 解説
+この vnode 呼び出しは、特定のファイルまたはディレクトリに対する
+特定のアクセス制御リスト (ACL) の妥当性を決定するために、使用可能です。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width type
+.It Fa vp
+ファイルまたはディレクトリの vnode。
+.It Fa type
+調査対象の ACL の型。
+.It Fa aclp
+ACL データの取り出し元の ACL 構造体を指しているポインタ。
+.It Fa cred
+要求の認証のために使用されるユーザ証明。
+.It Fa td
+ACL を調査しているスレッド。
+.El
+.Pp
+.Fa cred
+ポインタは、NULL を渡すことができ、
+可能であるならばアクセス制御チェックが実行されないことを指示します。
+この cred の設定は、アクティブプロセスに許されていない ACL 証明を、
+カーネルが正当化することを認めるために使用可能です。
+.Pp
+vnode ACL インタフェースは、ファイルまたはディレクトリの ACL インタフェースの
+セマンティクスではなく文法を定義します。
+カーネル内の ACL 管理についての詳細な情報は
+.Xr acl 9
+を参照してください。
+.Sh ロック
+この vnode メソッドの呼び出しのためにロックは不要で、
+入る時に保持していた全てのロックは戻る時まで保持されます。
+.Sh 戻り値
+.Fa vp
+オブジェクトのための
+.Fa type
+型の有効な ACL を
+.Fa aclp
+ポインタが指している場合には 0 が返されます。
+そうでない場合には適切なエラーコードが返されます。
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er EINVAL
+渡された vnode の ACL 型が無効または ACL データが無効です。
+.It Bq Er EACCES
+ファイルまたはディレクトリの ACL がアクセスを許可しませんでした。
+.It Bq Er ENOMEM
+要求を実行するための十分なメモリが利用可能ではありません。
+.It Bq Er EOPNOTSUPP
+ファイルシステムが
+.Fn VOP_ACLCHECK
+をサポートしていません。
+.El
+.Sh 関連項目
+.Xr acl 9 ,
+.Xr vnode 9 ,
+.Xr VOP_GETACL 9 ,
+.Xr VOP_SETACL 9
+.Sh 作者
+このマニュアルページは
+.An Robert Watson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_ADVLOCK.9 b/documentation/manual-pages/ja/man9/VOP_ADVLOCK.9
new file mode 100644
index 0000000000..e13dc8332b
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_ADVLOCK.9
@@ -0,0 +1,85 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_ADVLOCK.9,v 1.12 2003/10/23 02:11:14 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 30, 1999
+.Os
+.Dt VOP_ADVLOCK 9
+.Sh 名称
+.Nm VOP_ADVLOCK
+.Nd 問合せ型レコードロック
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In sys/fcntl.h
+.In sys/lockf.h
+.Ft int
+.Fn VOP_ADVLOCK "struct vnode *vp" "caddr_t id" "int op" "struct flock *fl" "int flags"
+.Sh 解説
+引数は以下の通りです。
+.Bl -tag -width flags
+.It Fa vp
+操作されている vnode。
+.It Fa id
+ロックを変更している識別トークン。
+.It Fa op
+実行するべき操作 (
+.Xr fcntl 2
+を参照してください)。
+.It Fa fl
+ロックの記述。
+.It Fa flags
+以下の値のひとつ以上。
+.Bl -column F_UNLCK -offset indent
+.It Dv F_RDLCK Ta 共有または読み込みロック
+.It Dv F_UNLCK Ta ロック解除
+.It Dv F_WRLCK Ta 排他的または書き込みロック
+.It Dv F_WAIT Ta ロックが承認されるまで待機
+.It Dv F_FLOCK Ta ロックのために
+.Xr flock 2
+のセマンティクス使用
+.It Dv F_POSIX Ta ロックのために POSIX のセマンティクスを使用
+.El
+.El
+.Pp
+このエントリポイントは、ファイルの問合せ型レコードロックを操作します。
+ほとんどのファイルシステムは、この呼び出しのための作業を
+.Fn lf_advlock
+に委任します。
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合にはエラーが返されます。
+.Sh 関連項目
+.Xr fcntl 2 ,
+.Xr flock 2 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_ATTRIB.9 b/documentation/manual-pages/ja/man9/VOP_ATTRIB.9
new file mode 100644
index 0000000000..5d5d6050dd
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_ATTRIB.9
@@ -0,0 +1,169 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_ATTRIB.9,v 1.23 2002/12/24 13:41:46 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_ATTRIB 9
+.Sh 名称
+.Nm VOP_GETATTR ,
+.Nm VOP_SETATTR
+.Nd ファイルまたはディレクトリの属性の取得または設定
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_GETATTR "struct vnode *vp" "struct vattr *vap" "struct ucred *cred" "struct thread *td"
+.Ft int
+.Fn VOP_SETATTR "struct vnode *vp" "struct vattr *vap" "struct ucred *cred" "struct thread *td"
+.Sh 解説
+これらのエントリポイントは、
+ファイルまたはディレクトリの様々な属性を操作します。
+操作対象には、ファイルパーミッション、所有者、グループ、
+大きさ、アクセス時刻、更新時刻を含みます。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width cred
+.It Fa vp
+ファイルの vnode。
+.It Fa vap
+ファイルの属性。
+.It Fa cred
+呼び出したプロセスのユーザ証明。
+.It Fa td
+スレッド。
+.El
+.Pp
+.Fn VOP_SETATTR
+によって更新されようとしていない属性は
+.Dv VNOVAL
+が設定されているべきです。
+.Fn VATTR_NULL
+は全ての値をクリアするために使用することができ、一般的には
+.Fa *vap
+の値の明示の前にその内容をリセットするために使用されるべきです。
+.Sh ロック
+.Fn VOP_GETATTR
+は、入る時に vnode がロックされていて、戻り時まで vnode がロックされたままで
+あることを期待します。
+そのロックの型は共有または排他が可能です。
+.Pp
+.Fn VOP_SETATTR
+は、入る時に vnode がロックされていて、戻り時まで vnode がロックされたままで
+あることを期待します。
+そのロックの型は排他でなければなりません。
+.Sh 戻り値
+.Fn VOP_GETATTR
+は
+.Fa *vap
+を介して属性データを取り出すことができた場合には 0 を返し、
+そうでない場合には適切なエラーが返されます。
+.Fn VOP_SETATTR
+は属性がうまく変更された場合には 0 を返し、
+そうでない場合には適切なエラーが返されます。
+.Sh 疑似コード
+.Bd -literal
+int
+vop_getattr(struct vnode *vp, struct vattr *vap,
+ struct ucred *cred, struct thread *td)
+{
+ /*
+ * *vap をファイルシステムからの情報で埋めます。
+ */
+ ...;
+
+ return 0;
+}
+
+int
+vop_setattr(struct vnode *vp, struct vattr *vap,
+ struct ucred *cred, struct thread *td)
+{
+ /*
+ * 設定できない属性をチェックします。
+ */
+ if ((vap->va_type != VNON) || (vap->va_nlink != VNOVAL) ||
+ (vap->va_fsid != VNOVAL) || (vap->va_fileid != VNOVAL) ||
+ (vap->va_blocksize != VNOVAL) || (vap->va_rdev != VNOVAL) ||
+ ((int)vap->va_bytes != VNOVAL) || (vap->va_gen != VNOVAL)) {
+ return (EINVAL);
+ }
+
+ if (vap->va_flags != VNOVAL) {
+ /*
+ * ファイルの変更不能と追加フラグを設定します。
+ */
+ }
+
+ if (vap->va_uid != (uid_t)VNOVAL || vap->va_gid != (gid_t)VNOVAL) {
+ /*
+ * ファイルの所有者および/またはグループを変更します。
+ */
+ }
+
+ if (vap->va_size != VNOVAL) {
+ /*
+ * ファイルを指定された大きさに切り詰めます。
+ */
+ }
+
+ if (vap->va_atime.tv_sec != VNOVAL || vap->va_mtime.tv_sec != VNOVAL) {
+ /*
+ * ファイルのアクセスおよび/または更新時刻を変更します。
+ */
+ }
+
+ if (vap->va_mode != (mode_t)VNOVAL) {
+ /*
+ * ファイルのパーミッションを変更します。
+ */
+ }
+
+ return 0;
+}
+.Ed
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er EPERM
+ファイルは変更不可能です。
+.It Bq Er EACCES
+呼び出し側がそのファイルまたはディレクトリの属性を修正するパーミッションを
+持っていません。
+.It Bq Er EROFS
+ファイルシステムが読み込み専用です。
+.El
+.Sh 関連項目
+.Xr VFS 9 ,
+.Xr vnode 9 ,
+.Xr VOP_ACCESS 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_BWRITE.9 b/documentation/manual-pages/ja/man9/VOP_BWRITE.9
new file mode 100644
index 0000000000..d17ca7d57a
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_BWRITE.9
@@ -0,0 +1,58 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_BWRITE.9,v 1.10 2003/05/31 14:07:25 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_BWRITE 9
+.Sh 名称
+.Nm VOP_BWRITE
+.Nd ファイルシステムバッファの書き込み
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_BWRITE "struct vnode *vp" "struct buf *bp"
+.Sh 解説
+引数は以下の通りです。
+.Bl -tag -width 2n
+.It Fa vp
+書き込まれているファイルの vnode。
+.It Fa bp
+書き込まれるべきバッファ。
+.El
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合にはエラーが返されます。
+.Sh 関連項目
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_CREATE.9 b/documentation/manual-pages/ja/man9/VOP_CREATE.9
new file mode 100644
index 0000000000..da7e6933e2
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_CREATE.9
@@ -0,0 +1,165 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_CREATE.9,v 1.15 2004/07/08 00:08:18 alfred Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_CREATE 9
+.Sh 名称
+.Nm VOP_CREATE ,
+.Nm VOP_MKNOD ,
+.Nm VOP_MKDIR ,
+.Nm VOP_SYMLINK
+.Nd ファイル、ソケット、FIFO、デバイス、ディレクトリまたはシンボリックリンクの作成
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In sys/namei.h
+.Ft int
+.Fn VOP_CREATE "struct vnode *dvp" "struct vnode **vpp" "struct componentname *cnp" "struct vattr *vap"
+.Ft int
+.Fn VOP_MKNOD "struct vnode *dvp" "struct vnode **vpp" "struct componentname *cnp" "struct vattr *vap"
+.Ft int
+.Fn VOP_MKDIR "struct vnode *dvp" "struct vnode **vpp" "struct componentname *cnp" "struct vattr *vap"
+.Ft int
+.Fn VOP_SYMLINK "struct vnode *dvp" "struct vnode **vpp" "struct componentname *cnp" "struct vattr *vap" "char *target"
+.Sh 解説
+これらのエントリポイントは、新しいファイル、ソケット、FIFO、デバイス、
+ディレクトリまたはシンボリックリンクを、
+指定されたディレクトリの中に作成します。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width target
+.It Fa dvp
+ディレクトリのロックされた vnode。
+.It Fa vpp
+作成結果のロックされた vnode が格納されるべき、変数のアドレス。
+.It Fa cnp
+生成された要素のパス名。
+.It Fa vap
+新しいオブジェクトの作成時に使用されるべき属性。
+.It Fa target
+シンボリックリンクの対象のパス名。
+.El
+.Pp
+これらのエントリポイントは、オブジェクトの生成中に
+.Xr VOP_LOOKUP 9
+の後に呼び出されます。
+.Sh ロック
+ディレクトリ
+.Fa dvp
+は入る時にロックされ、戻る時にもロックされ続けてなければなりません。
+呼び出しが成功の場合には、新しいオブジェクトがロックされて返されます。
+.Sh 戻り値
+成功時には、新しいオブジェクトの vnode が
+.Fa *vpp
+に置かれ、0 が返されます。
+そうでない場合には、適切なエラーが返されます。
+.Sh 疑似コード
+.Bd -literal
+int
+vop_create(struct vnode *dvp,
+ struct vnode **vpp,
+ struct componentname *cnp
+ struct vattr *vap)
+{
+ int mode = MAKEIMODE(vap->va_type, vap->va_mode);
+ struct vnode *vp;
+ int error;
+
+ *vpp = NULL;
+ if ((mode & IFMT) == 0)
+ mode |= IFREG;
+
+ error = SOMEFS_VALLOC(dvp, mode, cnp->cn_cred, &vp);
+ if (error)
+ return error;
+
+ /*
+ * 新しい vnode のパーミッションを更新します。
+ * これには、ディレクトリからのグループのコピーを含みます。
+ */
+ ...;
+
+#ifdef QUOTA
+ /*
+ * できる限りクォータ情報をチェックします。
+ */
+ ...;
+#endif
+
+ /*
+ * ディレクトリに新しい vnode を入れ、ディレクトリ内容が変更される
+ * 前に vnode がディスクをアクセスしない様に注意します。
+ */
+ error = ...;
+
+ if (error)
+ goto bad;
+
+ *vpp = vp;
+
+ return 0;
+
+bad:
+ /*
+ * inode またはディレクトリの更新の試みで書き込みエラーが
+ * 発生したため inode の割り当てを解放しなければなりません。
+ */
+ vput(vp);
+
+ /*
+ * vp のためのファイルシステム資源を解放。
+ */
+ ...;
+
+ return error;
+}
+.Ed
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er ENOSPC
+ファイルシステムが一杯です。
+.It Bq Er EDQUOT
+そのユーザのファイルシステム空間または inode のクォータを超過しました。
+.El
+.Sh 関連項目
+.Xr VOP_LOOKUP 9,
+.Xr vnode 9
+.Sh 歴史
+関数
+.Nm
+は
+.Bx 4.3
+で登場しました。
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_FSYNC.9 b/documentation/manual-pages/ja/man9/VOP_FSYNC.9
new file mode 100644
index 0000000000..a6c151f14f
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_FSYNC.9
@@ -0,0 +1,149 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_FSYNC.9,v 1.13 2003/05/31 14:07:25 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_FSYNC 9
+.Sh 名称
+.Nm VOP_FSYNC
+.Nd ファイルシステムバッファのファイルへの吐き出し
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_FSYNC "struct vnode *vp" "struct ucred *cred" "int waitfor" "struct thread *td"
+.Sh 解説
+この呼び出しはファイルの全ての汚れたバッファを吐き出します。
+.Xr sync 2
+および
+.Xr fsync 2
+システムコールを実装するために使用されます。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width waitfor
+.It Fa vp
+ファイルの vnode。
+.It Fa cred
+呼び出し側の証明。
+.It Fa waitfor
+入出力の完了を関数が待つべきかどうか。
+.Bl -tag -width MNT_NOWAIT
+.It Dv MNT_WAIT
+入出力の完了を同期的に待ちます。
+.It Dv MNT_NOWAIT
+全ての入出力を開始しますが、それを待ちません。
+.It Dv MNT_LAZY
+ファイルシステムの syncer によって書込まれていないデータを出力します。
+.El
+.It Fa td
+呼び出しているスレッド。
+.El
+.Pp
+引数
+.Fa waitfor
+は
+.Dv MNT_WAIT
+または
+.Dv MNT_NOWAIT
+のどちらかで、関数が戻る前に書き込みの終了を待つべきかどうかを指定します。
+.Sh ロック
+ファイルはエントリ時にロックされるべきです。
+.Sh 戻り値
+呼び出しが成功した場合には 0 が返され、
+そうでない場合には適切なエラーコードが返されます。
+.Sh 疑似コード
+.Bd -literal
+int
+vop_fsync(struct vnode *vp, struct ucred *cred, int waitfor, struct thread *td)
+{
+ struct buf *bp;
+ struct buf *nbp;
+ struct timeval tv;
+ int s;
+
+loop:
+ s = splbio();
+ for (bp = vp->v_dirtyblkhd.lh_first; bp; bp = nbp) {
+ nbp = bp->b_vnbufs.le_next;
+
+ /*
+ * 既に書き込み中のバッファを無視します。
+ */
+ if (bp->b_flags & B_BUSY)
+ continue;
+
+ /*
+ * バッファが汚れているか確認します。
+ */
+ if ((bp->b_flags & B_DELWRI) == 0)
+ panic("vop_fsync: not dirty");
+
+ vfs_bio_awrite(bp);
+ splx(s);
+ goto loop;
+ }
+ splx(s);
+
+ if (waitfor == MNT_WAIT) {
+ s = splbio();
+ while (vp->v_numoutput) {
+ vp->v_flag |= VBWAIT;
+ tsleep((caddr_t)&vp->v_numoutput, PRIBIO + 1, "vopfsn");
+ }
+ splx(s);
+#ifdef DIAGNOSTIC
+ if (vp->v_dirtyblkhd.lh_first) {
+ vprint("vop_fsync: dirty", vp);
+ goto loop;
+ }
+#endif
+ }
+
+ /*
+ * ディスク上の vnode を書き出します。
+ */
+ tv = time;
+ return VOP_UPDATE(vp, &tv, &tv, waitfor == MNT_WAIT);
+}
+.Ed
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er ENOSPC
+ファイルシステムが一杯です。
+.It Bq Er EDQUOT
+クォータを超過しました。
+.El
+.Sh 関連項目
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_GETACL.9 b/documentation/manual-pages/ja/man9/VOP_GETACL.9
new file mode 100644
index 0000000000..fa6206ebde
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_GETACL.9
@@ -0,0 +1,100 @@
+.\"-
+.\" Copyright (c) 1999, 2000, 2001 Robert N. M. Watson
+.\" 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/VOP_GETACL.9,v 1.13 2003/10/23 02:11:14 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd December 23, 1999
+.Os
+.Dt VOP_GETACL 9
+.Sh 名称
+.Nm VOP_GETACL
+.Nd vnode のアクセス制御リストの取り出し
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In sys/acl.h
+.Ft int
+.Fn VOP_GETACL "struct vnode *vp" "acl_type_t type" "struct acl *aclp" "struct ucred *cred" "struct thread *td"
+.Sh 解説
+この vnode 呼び出しは、
+ファイルまたはディレクトリからアクセス制御リスト (ACL) を
+取り出すために使用可能です。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width type
+.It Fa vp
+ファイルまたはディレクトリの vnode。
+.It Fa type
+取り出す ACL の型。
+.It Fa aclp
+ACL データを受け取る ACL 構造体へのポインタ。
+.It Fa cred
+要求の認証で使用されるユーザ証明。
+.It Fa td
+ACL を要求しているスレッド。
+.El
+.Pp
+.Fa cred
+ポインタは、
+.Dv NULL
+を渡すことができ、
+可能であるならばアクセス制御チェックが実行されないことを指示します。
+この cred の設定は、アクティブプロセスに許されていない ACL の取り出しを、
+カーネルが正当化することを認めるために使用可能です。
+.Pp
+vnode ACL インタフェースはファイルまたはディレクトリの ACL インタフェースの
+セマンティクスではなく文法を定義します。
+カーネル内の ACL 管理についての詳細な情報は
+.Xr acl 9
+を参照してください。
+.Sh ロック
+この vnode は入る時にロックされ、戻るときまでロックされ続けるべきです。
+.Sh 戻り値
+.Fa aclp
+ポインタが有効な ACL を指している場合には、0 が返されます。
+そうでない場合には適切なエラーコードが返されます。
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er EINVAL
+渡された ACL 型はこの vnode には無効です。
+.It Bq Er EACCES
+呼び出し側が適切な特権を持っていません。
+.It Bq Er ENOMEM
+その要求を処理するために十分なメモリが利用可能ではありません。
+.It Bq Er EOPNOTSUPP
+ファイルシステムは
+.Fn VOP_GETACL
+をサポートしていません。
+.El
+.Sh 関連項目
+.Xr acl 9 ,
+.Xr vnode 9 ,
+.Xr VOP_ACLCHECK 9 ,
+.Xr VOP_SETACL 9
+.Sh 作者
+このマニュアルページは
+.An Robert Watson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_GETEXTATTR.9 b/documentation/manual-pages/ja/man9/VOP_GETEXTATTR.9
new file mode 100644
index 0000000000..664b91fad1
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_GETEXTATTR.9
@@ -0,0 +1,134 @@
+.\"-
+.\" Copyright (c) 1999, 2000, 2001, 2003 Robert N. M. Watson
+.\" 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/VOP_GETEXTATTR.9,v 1.21 2003/10/23 02:11:14 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd December 23, 1999
+.Os
+.Dt VOP_GETEXTATTR 9
+.Sh 名称
+.Nm VOP_GETEXTATTR
+.Nd vnode からの名前付き拡張属性の取り出し
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In sys/extattr.h
+.Ft int
+.Fo VOP_GETEXTATTR
+.Fa "struct vnode *vp"
+.Fa "int attrnamespace"
+.Fa "const char *name"
+.Fa "struct uio *uio"
+.Fa "size_t *size"
+.Fa "struct ucred *cred"
+.Fa "struct thread *td"
+.Fc
+.Sh 解説
+この vnode 呼び出しは、ファイルまたはディレクトリから、
+指定した名前付き拡張属性を取り出すために使用することができます。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width ".Fa attrnamespace"
+.It Fa vp
+ファイルまたはディレクトリの vnode。
+.It Fa attrnamespace
+どの拡張属性の名前空間に、その属性の名前が存在するのかを示す整数定数。
+.It Fa name
+属性名が入った null で終端された文字列へのポインタ。
+.It Fa uio
+読み込むべきデータの位置。
+.It Fa size
+.Dv NULL
+でない場合には、戻る時に全ての属性データを読込むために要求される
+バイト数が含まれます。
+殆んどの場合、
+.Fa size
+が
+.Dv NULL
+ではない時には
+.Fa uio
+が
+.Dv NULL
+にされます。
+またはその逆です。
+.It Fa cred
+要求の認証で使用するためのユーザ証明。
+.It Fa td
+拡張属性を要求しているスレッド。
+.El
+.Pp
+.Fa cred
+ポインタは、
+.Dv NULL
+を渡すことができ、
+可能であるならばアクセス制御チェックが実行されないことを指示します。
+この
+.Fa cred
+の設定は、アクティブプロセスに許されていない拡張属性の取り出しを
+カーネルが正当化することを認めるために使用可能です。
+.Pp
+拡張属性のセマンティクスはファイルシステムの呼び出しの実装によって
+異なるでしょう。
+拡張属性のより多くの情報は
+.Xr extattr 9
+を参照してください。
+.Sh LOCKS
+この vnode は入る時にロックされ、戻る時までロックされ続けるべきです。
+.Sh 戻り値
+成功時には 0 が返され、読み込んだデータを反映して uio 構造体が更新されます。
+そうでなければ適切なエラーコードが返されます。
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er ENOATTR
+要求された属性は、この vnode のために定義されていません。
+.It Bq Er EACCES
+呼び出し側が適切な特権を持っていません。
+.It Bq Er ENXIO
+指定された vnode および属性名に対する要求は、このファイルシステムでは無効です。
+.It Bq Er ENOMEM
+その要求を実行するための十分なメモリが利用可能ではありません。
+.It Bq Er EFAULT
+uio 構造体が無効なユーザ空間アドレスを参照しています。
+.It Bq Er EINVAL
+.Fa name ,
+.Fa namespace ,
+または
+.Fa uio
+引数が無効です。
+.It Bq Er EOPNOTSUPP
+ファイルシステムが
+.Fn VOP_GETEXTATTR
+をサポートしていません。
+.El
+.Sh 関連項目
+.Xr extattr 9 ,
+.Xr vnode 9 ,
+.Xr VOP_LISTEXTATTR 9 ,
+.Xr VOP_SETEXTATTR 9
+.Sh バグ
+属性名として空の文字列を渡すことによって、いくつかのファイルシステムは、
+要求された名前空間における対象 vnode の持つ定義された名前のリストを返します。
+これは悪い API ですので、明示的な VOP で置き換えられる予定です。
diff --git a/documentation/manual-pages/ja/man9/VOP_GETPAGES.9 b/documentation/manual-pages/ja/man9/VOP_GETPAGES.9
new file mode 100644
index 0000000000..9180f8e083
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_GETPAGES.9
@@ -0,0 +1,153 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\" Copyright 2003, Garrett A. Wollman
+.\"
+.\" 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/VOP_GETPAGES.9,v 1.10 2004/06/16 08:33:57 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd September 27, 2003
+.Os
+.Dt VOP_GETPAGES 9
+.Sh 名称
+.Nm VOP_GETPAGES ,
+.Nm VOP_PUTPAGES
+.Nd ファイルから VM ページへの読み込みまたは書き込み
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In vm/vm.h
+.Ft int
+.Fn VOP_GETPAGES "struct vnode *vp" "vm_page_t *m" "int count" "int reqpage" "vm_ooffset_t offset"
+.Ft int
+.Fn VOP_PUTPAGES "struct vnode *vp" "vm_page_t *m" "int count" "int sync" "int *rtvals" "vm_ooffset_t offset"
+.Sh 解説
+.Fn VOP_GETPAGES
+メソッドは、通常のファイルが背後にある仮想メモリのページの読み込み
+のために、呼び出されます。
+他の隣接したページの背後に同じファイルの隣接した領域がある場合には、
+.Fn VOP_GETPAGES
+は同様にそれらのページを読み込ませるために要求されますが、そうすることが
+必須なわけではありません。
+.Fn VOP_PUTPAGES
+メソッドは反対のことを行います。
+すなわち、仮想メモリの隣接したダーティなページを書き出させます。
+.Pp
+入る時に、vnode のロックは保持されますが、ページキューと VM オブジェクトの
+ロックはどちらも保持されません。
+両方のメソッドは、成功して戻る時とエラーで戻る時と両方とも、
+そのままの状態で戻ります。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width reqpage
+.It Fa vp
+アクセスするファイル。
+.It Fa m
+読み込まれるまたは書き込まれるべきファイルの連続した領域を表現する
+連続したページの配列の最初の要素へのポインタです。
+.It Fa count
+その配列の中のページ数です。
+.It Fa sync
+書き込みが同期されるべき場合には
+.Dv VM_PAGER_PUT_SYNC
+です。
+.It Fa rtvals
+.Fn VOP_PUTPAGES
+によって書き込まれたそれぞれのページの状態を示している VM システムの
+結果コードの配列です。
+.It Fa reqpage
+ページ配列の中の要求されたページのインデックスです。
+すなわち、このメソッドの実装が取り扱わなければならない、1 ページです。
+.It Fa offset
+ファイルの中のそのマップされたページが始まる場所へのオフセットです。
+.El
+.Pp
+.Fn VOP_PUTPAGES
+メソッドの状態は、配列
+.Fa rtvals[]
+の中に、個々のページごとに返されます。
+起こり得る状態値は以下の通りです。
+.Bl -tag -width VM_PAGER_ERROR
+.It Dv VM_PAGER_OK
+そのページは成功して書き込まれました。
+実装はそのページがクリーンであることを記録するために
+.Xr vm_pager_undirty 9
+を呼び出さなければなりません。
+.It Dv VM_PAGER_PEND
+そのページは非同期に書き込まれるようにスケジュールされました。
+書き込みが完了した時には、完了コールバックはビジーフラグをクリアし、
+このページをウェイトしている他のスレッドを起こすために、
+.Xr vm_object_pip_wakeup 9
+および
+.Xr vm_page_io_finish 9
+を呼び出すべきです。
+さらに
+.Xr vm_page_undirty 9
+を呼び出します。
+.It Dv VM_PAGER_BAD
+このページは完全に背後にあるファイルの終端を越えていました。
+その vnode のファイルシステムが正しく実装されている場合には、
+この状態は起こり得るべきではありません。
+.It Dv VM_PAGER_ERROR
+下位の保存メディアまたはプロトコルのエラーのため、
+このページは書き込まれることが出来ませんでした。
+.It Dv VM_PAGER_FAIL
+.Dv VM_PAGER_ERROR
+と同様に取り扱われました。
+.Dv VM_PAGER_ERROR
+.It Dv VM_PAGER_AGAIN
+そのページはこの要求によって取り扱われませんでした。
+.El
+.Pp
+.Sh 戻り値
+成功して
+.Fa m[reqpage]
+を読み込んだ場合には
+.Fn VOP_GETPAGES
+は
+.Dv VM_PAGER_OK
+を返し、そうでない場合には
+.Dv VM_PAGER_ERROR
+を返します。
+慣習で、
+.Fn VOP_PUTPAGES
+の戻り値は
+.Fa rtvals[0]
+です。
+.Sh 関連項目
+.Xr vm_object_pip_wakeup 9 ,
+.Xr vm_page_free 9 ,
+.Xr vm_page_io_finish 9 ,
+.Xr vm_page_undirty 9 ,
+.Xr vm_page_wakeup 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書き、その後実質上
+.An Garrett Wollman
+が書き直しました。
diff --git a/documentation/manual-pages/ja/man9/VOP_GETVOBJECT.9 b/documentation/manual-pages/ja/man9/VOP_GETVOBJECT.9
new file mode 100644
index 0000000000..8a403ac67b
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_GETVOBJECT.9
@@ -0,0 +1,118 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2000 Boris Popov
+.\"
+.\" 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/VOP_GETVOBJECT.9,v 1.6 2002/12/12 17:25:58 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd September 10, 2000
+.Os
+.Dt VOP_CREATEVOBJECT 9
+.Sh 名称
+.Nm VOP_CREATEVOBJECT ,
+.Nm VOP_DESTROYVOBJECT ,
+.Nm VOP_GETVOBJECT
+.Nd VM オブジェクトの相互作用
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_CREATEVOBJECT "struct vnode *vp" "struct ucred *cred" "struct thread *td"
+.Ft int
+.Fn VOP_DESTROYVOBJECT "struct vnode *vp"
+.Ft int
+.Fn VOP_GETVOBJECT "struct vnode *vp" "struct vm_object **objpp"
+.Sh 解説
+これらの呼び出しは、VM オブジェクトと特有の vnode の連係を制御するために
+使用されます。
+.Pp
+これらの関数で指定する引数は以下の通りです。
+.Bl -tag -width objpp
+.It Fa vp
+そのファイルの vnode です。
+.It Fa objpp
+返される VM オブジェクト、または呼び出し側がその VM オブジェクトの
+存在のテストをする場合には
+.Dv NULL
+です。
+.El
+.Pp
+与えられた
+.Xr vnode 9
+のために VM オブジェクトを作成する必要がある時には、
+.Xr VFS 9
+は
+.Fn VOP_CREATEVOBJECT
+を実行します。
+ファイルシステムのコードはこの呼び出しを下層のファイルシステムに
+渡すことができます。
+この VOP は何度も呼び出されることが可能で、ファイルシステムのコードは
+追加の全ての呼び出しを無視し、0 を返すコードで終了するべきです。
+.Pp
+.Xr vnode 9
+が再利用された時には、
+.Fn VOP_DESTROYVOBJECT
+が呼び出されます。
+.Pp
+VM オブジェクトを取得するために全てのカーネルのコードで、
+.Fn VOP_GETVOBJECT
+が使用されるべきです。
+.\" XXX 次の文は何を伝えようとしているのだろう?
+返された VM オブジェクトは、重ねられたマウントの場合には
+異なったファイルシステムに属するかもしれません。
+.Pp
+.Xr VFS 9
+は VM オブジェクトの作成および破壊の標準の操作を実行する、
+3 つの関数を持っています。
+これらの関数は
+.Fn vop_stdcreatevobject ,
+.Fn vop_stddestroyvobject
+および
+.Fn vop_stdgetvobject
+です。
+.Pp
+.Em 注意 :
+.Xr vnode 9
+は入る時にロックされているべきで、終了時までロックされ続けていなければ
+なりません。
+.Sh 戻り値
+.Fn VOP_CREATEVOBJECT ,
+.Fn VOP_DESTROYVOBJECT
+および
+.Fn VOP_GETVOBJECT
+関数は成功時には 0 を返し、失敗時には 0 ではない値を返します。
+成功時には 0 が返され、そうでなければエラーが返されます。
+.Sh 使用例
+.\" なぜここにあるコードは、このマニュアルページに説明されていない関数を
+.\" 使用していないの?
+デフォルトでは、ファイルシステムは
+.Fn vop_std*
+関数に VM オブジェクトの取り扱いを委ねます。
+.Sh 関連項目
+.Xr vnode 9 ,
+.Xr VOP_GETPAGES 9 ,
+.Xr VOP_PUTPAGES 9
+.Sh 作者
+このマニュアルページは
+.An Boris Popov
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_INACTIVE.9 b/documentation/manual-pages/ja/man9/VOP_INACTIVE.9
new file mode 100644
index 0000000000..bdf20db783
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_INACTIVE.9
@@ -0,0 +1,113 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_INACTIVE.9,v 1.14 2003/10/23 03:07:56 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_INACTIVE 9
+.Sh 名称
+.Nm VOP_INACTIVE ,
+.Nm VOP_RECLAIM
+.Nd vnode のためのファイルシステム資源の回収
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_INACTIVE "struct vnode *vp" "struct thread *td"
+.Ft int
+.Fn VOP_RECLAIM "struct vnode *vp" "struct thread *td"
+.Sh 解説
+引数は以下の通りです。
+.Bl -tag -width 2n
+.It Fa vp
+回収されている vnode。
+.El
+.Pp
+.Fn VOP_INACTIVE
+は、カーネルがもはやその vnode を使用しなくなった時に呼び出されます。
+これは、参照カウントが 0 になった時、
+またはオープンされているファイルがあるファイルシステムが
+強制的にアンマウントされた時に起こります。
+.Sq オープンされているが削除された
+ファイルのための領域を回収するために、
+使用可能です。
+.Pp
+.Fn VOP_RECLAIM
+は、異なるファイルシステムのために vnode が再利用される時に呼び出されます。
+vnode に関連しているあらゆるファイルシステム固有の資源は、解放されるべきです。
+.Sh ロック
+VOP_INACTIVE では、入る時に
+.Fa vp
+がロックされます。
+VOP_INACTIVE コードは、戻る前に
+.Fa vp
+をアンロックしなければなりません。
+.Pp
+VOP_RECLAIM では、入る時に
+.Fa vp
+はロックされず、戻り時もロックされないままでいるべきです。
+.Sh 疑似コード
+.Bd -literal
+int
+vop_inactive(struct vnode *vp, struct thread *td)
+{
+ if (link count of vp == 0) {
+ /*
+ * vp のためのファイルシステム内の領域を回収します。
+ */
+ ...;
+ }
+ VOP_UNLOCK(vp, 0, td);
+
+ return 0;
+}
+
+int
+vop_reclaim(struct vnode *vp, struct thread *td)
+{
+ /*
+ * 名前キャッシュを一掃します。
+ */
+ cache_purge(vp);
+
+ /*
+ * ファイルシステムに関連したデータを解放します。
+ */
+ ...;
+
+ return 0;
+}
+.Ed
+.Sh 関連項目
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_IOCTL.9 b/documentation/manual-pages/ja/man9/VOP_IOCTL.9
new file mode 100644
index 0000000000..78677a8bc5
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_IOCTL.9
@@ -0,0 +1,86 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_IOCTL.9,v 1.12 2003/05/31 14:07:25 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_IOCTL 9
+.Sh 名称
+.Nm VOP_IOCTL
+.Nd デバイス固有の制御
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_IOCTL "struct vnode *vp" "u_long command" "caddr_t data" "int fflag" "struct ucred *cred" "struct thread *td"
+.Sh 解説
+デバイス依存の方法でのファイルを操作します。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width command
+.It Fa vp
+ファイル (通常はデバイスを表現する) の vnode。
+.It Fa command
+実行すべきデバイス固有の操作。
+.It Fa cnp
+指定された操作のための拡張データ。
+.It Fa fflag
+幾つかのフラグ ???
+.It Fa cred
+呼び出し側の証明。
+.It Fa td
+呼び出したスレッド。
+.El
+.Pp
+ほとんどのファイルシステムはこのエントリポイントを実装しません。
+.Sh ロック
+入る時、ファイルはロックされているべきではありません。
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合には適切なエラーが返されます。
+.Pp
+ioctl が認識されないまたはハンドルされない場合には、
+.Er ENOTTY
+が返されるべきです。
+.Sh 疑似コード
+.Bd -literal
+int
+vop_ioctl(struct vnode *vp, int command, caddr_t data, int fflag,
+ struct ucred *cred, struct thread *td)
+{
+
+ return ENOTTY;
+}
+.Ed
+.Sh 関連項目
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_LEASE.9 b/documentation/manual-pages/ja/man9/VOP_LEASE.9
new file mode 100644
index 0000000000..6ba1619a96
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_LEASE.9
@@ -0,0 +1,64 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_LEASE.9,v 1.10 2003/10/23 03:14:21 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd September 24, 1999
+.Os
+.Dt VOP_LEASE 9
+.Sh 名称
+.Nm VOP_LEASE
+.Nd ユーザ証明と操作のタイプの特有の組に対する vnode の正当性の確認
+.Sh 書式
+.In sys/param.h
+.In sys/mount.h
+.Ft int
+.Fn VOP_LEASE "struct vnode *vp" "struct thread *td" "struct ucred *cred" "int type"
+.Sh 解説
+このエントリポイントは、現在実装されていません。
+この着想は、ユーザ証明と操作の型の特有の組のための vnode を確認するための
+ものです。
+サポートされている、2 つの操作の型は
+.Dv LEASE_READ
+および
+.Dv LEASE_WRITE
+です。
+.Sh 戻り値
+現在、この関数は全ての場合に 0 を返します。
+.\" .Sh エラー
+.Sh 関連項目
+.Xr VOP_READ 9 ,
+.Xr VOP_WRITE 9
+.Sh ロック
+入る時、vnode は排他的にロックされていなければならず、
+戻り時まで排他的にロックされ続けているべきです。
+.Sh 作者
+このマニュアルページは
+.An Matt Dillon
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_LINK.9 b/documentation/manual-pages/ja/man9/VOP_LINK.9
new file mode 100644
index 0000000000..c80b377e4d
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_LINK.9
@@ -0,0 +1,117 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_LINK.9,v 1.21 2004/07/04 20:55:49 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_LINK 9
+.Sh 名称
+.Nm VOP_LINK
+.Nd ファイルの新しい名前の作成
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_LINK "struct vnode *dvp" "struct vnode *vp" "struct componentname *cnp"
+.Sh 解説
+これは、既存のファイルに対し、
+指定したディレクトリ中の新しい名前をリンクします。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width 8n
+.It Fa dvp
+ディレクトリの vnode。
+.It Fa vp
+リンクされるファイルの vnode。
+.It Fa cnp
+ファイルについてのパス名情報。
+.El
+.Pp
+パス名情報は戻り時に開放されるべきでは
+.Em ありません
+。
+なぜならば、それは呼び出し側によって行なわれるからです。
+ディレクトリとファイルの vnode は戻り時に解放されるべきでは
+.Em ありません
+。
+.Sh ロック
+.Fn VOP_LINK
+はディレクトリおよびファイルの vnode は入る時にロックされ、戻る時まで
+ロックされ続けていることを期待します。
+.Sh 戻り値
+ファイルが成功裏にリンクされた場合には 0 が返され、
+そうでない場合にはエラーが返されます。
+.Sh 疑似コード
+.Bd -literal
+int
+vop_link(struct vnode *dvp, struct vnode *vp, struct componentname *cnp)
+{
+ int error = 0;
+
+ if (vp->v_mount != dvp->v_mount)
+ return (EXDEV);
+
+ if (vp would have too many links)
+ return (EMLINK);
+
+ if (vp is immutable)
+ return (EPERM);
+
+ /*
+ * vp のリンクカウントをインクリメントし、ディスクに書き戻します。
+ */
+ ...;
+
+ if (!error) {
+ /*
+ * ディレクトリの新しい名前を追加します。
+ */
+ ...;
+ }
+
+ return error;
+}
+.Ed
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er EMLINK
+ファイルのリンクの数が多すぎます。
+.It Bq Er EPERM
+ファイルが変更不可能です。
+.It Bq Er EXDEV
+異なるファイルシステム間ではハードリンクは利用できません。
+.El
+.Sh 関連項目
+.Xr vn_lock 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が初めて書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_LOCK.9 b/documentation/manual-pages/ja/man9/VOP_LOCK.9
new file mode 100644
index 0000000000..aea28c4736
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_LOCK.9
@@ -0,0 +1,177 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_LOCK.9,v 1.14 2003/05/31 14:07:25 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_LOCK 9
+.Sh 名称
+.Nm VOP_LOCK ,
+.Nm VOP_UNLOCK ,
+.Nm VOP_ISLOCKED ,
+.Nm vn_lock
+.Nd vnode アクセスの直列化
+.Sh 書式
+.In sys/param.h
+.In sys/lock.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_LOCK "struct vnode *vp" "int flags" "struct thread *td"
+.Ft int
+.Fn VOP_UNLOCK "struct vnode *vp" "int flags" "struct thread *td"
+.Ft int
+.Fn VOP_ISLOCKED "struct vnode *vp" "struct thread *td"
+.Ft int
+.Fn vn_lock "struct vnode *vp" "int flags" "struct thread *td"
+.Sh 解説
+これらの呼び出しは、
+ファイルシステムへのアクセスを直列化するために使用されます。
+例えば、同一ファイルに対する 2 つの書き込みが同時に発生することを
+避けるために使用します。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width flags
+.It Fa vp
+ロックまたはロック解除される vnode。
+.It Fa flags
+以下のロック要求タイプのひとつ。
+.Bl -column LK_EXCLUPGRADE -offset indent
+.It Dv LK_SHARED Ta 共有ロック
+.It Dv LK_EXCLUSIVE Ta 排他的ロック
+.It Dv LK_UPGRADE Ta 共有から排他的へのアップグレード
+.It Dv LK_EXCLUPGRADE Ta 最初の共有から排他的へのアップグレード
+.It Dv LK_DOWNGRADE Ta 排他的から共有へのダウングレード
+.It Dv LK_RELEASE Ta 全てのロックタイプの解除
+.It Dv LK_DRAIN Ta ロック状態終了までの待機
+.El
+.Pp
+ロックタイプは、以下のロックフラグと
+.Em OR
+されているかもしれません。
+.Bl -column LK_CANRECURSE -offset indent
+.It Dv LK_NOWAIT Ta ロックを待つために sleep しない
+.It Dv LK_SLEEPFAIL Ta sleep して、失敗を返す
+.It Dv LK_CANRECURSE Ta 再帰的排他的ロックを認める
+.It Dv LK_REENABLE Ta ロック消失後再有効化されるべき
+.It Dv LK_NOPAUSE Ta 空回りしない
+.El
+.Pp
+ロックタイプは、以下の制御フラグと
+.Em OR
+されているかもしれません。
+.Bl -column LK_INTERLOCK -offset indent
+.It Dv LK_INTERLOCK Ta 呼び出し側が既に簡易ロックを保持している時に指定
+(VOP_LOCK はロックを取得した後で簡易ロックを解除します)
+.It Dv LK_RETRY Ta ロックされるまでリトライ
+.It Dv LK_NOOBJ Ta オブジェクトを作成しない
+.El
+.It Fa td
+ロックを使用するためのスレッドコンテキスト。
+.El
+.Pp
+カーネルコードは vnode をロックするために
+.Fn VOP_LOCK
+を直接呼び出さずに、
+.Fn vn_lock
+を使用するべきです。
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合にはエラーが返されます。
+.Sh 疑似コード
+.Bd -literal
+struct vopnode {
+ int von_flag;
+ /*
+ * 他のファイルシステム固有データ
+ */
+ ...;
+};
+#define VON_LOCKED 1
+#define VON_WANTED 2
+#define VTOVON(vp) ((struct vopnode *) (vp)->v_data)
+
+int
+vop_lock(struct vnode *vp)
+{
+ struct vopnode* vop;
+
+start:
+ while (vp->v_flag & VXLOCK) {
+ vp->v_flag |= VXWANT;
+ tsleep((caddr_t)vp, PINOD, "voplk1", 0);
+ }
+ if (vp->v_tag == VT_NON)
+ return ENOENT;
+
+ vop = VTOVON(vp);
+ if (vop->von_flag & VON_LOCKED) {
+ vop->von_flag |= VON_WANTED;
+ tsleep((caddr_t) vop, PINOD, "voplk2", 0);
+ goto start;
+ }
+
+ vop->von_flag |= VON_LOCKED;
+
+ return 0;
+}
+
+int
+vop_unlock(struct vnode *vp)
+{
+ struct vopnode *vop = VTOVON(vp);
+
+ if ((vop->von_flag & VON_LOCKED) == 0) {
+ panic("vop_unlock not locked");
+ }
+ vop->von_flag &= ~VON_LOCKED;
+ if (vop->von_flag & VON_WANTED) {
+ vop->von_flag &= ~VON_WANTED;
+ wakeup((caddr_t) vop);
+ }
+
+ return 0;
+}
+
+int
+vop_islocked(struct vnode *vp)
+{
+ struct vopnode *vop = VTOVON(vp);
+
+ if (vop->von_flag & VON_LOCKED)
+ return 1;
+ else
+ return 0;
+}
+.Ed
+.Sh 関連項目
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_LOOKUP.9 b/documentation/manual-pages/ja/man9/VOP_LOOKUP.9
new file mode 100644
index 0000000000..f3ff422a12
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_LOOKUP.9
@@ -0,0 +1,455 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_LOOKUP.9,v 1.21 2004/07/08 00:36:58 alfred Exp %
+.\"
+.\" $FreeBSD$
+.Dd November 24, 1997
+.Os
+.Dt VOP_LOOKUP 9
+.Sh 名称
+.Nm VOP_LOOKUP
+.Nd パス名の構成要素の調査
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In sys/namei.h
+.Ft int
+.Fn VOP_LOOKUP "struct vnode *dvp" "struct vnode **vpp" "struct componentname *cnp"
+.Sh 解説
+このエントリポイントは与えられたディレクトリ内の単一のパス名要素を調べます。
+.Pp
+引数は以下のとおりです。
+.Bl -tag -width vpp
+.It Fa dvp
+検索するディレクトリのロックされた vnode です。
+.It Fa vpp
+結果のロックされた vnode が格納されるべき変数のアドレスです。
+.It Fa cnp
+検索されるためのパス名要素です。
+.El
+.Pp
+.Fa cnp
+は以下で定義されている componentname 構造体へのポインタです。
+.Bd -literal
+struct componentname {
+ /*
+ * lookup への引数です。
+ */
+ u_long cn_nameiop; /* namei 操作 */
+ u_long cn_flags; /* namei へのフラグ */
+ struct thread *cn_thread; /* lookup を要求しているスレッド */
+ struct ucred *cn_cred; /* 証明 */
+ /*
+ * 検索ルーチンおよびコミットルーチンで共有されます。
+ */
+ char *cn_pnbuf; /* パス名バッファ */
+ char *cn_nameptr; /* 検索された名前へのポインタ */
+ long cn_namelen; /* 検索された要素の長さ */
+ u_long cn_hash; /* 検索された名前のハッシュ値 */
+ long cn_consume; /* lookup() で消費する文字数 */
+};
+.Ed
+.Pp
+パス名の要素をロックされた vnode へのポインタに変換します。
+これが正に中心であり、より複雑なルーチンです。
+ファイルシステムが厳密なツリー階層に保たれていない場合には、
+デッドロック状態に陥ることがあります。
+.Pp
+.Fa cnp->cn_nameiop
+引数は、オブジェクトの用途目的に依存し、
+.Dv LOOKUP ,
+.Dv CREATE ,
+.Dv RENAME ,
+または
+.Dv DELETE
+です。
+.Dv CREATE ,
+.Dv RENAME ,
+または
+.Dv DELETE
+が明示されたときには、ディレクトリエントリの作成、名前変更、削除に
+使用する情報が計算できます。
+.Pp
+VOP_LOOKUP の全体の概要です。
+.Bd -ragged -offset indent
+ディレクトリのアクセス権をチェックします。
+キャッシュの中の名前を検索し、もし見つかれば、その名前を返します。
+ディレクトリの中の名前を検索し、found または notfound に適切に進みます。
+.Ed
+.Pp
+notfound:
+.Bd -ragged -offset indent
+作成または名前変更でパス名の最後の場合には、
+.Er EJUSTRETURN
+を返し、利用可能な位置に情報を残します。
+そうでなければ
+.Er ENOENT
+を返します。
+.Ed
+.Pp
+found:
+.Bd -ragged -offset indent
+パス名の最後で削除の場合には、削除を可能にする情報を返します。
+パス名の最後で名前変更の場合には、変更先の inode をロックして
+名前変更を可能にする情報を返します。
+最後でない場合には、名前をキャッシュに追加します。
+最後で作成でも削除でもない場合には、名前をキャッシュに追加します。
+.Ed
+.Sh ロック
+ディレクトリ
+.Fa dvp
+はエントリ時にロックされているべきです。
+エラー (注: 戻り値
+.Er EJUSTRETURN
+はエラーとはみなされません) が検出された場合には、ロックされたまま戻ります。
+しかしながら、
+.Fa cnp->cn_flags
+に
+.Dv LOCKPARENT
+および
+.Dv ISLASTCN
+の両方が明示されていない場合には、アンロックされません。
+エントリがそのディレクトリの中で見つかった場合には、ロックされて返されます。
+.Sh 戻り値
+要素が見つかった場合には、
+.Fa *vpp
+にそのファイルのロックされた vnode が設定されて、0 が返されます。
+検索されている要素が "." の場合、その vnode は
+.Xr vref 9
+を使用して追加された余分な参照を得ます。
+この場合は、呼び出し側が適切にロックを解放することに注意しなければなりません。
+.Pp
+要素が見つからず操作が
+.Dv CREATE
+または
+.Dv RENAME
+である場合には、フラグ
+.Dv ISLASTCN
+が明示されて操作は成功し、特別な戻り値
+.Er EJUSTRETURN
+が返されます。
+そうでない場合には、適切なエラーコードが返されます。
+.Sh 擬似コード
+.Bd -literal
+int
+vop_lookup(struct vnode *dvp,
+ struct vnode **vpp,
+ struct componentname *cnp)
+{
+ int error;
+ int nameiop = cnp->cn_nameiop;
+ int flags = cnp->cn_flags;
+ int lockparent = flags & LOCKPARENT;
+ int islastcn = flags & ISLASTCN;
+ struct vnode *vp = NULL;
+
+ /*
+ * ディレクトリのアクセス権をチェックします。
+ */
+ if (dvp->v_type != VDIR)
+ return ENOTDIR;
+
+ error = VOP_ACCESS(dvp, VEXEC, cred, cnp->cn_thread);
+ if (error)
+ return (error);
+
+ if (islastcn && (dvp->v_mount->mnt_flag & MNT_RDONLY) &&
+ (cnp->cn_nameiop == DELETE || cnp->cn_nameiop == RENAME))
+ return (EROFS);
+
+ /*
+ * ディレクトリ/名前のペアのための名前キャッシュをチェックします。
+ * これは、存在していない名前の場合には ENOENT を、名前が見つかった
+ * 場合には -1 を、そうでない場合には 0 を返します。
+ */
+ error = cache_lookup(dvp, vpp, cnp);
+ if (error) {
+ int vpid;
+
+ if (error = ENOENT)
+ return error;
+
+ vp = *vpp;
+ if (dvp == vp) { /* "." 上を探します */
+ VREF(vp);
+ error = 0;
+ } else if (flags & ISDOTDOT) {
+ /*
+ * デッドロックを避けるため、".." のロックされた vnode を
+ * 取得する前に、そのディレクトリをアンロックする必要が
+ * あります。
+ */
+ VOP_UNLOCK(dvp);
+ error = vget(vp, 1);
+ if (!error) {
+ if (lockparent && islastcn)
+ error = VOP_LOCK(dvp);
+ }
+ } else {
+ error = vget(vp, 1);
+ if (error || !(lockparent && islastcn)) {
+ VOP_UNLOCK(dvp);
+ }
+ }
+
+ /*
+ * ロックを待っている間に特性の数が変化していないことを
+ * チェックします。
+ */
+ if (!error) {
+ if (vpid == vp->v_id) {
+ /*
+ * lockparent && islastcn の場合には dvp がロック
+ * されます。 vp がロックされます。
+ */
+ return (0);
+ }
+ vput(vp);
+
+ if (dvp != vp && lockparent && islastcn)
+ VOP_UNLOCK(pdp);
+ }
+
+ /*
+ * 以下のディレクトリ検索のために dvp を再度ロックします。
+ */
+ error = VOP_LOCK(dvp);
+ if (error) {
+ return (error);
+ }
+
+ *vpp = NULL;
+ }
+
+ /*
+ * 要素 cnp->cn_nameptr のために dvp を検索します。
+ */
+ ...;
+
+ if (!found) {
+ if ((nameiop == CREATE || nameiop == RENAME)
+ && islastcn
+ && directory dvp has not been removed) {
+ /*
+ * ディレクトリの書込み権をチェックします。
+ */
+
+ /*
+ * できる限り、ディレクトリの中の新しい要素の名前のために
+ * 十分に大きい場所の位置を記録します。 これは dvp のための
+ * vnode の私的データの中に記録されることが可能です。
+ * VOP_CREATE または VOP_RENAME で後で使用するために、
+ * パス名に保持するために SAVENAME フラグを設定します。
+ */
+ cnp->cn_flags |= SAVENAME;
+ if (!lockparent)
+ /*
+ * 上記で記録された追加のデータは lockparent が明示
+ * された時にのみ有用であることに注意してください。
+ */
+ VOP_UNLOCK(dvp);
+
+ return EJUSTRETURN;
+ }
+
+ /*
+ * キャッシュに名前を挿入することを考慮します。
+ */
+ if ((cnp->cn_flags & MAKEENTRY) && nameiop != CREATE)
+ cache_enter(dvp, NULL, cnp);
+
+ return ENOENT;
+ } else {
+ /*
+ * 削除でパス名の最後の場合には、ファイルの削除に使用できる
+ * パラメータを返します。 wantparent フラグが設定されていない
+ * 場合にはそのディレクトリのみを返し、そうでない場合には
+ * 続けてその inode をロックし、"." に注意します。
+ */
+ if (nameiop == DELETE && islastcn) {
+ /*
+ * ディレクトリの書込み権をチェックします。
+ */
+ error = VOP_ACCESS(dvp, VWRITE, cred, cnp->cn_thread);
+ if (error)
+ return (error);
+
+ if (found entry is same as dvp) {
+ VREF(dvp);
+ *vpp = dvp;
+ return 0;
+ }
+
+ error = VFS_VGET(dvp->v_mount, ..., &vp);
+ if (error)
+ return error;
+
+ if (directory is sticky
+ && cred->cr_uid != 0
+ && cred->cr_uid != owner of dvp
+ && owner of vp != cred->cr_uid) {
+ vput(vp);
+ return EPERM;
+ }
+ *vpp = vp;
+ if (!lockparent)
+ VOP_UNLOCK(dvp);
+
+ return 0;
+ }
+
+ /*
+ * 再書込み (RENAME) の場合には、その inode および現在の
+ * ディレクトリを再書込みするために要求される情報を返します。
+ * 通常ファイルまたは空のディレクトリであることを確認するために、
+ * ディレクトリエントリの inode を取得しなければなりません。
+ */
+ if (nameiop == RENAME && wantparent && islastcn) {
+ error = VOP_ACCESS(dvp, VWRITE, cred, cnp->cn_thread);
+ if (error)
+ return (error);
+
+ /*
+ * "." をチェックします。
+ */
+ if (found entry is same as dvp)
+ return EISDIR;
+
+ error = VFS_VGET(dvp->v_mount, ..., &vp);
+ if (error)
+ return error;
+ *vpp = vp;
+ /*
+ * 後で VOP_RENAME で使用するために名前を保存します。
+ */
+ cnp->cn_flags |= SAVENAME;
+ if (!lockparent)
+ VOP_UNLOCK(dvp);
+
+ return 0;
+ }
+
+ /*
+ * 名前の変換のステップの全容です。 シンボリックリンクが現在の
+ * ディレクトリからの相対である場合には、再度必要になるので、
+ * ディレクトリを 'vput' しません。 代わりに "pdp" として
+ * アンロックされたディレクトリを保存します。 取得する前にその
+ * inode が削除されないことを保証するために、そのディレクトリを
+ * アンロックする前に目的の inode を取得しなければなりません。
+ * ルートからディレクトリツリーを下る方向で inode を取得する
+ * ことで、デッドロックを常に予防します。 従がって、逆向きの
+ * ポインタ ".." を辿るときには、要求されたディレクトリを取得する
+ * 前に親ディレクトリをアンロックしなければなりません。 ".." に
+ * 関連付けられた inode のための VFS_VGET が戻る前に、現在の
+ * および親ディレクトリの両方が削除された場合には、ここに潜在的な
+ * 競合状態があります。 きわめて複雑なデッドロック検出アルゴリズム
+ * の実装なしにこの競合状態を避けることができないので、この
+ * 競合状態の発生が稀であることを期待しています。 ファイルシステムが、
+ * ".." 以外に、ディレクトリ構造の中に遡りを指すハードリンクを
+ * 持つ場合、この簡単なデッドロック検出機構が働かないことにも注意
+ * してください。
+ */
+ if (flags & ISDOTDOT) {
+ VOP_UNLOCK(dvp); /* inode を取得するための競合です */
+ error = VFS_VGET(dvp->v_mount, ..., &vp);
+ if (error) {
+ VOP_LOCK(dvp);
+ return (error);
+ }
+ if (lockparent && islastcn) {
+ error = VOP_LOCK(dvp);
+ if (error) {
+ vput(vp);
+ return error;
+ }
+ }
+ *vpp = vp;
+ } else if (found entry is same as dvp) {
+ VREF(dvp); /* 例えば "." など、自分自身が必要です */
+ *vpp = dvp;
+ } else {
+ error = VFS_VGET(dvp->v_mount, ..., &vp);
+ if (error)
+ return (error);
+ if (!lockparent || !islastcn)
+ VOP_UNLOCK(dvp);
+ *vpp = vp;
+ }
+
+ /*
+ * 適切であれば名前をキャッシュに挿入します。
+ */
+ if (cnp->cn_flags & MAKEENTRY)
+ cache_enter(dvp, *vpp, cnp);
+ return (0);
+ }
+}
+.Ed
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er ENOTDIR
+vnode
+.Fa dvp
+がディレクトリを表わしていません。
+.It Bq Er ENOENT
+要素
+.Fa dvp
+がそのディレクトリには見つかりません。
+.It Bq Er EACCES
+明示された操作のためのアクセスが拒否されました。
+.It Bq Er EJUSTRETURN
+.Dv CREATE
+または
+.Dv RENAME
+の操作は成功です。
+.El
+.Sh 関連項目
+.Xr VOP_ACCESS 9 ,
+.Xr VOP_CREATE 9 ,
+.Xr VOP_MKDIR 9 ,
+.Xr VOP_MKNOD 9 ,
+.Xr VOP_RENAME 9 ,
+.Xr VOP_SYMLINK 9 ,
+.\" 下の関連項目をマージ by A.Ikeuchi。
+.Xr vnode 9
+.Sh 歴史
+関数
+.Nm
+は
+.Bx 4.3
+で登場しました。
+.\" 上の関連項目にマージ by A.Ikeuchi。
+.\" .Sh 関連項目
+.\" .Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.Pa ufs_lookup.c
+の中のコメントからのテキストを使って、
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_OPENCLOSE.9 b/documentation/manual-pages/ja/man9/VOP_OPENCLOSE.9
new file mode 100644
index 0000000000..d0c37fbfc7
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_OPENCLOSE.9
@@ -0,0 +1,119 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_OPENCLOSE.9,v 1.15 2004/05/11 14:13:52 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_OPEN 9
+.Sh 名称
+.Nm VOP_OPEN ,
+.Nm VOP_CLOSE
+.Nd ファイルのオープンまたはクローズ
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_OPEN "struct vnode *vp" "int mode" "struct ucred *cred" "struct thread *td" "int fdidx"
+.Ft int
+.Fn VOP_CLOSE "struct vnode *vp" "int mode" "struct ucred *cred" "struct thread *td"
+.Sh 解説
+.Fn VOP_OPEN
+エントリポイントは、
+ファイルがプロセスによってアクセスされる前に呼び出され、
+.Fn VOP_CLOSE
+エントリポイントは、
+ファイルに対するプロセスの仕事の完了後に呼び出されます。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width mode
+.It Fa vp
+ファイルの vnode。
+.It Fa mode
+呼び出しプロセスによって要求されたアクセスモード。
+.It Fa td
+ファイルにアクセスしているスレッド。
+.El
+.Pp
+加えて、
+.Fn VOP_OPEN
+は
+.Fa fdidx
+の中のファイル記述子番号を受け入れることが可能です。
+これは例えば
+.Xr fdesc 5
+のような情報を要求するファイルシステムで有用です。
+.Pp
+アクセスモードは、
+.Dv FREAD ,
+.Dv FWRITE ,
+.Dv O_NONBLOCK ,
+.Dv O_APPEND
+を含むフラグの組です。
+.Sh ロック
+.Fn VOP_OPEN
+は、入る時に
+.Fa vp
+がロックされていることを期待し、戻り時までロックされたままにします。
+.Pp
+.Fn VOP_CLOSE
+は、vnode に結びつけられた参照が少なくとも 1 個は存在することを期待し、
+vnode がロックされているかどうかは気にしません。
+ロックおよび参照状態は、戻る時に変更されずにそのままになります。
+.Fa vn_close
+は、ロックされていない参照された vnode を期待し、
+戻る前に参照を手繰ることに注意してください。
+.Sh 実装に関する注
+.Fn VOP_OPEN
+への
+.Fa fdidx
+引数は現在使用されておらず、当面は
+.Ql \-1
+を使用します。
+しかしながら、これは将来変更されます。
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合にはエラーコードが返されます。
+.Sh 疑似コード
+.Bd -literal
+int
+vop_open(struct vnode *vp, int mode, struct ucred *cred, struct thread *td)
+{
+ /*
+ * ほとんどのファイルシステムは、ここでは大したことはしません。
+ */
+ return 0;
+}
+.Ed
+.Sh 関連項目
+.Xr vnode 9 ,
+.Xr VOP_LOOKUP 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_PATHCONF.9 b/documentation/manual-pages/ja/man9/VOP_PATHCONF.9
new file mode 100644
index 0000000000..e1df936cf0
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_PATHCONF.9
@@ -0,0 +1,87 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_PATHCONF.9,v 1.10 2003/05/31 14:07:25 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_PATHCONF 9
+.Sh 名称
+.Nm VOP_PATHCONF
+.Nd POSIX パス構成情報の取得
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In sys/unistd.h
+.Ft int
+.Fn VOP_PATHCONF "struct vnode *vp" "int name" "int *retval"
+.Sh 解説
+引数は以下の通りです。
+.Bl -tag -width retval
+.It Fa vp
+情報を得る対象の vnode。
+.It Fa name
+返す情報の型。
+.It Fa retval
+情報を返す場所。
+.El
+.Pp
+.Fa name
+の値は以下の何が返されるかを指定します。
+.Bl -tag -width _PC_CHOWN_RESTRICTED
+.It Dv _PC_LINK_MAX
+ファイルへのリンクの最大値。
+.It Dv _PC_NAME_MAX
+ファイル名の最大バイト数。
+.It Dv _PC_PATH_MAX
+パス名の最大バイト数。
+.It Dv _PC_PIPE_BUF
+不可分にパイプに書き出される最大バイト数。
+.It Dv _PC_CHOWN_RESTRICTED
+.Xr chown 2
+システムコールのために適切な特権が必要な場合には 1、
+そうでない場合には 0。
+.It Dv _PC_NO_TRUNC
+.Dv KERN_NAME_MAX
+よりも長いファイル名が切り詰められる場合には 1。
+.El
+.Sh 戻り値
+.Fa name
+が認識される場合、
+.Fa *retval
+に指定された値が設定されて 0 が返され、そうでない場合には
+.Er EINVAL
+が返されます。
+.Sh 関連項目
+.Xr pathconf 2 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_PRINT.9 b/documentation/manual-pages/ja/man9/VOP_PRINT.9
new file mode 100644
index 0000000000..1278d12369
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_PRINT.9
@@ -0,0 +1,56 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_PRINT.9,v 1.8 2003/05/31 14:07:25 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_PRINT 9
+.Sh 名称
+.Nm VOP_PRINT
+.Nd デバッグ情報の表示
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_PRINT "struct vnode *vp"
+.Sh 解説
+引数は以下の通りです。
+.Bl -tag -width 2n
+.It Fa vp
+表示対象の vnode。
+.El
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合にはエラーが返されます。
+.Sh 関連項目
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_RDWR.9 b/documentation/manual-pages/ja/man9/VOP_RDWR.9
new file mode 100644
index 0000000000..277625404f
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_RDWR.9
@@ -0,0 +1,240 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_RDWR.9,v 1.17 2004/07/08 00:43:50 alfred Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_RDWR 9
+.Sh 名称
+.Nm VOP_READ ,
+.Nm VOP_WRITE
+.Nd ファイルの読み込みまたは書き込み
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In sys/uio.h
+.Ft int
+.Fn VOP_READ "struct vnode *vp" "struct uio *uio" "int ioflag" "struct ucred *cred"
+.Ft int
+.Fn VOP_WRITE "struct vnode *vp" "struct uio *uio" "int ioflag" "struct ucred *cred"
+.Sh 解説
+これらのエントリポイントは、ファイルの内容を読み込みまたは書き込みます。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width ioflag
+.It Fa vp
+ファイルの vnode。
+.It Fa uio
+読み込みまたは書き込み対象のデータの位置。
+.It Fa ioflag
+様々なフラグ。
+.It Fa cnp
+呼び出し側の証明。
+.El
+.Pp
+.Fa ioflag
+引数は、ファイルシステムに対する命令およびヒントを与えるために使用されます。
+読み込みを試みる時には、上位の 16 ビットは、
+ファイルシステムが試みるべき先読みのヒントを (ファイルシステムブロック単位で)
+提供するために使用されます。
+下位の 16 ビットは、以下のフラグを含むことができるビットマスクです。
+.Bl -tag -width IO_NODELOCKED
+.It Dv IO_UNIT
+不可分に入出力を行ないます。
+.It Dv IO_APPEND
+末尾に追加書き込みを行ないます。
+.It Dv IO_SYNC
+同期的に入出力を行ないます。
+.It Dv IO_NODELOCKED
+下位層のノードは既にロックされています。
+.It Dv IO_NDELAY
+ファイルテーブルに
+.Dv FNDELAY
+フラグを設定します。
+.It Dv IO_VMIO
+仮想メモリ入出力 (VMIO) 領域にデータが既にあります。
+.El
+.Sh ロック
+入る時に、ファイルはロックされているべきで、終了時までロックされ続けます。
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合にはエラーコードが返されます。
+.Sh 疑似コード
+.Bd -literal
+int
+vop_read(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred)
+{
+ struct buf *bp;
+ off_t bytesinfile;
+ daddr_t lbn, nextlbn;
+ long size, xfersize, blkoffset;
+ int error;
+
+ size = block size of file system;
+
+ for (error = 0, bp = NULL; uio->uio_resid > 0; bp = NULL) {
+ bytesinfile = size of file - uio->uio_offset;
+ if (bytesinfile <= 0)
+ break;
+
+ lbn = uio->uio_offset / size;
+ blkoffset = uio->uio_offset - lbn * size;
+
+ xfersize = size - blkoffset;
+ if (uio->uio_resid < xfersize)
+ xfersize = uio->uio_resid;
+ if (bytesinfile < xfersize)
+ xfersize = bytesinfile;
+
+ error = bread(vp, lbn, size, NOCRED, &bp);
+ if (error) {
+ brelse(bp);
+ bp = NULL;
+ break;
+ }
+
+ /*
+ * 入出力エラーが起こった時には 0 でない b_resid のみ
+ * を得ます。これは上で break を引き起こすべきです。
+ * しかしながら、短い読み込みがエラーを起こさなかった
+ * 場合には、間違ったまたは初期化されていないデータの
+ * uiomove を行なわないことを保証したい。
+ */
+ size -= bp->b_resid;
+ if (size < xfersize) {
+ if (size == 0)
+ break;
+ xfersize = size;
+ }
+
+ error = uiomove((char *)bp->b_data + blkoffset, (int)xfersize, uio);
+ if (error)
+ break;
+
+ bqrelse(bp);
+ }
+ if (bp != NULL)
+ bqrelse(bp);
+
+ return (error);
+}
+
+int
+vop_write(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred)
+{
+ struct buf *bp;
+ off_t bytesinfile;
+ daddr_t lbn, nextlbn;
+ off_t osize;
+ long size, resid, xfersize, blkoffset;
+ int flags;
+ int error;
+
+ osize = size of file;
+ size = block size of file system;
+ resid = uio->uio_resid;
+ if (ioflag & IO_SYNC)
+ flags = B_SYNC;
+ else
+ flags = 0;
+
+ for (error = 0; uio->uio_resid > 0;) {
+ lbn = uio->uio_offset / size;
+ blkoffset = uio->uio_offset - lbn * size;
+
+ xfersize = size - blkoffset;
+ if (uio->uio_resid < xfersize)
+ xfersize = uio->uio_resid;
+
+ if (uio->uio_offset + xfersize > size of file)
+ vnode_pager_setsize(vp, uio->uio_offset + xfersize);
+
+ if (size > xfersize)
+ flags |= B_CLRBUF;
+ else
+ flags &= ~B_CLRBUF;
+
+ error = find_block_in_file(vp, lbn, blkoffset + xfersize,
+ cred, &bp, flags);
+ if (error)
+ break;
+
+ if (uio->uio_offset + xfersize > size of file)
+ set size of file to uio->uio_offset + xfersize;
+
+ error = uiomove((char *)bp->b_data + blkoffset, (int) xfersize, uio);
+ /* XXX ufs はここでエラーチェックをしていません。何故? */
+
+ if (ioflag & IO_VMIO)
+ bp->b_flags |= B_RELBUF; /* ??? */
+
+ if (ioflag & IO_SYNC)
+ bwrite(bp);
+ else if (xfersize + blkoffset == size)
+ bawrite(bp);
+ else
+ bdwrite(bp);
+
+ if (error || xfersize == 0)
+ break;
+ }
+
+ if (error) {
+ if (ioflag & IO_UNIT) {
+ /* ファイルを切り詰める私的なルーチンを呼び出す。 */
+ your_truncate(vp, osize, ioflag & IO_SYNC, cred, uio->uio_td);
+ uio->uio_offset -= resid - uio->uio_resid;
+ uio->uio_resid = resid;
+ }
+ } else if (resid > uio->uio_resid && (ioflag & IO_SYNC)) {
+ struct timeval tv;
+ error = VOP_UPDATE(vp, &tv, &tv, 1); /* XXX これは何をしているの? */
+ }
+
+ return (error);
+}
+.Ed
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er EFBIG
+プロセスのファイルサイズリミットまたは最大ファイルサイズを超える
+ファイルを書込もうとしました。
+.It Bq Er ENOSPC
+ファイルシステムが一杯です。
+.It Bq Er EPERM
+追加のみのフラグがファイルに設定されていますが、呼び出し側が現在の
+ファイル終了位置より前に書込もうとしました。
+.El
+.Sh 関連項目
+.Xr uiomove 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_READDIR.9 b/documentation/manual-pages/ja/man9/VOP_READDIR.9
new file mode 100644
index 0000000000..30ffd070c4
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_READDIR.9
@@ -0,0 +1,169 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_READDIR.9,v 1.12 2003/10/23 02:11:14 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_READDIR 9
+.Sh 名称
+.Nm VOP_READDIR
+.Nd ディレクトリ内容の読込み
+.Sh 書式
+.In sys/param.h
+.In sys/dirent.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_READDIR "struct vnode *vp" "struct uio *uio" "struct ucred *cred" "int *eofflag" "int *ncookies" "u_long **cookies"
+.Sh 解説
+ディレクトリエントリを読込みます。
+.Bl -tag -width ncookies
+.It Fa vp
+ディレクトリの vnode です。
+.It Fa uio
+ディレクトリ内容を読込む場所です。
+.It Fa cred
+呼び出し側の証明です。
+.It Fa eofflag
+ファイル終端の状態を返します (必要なければ NULL)。
+.It Fa ncookies
+NFS のために作成されたディレクトリクッキーの数です (必要なければ NULL)。
+.It Fa cookies
+NFS のためのディレクトリ検索クッキーです (必要なければ NULL)。
+.El
+.Pp
+ディレクトリ内容は
+.Vt struct dirent
+構造体に読込まれます。
+ディスク上の構造体がこれと違っている場合、変換が必要となります。
+.Sh ロック
+ディレクトリはエントリ時にロックされているべきであり、
+終了時までロックされます。
+.Sh 戻り値
+成功時には 0 が返され、そうでなければエラーコードが返されます。
+.Pp
+NFS サーバから呼び出された場合には、追加の引数
+.Fa eofflag ,
+.Fa ncookies
+および
+.Fa cookies
+が与えられます。
+.Fa *eofflag
+の値は、読込み中にディレクトリの最後に達した場合には、
+TRUE に設定されるべきです。
+ディレクトリ検索クッキーは NFS クライアントに返され、後でそのディレクトリを
+通してディレクトリの読込みを再開するために使用されることが出来ます。
+ディレクトリエントリ毎に 1 つのクッキーが返されるべきです。
+クッキーの値は、ディレクトリ内のオフセットであり、
+対応するディスク上のディレクトリエントリがそこから開始します。
+クッキーのためのメモリは以下を使用して割り当てられるべきです。
+.Pp
+.Bd -literal
+ ...;
+ *ncookies = number of entries read;
+ *cookies = (u_int*)#
+ malloc(*ncookies * sizeof(u_int), M_TEMP, M_WAITOK);
+.Ed
+.Sh 疑似コード
+.Bd -literal
+int
+vop_readdir(struct vnode *vp, struct uio *uio, struct ucred *cred,
+ int *eofflag, int *ncookies, u_int **cookies)
+{
+ off_t off;
+ int error = 0;
+
+ /*
+ * クッキーの生成時に後で使うために元のオフセットを覚えます。
+ */
+ off = uio->uio_offset;
+
+ /*
+ * uio->uio_offset から始まるディレクトリ内容を uio によって
+ * 指されるバッファに読込みます。
+ */
+ ...;
+
+ if (!error && ncookies != NULL) {
+ struct dirent *dpStart;
+ struct dirent *dpEnd;
+ struct dirent *dp;
+ int count;
+ u_int *cookiebuf;
+ u_int *cookiep;
+
+ if (uio->uio_segflg != UIO_SYSSPACE || uio->uio_iovcnt != 1)
+ panic("vop_readdir: unexpected uio from NFS server");
+
+ /*
+ * 今 uio に読込んだ要素を解析します。
+ */
+ dpStart = (struct dirent *)
+ ((char *)uio->uio_iov->iov_base - (uio->uio_offset - off));
+ dpEnd = (struct dirent *) uio->uio_iov->iov_base;
+
+ /*
+ * エントリ数の数え上げ
+ */
+ for (dp = dpStart, count = 0;
+ dp < dpEnd;
+ dp = (struct dirent *)((caddr_t) dp + dp->d_reclen))
+ count++;
+
+ cookiebuf = (u_int *) malloc(count * sizeof(u_int), M_TEMP, M_WAITOK);
+ for (dp = dpStart; cookiep = cookiebuf;
+ dp < dpEnd;
+ dp = (struct dirent *)((caddr_t) dp + dp->d_reclen)) {
+ off += dp->d_reclen;
+ *cookiep++ = (u_int) off;
+ }
+ *ncookies = count;
+ *cookies = cookiebuf;
+ }
+
+ if (eofflag && uio->uio_offset is past the end of the directory) {
+ *eofflag = TRUE;
+ }
+
+ return error;
+}
+.Ed
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er EINVAL
+ディレクトリ内の不正なオフセットから読込もうとしました。
+.It Bq Er EIO
+ディレクトリの読込み中に、読取りエラーが発生しました。
+.El
+.Sh 関連項目
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_READLINK.9 b/documentation/manual-pages/ja/man9/VOP_READLINK.9
new file mode 100644
index 0000000000..4f635f2201
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_READLINK.9
@@ -0,0 +1,84 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_READLINK.9,v 1.11 2003/05/31 14:07:25 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_READLINK 9
+.Sh 名称
+.Nm VOP_READLINK
+.Nd シンボリックリンクのターゲットの読み込み
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In sys/uio.h
+.Ft int
+.Fn VOP_READLINK "struct vnode *vp" "struct uio *uio" "struct ucred *cred"
+.Sh 解説
+これは、シンボリックリンクのターゲットのパス名を読み込みます。
+.Bl -tag -width uio
+.It Fa vp
+シンボリックリンクの vnode。
+.It Fa uio
+読み込みまたは書き込みのためのデータの位置。
+.It Fa cred
+呼び出し側の証明。
+.El
+.Sh ロック
+入る時に、vnode はロックされているべきで、終了時にもロックされ続けます。
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合にはエラーコードが返されます。
+.Sh 疑似コード
+.Bd -literal
+int
+vop_readlink(struct vnode *vp, struct uio *uio, struct ucred *cred)
+{
+ int error = 0;
+
+ /*
+ * シンボリックリンクのターゲットを読み込みます。
+ */
+ ...;
+
+ return error;
+}
+.Ed
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er EIO
+シンボリックリンクの内容の読み込みの間に、読み込みエラーが発生しました。
+.El
+.Sh 関連項目
+.Xr uiomove 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_REALLOCBLKS.9 b/documentation/manual-pages/ja/man9/VOP_REALLOCBLKS.9
new file mode 100644
index 0000000000..fe9f86b49f
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_REALLOCBLKS.9
@@ -0,0 +1,61 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_REALLOCBLKS.9,v 1.9 2003/05/31 14:07:25 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_REALLOCBLKS 9
+.Sh 名称
+.Nm VOP_REALLOCBLKS
+.Nd ファイルのブロックを連続するように再配列
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_REALLOCBLKS "struct vnode *vp" "struct cluster_save *buflist"
+.Sh 解説
+引数は以下の通りです。
+.Bl -tag -width buflist
+.It Fa vp
+操作対象のファイル。
+.It Fa buflist
+再配列対象のブロックのリスト。
+.El
+.Pp
+これは進行中の作業の一部分のようです。
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合にはエラーが返されます。
+.Sh 関連項目
+.Xr buf 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは、
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_REMOVE.9 b/documentation/manual-pages/ja/man9/VOP_REMOVE.9
new file mode 100644
index 0000000000..cb2f6fb2a3
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_REMOVE.9
@@ -0,0 +1,109 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_REMOVE.9,v 1.12 2003/05/31 14:07:25 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_REMOVE 9
+.Sh 名称
+.Nm VOP_REMOVE ,
+.Nm VOP_RMDIR
+.Nd ファイルまたはディレクトリの削除
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_REMOVE "struct vnode *dvp" "struct vnode *vp" "struct componentname *cnp"
+.Ft int
+.Fn VOP_RMDIR "struct vnode *dvp" "struct vnode *vp" "struct componentname *cnp"
+.Sh 解説
+これらのエントリポイントは、それぞれファイルとディレクトリを削除します。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width dvp
+.It Fa dvp
+ディレクトリの vnode。
+.It Fa vp
+削除対象ファイルの vnode。
+.It Fa cnp
+ファイルのパス名情報。
+.El
+.Sh ロック
+.Fa dvp
+および
+.Fa vp
+共に、入る時にロックされているべきで、戻り時もロックされ続けています。
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合にはエラーコードが返されます。
+.Sh 疑似コード
+.Bd -literal
+int
+vop_remove(struct vnode *dvp, struct vnode *vp, struct componentname *cnp)
+{
+ int error = 0;
+
+ if (vp is immutable) {
+ error = EPERM;
+ goto out;
+ }
+
+ /*
+ * ディレクトリから cnp->cn_nameptr の名前を削除し、vp のリンク
+ * カウントを更新します。
+ */
+ ...;
+
+ /*
+ * "." の削除を試みる場合は注意してください。XXX これはより
+ * 上層で取り扱われるべきです。
+ */
+ if (dvp == vp)
+ vrele(vp);
+ else
+ vput(vp);
+ vput(dvp);
+
+ return error;
+}
+.Ed
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er EPERM
+ファイルは変更不可能です。
+.It Bq Er ENOTEMPTY
+空ではないディレクトリを削除しようとしました。
+.El
+.Sh 関連項目
+.Xr vnode 9 ,
+.Xr VOP_LOOKUP 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_RENAME.9 b/documentation/manual-pages/ja/man9/VOP_RENAME.9
new file mode 100644
index 0000000000..61be4bbb4e
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_RENAME.9
@@ -0,0 +1,319 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_RENAME.9,v 1.20 2004/07/08 00:38:28 alfred Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_RENAME 9
+.Sh 名称
+.Nm VOP_RENAME
+.Nd ファイルの名前変更
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_RENAME "struct vnode *fdvp" "struct vnode *fvp" "struct componentname *fcnp" "struct vnode *tdvp" "struct vnode *tvp" "struct componentname *tcnp"
+.Sh 解説
+これはファイルの名前変更をし、
+もしかすると親ディレクトリを変更するかもしれません。
+変更先のオブジェクトが存在する場合には、最初に削除されます。
+.Pp
+引数は以下のとおりです。
+.Bl -tag -width fdvp
+.It Fa fdvp
+古い親ディレクトリの vnode です。
+.It Fa fvp
+名前変更されるべきファイルの vnode です。
+.It Fa fcnp
+ファイルの現在の名前についてのパス名情報です。
+.It Fa tdvp
+新しい親ディレクトリの vnode です。
+.It Fa tvp
+(もし存在するならば) 変更先のファイルの vnode です。
+.It Fa tcnp
+ファイルの新しい名前についてのパス名情報です。
+.El
+.Sh ロック
+エントリ時には、変更元のディレクトリおよびファイルはロックされておらず、
+それらの参照カウントは増やされています。
+この VOP ルーチンは戻る前に両方に対して
+.Xr vrele 9
+を呼び出すはずです。
+.Pp
+変更先のディレクトリおよびファイルは、それらの参照カウントが増やされるのは
+もちろん、ロックされています。
+この VOP ルーチンは戻る前に両方に対して
+.Xr vput 9
+を呼び出すはずです。
+.Sh 疑似コード
+.Bd -literal
+int
+vop_rename(struct vnode *fdvp, struct vnode *fvp, struct componentname *fcnp,
+ struct vnode *tdvp, struct vnode *tvp, struct componentname *tcnp)
+{
+ int doingdirectory = 0;
+ int error = 0;
+
+ /*
+ * デバイスをまたがる名前変更のためのチェックです。
+ */
+ if (fvp->v_mount != tdvp->v_mount) {
+ error = EXDEV;
+ abortit:
+ if (tdvp == tvp)
+ vrele(tdvp);
+ else
+ vput(tdvp);
+ if (tvp)
+ vput(tvp);
+ vrele(fdvp);
+ vrele(fvp);
+ return error;
+ }
+
+ if (tvp exists and is immutable) {
+ error = EPERM;
+ goto abortit;
+ }
+
+ /*
+ * リンク名を消そうとしているかどうかのチェックです。
+ */
+ if (fvp == tvp) {
+ if (fvp->v_type == VDIR) {
+ error = EINVAL;
+ goto abortit;
+ }
+
+ /*
+ * 変更先を解放します。
+ */
+ vput(tdvp);
+ vput(tvp);
+
+ /*
+ * 変更元を削除します。少し異様な要素です。
+ */
+ vrele(fdvp);
+ vrele(fvp);
+ fcnp->cn_flags &= ~MODMASK;
+ fcnp->cn_flags |= LOCKPARENT | LOCKLEAF;
+ fcnp->cn_nameiop = DELETE;
+ VREF(fdvp);
+ error = relookup(fdvp, &fvp, fcnp);
+ if (error == 0)
+ vrele(fdvp);
+ return VOP_REMOVE(fdvp, fvp, fcnp);
+ }
+
+ if (fvp is immutable) {
+ error = EPERM;
+ goto abortit;
+ }
+
+ error = VOP_LOCK(fvp);
+ if (error)
+ goto abortit;
+
+ if (vp is a directory) {
+ /*
+ * 明白な理由のため、".", ".." と "." の別名を避けます。
+ */
+ if ((fcnp->cn_namelen == 1 && fcnp->cn_nameptr[0] == '.')
+ || fdvp == fvp
+ || ((fcnp->cn_flags | tcnp->cn_flags) & ISDOTDOT)) {
+ VOP_UNLOCK(fvp);
+ error = EINVAL;
+ goto abortit;
+ }
+ doingdirectory = 1;
+ }
+ vrele(fdvp);
+
+ /*
+ * 移動要素の活動中の間は、fvp のリンクカウントを増やします。
+ * 作業完了の前にクラッシュした場合には、リンクカウントは間違って
+ * いるでしょうが、修正可能です。
+ */
+ ...;
+
+ /*
+ * それから (例えばディレクトリが新しい親を得るなど) ".." が変更
+ * されなければならない場合には、変更元のディレクトリは変更先よりも
+ * 上位のディレクトリ階層に在ってはなりません。これは変更元の
+ * ディレクトリ以下の全てが孤児となるからです。また、ユーザは
+ * 変更元で ".." を変更できるように書込みパーミッションを持って
+ * いなければなりません。
+ */
+ error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, tcnp->cn_thread);
+ VOP_UNLOCK(fvp);
+ if (doingdirectory && fdvp != tdvp) {
+ /*
+ * パス名の衝突をチェックします。
+ */
+ ...;
+ }
+
+ /*
+ * 変更先が存在しない場合、変更先を変更元にリンクして、変更元を
+ * アンリンクします。そうでない場合、変更先ディレクトリを書き換えて
+ * 変更元を参照するようにし、元のエントリを削除します。
+ */
+ if (tvp == NULL) {
+ /*
+ * 新しいディレクトリの ".." のアカウント。
+ */
+ if (doingdirectory && fdvp != tdvp) {
+ /*
+ * tdvp のリンクカウントを増やします。
+ */
+ ...;
+ }
+
+ /*
+ * 新しいディレクトリで名前を追加します。
+ */
+ ...;
+
+ if (error) {
+ if (doingdirectory && fdvp != tdvp) {
+ /*
+ * tdvp であればリンクカウントを減らします。
+ */
+ ...;
+ }
+ goto bad;
+ }
+ vput(tdvp);
+ } else {
+ /*
+ * 変更先がディレクトリの場合、これは空でなければならず、これへの
+ * リンクがあってはなりません。また、変更元と変更先は一致する
+ * (両方ともディレクトリ、または両方ともディレクトリではない)
+ * ことを保証してください。
+ */
+ if (tvp is a directory) {
+ if (tvp is not empty) {
+ error = ENOTEMPTY;
+ goto bad;
+ }
+ if (!doingdirectory) {
+ error = ENOTDIR;
+ goto bad;
+ }
+ /*
+ * ディレクトリが消え去ったため、名前キャッシュを更新します。
+ */
+ cache_purge(tdvp);
+ } else if (doingdirectory) {
+ error = ENOTDIR;
+ goto bad;
+ }
+
+ /*
+ * fvp が指す tdvp の名前 tcnp を変更します。
+ */
+ ...;
+
+ /*
+ * 変更先ディレクトリが変更元と同じディレクトリにある場合には、
+ * 変更先のディレクトリの親のリンクカウントを減らします。
+ * ".." により、その親に対する戻り方向のリンクとなる事実を、
+ * 説明するものです。
+ */
+ if (doingdirectory && fdvp == tdvp) {
+ /*
+ * tdvp のリンクカウントを減らします。
+ */
+ ...;
+ }
+ vput(tdvp);
+
+ /*
+ * ディレクトリがもはやそれを指さないので、tvp のリンクカウントを
+ * 減らします。
+ */
+ ...;
+ if (doingdirectory) {
+ /*
+ * 古いディレクトリ tvp をきれいにします。
+ */
+ ...;
+ }
+ vput(tvp);
+ }
+
+ /*
+ * 変更元をアンリンクします。ディレクトリが新しい親に移動される場合
+ * には、その ".." エントリを更新します。ここで、たくさんの厄介な
+ * UFS のコードが省かれました。
+ */
+ ...;
+
+bad:
+ if (tvp)
+ vput(tvp);
+ vput(tdvp);
+out:
+ if (VOP_LOCK(fvp) == 0) {
+ /*
+ * fvp のリンクカウントをデクリメント
+ */
+ ...;
+ vput(fvp);
+ } else
+ vrele(fvp);
+
+ return error;
+}
+.Ed
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er EPERM
+ファイルが変更可能ではありません。
+.It Bq Er EXDEV
+異なるファイルシステム間の名前変更はできません。
+.It Bq Er EINVAL
+.Pa \&.
+または
+.Pa ..
+の名前変更、またはディレクトリツリーを破壊するような操作の実行を
+行なおうとしました。
+.It Bq Er ENOTDIR
+ディレクトリからファイルにまたはその逆に名前変更しようとしました。
+.It Bq Er ENOTEMPTY
+空ではないディレクトリを削除しようとしました。
+.El
+.Sh 関連項目
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_REVOKE.9 b/documentation/manual-pages/ja/man9/VOP_REVOKE.9
new file mode 100644
index 0000000000..8d1ef6257b
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_REVOKE.9
@@ -0,0 +1,72 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2002 Networks Associates Technology, Inc.
+.\" All rights reserved.
+.\"
+.\" This software was developed for the FreeBSD Project by NAI Labs, the
+.\" Security Research Division of Network Associates, Inc. under
+.\" DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA
+.\" CHATS research program.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. The names of the authors may not be used to endorse or promote
+.\" products derived from this software without specific prior written
+.\" permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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/VOP_REVOKE.9,v 1.5 2002/03/18 16:40:07 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd February 5, 2002
+.Os
+.Dt VOP_REVOKE 9
+.Sh 名称
+.Nm VOP_REVOKE
+.Nd "デバイスとその別名へのアクセスの取り消し"
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_REVOKE "struct vnode *vp" "int flags"
+.Sh 解説
+.Fn VOP_REVOKE
+は管理上、
+.Fa vp
+によって指定されたデバイスと
+.Xr make_dev_alias 9
+によって作成されたあらゆる別名へのアクセスを取り消します。
+既にオープンしているプロセスによるこれら全てのデバイス上のファイル操作は、
+普通は失敗します。
+全てのアクセスが取り消されることを示すために、
+.Fa flags
+は
+.Dv REVOKEALL
+に設定されなければなりません。他の全ての値は無効です。
+.Sh ロック
+.Fa vp
+は入る時にロック解除されていなければならず、戻る時までロック解除され続けます。
+.Sh 関連項目
+.Xr make_dev_alias 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Brian Fundakowski Feldman
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_SETACL.9 b/documentation/manual-pages/ja/man9/VOP_SETACL.9
new file mode 100644
index 0000000000..cf74684c58
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_SETACL.9
@@ -0,0 +1,109 @@
+.\"-
+.\" Copyright (c) 1999, 2000, 2001 Robert N. M. Watson
+.\" 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/VOP_SETACL.9,v 1.11 2003/10/23 02:11:14 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd December 23, 1999
+.Os
+.Dt VOP_SETACL 9
+.Sh 名称
+.Nm VOP_SETACL
+.Nd vnode のアクセス制御リストの設定
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In sys/acl.h
+.Ft int
+.Fn VOP_SETACL "struct vnode *vp" "acl_type_t type" "struct acl *aclp" "struct ucred *cred" "struct thread *td"
+.Sh 解説
+この vnode 呼び出しは、ファイルまたはディレクトリの
+アクセス制御リスト (ACL) を設定するために使用可能です。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width type
+.It Fa vp
+ファイルまたはディレクトリの vnode。
+.It Fa type
+設定される ACL の型。
+.It Fa aclp
+ACL データの取り出し元の ACL 構造体へのポインタ。
+.It Fa cred
+要求の認証時に使用されるユーザ証明。
+.It Fa td
+ACL を設定しているスレッド。
+.El
+.Pp
+.Fa aclp
+ポインタは、
+.Dv NULL
+を指定可能であり、
+指定した ACL が削除されるべきであることを示します。
+.Pp
+.Fa cred
+ポインタは、NULL を渡すことができ、
+可能であるならばアクセス制御チェックが実行されないことを指示します。
+この cred の設定は、アクティブプロセスに許されていない ACL 証明を、
+カーネルが正当化することを認めるために使用可能です。
+この cred の設定は、アクティブプロセスに許されていない拡張属性の変更を
+カーネルが正当化することを認めるために使用可能です。
+.Pp
+vnode ACL インタフェースは、ファイルまたはディレクトリの ACL インタフェースの
+セマンティクスではなく文法を定義します。
+カーネル内の ACL 管理についての詳細な情報は
+.Xr acl 9
+を参照してください。
+.Sh ロック
+入る時に vnode はロックされ、戻り時にもロックされ続けているべきです。
+.Sh 戻り値
+ACL が成功裏に設定された場合には 0 が返されます。
+そうでない場合には適切なエラーコードが返されます。
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er EINVAL
+渡された ACL 型はこの vnode には無効です。
+または、ACL データが無効です。
+.It Bq Er EACCES
+呼び出し側が適切な特権を持っていません。
+.It Bq Er ENOMEM
+要求を実行するための十分なメモリが利用可能ではありません。
+.It Bq Er EOPNOTSUPP
+ファイルシステムが
+.Fn VOP_SETACL
+をサポートしていません。
+.It Bq Er ENOSPC
+ファイルシステムの領域不足です。
+.It Bq Er EROFS
+ファイルシステムが読み取り専用です。
+.El
+.Sh 関連項目
+.Xr acl 9 ,
+.Xr vnode 9 ,
+.Xr VOP_ACLCHECK 9 ,
+.Xr VOP_GETACL 9
+.Sh 作者
+このマニュアルページは
+.An Robert Watson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_SETEXTATTR.9 b/documentation/manual-pages/ja/man9/VOP_SETEXTATTR.9
new file mode 100644
index 0000000000..5327bf88b6
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_SETEXTATTR.9
@@ -0,0 +1,122 @@
+.\"-
+.\" Copyright (c) 1999, 2000, 2001 Robert N. M. Watson
+.\" 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/VOP_SETEXTATTR.9,v 1.18 2003/09/12 21:54:11 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd December 23, 1999
+.Os
+.Dt VOP_SETEXTATTR 9
+.Sh 名称
+.Nm VOP_SETEXTATTR
+.Nd vnode への名前つき拡張属性の設定
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In sys/extattr.h
+.Ft int
+.Fn VOP_SETEXTATTR "struct vnode *vp" "int attrnamespace" "const char *name" "struct uio *uio" "struct ucred *cred" "struct thread *td"
+.Sh 解説
+この vnode 呼び出しは、ファイルまたはディレクトリに対し、
+特定の名前付き拡張属性を設定するために使用可能です。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width type
+.It Fa vp
+ファイルまたはディレクトリの vnode。
+.It Fa attrnamespace
+どの拡張属性の名前空間に、その属性の名前が存在するのかを示す整数定数。
+.It Fa name
+属性の名前が入った、ヌル文字で終端された文字列へのポインタ。
+.It Fa uio
+読み込みまたは書き込みされるデータの位置。
+.It Fa cred
+要求の認証で使用するユーザ証明。
+.It Fa td
+拡張属性を設定しているスレッド。
+.El
+.Pp
+uio 構造体は、
+.Xr VOP_WRITE 9
+での同じ名前の引数と同様に使用されます。しかしながら、
+拡張属性が厳密な "name=value" のセマンティクスを規定しているので、
+0 でないオフセットは却下されるでしょう。
+.Pp
+.Fa uio
+ポインタは、
+.Dv NULL
+であることが可能であり、
+指定された拡張属性が削除されるべきであることを指示します。
+.Pp
+.Fa cred
+ポインタは、
+.Dv NULL
+を渡すことができ、
+可能であるならばアクセス制御チェックが実行されないことを指示します。
+この
+.Fa cred
+の設定は、アクティブプロセスに許されていない拡張属性の変更を、
+カーネルが正当化することを認めるために使用可能です。
+.Pp
+拡張属性のセマンティクスは、
+呼び出しを実装しているファイルシステムに依存して異なり得ます。
+拡張属性についてのより多くの情報は
+.Xr extattr 9
+を参照してください。
+.Sh ロック
+vnode は、入る時にロックされ、戻り時にもロックされ続けているべきです。
+.Sh 戻り値
+拡張属性が成功裏に設定された場合には 0 が返されます。
+そうでない場合には適切なエラーコードが返されます。
+.Sh エラー
+.Bl -tag -width Er
+.It Bq Er EACCES
+呼び出し側が適切な特権を持っていません。
+.It Bq Er ENXIO
+指定された vnode および属性名に対する要求は、このファイルシステムでは無効です。
+.It Bq Er ENOMEM
+要求を実行するための十分なメモリがありません。
+.It Bq Er EFAULT
+uio 構造体が無効なユーザ空間アドレスを参照しています。
+.It Bq Er EINVAL
+name, namespace, または uio 引数が無効です。
+.It Bq Er EOPNOTSUPP
+ファイルシステムが
+.Fn VOP_SETEXTATTR
+をサポートしていません。
+.It Bq Er ENOSPC
+ファイルシステムに空き領域がありません。
+.It Bq Er EROFS
+ファイルシステムが読み取り専用です。
+.El
+.Sh 関連項目
+.Xr extattr 9 ,
+.Xr vnode 9 ,
+.Xr VOP_GETEXTATTR 9 ,
+.Xr VOP_LISTEXTATTR 9
+.Sh 作者
+このマニュアルページは
+.An Robert Watson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/VOP_STRATEGY.9 b/documentation/manual-pages/ja/man9/VOP_STRATEGY.9
new file mode 100644
index 0000000000..005449c6d6
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_STRATEGY.9
@@ -0,0 +1,65 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_STRATEGY.9,v 1.15 2003/05/31 14:07:25 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_STRATEGY 9
+.Sh 名称
+.Nm VOP_STRATEGY
+.Nd ファイルシステムバッファの読み書き
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_STRATEGY "struct vnode *vp" "struct buf *bp"
+.Sh 解説
+引数は以下の通りです。
+.Bl -tag -width 2n
+.It Fa vp
+バッファが対象にする vnode。
+.It Fa bp
+読み書きされるべきバッファ。
+.El
+.Pp
+この呼び出しは、
+.Fa bp->b_io.bio_cmd
+の値に依存して、ファイルの読み込みまたは書き込みを行ないます。
+.Pp
+この呼び出しはブロックされることができます。
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合にはエラーが返されます。
+.Sh 関連項目
+.\" .Xr buf 9 ,
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/accept_filter.9 b/documentation/manual-pages/ja/man9/accept_filter.9
new file mode 100644
index 0000000000..b5d4271dc6
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/accept_filter.9
@@ -0,0 +1,148 @@
+.\"
+.\" Copyright (c) 2000 Alfred Perlstein
+.\"
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/accept_filter.9,v 1.13 2004/06/16 08:33:57 ru Exp %
+.\" $FreeBSD$
+.\" "
+.Dd June 25, 2000
+.Os
+.Dt ACCEPT_FILTER 9
+.Sh 名称
+.Nm accept_filter ,
+.Nm accept_filt_add ,
+.Nm accept_filt_del ,
+.Nm accept_filt_generic_mod_event ,
+.Nm accept_filt_get
+.Nd 入力接続フィルタ
+.Sh 書式
+.In sys/types.h
+.In sys/module.h
+.In sys/socket.h
+.Fd #define ACCEPT_FILTER_MOD
+.In sys/socketvar.h
+.Ft int
+.Fn accept_filt_add "struct accept_filter *filt"
+.Ft int
+.Fn accept_filt_del "char *name"
+.Ft int
+.Fn accept_filt_generic_mod_event "module_t mod" "int event" "void *data"
+.Ft struct accept_filter *
+.Fn accept_filt_get "char *name"
+.Sh 解説
+accept フィルタは、カーネルが入力接続を前処理することを、アプリケーションが
+要求することを可能にします。
+accept フィルタは、
+.Dv SO_ACCEPTFILTER
+の
+.Fa optname
+で渡すことで、
+.Xr setsockopt 2
+システムコールを介して要求されます。
+.Sh 実装に関する注
+accept フィルタになりたいモジュールは、システムに
+.Vt "struct accept_filter"
+構造体を提供しなければなりません。
+.Bd -literal
+struct accept_filter {
+ char accf_name[16];
+ void (*accf_callback)(struct socket *so, void *arg, int waitflag);
+ void * (*accf_create)(struct socket *so, char *arg);
+ void (*accf_destroy)(struct socket *so);
+ SLIST_ENTRY(accept_filter) accf_next; /* リストの次のエントリ */
+};
+.Ed
+.Pp
+そのモジュールは、
+.Xr malloc 9
+で割当てられた
+.Vt "struct accept_filter"
+構造体へのポインタを渡す関数
+.Fn accept_filt_add
+を使用して、それを登録するべきです。
+.Pp
+.Vt "struct accept_filter"
+のフィールドは以下の通りです。
+.Bl -tag -width ".Va accf_callback"
+.It Va accf_name
+フィルタの名前です。
+これはユーザ領域からアクセスされる方法です。
+.It Va accf_callback
+接続が確立されたときにカーネルが実行するコールバックです。
+これは socket upcall と同等で、そのコールバックがソケットのフラグを
+変更しない限りは、接続が確立したとき、
+またソケットに新しいデータが届くたびに、呼出されます。
+.It Va accf_create
+監視しているソケット上に
+.Xr setsockopt 2
+がフィルタをインストールするたびに呼出されます。
+.It Va accf_destroy
+ユーザがそのソケット上の accept フィルタを取り除くたびに呼出されます。
+.El
+.Pp
+.Fn accept_filt_add
+関数を使用して登録されたときに
+.Va accept_filter.accf_name
+に使用された同じ文字列が
+.Fn accept_filt_del
+に渡されると、その後カーネルはそれ以上のユーザ領域の
+そのフィルタの使用を禁じます。
+.Pp
+.Fn accept_filt_get
+関数は
+.Xr setsockopt 2
+システムコールを介して使用されるための accept フィルタを
+見つけるために内部で使用されます。
+.Pp
+.Fn accept_filt_generic_mod_event
+関数は自分自身をロードおよびアンロードするための引数フィールドを使用
+しない accept フィルタのために、コードの重複を避ける単純な方法を提供します。
+この関数は
+.Fn DECLARE_MODULE
+マクロのために
+.Vt moduledata_t
+構造体の中で使用されることが可能です。
+.Sh 関連項目
+.Xr setsockopt 2 ,
+.Xr accf_data 9 ,
+.Xr accf_http 9 ,
+.Xr malloc 9
+.Sh 歴史
+accept フィルタ機構は
+.Fx 4.0
+で導入されました。
+.Sh 作者
+このマニュアルページは
+.An -nosplit
+.An Alfred Perlstein ,
+.An Sheldon Hearn
+および
+.An Jeroen Ruigrok van der Werven
+が書きました。
+.Pp
+accept フィルタの構想は Yahoo!\& の
+.An David Filo
+によって開拓され、
+.An Alfred Perlstein
+によってローダブルモジュールシステムに改良されました。
diff --git a/documentation/manual-pages/ja/man9/accf_data.9 b/documentation/manual-pages/ja/man9/accf_data.9
new file mode 100644
index 0000000000..2867675409
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/accf_data.9
@@ -0,0 +1,77 @@
+.\"
+.\" Copyright (c) 2000 Alfred Perlstein
+.\"
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/accf_data.9,v 1.7 2002/12/24 13:41:46 ru Exp %
+.\" $FreeBSD$
+.\" "
+.Dd November 15, 2000
+.Os
+.Dt ACCF_DATA 9
+.Sh 名称
+.Nm accf_data
+.Nd データ到着までの間の入力接続バッファ
+.Sh 書式
+.Nm options INET
+.Nm options ACCEPT_FILTER_DATA
+.Nm kldload accf_data
+.Sh 解説
+これは入力接続を受け取るために
+.Fn accept
+が使用されるソケット上に配置されるためのフィルタです。
+.Pp
+これは接続上のデータ到着までの間にアプリケーションが
+.Fn accept
+を介して接続された記述子を受け取ることを防止します。
+.Pp
+カーネルの中に INET オプションが既にコンパイルされている場合には、
+.Fa ACCEPT_FILTER_DATA
+カーネルオプションは
+.Xr kldload 8
+を介して実行時に有効化することができるモジュールもあります。
+.Sh 使用例
+ACCEPT_FILTER_DATA がカーネルコンフィグファイルに含まれているか、
+.Nm
+モジュールがロードされていると仮定して、これはソケット
+.Fa sok
+上のデータ accept フィルタを有効化します。
+.Bd -literal -offset 0i
+ struct accept_filter_arg afa;
+
+ bzero(&afa, sizeof(afa));
+ strcpy(afa.af_name, "dataready");
+ setsockopt(sok, SOL_SOCKET, SO_ACCEPTFILTER, &afa, sizeof(afa));
+.Ed
+.Sh 関連項目
+.Xr setsockopt 2 ,
+.Xr accept_filter 9 ,
+.Xr accf_http 9
+.Sh 歴史
+accept フィルタ機構および accf_data フィルタは
+.Fx 4.0
+で導入されました。
+.Sh 作者
+このマニュアルページおよびこのフィルタは
+.An Alfred Perlstein
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/accf_http.9 b/documentation/manual-pages/ja/man9/accf_http.9
new file mode 100644
index 0000000000..0256d5fbb2
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/accf_http.9
@@ -0,0 +1,94 @@
+.\"
+.\" Copyright (c) 2000 Alfred Perlstein
+.\"
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/accf_http.9,v 1.10 2002/12/24 13:41:46 ru Exp %
+.\" $FreeBSD$
+.\" "
+.Dd November 15, 2000
+.Os
+.Dt ACCF_HTTP 9
+.Sh 名称
+.Nm accf_http
+.Nd ある完全な HTTP リクエストの到着までの間の入力接続バッファ
+.Sh 書式
+.Nm options INET
+.Nm options ACCEPT_FILTER_HTTP
+.Nm kldload accf_http
+.Sh 解説
+これは HTTP 入力接続を受け取るために
+.Fn accept
+が使用されるソケット上に配置されるためのフィルタです。
+.Pp
+これは完全な HTTP/1.0 または HTTP/1.1 の HEAD または GET リクエストが
+カーネルによってバッファされるまでの間に、アプリケーションが
+.Fn accept
+を介して接続された記述子を受け取ることを防止します。
+.Pp
+HTTP/1.0 または HTTP/1.1 の HEAD または GET リクエスト以外の何かが
+受け取られた場合には、カーネルはアプリケーションが
+.Fn accept
+を介して接続記述子を受け取ることを可能にします。
+.Pp
+.Nm
+の効用は、サーバがそのリクエストの初期の文法解析を実行する前に
+コンテキストの切り替えを何回か行なう必要が無いようにすることです。
+Apache のようなサーバのフォーク前のアクティブプロセス数を低く抑え、
+.Fn select ,
+.Fn poll
+または
+.Fn kevent
+のようなインタフェースによって管理されることが必要なファイル記述子の組の
+大きさを減少させることによって、
+入力リクエストのために必要な CPU 利用を効果的に減少させます。
+.Pp
+カーネルの中に INET オプションが既にコンパイルされている場合には、
+.Nm
+カーネルオプションは
+.Xr kldload 8
+を介して実行時に有効化することができるモジュールもあります。
+.Sh 使用例
+ACCEPT_FILTER_HTTP がカーネルコンフィグファイルに含まれているか、
+.Nm
+モジュールがロードされていると仮定して、これはソケット
+.Fa sok
+上の http accept フィルタを有効化します。
+.Bd -literal -offset 0i
+ struct accept_filter_arg afa;
+
+ bzero(&afa, sizeof(afa));
+ strcpy(afa.af_name, "httpready");
+ setsockopt(sok, SOL_SOCKET, SO_ACCEPTFILTER, &afa, sizeof(afa));
+.Ed
+.Sh 関連項目
+.Xr setsockopt 2 ,
+.Xr accept_filter 9
+.Sh 歴史
+accept フィルタ機構および accf_http フィルタは
+.Fx 4.0
+で導入されました。
+.Sh 作者
+このマニュアルページおよびこのフィルタは
+.An Alfred Perlstein
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/acl.9 b/documentation/manual-pages/ja/man9/acl.9
new file mode 100644
index 0000000000..c6ee892704
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/acl.9
@@ -0,0 +1,212 @@
+.\"-
+.\" Copyright (c) 1999-2001 Robert N. M. Watson
+.\" 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/acl.9,v 1.12 2002/12/12 17:25:58 ru Exp\ %
+.\"
+.\" $FreeBSD$
+.Dd December 23, 1999
+.Os
+.Dt ACL 9
+.Sh 名称
+.Nm acl
+.Nd 仮想ファイルシステムアクセス制御リスト
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In sys/acl.h
+.Pp
+カーネルコンフィギュレーションファイルの中に、
+.Cd "options UFS_ACL"
+.Sh 解説
+アクセス制御リスト、すなわち ACL は、
+ファイルおよびディレクトリを表現する vnode に対する権限を、
+きめ細かく指定可能とします。
+しかしながら、
+異なる ACL のセマンティクスを持つファイルシステムが過多にあるため、
+vnode インタフェースは ACL の文法のみを理解し、基礎をなすファイルシステムが
+細部を実装することを当てにしています。
+基礎をなすファイルシステムに依存して、個々のファイルまたはディレクトリは、
+関連付けられる 0 個以上の ACL を持つことが可能です。
+それぞれ ACL の名前は、適切な vnode ACL 呼び出し
+.Xr VOP_ACLCHECK 9 ,
+.Xr VOP_GETACL 9
+および
+.Xr VOP_SETACL 9
+の
+.Fa type
+フィールドを使用して指定されます。
+.Pp
+現在は、個々の ACL は以下に定義されるカーネル内で固定サイズの
+.Vt acl
+構造体によって表現されます。
+.Bd -literal -offset indent
+struct acl {
+ int acl_cnt;
+ struct acl_entry acl_entry[ACL_MAX_ENTRIES];
+};
+.Ed
+.Pp
+ACL は、ACL エントリの固定サイズ配列で構成されます。
+各 ACL エントリは、
+パーミッションの組、主要な名前空間、主要な識別子から構成されます。
+.Pp
+個別の ACL エントリは、以下のメンバを持つ構造体の
+.Vt acl_entry_t
+型です。
+.Bl -tag -width 2n
+.It Vt acl_tag_t Va ae_tag
+以下は
+.Va ae_tag
+に設定されるべき ACL の型の定義のリストです。
+.Pp
+.Bl -tag -width ".Dv ACL_UNDEFINED_FIELD" -offset indent -compact
+.It Dv ACL_UNDEFINED_FIELD
+未定義の ACL 型。
+.It Dv ACL_USER_OBJ
+実効ユーザ ID がファイルの所有者のユーザ ID と
+一致するプロセスのための任意のアクセス権。
+.It Dv ACL_USER
+実効ユーザ ID が ACL エントリの権限と
+一致するプロセスのための任意のアクセス権。
+.It Dv ACL_GROUP_OBJ
+実効グループ ID または全ての追加のグループがファイルの所有者のグループ ID と
+一致するプロセスのための任意のアクセス権。
+.It Dv ACL_GROUP
+実効グループ ID または全ての追加のグループが ACL エントリの権限と
+一致するプロセスのための任意のアクセス権。
+.It Dv ACL_MASK
+ファイルグループクラスの中のプロセスが許可されることができる
+任意のアクセス権の最高限度。
+.It Dv ACL_OTHER
+その他の ACL エントリによって保護されていない
+プロセスのための任意のアクセス権。
+.It Dv ACL_OTHER_OBJ
+.Dv ACL_OTHER
+と同じです。
+各々の ACL エントリは、厳密に、1 つの
+.Dv ACL_USER_OBJ
+と 1 つの
+.Dv ACL_GROUP_OBJ
+と 1 つの
+.Dv ACL_OTHER
+を含まなければなりません。
+.Dv ACL_USER ,
+.Dv ACL_GROUP
+または
+.Dv ACL_OTHER
+が存在する場合には、厳密に 1 つの
+.Dv ACL_MASK
+エントリが存在するべきです。
+.El
+.It Vt uid_t Va ae_id
+この ACL がアクセスパーミッションを記述しているユーザのユーザ ID。
+.It Vt acl_perm_t Va ae_perm
+このフィールドは、この ACL に適合するプロセスが関連したファイルの
+アクセスのために、どの種類のアクセスかを定義します。
+.Bl -tag -width ".Dv ACL_POSIX1E_BITS"
+.It Dv ACL_EXECUTE
+プロセスは関連したファイルの実行が可能です。
+.It Dv ACL_WRITE
+プロセスは関連したファイルへの書込みが可能です。
+.It Dv ACL_READ
+プロセスは関連したファイルからの読込みが可能です。
+.It Dv ACL_PERM_NONE
+プロセスは関連したファイルへの読込み、書込みまたは実行のパーミッションを
+所有していません。
+.El
+.El
+.Pp
+.Sh 実装に関する注
+.Bd -literal
+typedef mode_t *acl_permset_t;
+
+/* 内部の ACL 構造体 */
+struct acl {
+ int acl_cnt;
+ struct acl_entry acl_entry[ACL_MAX_ENTRIES];
+};
+
+/* 外部の ACL 構造体 */
+struct acl_t_struct {
+ struct acl ats_acl;
+ int ats_cur_entry;
+};
+typedef struct acl_t_struct *acl_t;
+
+/*
+ * ae_tag フィールドに有効な値
+ */
+#define ACL_UNDEFINED_TAG 0x00000000
+#define ACL_USER_OBJ 0x00000001
+#define ACL_USER 0x00000002
+#define ACL_GROUP_OBJ 0x00000004
+#define ACL_GROUP 0x00000008
+#define ACL_MASK 0x00000010
+#define ACL_OTHER 0x00000020
+#define ACL_OTHER_OBJ ACL_OTHER
+
+/*
+ * acl_type_t 引数のために有効な値
+ */
+#define ACL_TYPE_ACCESS 0x00000000
+#define ACL_TYPE_DEFAULT 0x00000001
+#define ACL_TYPE_AFS 0x00000002
+#define ACL_TYPE_CODA 0x00000003
+#define ACL_TYPE_NTFS 0x00000004
+#define ACL_TYPE_NWFS 0x00000005
+
+/*
+ * ae_perm フィールドに可能なフラグ
+ */
+#define ACL_EXECUTE 0x0001
+#define ACL_WRITE 0x0002
+#define ACL_READ 0x0004
+#define ACL_PERM_NONE 0x0000
+#define ACL_PERM_BITS (ACL_EXECUTE | ACL_WRITE | ACL_READ)
+#define ACL_POSIX1E_BITS (ACL_EXECUTE | ACL_WRITE | ACL_READ)
+
+/*
+ * acl_get_entry() のための entry_id に可能な値
+ */
+#define ACL_FIRST_ENTRY 0
+#define ACL_NEXT_ENTRY 1
+
+/*
+ * ae_id フィールドの中の未定義の値
+ */
+#define ACL_UNDEFINED_ID ((uid_t)-1)
+.Ed
+.Sh 関連項目
+.Xr acl 3 ,
+.Xr vaccess_acl_posix1e 9 ,
+.Xr VFS 9 ,
+.Xr vaccess 9 ,
+.Xr VOP_ACLCHECK 9 ,
+.Xr VOP_GETACL 9 ,
+.Xr VOP_SETACL 9
+.Sh 作者
+このマニュアルページは
+.An Robert Watson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/bios.9 b/documentation/manual-pages/ja/man9/bios.9
new file mode 100644
index 0000000000..5f4fa80972
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/bios.9
@@ -0,0 +1,127 @@
+.\" %FreeBSD: src/share/man/man9/bios.9,v 1.13 2003/10/23 01:14:18 hmp Exp %
+.\"
+.\" Copyright (c) 1997 Michael Smith
+.\" 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$
+.Dd August 1, 1997
+.Dt BIOS 9
+.Os
+.Sh 名称
+.Nm bios_sigsearch ,
+.Nm bios32_SDlookup ,
+.Nm bios32
+.Nd PC BIOS との相互作用
+.Sh 書式
+.In sys/param.h
+.In vm/vm.h
+.In vm/pmap.h
+.In machine/param.h
+.In machine/pmap.h
+.In machine/pc/bios.h
+.Ft u_int32_t
+.Fn bios_sigsearch "u_int32_t start" "u_char *sig" "int siglen" "int paralen" "int sigofs"
+.Ft int
+.Fn bios32_SDlookup "struct bios32_SDentry *ent"
+.Ft int
+.Fn bios32 "struct bios_regs *br" "u_int offset" "u_short segment"
+.Fn BIOS_PADDRTOVADDR "addr"
+.Fn BIOS_VADDRTOPADDR "addr"
+.Vt extern struct bios32_SDentry PCIbios ;
+.Vt extern struct SMBIOS_table SMBIOStable ;
+.Vt extern struct DMI_table DMItable ;
+.Sh 解説
+これらの関数は、BIOS 関数と x86 PC アーキテクチャシステムで出会うデータを
+取り扱うための、汎用インタフェースを提供します。
+.Bl -tag -width 20n
+.It Fn bios_sigsearch
+サービスシグネチャの BIOS アドレス空間を検索します。
+サービスシグネチャは、
+大抵はアンダスコアで囲まれている大文字の ASCII 文字列です。
+検索は、
+.Fa start
+から、または
+.Fa start
+が 0 の場合には BIOS の最初から始まります。
+.Fa siglen
+バイトの BIOS イメージと
+.Fa sig
+とが、現在位置から
+.Fa sigofs
+バイトのオフセットにおいて比較されます。
+マッチしないことが分かると、現在位置が
+.Fa paralen
+バイト増加されて検索が繰り返されます。
+シグネチャが見つかった場合には、その実効物理アドレスが返されます。
+シグネチャが見つからなかった場合には、0 が返されます。
+.It Fn BIOS_VADDRTOPADDR
+カーネル仮想アドレス
+.Fa addr
+に対応する実効物理アドレスを返します。
+.It Fn BIOS_VADDRTOPADDR
+実効物理アドレス
+.Fa addr
+に対応するカーネル仮想アドレスを返します。
+.It SMBIOStable
+NULL でない場合は、システム起動時に
+システムマネージメント BIOS (System Management BIOS; SMBIOS) テーブル
+から読み込まれた情報を含んでいる
+.Ft struct SMBIOS_table
+構造体を指します。
+.It DMItable
+NULL でない場合は、システム起動時に
+デスクトップマネージメントインタフェース
+(Desktop Management Interface; DMI) パラメータテーブル
+から読み込まれた情報を含んでいる
+.Ft struct DMI_table
+構造体を指します。
+.El
+.Sh BIOS32
+システム起動時に、BIOS32 サービスディレクトリ (PCI 仕様の一部) の
+ために BIOS がスキャンされ、ディレクトリの存在が記録されます。
+これは後で、他のサービスの場所を特定するために使用できます。
+.Bl -tag -width 20n
+.It Fn bios32_SDlookup
+引数
+.Fa ent
+の
+.Fa ident
+フィールドで渡される 4 バイトの識別子にマッチする BIOS32 サービス
+の場所を特定しようと試みます。
+.It Fn bios32
+bios32 関数を呼び出します。
+これは関数が、カーネルセグメント内で動作できることを
+仮定しています (通常の場合)。
+エントリポイントの仮想アドレスは
+.Fa entry
+で与えられ、
+関数へのレジスタ引数は
+.Fa args
+で与えられます。
+.It PCIbios
+NULL でない場合は、システム起動時に見つかった
+PCI BIOS エントリポイントを記述する
+.Ft struct bios32_SDentry
+構造体を指します。
+.El
diff --git a/documentation/manual-pages/ja/man9/boot.9 b/documentation/manual-pages/ja/man9/boot.9
new file mode 100644
index 0000000000..58854350dc
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/boot.9
@@ -0,0 +1,104 @@
+.\" %NetBSD: boot.9,v 1.2 1996/09/24 07:01:26 ghudson Exp %
+.\"
+.\" Copyright (c) 1997
+.\" Mike Pritchard. All rights reserved.
+.\"
+.\" Copyright (c) 1994 Christopher G. Demetriou
+.\" 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.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by Christopher G. Demetriou
+.\" for the NetBSD Project.
+.\" 3. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/boot.9,v 1.10 2004/07/03 18:29:23 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd February 14, 1997
+.Dt BOOT 9
+.Os
+.Sh 名称
+.Nm boot
+.Nd システムの停止または再起動
+.Sh 書式
+.In sys/types.h
+.In sys/systm.h
+.In sys/reboot.h
+.Ft void
+.Fn boot "int howto"
+.Sh 解説
+.Fn boot
+関数は、システムの最終的なシステムシャットダウンと、
+停止または再起動を取り扱います。
+行なわれる正確な動作は、
+.Fa howto
+で渡されるフラグと、
+システムが自動コンフィギュレーションを既に終えているかどうか、
+によって決定されます。
+.Pp
+システムが自動コンフィギュレーションを既に終えている場合には、
+.Fn boot
+は次の動作をします。
+.Bl -enum -offset indent
+.It
+これが最初の
+.Fn boot
+の実施の場合で、
+.Fa howto
+に
+.Dv RB_NOSYNC
+フラグがセットされていなければ、
+.Xr vfs_unmountall 9
+を呼び出すことにより、ディスクの同期とアンマウントを行ないます。
+.It
+割り込みを無効にします。
+.It
+クラッシュの後の再起動の場合 (すなわち
+.Fa howto
+に
+.Dv RB_DUMP
+がセットされているが
+.Dv RB_HALT
+がセットされていない) は、
+システムクラッシュダンプを保存します。
+.It
+以前に登録されたあらゆるシャットダウンフックを実行します。
+.It
+システムが停止させられているのか、
+再起動させられているのかを示すメッセージを表示します。
+.It
+.Fa howto
+に
+.Dv RB_HALT
+がセットされている場合には、システムを停止します。
+そうでなければ、システムを再起動します。
+.El
+.Pp
+システムが自動コンフィギュレーションをまだ終えていない場合には、
+.Fn boot
+は
+以前に登録されたあらゆるシャットダウンフックを実行し、
+メッセージを表示し、システムを停止します。
+.Sh 関連項目
+.Xr vfs_unmountall 9
diff --git a/documentation/manual-pages/ja/man9/buf.9 b/documentation/manual-pages/ja/man9/buf.9
new file mode 100644
index 0000000000..a3d80e400c
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/buf.9
@@ -0,0 +1,148 @@
+.\" Copyright (c) 1998
+.\" The Regents of the University of California. 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.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the University of
+.\" California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/buf.9,v 1.16 2004/07/03 18:29:23 ru Exp %
+.\" $FreeBSD$
+.\"
+.Dd December 22, 1998
+.Dt BUF 9
+.Os
+.Sh 名称
+.Nm buf
+.Nd "FreeBSD の VM システムで使用されたカーネルバッファ入出力機構"
+.Sh 解説
+カーネルは、(主にファイルシステムの) デバイスおよびデバイス入出力によって
+使用されるための、まったくバラバラかもしれない仮想メモリページを
+連続した KVM にマップすることを可能にする、
+バッファキャッシュの KVM の抽象概念を実装します。
+この抽象概念は、DEV_BSIZE (通常 512) から数ページ以上のまでのブロックサイズを
+サポートします。
+また、NFS によって使用されるための現在はハードコーディングされている、
+相対的に基本的なバイト粒度の正当な範囲およびダーティな範囲も、サポートします。
+VM バッファの抽象概念を実装しているコードは、大部分は
+.Pa /usr/src/sys/kern/vfs_bio.c
+に集約されています。
+.Pp
+バッファポインタ (struct buf) を取り扱うときに憶えておくべき最も重要な
+ことの 1 つは、下層のページがバッファキャッシュから直接的にマップされる
+ということです。
+もっとも UFS のような幾つかのファイルシステムがファイルのフラグメントを
+取り扱うときには少しコピーをしなければならないのですが、厳密な意味での
+この機構では、データのコピーは発生しません。
+憶えておくべき最も重要なことの 2 番目は、下層のページマッピングの
+ため、buf の中の b_data ベースポインタは常に *ブロック* で整列されるのでは
+なく、*ページ* で整列されるということです。
+ある b_offset および b_size を表現する VM バッファを持つもきには、
+そのバッファの実際の開始は (b_data + (b_offset & PAGE_MASK)) で、
+ちょうど b_data ではありません。
+最後に、VM システムの中核のバッファキャッシュは、DEV_BSIZE の塊の中の
+ページのための、正当およびダーティビット (m->valid, m->dirty) を
+サポートします。
+従って、4096 バイトのページサイズのハードウェアを持つ
+プラットホームは、8 個の正当ビットおよび 8 個のダーティビットを持ちます。
+これらのビットは一般的に、ページを裏打ちするそのデバイスの
+デバイスブロックサイズに基づいたグループ単位で、セットおよびクリアされます。
+完全なページの価値は、しばしば VM_PAGE_BITS_ALL ビットマスク (すなわち、
+ハードウェアのページサイズが 4096 であれば 0xFF) を使用することに当たります。
+.Pp
+VM バッファはバイト粒度のダーティな範囲および正当な範囲の追跡も維持します。
+この機能は通常 NFS サブシステムによってのみ使用されます。
+VM バッファの内部に DEV_BSIZE の正当/ダーティの粒度を持っているので、本当に、
+一体どうして使用されているのか自信を持って言えません。
+バッファをダーティにする操作が '穴' を生成する場合には、ダーティな範囲が
+その穴を覆うように広がります。
+バッファを正当化する操作が '穴' を生成する場合には、バイト粒度の正当な範囲が
+そのまま残され、新しい拡張の評価は行なわれません。
+従って、バイト粒度の抽象概念全体は悪いハックだと考えられます。
+それを徹底的に除去できるのであれば、快適なことでしょう。
+.Pp
+VM バッファは、カーネルが直接的に (vnode,b_offset,b_size) に関連付けられた
+データを操作することを可能にするために、
+下層の VM キャッシュページを KVM にマップすることが可能です。
+カーネルは一般的には、バッファがもはや必要でなくなった時に、VM バッファを
+アンマップしますが、すでに KVM からアンマップされているにもかかわらず、
+しばしば実体化された 'struct buf' 構造体を、および
+実体化された bp->b_pages の配列をも保持します。
+VM バッファに仕立てられたページが今にも入出力を受けようとしている場合には、
+システムは一般的には、それを KVM からアンマップし、b_pages[] 配列の中の
+ページを bogus_page (偽のページ) と呼ばれる位置目印に置き換えます。
+その場所の目印は、関連付けられたページを再捜索するために、全てのカーネルの
+サブシステムが関連付けられた struct buf を参照することを、強制します。
+位置目印のハックは、ファイルシステムデバイスのようなきわめて複雑な
+デバイスが、例えば、ファイルのフラグメントをファイルブロックに再マップ
+するために、下層のページを再マップすることを、
+可能にするために使用されると確信しています。
+.Pp
+VM バッファはカーネル内部の入出力操作を追跡するために使用されます。
+運の悪いことに、入出力の実装もハックの対象です。
+なぜならば、カーネルは
+物理的な入出力が実際に始まったときではなく、VFS デバイスに入出力をキューに
+入れたときに、下層のページ上のダーティビットをクリアしたいからです。
+これは、遅延書き込みを使用するファイルシステムデバイスの内部に混乱を
+生み出すことがありえます。
+なぜならば、実際には未だダーティであるがページを
+正当であると目印をつけて終了するからです。
+注意深く取り扱わない場合には、これらのページは破棄されてしまうことが
+ありえます。
+それどころか、このハックに関連したかなりの深刻なバグが、2.2.8/3.0 リリースまで
+修正されませんでした。
+カーネルはこの特殊状態にあるページに位置目印をつけるため、
+実体化された VM バッファ (すなわち struct buf) を使用します。
+バッファは通常 B_DELWRI フラグが付けられます。
+もはやバッファが必要でなくなったときに、通常 B_RELBUF としてフラグを付けます。
+下層のページが正当であると目印を付けられている結果、B_DELWRI|B_RELBUF の
+組み合わせは、そのバッファは実際には未だダーティであり、それが実際に解放される
+ことがありうる前に、後援の記憶装置に書込まれなければならないということを
+意味すると、解釈されなければなりません。
+この場合で、B_DELWRI が設定されない場合、下層のダーティなページは未だ適切に
+ダーティであると目印を付けられ、そのバッファは正当/ダーティの状態情報を
+失うことなく、完全に解放されることが可能です。
+(XXX この状況に配慮して、その他のフラグをチェックしなければならない
+のでしょうか ???)
+.Pp
+カーネルは VM バッファのデータマップを保持するために、その KVM 空間の
+一部を予約します。
+これは仮想空間 (バッファはバッファキャッシュからマップされるため) である
+にもかかわらず、それを任意に大きく出来ません。
+なぜならば、
+実体化された VM バッファ (struct buf) がバッファキャッシュの中の
+下層のページが解放されることを妨げるからです。
+これはページングシステムの生存を脅かし得ることです。
+.Pp
+.\" .Sh 関連項目
+.\" .Xr <fillmein> 9
+.Sh 歴史
+.Nm
+のマニュアルページは元々
+.An Matthew Dillon
+が書いて、1998 年 12 月に
+.Fx 3.1
+ではじめて登場しました。
diff --git a/documentation/manual-pages/ja/man9/bus_activate_resource.9 b/documentation/manual-pages/ja/man9/bus_activate_resource.9
new file mode 100644
index 0000000000..68669c9892
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/bus_activate_resource.9
@@ -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
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/bus_alloc_resource.9 b/documentation/manual-pages/ja/man9/bus_alloc_resource.9
new file mode 100644
index 0000000000..3613b97179
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/bus_alloc_resource.9
@@ -0,0 +1,182 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2000 Alexander Langer
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/bus_alloc_resource.9,v 1.19.2.1 2005/03/14 07:19:03 jmg Exp %
+.\"
+.\" $FreeBSD$
+.Dd May 18, 2000
+.Dt BUS_ALLOC_RESOURCE 9
+.Os
+.Sh 名称
+.Nm bus_alloc_resource ,
+.Nm bus_alloc_resource_any
+.Nd 親のバスからの資源の割り当て
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Pp
+.In machine/bus.h
+.In sys/rman.h
+.In machine/resource.h
+.Ft struct resource *
+.Fn bus_alloc_resource "device_t dev" "int type" "int *rid" "u_long start" "u_long end" "u_long count" "u_int flags"
+.Ft struct resource *
+.Fn bus_alloc_resource_any "device_t dev" "int type" "int *rid" "u_int flags"
+.Sh 解説
+これは資源管理関数群への簡単なインタフェースです。
+親のメソッドテーブルを通る間接的な方法を隠蔽します。
+この関数は、一般的にアタッチ時に呼び出されるべきですが、
+(幾つかの稀な場合を除いて) 決してその前に呼び出してはなりません。
+.Pp
+.Fn bus_alloc_resource_any
+関数は
+.Fn bus_alloc_resource
+のための簡単なラッパです。
+これは
+.Fa start ,
+.Fa end
+および
+.Fa count
+の値としてデフォルトのリソース (下記の
+.Fa start
+の解説を参照してください) を設定します。
+.Pp
+引数は以下の通りです。
+.Bl -item
+.It
+.Fa dev
+は、資源の所有を要求するデバイスです。
+割り当て前は、資源は親のバスによって所有されています。
+.It
+.Fa type
+は、割り当てたい資源の型です。
+以下の内の 1 つです。
+.Bl -tag -width SYS_RES_MEMORY
+.It Dv SYS_RES_IRQ
+IRQ 用。
+.It Dv SYS_RES_DRQ
+ISA DMA ライン用。
+.It Dv SYS_RES_IOPORT
+入出力ポート用。
+.It Dv SYS_RES_MEMORY
+入出力メモリ用。
+.El
+.It
+.Fa rid
+は、割り当てている資源を識別する、バス固有のハンドルを指します。
+ISA では、PnP の仕組みまたは hints の仕組みを通して、デバイスのために
+セットアップされている資源の配列へのインデックスです。
+PCCARD では、この文章を書いている現時点では同様ですが、
+将来の newcard では変わるかもしれません。
+PCI では、pci コンフィグ空間において、
+資源を記述するワードへのオフセットになっています。
+バスのメソッドは、引数として与えられている RID を無制限に変更します。
+以前に与えた時の値に依存してはなりません。
+.It
+.Fa start
+および
+.Fa end
+は資源の開始/終了アドレスです。
+.Fa start
+に 0ul を、
+.Fa end
+に ~0ul を、
+.Fa count
+に 1 を指定した場合には、バスのためのデフォルト値が計算されます。
+.It
+.Fa count
+は資源の大きさです。
+例えば、入出力ポートの大きさは通常 1 バイトです (しかし、
+幾つかのデバイスはこれを上書きします)。
+.Fa start
+および
+.Fa end
+にデフォルト値を指定した場合、
+.Fa count
+がデフォルト値よりも小さいならばデフォルト値が使用され、
+.Fa count
+がデフォルト値以上ならば count が使用されます。
+.It
+.Fa flags
+は資源のためのフラグを設定します。
+以下のフラグを 1 つ以上設定できます。
+.Bl -tag -width RF_SHAREABLE
+.It Dv RF_ALLOCATED
+資源は既に予約されています。
+資源は引続き
+.Xr bus_activate_resource 9
+で活性化される必要があります。
+.It Dv RF_ACTIVE
+不可分に、資源を活性化します。
+.It Dv RF_SHAREABLE
+資源は同時共有を許可します。
+その資源が共有不可であることを知らない場合、常に設定されるべきです。
+そのバスが共有をサポートしていない場合、
+このフラグを取り除くのはバスドライバの仕事です。
+例えば、
+.Xr pccard 4
+は IRQ を共有できませんが、一方
+.Xr cardbus 4
+は共有できます。
+.It Dv RF_TIMESHARE
+資源は時分割共有を許可します。
+.El
+.El
+.Sh 戻り値
+成功時には
+.Va struct resource
+構造体へのポインタが返され、そうでない場合にはヌルポインタが返されます。
+.Sh 使用例
+これは 32 バイトの I/O ポート範囲と IRQ を割り当てるサンプルのコードです。
+.Va portid
+および
+.Va irqid
+の値はこれらの呼び出しの後で、デバイスの softc の中に保存されるはずです。
+.Bd -literal
+ struct resource *portres, irqres;
+ int portid, irqid;
+
+ portid = 0;
+ irqid = 0;
+ portres = bus_alloc_resource(dev, SYS_RES_IOPORT, &portid,
+ 0ul, ~0ul, 32, RF_ACTIVE);
+ irqres = bus_alloc_resource_any(dev, SYS_RES_IRQ, &irqid,
+ RF_ACTIVE | RF_SHAREABLE);
+.Ed
+.Sh 関連項目
+.Xr bus_activate_resource 9 ,
+.Xr bus_release_resource 9 ,
+.Xr device 9 ,
+.Xr driver 9
+.Sh 作者
+.An -nosplit
+このマニュアルページは
+.An Alexander Langer Aq alex@big.endian.de
+によって書かれ、部分的に
+.An Warner Losh Aq imp@FreeBSD.org
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/bus_child_present.9 b/documentation/manual-pages/ja/man9/bus_child_present.9
new file mode 100644
index 0000000000..e0c625efcb
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/bus_child_present.9
@@ -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.3 2004/06/21 14:11:45 mpp 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
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/bus_generic_attach.9 b/documentation/manual-pages/ja/man9/bus_generic_attach.9
new file mode 100644
index 0000000000..eb36403bca
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/bus_generic_attach.9
@@ -0,0 +1,60 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/bus_generic_attach.9,v 1.7 2003/10/23 01:54:06 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt BUS_GENERIC_ATTACH 9
+.Os
+.Sh 名称
+.Nm bus_generic_attach
+.Nd バスのための
+.Dv DEVICE_ATTACH
+の一般的な実装
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn bus_generic_attach "device_t dev"
+.Sh 解説
+この関数はほとんどのバスのコードで使用されることができる
+.Xr DEVICE_ATTACH 9
+メソッドの 1 つの実装を提供します。
+単純に、バスに接続されているそれぞれの子デバイスに対して
+.Xr device_probe_and_attach 9
+を呼びます。
+.Sh 戻り値
+成功時は 0 を、そうでない場合は適切なエラーが返されます。
+.Sh 関連項目
+.Xr device 9 ,
+.Xr driver 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/bus_generic_detach.9 b/documentation/manual-pages/ja/man9/bus_generic_detach.9
new file mode 100644
index 0000000000..7c554a16aa
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/bus_generic_detach.9
@@ -0,0 +1,60 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/bus_generic_detach.9,v 1.7 2003/10/23 01:54:06 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt BUS_GENERIC_DETACH 9
+.Os
+.Sh 名称
+.Nm bus_generic_detach
+.Nd バスのための
+.Dv DEVICE_DETACH
+の一般的な実装
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn bus_generic_detach "device_t dev"
+.Sh 解説
+この関数はほとんどのバスのコードで使用されることが可能な
+.Xr DEVICE_DETACH 9
+メソッドの 1 つの実装を提供します。
+これは単純にバスにアタッチされている各々の子デバイスの
+.Xr DEVICE_DETACH 9
+を呼びます。
+.Sh 戻り値
+成功時は 0 を、そうでない場合は適切なエラーが返されます。
+.Sh 関連項目
+.Xr device 9 ,
+.Xr driver 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/bus_generic_print_child.9 b/documentation/manual-pages/ja/man9/bus_generic_print_child.9
new file mode 100644
index 0000000000..1c4442eb70
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/bus_generic_print_child.9
@@ -0,0 +1,70 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/bus_generic_print_child.9,v 1.9 2001/10/01 16:09:24 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt BUS_GENERIC_PRINT_CHILD 9
+.Os
+.Sh 名称
+.Nm bus_generic_print_child
+.Nd バスのための
+.Dv DEVICE_PRINT_CHILD
+の一般的な実装
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn bus_generic_print_child "device_t dev" "device_t child"
+.Sh 解説
+この実装はデフォルトのデバイスアナウンスメッセージを出力します。
+与えられた 'bar0' バス上の 'foo0' デバイスが、"FooCard 1234"
+という名前であるならば、
+下記のように出力されるでしょう。
+.Pp
+foo0: <FooCard 1234> on bar0
+.Pp
+bus_generic_print_child 自身は
+.Fn bus_print_child_header
+と
+.Fn bus_print_child_footer
+の 2 つの関数を呼び出します。
+これらはそれぞれ "foo0: <FooCard 1234>" と "on bar0" の文字を出力します。
+もし
+.Fn bus_generic_print_child
+があなたの要求に完全には合わない場合でも、
+可能であればあなたの独自のコードでこれらのルーチンを使用するべきです
+.Sh 関連項目
+.Xr device 9
+.Sh 戻り値
+出力した文字数。
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/bus_generic_read_ivar.9 b/documentation/manual-pages/ja/man9/bus_generic_read_ivar.9
new file mode 100644
index 0000000000..0db1e4be73
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/bus_generic_read_ivar.9
@@ -0,0 +1,60 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/bus_generic_read_ivar.9,v 1.8 2001/10/01 16:09:24 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt BUS_GENERIC_READ_IVAR 9
+.Os
+.Sh 名称
+.Nm bus_generic_read_ivar ,
+.Nm bus_generic_write_ivar
+.Nd バスのための
+.Dv BUS_READ_IVAR
+および
+.Dv BUS_WRITE_IVAR
+の一般的な実装
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn bus_generic_read_ivar "device_t dev" "device_t child" "int index" "uintptr_t *result"
+.Ft int
+.Fn bus_generic_write_ivar "device_t dev" "device_t child" "int index" "uintptr_t value"
+.Sh 解説
+これらの関数は単純に
+.Er ENOENT
+を返します。
+.Sh 関連項目
+.Xr device 9 ,
+.Xr driver 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/bus_generic_shutdown.9 b/documentation/manual-pages/ja/man9/bus_generic_shutdown.9
new file mode 100644
index 0000000000..b34f1677ad
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/bus_generic_shutdown.9
@@ -0,0 +1,61 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/bus_generic_shutdown.9,v 1.7 2003/10/23 01:54:06 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt BUS_GENERIC_SHUTDOWN 9
+.Os
+.Sh 名称
+.Nm bus_generic_shutdown
+.Nd バスのための
+.Dv DEVICE_SHUTDOWN
+の一般的な実装
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn bus_generic_shutdown "device_t dev"
+.Sh 解説
+この関数は、ほとんどのバスのコードで使用されることができる
+.Xr DEVICE_SHUTDOWN 9
+の実装を提供します。
+これは単純に、
+バスにアタッチされているの子デバイスそれぞれの
+.Xr DEVICE_SHUTDOWN 9
+メソッドを呼び出します。
+.Sh 戻り値
+成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。
+.Sh 関連項目
+.Xr device 9 ,
+.Xr driver 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/bus_release_resource.9 b/documentation/manual-pages/ja/man9/bus_release_resource.9
new file mode 100644
index 0000000000..effe73a9ec
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/bus_release_resource.9
@@ -0,0 +1,109 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2000 Alexander Langer
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/bus_release_resource.9,v 1.9 2004/07/03 18:29:23 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd May 18, 2000
+.Dt BUS_RELEASE_RESOURCE 9
+.Os
+.Sh 名称
+.Nm bus_release_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
+.Fn bus_release_resource "device_t dev" "int type" "int rid" "struct resource *r"
+.Sh 解説
+.Xr bus_alloc_resource 9
+によって割り当てられた資源を解放します。
+その資源は解放時に使用中であってはなりません。
+すなわち、適切な関数 (IRQ のための
+.Xr bus_teardown_intr 9
+など) を事前に呼び出してください。
+.Bl -item
+.It
+.Fa dev
+は、資源を所有しているデバイスです。
+.It
+.Fa type
+は、解放される資源の型です。
+以前に割り当てた時と同一の型でなければなりません。
+有効な型については
+.Xr bus_alloc_resource 9
+を参照してください。
+.It
+.Fa rid
+は、資源の資源識別子です。
+.Fa rid
+は
+.Xr bus_alloc_resource 9
+によって返された識別子と同一でなければなりません。
+.It
+.Fa r
+は
+.Va struct resource
+構造体へのポインタで、すなわち
+.Xr bus_alloc_resource 9
+によって返された資源そのものです。
+.El
+.Sh 戻り値
+デバイス
+.Fa dev
+が親を持たない場合には
+.Er EINVAL
+が返され、そうでない場合には
+.Dv 0
+が返されます。
+資源を解放できない場合には、カーネルはパニックするでしょう。
+.Sh 使用例
+.Bd -literal
+ /* IRQ の不活性化 */
+ bus_teardown_intr(dev, foosoftc->irqres, foosoftc->irqid);
+
+ /* IRQ 資源の解放 */
+ bus_release_resource(dev, SYS_RES_IRQ, foosoftc->irqid,
+ foosoftc->irqres);
+
+ /* 入出力ポートの資源の解放 */
+ bus_release_resource(dev, SYS_RES_IOPORT, foosoftc->portid,
+ foosoftc->portres);
+.Ed
+.Sh 関連項目
+.Xr bus_alloc_resource 9 ,
+.Xr device 9 ,
+.Xr driver 9
+.Sh 作者
+このマニュアルページは
+.An Alexander Langer Aq alex@big.endian.de
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/bus_set_resource.9 b/documentation/manual-pages/ja/man9/bus_set_resource.9
new file mode 100644
index 0000000000..1d6bc1c87c
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/bus_set_resource.9
@@ -0,0 +1,96 @@
+.\" -*- 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.4 2004/02/22 00:29:04 njl 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
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/byteorder.9 b/documentation/manual-pages/ja/man9/byteorder.9
new file mode 100644
index 0000000000..00ca47d476
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/byteorder.9
@@ -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
+ではじめて登場しました。
diff --git a/documentation/manual-pages/ja/man9/cd.9 b/documentation/manual-pages/ja/man9/cd.9
new file mode 100644
index 0000000000..65b51fd86c
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/cd.9
@@ -0,0 +1,127 @@
+.\" Copyright (c) 1997
+.\" John-Mark Gurney. 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.
+.\" 3. Neither the name of the author nor the names of any co-contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY John-Mark Gurney 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/cd.9,v 1.22 2004/06/16 08:33:57 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd September 2, 2003
+.Dt CD 9
+.Os
+.Sh 名称
+.Nm cd
+.Nd CAM SCSI サブシステムのための CD-ROM ドライバ
+.Sh 解説
+.Nm
+デバイスドライバは CD-ROM ドライブ
+.Tn ( SCSI
+type 5)
+および CD-ROM タイプのコマンドをサポートしている WORM ドライブ
+.Tn ( SCSI
+type 4)
+のための読み込み専用インタフェースを提供します。
+幾つかのドライブは、ドライバが期待したようには振舞いません。
+使用可能なフラグの情報は、
+.Sx 癖
+の章を参照してください。
+.Sh 癖
+それぞれの
+.Tn CD-ROM
+デバイスは、
+.Tn SCSI
+仕様を異なったように解釈し得ます。
+これにより、ドライバ中でドライブを特別扱いする必要性が発生します。
+下記はドライバが認識する癖のリストです。
+.Bl -tag -width CD_Q_BCD_TRACKS
+.It Dv CD_Q_NO_TOUCH
+このフラグは、
+ディスクがドライブの中にあるかとサイズを調査するために、
+アタッチ時にプローブしないようドライバに通知します。
+現在このフラグは、CAM の
+.Nm
+ドライバでは実装されていません。
+.It Dv CD_Q_BCD_TRACKS
+このフラグは、正しい 10 進数ではなくパックされた BCD でトラック番号を返す、
+壊れたドライブ用です。
+ドライブがトラックを飛ばしている
+(トラック 10-15 が飛ばされる)
+ような場合には、
+あなたはこのフラグが必要なドライブを所有しています。
+.It Dv CD_Q_NO_CHANGER
+このフラグは、当該ドライブがチェンジャではないことを、ドライバに通知します。
+これはチェンジャの一部ではないが複数の LUN を持つ CD-ROM デバイス
+にだけ必要です。
+.It Dv CD_Q_CHANGER
+このフラグは、与えられたデバイスが複数の LUN を持つチェンジャであることを、
+ドライバに通知します。
+一般的には、LUN が 0 よりも大きい時には、ドライバはこれを自動的に理解します。
+このフラグを設定する唯一の効果は、チェンジャのスケジューリングコードを通して、
+チェンジャの LUN 0 に対して初期の容量読み取りコマンドを実行することを、
+ドライバに通知することです。
+.It Dv CD_Q_10_BYTE_ONLY
+このフラグは、与えられたデバイスが 10 バイトの MODE SENSE/MODE SELECT コマンド
+のみを受け付けることを、ドライバに通知します。
+一般的にこういった癖は
+.Xr cd 4
+ドライバに追加されるべきではありません。
+その理由は、ドライバは問題のドライブが 10 バイトコマンドを必要としているか
+どうかを幾つかの方法で決定しようとするためです。
+最初にドライバは、ドライブが一般的に話すプロトコルが 10 バイトコマンドを
+認めるかどうかを決定するために CAM Path Inquiry (CAM パス照会) コマンドを
+発行します。
+(ATAPI および USB は一般的に 10 バイトコマンドのみを送りたい
+プロトコルの 2 つの顕著な例です。)
+それから、6 バイトの MODE SENSE または MODE REQUEST コマンド
+から ILLEGAL REQUEST エラーが返された場合には、代わりに
+そのコマンドの 10 バイトバージョンを送ろうとします。
+癖が必要になるだろう唯一の理由は、ドライブが一般的に 6 バイトコマンドに問題を
+持っていないプロトコル (例えば
+.Tn SCSI )
+の場合です。
+.El
+.Sh 関連ファイル
+.Bl -tag -width /sys/cam/scsi/scsi_cd.c -compact
+.It Pa /sys/cam/scsi/scsi_cd.c
+ドライバのソースファイルです。
+.El
+.Sh 関連項目
+.Xr cd 4 ,
+.Xr scsi 4
+.Sh 歴史
+.Nm
+のマニュアルページは
+.Fx 2.2
+で初めて登場しました。
+.Sh 作者
+.An -nosplit
+このマニュアルページは
+.An John-Mark Gurney Aq gurney_j@efn.org
+が書きました。
+CAM と
+.Fx 3.0
+のために
+.An Kenneth Merry Aq ken@FreeBSD.org
+が更新しました。
diff --git a/documentation/manual-pages/ja/man9/condvar.9 b/documentation/manual-pages/ja/man9/condvar.9
new file mode 100644
index 0000000000..1949cbf4c1
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/condvar.9
@@ -0,0 +1,208 @@
+.\"
+.\" 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.10 2004/06/21 14:11:45 mpp 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_broadcastpri ,
+.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_broadcastpri "struct cv *cvp" "int pri"
+.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_broadcastpri
+の呼び出しによってウェイトのブロック解除を行います。
+ウェイタを起こすのに加えて、
+.Fn cv_broadcastpri
+は、高い優先度を持っていない全てのスレッドの優先度を上げることによって、
+全てのウェイタが最低でも
+.Fa pri
+の優先度を持つことを保証します。
+.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
+または
+.Fn cv_broadcastpri
+を呼び出している間は、たとえ引数として渡していないとしても、
+.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_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
diff --git a/documentation/manual-pages/ja/man9/copy.9 b/documentation/manual-pages/ja/man9/copy.9
new file mode 100644
index 0000000000..dc434ef59c
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/copy.9
@@ -0,0 +1,151 @@
+.\" %NetBSD: copy.9,v 1.2 1996/01/09 03:23:04 thorpej Exp %
+.\"
+.\" Copyright (c) 1996 Jason R. Thorpe.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed by Kenneth Stailey.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed for the NetBSD Project
+.\" by Jason R. Thorpe.
+.\" 4. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/copy.9,v 1.15 2004/06/16 08:33:57 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 7, 1996
+.Dt COPY 9
+.Os
+.Sh 名称
+.Nm copy ,
+.Nm copyin ,
+.Nm copyout ,
+.Nm copystr ,
+.Nm copyinstr
+.\" .Nm copyinstr ,
+.\" .Nm copyoutstr
+.Nd カーネルコピー関数
+.Sh 書式
+.In sys/types.h
+.In sys/systm.h
+.Ft int
+.Fn copyin "const void *uaddr" "void *kaddr" "size_t len"
+.Ft int
+.Fn copyout "const void *kaddr" "void *uaddr" "size_t len"
+.Ft int
+.Fn copystr "const void *kfaddr" "void *kdaddr" "size_t len" "size_t *done"
+.Ft int
+.Fn copyinstr "const void *uaddr" "void *kaddr" "size_t len" "size_t *done"
+.\" .Ft int
+.\" .Fn copyoutstr "const void *kaddr" "void *uaddr" "size_t len" "size_t *done"
+.Sh 解説
+.Nm
+関数群は連続したデータをあるアドレスから
+別のアドレスへコピーするようデザインされています。
+.Fn copystr
+以外の関数は、ユーザ空間からカーネル空間へ、
+あるいは反対向きにデータをコピーします。
+.Pp
+.Nm
+関数群は以下の機能を提供します。
+.Bl -tag -width "copyoutstr()"
+.It Fn copyin
+ユーザ空間のアドレス
+.Fa uaddr
+からカーネル空間のアドレス
+.Fa kaddr
+へ
+.Fa len
+バイトのデータをコピーします。
+.It Fn copyout
+カーネル空間のアドレス
+.Fa kaddr
+からユーザ空間のアドレス
+.Fa uaddr
+へ
+.Fa len
+バイトのデータをコピーします。
+.It Fn copystr
+カーネル空間のアドレス
+.Fa kfaddr
+からカーネル空間のアドレス
+.Fa kdaddr
+へヌル文字で終端された最大
+.Fa len
+文字の文字列をコピーします。
+末尾のヌル文字を含む実際にコピーされた文字数が
+.Fa *done
+に返されます
+.Fa ( done
+が
+.Dv NULL
+ではない場合)。
+.It Fn copyinstr
+ユーザ空間のアドレス
+.Fa uaddr
+からカーネル空間のアドレス
+.Fa kaddr
+へヌル文字で終端された最大
+.Fa len
+文字の文字列をコピーします。
+末尾のヌル文字を含む実際にコピーされた文字数が
+.Fa *done
+に返されます
+.Fa ( done
+が
+.Dv NULL
+ではない場合)。
+.\" .It Fn copyoutstr
+.\" カーネル空間のアドレス
+.\" .Fa kaddr
+.\" からユーザ空間のアドレス
+.\" .Fa uaddr
+.\" へヌル文字で終端された最大
+.\" .Fa len
+.\" 文字の文字列をコピーします。
+.\" 末尾のヌル文字を含む実際にコピーされた文字数が
+.\" .Fa *done
+.\" に返されます。
+.El
+.Sh 戻り値
+それぞれの
+.Nm
+関数は成功した時に 0 を、不正なアドレスに遭遇した時に
+.Er EFAULT
+を返します。
+さらに、
+.Fn copystr
+および
+.Fn copyinstr
+.\"、
+.\" .Fn copyoutstr
+関数は文字列が
+.Fa len
+バイトよりも長い時に
+.Er ENAMETOOLONG
+を返します。
+.Sh 関連項目
+.Xr fetch 9 ,
+.Xr store 9
diff --git a/documentation/manual-pages/ja/man9/devclass.9 b/documentation/manual-pages/ja/man9/devclass.9
new file mode 100644
index 0000000000..3e4ec16d1f
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/devclass.9
@@ -0,0 +1,70 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/devclass.9,v 1.11 2003/10/23 01:54:06 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVCLASS 9
+.Os
+.Sh 名称
+.Nm devclass
+.Nd デバイスのクラスを表現するオブジェクト
+.Sh 書式
+.Vt typedef struct devclass *devclass_t ;
+.Sh 解説
+.Vt devclass
+オブジェクトのシステムにおける役割は、主に 2 つです。
+1 つ目はデバイスインスタンスのユニット番号割り当てを管理するためのもので、
+2 つ目は各々のバスタイプのためのデバイスドライバのリストを
+保持するためのものです。
+それぞれの
+.Vt devclass
+は名前を持っていて、同じ名前を持つ 2 つの devclass は存在できません。
+これは一意なユニット番号が
+デバイスインスタンスに割り当てられることを保証します。
+.Pp
+これは、異なるバスに同じデバイスドライバを接続するために、
+.Vt devclass
+が同じでなければならないということを意味することに、気を付けてください。
+.Sh 関連項目
+.Xr devclass_add_driver 9 ,
+.Xr devclass_delete_driver 9 ,
+.Xr devclass_find 9 ,
+.Xr devclass_find_driver 9 ,
+.Xr devclass_get_device 9 ,
+.Xr devclass_get_devices 9 ,
+.Xr devclass_get_maxunit 9 ,
+.Xr devclass_get_name 9 ,
+.Xr devclass_get_softc 9 ,
+.Xr device 9 ,
+.Xr driver 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/devclass_add_driver.9 b/documentation/manual-pages/ja/man9/devclass_add_driver.9
new file mode 100644
index 0000000000..b3a7c13966
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/devclass_add_driver.9
@@ -0,0 +1,60 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/devclass_add_driver.9,v 1.8 2003/10/23 01:54:06 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVCLASS_ADD_DRIVER 9
+.Os
+.Sh 名称
+.Nm devclass_add_driver ,
+.Nm devclass_delete_driver ,
+.Nm devclass_find_driver
+.Nd devclass の中のドライバの操作
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn devclass_add_driver "devclass_t dc" "driver_t *driver"
+.Ft int
+.Fn devclass_delete_driver "devclass_t dc" "driver_t *driver"
+.Ft driver_t *
+.Fn devclass_find_driver "devclass_t dc" "const char *name"
+.Sh 解説
+これらの関数は、システムに新しいドライバを追加するため、
+古いドライバを削除するため、
+および存在しているドライバを探すため、使用可能です。
+通常、ドライバはシステム初期化時に自動的に追加されます。
+.Sh 関連項目
+.Xr devclass 9 ,
+.Xr driver 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/devclass_find.9 b/documentation/manual-pages/ja/man9/devclass_find.9
new file mode 100644
index 0000000000..d8bacbc697
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/devclass_find.9
@@ -0,0 +1,57 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/devclass_find.9,v 1.8 2003/06/02 15:34:14 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVCLASS_FIND 9
+.Os
+.Sh 名称
+.Nm devclass_find
+.Nd devclass の検索
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft devclass_t
+.Fn devclass_find "const char *classname"
+.Sh 解説
+指定された名前の
+.Vt devclass
+を検索します。
+.Sh 戻り値
+.Vt devclass
+が存在する場合にはその devclass が返され、そうでない場合には
+.Dv NULL
+が返されます。
+.Sh 関連項目
+.Xr devclass 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/devclass_get_device.9 b/documentation/manual-pages/ja/man9/devclass_get_device.9
new file mode 100644
index 0000000000..a2c92e42de
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/devclass_get_device.9
@@ -0,0 +1,55 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/devclass_get_device.9,v 1.8 2001/10/01 16:09:24 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVCLASS_GET_DEVICE 9
+.Os
+.Sh 名称
+.Nm devclass_get_device
+.Nd ユニット番号からデバイスへの変換
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft device_t
+.Fn devclass_get_device "devclass_t dc" "int unit"
+.Sh 解説
+この関数は、指定されたユニット番号のデバイスインスタンスを取り出し、
+それを返します。
+.Sh 戻り値
+デバイスが存在する場合にはそのデバイスが返され、
+そうでない場合には NULL が返されます。
+.Sh 関連項目
+.Xr devclass 9 ,
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/devclass_get_devices.9 b/documentation/manual-pages/ja/man9/devclass_get_devices.9
new file mode 100644
index 0000000000..e7c2001f3a
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/devclass_get_devices.9
@@ -0,0 +1,60 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/devclass_get_devices.9,v 1.7 2001/10/01 16:09:24 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVCLASS_GET_DEVICES 9
+.Os
+.Sh 名称
+.Nm devclass_get_devices
+.Nd devclass の中のデバイスのリストの取り出し
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn devclass_get_devices "devclass_t dc" "device_t **devlistp" "int *devcountp"
+.Sh 解説
+現在 devclass の中にある全てのデバイスインスタンスのリストを取り出し、
+.Fa *devlistp
+にそのリストを
+.Fa *devcountp
+にその個数を返します。
+リストのために割り当てられたメモリは、
+.Fn free "*devlistp" "M_TEMP"
+を用いて解放されるべきです。
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合には適切なエラーが返されます。
+.Sh 関連項目
+.Xr devclass 9 ,
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/devclass_get_maxunit.9 b/documentation/manual-pages/ja/man9/devclass_get_maxunit.9
new file mode 100644
index 0000000000..bb82fc3397
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/devclass_get_maxunit.9
@@ -0,0 +1,53 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/devclass_get_maxunit.9,v 1.6 2001/10/01 16:09:24 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVCLASS_GET_MAXUNIT 9
+.Os
+.Sh 名称
+.Nm devclass_get_maxunit
+.Nd クラスの中の最大のユニット番号を検索
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn devclass_get_maxunit "devclass_t dc"
+.Sh 解説
+指定された
+.Dv devclass
+の中のデバイスインスタンスに割り当てられた、最大のユニット番号を返します。
+.Sh 関連項目
+.Xr devclass 9 ,
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/devclass_get_name.9 b/documentation/manual-pages/ja/man9/devclass_get_name.9
new file mode 100644
index 0000000000..15eb56a2aa
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/devclass_get_name.9
@@ -0,0 +1,51 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/devclass_get_name.9,v 1.6 2001/10/01 16:09:24 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVCLASS_GET_NAME 9
+.Os
+.Sh 名称
+.Nm devclass_get_name
+.Nd devclass の名前の入手
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft const char *
+.Fn devclass_get_name "devclass_t dc"
+.Sh 解説
+devclass の名前を返します。
+.Sh 関連項目
+.Xr devclass 9 ,
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/devclass_get_softc.9 b/documentation/manual-pages/ja/man9/devclass_get_softc.9
new file mode 100644
index 0000000000..338b6b345f
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/devclass_get_softc.9
@@ -0,0 +1,56 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/devclass_get_softc.9,v 1.7 2001/10/01 16:09:24 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVCLASS_GET_SOFTC 9
+.Os
+.Sh 名称
+.Nm devclass_get_softc
+.Nd ユニット番号からドライバの私的構造体への変換
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft void *
+.Fn devclass_get_softc "devclass_t dc" "int unit"
+.Sh 解説
+この関数は、指定されたユニット番号から、
+そのデバイスのためのドライバの私的なインスタンス変数を取り出し、
+それを返します。
+.Sh 戻り値
+そのデバイスが存在している場合には、
+そのデバイスのドライバの私的な変数が返され、
+そうでない場合には、NULL が返されます。
+.Sh 関連項目
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device.9 b/documentation/manual-pages/ja/man9/device.9
new file mode 100644
index 0000000000..dfa7e67df5
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device.9
@@ -0,0 +1,114 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device.9,v 1.15 2003/10/23 01:54:06 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVICE 9
+.Os
+.Sh 名称
+.Nm device
+.Nd デバイスの抽象表現
+.Sh 書式
+.Vt typedef struct device *device_t ;
+.Sh 解説
+デバイスオブジェクトは拡張カード、カードが挿されるバス、拡張カードに接続される
+ディスクドライブなどのシステムにアタッチされたハードウェアの一部を表現します。
+システムは 1 つのデバイス
+.Va root_bus
+を定義し、
+他の全てのデバイスは自動コンフィギュレーションの間に動的に生成されます。
+通常、システム (ISA, PCI など) の中のトップレベルのバスを表現するデバイスは、
+.Va root_bus
+に直接アタッチされ、他のデバイスはそれらの適切なバスの子として追加されます。
+.Pp
+システムの中のデバイスは木構造を形成します。
+.Va root_bus
+を除く全てのデバイスは親 (
+.Xr device_get_parent 9
+を参照) を持っています。
+加えて、全てのデバイスはそれにアタッチされる子 (
+.Xr device_add_child 9 ,
+.Xr device_add_child_ordered 9 ,
+.Xr device_find_child 9 ,
+.Xr device_get_children 9 ,
+.Xr device_delete_child 9
+を参照)
+を持つことが可能です。
+.Pp
+プローブに成功してシステムにアタッチされているデバイスは
+ドライバ (
+.Xr device_get_driver 9
+と
+.Xr driver 9
+を参照)
+およびデバイスクラス (
+.Xr device_get_devclass 9
+と
+.Xr devclass 9
+を参照)
+も持ちます。
+デバイスの様々な他の属性は、ユニット番号 (
+.Xr device_get_unit 9
+を参照)、
+(通常ドライバによって供給される) 冗長な記述 (
+.Xr device_set_desc 9
+と
+.Xr device_get_desc 9
+を参照)、
+バス固有の変数の組 (
+.Xr device_get_ivars 9
+を参照)、
+および driver 固有の変数の組 (
+.Xr device_get_softc 9
+を参照)
+を含みます。
+.Pp
+デバイスは以下の幾つかの状態の内の 1 つをとることが可能です。
+.Bl -tag -width DS_NOTPRESENT
+.It Dv DS_NOTPRESENT
+デバイスは存在確認のプローブがされていないか、失敗しました。
+.It Dv DS_ALIVE
+デバイスのプローブには成功しましたが、まだアタッチされていません。
+.It Dv DS_ATTACHED
+デバイスのアタッチが成功しました。
+.It Dv DS_BUSY
+デバイスは現在オープンされています。
+.El
+.Pp
+デバイスの現在の状態は、
+.Xr device_get_state 9
+の呼び出しにより決定することが可能です。
+.Sh 関連項目
+.Xr devclass 9 ,
+.Xr driver 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_add_child.9 b/documentation/manual-pages/ja/man9/device_add_child.9
new file mode 100644
index 0000000000..8e0dc7fab0
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_add_child.9
@@ -0,0 +1,114 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_add_child.9,v 1.19 2004/07/03 18:29:23 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd May 13, 2004
+.Dt DEVICE_ADD_CHILD 9
+.Os
+.Sh 名称
+.Nm device_add_child ,
+.Nm device_add_child_ordered
+.Nd 存在しているデバイスの子として新しいデバイスを追加
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft device_t
+.Fn device_add_child "device_t dev" "const char *name" "int unit"
+.Ft device_t
+.Fn device_add_child_ordered "device_t dev" "int order" "const char *name" "int unit"
+.Sh 解説
+.Fa dev
+の新しい子デバイスを追加します。
+.Fa name
+および
+.Fa unit
+引数はデバイスの名前とユニット番号を指定します。
+名前が不明の場合には、呼び出し側は
+.Dv NULL
+を渡すべきです。
+ユニット番号が不明の場合には、呼び出し側は
+.Dv -1
+を渡すべきで、システムは次の使用可能なユニット番号を選択するでしょう。
+.Pp
+デバイスの名前は、どのドライバがそのデバイスに適切であるかを
+決定するために使用されます。
+名前が指定されている場合には、その名前のドライバのみがプローブされます。
+名前が与えられなかった場合には、
+認識しているバスの全てのドライバがプローブされます。
+全てのイベントで、その名前に結び付いているドライバのロードとアンロードが
+安全にできるように、そのデバイスの名前のみが格納されます。
+.Pp
+これは、デバイスインスタンスを独自に識別することができるバス (PCI 等) が、
+個々のドライバが個々のデバイスインスタンスに適合しているか
+チェック可能にします。
+供給されたプローブヒントに依存して、
+たった 1 つのドライバがデバイスをプローブ可能なバスでは、
+ドライバの名前はデバイスの名前として指定されるべきです。
+.Pp
+通常、ユニット番号はシステムによって自動的に選択されますので、ユニット番号は
+.Dv -1
+が与えられるべきです。
+指定のユニット番号が希望された時に (例えばハードウェアの一部分を
+あらかじめ設定されたユニット番号に結びつけるため)、unit は渡されるべきです。
+指定されたユニット番号が既に割り当てられていた場合には、新しいユニット番号が
+割り当てられ、診断メッセージが表示されます。
+.Pp
+指定の順序でプローブされなければならないバス (例えば ISA バス用の幾つかの
+デバイスは関連の無いドライバのプローブの試みの失敗に敏感で、それゆえ
+最初にプローブされなければならない) にアタッチされたデバイスの場合には、
+.Fn device_add_child_ordered
+の
+.Fa order
+引数が半順序を指定するために使用されるべきです。
+新しいデバイスは、
+既存のより大きい順序を持つすべてのデバイスの前に追加されます。
+.Fn device_add_child
+が使用された場合には、順序が 0 であるとして新しい子が追加されます。
+.Pp
+.Xr DEVICE_IDENTIFY 9
+ルーチンのコンテキストでデバイスを追加するときには、
+そのデバイスが既にツリーに追加されていないことを保証するために
+いくつかの注意が払われなければなりません。
+なぜならば、そのデバイスの名前と
+.Vt devclass_t
+はプローブ時に (子の追加時ではなく) 関連付けられ、(モジュールの中で
+後でアンロードされたと示されている) そのドライバの前のインスタンスが
+既に追加されているかもしれないからです。
+バスドライバの作者は同様に、
+子デバイスの複製を避けるためにロードおよびアンロードされるときに、
+子の追加時にも注意しなければなりません。
+.Sh 戻り値
+成功時には新しいデバイスが、そうでなければ NULL が返されます。
+.Sh 関連項目
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_delete_child.9 b/documentation/manual-pages/ja/man9/device_delete_child.9
new file mode 100644
index 0000000000..dc96aa25b0
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_delete_child.9
@@ -0,0 +1,60 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_delete_child.9,v 1.8 2003/10/23 06:19:45 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVICE_DELETE_CHILD 9
+.Os
+.Sh 名称
+.Nm device_delete_child
+.Nd デバイスから子を削除
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn device_delete_child "device_t dev" "device_t child"
+.Sh 解説
+指定されたデバイスを
+.Fa dev
+から取り除き削除します。
+そのデバイスが現在アタッチされている場合には、先にデタッチ (
+.Xr DEVICE_ATTACH 9
+および
+.Xr DEVICE_DETACH 9
+を参照してください)
+されます。
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合にはエラーが返されます。
+.Sh 関連項目
+.Xr device_add_child 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_enable.9 b/documentation/manual-pages/ja/man9/device_enable.9
new file mode 100644
index 0000000000..e5f2d5b8f8
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_enable.9
@@ -0,0 +1,65 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_enable.9,v 1.10 2003/10/23 06:19:45 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVICE_ENABLE 9
+.Os
+.Sh 名称
+.Nm device_enable ,
+.Nm device_disable ,
+.Nm device_is_enabled
+.Nd デバイスの有効フラグの操作
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft void
+.Fn device_enable "device_t dev"
+.Ft void
+.Fn device_disable "device_t dev"
+.Ft int
+.Fn device_is_enabled "device_t dev"
+.Sh 解説
+個々のデバイスは、結びつけられた有効フラグを持っています。
+デバイスは生成時にはデフォルトで有効になっていますが、(例えば、破壊的または
+時間を消費するプローブの試みを防ぐために) 無効にできます。
+デバイスを無効にするには
+.Fn device_disable
+を呼び出し、再度有効にするには
+.Fn device_enable
+を呼び出し、デバイスが有効かどうか確認するには
+.Fn device_is_enabled
+を呼び出します。
+.Sh 関連項目
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_find_child.9 b/documentation/manual-pages/ja/man9/device_find_child.9
new file mode 100644
index 0000000000..2776b76e52
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_find_child.9
@@ -0,0 +1,65 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_find_child.9,v 1.8.4.1 2005/02/25 20:25:35 njl Exp %
+.\"
+.\" $FreeBSD$
+.Dd February 8, 2005
+.Dt DEVICE_FIND_CHILD 9
+.Os
+.Sh 名称
+.Nm device_find_child
+.Nd デバイスの子の検索
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft device_t
+.Fn device_find_child "device_t dev" "const char *classname" "int unit"
+.Sh 解説
+この関数は、
+.Dv dev
+の子で、
+.Fa classname
+および
+.Fa unit
+を持つものを検索します。
+.Fa unit
+が -1 であるなら、一致する
+.Fa classname
+で
+.Dv dev
+の最初の子を返します。
+(すなわち、最も低い unit です。)
+.Sh 戻り値
+存在している場合には子デバイスが返され、そうでない場合には NULL が返されます。
+.Sh 関連項目
+.Xr device_add_child 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/device_get_children.9 b/documentation/manual-pages/ja/man9/device_get_children.9
new file mode 100644
index 0000000000..5eda51b876
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_get_children.9
@@ -0,0 +1,62 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_get_children.9,v 1.5 2003/10/23 06:19:45 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd December 1, 1999
+.Dt DEVICE_GET_CHILDREN 9
+.Os
+.Sh 名称
+.Nm device_get_children
+.Nd デバイスに接続されているデバイスのリストの取得
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn device_get_children "device_t dev" "device_t **devlistp" "int *devcountp"
+.Sh 解説
+現在
+.Pa dev
+に接続されている全てのデバイスインスタンスのリストを取り出し、そのリストを
+.Fa *devlistp
+に、その個数を
+.Fa *devcountp
+に入れて返します。
+リストのために割り当てられたメモリは
+.Fn free "*devlistp" "M_TEMP"
+を使用して解放されるべきです。
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合には適切なエラーが返されます。
+.Sh 関連項目
+.Xr devclass 9 ,
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_get_devclass.9 b/documentation/manual-pages/ja/man9/device_get_devclass.9
new file mode 100644
index 0000000000..4553ea0d73
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_get_devclass.9
@@ -0,0 +1,54 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_get_devclass.9,v 1.8 2003/10/23 06:19:45 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVICE_GET_DEVCLASS 9
+.Os
+.Sh 名称
+.Nm device_get_devclass
+.Nd デバイスのデバイスクラスへのアクセス
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft devclass_t
+.Fn device_get_devclass "device_t dev"
+.Sh 解説
+デバイスに関連づけられている現在のデバイスクラスが返されます。
+デバイスがデバイスクラスを持っていない場合には、
+.Dv NULL
+が返されます。
+.Sh 関連項目
+.Xr devclass 9 ,
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_get_driver.9 b/documentation/manual-pages/ja/man9/device_get_driver.9
new file mode 100644
index 0000000000..4803e82a45
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_get_driver.9
@@ -0,0 +1,54 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_get_driver.9,v 1.8 2003/10/23 06:19:45 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVICE_GET_DRIVER 9
+.Os
+.Sh 名称
+.Nm device_get_driver
+.Nd デバイスのドライバへのアクセス
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft driver_t *
+.Fn device_get_driver "device_t dev"
+.Sh 解説
+デバイスに関連づけられている現在のドライバが返されます。
+デバイスがドライバを持っていない場合には、
+.Dv NULL
+が返されます。
+.Sh 関連項目
+.Xr device 9 ,
+.Xr driver 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_get_ivars.9 b/documentation/manual-pages/ja/man9/device_get_ivars.9
new file mode 100644
index 0000000000..d558468f65
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_get_ivars.9
@@ -0,0 +1,64 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_get_ivars.9,v 1.9 2003/10/23 06:19:45 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVICE_GET_IVARS 9
+.Os
+.Sh 名称
+.Nm device_get_ivars ,
+.Nm device_set_ivars
+.Nd バスの私的変数へのアクセス
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft "void *"
+.Fn device_get_ivars "device_t dev"
+.Ft void
+.Fn device_set_ivars "device_t dev" "void *ivar"
+.Sh 解説
+.Fn device_get_ivars
+関数はデバイスのバス固有のインスタンス変数を返します。
+.Pp
+.Fn device_set_ivars
+関数はデバイスのバス固有のインスタンス変数を設定します。
+.Pp
+一般に、バスドライバのみがこれらの関数を使用します。
+カーネルは、バスドライバはこのメモリを管理し、自動でのメモリの
+割り当てと開放が発生しないということを、決めてかかります。
+代わりに、クライアントのドライバは
+.Xr BUS_READ_IVAR 9
+インタフェースを通して ivars にアクセスするべきです。
+.Sh 関連項目
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_get_name.9 b/documentation/manual-pages/ja/man9/device_get_name.9
new file mode 100644
index 0000000000..75c0aa5fc0
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_get_name.9
@@ -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.4 2003/11/06 15:54:32 des 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 const char *
+.Fn device_get_name "device_t dev"
+.Ft const char *
+.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
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_get_parent.9 b/documentation/manual-pages/ja/man9/device_get_parent.9
new file mode 100644
index 0000000000..affa2ffa75
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_get_parent.9
@@ -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.3 2003/10/23 06:19:45 hmp 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
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_get_softc.9 b/documentation/manual-pages/ja/man9/device_get_softc.9
new file mode 100644
index 0000000000..18498adf43
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_get_softc.9
@@ -0,0 +1,65 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_get_softc.9,v 1.10 2003/10/23 06:19:45 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVICE_GET_SOFTC 9
+.Os
+.Sh 名称
+.Nm device_get_softc
+.Nd ドライバの私的なインスタンス変数へのアクセス
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft void *
+.Fn device_get_softc "device_t dev"
+.Sh 解説
+デバイス
+.Fa dev
+のドライバ固有の状態を返します。
+この softc は最初に要求された時に自動的に割り当てられます。
+割り当ての大きさは、ドライバを定義するために使用されるデバイスの
+.Vt driver_t
+情報によって決定されます。
+softc は一般的に、デバイスの実体の状態をカプセル化します。
+.Pp
+ドライバ設計者が、独自の softc 管理メカニズムを使用することは推奨されません。
+ドライバ設計者は、この関数より以前のツリーの中のドライバで見つけた、
+このようなメカニズムをコピーするべきではありません。
+.Sh 戻り値
+デバイス固有のインスタンス変数へのポインタが返されます。
+.Sh 関連項目
+.Xr device 9 ,
+.Xr device_set_softc 9 ,
+.Xr driver 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_get_state.9 b/documentation/manual-pages/ja/man9/device_get_state.9
new file mode 100644
index 0000000000..6300068bc9
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_get_state.9
@@ -0,0 +1,103 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_get_state.9,v 1.12 2003/10/23 06:19:45 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVICE_GET_STATE 9
+.Os
+.Sh 名称
+.Nm device_get_state ,
+.Nm device_busy ,
+.Nm device_unbusy ,
+.Nm device_is_alive ,
+.Nm device_is_attached
+.Nd デバイス状態の操作
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft device_state_t
+.Fn device_get_state "device_t dev"
+.Ft void
+.Fn device_busy "device_t dev"
+.Ft void
+.Fn device_unbusy "device_t dev"
+.Ft int
+.Fn device_is_alive "device_t dev"
+.Ft int
+.Fn device_is_attached "device_t dev"
+.Sh 解説
+デバイスの現在の状態は、
+.Dv DS_NOTPRESENT ,
+.Dv DS_ALIVE ,
+.Dv DS_ATTACHED ,
+.Dv DS_BUSY
+(
+.Xr device 9
+で説明されています) を返す
+.Fn device_get_state
+の呼び出しによってアクセスされます。
+デバイスがうまくプローブされたことを確認するには、単純に状態が
+.Dv DS_ALIVE
+以上であるかどうかを返す
+.Fn device_is_alive
+を呼び出します。
+デバイスがうまくアタッチされたことを確認するには、単純に状態が
+.Dv DS_ATTACHED
+以上であるかどうかを返す
+.Fn device_is_attached
+を呼び出します。
+.Pp
+個々のデバイスは、
+.Fn device_busy
+が呼び出された時にインクリメントされ、
+.Fn device_unbusy
+が呼び出された時にデクリメントされるビジーカウントを持っています。
+どちらのルーチンもデバイスの状態が
+.Dv DS_ATTACHED
+より小さい場合にはエラーを返します。
+.Pp
+デバイスが
+.Dv DS_ATTACHED
+状態で
+.Fn device_busy
+が呼び出された時には、デバイスは
+.Dv DS_BUSY
+状態に遷移します。
+.Fn device_unbusy
+が呼び出されでデクリメントされた後にデバイスのビジーカウントが 0 ならば、
+デバイスは
+.Dv DS_ATTACHED
+状態に遷移します。
+.Sh 関連項目
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_get_unit.9 b/documentation/manual-pages/ja/man9/device_get_unit.9
new file mode 100644
index 0000000000..c52a70ce64
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_get_unit.9
@@ -0,0 +1,50 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_get_unit.9,v 1.7 2003/10/23 06:19:45 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVICE_GET_UNIT 9
+.Os
+.Sh 名称
+.Nm device_get_unit
+.Nd デバイスのユニット番号へのアクセス
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn device_get_unit "device_t dev"
+.Sh 解説
+デバイスのユニット番号を返します。
+.Sh 関連項目
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_ids.9 b/documentation/manual-pages/ja/man9/device_ids.9
new file mode 100644
index 0000000000..37fabf8a06
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_ids.9
@@ -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.3 2004/06/22 20:18:15 le Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 22, 2004
+.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 "struct cdev *dev"
+.Ft int
+.Fn minor "struct cdev *dev"
+.Ft int
+.Fn umajor "dev_t id"
+.Ft int
+.Fn uminor "dev_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 NODEV
+を返します。
+.Sh 作者
+このマニュアルページは
+.An Chad David Aq davidc@acns.ab.ca
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_printf.9 b/documentation/manual-pages/ja/man9/device_printf.9
new file mode 100644
index 0000000000..b5da8deff3
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_printf.9
@@ -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
diff --git a/documentation/manual-pages/ja/man9/device_probe_and_attach.9 b/documentation/manual-pages/ja/man9/device_probe_and_attach.9
new file mode 100644
index 0000000000..f1fd031b49
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_probe_and_attach.9
@@ -0,0 +1,61 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_probe_and_attach.9,v 1.8 2003/10/23 06:19:45 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVICE_PROBE_AND_ATTACH 9
+.Os
+.Sh 名称
+.Nm device_probe_and_attach
+.Nd デバイスの初期化
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft int
+.Fn device_probe_and_attach "device_t dev"
+.Sh 解説
+この関数は、自動コンフィギュレーションの間に呼び出され、
+システムのデバイスを初期化します。
+個々のデバイスに対して、適切なドライバの
+.Xr DEVICE_PROBE 9
+メソッドが呼び出され、プローブに成功した場合には、デバイスの記述が表示され、
+.Xr DEVICE_ATTACH 9
+メソッドが呼び出されます。
+.Xr device_disable 9
+を使用してデバイスが無効にされている場合には、プローブされません。
+.Sh 戻り値
+成功時には 0 が返され、そうでない場合には適切なエラーが返されます。
+.Sh 関連項目
+.Xr device 9 ,
+.Xr driver 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_quiet.9 b/documentation/manual-pages/ja/man9/device_quiet.9
new file mode 100644
index 0000000000..a1f2f61d38
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_quiet.9
@@ -0,0 +1,68 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_quiet.9,v 1.11 2003/10/23 06:19:45 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 21, 1999
+.Dt DEVICE_QUIET 9
+.Os
+.Sh 名称
+.Nm device_quiet ,
+.Nm device_verbose ,
+.Nm device_is_quiet
+.Nd デバイスの沈黙フラグの操作
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft void
+.Fn device_quiet "device_t dev"
+.Ft void
+.Fn device_verbose "device_t dev"
+.Ft int
+.Fn device_is_quiet "device_t dev"
+.Sh 解説
+個々のデバイスは結びつけられた沈黙フラグを持っています。
+デバイスは生成時のデフォルトでは冗長ですが、プローブ中に
+デバイス識別文字列の出力を妨げるために、沈黙させられます。
+デバイスを沈黙させるには
+.Fn device_quiet
+を呼び出し、プローブメッセージを再度有効 (例えば
+.Xr device_detach 9
+の後に、メッセージが再び現れるようにします) にするには
+.Fn device_verbose
+を呼び出します。
+デバイスが沈黙状態かどうかを確認するためには
+.Fn device_is_quiet
+を呼び出します。
+.Sh 関連項目
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_set_desc.9 b/documentation/manual-pages/ja/man9/device_set_desc.9
new file mode 100644
index 0000000000..19dba63125
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_set_desc.9
@@ -0,0 +1,65 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_set_desc.9,v 1.11 2003/10/23 06:19:45 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DEVICE_SET_DESC 9
+.Os
+.Sh 名称
+.Nm device_set_desc ,
+.Nm device_set_desc_copy ,
+.Nm device_get_desc
+.Nd デバイスの記述にアクセス
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft void
+.Fn device_set_desc "device_t dev" "const char *desc"
+.Ft void
+.Fn device_set_desc_copy "device_t dev" "const char *desc"
+.Ft const char *
+.Fn device_get_desc "device_t dev"
+.Sh 解説
+デバイスの冗長な記述を操作します。
+(存在するならば) この記述は、
+自動コンフィギュレーションの間のアタッチ時に、
+メッセージの一部として表示されます。
+変種の
+.Fn device_set_desc_copy
+は、渡される文字列が上書きされるかも知れない一時的なバッファである場合に、
+使用されます。
+この場合にはシステムはその文字列をコピーしますが、
+そうでない場合には渡されたポインタが直接使用されます。
+.Sh 関連項目
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_set_driver.9 b/documentation/manual-pages/ja/man9/device_set_driver.9
new file mode 100644
index 0000000000..fed3354778
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_set_driver.9
@@ -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.3 2003/10/23 06:19:45 hmp 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
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/device_set_flags.9 b/documentation/manual-pages/ja/man9/device_set_flags.9
new file mode 100644
index 0000000000..1c1b32b68c
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/device_set_flags.9
@@ -0,0 +1,59 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1999 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/device_set_flags.9,v 1.8 2003/10/23 06:19:45 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd September 6, 1999
+.Dt DEVICE_GET_FLAGS 9
+.Os
+.Sh 名称
+.Nm device_set_flags ,
+.Nm device_get_flags
+.Nd ドライバフラグの操作
+.Sh 書式
+.In sys/param.h
+.In sys/bus.h
+.Ft void
+.Fn device_set_flags "device_t dev" "u_int32_t flags"
+.Ft u_int32_t
+.Fn device_get_flags "device_t dev"
+.Sh 解説
+個々のデバイスは、デバイスの振舞いを制御するために使用される
+ドライバ依存のフラグの組を、しばしばサポートしています。
+これらのフラグは
+.Fn device_get_flags
+の呼び出しによって読み込まれ、
+.Fn device_set_flags
+の呼び出しによって書き込まれます。
+.Sh 関連項目
+.Xr device 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/devstat.9 b/documentation/manual-pages/ja/man9/devstat.9
new file mode 100644
index 0000000000..44daab9f65
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/devstat.9
@@ -0,0 +1,439 @@
+.\"
+.\" Copyright (c) 1998, 1999 Kenneth D. Merry.
+.\" 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.
+.\" 3. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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/devstat.9,v 1.21 2004/07/03 18:29:24 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd May 22, 1998
+.Dt DEVSTAT 9
+.Os
+.Sh 名称
+.Nm devstat ,
+.Nm devstat_add_entry ,
+.Nm devstat_end_transaction ,
+.Nm devstat_end_transaction_bio ,
+.Nm devstat_remove_entry ,
+.Nm devstat_start_transaction
+.Nd デバイス統計の記録のためのカーネルインタフェース
+.Sh 書式
+.In sys/devicestat.h
+.Ft void
+.Fo devstat_add_entry
+.Fa "struct devstat *ds"
+.Fa "const char *dev_name"
+.Fa "int unit_number"
+.Fa "u_int32_t block_size"
+.Fa "devstat_support_flags flags"
+.Fa "devstat_type_flags device_type"
+.Fa "devstat_priority priority"
+.Fc
+.Ft void
+.Fn devstat_remove_entry "struct devstat *ds"
+.Ft void
+.Fn devstat_start_transaction "struct devstat *ds"
+.Ft void
+.Fo devstat_end_transaction
+.Fa "struct devstat *ds"
+.Fa "u_int32_t bytes"
+.Fa "devstat_tag_type tag_type"
+.Fa "devstat_trans_flags flags"
+.Fc
+.Ft void
+.Fo devstat_end_transaction_bio
+.Fa "struct devstat *ds"
+.Fa "struct bio *bp"
+.Fc
+.Sh 解説
+devstat サブシステムは、その名称が暗示する様に、
+デバイス統計を記録するためのインタフェースです。
+この目的は、適度に詳細な統計情報を記録しつつ、
+記録に使用する CPU 時間を最小とするというものです。
+従って、
+.Nm
+のコードのカーネル内の部分では、実際の統計的な計算は行なわれていません。
+代わりに、これはユーザプログラムが取り扱うように残されています。
+.Pp
+.Fn devstat_add_entry
+は
+.Nm
+サブシステムにデバイスを登録します。
+呼び出し側はこの関数の呼び出しの前に、既に割当てられ \fB0 でクリア
+された\fR devstat 構造体を持っていることを期待されています。
+.Fn devstat_add_entry
+は幾つかの引数を取ります。
+.Bl -tag -width device_type
+.It ds
+クライアントによって割当てられ 0 でクリアされた、
+.Va devstat
+構造体です。
+.It dev_name
+デバイスの名前です。
+例えば da, cd, sa です。
+.It unit_number
+デバイスユニット番号です。
+.It block_size
+サポートされている場合には、デバイスのブロックサイズです。
+デバイスがブロックサイズをサポートしていない場合、または
+.Nm
+リストにそのデバイスが追加される時点ではブロックサイズが判っていない場合には、
+0 に設定されるべきです。
+.It flags
+デバイスによって操作がサポートされているかサポートされていないかを示す
+フラグです。
+詳細は以下を参照してください。
+.It device_type
+デバイスの型です。
+これは 3 つの部分、基本的なデバイスの型 (例えば、直接アクセス、CDROM、
+順次アクセス)、インタフェースの型 (IDE, SCSI またはその他) および
+通過するデバイスを示すためのパススルーフラグに、分割されます。
+完全な型のリストは以下を参照してください。
+.It priority
+デバイスの優先度です。
+優先度はデバイスの
+.Nm devstat
+リストの中でどのようにデバイスを並び替えるかを決定するために使用されます。
+デバイスは最初に優先度 (高い方から低い方) によって、
+それからアタッチされた順番によって並び替えられます。
+利用可能な優先度の完全なリストは以下を参照してください。
+.El
+.Pp
+.Fn devstat_remove_entry
+は
+.Nm
+サブシステムからデバイスを削除します。
+これは引数として当のデバイスの devstat 構造体を取ります。
+.Nm
+世代番号は増やされデバイスの数は減らされます。
+.Pp
+.Fn devstat_start_transaction
+は
+.Nm
+サブシステムに処理の開始を登録します。
+個々の処理の開始でビジーカウントが増やされます。
+デバイスがアイドルからビジーに移ったときには、システム uptime が
+.Va devstat
+構造体の
+.Va start_time
+フィールドに記録されます。
+.Pp
+.Fn devstat_end_transaction
+は
+.Nm
+サブシステムに処理の終了を登録します。
+これは 4 つの引数を取ります。
+.Bl -tag -width tag_type
+.It ds
+当のデバイスのための
+.Va devstat
+構造体です。
+.It bytes
+この処理で転送されたバイト数です。
+.It tag_type
+処理のタグの型です。
+タグの型は以下を参照してください。
+.It flags
+その処理が読込みだったのか、書込みだったのか、
+または転送されたデータがなかったのかを示す処理フラグです。
+.El
+.Pp
+.Fn devstat_end_transaction_bio
+は、biodone() の準備が整っている
+.Va "struct bio"
+からすべての情報を引き出すための、
+.Fn devstat_end_transaction
+のためのラッパです。
+.Pp
+.Va devstat
+構造体は以下のフィールドで構成されています。
+.Bl -tag -width dev_creation_time
+.It dev_links
+個々の
+.Va devstat
+は登録されたときにリンクされたリストに置かれます。
+.Va dev_links
+フィールドには
+.Va devstat
+構造体のリストの中の次のエントリへのポインタが入ります。
+.It device_number
+デバイス番号は、個々のデバイスのための一意な識別子です。
+デバイス番号は、個々の新しいデバイスが登録されるごとに増やされます。
+現在はデバイス番号は単なる 32 ビット整数ですが、40 億個を超える
+デバイス到着イベントを持つシステムがあれば、拡張するかもしれません。
+.It device_name
+デバイス名称はドライバ登録によって与えられる文字列であり、
+自分自身を識別するために使用できます。
+(例えば
+.Dq da ,
+.Dq cd ,
+.Dq sa ,
+など)。
+.It unit_number
+ユニット番号は当の周辺装置のドライバ特有の実体を識別します。
+.It bytes_written
+これはそのデバイスに既に書込まれたバイト数です。
+この数は現在は符号なし 64 ビット整数です。
+32 ビットの整数を使った場合にはシステムによってはすぐにカウンタが
+一回りしてしまうという問題を、これにより回避できると期待しています。
+.It bytes_read
+これはそのデバイスから既に読込まれたバイト数です。
+.It bytes_freed
+これはそのデバイス上の既に解放/消去されたバイト数です。
+.It num_reads
+これはそのデバイスからの読込み回数です。
+.It num_writes
+これはそのデバイスへの書込み回数です。
+.It num_frees
+これはそのデバイス上の解放/消去操作の回数です。
+.It num_other
+これはそのデバイスへの読込みでも書込みでもない処理の回数です。
+例えば、
+.Tn SCSI
+ドライバはしばしばテストユニットレディコマンドを
+.Tn SCSI
+デバイスに送ります。
+そのテストユニットレディコマンドはデータを全く読込みまたは書込みません。
+これは単にその状態を返させるだけにすぎません。
+.It busy_count
+これはそのデバイスのための現在未解決の処理の数です。
+これは 0 を決して下回るべきではなく、アイドルのデバイスでは 0 になるべきです。
+これらの状態のいずれかが真でない場合には、クライアントのコードの
+.Fn devstat_start_transaction
+と
+.Fn devstat_end_transaction
+の呼び出し方に問題があることを示しています。
+個々の処理にはただ 1 つの処理開始イベントがあるべきであり、
+各処理に対して 1 つの処理終了イベントがあるべきです。
+.It block_size
+そのデバイスがブロックサイズを持っている場合には、
+これはそのデバイスのブロックサイズです。
+.It tag_types
+これはデバイスに送られた様々なタグの型の数を記録するための
+カウンタの配列です。
+タグの型のリストは以下を参照してください。
+.It dev_creation_time
+これはそのデバイスが登録されたときの
+.Fn getmicrotime
+によって報告される時間です
+.It busy_time
+これは、デバイスのビジーカウントが 0 より大きかった時間の量です。
+これはビジーカウントが 0 に戻ったときにのみ更新されます。
+.It start_time
+これはそのデバイスのビジーカウントが 0 から 1 に移ったときの
+.Fn getmicrouptime
+によって報告される時間です
+.It last_comp_time
+これは処理が完全に終わったときの
+.Fn getmicrouptime
+によって報告される時間です。
+これはデバイスビジー時間を計算するために
+.Va start_time
+と一緒に使用されます。
+.It flags
+これらのフラグは個々のデバイスによって、どの統計測定がサポート
+されているのかを示します。
+これらのフラグは本来は、統計を解読するユーザ側のプログラムの補助として
+働くことを意図されています。
+.It device_type
+これはデバイスの型です。
+これは 3 つの部分から構成されています。
+デバイスの型 (例えば、直接アクセス、CDROM、順次アクセス、など)、
+インタフェース (IDE, SCSI またはその他) および当のデバイスが
+パススルードライバであるかどうか、です。
+デバイスの型の完全なリストは以下を参照してください。
+.It priority
+これは優先度です。
+これはデバイスを
+.Nm
+リストの何処に挿入するのかを決定するために使用される最初のパラメータです。
+2 番目のパラメータはアタッチの順番です。
+利用可能な優先度のリストは以下を参照してください。
+.El
+.Pp
+個々のデバイスはデバイスの型が与えられます。
+パススルーデバイスは
+インタフェースを供給するためのデバイスと同じ基礎的なデバイスの型と
+インタフェースを持ちますが、パススルーフラグも設定されています。
+基本のデバイスの型は
+.Tn SCSI
+のデバイス型番号と一致しています。
+そのため
+.Tn SCSI
+周辺装置では、問合せから返されたデバイスの型は、通常、
+.Tn SCSI
+インタフェースの型ともし適切であればパススルーフラグで OR されます。
+デバイスの型のフラグは以下のとおりです。
+.Bd -literal -offset indent
+typedef enum {
+ DEVSTAT_TYPE_DIRECT = 0x000,
+ DEVSTAT_TYPE_SEQUENTIAL = 0x001,
+ DEVSTAT_TYPE_PRINTER = 0x002,
+ DEVSTAT_TYPE_PROCESSOR = 0x003,
+ DEVSTAT_TYPE_WORM = 0x004,
+ DEVSTAT_TYPE_CDROM = 0x005,
+ DEVSTAT_TYPE_SCANNER = 0x006,
+ DEVSTAT_TYPE_OPTICAL = 0x007,
+ DEVSTAT_TYPE_CHANGER = 0x008,
+ DEVSTAT_TYPE_COMM = 0x009,
+ DEVSTAT_TYPE_ASC0 = 0x00a,
+ DEVSTAT_TYPE_ASC1 = 0x00b,
+ DEVSTAT_TYPE_STORARRAY = 0x00c,
+ DEVSTAT_TYPE_ENCLOSURE = 0x00d,
+ DEVSTAT_TYPE_FLOPPY = 0x00e,
+ DEVSTAT_TYPE_MASK = 0x00f,
+ DEVSTAT_TYPE_IF_SCSI = 0x010,
+ DEVSTAT_TYPE_IF_IDE = 0x020,
+ DEVSTAT_TYPE_IF_OTHER = 0x030,
+ DEVSTAT_TYPE_IF_MASK = 0x0f0,
+ DEVSTAT_TYPE_PASS = 0x100
+} devstat_type_flags;
+.Ed
+.Pp
+デバイスはそれらに関連付けられた優先度を持っていて、
+.Nm
+リストのおおよそ何処に置かれるのかを制御します。
+優先度は以下のとおりです。
+.Bd -literal -offset indent
+typedef enum {
+ DEVSTAT_PRIORITY_MIN = 0x000,
+ DEVSTAT_PRIORITY_OTHER = 0x020,
+ DEVSTAT_PRIORITY_PASS = 0x030,
+ DEVSTAT_PRIORITY_FD = 0x040,
+ DEVSTAT_PRIORITY_WFD = 0x050,
+ DEVSTAT_PRIORITY_TAPE = 0x060,
+ DEVSTAT_PRIORITY_CD = 0x090,
+ DEVSTAT_PRIORITY_DISK = 0x110,
+ DEVSTAT_PRIORITY_ARRAY = 0x120,
+ DEVSTAT_PRIORITY_MAX = 0xfff
+} devstat_priority;
+.Ed
+.Pp
+個々のデバイスは何の操作がサポートされているかサポートされていないのかを示す、
+それに関連付けられたフラグを持っています。
+.Va devstat_support_flags
+の値は以下のとおりです。
+.Bl -tag -width DEVSTAT_NO_ORDERED_TAGS
+.It DEVSTAT_ALL_SUPPORTED
+デバイスによって全ての統計の型がサポートされています。
+.It DEVSTAT_NO_BLOCKSIZE
+このデバイスはブロックサイズを持っていません。
+.It DEVSTAT_NO_ORDERED_TAGS
+このデバイスは順序タグ (ordered tag) をサポートしていません。
+.It DEVSTAT_BS_UNAVAILABLE
+このデバイスはブロックサイズをサポートしていますが、現在は利用できません。
+このフラグはリムーバブルメディアのドライバでよく使用されます。
+.El
+.Pp
+デバイスへの処理は 3 つのカテゴリのうちのいずれかに分類されます。
+これは
+.Fn devstat_end_transaction
+へ渡される
+.Va flags
+に表現されています。
+処理の型は以下のとおりです。
+.Bd -literal -offset indent
+typedef enum {
+ DEVSTAT_NO_DATA = 0x00,
+ DEVSTAT_READ = 0x01,
+ DEVSTAT_WRITE = 0x02,
+ DEVSTAT_FREE = 0x03
+} devstat_trans_flags;
+.Ed
+.Pp
+.Fn devstat_end_transaction
+の
+.Va tag_type
+引数には、次の 4 つの値を指定可能です:
+.Bl -tag -width DEVSTAT_TAG_ORDERED
+.It DEVSTAT_TAG_SIMPLE
+その処理は単純なタグを持っていました。
+.It DEVSTAT_TAG_HEAD
+この処理はキュータグの先頭を持っていました。
+.It DEVSTAT_TAG_ORDERED
+その処理は順序タグを持っていました。
+.It DEVSTAT_TAG_NONE
+そのデバイスはタグをサポートしません。
+.El
+.Pp
+タグの型の値は
+.Tn SCSI
+のタグの定義の下位 4 ビットと一致しています。
+例えば CAM では、
+CCB の
+.Va tag_action
+が 0xf と OR することにより、
+.Fn devstat_end_transaction
+に渡すタグの型を判定します。
+.\" AND じゃないの?
+.Pp
+.In sys/devicestat.h
+で
+.Dv DEVSTAT_VERSION
+マクロが定義されています。
+これは
+.Nm
+サブシステムの現在のバージョンで、
+.Nm
+統計にアクセスするユーザ側プログラムの再コンパイルが要求される変更のたびに、
+増やされるべきです。
+ユーザ側プログラムは、カーネルの
+.Nm
+構造体と同期しているかどうかを決定するために、
+.Va kern.devstat.version
+.Nm sysctl
+変数を通してこのバージョンを使用します。
+.Sh 関連項目
+.Xr systat 1 ,
+.Xr devstat 3 ,
+.Xr iostat 8 ,
+.Xr rpc.rstatd 8 ,
+.Xr vmstat 8
+.Sh 歴史
+.Nm
+統計システムは
+.Fx 3.0
+で登場しました。
+.Sh 作者
+.An Kenneth Merry Aq ken@FreeBSD.org
+.Sh バグ
+.Nm
+リスト操作コード周りで
+.Fn spl
+保護が必要かもしれません。
+これは、例えば誰かが
+.Va kern.devstat.all
+.Nm sysctl
+変数を取り出している間に、デバイスのリストが変更されないことを
+保証するためです。
+.Pp
+現在の
+.Nm
+の構造では正確に処理毎の時間を測定することが不可能です。
+唯一の上手くいきそうな処理毎の正確な時間測定の方法は、
+処理毎にタイムスタンプを記録することです。
+システムのパフォーマンスおよび各個の処理のためにタイムスタンプを
+保存するための空間コストに負の影響を与えるため、
+この測定は恐らくは殆んどの人々には価値のないことです。
diff --git a/documentation/manual-pages/ja/man9/devsw.9 b/documentation/manual-pages/ja/man9/devsw.9
new file mode 100644
index 0000000000..5deacff665
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/devsw.9
@@ -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
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/devtoname.9 b/documentation/manual-pages/ja/man9/devtoname.9
new file mode 100644
index 0000000000..c2164f2403
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/devtoname.9
@@ -0,0 +1,57 @@
+.\" Copyright (c) 1999 Chris Costello
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/devtoname.9,v 1.8 2003/10/23 01:54:06 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd September 25, 1999
+.Os
+.Dt DEVTONAME 9
+.Sh 名称
+.Nm devtoname
+.Nd dev_t データをデバイス名を示す文字列に変換
+.Sh 書式
+.In sys/param.h
+.In sys/conf.h
+.Ft const char *
+.Fn devtoname "dev_t dev"
+.Sh 解説
+.Fn devtoname
+関数は、渡されたデバイスの名前へのポインタを返します。
+名前は
+.Fn make_dev
+で設定されたものです。
+.Va dev
+に関連付けられた名前が無い場合には、
+.Dq #
+とそれに続く
+.Va dev
+に割り当てられている
+.Dq Va メジャー Ns / Ns Va マイナ番号
+で構成される文字列へのポインタが返されます。
+.Sh 歴史
+.Fn devtoname
+インタフェースは
+.Fx 4.0
+で初めて登場しました。
diff --git a/documentation/manual-pages/ja/man9/driver.9 b/documentation/manual-pages/ja/man9/driver.9
new file mode 100644
index 0000000000..696dcffc24
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/driver.9
@@ -0,0 +1,114 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1998 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/driver.9,v 1.10 2003/10/23 01:54:06 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1998
+.Dt DRIVER 9
+.Os
+.Sh 名称
+.Nm driver
+.Nd デバイスドライバを記述する構造体
+.Sh 書式
+.Bd -literal
+#include <sys/param.h>
+#include <sys/bus.h>
+
+static int foo_probe(device_t);
+static int foo_attach(device_t);
+static int foo_detach(device_t);
+static int foo_frob(device_t, int, int);
+static int foo_twiddle(device_t, char *);
+
+static struct device_method_t foo_methods[] = {
+ /* デバイスインタフェースからのメソッド */
+ DEVMETHOD(device_probe, foo_probe),
+ DEVMETHOD(device_attach, foo_attach),
+ DEVMETHOD(device_detach, foo_detach),
+
+ /* bogo インタフェースからのメソッド */
+ DEVMETHOD(bogo_frob, foo_frob),
+ DEVMETHOD(bogo_twiddle, foo_twiddle),
+
+ /* メソッドリストの終端 */
+ { 0, 0 }
+};
+
+static driver_t foo_driver {
+ "foo",
+ foo_methods,
+ sizeof(struct foo_softc)
+};
+
+static devclass_t foo_devclass;
+
+DRIVER_MODULE(foo, bogo, foo_driver, foo_devclass, 0, 0);
+.Ed
+.Sh 解説
+カーネルの中の個々のドライバは
+.Dv driver_t
+構造体によって記述されます。
+この構造体はデバイスの名称、メソッドのリストへのポインタ、
+ドライバが実装したデバイスの種類の表示、
+およびドライバがデバイスインスタンスに関連付けるために必要な私的データの大きさ
+を含んでいます。
+各々のドライバは 1 つ以上の (インタフェースと呼ばれる) メソッドの組を
+実装します。
+上記の例のドライバは標準の "driver" インタフェースと
+仮想的な "bogo" インタフェースを実装しています。
+.Pp
+ドライバが (
+.Dv DRIVER_MODULE
+マクロによって、
+.Xr DRIVER_MODULE 9
+を参照) システムに登録される時に、
+その親のバスタイプの devclass の中に含まれている
+ドライバのリストに追加されます。
+例えば、全ての PCI ドライバは "pci" と名付けられた devclass に含まれ、
+全ての ISA ドライバは "isa" と名付けられた devclass に含まれます。
+ドライバが親のバスのデバイスオブジェクトの中に保持されない理由は、
+与えられたバスのタイプの複数のインスタンスを取り扱うためです。
+.Dv DRIVER_MODULE
+マクロはそのドライバの名前の devclass も生成します。
+最後の 2 つの引数として追加のモジュールイベントハンドラとその引数を
+与えることによって、
+オプションでドライバの追加の初期化コードを呼び出すことができます。
+.Sh 関連項目
+.Xr devclass 9 ,
+.Xr device 9 ,
+.Xr DEVICE_ATTACH 9 ,
+.Xr DEVICE_DETACH 9 ,
+.Xr DEVICE_IDENTIFY 9 ,
+.Xr DEVICE_PROBE 9 ,
+.Xr DEVICE_SHUTDOWN 9 ,
+.Xr DRIVER_MODULE 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/extattr.9 b/documentation/manual-pages/ja/man9/extattr.9
new file mode 100644
index 0000000000..45bb20729f
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/extattr.9
@@ -0,0 +1,101 @@
+.\"-
+.\" Copyright (c) 1999, 2000, 2001, 2003 Robert N. M. Watson
+.\" 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/extattr.9,v 1.14 2003/10/23 02:33:03 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd December 23, 1999
+.Os
+.Dt EXTATTR 9
+.Sh 名称
+.Nm extattr
+.Nd 仮想ファイルシステムの名前付き拡張属性
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.In sys/extattr.h
+.Sh 解説
+名前付き拡張属性は、ファイルまたはディレクトリを表現する vnode に
+追加のメタデータを関連付けることを可能にします。
+この追加のデータのセマンティクスは、"name=value" ("名前=値") のペアで、
+名前は定義されても定義されなくても良く、定義されていれば、0 バイト以上の
+任意のバイナリデータに関連付けられます。
+拡張属性の名前は名前空間の集合の中に存在します。
+拡張属性上の個々の操作は、操作を参照するために名前空間を供給することが
+要求されています。
+複数の名前空間の中に同じ名前が存在する場合には、その名前に関連付けられた
+拡張属性は、独立して格納され、操作されます。
+次の 2 つの名前空間が普遍的に定義されていますが、個々のファイルシステムは
+追加の名前空間を実装することが可能で、またこれら
+.Dv EXTATTR_NAMESPACE_USER ,
+.Dv EXTATTR_NAMESPACE_SYSTEM
+の名前空間を実装しないことも可能です。
+これらの属性のセマンティクスは以下を意図しています。
+ユーザ属性データは、ファイルまたはディレクトリの中のデータに関連付けられた
+通常の任意および必須の保護によって、保護されます。
+システム属性データは、これらの属性への直接的なアクセスまたは操作には
+適切な特権が要求されることによって、保護されます。
+.Pp
+拡張属性データの読み込みは、
+.Xr VOP_READ 9
+の形式で、明示されたメタデータの連続した領域を返します。
+一方、書込みは、
+与えられた名前に関連付けられた現在の "値" 全体が置き換えられます。
+拡張属性の違いを持つファイルシステムが過多にあります。
+このため、これらの関数は、利用可能性および機能性は制限されるかもしれませんし、
+サポートするファイルシステムの基本的なセマンティクスを意識して
+使用するべきです。
+拡張属性データのための権限を与える機構は、
+ファイルシステムによって異なります。
+これは、属性の最大の大きさや、
+任意または特定の新規属性を定義可能か否かも同様です。
+.Pp
+拡張属性は、ヌルで終端された文字列を使用して名前付けされます。
+名前は大文字と小文字を区別するかもしれませんし、しないかもしれませんが、
+これは潜在的なファイルシステムのセマンティクスに依存します。
+適切な vnode 拡張属性の呼び出しは、
+.Xr VOP_GETEXTATTR 9 ,
+.Xr VOP_LISTEXTATTR 9 ,
+および
+.Xr VOP_SETEXTATTR 9
+です。
+.Sh 関連項目
+.Xr VFS 9 ,
+.Xr VFS_EXTATTRCTL 9 ,
+.Xr VOP_GETEXTATTR 9 ,
+.Xr VOP_LISTEXTATTR 9 ,
+.Xr VOP_SETEXTATTR 9
+.Sh 作者
+このマニュアルページは
+.An Robert Watson
+が書きました。
+.Sh バグ
+加えて、このインタフェースは現在の利用可能な属性の組を取り出す仕組みを
+提供していません。
+既に、
+.Dv NULL
+の属性名を与えることで、渡されたファイルまたはディレクトリのための
+定義された属性のリストをもたらすべきであると提案されていますが、
+現在は実装されていません。
diff --git a/documentation/manual-pages/ja/man9/fetch.9 b/documentation/manual-pages/ja/man9/fetch.9
new file mode 100644
index 0000000000..dd0cad3e82
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/fetch.9
@@ -0,0 +1,91 @@
+.\" %NetBSD: fetch.9,v 1.2 1996/01/09 21:59:24 perry Exp %
+.\"
+.\" Copyright (c) 1996 Jason R. Thorpe.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed by Kenneth Stailey.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed for the NetBSD Project
+.\" by Jason R. Thorpe.
+.\" 4. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/fetch.9,v 1.10 2001/10/01 16:09:24 ru Exp %
+.\" $FreeBSD$
+.\"
+.Dd January 7, 1996
+.Dt FETCH 9
+.Os
+.Sh 名称
+.Nm fetch ,
+.Nm fubyte ,
+.Nm fusword ,
+.Nm fuswintr ,
+.Nm fuword
+.Nd ユーザ空間からのデータの取り出し
+.Sh 書式
+.In sys/types.h
+.In sys/time.h
+.In sys/systm.h
+.In sys/resourcevar.h
+.Ft int
+.Fn fubyte "const void *base"
+.Ft int
+.Fn fusword "void *base"
+.Ft int
+.Fn fuswintr "void *base"
+.Ft long
+.Fn fuword "const void *base"
+.Sh 解説
+.Nm
+関数群はユーザ空間から小さなデータをコピーするようにデザインされています。
+.Pp
+.Nm
+ルーチンは以下の機能を提供します。
+.Bl -tag -width "fuswintr()"
+.It Fn fubyte
+ユーザ空間のアドレス
+.Pa base
+から 1 バイトのデータを取り出します。
+.It Fn fusword
+ユーザ空間のアドレス
+.Pa base
+から 1 ショートワードのデータを取り出します。
+.It Fn fuswintr
+ユーザ空間のアドレス
+.Pa base
+から 1 ショートワードデータを取り出します。
+この関数は割り込みコンテキスト中でも安全に呼び出せます。
+.It Fn fuword
+ユーザ空間のアドレス
+.Pa base
+から 1 ワードのデータを取り出します。
+.El
+.Sh 戻り値
+.Nm
+関数は取り出したデータを返しますが、失敗した場合は -1 を返します。
+.Sh 関連項目
+.Xr copy 9 ,
+.Xr store 9
diff --git a/documentation/manual-pages/ja/man9/groupmember.9 b/documentation/manual-pages/ja/man9/groupmember.9
new file mode 100644
index 0000000000..6cb6e5003d
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/groupmember.9
@@ -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
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/inittodr.9 b/documentation/manual-pages/ja/man9/inittodr.9
new file mode 100644
index 0000000000..e287addc3a
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/inittodr.9
@@ -0,0 +1,117 @@
+.\" %NetBSD: inittodr.9,v 1.2 1996/03/27 21:16:06 jtc Exp %
+.\"
+.\" Copyright (c) 1994 Christopher G. Demetriou
+.\" 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.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by Christopher G. Demetriou
+.\" for the NetBSD Project.
+.\" 3. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/inittodr.9,v 1.11 2003/10/23 02:33:03 hmp Exp %
+.\" $FreeBSD$
+.\"
+.Dd March 22, 1997
+.Dt INITTODR 9
+.Os
+.Sh 名称
+.Nm inittodr
+.Nd システムタイムの初期化
+.Sh 書式
+.In sys/types.h
+.In sys/systm.h
+.Ft void
+.Fn inittodr "time_t base"
+.Sh 解説
+.Fn inittodr
+関数は時刻を決定しシステムクロックの設定を行います。
+システムのバッテリバックアップクロックおよび
+.Fa base
+で与えられるルートファイルシステムから得られる時刻
+を検査する発見方法を使用して正しい時刻の取得を試みます。
+.Fa base
+の値を得る方法は、ルートファイルシステムのタイプに依存して変化するでしょう。
+下記の発見方法が使用されます。
+.Bl -bullet
+.It
+バッテリバックアップクロックが妥当な時刻であれば、これが使用されます。
+.\" .It
+.\" If the battery-backed clock does not have a valid time, and
+.\" the time provided in
+.\" .Fa base
+.\" is within reason,
+.\" .Fa base
+.\" is used as the current time.
+.\" .It
+.\" If the battery-backed clock appears invalid, and
+.\" .Fa base
+.\" appears non-sensical or was not provided (was given as zero),
+.\" a arbitrary base (typically some time in the late 1970s)
+.\" will be used.
+.It
+バッテリバックアップクロックが妥当な時刻でなければ、
+.Fa base
+で与えられた時刻が使用されます。
+.El
+.Pp
+一度システムタイムが決定されると、これが
+.Va time
+変数に格納されます。
+.Sh 診断
+システムタイムの計算に問題があった場合は、
+.Fn inittodr
+関数は診断メッセージを出力します。
+出力される診断メッセージには下記の状態が含まれます。
+.Bl -bullet
+.It
+バッテリバックアップクロックが無意味のようである。
+.\" .It
+.\" The
+.\" .Fa base
+.\" time appears nonsensical.
+.\" .It
+.\" The
+.\" .Fa base
+.\" time and the battery-backed clock's time differ by a large amount.
+.El
+.Sh 関連項目
+.Xr resettodr 9 ,
+.Xr time 9
+.Sh バグ
+多くのシステムで
+.Fn inittodr
+は、
+年、月、日、時、分、秒で表現される時刻から、秒で表現される
+.Va time
+に変換しなければなりません。
+多くの実装ではコードの共有が可能ですが、共有していません。
+.Pp
+それぞれのシステムの正確な時刻取得のための発見方法は、わずかに異なります。
+.Pp
+.Fx
+の実装は、
+バッテリバックアップクロックを使用できない場合は、
+.Fa base
+で与えられた時刻をもっとうまく検証するべきでしょう。
+現在は無条件にシステムタイムをこの値に設定します。
diff --git a/documentation/manual-pages/ja/man9/intro.9 b/documentation/manual-pages/ja/man9/intro.9
new file mode 100644
index 0000000000..6716bd0ccd
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/intro.9
@@ -0,0 +1,112 @@
+.\" Copyright (c) 1983, 1991, 1993
+.\" The Regents of the University of California. 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.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the University of
+.\" California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/intro.9,v 1.15 2001/07/14 19:41:16 schweikh Exp %
+.\"
+.\" $FreeBSD$
+.Dd December 13, 1995
+.Dt INTRO 9
+.Os
+.Sh 名称
+.Nm intro
+.Nd システムカーネルインタフェースの紹介
+.Sh 解説
+このセクションはカーネル内のインタフェースとサブルーチンについての
+情報を含んでいます。
+.Sh ANSI-C 等のプロトタイプ
+お願いします。
+.Pp
+我々は全てのコードが完全にプロトタイプされていることを望みます。
+.Pp
+あなたのコードが
+.Nm cc
+.Ar -Wall
+とした時にきれいにコンパイルできれば、我々は嬉しく思います。
+これは
+.Nm cc
+を黙らせることが問題ではなく、
+苦情の原因事象を避けることが問題であるということを理解することが重要です。
+遠慮なしに言うと、キャストや他の不明瞭化する手法で問題を隠すのではなく、
+問題を解決してください。
+.Sh インデントとスタイル
+それを信用するかどうかは別として、
+インデントとスタイルについてのガイドが現に存在します。
+けれども広くは適用されていません。
+.Pp
+人々がそれに注意を払い、少なくとも露骨に違反しないならば、
+我々はそれを認めるでしょう。
+.Pp
+我々はあまりにもひどくない限り、あなたの独自のスタイルを気にしませんが、
+必ず我々にも読めるようにしてください。
+.Pp
+更に情報を得るために
+.Xr style 9
+を読む時間を取ってください。
+.Sh 命名規則
+幾つかの一般的な規則があります。
+.Bl -enum
+.It
+ある関数が DDB でのデバッグ支援を意図したものであるならば、
+それは下記のように囲まれるべきです。
+.Bd -literal -offset indent
+#ifdef DDB
+
+#endif /* DDB */
+.Ed
+.Pp
+加えて、関数の名前は、それがデバッガルーチンであることが明確にわかるように、
+.Li DDB_
+を接頭辞として始めるべきです。
+.El
+.Sh シンボルのスコープ
+カーネル内のシンボルのスコープは注意深く考慮することが重要です。
+何らかの理由でそう出来ない場合以外は、デフォルトでは全てを static にします。
+.Pp
+この方針には幾つかの理由があります。
+主な理由は、カーネルは単一の名前空間であることと、
+ここでは名前空間の汚染もあまり名案ではないということです。
+.Pp
+デバイスドライバと
+カーネルに新しい内部のインタフェースを追加しないモジュールでは、
+可能であるならば全てのソースコードが一つのファイルであるべきです。
+それは全てのシンボルを static にできる方法であるからです。
+.Pp
+何らかの理由によりモジュールが複数のファイルに分割される場合には、
+大きな境界線に沿ってそのモジュールを分割するよう努力して、
+グローバルなシンボルの数を手引にして熟考してください。
+少ない方が好ましいです。
+.Sh 関連項目
+.Xr style 9
+.Sh 歴史
+.Nm
+セクションのマニュアルページは
+.Fx 2.2
+で登場しました。
diff --git a/documentation/manual-pages/ja/man9/kernacc.9 b/documentation/manual-pages/ja/man9/kernacc.9
new file mode 100644
index 0000000000..60d17a3a16
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/kernacc.9
@@ -0,0 +1,91 @@
+.\" %NetBSD: access.9,v 1.1 1996/06/16 10:38:35 pk Exp %
+.\"
+.\" Copyright (c) 1996 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Paul Kranenburg.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the NetBSD
+.\" Foundation, Inc. and its contributors.
+.\" 4. Neither the name of The NetBSD Foundation nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/kernacc.9,v 1.13 2003/01/21 11:34:57 alfred Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 16, 1996
+.Dt KERNACC 9
+.Os
+.Sh 名称
+.Nm kernacc ,
+.Nm useracc
+.Nd メモリ領域がアクセス可能か否かの調査
+.Sh 書式
+.In sys/param.h
+.In sys/proc.h
+.In vm/vm.h
+.In vm/vm_extern.h
+.Ft int
+.Fn kernacc "void *addr" "int len" "int rw"
+.Ft int
+.Fn useracc "void *addr" "int len" "int rw"
+.Sh 解説
+.Fn kernacc
+および
+.Fn useracc
+関数は、
+.Fa addr
+および
+.Fa len
+によって与えられる仮想アドレス範囲で、
+.Fa rw
+で指定された操作のタイプが許可されるかどうかを調査します。
+.Fa rw
+の指定可能な値は、
+.Dv VM_PROT_READ ,
+.Dv VM_PROT_WRITE
+および
+.Dv VM_PROT_EXECUTE
+の論理合成値です。
+.Fn kernacc
+はカーネルアドレス空間の中のアドレスを調べ、一方
+.Fn useracc
+は
+.Fa addr
+をユーザ空間のアドレス表現とみなします。
+この操作に使用されるプロセスコンテキストは大域変数
+.Va curproc
+から得られます。
+.Sh 戻り値
+どちらの関数も、
+.Fa rw
+によって指定されるタイプのアクセスが許可されている場合には、
+ブール値 true を返します。
+そうでない場合には、ブール値 false が返されます。
+.Sh バグ
+.Fn useracc
+への引数として、プロセスへのポインタが渡されるべきです。
diff --git a/documentation/manual-pages/ja/man9/lock.9 b/documentation/manual-pages/ja/man9/lock.9
new file mode 100644
index 0000000000..8efa1643f8
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/lock.9
@@ -0,0 +1,280 @@
+.\"
+.\" Copyright (C) 2002 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/lock.9,v 1.11 2003/09/08 19:57:21 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 9, 2001
+.Dt LOCK 9
+.Os
+.Sh 名称
+.Nm lockinit ,
+.Nm lockdestroy ,
+.Nm lockcount ,
+.Nm lockmgr ,
+.Nm lockstatus ,
+.Nm lockmgr_printinfo
+.Nd lockmgr ファミリの関数
+.Sh 書式
+.In sys/types.h
+.In sys/lockmgr.h
+.Ft void
+.Fn lockinit "struct lock *lkp" "int prio" "const char *wmesg" "int timo" "int flags"
+.Ft void
+.Fn lockdestroy "struct lock *lkp"
+.Ft int
+.Fn lockcount "struct lock *lkp"
+.Ft int
+.Fn lockmgr "struct lock *lkp" "u_int flags" "struct mtx *interlkp" "struct thread *td"
+.Ft int
+.Fn lockstatus "struct lock *lkp" "struct thread *td"
+.Ft void
+.Fn lockmgr_printinfo "struct lock *lkp"
+.Sh 解説
+.Fn lockinit
+関数はロックを初期化するために使用されます。
+これはロックに関する実行されることが可能なあらゆる操作の前に、
+呼び出されなければなりません。
+引数は以下の通りです。
+.Bl -tag -width ".Fa wmesg"
+.It Fa lkp
+初期化されるべきロックへのポインタです。
+.It Fa prio
+.Xr msleep 9
+に渡される優先度です。
+.It Fa wmesg
+ロックのメッセージです。
+これはデバッグ出力と
+.Xr msleep 9
+の両方のために使用されます。
+.It Fa timo
+.Xr msleep 9
+に渡されるタイムアウト値です。
+.It Fa flags
+ロックを初期化するために使用されるべきフラグです。
+.Bl -tag -width ".Dv LG_CANRECURSE"
+.It Dv LK_NOWAIT
+ロックを獲得するとき、スリープしません。
+.It Dv LK_SLEEPFAIL
+スリープした後に失敗します。
+.It Dv LK_CANRECURSE
+再帰的な排他ロックを許可します。
+.It Dv LK_REENABLE
+ロックをドレインした後、そのロックを再度有効化します。
+.It Dv LK_NOPAUSE
+ロックを獲得するとき、スピンロックを使用しません。
+.It Dv LK_TIMELOCK
+スリープしている間
+.Fa timo
+を使用します。そうでなければ 0 が使用されます。
+.El
+.El
+.Pp
+.Fn lockdestroy
+関数はロックを破壊するために使用され、カーネル内のいくつかの場所で
+呼び出されますが、現在は何もしません。
+.Pp
+.Fn lockcount
+関数はロック
+.Fa lkp
+に対する排他ロックと共有ロックのカウント数を返します。
+.Pp
+.Fn lockmgr
+関数は共有ロックと排他ロックおよび再帰のサポートを含む、
+カーネル内部の一般的なロック機能を取り扱います。
+.Fn lockmgr
+はロックのアップグレードとダウングレードも可能です。
+.Pp
+引数は以下の通りです。
+.Bl -tag -width ".Fa interlkp"
+.It Fa lkp
+操作するべきロックへのポインタです。
+.It Fa flags
+行なわれるべき操作を示しているフラグです。
+.Bl -tag -width ".Dv LK_EXCLUPGRADE"
+.It Dv LK_SHARED
+共有ロックを獲得します。
+現在排他ロックが保持されている場合には、ダウングレードされます。
+.It Dv LK_EXCLUSIVE
+排他ロックを獲得します。
+既に排他ロックが保持されていて、
+.Dv LK_CANRECURSE
+が設定されていない場合には、システムは
+.Xr panic 9
+します。
+.It Dv LK_DOWNGRADE
+排他ロックから共有ロックにダウングレードします。
+共有ロックのダウングレードは許可されていません。
+排他ロックが既に再帰している場合には、全ての参照がダウングレードされます。
+.It Dv LK_EXCLUPGRADE
+共有ロックから排他ロックにアップグレードします。
+他の誰かが先にアップグレードを待っている最中の場合には、
+.Er EBUSY
+で失敗します。
+この呼び出しが失敗した場合には、その共有ロックは失われます。
+排他ロックのアップグレードの試みは
+.Xr panic 9
+を引き起こします。
+.It Dv LK_UPGRADE
+共有ロックから排他ロックにアップグレードします。
+この呼び出しが失敗した場合には、その共有ロックは失われます。
+排他ロックのアップグレードの試みは
+.Xr panic 9
+を引き起こします。
+.It Dv LK_RELEASE
+ロックを解放します。
+保持していないロックの解放は、
+.Xr panic 9
+を引き起こすことがあります。
+.It Dv LK_DRAIN
+ロック上の全ての行動の終了を待ち、それから役割を終えた印を付けます。
+今にも解放されようとしているメモリの一部分のロックを解放する前に使用されます。
+.In ( sys/lockmgr.h
+に解説されています。)
+.It Dv LK_SLEEPFAIL
+操作がスリープした場合には、失敗します。
+.It Dv LK_NOWAIT
+この呼び出しがスリープすることを認めません。
+これはロックをテストするために使用することが可能です。
+.It Dv LK_CANRECURSE
+排他ロック上の再帰を認めます。
+それぞれのロックに対し、解放が存在しなければなりません。
+.It Dv LK_INTERLOCK
+(既にロックされているべき) 相互ロックをロック解除します。
+.El
+.It Fa interlkp
+ロックへのグループアクセスを制御するための相互ロック mutex です。
+.Dv LK_INTERLOCK
+が指定された場合には、
+.Fn lockmgr
+は
+.Fa interlkp
+は現在所有されていて再帰していないと仮定し、ロック解除されて返します。
+.Xr mtx_assert 9
+を参照してください。
+.It Fa td
+この呼び出しに責任があるレッドです。
+.Dv NULL
+は
+.Dv LK_KERNPROC
+になります。
+.El
+.Pp
+.Fn lockstatus
+関数は渡された
+.Vt thread
+に関するロックの状態を返します。
+.Fa td
+が
+.Dv NULL
+で排他ロックが保持されている場合には、
+.Dv LK_EXCLUSIVE
+が返されます。
+.Pp
+.Fn lockmgr_printinfo
+関数はロックについてのデバッグ情報を出力します。
+これは主に
+.Xr VOP_PRINT 9
+関数によって使用されます。
+.Sh 戻り値
+.Fn lockcount
+関数は 0 以上の整数を返します。
+.Pp
+.Fn lockmgr
+関数は成功時には 0 を、失敗時には 0 ではない値を返します。
+.Pp
+.Fn lockstatus
+関数は以下の値を返します。
+.Bl -tag -width ".Dv LK_EXCLUSIVE"
+.It Dv LK_EXCLUSIVE
+スレッド
+.Fa td
+によって排他ロックが保持されています。
+.It Dv LK_EXCLOTHER
+スレッド
+.Fa td
+ではない他の誰かによって排他ロックが保持されています。
+.It Dv LK_SHARED
+共有ロックが保持されています。
+.It Li 0
+だれもロックを保持していません。
+.El
+.Sh エラー
+.Fn lockmgr
+は次の場合に失敗します。
+.Bl -tag -width Er
+.It Bq Er EBUSY
+.Dv LK_FORCEUPGRADE
+が要求されて、ほかのスレッドが既にロックのアップグレードを要求しています。
+.It Bq Er EBUSY
+.Dv LK_NOWAIT
+が設定されて、スリープが要求されていました。
+.It Bq Er ENOLCK
+.Dv LK_SLEEPFAIL
+が設定されて、
+.Fn lockmgr
+は既にスリープしました。
+.It Bq Er EINTR
+ロックの優先度に
+.Dv PCATCH
+が設定されて、スリープしている間にシグナルが配送されました。
+下記の
+.Er ERESTART
+エラーに注意してください。
+.It Bq Er ERESTART
+ロックの優先度に
+.Dv PCATCH
+が設定されて、スリープしている間にシグナルが配送され、システムコールが
+再スタートされました。
+.It Bq Er EWOULDBLOCK
+0 でないタイムアウトが与えられ、そのタイムアウトが満了しました。
+.El
+.Sh ロック
+.Fn lockmgr
+への
+.Fa flags
+引数に
+.Dv LK_INTERLOCK
+が渡された場合には、
+.Fa interlkp
+は
+.Fn lockmgr
+を呼び出すために以前に保持されていなければならず、ロック解除されて返されます。
+.Pp
+失敗するアップグレードの試みは、現在保持しているロックを失わせる
+結果になります。
+また、排他ロックのアップグレードは無効で、試行の結果として
+.Xr panic 9
+を引き起こします。
+.Sh 関連項目
+.Xr msleep 9 ,
+.Xr mtx_assert 9 ,
+.Xr panic 9 ,
+.Xr VOP_PRINT 9
+.Sh 作者
+このマニュアルページは
+.An Chad David Aq davidc@acns.ab.ca
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/make_dev.9 b/documentation/manual-pages/ja/man9/make_dev.9
new file mode 100644
index 0000000000..bb1ba97c3f
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/make_dev.9
@@ -0,0 +1,139 @@
+.\" Copyright (c) 1999 Chris Costello
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/make_dev.9,v 1.15.4.1 2005/03/31 14:20:12 brueffer Exp %
+.\"
+.\" $FreeBSD$
+.Dd March 28, 2005
+.Os
+.Dt MAKE_DEV 9
+.Sh 名称
+.Nm make_dev ,
+.Nm make_dev_alias ,
+.Nm destroy_dev ,
+.Nm dev_depends
+.Nd デバイスのための
+.Vt cdev
+および DEVFS 登録の管理
+.Sh 書式
+.In sys/param.h
+.In sys/conf.h
+.Ft struct cdev
+.Fn make_dev "struct cdevsw *cdevsw" "int minor" "uid_t uid" "gid_t gid" "int perms" "const char *fmt" ...
+.Ft struct cdev
+.Fn make_dev_alias "struct cdev pdev" "const char *fmt" ...
+.Ft void
+.Fn destroy_dev "struct cdev dev"
+.Ft void
+.Fn dev_depends "struct cdev pdev" "struct cdev cdev"
+.Sh 解説
+.Fn make_dev
+関数は新しいデバイスのための
+.Fa cdev
+構造体を作成します。
+DEVFS が利用可能の場合には、新しいデバイスの存在も通知されます。
+そのデバイスは
+.Va uid
+によって所有され、
+.Va gid
+のグループに所有され、
+.Va name
+で指定される名前を持ちます。
+.Va perms
+に指定するファイルのパーミッションは
+.In sys/stat.h
+で定義されています。
+.Pp
+.Bd -literal -offset indent -compact
+#define S_IRWXU 0000700 /* 所有者の RWX マスク
+#define S_IRUSR 0000400 /* 所有者の R */
+#define S_IWUSR 0000200 /* 所有者の W */
+#define S_IXUSR 0000100 /* 所有者の X */
+
+#define S_IRWXG 0000070 /* グループの RWX マスク */
+#define S_IRGRP 0000040 /* グループの R */
+#define S_IWGRP 0000020 /* グループの W */
+#define S_IXGRP 0000010 /* グループの X */
+
+#define S_IRWXO 0000007 /* その他の RWX マスク */
+#define S_IROTH 0000004 /* その他の R */
+#define S_IWOTH 0000002 /* その他の W */
+#define S_IXOTH 0000001 /* その他の X */
+
+#define S_ISUID 0004000 /* 実行時にユーザ ID を設定 */
+#define S_ISGID 0002000 /* 実行時にグループ ID を設定 */
+#define S_ISVTX 0001000 /* スティッキビット */
+#ifndef _POSIX_SOURCE
+#define S_ISTXT 0001000
+#endif
+.Ed
+.Pp
+.Fn make_dev_alias
+関数は
+.Fn make_dev
+から返された
+.Ft cdev
+をとり、このデバイスのための別の名前 (別名) を作成します。
+.Fn make_dev
+の呼出しの前の
+.Fn make_dev_alias
+の呼出しは、誤りです。
+.Pp
+.Fn destroy_dev
+関数は
+.Fn make_dev
+から返された
+.Fa cdev
+をとり、そのデバイスの登録を削除します。
+.Fn make_dev_alias
+で作成されたデバイスで
+.Fn destroy_dev
+を呼出さないでください。
+.Pp
+.Fn dev_depends
+関数は 2 つのデバイス間の親子関係を確立します。
+このネット効果は、親デバイスの
+.Fn destroy_dev
+は、もしあれば、結果としてその子デバイスの破壊に終わります。
+1 つのデバイスは同時に親にも子にもなれ、
+そのため、完全な階層構造を構築することが可能です。
+.Sh 関連項目
+.Xr devfs 5
+.Sh 歴史
+.Fn make_dev
+および
+.Fn destroy_dev
+関数は
+.Fx 4.0
+ではじめて登場しました。
+関数
+.Fn make_dev_alias
+は
+.Fx 4.1
+ではじめて登場しました。
+関数
+.Fn dev_depends
+は
+.Fx 5.0
+ではじめて登場しました。
diff --git a/documentation/manual-pages/ja/man9/malloc.9 b/documentation/manual-pages/ja/man9/malloc.9
new file mode 100644
index 0000000000..4720a58351
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/malloc.9
@@ -0,0 +1,304 @@
+.\" Copyright (c) 1996 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Paul Kranenburg.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the NetBSD
+.\" Foundation, Inc. and its contributors.
+.\" 4. Neither the name of The NetBSD Foundation nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" $NetBSD: malloc.9,v 1.3 1996/11/11 00:05:11 lukem Exp $
+.\" %FreeBSD: src/share/man/man9/malloc.9,v 1.40 2004/06/21 14:11:45 mpp Exp %
+.\" $FreeBSD$
+.\"
+.Dd June 12, 2003
+.Dt MALLOC 9
+.Os
+.Sh 名称
+.Nm malloc ,
+.Nm MALLOC ,
+.Nm free ,
+.Nm FREE ,
+.Nm realloc ,
+.Nm reallocf ,
+.Nm MALLOC_DEFINE ,
+.Nm MALLOC_DECLARE
+.Nd カーネルメモリマネージメントルーチン
+.Sh 書式
+.In sys/types.h
+.In sys/malloc.h
+.Ft void *
+.Fn malloc "unsigned long size" "struct malloc_type *type" "int flags"
+.Fn MALLOC space cast "unsigned long size" "struct malloc_type *type" "int flags"
+.Ft void
+.Fn free "void *addr" "struct malloc_type *type"
+.Fn FREE "void *addr" "struct malloc_type *type"
+.Ft void *
+.Fn realloc "void *addr" "unsigned long size" "struct malloc_type *type" "int flags"
+.Ft void *
+.Fn reallocf "void *addr" "unsigned long size" "struct malloc_type *type" "int flags"
+.Fn MALLOC_DECLARE type
+.In sys/param.h
+.In sys/malloc.h
+.In sys/kernel.h
+.Fn MALLOC_DEFINE type shortdesc longdesc
+.Sh 解説
+.Fn malloc
+関数はカーネルアドレス空間の初期化されていないメモリを
+.Fa size
+で指定された大きさの 1 つのオブジェクトとして割り当てます。
+.Pp
+.Fn free
+関数は
+.Fn malloc
+で先に割り当てられていた
+.Fa addr
+のアドレスのメモリを再使用するために解放します。
+メモリは 0 にクリアされません。
+.Fa addr
+が
+.Dv NULL
+の場合、
+.Fn free
+は何もしません。
+.Pp
+.Fn realloc
+関数は、以前に割り当てられて
+.Fa addr
+で参照されるメモリの大きさを
+.Fa size
+バイトに変更します。
+メモリの内容は、新サイズと旧サイズの小さい方までは、無変更となります。
+戻り値は
+.Fa addr
+と違うかもしれないことに注意してください。
+要求されたメモリが割り当て不能の場合、
+.Dv NULL
+が返され、
+.Fa addr
+で参照されるメモリは正当で無変更のままとなります。
+.Fa addr
+が
+.Dv NULL
+の場合、
+.Fn realloc
+関数は指定された大きさの
+.Fn malloc
+と同等に振舞います。
+.Pp
+.Fn reallocf
+関数は
+.Fn realloc
+とまったく同じですが、
+要求されたメモリを割り当て不能の場合に
+渡されたポインタのメモリを解放する点が違います。
+.Pp
+マクロ版の
+.Fn MALLOC
+は機能的には
+.Bd -literal -offset indent
+(space) = (cast)malloc((u_long)(size), type, flags)
+.Ed
+.Pp
+と同等で、
+マクロ版
+.Fn FREE
+は
+.Bd -literal -offset indent
+free((addr), type)
+.Ed
+.Pp
+と同等です。
+標準Cライブラリの同義関数
+.Pq Xr malloc 3
+とは異なり、カーネルバージョンは更に 2 つの引数をとります。
+引数
+.Fa flags
+は
+.Fn malloc
+の操作上の特性を以下のようにみなします。
+.Bl -tag -width indent
+.It Dv M_ZERO
+割り当てられたメモリが全て 0 で満たされるようにします。
+.It Dv M_NOWAIT
+リソースの不足のため直ちに要求を満たすことができない場合は、
+.Fn malloc ,
+.Fn realloc ,
+および
+.Fn reallocf
+が
+.Dv NULL
+を返すようにします。
+割り込みコンテキストでの動作時には
+.Dv M_NOWAIT
+が要求されることに注意してください。
+.It Dv M_WAITOK
+はリソースを待つことが OK であることを示します。
+この要求がすぐに満たされることが出来ない場合には、現在のプロセスは、
+他のプロセスによってリソースが開放されることを待つために、
+スリープ状態に置かれます。
+.Dv M_WAITOK
+が指定されると
+.Fn malloc ,
+.Fn realloc ,
+.Fn reallocf
+関数は
+.Dv NULL
+を返すことが出来ません。
+.It Dv M_USE_RESERVE
+要求されたメモリを獲得するために、
+システムがリザーブ領域を使ってよいことを示します。
+このオプションは以前は
+.Dv M_KERNEL
+と呼ばれていましたが、
+より明示的に改名されました。
+このオプションは軽視されていて、カーネルから徐々に削除されています。
+そのため、新たなプログラミングでは使用されない様にするべきです。
+.El
+.Pp
+厳密に
+.Dv M_WAITOK
+または
+.Dv M_NOWAIT
+のどちらかが指定されなければなりません。
+.Pp
+引数
+.Fa type
+はメモリの利用方法の統計をとるためと、
+簡単なサニティチェックのために使われています。
+これは複数の割り当てを識別するために使用することが可能です。
+この統計は
+.Sq vmstat -m
+で調べることが出来ます。
+.Pp
+.Fa type
+は
+.Fn MALLOC_DECLARE
+と
+.Fn MALLOC_DEFINE
+マクロを通じて
+.Vt "struct malloc_type"
+typedef を使用して定義されます。
+.Bd -literal -offset indent
+/* sys/something/foo_extern.h */
+
+MALLOC_DECLARE(M_FOOBUF);
+
+/* sys/something/foo_main.c */
+
+MALLOC_DEFINE(M_FOOBUF, "foobuffers",
+ "Buffers to foo data into the ether");
+
+/* sys/something/foo_subr.c */
+
+\&...
+
+MALLOC(buf, struct foo_buf *, sizeof *buf, M_FOOBUF, M_NOWAIT);
+.Ed
+.Pp
+.Fn MALLOC_DEFINE
+を使用するためには、
+.In sys/param.h
+.In ( sys/types.h
+の代わりに) および
+.In sys/kernel.h
+をインクルードしなければなりません。
+.Sh 戻り値
+.Fn malloc ,
+.Fn realloc ,
+.Fn reallocf
+関数はすべてのタイプのオブジェクトの格納に適切なように整列された
+カーネル仮想アドレスを返すか、
+または要求が満足できず (すなわち
+.Dv M_NOWAIT
+がセットされていることを意味します) に
+.Dv NULL
+を返します。
+.Sh 実装に関する注
+1 ページまでの要求に対し、
+メモリアロケータは、2 の累乗の大きさの量を割り当てます。
+より大きな要求に対しては、1 個以上のページが割り当てられます。
+この動作に依存してはなりませんが、
+この情報がメモリ使用効率の最適化に有用かもしれません。
+.Pp
+プログラマは malloc フラグの
+.Dv M_NOWAIT
+および
+.Dv M_WAITOK
+と、
+.Xr mbuf 9
+フラグの
+.Dv M_DONTWAIT
+および
+.Dv M_TRYWAIT
+を混乱しないように注意するべきです。
+.Sh コンテキスト
+.Fn malloc ,
+.Fn realloc
+および
+.Fn reallocf
+は高速割り込みハンドラから呼び出されることは出来ません。
+スレッド化された割り込みから呼び出される時には、
+.Fa flag
+は
+.Dv M_NOWAIT
+を含んでいなければなりません。
+.Pp
+.Va Giant
+ではない mutex が保持されている間は、
+.Fn malloc ,
+.Fn realloc
+および
+.Fn reallocf
+は
+.Dv M_WAITOK
+付きで呼び出したときにはスリープするかもしれません。
+.Fn free
+は決してスリープしません。
+.Pp
+.Xr vnode 9
+インタロックを保持している時の
+.Fn malloc
+.Dv ( M_NOWAIT
+付であっても) または
+.Fn free
+への全ての呼出しは、VM オブジェクトと vnode の相互のからみ合いのために、
+LOR (ロック順序の逆転) を引き起こします。
+.Sh 関連項目
+.Xr vmstat 8 ,
+.Xr contigmalloc 9 ,
+.Xr vnode 9
+.Sh 診断
+.Dv INVARIANTS
+コンフィギュレーションオプションを付けてコンパイルされたカーネルは、
+割り当てられた領域以外への書き込みや
+.Fn malloc
+関数と
+.Fn free
+関数の不均衡な呼び出しなどにより生じたメモリ不正の検出を試みます。
+一貫性チェックの失敗はパニックまたはシステムコンソールメッセージを出力します。
diff --git a/documentation/manual-pages/ja/man9/mi_switch.9 b/documentation/manual-pages/ja/man9/mi_switch.9
new file mode 100644
index 0000000000..e23031dd0a
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/mi_switch.9
@@ -0,0 +1,160 @@
+.\" $NetBSD: ctxsw.9,v 1.2 1996/12/02 00:11:31 tls Exp $
+.\"
+.\" Copyright (c) 1996 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Paul Kranenburg.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the NetBSD
+.\" Foundation, Inc. and its contributors.
+.\" 4. Neither the name of The NetBSD Foundation nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/mi_switch.9,v 1.18 2004/07/03 18:29:24 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd November 24, 1996
+.Dt MI_SWITCH 9
+.Os
+.Sh 名称
+.Nm mi_switch ,
+.Nm cpu_switch ,
+.Nm cpu_throw
+.Nd 別のスレッドコンテキストへのスイッチ
+.Sh 書式
+.In sys/param.h
+.In sys/proc.h
+.Ft void
+.Fn mi_switch "void"
+.Ft void
+.Fn cpu_switch "void"
+.Ft void
+.Fn cpu_throw "void"
+.Sh 解説
+.Fn mi_switch
+関数はマシン非依存なスレッドコンテキストスイッチの前処理を実装しています。
+横取り不可能なカーネルモード実行の方針の結果として、カーネル内の数少ない
+区別された場所からのみ呼び出されます。
+いくつかの主な
+.Nm
+の使用は以下に挙げられます。
+.Bl -enum -offset indent
+.It
+.Xr sleep 9 ,
+.Xr tsleep 9
+および
+.Xr msleep
+の中から、あるリソースが利用可能になるのを待つために
+現在のスレッドが自発的に CPU を放棄するとき。
+.It
+トラップ (例えば、システムコール、デバイス割り込み) の取り扱いの後で、
+カーネルがユーザモード実行のために戻る準備のとき。
+通常この場合は、現在のプロセスのシグナル配置の中の変化の検出の後で
+マシン依存のトラップハンドリングコードによって取り扱われるか、
+より高い優先度のスレッドが実行可能になったかもしれないときです。
+後者のイベントはマシン定義の
+.Fn need_resched
+の呼び出しによるマシン非依存のスケジューリングルーチンによって伝達されます。
+.It
+シグナルハンドラコード
+.Xr ( issignal 9
+を参照) の中で、プロセスを停止させるシグナルが届けられた場合。
+.It
+スレッドが
+.Xr thread_exit 9
+の中で終了し、プロセッサの制御が次の実行可能のスレッドに渡されることが
+可能なとき。
+.It
+.Xr thread_suspend_check 9
+中で、全体としてのプロセスの停止状態のために、
+スレッドが実行を停止する必要がある
+場合。
+.El
+.Pp
+.Fn mi_switch
+はプロセス構造体の中に現在のプロセスが実行された時間量を記録して、
+そのスレッドに割当てられている CPU の時間リミット
+.Xr ( getrlimit 2
+を参照) に照らしてこの値を検査します。
+ソフトリミットの超過はそのプロセスに
+.Dv SIGXCPU
+シグナルが配信される結果を招き、一方ハードリミットの超過は
+.Dv SIGKILL
+を引き起こします。
+これらの管理上の仕事が完了した後で、
+.Fn mi_switch
+は実際にプロセスコンテキストスイッチを行なうマシン依存ルーチン
+.Fn cpu_switch
+に制御を引き渡します。
+.Pp
+.Fn cpu_switch
+は優先度キューデータ構造において、
+実行準備のできているプロセスの中から選択します。
+優先度キューは、キュー先頭構造体である配列
+.Va qs[NQS]
+で構成されます。
+個々のキュー先頭構造体により、
+同じ優先度の実行可能なプロセスのリストを識別します
+.Fa ( <sys/proc.h>
+を参照)。
+単一の語
+.Va whichqs
+は、空ではないキューが分かるビットマスクを含み、
+素早くプロセスを選択することを助けます。
+.Fn cpu_switch
+は最も高い優先度を持つキュー上のリスト
+.Po Va qs
+の中の低いインデックスが高い優先度を示す
+.Pc
+から最初のプロセスを削除しなければならず、グローバル変数
+.Dv curproc
+にそのプロセス構造体のアドレスを割当てなければなりません。
+実行キュー上に利用可能なプロセスがない場合には、
+.Fn cpu_switch
+は
+.Dq idle
+ループに移行することになっています。
+idle ループは割り込みを許可する必要があります。
+これにより、やがてプロセスが実行キュー上に再び現れます。
+.Fn cpu_switch
+がこの発生を待っている間は変数
+.Va curproc
+は
+.Dv NULL
+であるべきです。
+.Pp
+.Fn mi_switch
+および当然
+.Fn cpu_switch
+は splhigh() で呼び出されるべきであることに注意してください。
+.Pp
+.Sh 関連項目
+.Xr issignal 9 ,
+.Xr spl 9 ,
+.Xr tsleep 9 ,
+.Xr wakeup 9
+.Pp
diff --git a/documentation/manual-pages/ja/man9/microseq.9 b/documentation/manual-pages/ja/man9/microseq.9
new file mode 100644
index 0000000000..bdb92ae381
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/microseq.9
@@ -0,0 +1,492 @@
+.\" Copyright (c) 1998, 1999, Nicolas Souchu
+.\" 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/microseq.9,v 1.18 2004/07/03 18:29:24 ru Exp %
+.\" $FreeBSD$
+.\"
+.Dd June 6, 1998
+.Dt MICROSEQ 9
+.Os
+.Sh 名称
+.Nm microseq
+.Nd ppbus マイクロシーケンサ開発者ガイド
+.Sh 書式
+.In sys/types.h
+.In dev/ppbus/ppbconf.h
+.In dev/ppbus/ppb_msq.h
+.Sh 解説
+ppbus の解説およびマイクロシーケンサについての一般的な情報は
+.Xr ppbus 4
+を参照してください。
+.Pp
+この文書の目的は以下を得るために、
+開発者がマイクロシーケンサ機構を使用するように支援することです。
+.Bl -enum -offset indent
+.It
+統一的なプログラミングモデル
+.It
+効率的なコード
+.El
+.Pp
+マイクロシーケンスを使用する前に、
+.Xr ppc 4
+マイクロシーケンサの実装および
+.Xr vpo 4
+の中のこれをどのように使用するかの例を見ることが、奨励されています。
+.Sh PPBUS レジスタモデル
+.Ss 背景
+ppbus のために選択されたパラレルポートモデルは PC パラレルポートモデルです。
+従って、後で解説されるあらゆるレジスタは、PC パラレルポートの対になるものと
+同じセマンティクスを持ちます。
+より多くの ISA/ECP プログラミングについての情報については、
+"Extended Capabilities Port Protocol and ISA interface Standard"
+として参照される Microsoft 標準を入手してください。
+後述するレジスタは標準のパラレルポートレジスタです。
+.Pp
+マスクマクロは、パラレルポートレジスタの個々の有効なビットのために
+標準 ppbus インクルードファイルの中で定義されています。
+.Ss データレジスタ
+コンパチブルモードまたはニブルモードでは、このレジスタへの書き込みは
+パラレルポートのデータ線へ出力されます。
+その他のモードでは、出力段は制御レジスタ内の方向ビット (PDC) の設定によって、
+トライステート (3 状態) になることができます。
+このレジスタへの読み込みはデータ線上の値を返します。
+.Ss デバイス状態レジスタ
+この読取り専用レジスタはパラレルポートインタフェース上の入力を反映します。
+.Pp
+.Bl -column "ビット" "名前" "解説" -compact
+.It Em ビット Ta Em 名前 Ta Em 解説
+.It 7 Ta nBUSY Ta "パラレルポートの Busy 信号の反転"
+.It 6 Ta nACK Ta "パラレルポートの nAck 信号"
+.It 5 Ta PERROR Ta "パラレルポートの PERROR 信号"
+.It 4 Ta SELECT Ta "パラレルポートの Select 信号"
+.It 3 Ta nFAULT Ta "パラレルポートの nFault 信号"
+.El
+.Pp
+その他は予約済みで、読込み時の結果は未定義です。
+.Ss デバイス制御レジスタ
+このレジスタは直接的に幾つかの機能の有効化はもちろん、
+幾つかの出力信号を制御します。
+.Pp
+.Bl -column "ビット" "名前 " "解説" -compact
+.It Em ビット Ta Em 名前 Ta Em 解説
+.It 5 Ta PCD Ta "拡張モード時の方向ビット"
+.It 4 Ta IRQENABLE Ta "1 で nAck の立ち上りで割り込み有効"
+.It 3 Ta SELECTIN Ta "パラレルポートの nSelect 信号の反転を出力"
+.It 2 Ta nINIT Ta "パラレルポートの nInit 信号を出力"
+.It 1 Ta AUTOFEED Ta "パラレルポートの nAutoFd 信号の反転を出力"
+.It 0 Ta STROBE Ta "パラレルポートの nStrobe 信号の反転を出力"
+.El
+.Sh マイクロインストラクション
+.Ss 解説
+.Em マイクロインストラクション
+はパラレルポートのアクセス、プログラムの繰り返し、サブマイクロシーケンス
+または C の呼び出しです。
+パラレルポートは
+.Xr ppbus 4
+で解説されている論理モデルとみなされなければなりません。
+.Pp
+利用可能なマイクロシーケンスは以下のとおりです。
+.Bd -literal
+#define MS_OP_GET 0 /* get <ptr>, <len> */
+#define MS_OP_PUT 1 /* put <ptr>, <len> */
+#define MS_OP_RFETCH 2 /* rfetch <reg>, <mask>, <ptr> */
+#define MS_OP_RSET 3 /* rset <reg>, <mask>, <mask> */
+#define MS_OP_RASSERT 4 /* rassert <reg>, <mask> */
+#define MS_OP_DELAY 5 /* delay <val> */
+#define MS_OP_SET 6 /* set <val> */
+#define MS_OP_DBRA 7 /* dbra <offset> */
+#define MS_OP_BRSET 8 /* brset <mask>, <offset> */
+#define MS_OP_BRCLEAR 9 /* brclear <mask>, <offset> */
+#define MS_OP_RET 10 /* ret <retcode> */
+#define MS_OP_C_CALL 11 /* c_call <function>, <parameter> */
+#define MS_OP_PTR 12 /* ptr <pointer> */
+#define MS_OP_ADELAY 13 /* adelay <val> */
+#define MS_OP_BRSTAT 14 /* brstat <mask>, <mask>, <offset> */
+#define MS_OP_SUBRET 15 /* subret <code> */
+#define MS_OP_CALL 16 /* call <microsequence> */
+#define MS_OP_RASSERT_P 17 /* rassert_p <iter>, <reg> */
+#define MS_OP_RFETCH_P 18 /* rfetch_p <iter>, <reg>, <mask> */
+#define MS_OP_TRIG 19 /* trigger <reg>, <len>, <array> */
+.Ed
+.Ss 実行コンテキスト
+マイクロインストラクションの
+.Em 実行コンテキスト
+は以下のとおりです。
+.Bl -bullet -offset indent
+.It
+メインのマイクロシーケンスの中またはサブコールの中の、実行するための
+次のマイクロインストラクションを指し示す
+.Em プログラムカウンタ
+.It
+送る/受け取るための次の文字を指し示す
+.Em ptr
+の現在の値
+.It
+内部の
+.Em 分岐レジスタ
+の現在の値
+.El
+.Pp
+このデータは全てではない幾つかのマイクロインストラクションによって
+変更されます。
+.Ss MS_OP_GET および MS_OP_PUT
+は定義済みの標準 IEEE1284-1994 転送またはプログラムされた非標準の
+入出力のいずれかを行なうために使用されるマイクロインストラクションです。
+.Ss MS_OP_RFETCH - レジスタ取得
+はパラレルポートレジスタの現在の値を取り出し、マスクを適用し、
+それをバッファに保存するために使用されます。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+レジスタ
+.It
+文字マスク
+.It
+バッファへのポインタ
+.El
+.Pp
+定義済みマクロ: MS_RFETCH(reg,mask,ptr)
+.Ss MS_OP_RSET - レジスタ設定
+は 2 つのマスクを適用された、個々のパラレルポートレジスタの幾つかの
+ビットをアサート/クリアするために使用されます。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+レジスタ
+.It
+アサートされるべきビットのマスク
+.It
+クリアされるべきビットのマスク
+.El
+.Pp
+定義済みマクロ: MS_RSET(reg,assert,clear)
+.Ss MS_OP_RASSERT - レジスタアサート
+は個々のパラレルポートレジスタの全てのビットをアサートするために使用されます。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+レジスタ
+.It
+アサートされるべきバイト
+.El
+.Pp
+定義済みマクロ: MS_RASSERT(reg,byte)
+.Ss MS_OP_DELAY - マイクロ秒の遅延
+はマイクロシーケンスの実行の遅延のために使用されます。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+マイクロ秒単位の遅延時間
+.El
+.Pp
+定義済みマクロ: MS_DELAY(delay)
+.Ss MS_OP_SET - 内部分岐レジスタの設定
+は内部の分岐レジスタの値を設定するために使用します。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+整数値
+.El
+.Pp
+定義済みマクロ: MS_SET(accum)
+.Ss MS_OP_DBRA - 分岐の実行
+は内部の分岐レジスタが 1 減らされた結果の値が正である場合に
+分岐するために使用されます。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+現在実行された (サブ) マイクロシーケンスの整数のオフセット。
+オフセットは次に実行されるマイクロインストラクションの
+インデックスに追加されます。
+.El
+.Pp
+定義済みマクロ: MS_DBRA(offset)
+.Ss MS_OP_BRSET - セット時に分岐
+はパラレルポートの状態レジスタのビットの幾つかがセットされている場合に
+分岐するために使用されます。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+状態レジスタのビット
+.It
+現在実行された (サブ) マイクロシーケンスの整数のオフセット。
+オフセットは次に実行されるマイクロインストラクションの
+インデックスに追加されます。
+.El
+.Pp
+定義済みマクロ: MS_BRSET(mask,offset)
+.Ss MS_OP_BRCLEAR - クリア時に分岐
+はパラレルポートの状態レジスタのビットの幾つかがクリアされている場合に
+分岐するために使用されます。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+状態レジスタのビット
+.It
+現在実行された (サブ) マイクロシーケンスの整数のオフセット。
+オフセットは次に実行されるマイクロインストラクションの
+インデックスに追加されます。
+.El
+.Pp
+定義済みマクロ: MS_BRCLEAR(mask,offset)
+.Ss MS_OP_RET - 戻る
+はマイクロシーケンスから戻るために使用されます。
+この関数は必須です。
+これはマイクロシーケンサがマイクロシーケンスの終わりを検出する唯一の方法です。
+ppb_MS_microseq() の (int *) パラメータによって指される整数に、
+リターンコードが返されます。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+整数のリターンコード
+.El
+.Pp
+定義済みマクロ: MS_RET(code)
+.Ss MS_OP_C_CALL - C 関数の呼び出し
+はマイクロシーケンスの実行から C 関数を呼び出すために使用されます。
+これはパラレルポートからデータ文字を取り出すために非標準の入出力が実行
+されるときに有用かもしれません。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+呼び出すべき C 関数
+.It
+関数呼び出しのために渡されるパラメータ
+.El
+.Pp
+C 関数は
+.Ft int(*)(void *p, char *ptr)
+と宣言されることになっています。
+ptr パラメータは現在走査されているバッファの中の現在位置です。
+.Pp
+定義済みマクロ: MS_C_CALL(func,param)
+.Ss MS_OP_PTR - 内部ポインタの初期化
+は現在走査されているバッファへの内部ポインタを初期化します。
+このポインタはあらゆる C 呼び出しに渡されます (上記を参照してください)。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+xxx_P() マイクロシーケンスの呼び出しによってアクセスされることになっている
+バッファへのポインタ。
+このポインタは xxx_P() 呼び出しの間自動的に増やされることに注意してください。
+.El
+.Pp
+定義済みマクロ: MS_PTR(ptr)
+.Ss MS_OP_ADELAY - 非同期遅延の実行
+はマイクロシーケンスの実行の間に tsleep() するために使用されます。
+この tsleep は PPBPRI レベルで実行されます。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+ミリ秒単位での遅延時間
+.El
+.Pp
+定義済みマクロ: MS_ADELAY(delay)
+.Ss MS_OP_BRSTAT - 状態による分岐
+は状態レジスタの状態で分岐するために使用されます。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+アサートされたビットのマスク。
+状態レジスタの中のアサートされるはずのビットがマスクにセットされます。
+.It
+クリアされたビットのマスク。
+状態レジスタの中のクリアされるはずのビットがマスクにセットされます。
+.It
+現在実行された (サブ) マイクロシーケンスの整数のオフセット。
+オフセットは次に実行されるマイクロインストラクションの
+インデックスに追加されます。
+.El
+.Pp
+定義済みマクロ: MS_BRSTAT(asserted_bits,clear_bits,offset)
+.Ss MS_OP_SUBRET - サブマイクロシーケンスから戻る
+はサブマイクロシーケンスの呼び出しから戻るために使用されます。
+この行動は RET の呼び出しの前に必須です。
+幾つかのマイクロインストラクション (PUT, GET) はサブマイクロシーケンスの
+内部では呼び出し可能ではないかもしれません。
+.Pp
+パラメータはありません。
+.Pp
+定義済みマクロ: MS_SUBRET()
+.Ss MS_OP_CALL - サブマイクロシーケンスの呼び出し
+はサブマイクロシーケンスを呼び出すために使用されます。
+サブマイクロシーケンスは SUBRET の呼び出しを伴なうマイクロシーケンスです。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+実行されるべきサブマイクロシーケンス
+.El
+.Pp
+定義済みマクロ: MS_CALL(microseq)
+.Ss MS_OP_RASSERT_P - 内部 PTR からレジスタへのアサート
+は内部の PTR ポインタによって現在指されているデータでレジスタを
+アサートするために使用されます。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+レジスタに書込むためのデータ量
+.It
+レジスタ
+.El
+.Pp
+定義済みマクロ: MS_RASSERT_P(iter,reg)
+.Ss MS_OP_RFETCH_P - 内部 PTR へのレジスタフェッチ
+はレジスタからデータを読込むために使用されます。
+データは内部の PTR ポインタによって現在指されているバッファに保存されます。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+レジスタから読込むためのデータ量
+.It
+レジスタ
+.It
+読込まれたデータに適用されるマスク
+.El
+.Pp
+定義済みマクロ: MS_RFETCH_P(iter,reg,mask)
+.Ss MS_OP_TRIG - レジスタのトリガ
+はパラレルポートをトリガするために使用されます。
+このマイクロインストラクションはパラレルポートのとても効率的な制御の
+提供を意図されています。
+レジスタのトリガはデータ書込み、少しウェイト、データ書込み、
+少しウェイト ... です。
+これはポートへマジックシーケンスを書込むことを可能にします。
+.Pp
+パラメータ:
+.Bl -enum -offset indent
+.It
+.\" 原文は読込まれる --- send-pr すべき?
+レジスタに書込まれるデータ量
+.It
+レジスタ
+.It
+配列の大きさ
+.It
+unsigned char の配列。
+個々の u_char の組はレジスタに書込むべきデータおよび
+マイクロ秒単位でのウェイトするべき遅延時間です。
+遅延時間は簡単化および配列の大きさの縮小のために 255 マイクロ秒までに
+制限されています。
+.El
+.Pp
+定義済みマクロ: MS_TRIG(reg,len,array)
+.Sh マイクロシーケンス
+.Ss C 構造体
+.Bd -literal
+union ppb_insarg {
+ int i;
+ char c;
+ void *p;
+ int (* f)(void *, char *);
+};
+
+struct ppb_microseq {
+ int opcode; /* マイクロインストラクション opcode */
+ union ppb_insarg arg[PPB_MS_MAXARGS]; /* 引数 */
+};
+.Ed
+.Ss マイクロシーケンスの使用
+マイクロシーケンスを実体化するためには、ppb_microseq 構造体の配列を
+宣言して必要に応じて初期化するだけです。
+定義済みのマクロまたは ppb_microseq の定義に従った独自の
+マイクロインストラクションのいずれかを使用できます。
+例えば、
+.Bd -literal
+ struct ppb_microseq select_microseq[] = {
+
+ /* パラメータリスト
+ */
+ #define SELECT_TARGET MS_PARAM(0, 1, MS_TYP_INT)
+ #define SELECT_INITIATOR MS_PARAM(3, 1, MS_TYP_INT)
+
+ /* 出力するための選択コマンドの送信 */
+ MS_DASS(MS_UNKNOWN),
+ MS_CASS(H_nAUTO | H_nSELIN | H_INIT | H_STROBE),
+ MS_CASS( H_AUTO | H_nSELIN | H_INIT | H_STROBE),
+ MS_DASS(MS_UNKNOWN),
+ MS_CASS( H_AUTO | H_nSELIN | H_nINIT | H_STROBE),
+
+ /* 出力の準備ができるまで待ちます */
+ MS_SET(VP0_SELTMO),
+/* loop: */ MS_BRSET(H_ACK, 2 /* ready */),
+ MS_DBRA(-2 /* loop */),
+/* error: */ MS_RET(1),
+/* ready: */ MS_RET(0)
+ };
+.Ed
+.Pp
+ここで、幾つかのパラメータが未定義でマイクロシーケンスの実行の前に
+満たされなければなりません。
+個々のマイクロシーケンスを初期化するために、ppb_MS_init_msq() 関数を
+以下のように使用するべきです。
+.Bd -literal
+ ppb_MS_init_msq(select_microseq, 2,
+ SELECT_TARGET, 1 << target,
+ SELECT_INITIATOR, 1 << initiator);
+.Ed
+.Pp
+それからマイクロシーケンスを実行します。
+.Ss マイクロシーケンサ
+マイクロシーケンサは ppbus レベルまたはアダプタレベル (ppbus の
+システムレイヤについての情報は
+.Xr ppbus 4
+を参照してください) のいずれかで実行されます。
+マイクロシーケンサの殆んどは、ppbus からアダプタへの関数呼び出しの
+オーバヘッドを避けるために、ppc レベルで実行されます。
+しかし、その転送は IEEE1284-1994 に合致しているのに反して、
+いくつかの決まりきった様な機能は ppbus レイヤで実行されます。
+.Sh バグ
+1 レベルのサブマイクロシーケンスのみが認められています。
+.Pp
+ポートのトリガ時は、許可されている最大の遅延は 255 マイクロ秒です。
+.Sh 関連項目
+.Xr ppbus 4 ,
+.Xr ppc 4 ,
+.Xr vpo 4
+.Sh 歴史
+.Nm
+のマニュアルページは
+.Fx 3.0
+ではじめて登場しました。
+.Sh 作者
+このマニュアルページは
+.An Nicolas Souchu
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/microtime.9 b/documentation/manual-pages/ja/man9/microtime.9
new file mode 100644
index 0000000000..1d1b7af643
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/microtime.9
@@ -0,0 +1,114 @@
+.\" Copyright (c) 2000 Kelly Yancey
+.\" 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/microtime.9,v 1.7.8.1 2004/09/22 04:43:33 brooks Exp %
+.\"
+.\" $FreeBSD$
+.Dd September 16, 2004
+.Dt MICROTIME 9
+.Os
+.Sh 名称
+.Nm bintime ,
+.Nm getbintime ,
+.Nm microtime ,
+.Nm getmicrotime ,
+.Nm nanotime ,
+.Nm getnanotime
+.Nd 現在時刻の取得
+.Sh 書式
+.In sys/time.h
+.Ft void
+.Fn bintime "struct bintime *bt"
+.Ft void
+.Fn getbintime "struct bintime *bt"
+.Ft void
+.Fn microtime "struct timeval *tv"
+.Ft void
+.Fn getmicrotime "struct timeval *tv"
+.Ft void
+.Fn nanotime "struct timespec *ts"
+.Ft void
+.Fn getnanotime "struct timespec *tsp"
+.Sh 解説
+.Fn bintime
+および
+.Fn getbintime
+関数は、
+.Fa bt
+によって指定されたアドレスに、
+.Ft bintime
+構造体としてシステム時刻を保存します。
+.Fn microtime
+および
+.Fn getmicrotime
+関数も同等の機能を果たしますが、代わりに
+.Ft timeval
+構造体として時刻を保存します。
+同様に、
+.Fn nanotime
+および
+.Fn getnanotime
+関数は、
+.Ft timespec
+構造体として時刻を保存します。
+.Pp
+.Fn bintime ,
+.Fn microtime ,
+.Fn nanotime
+は、可能な限り正確な現在時刻を返す時刻カウンタを、常に請求します。
+それに反して、
+.Fn getbintime ,
+.Fn getmicrotime ,
+.Fn getnanotime
+関数は、正確ではないが高速に得られる時刻を返す抽象化です。
+.Pp
+.Fn getbintime ,
+.Fn getmicrotime ,
+.Fn getnanotime
+関数の意図は、タイマの正確さ対実行時間のユーザの好みを強化することです。
+.Sh 関連項目
+.Xr binuptime 9 ,
+.Xr getbinuptime 9 ,
+.Xr getmicrouptime 9 ,
+.Xr getnanouptime 9 ,
+.Xr microuptime 9 ,
+.Xr nanouptime 9 ,
+.Xr tvtohz 9
+.Sh 歴史
+.Nm bintime
+関数は、
+.Fx 5.0
+で初めて登場しました。
+.Nm
+および
+.Nm nanotime
+関数は
+.Fx 3.0
+で初めて登場しましたが、別の形で
+.Bx 4.4
+から存在していました。
+.Sh 作者
+このマニュアルページは
+.An Kelly Yancey Aq kbyanc@posi.net
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/microuptime.9 b/documentation/manual-pages/ja/man9/microuptime.9
new file mode 100644
index 0000000000..e03a2f835c
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/microuptime.9
@@ -0,0 +1,101 @@
+.\" Copyright (c) 2000 Kelly Yancey
+.\" 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/microuptime.9,v 1.5.8.1 2004/09/22 04:43:33 brooks Exp %
+.\"
+.\" $FreeBSD$
+.Dd September, 16 2004
+.Dt MICROUPTIME 9
+.Os
+.Sh 名称
+.Nm binuptime ,
+.Nm getbinuptime ,
+.Nm microuptime ,
+.Nm getmicrouptime ,
+.Nm nanouptime ,
+.Nm getnanouptime
+.Nd 起動からの経過時間の取得
+.Sh 書式
+.In sys/time.h
+.Ft void
+.Fn binuptime "struct bintime *bt"
+.Ft void
+.Fn getbinuptime "struct bintime *bt"
+.Ft void
+.Fn microuptime "struct timeval *tv"
+.Ft void
+.Fn getmicrouptime "struct timeval *tv"
+.Ft void
+.Fn nanouptime "struct timespec *ts"
+.Ft void
+.Fn getnanouptime "struct timespec *tsp"
+.Sh 解説
+.Fn binuptime
+および
+.Fn getbinuptime
+関数は、
+.Fa bt
+によって指定されたアドレスに、
+.Ft bintime
+構造体として、起動からの経過時間を保存します。
+.Fn microuptime
+および
+.Fn getmicrouptime
+関数は、同等の機能を果たしますが、代りに
+.Ft timeval
+構造体として経過時間を記録します。
+同様に、
+.Fn nanouptime
+および
+.Fn getnanouptime
+関数は、
+.Ft timespec
+構造体として経過時間を保存します。
+.Pp
+.Fn binuptime ,
+.Fn microuptime ,
+.Fn nanouptime
+は、常に可能な限り正確な現在時刻を返す時刻カウンタを請求します。
+それに反して、
+.Fn getbinuptime ,
+.Fn getmicrouptime ,
+.Fn getnanouptime
+関数は、正確ではないが高速に得られる時刻を返す抽象化です。
+.Pp
+.Fn getbinuptime ,
+.Fn getmicrouptime ,
+.Fn getnanouptime
+関数の意図は、タイマの正確さ対実行時間のユーザの好みを強化することです。
+.Sh 関連項目
+.Xr bintime 9 ,
+.Xr getbintime 9 ,
+.Xr getmicrotime 9 ,
+.Xr getnanotime 9 ,
+.Xr microtime 9 ,
+.Xr nanotime 9 ,
+.Xr tvtohz 9
+.Sh 作者
+このマニュアルページは
+.An Kelly Yancey Aq kbyanc@posi.net
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/module.9 b/documentation/manual-pages/ja/man9/module.9
new file mode 100644
index 0000000000..06d0ae6145
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/module.9
@@ -0,0 +1,114 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2000 Alexander Langer
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/module.9,v 1.8 2004/07/13 19:36:58 phk Exp %
+.\"
+.\" $FreeBSD$
+.Dd March 1, 2001
+.Dt MODULE 9
+.Os
+.Sh 名称
+.Nm module
+.Nd カーネルモジュールの構造記述
+.Sh 解説
+カーネル内の個々のモジュールは
+.Vt module_t
+構造体によって記述されます。
+この構造体は、幾つかのカーネルの内部データはもちろん、デバイスの名前、
+固有の ID 番号、イベントハンドラ関数へのポインタ、および
+イベントハンドラに渡される引数を含んでいます。
+.Pp
+.Xr DECLARE_MODULE 9
+マクロはシステムにモジュールを登録します。
+.Pp
+そのモジュールがロードされた時に、
+.Fa what
+引数に
+.Dv MOD_LOAD
+が設定されて、イベントハンドラ関数が呼び出されます。
+.Pp
+アンロード時は最初に
+.Fa what
+に MOD_QUIESCE が設定されて呼び出されます。
+アンロードが強制されなかった場合には、0 ではない値が返ることで
+アンロードの発生を防ぎます。
+.Pp
+アンロードが継続する場合には
+.Fa what
+に
+.Dv MOD_UNLOAD
+が設定されます。
+モジュールがこれに 0 ではない値を返す場合には、アンロードは起こりません。
+.Pp
+MOD_QUIESCE と MOD_UNLOAD の違いは、モジュールが使用中であれば
+モジュールは MOD_QUIESCE を失敗させるべきであり、それに対して、
+モジュールのアンロードが不可能な場合にのみ MOD_UNLOAD が失敗するべきです。
+例えば、解除することができないそのモジュールへのメモリ参照がある場合です。
+.Pp
+システムがシャットダウンされる時には、
+.Fa what
+は
+.Dv MOD_SHUTDOWN
+の値を含みます。
+.Pp
+モジュールは
+.Fa what
+の値を認識できない場合は EOPNOTSUPP を返すべきです。
+.Sh 使用例
+.Bd -literal
+#include <sys/param.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+
+static int foo_handler(module_t mod, int /*modeventtype_t*/ what,
+ void *arg);
+
+static moduledata_t mod_data= {
+ "foo",
+ foo_handler,
+ 0
+};
+
+MODULE_VERSION(foo, 1);
+MODULE_DEPEND(foo, bar, 1, 3, 4);
+
+DECLARE_MODULE(foo, mod_data, SI_SUB_EXEC, SI_ORDER_ANY);
+.Ed
+.Sh 関連項目
+.Xr DECLARE_MODULE 9 ,
+.Xr DEV_MODULE 9 ,
+.Xr DRIVER_MODULE 9 ,
+.Xr MODULE_DEPEND 9 ,
+.Xr MODULE_VERSION 9 ,
+.Xr SYSCALL_MODULE 9
+.Pp
+.Pa /usr/share/examples/kld
+.Sh 作者
+このマニュアルページは
+.An Alexander Langer Aq alex@FreeBSD.org
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/namei.9 b/documentation/manual-pages/ja/man9/namei.9
new file mode 100644
index 0000000000..a9d6c15a46
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/namei.9
@@ -0,0 +1,311 @@
+.\"
+.\" Copyright (c) 1998, 1999 Eivind Eklund
+.\" Copyright (c) 2003 Hiten M. Pandya
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\"
+.\" If you integrate this manpage in another OS, I'd appreciate a note
+.\" - eivind@FreeBSD.org
+.\"
+.\" %FreeBSD: src/share/man/man9/namei.9,v 1.25.4.1 2005/03/04 00:17:40 brueffer Exp %
+.\"
+.\" $FreeBSD$
+.Dd May 27, 2003
+.Os
+.Dt NAMEI 9
+.Sh 名称
+.Nm namei ,
+.Nm NDINIT ,
+.Nm NDFREE
+.Nd パス名の変換および検索操作
+.Sh 書式
+.In sys/param.h
+.In sys/proc.h
+.In sys/namei.h
+.Ft int
+.Fn namei "struct nameidata *ndp"
+.Ft void
+.Fo NDINIT
+.Fa "struct nameidata *ndp" "u_long op" "u_long flags"
+.Fa "enum uio_seg segflg" "const char *namep" "struct thread *td"
+.Fc
+.Ft void
+.Fn NDFREE "struct nameidata *ndp" "const uint flags"
+.Sh 解説
+.Nm
+の仕組みはクライアントによるパス名の変換および検索の操作を可能にします。
+.Nm
+関数は対象の vnode のための参照カウントをインクリメントします。
+その参照カウントは、
+.Dv LOCKLEAF
+フラグが指定されたかどうかに依存して、
+.Xr vrele 9
+または
+.Xr vput 9
+のどちらかを使用して、その vnode の使用後にデクリメントされなければなりません。
+.Pp
+.Fn NDINIT
+関数は
+.Nm
+の要素を初期化するために使用されます。
+これは以下の引数を取ります。
+.Bl -tag -width ".Fa segflg"
+.It Fa ndp
+初期化されるべき
+.Vt "struct nameidata"
+構造体です。
+.It Fa op
+.Fn namei
+が実行する操作です。
+.Dv LOOKUP , CREATE , DELETE
+および
+.Dv RENAME
+の操作が有効です。
+後者 3 つはこれらの効果のためのセットアップだけです。
+.Fn namei
+の呼び出しだけでは
+.Fn VOP_RENAME
+が呼び出されたような結果にはなりません。
+.It Fa flags
+操作フラグです。
+これらの内の幾つかは、同時に有効化されることが可能です。
+.It Fa segflg
+UIO セグメントのインジケータです。
+これはオブジェクトの名前がユーザ空間
+.Pq Dv UIO_USERSPACE
+にあるのかカーネルアドレス空間
+.Pq Dv UIO_SYSSPACE
+にあるのかを示します。
+.It Fa namep
+構成要素のパス名バッファへのポインタです
+(検索されるファイル名またはディレクトリ名)。
+.It Fa td
+.Nm
+の操作およびロックのために使用されるスレッドコンテキストです。
+.El
+.Sh NAMEI 操作フラグ
+.Fn namei
+は操作がどのような影響を及ぼすかという、以下の
+.Dq 操作フラグ
+のセットを取ります。
+.Bl -tag -width ".Dv WANTPARENT"
+.It Dv LOCKLEAF
+戻るときに vnode をロックします。
+これはその vnode の完全なロックで、ロックを解放するためには
+.Xr VOP_UNLOCK 9
+を使用するべきです。
+(または
+.Xr vrele 9
+が後に続く
+.Xr VOP_UNLOCK 9
+の呼び出しを一緒に行うことと等価である
+.Xr vput 9
+を使用するべきです。)
+.It Dv LOCKPARENT
+このフラグは
+.Va ni_vp
+が一致しない場合には、
+.Fn namei
+関数に親 (ディレクトリ) の vnode である
+.Va ni_dvp
+がロックされた状態で返されるようにします。
+この場合、これ自体では
+.Va ni_dvp
+はロックされません (が、
+.Dv LOCKLEAF
+のためロックされるかもしれません)。
+ロックが実施された場合には、
+.Xr vput 9
+または
+.Xr VOP_UNLOCK 9
+と
+.Xr vrele 9
+を使用してロックが解放されるべきです。
+.It Dv WANTPARENT
+このフラグは
+.Fn namei
+関数が親 (ディレクトリ) の vnode をロックされていない状態で、
+返すようにします。
+その親の vnode は
+.Xr vrele 9
+を使用して個別に解放されなければなりません。
+.It Dv NOCACHE
+名前キャッシュのエントリが既に存在していない場合には、
+.Fn namei
+が名前キャッシュにこのエントリを作成することを回避します。
+通常、そこにエントリが未だない場合には、
+.Fn namei
+は名前キャッシュにエントリを追加します。
+.It Dv FOLLOW
+このフラグがあると、
+.Fn namei
+は与えられたパス名の最後の部分がシンボリックリンクであれば、
+シンボリックリンクを辿ります (すなわち、リンクそれ自体の vnode の代わりに、
+リンクが指しているところの vnode が返されます)。
+.It Dv NOOBJ
+たとえ VM サポートのための要求された基準を満たしているとしても、
+返される vnode のために
+.Fn vfs_object_create
+を呼び出しません。
+.It Dv NOFOLLOW
+シンボリックリンクを辿りません (擬似フラグ)。
+このフラグは実際のコードによって期待されません。
+コードは
+.Dv FOLLOW
+の有無をみます。
+.Dv NOFOLLOW
+は、シンボリックリンクが辿られないことを、
+ソースコードの読者に対して意図的に示すために使用されます。
+.It Dv SAVENAME
+呼出し側がそのパス名のバッファにアクセスするかもしれない時のために、
+.Fn namei
+の実行の最後で、パス名のバッファを解放しません。
+代わりに後で
+.Fn NDFREE
+でその名前バッファを解放します。
+詳細は下記を参照してください。
+.It Dv SAVESTART
+親ディレクトリへの追加の参照を維持します。
+パス名のバッファを解放しません。
+詳細は下記を参照してください。
+.El
+.Sh 割当てられた要素
+.Vt nameidata
+構造体は以下のフィールドで構成されます。
+.Bl -tag -width ".Va ni_cnd.cn_pnbuf"
+.It Va ni_startdir
+通常の場合、これは現在のディレクトリまたはルートディレクトリのどちらかです。
+渡された名前が
+.Ql /
+で始まっておらず、絶対パスのシンボリックリンクを
+通り抜けていない場合には現在のディレクトリで、そうでない場合にはルートです。
+.Pp
+この場合、
+.Fn lookup
+によってのみ使用され、
+.Fn namei
+への呼出しの後で利用可能だとみなされるべきではありません。
+.Dv SAVESTART
+が設定されている場合には、追加の
+.Xr vref 9
+を伴なった
+.Va ni_dvp
+と同様に設定されます。
+.Va ni_startdir
+の解放から
+.Fn NDFREE
+をブロックするために、
+.Dv NDF_NO_STARTDIR_RELE
+を設定することが可能です。
+.It Va ni_dvp
+検索が実行されているオブジェクトのディレクトリへの vnode ポインタです。
+.Dv LOCKPARENT
+または
+.Dv WANTPARENT
+が設定されている場合に、成功して戻った時に利用可能です。
+.Dv LOCKPARENT
+が設定されている場合にはロックされます。
+.Dv NDF_NO_DVP_RELE , NDF_NO_DVP_PUT
+または
+.Dv NDF_NO_DVP_UNLOCK
+によって、(明らかな効果を伴って)
+.Fn NDFREE
+内の
+.Va ni_dvp
+の解放を抑制することが可能です。
+.It Va ni_vp
+オブジェクトが返されるための vnode ポインタで、そうでなければ
+.Dv NULL
+です。
+この vnode の
+.Va v_usecount
+フィールドがインクリメントされます。
+.Dv LOCKLEAF
+が設定されている場合には、ロックもされます。
+.Pp
+.Dv NDF_NO_VP_RELE , NDF_NO_VP_PUT
+または
+.Dv NDF_NO_VP_UNLOCK
+によって、(明らかな効果を伴って)
+.Fn NDFREE
+内の
+.Va ni_vp
+の解放を抑制することが可能です。
+.It Va ni_cnd.cn_pnbuf
+.Nm
+操作によって使用される、
+ファイルまたはディレクトリの位置が入っているパス名のバッファです。
+これは
+.Xr uma 9
+ゾーン割り当てインタフェースによって管理されます。
+.Dv SAVESTART
+または
+.Dv SAVENAME
+フラグが設定されている場合には、そのパス名のバッファは
+.Fn namei
+関数の呼び出し後も利用可能です。
+.Pp
+パス名のバッファ
+.Va ni_cnd.cn_pnbuf
+によって使用されているリソースのみを解放するために、
+.Dv NDF_ONLY_PNBUF
+フラグを
+.Fn NDFREE
+関数に渡すことが可能です。
+パス名のバッファをそのままで保持するために、
+.Dv NDF_NO_FREE_PNBUF
+フラグを
+.Fn NDFREE
+関数に渡すことが可能です。
+.El
+.Sh 関連ファイル
+.Bl -tag
+.It Pa src/sys/kern/vfs_lookup.c
+.El
+.Sh 関連項目
+.Xr uio 9 ,
+.Xr uma 9 ,
+.Xr VFS 9 ,
+.Xr vnode 9 ,
+.Xr vput 9 ,
+.Xr vref 9
+.Sh 作者
+.An -nosplit
+このマニュアルページは
+.An Eivind Eklund Aq eivind@FreeBSD.org
+によって書かれ、その後で
+.An Hiten M. Pandya Aq hmp@FreeBSD.org
+が大幅に修正しました。
+.Sh バグ
+.Dv LOCKPARENT
+フラグは常に親の vnode がロックされる結果になるとは限りません。
+.Dv LOCKPARENT
+が使用される時には、複雑化する結果となります。
+.Dv LOCKPARENT
+および
+.Dv LOCKLEAF
+の両方が使用される場合のこの問題の解決のために、
+再帰的ロックに頼ることが必要になります。
diff --git a/documentation/manual-pages/ja/man9/panic.9 b/documentation/manual-pages/ja/man9/panic.9
new file mode 100644
index 0000000000..b45773602a
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/panic.9
@@ -0,0 +1,68 @@
+.\" %NetBSD: panic.9,v 1.2 1996/10/09 17:20:04 explorer Exp %
+.\"
+.\" Copyright (c) 1996 Michael Graff.
+.\" 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.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by Michael Graff
+.\" for the NetBSD Project.
+.\" 3. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/panic.9,v 1.9 2003/10/17 06:25:37 bde Exp %
+.\" $FreeBSD$
+.\"
+.Dd August 11, 1995
+.Dt PANIC 9
+.Os
+.Sh 名称
+.Nm panic
+.Nd 致命的なエラーによるシステムダウン
+.Sh 書式
+.In sys/types.h
+.In sys/systm.h
+.Ft void
+.Fn panic "const char *fmt" ...
+.Sh 解説
+.Fn panic
+関数は動作中のシステムを終了させます。
+.Fa fmt
+メッセージは
+.Xr printf 3
+スタイルのフォーマット文字列です。
+このメッセージはコンソールに出力され、
+後でオペレーティングシステムのコアダンプから取り出すために
+.Fa panicstr
+がこのメッセージのアドレスに設定されます。
+.Pp
+もしカーネルデバッガが搭載されていれば、デバッガに制御を渡します。
+さもなければ、オペレーティングシステムのコアダンプを
+設定されているダンプデバイスに保存するように試みます。
+.Pp
+もし
+.Fn panic
+が 2 度呼ばれた場合(たとえばディスク同期ルーチンから)には、
+ディスクの同期無しでシステムはリブートされます。
+.Sh 戻り値
+.Fn panic
+関数は戻りません。
diff --git a/documentation/manual-pages/ja/man9/physio.9 b/documentation/manual-pages/ja/man9/physio.9
new file mode 100644
index 0000000000..3a3e2f283f
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/physio.9
@@ -0,0 +1,138 @@
+.\" %NetBSD: physio.9,v 1.2 1996/11/11 00:05:12 lukem Exp %
+.\"
+.\" Copyright (c) 1996 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Paul Kranenburg.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the NetBSD
+.\" Foundation, Inc. and its contributors.
+.\" 4. Neither the name of The NetBSD Foundation nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/physio.9,v 1.15.2.1 2005/01/05 08:31:19 krion Exp %
+.\" $FreeBSD$
+.\"
+.Dd July 8, 2004
+.Dt PHYSIO 9
+.Os
+.Sh 名称
+.Nm physio
+.Nd ロウデバイスの入出力の開始
+.Sh 書式
+.In sys/param.h
+.In sys/systm.h
+.In sys/bio.h
+.In sys/buf.h
+.Ft int
+.Fn physio "dev_t dev" "struct uio *uio" "int ioflag"
+.Sh 解説
+.Fn physio
+は通常、
+文字型デバイスの
+.Fn read
+および
+.Fn write
+ルーチンから呼び出されるヘルパー関数で、
+ユーザプロセスのバッファへの入出力を開始させます。
+呼び出しごとの最大のデータ転送量は
+.Fa dev->si_iosize_max
+によって決定されます。
+.Fn physio
+の呼び出しは入出力要求を
+.Fn strategy
+要求に変換し、その処理のため新しい要求をドライバの
+.Fn strategy
+ルーチンに渡します。
+.Pp
+.Fa uio
+構造体は通常ユーザ空間のアドレスを示すので、
+.Fn physio
+はこれらのページをメモリ中にロックする必要があります。
+これは適切なページに対する
+.Fn vmapbuf
+を呼び出すことで行われます。
+以前にエラー状態が検出された時を除いて、
+.Fn physio
+は常にリターンする前に全ての要求された転送が完了するまで待ちます。
+.Pp
+引数の詳細を下記に示します。
+.Bl -tag -width indent
+.It Fa dev
+デバイスを識別するために関連付けられたデバイス番号。
+.It Fa uio
+ユーザプロセスから要求された転送全体の記述。
+現在は、
+.Fa uio
+構造体の
+.Va uio_segflg
+フラグに
+.Dv UIO_USERSPACE
+以外の値をセットして渡した場合の結果は未定義です。
+.It Fa ioflag
+.Fn physio
+を呼び出している
+.Fn read
+または
+.Fn write
+関数からの ioflag 引数。
+.El
+.Sh 戻り値
+成功すれば
+.Fn physio
+は 0 を返します。
+.Fa uio
+構造体に示されているアドレス範囲が要求したプロセスから
+アクセスできない場合には
+.Er EFAULT
+を返します。
+.Fn physio
+はデバイスの strategy ルーチンを呼んだ結果として発生する
+あらゆるエラーを
+.Dv B_ERROR
+バッファフラグおよび
+.Va b_error
+フィールドを調査して返します。
+デバイスが
+.Dq "end of file"
+の状態を示している時には、実際の転送サイズは
+.Fa uio
+構造体で要求しているサイズよりも小さくなる事に注意してください。
+.Sh 関連項目
+.Xr read 2 ,
+.Xr write 2
+.Sh 歴史
+.Nm
+のマニュアルページは元々は
+.Nx
+のもので、
+.Fx
+に適応させるために少しの変更があります。
+.Pp
+.Nm
+の呼び出しは、より高い入出力およびページングのパフォーマンスのために、
+完全に書き直されています。
diff --git a/documentation/manual-pages/ja/man9/printf.9 b/documentation/manual-pages/ja/man9/printf.9
new file mode 100644
index 0000000000..07aea9cf25
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/printf.9
@@ -0,0 +1,167 @@
+.\"
+.\" Copyright (c) 2001 Andrew R. Reiter
+.\" Copyritht (c) 2004 Joerg Wunsch
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/printf.9,v 1.4.2.1 2005/01/23 10:08:45 glebius Exp %
+.\"
+.\" $FreeBSD$
+.Dd August 10, 2004
+.Dt PRINTF 9
+.Os
+.Sh 名称
+.Nm printf , uprintf , tprintf , log
+.Nd フォーマットされた出力の変換
+.Sh 書式
+.In sys/types.h
+.In sys/systm.h
+.Ft int
+.Fn printf "const char *fmt" ...
+.Ft void
+.Fn tprintf "struct proc *p" "int pri" "const char *fmt" ...
+.Ft int
+.Fn uprintf "const char *fmt" ...
+.In sys/syslog.h
+.Ft void
+.Fn log "int pri" "const char *fmt" ...
+.Sh 解説
+.Xr printf 9
+ファミリの関数は
+.Xr printf 3
+ファミリの関数と類似しています。
+この異なった関数はそれぞれ異なった出力ストリームを使用します。
+.Fn uprintf
+関数は現在のプロセスが制御している tty に出力しますが、
+.Fn printf
+はロギングファシリティおよびコンソールに出力します。
+.Fn tprintf
+関数は
+.Fa pri
+が \-1 でない場合には、プロセス
+.Fa p
+に関連づけられた tty およびロギングファシリティに出力します。
+.Fn log
+関数は
+.Fa pri
+によって示されたログレベルを使用して、
+カーネルのロギングファシリティにメッセージを送ります。
+.Pp
+これらそれぞれの関連した関数は、
+.Xr printf 3
+と同じ方法で
+.Fa fmt
+パラメータを使用します。
+しかしながら、
+.Xr printf 9
+は 2 つの他の変換指定子を追加しています。
+.Pp
+.Cm \&%b
+識別子は 2 つの引数を期待します。
+.Vt int
+および
+.Vt "char *"
+です。
+これらはビットマスクのデコードのため、
+レジスタ値と印字マスクとして使用されます。
+この印字マスクは 2 つの部分で構成されます。
+基数と引数です。
+基数値は整数値として表現される出力の基数です。
+例えば、\e10 は 8 進数を \e20 は 16 進数を与えます。
+引数はビット識別子の並びとして構成されます。
+個々のビット識別子はこの識別子が表すビット番号の整数値で始まります。
+識別子の残り部分はそのビットの名前を含む文字列です。
+この文字列は次のビット識別子の始まりのビット番号、
+または最後のビット識別子のために
+.Dv NUL
+で終端されます。
+.Pp
+.Cm \&%D
+識別子は 16 進ダンプを補助することを意図されています。
+.Cm \&%D
+これは 2 つの引数を要求します。
+.Vt "u_char *"
+ポインタおよび
+.Vt "char *"
+文字列です。
+ポインタが指しているメモリは、16 進数で一度に 1 バイト出力されます。
+文字列は個々のバイトの間のデリミタとして使用されます。
+もし存在すれば、幅ディレクティブが表示するバイト数を指定します。
+デフォルトでは、16 バイトのデータが出力されます。
+.Pp
+.Fn log
+関数はその
+.Fa pri
+引数 (ここは誤解されて
+.Sq priority (優先度)
+と呼ばれていた) に
+.Xr syslog 3
+のレベル値の
+.Dv LOG_DEBUG
+から
+.Dv LOG_EMERG
+までを使用します。
+代わりに、
+.Fa pri
+に \-1 が与えられた場合には、そのメッセージはその前の
+.Fn log
+の呼び出しによって開始された、最近のログメッセージに追加されます。
+これらのメッセージはカーネル自身によって生成されるため、
+このファシリティは常に
+.Dv LOG_KERN
+となります。
+.Sh 戻り値
+.Fn printf
+および
+.Fn uprintf
+関数は表示された文字数を返します。
+.Sh 使用例
+この使用例は \&%b および \&%D 変換指定子の使用方法を示しています。
+関数
+.Bd -literal -offset indent
+void
+printf_test(void)
+{
+
+ printf("reg=%b\en", 3, "\e10\e2BITTWO\e1BITONE\en");
+ printf("out: %4D\en", "AAAA", ":");
+}
+.Ed
+.Pp
+は下記の出力を発生させます。
+.Bd -literal -offset indent
+reg=3<BITTWO,BITONE>
+out: 41:41:41:41
+.Ed
+.Pp
+この呼び出し
+.Bd -literal -offset indent
+log(LOG_DEBUG, "%s%d: been there.\en", sc->sc_name, sc->sc_unit);
+.Ed
+.Pp
+は適切なデバッグメッセージを優先度
+.Dq Li kern.debug
+でシステムログに追加します。
+.Sh 関連項目
+.Xr printf 3 ,
+.Xr syslog 3
diff --git a/documentation/manual-pages/ja/man9/pseudofs.9 b/documentation/manual-pages/ja/man9/pseudofs.9
new file mode 100644
index 0000000000..09f16ed9a6
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/pseudofs.9
@@ -0,0 +1,69 @@
+.\"-
+.\" Copyright (c) 2001 Dag-Erling Coidan Smorgrav
+.\" 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.5 2004/07/03 18:29:24 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
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/psignal.9 b/documentation/manual-pages/ja/man9/psignal.9
new file mode 100644
index 0000000000..d252f7ec9a
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/psignal.9
@@ -0,0 +1,142 @@
+.\" Copyright (c) 1996 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Paul Kranenburg.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the NetBSD
+.\" Foundation, Inc. and its contributors.
+.\" 4. Neither the name of The NetBSD Foundation nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" $NetBSD: psignal.9,v 1.1 1996/06/22 22:57:35 pk Exp $
+.\" %FreeBSD: src/share/man/man9/psignal.9,v 1.9 2001/10/01 16:09:25 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd June 22, 1996
+.Dt PSIGNAL 9
+.Os
+.Sh 名称
+.Nm psignal ,
+.Nm pgsignal ,
+.Nm gsignal
+.Nd プロセスまたはプロセスグループへのシグナルの配信
+.Sh 書式
+.In sys/types.h
+.In sys/signalvar.h
+.Ft void
+.Fn psignal "struct proc *p" "int signum"
+.Ft void
+.Fn pgsignal "struct pgrp *pgrp" "int signum" "int checkctty"
+.Ft void
+.Fn gsignal "int pgid" "int signum"
+.Sh 解説
+これらの関数は 1 つ以上のプロセスへシグナルを配信します。
+3 つの関数全てに共通な引数
+.Fa signum
+は
+.Bq 1- Ns Dv NSIG
+の範囲であるべきです。
+.Pp
+.Fn psignal
+関数はシグナル番号
+.Fa signum
+をプロセス構造体
+.Fa p
+によって表現されるプロセスに配信します。
+以下に示す少しの例外がありますが、配信先プロセスシグナル配置は更新され、
+実行可能としてマークされます。そのためこのシグナルの取り扱いは、
+コンテキストスイッチの後で配信先プロセスのコンテキスト内で完了します。
+.Fn psignal
+は自分自身でコンテキストスイッチを引き起こすことはないことに注意してください。
+.Pp
+以下の場合には、配信先プロセスが実行可能としてマークされません。
+.Bl -bullet -offset indent
+.It
+配信先プロセスが割り込み不可能で眠っています。
+そのシグナルはプロセスがシステムコールまたはトラップから戻ったときに
+通知されます。
+.It
+配信先プロセスが現在はシグナルを無視しています。
+.It
+デフォルトの行動
+.Xr ( sigaction 2
+を参照) を取る眠っているプロセスに停止シグナルが送られた場合には、
+そのプロセスは起こされることなく停止させられます。
+.It
+シグナルの行動 (例えば、ブロックまたは無視) にかかわらず、
+.Dv SIGCONT
+は停止させられているプロセスを再スタートさせます (またはスリープに戻します)。
+.El
+.Pp
+配信先プロセスがトレース中の場合には、
+.Fn psignal
+はまるで配信先プロセスが
+.Fa signum
+のためのデフォルトの行動を取ったかのように振舞います。
+これはトレースしているプロセスにそのシグナルが通知されることを可能にします。
+.Pp
+.Fn pgsignal
+関数はシグナル番号
+.Fa signum
+を
+.Fa pgrp
+によって記述されるプロセスグループの個々のメンバに配信します。
+.Fa checkctty
+が 0 でない場合には、そのシグナルは制御端末を持っているプロセスにのみ
+配信されます。
+.Fn pgsignal
+は
+.Fa pgrp
+によって指されるプロセスグループ構造体の
+.Li pg_members
+フィールドによって指されるプロセスリストに沿って歩き、適切に
+.Fn psignal
+を呼び出すことによって実装されています。
+.Fa pgrp
+が
+.Dv NULL
+の場合には何の行動も取りません。
+.Pp
+.Fn gsignal
+関数はシグナル番号
+.Fa signum
+をグループ ID
+.Fa pgid
+によって識別されるプロセスグループの個々のメンバに配信します。
+.Fn gsignal
+は最初に
+.Fa pgid
+に関連付けられているグループ構造体を見つけ、それから引数
+.Fa checkctty
+を 0 に設定して
+.Fn pgsignal
+を実行します。
+.Fa pgid
+が 0 の場合には何の行動も取りません。
+.Sh 関連項目
+.Xr sigaction 2 ,
+.Xr tsleep 9
diff --git a/documentation/manual-pages/ja/man9/resettodr.9 b/documentation/manual-pages/ja/man9/resettodr.9
new file mode 100644
index 0000000000..33cb383ecf
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/resettodr.9
@@ -0,0 +1,60 @@
+.\" %NetBSD: resettodr.9,v 1.1 1995/11/25 21:24:51 perry Exp %
+.\"
+.\" Copyright (c) 1994 Christopher G. Demetriou
+.\" 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.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by Christopher G. Demetriou
+.\" for the NetBSD Project.
+.\" 3. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/resettodr.9,v 1.7 2003/10/23 02:33:03 hmp Exp %
+.\" $FreeBSD$
+.\"
+.Dd November 13, 1995
+.Dt RESETTODR 9
+.Os
+.Sh 名称
+.Nm resettodr
+.Nd バッテリーバックアップの時計をシステムの時間に合わせる
+.Sh 書式
+.In sys/types.h
+.In sys/systm.h
+.Ft void
+.Fn resettodr "void"
+.Sh 解説
+.Fn resettodr
+関数はシステムのバッテリーバックアップの時計をシステムが保有している
+.Va time
+変数の時間に合わせます。
+.Sh 関連項目
+.Xr inittodr 9 ,
+.Xr time 9
+.Sh バグ
+多くのシステムで
+.Fn resettodr
+は内部表現の
+.Va time
+から年、月、日、時、分、秒で表現される時刻に変換しなければなりません。
+多くのインプリメンテーションではコードの共有が可能ですが、共有していません。
diff --git a/documentation/manual-pages/ja/man9/sbuf.9 b/documentation/manual-pages/ja/man9/sbuf.9
new file mode 100644
index 0000000000..73376a37c5
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/sbuf.9
@@ -0,0 +1,365 @@
+.\"-
+.\" Copyright (c) 2000 Poul Henning Kamp and Dag-Erling Coidan Smorgrav
+.\" 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/sbuf.9,v 1.24 2004/07/09 11:44:49 des Exp %
+.\" $FreeBSD$
+.\"
+.Dd July 9, 2004
+.Dt SBUF 9
+.Os
+.Sh 名称
+.Nm sbuf_new ,
+.Nm sbuf_clear ,
+.Nm sbuf_setpos ,
+.Nm sbuf_bcat ,
+.Nm sbuf_bcopyin ,
+.Nm sbuf_bcpy ,
+.Nm sbuf_cat ,
+.Nm sbuf_copyin ,
+.Nm sbuf_cpy ,
+.Nm sbuf_printf ,
+.Nm sbuf_vprintf ,
+.Nm sbuf_putc ,
+.Nm sbuf_trim ,
+.Nm sbuf_overflowed ,
+.Nm sbuf_finish ,
+.Nm sbuf_data ,
+.Nm sbuf_len ,
+.Nm sbuf_done ,
+.Nm sbuf_delete
+.Nd 安全な文字列フォーマット
+.Sh 書式
+.In sys/types.h
+.In sys/sbuf.h
+.Ft struct sbuf *
+.Fn sbuf_new "struct sbuf *s" "char *buf" "int length" "int flags"
+.Ft void
+.Fn sbuf_clear "struct sbuf *s"
+.Ft int
+.Fn sbuf_setpos "struct sbuf *s" "int pos"
+.Ft int
+.Fn sbuf_bcat "struct sbuf *s" "const void *buf" "size_t len"
+.Ft int
+.Fn sbuf_bcopyin "struct sbuf *s" "const void *uaddr" "size_t len"
+.Ft int
+.Fn sbuf_bcpy "struct sbuf *s" "const void *buf" "size_t len"
+.Ft int
+.Fn sbuf_cat "struct sbuf *s" "const char *str"
+.Ft int
+.Fn sbuf_copyin "struct sbuf *s" "const void *uaddr" "size_t len"
+.Ft int
+.Fn sbuf_cpy "struct sbuf *s" "const char *str"
+.Ft int
+.Fn sbuf_printf "struct sbuf *s" "const char *fmt" "..."
+.Ft int
+.Fn sbuf_vprintf "struct sbuf *s" "const char *fmt" "va_list ap"
+.Ft int
+.Fn sbuf_putc "struct sbuf *s" "int c"
+.Ft int
+.Fn sbuf_trim "struct sbuf *s"
+.Ft int
+.Fn sbuf_overflowed "struct sbuf *s"
+.Ft void
+.Fn sbuf_finish "struct sbuf *s"
+.Ft char *
+.Fn sbuf_data "struct sbuf *s"
+.Ft int
+.Fn sbuf_len "struct sbuf *s"
+.Ft int
+.Fn sbuf_done "struct sbuf *s"
+.Ft void
+.Fn sbuf_delete "struct sbuf *s"
+.Sh 解説
+.Nm sbuf
+ファミリの関数は、カーネル空間内の境界のあるヌル終端文字列の、
+安全な割り当て、構築、および解放を可能にします。
+これらの関数は、文字の配列の代わりに、
+.In sys/sbuf.h
+で定義される
+.Fa sbuf
+と呼ばれる構造体を操作します。
+.Pp
+.Fn sbuf_new
+関数は最初の引数で指される
+.Fa sbuf
+を初期化します。
+そのポインタが
+.Dv NULL
+の場合には、
+.Fn sbuf_new
+は
+.Vt struct sbuf
+構造体を
+.Xr malloc 9
+を使用して割り当てます。
+.Fa buf
+引数は実際に文字列が格納されるバッファへのポインタで、
+.Dv NULL
+の場合には、
+.Fn sbuf_new
+は
+.Xr malloc 9
+を使用してバッファを割り当てます。
+.Fa length
+は格納バッファの初期の大きさです。
+4 番目の引数
+.Fa flags
+は以下のフラグから構成され得ます:
+.Bl -tag -width ".Dv SBUF_AUTOEXTEND"
+.It Dv SBUF_FIXEDLEN
+格納バッファは初期サイズで固定です。
+これを越えて sbuf を拡張しようとすると、オーバフロー状態となります。
+.It Dv SBUF_AUTOEXTEND
+これは、追加データの格納のために必要ならば、
+資源の許す限りにおいて、格納バッファは拡張可能であることを示します。
+.El
+.Pp
+.Fa buf
+が
+.Dv NULL
+でない場合には、少なくとも
+.Fa length
+文字以上の配列を指さなければならないことに注意してください。
+sbuf によって使用されている間に直接その配列にアクセスすることの結果は
+未定義です。
+.Pp
+.Fn sbuf_delete
+関数は
+.Fa sbuf
+をクリアして、そのために割り当てられた全てのメモリを開放します。
+全ての
+.Fn sbuf_new
+への呼び出しのための
+.Fn sbuf_delete
+の呼び出しがなければなりません。
+削除された後の sbuf への全てのアクセスの試みは失敗します。
+.Pp
+.Fn sbuf_clear
+関数は
+.Fa sbuf
+の内容を無効にし、位置を 0 にリセットします。
+.Pp
+.Fn sbuf_setpos
+関数は
+.Fa sbuf
+の終了位置を、0 と格納バッファの大きさよりも 1 小さい値の間の値である
+.Fa pos
+に設定します。
+結果として、新しい位置において sbuf の先端を切り捨てることになります。
+.Pp
+.Fn sbuf_bcat
+関数はバッファ
+.Fa buf
+の最初の
+.Fa len
+バイトを
+.Fa sbuf
+に追加します。
+.Pp
+.Fn sbuf_bcopyin
+関数は明示されたユーザ空間アドレスから
+.Fa sbuf
+に
+.Fa len
+バイトをコピーします。
+.Pp
+.Fn sbuf_bcpy
+関数は
+.Fa sbuf
+の内容をバッファ
+.Fa buf
+の最初の
+.Fa len
+バイトで置き換えます。
+.Pp
+.Fn sbuf_cat
+関数は NUL 文字で終端された文字列
+.Fa str
+を
+.Fa sbuf
+の現在位置に追加します。
+.Pp
+.Fn sbuf_copyin
+関数は NUL 文字で終端された文字列を明示されたユーザ空間アドレスから
+.Fa sbuf
+にコピーします。
+.Fa len
+引数が 0 でない場合には
+.Fa len
+文字を越えない文字 (終端の NUL は数えません) がコピーされ、
+そうでない場合には文字列全体、または
+.Fa sbuf
+に詰め込むことが出来るだけの文字をコピーします。
+.Pp
+.Fn sbuf_cpy
+関数は
+.Fa sbuf
+の内容を NUL 文字で終端された文字列
+.Fa str
+で置き換えます。
+これは新しい
+.Fa sbuf
+で、または
+.Fn sbuf_clear
+か
+.Fn sbuf_setpos
+でその位置を 0 にリセットされている
+.Fa sbuf
+で、
+.Fn sbuf_cat
+を呼び出すことと等価です。
+.Pp
+.Fn sbuf_printf
+関数は
+.Fa fmt
+によって指されているフォーマット文字列に従ってその引数をフォーマットし、
+その結果の文字列を
+.Fa sbuf
+の現在位置に追加します。
+.Pp
+.Fn sbuf_vprintf
+関数は
+.Fn sbuf_printf
+と同様に振舞いますが、引数が可変長引数リスト
+.Fa ap
+から取得されることが違います。
+.Pp
+.Fn sbuf_putc
+関数は文字
+.Fa c
+を
+.Fa sbuf
+の現在位置に追加します。
+.Pp
+.Fn sbuf_trim
+関数は末尾の空白を
+.Fa sbuf
+から除去します。
+.Pp
+.Fn sbuf_overflowed
+関数は
+.Fa sbuf
+がオーバフローしている場合に 0 以外の値を返します。
+.Pp
+.Fn sbuf_finish
+関数は
+.Fa sbuf
+をヌルで終端し、これ以上
+.Fn sbuf_setpos ,
+.Fn sbuf_cat ,
+.Fn sbuf_cpy ,
+.Fn sbuf_printf
+または
+.Fn sbuf_putc
+を使用して修正されることが無いことを意味する完了マークを付けます。
+.Pp
+.Fn sbuf_data
+および
+.Fn sbuf_len
+関数はそれぞれ現在の文字列とその長さを返します。
+.Fn sbuf_data
+は完了した
+.Fa sbuf
+に対してのみ機能します。
+.Fn sbuf_done
+はその sbuf が終了した場合には、0 でない値を返します。
+.Sh 注
+ある操作が
+.Fa sbuf
+をオーバフローさせた場合には、その
+.Fa sbuf
+が
+.Fn sbuf_finish
+を使用して完了させられる、または
+.Fn sbuf_clear
+を使用してリセットされる、または
+.Fn sbuf_setpos
+を使用してその位置を 0 から格納バッファの大きさより 1 小さい値までの値に
+リセットされる、または
+.Fn sbuf_cpy
+を使用して十分に短い文字列に初期化されるまでの間は、後に続くほとんどのその
+.Fa sbuf
+に対する操作は失敗するでしょう。
+.Sh 戻り値
+.Fn sbuf_new
+は格納バッファの割り当てに失敗した場合には
+.Dv NULL
+を返し、そうでない場合には新しい
+.Fa sbuf
+へのポインタを返します。
+.Pp
+.Fn sbuf_setpos
+は
+.Fa pos
+が不正な場合には \-1 を返し、そうでない場合には 0 を返します。
+.Pp
+.Fn sbuf_cat ,
+.Fn sbuf_cpy ,
+.Fn sbuf_printf ,
+.Fn sbuf_putc ,
+.Fn sbuf_trim
+は全てバッファがオーバフローした場合には \-1 を返し、
+そうでない場合には 0 を返します。
+.Pp
+.Fn sbuf_overflowed
+はバッファがオーバフローしている場合には 0 以外に値を返し、
+そうでない場合には 0 を返します。
+.Pp
+.Fn sbuf_data
+および
+.Fn sbuf_len
+はバッファがオーバフローしている場合には、それぞれ
+.Dv NULL
+および \-1 を返します。
+.Sh 関連項目
+.Xr printf 3 ,
+.Xr strcat 3 ,
+.Xr strcpy 3 ,
+.Xr copyin 9 ,
+.Xr copyinstr 9 ,
+.Xr printf 9
+.Sh 歴史
+.Nm sbuf
+ファミリの関数は
+.Fx 4.4
+ではじめて登場しました。
+.Sh 作者
+.An -nosplit
+.Nm sbuf
+ファミリの関数は
+.An Poul-Henning Kamp Aq phk@FreeBSD.org
+が設計し、
+.An Dag-Erling Sm\(/orgrav Aq des@FreeBSD.org
+が実装しました。
+追加の改良は
+.An Justin T. Gibbs Aq gibbs@FreeBSD.org
+が提案しました。
+自動拡張サポートは
+.An Kelly Yancey Aq kbyanc@FreeBSD.org
+が追加しました。
+.Pp
+このマニュアルページは
+.An Dag-Erling Sm\(/orgrav Aq des@FreeBSD.org
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/sema.9 b/documentation/manual-pages/ja/man9/sema.9
new file mode 100644
index 0000000000..9fec971d2a
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/sema.9
@@ -0,0 +1,129 @@
+.\"
+.\" 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.9 2004/07/07 19:57:15 ru Exp %
+.\" $FreeBSD$
+.\"
+.Dd June 14, 2004
+.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
+はセマフォの現在の値を読み出すために使用されます。
+.Sh 戻り値
+.Fn sema_value
+関数は現在のセマフォの値を返します。
+.Pp
+セマフォのデクリメントによりその値が負になった場合には、
+.Fn sema_trywait
+は失敗を示すために 0 を返します。
+そうでない場合には、成功を示すために 0 ではない値が返されます。
+.Pp
+.Fn sema_timedwait
+関数はそのセマフォ上でのウェイトが成功した場合には 0 を返し、
+そうでない場合には 0 ではないエラーコードが返されます。
+.Sh エラー
+.Fn sema_timedwait
+関数は以下の場合に失敗します。
+.Bl -tag -width Er
+.It Bq Er EWOULDBLOCK
+タイムアウトしました。
+.El
+.Sh 関連項目
+.Xr condvar 9 ,
+.Xr mtx_pool 9 ,
+.Xr mutex 9 ,
+.Xr sx 9
diff --git a/documentation/manual-pages/ja/man9/sleep.9 b/documentation/manual-pages/ja/man9/sleep.9
new file mode 100644
index 0000000000..f95baac582
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/sleep.9
@@ -0,0 +1,163 @@
+.\"
+.\" Copyright (c) 1996 Joerg Wunsch
+.\"
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/sleep.9,v 1.43.2.1 2005/01/10 08:27:21 cperciva Exp %
+.\" $FreeBSD$
+.\" "
+.Dd December 17, 1998
+.Os
+.Dt SLEEP 9
+.Sh 名称
+.Nm sleep ,
+.Nm msleep ,
+.Nm tsleep ,
+.Nm wakeup
+.Nd イベントのウェイト
+.Sh 書式
+.In sys/param.h
+.In sys/systm.h
+.In sys/proc.h
+.Ft int
+.Fn tsleep "void *ident" "int priority" "const char *wmesg" "int timo"
+.Ft int
+.Fn msleep "void *ident" "struct mtx *mtx" "int priority" "const char *wmesg" "int timo"
+.Ft void
+.Fn wakeup "void *ident"
+.Ft void
+.Fn wakeup_one "void *ident"
+.Sh 解説
+関数
+.Fn tsleep
+および
+.Fn wakeup
+はイベントに基づいたプロセスのブロックを取り扱います。
+プロセスが外部イベントを待たなければならない場合には、そのプロセスは
+.Fn tsleep
+によってスリープ状態に置かれます。
+パラメータ
+.Fa ident
+は、プロセスがどのイベント上でスリープしているかを識別する一意的な
+任意のアドレスです。
+単一の
+.Fa ident
+上でスリープしている全てのプロセスは後で、
+.Fn wakeup
+によって起こされます。
+これは、しばしば割り込みルーチンの中から呼び出され、
+プロセスがブロックしているリソースが現在利用可能になったことを示します。
+.Pp
+パラメータ
+.Fa wmesg
+は
+.Xr ps 1
+のようなツールのためのスリープ状態を解説する文字列です。
+これらのプログラムの任意の文字列を表示するための領域の制限のため、
+このメッセージは 6 文字を超えるべきではありません。
+.Pp
+.Fn wakeup_one
+関数はパラメータ
+.Fa ident
+上でスリープしているキューの中の最初のプロセスを実行可能に
+するために使用されます。
+これは、多数のプロセスが同じアドレス上でスリープしているが、
+実行可能となったときその中の 1 つのみが実際には役に立つ作業ができるときに、
+システムが飽和することを防ぐことが可能です。
+.Pp
+.Fn tsleep
+関数は一般的なスリープの呼び出しです。
+明示された識別子上の wakeup が実行されるまでの間、
+現在のプロセスを一時停止させます。
+それからそのプロセスは明示された優先度
+.Fa priority
+で実行可能にされます。
+長くて
+.Fa timo
+\&/ hz 秒間 (0 はタイムアウトなしを意味します) スリープします。
+.Va Giant
+ロックが保持されていないなら、
+.Fa timo
+は 0 以外でなければなりません。
+.Fa priority
+が
+.Dv PCATCH
+フラグを含む場合には、スリープの前後でシグナルがチェックされます。
+そうでない場合には、シグナルはチェックされません。
+起こされた場合には 0 を返し、タイムアウトが経過した場合には
+.Er EWOULDBLOCK
+を返します。
+.Dv PCATCH
+が設定されていてシグナルが配信される必要がある場合で、
+可能であれば現在のシステムコールが再開始されるべきである場合には
+.Er ERESTART
+が返され、
+.Er ( EINTR
+を返す) シグナルによってそのシステムコールが中断されるべき場合には
+.Er EINTR
+が返されます。
+.Pp
+.Fn msleep
+関数は tsleep の変種です。
+パラメータ
+.Fa mtx
+は、スリープの前に抜け、
+.Fn msleep
+が戻る前に入る mutex です。
+.Fa priority
+が
+.Dv PDROP
+フラグを含む場合には、戻る前に
+.Fa mtx
+引数を再取得しません。
+ある状態を不可分にチェックできることを保証し、
+その状態の変更も対応する wakeup も失うことなく
+現在のプロセスを中断できることを保証するために、
+この mutex は使用されます。
+.Sh 戻り値
+上記を参照してください。
+.Sh 関連項目
+.Xr ps 1 ,
+.Xr malloc 9 ,
+.Xr mi_switch 9
+.Sh 歴史
+sleep/wakeup プロセス同期機構はとても古いです。
+これはとても早期のバージョンの
+.Ux
+で登場しました。
+.Pp
+.Fn tsleep
+関数は
+.Bx 4.4
+で登場しました。
+.Pp
+.Fn sleep
+関数は伝統的な形式でした。
+これはタイムアウトも
+.Fa wmesg
+も指定できないため、使用取り止めとなりました。
+.Sh 作者
+.An -nosplit
+このマニュアルページは
+.An J\(:org Wunsch Aq joerg@FreeBSD.org
+によって書かれました。
diff --git a/documentation/manual-pages/ja/man9/spl.9 b/documentation/manual-pages/ja/man9/spl.9
new file mode 100644
index 0000000000..e645e0eea3
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/spl.9
@@ -0,0 +1,211 @@
+.\"
+.\" Copyright (c) 1996 Joerg Wunsch
+.\"
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/spl.9,v 1.19 2004/07/03 18:29:24 ru Exp %
+.\" $FreeBSD$
+.\"
+.Dd July 21, 1996
+.Os
+.Dt SPL 9
+.Sh 名称
+.Nm splbio ,
+.Nm splclock ,
+.Nm splhigh ,
+.Nm splimp ,
+.Nm splnet ,
+.Nm splsoftclock ,
+.Nm splsofttty ,
+.Nm splstatclock ,
+.Nm spltty ,
+.Nm splvm ,
+.Nm spl0 ,
+.Nm splx
+.Nd 割り込み優先度の操作
+.Sh 書式
+.In sys/types.h
+.In sys/systm.h
+.Ft intrmask_t
+.Fn splbio "void"
+.Ft intrmask_t
+.Fn splclock "void"
+.Ft intrmask_t
+.Fn splhigh "void"
+.Ft intrmask_t
+.Fn splimp "void"
+.Ft intrmask_t
+.Fn splnet "void"
+.Ft intrmask_t
+.Fn splsoftclock "void"
+.Ft intrmask_t
+.Fn splsofttty "void"
+.Ft intrmask_t
+.Fn splstatclock "void"
+.Ft intrmask_t
+.Fn spltty "void"
+.Ft void
+.Fn spl0 "void"
+.Ft void
+.Fn splx "intrmask_t ipl"
+.Sh 解説
+.Bf -symbolic
+この API は推奨されていません。
+データ構造を保護するためには、代わりに mutex を使用します。
+詳細情報は
+.Xr mutex 9
+を参照してください。
+.Ef
+.Pp
+.Fn spl
+関数ファミリは CPU の割り込み優先度の
+.Dq レベル
+を設定します。
+これはブロックされた優先度レベルの割り込みハンドラの実行を抑制します。
+割り込みハンドラによって調査あるいは修正されたであろうデータ領域を
+調査あるいは修正するドライバの
+.Dq synchronous
+部分(ユーザプロセスを代表して実行される部分)で使用されます。
+.Pp
+通常それぞれの割り込みを使用するドライバは、
+config ファイルのキーワードによって 1 つの
+割り込み優先度グループに割り当てられます。
+例えば、
+.Bd -literal -offset indent
+device foo0 at isa? port 0x0815 irq 12 tty
+.Ed
+.Pp
+は、割り込み 12 を
+.Dq tty
+優先度グループに割り当てます。
+システムは自動的に
+.Em xxx
+グループの割り込みを優先度が
+.Ns spl Ns Em xxx
+\&()
+以上の時に呼ばれるように準備します。
+.Pp
+.Fn splx
+関数は割り込み優先度レベルを絶対的な数値に設定します。
+これは別の割り込みレベル関数が返した値をローカルの変数に保存して、
+後で元の優先度レベルに戻すために
+.Fn splx
+を使用する事を意図しています。
+.Pp
+.Fn spl0
+関数は全ての割り込みハンドラをブロックしない値に優先度を減少させます。
+ただし、AST(非同期システムトラップ)はシステムが
+ユーザモードに戻るまでの間はブロックされます。
+.Pp
+いろいろなデバイスドライバの割り込み優先度グループの伝統的な割り当ては、
+おおよそ次のように分類できます。
+.Bl -tag -width Fn
+.It Fn splnet
+ネットワークインタフェースドライバのソフトウェア部分。
+.It Fn splimp
+全てのネットワークインタフェースドライバ。
+.It Fn splbio
+全ての
+.Em バッファ入出力
+(つまりディスクなど)のドライバ。
+.It Fn spltty
+基本的にはネットワーク以外の通信デバイスですが、
+事実上はネットワークとディスク以外の全てのドライバ。
+.El
+.Sh 戻り値
+.Fn splx
+および
+.Fn spl0
+以外の全ての関数は、操作前の優先度の値を返します。
+.Sh 使用例
+以下は、標準的な使用例です。
+.Bd -literal
+struct foo_softc {
+ ...
+ int flags;
+#define FOO_ASLEEP 1
+#define FOO_READY 2
+
+} foo_softc[NFOO];
+
+int
+foowrite(...)
+{
+ struct foo_softc *sc;
+ int s, error;
+
+ ...
+ s = spltty();
+ if (!(sc->flags & FOO_READY)) {
+ /* 準備ができていません、待機しなければなりません */
+ sc->flags |= FOO_ASLEEP;
+ error = tsleep(sc, PZERO, "foordy", 0);
+ sc->flags &= ~FOO_ASLEEP;
+ }
+ sc->flags &= ~FOO_READY;
+ splx(s);
+
+ ...
+}
+
+void
+foointr(...)
+{
+ struct foo_softc *sc;
+
+ ...
+ sc->flags |= FOO_READY;
+ if (sc->flags & FOO_ASLEEP)
+ /* 誰かが我々を待っています、起こしてください */
+ wakeup(sc);
+ ...
+}
+
+.Ed
+割り込みハンドラは
+.Em 絶対に
+優先度レベルを減少させるべきではない、ということに注意してください。
+自動的に、自分のレベルの割り込み優先度に増加させられます。
+すなわち、同じグループの全ての割り込みはブロックされます。
+.Sh 歴史
+割り込み優先度レベルは早期のバージョンの
+.Ux
+で登場しました。
+伝統的には名前ではなく数字が使われていて、そのレベルまでの全てを含んで
+(優先度 5 はレベル 5 までの全てをブロックします)いた事が知られています。
+これは
+.Fx
+にはあてはまりません。
+伝統的な名前
+.Ql level
+はいまだに文字
+.Ql l
+としてそれぞれの関数や変数の名前に反映されています。
+しかし、実際にはもはやレベルではなく、
+むしろ異なった(部分的に含まれた)関数群がシステムのある期間ブロックされます。
+歴史的な番号による方法は単純で順番通りの
+割り込み優先度レベルグループであるとみなす事ができます。
+.Sh 作者
+このマニュアルページは
+.An J\(:org Wunsch
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/store.9 b/documentation/manual-pages/ja/man9/store.9
new file mode 100644
index 0000000000..72b202a59b
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/store.9
@@ -0,0 +1,91 @@
+.\" %NetBSD: store.9,v 1.2 1996/01/09 21:59:27 perry Exp %
+.\"
+.\" Copyright (c) 1996 Jason R. Thorpe.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed by Kenneth Stailey.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed for the NetBSD Project
+.\" by Jason R. Thorpe.
+.\" 4. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/store.9,v 1.11 2001/10/01 16:09:25 ru Exp %
+.\" $FreeBSD$
+.\"
+.Dd January 7, 1996
+.Dt STORE 9
+.Os
+.Sh 名称
+.Nm store ,
+.Nm subyte ,
+.Nm susword ,
+.Nm suswintr ,
+.Nm suword
+.Nd ユーザ空間へのデータの格納
+.Sh 書式
+.In sys/types.h
+.In sys/time.h
+.In sys/systm.h
+.In sys/resourcevar.h
+.Ft int
+.Fn subyte "void *base" "int byte"
+.Ft int
+.Fn susword "void *base" "int word"
+.Ft int
+.Fn suswintr "void *base" "int word"
+.Ft int
+.Fn suword "void *base" "long word"
+.Sh 解説
+.Nm
+関数群はユーザ空間へ小さなデータをコピーするようにデザインされています。
+.Pp
+.Nm
+ルーチンは以下の機能を提供します。
+.Bl -tag -width "suswintr()"
+.It Fn subyte
+1 バイトのデータをユーザ空間のアドレス
+.Pa base
+へ格納します。
+.It Fn susword
+1 ショートワードのデータをユーザ空間のアドレス
+.Pa base
+へ格納します。
+.It Fn suswintr
+1 ショートワードのデータをユーザ空間のアドレス
+.Pa base
+へ格納します。
+この関数は割り込みコンテキスト中でも安全に呼び出せます。
+.It Fn suword
+1 ワードのデータをユーザ空間のアドレス
+.Pa base
+へ格納します。
+.El
+.Sh 戻り値
+.Nm
+関数は 0 を返しますが、失敗した場合は -1 を返します。
+.Sh 関連項目
+.Xr copy 9 ,
+.Xr fetch 9
diff --git a/documentation/manual-pages/ja/man9/style.9 b/documentation/manual-pages/ja/man9/style.9
new file mode 100644
index 0000000000..977f4dd5d2
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/style.9
@@ -0,0 +1,846 @@
+.\"-
+.\" Copyright (c) 1995-2005 The FreeBSD Project
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL [your name] OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/style.9,v 1.110.2.1 2005/03/01 12:44:49 brueffer Exp %
+.\" $FreeBSD$
+.\"
+.Dd December 7, 2001
+.Dt STYLE 9
+.Os
+.Sh 名称
+.Nm style
+.Nd カーネルソースファイルのスタイルガイド
+.Sh 解説
+このファイルは
+.Fx
+ソースツリーのカーネルソースに好ましいスタイルを明記しています。
+これはユーザランドのコードスタイルの手引きでもあります。
+例において、スタイル規則の多くを暗黙的に使用しています。
+.Nm
+がこれらの事例について言及していないと決め付ける前に、
+注意して例を確認してください。
+.Nm
+はそのような事柄については記述していません。
+.\" $ と FreeBSD を続けるとキーワード置換されるので、\& を挿入
+.\" 2001/05/23 horikawa@jp.FreeBSD.org
+.Bd -literal
+/*
+ * FreeBSD のためのスタイルガイドです。
+ * CSRG の KNF (Kernel Normal Form, カーネル標準書式) に基づいています。
+ *
+ * @(#)style 1.14 (Berkeley) 4/28/95
+ * $\&FreeBSD: src/share/man/man9/style.9,v 1.110.2.1 2005/03/01 12:44:49 brueffer Exp $
+ */
+
+/*
+ * とても重要な 1 行のコメントはこのようにします。
+ */
+
+/* 殆どの 1 行のコメントはこのようにします。 */
+
+/*
+ * 複数行にわたるコメントはこのようにします。実際の文章を書きます。実際の
+ * 段落に見えるように埋めていきます。
+ */
+.Ed
+.Pp
+著作権のヘッダは複数行にわたるコメントであるべきで、
+コメントの最初の行は次のように星 (アスタリスク) の後ろにダッシュ (-) を
+付けます:
+.Bd -literal
+/*-
+ * Copyright (c) 1984-2025 John Q. Public. All Rights Reserved.
+ *
+ * 長くて、退屈なライセンスはここに記述しますが、簡潔にするために
+ * 編集しています
+ */
+.Ed
+.Pp
+自動スクリプトは最初のカラムが
+.Dq Li "/*-"
+で始まるすべてのコメントを対照としてツリーからライセンス情報を集めます。
+利用者がライセンスまたは著作権表示でもない最初のカラムで始まるコメントを
+最初のカラムから始まるコメントでライセンスや著作権表示でないものを
+.Xr indent 1
+に再整形させたくない場合は、
+それらのコメントのダッシュを星に変えてください。
+最初のカラム以外から始まるコメントは
+決してライセンス声明とはみなしません。
+.Pp
+著作権ヘッダの後には空行を 1 行入れ、ソースファイルには
+.Va rcsid
+を付けます。
+バージョン管理システムの ID タグは、ファイル中に 1 個のみあるべきです
+(このファイルでは違いますが)。
+C/C++ ソースファイル以外はこの例に従いますが、
+C/C++ ソースファイルは以降の例に従います。
+外部から入手したファイルの
+すべての VCS (バージョン管理システム) リビジョン識別子は、
+存在すれば維持します。
+これには、ファイルの来歴を示す複数の ID も含みます。
+一般的に、外来の ID またはその下部構造は編集しません。
+さもなければ
+.Dq ( Li "#if defined(LIBC_SCCS)"
+のように) 囲まれていない場合には、全ての互換性のない小片を隠すため、および
+その ID をオブジェクトファイルから追い出しておくために、両方を
+.Dq Li "#if 0 ... #endif"
+の中に囲みます。
+ファイルの名前が変更された場合には、外来の VCS ID の前に
+.Dq Li "From: "
+のみを追加します。
+.Bd -literal
+#if 0
+#ifndef lint
+static char sccsid[] = "@(#)style 1.14 (Berkeley) 4/28/95";
+#endif /* not lint */
+#endif
+
+#include <sys/cdefs.h>
+__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 )
+が初めに来ます。
+通常、
+.In sys/types.h
+または
+.In sys/param.h
+のどちらかが必要ですが、
+両方は必要ないでしょう。
+.In sys/types.h
+は
+.In sys/cdefs.h
+をインクルードしており、
+依存関係は問題ありません。
+.Bd -literal
+#include <sys/types.h> /* 山括弧による非ローカルインクルード */
+.Ed
+.Pp
+ネットワークプログラムである場合は、
+次にネットワークインクルードファイルを置きます。
+.Bd -literal
+#include <net/if.h>
+#include <net/if_dl.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <protocols/rwhod.h>
+.Ed
+.Pp
+カーネル用のファイルには、
+.Pa /usr/include
+中のファイルを使用しないでください。
+.Pp
+それから空行を置き、
+.Pa /usr/include
+のファイルを続けます。
+.Pa /usr/include
+のファイルはアルファベット順にソートされているべきです。
+.Bd -literal
+#include <stdio.h>
+.Ed
+.Pp
+グローバルなパス名は
+.In paths.h
+で定義されています。
+プログラムにローカルなパス名はローカルディレクトリの
+.Qq Pa pathnames.h
+に入れます。
+.Bd -literal
+#include <paths.h>
+.Ed
+.Pp
+それから、空行があって、ユーザインクルードファイルが来ます。
+.Bd -literal
+#include "pathnames.h" /* " " によるローカルインクルード */
+.Ed
+.Pp
+アプリケーションインタフェースを実装している場合を除き、
+実装の名前空間で
+.Ic #define
+したり名前を定義したりしてはいけません。
+.Pp
+.Dq 安全でない
+マクロ (副作用を持っているもの) の名前と、
+明らかな定数のマクロの名前はすべて大文字です。
+式のように展開されるマクロは、単一のトークンにするか外側に括弧をつけます。
+.Ic #define
+とマクロ名の間にタブ文字を 1 個入れます。
+マクロがある関数のインライン展開である場合は、
+関数名は全て小文字で、マクロはすべて大文字の同じ名前を持ちます。
+.\" XXX 上記は名前が同じマクロを #undef すれば関数を使える
+.\" という ANSI のスタイルと衝突します。
+.\" これは MALLOC() については言えないし、インライン関数を使う時の
+.\" 一般的なやりかたではありません。
+バックスラッシュは右揃えします。
+こうすると読みやすくなります。
+マクロが複合文をカプセル化する場合には、それを
+.Ic do
+ループで囲みます。
+これにより、
+.Ic if
+文で安全に使用できます。
+最後の文の終端のセミコロンは、
+マクロではなくマクロの実施時に付けられるべきです。
+これにより、清書器やエディタで文法解析しやすくなります。
+.Bd -literal
+#define MACRO(x, y) do { \e
+ variable = (x) + (y); \e
+ (y) += 2; \e
+} while (0)
+.Ed
+.Pp
+コードが
+.Ic #ifdef
+または
+.Ic #if
+を使用して条件付きでコンパイルされるときには、
+どこで条件付きでコンパイルされるコードが終了するのかを
+読む人が容易に識別することが可能にするために、それに続く適合する
+.Ic #endif
+または
+.Ic #else
+にコメントを追加しても構いません。
+このコメントは (主観的に) 長い部分、20 行以上の部分、またはネストされた
+.Ic #ifdef
+の連続が読む人を混乱させるかもしれないとき、にのみ使用されるべきです。
+たとえコンパイルされない領域が小さくなるかもしれないでも、
+.Xr lint 1
+の目的のために条件付きでコンパイルされない個所のために、
+例外が作られても構いません。
+そのコメントは
+.Ic #endif
+または
+.Ic #else
+から 1 つの空白によって分離されるべきです。
+短い条件付きでコンパイルされる部分のために、
+終わりのコメントを使用するべきではありません。
+.Pp
+.Ic #endif
+のためのコメントは対応する
+.Ic #if
+または
+.Ic #ifdef
+で使用されている表現に合わせるべきです。
+.Ic #else
+および
+.Ic #elif
+のためのコメントは先行する
+.Ic #if
+および/または
+.Ic #elif
+文に使用されている表現の反対に合わせるべきです。
+コメントの中では、補助表現
+.Dq Li defined(FOO)
+は
+.Dq Li FOO
+と省略されます。
+コメントの目的のためには、
+.Dq Ic #ifndef Li FOO
+は
+.Dq Ic #if Li !defined(FOO)
+とみなされます。
+.Bd -literal
+#ifdef KTRACE
+#include <sys/ktrace.h>
+#endif
+
+#ifdef COMPAT_43
+/* 大きな部分が、または他の条件付きのコードがここに */
+#else /* !COMPAT_43 */
+/* またはここに */
+#endif /* COMPAT_43 */
+
+#ifndef COMPAT_43
+/* 更に別の大きな部分が、または他の条件付きのコードがここに */
+#else /* COMPAT_43 */
+/* またはここに */
+#endif /* !COMPAT_43 */
+.Ed
+.Pp
+このプロジェクトは、
+.Vt u_intXX_t
+形式の古い
+.Bx
+スタイルの整数識別子よりもむしろ、
+.Vt uintXX_t
+形式の
+.St -isoC-99
+の符号なし整数識別子を使用するように、徐々に移行しています。
+新しいコードは後者を使用するべきで、さらにその領域の他の主要な作業が完了し、
+古い
+.Bx
+スタイルを好むための優先する理由がない場合には、古いコードは
+新しい形式に変換されるべきです。
+空白文字のコミットと同様に、
+.Vt uintXX_t
+のみのコミットをするよう、考慮すべきです。
+.Pp
+列挙値は全て大文字を使用します。
+.Bd -literal
+enum enumtype { ONE, TWO } et;
+.Ed
+.Pp
+宣言の中では、型に関係付けられたトークンを除いて、
+アスタリスクと隣接したトークンの間には空白文字を置きません。
+(これらの識別子は基本の型の名前、型の修飾語句、および今宣言されようとしている
+もの以外の
+.Ic typedef
+名です。)
+これらの識別子はアスタリスクから 1 つの空白で分離します。
+.Pp
+構造体の中で変数を宣言する時には、
+使用順、サイズ順 (大きいものから小さなものへ)、
+アルファベット順にソートして宣言します。
+最初の区分は通常適用しませんが、例外があります。
+各宣言は、それぞれ独立した行にて行います。
+構造体の名前の位置を、あなたの判断で読み易いように、
+タブ 1 個または 2 個を使用して揃えてください。
+少なくとも 90% のメンバの名前を揃えるのに十分な場合には、
+1 つだけのタブを使用するべきです。
+非常に長い型の後の名前は、単一の空白で区切られるべきです。
+.Pp
+重要な構造体は、それが使用されるファイルの先頭で宣言されるか、
+複数のソースファイルで使用される場合は別のヘッダファイルで宣言されるべきです。
+構造体がヘッダファイルで宣言されている場合には、
+それら構造体の使用は、宣言とは分けられるべきで、かつ
+.Ic extern
+であるべきです。
+.Bd -literal
+struct foo {
+ struct foo *next; /* 使用中の foo のリスト */
+ struct mumble amumble; /* mumble のコメント */
+ int bar; /* コメントを揃えます */
+ struct verylongtypename *baz; /* タブ 2 個には収まりません */
+};
+struct foo *foohead; /* グローバルな foo リストの先頭 */
+.Ed
+.Pp
+可能な時には必ず、あなた自身でリストを操作するのではなく、
+.Xr queue 3
+マクロを使用してください。
+従って、前の例をより良く書くと次のようになります。
+.Bd -literal
+#include <sys/queue.h>
+
+struct foo {
+ LIST_ENTRY(foo) link; /* foo リストにキューマクロを使用 */
+ struct mumble amumble; /* mumble のコメント */
+ int bar; /* コメントを揃えます */
+ struct verylongtypename *baz; /* タブ 2 個には収まりません */
+};
+LIST_HEAD(, foo) foohead; /* グローバルな foo リストの先頭 */
+.Ed
+.Pp
+構造体の型に typedef を使用する事は避けてください。
+typedef は、その下位にある型を適切に隠さないので、問題となり得ます。
+例えば、typedef が構造体そのものであるのか、構造体へのポインタであるのか、
+あなたが知る必要があります。
+更に、typedef は正確に 1 度だけ宣言しなければなりませんが、
+不完全な構造体型は必要な回数だけ宣言可能です。
+typedef はスタンドアロンなヘッダファイル中で使用することが困難です。
+typedef を定義するヘッダは、この typedef を使用するヘッダの前に
+インクルードするか、この typedef を使用するヘッダによってインクルード
+する必要があります (これは名前空間の汚染となります)。
+さもなければ、typedef を得るための裏口が必要となってしまいます。
+.Pp
+規約が
+.Ic typedef
+を要求する場合には、その名前を構造体タグに一致させます。
+標準 C または
+.Tn POSIX
+によって明示されたものを除いては、
+.Dq Li _t
+で終る typedef を避けてください。
+.Bd -literal
+/* 構造体名と typedef を一致させます */
+typedef struct bar {
+ int level;
+} BAR;
+typedef int foo; /* これは foo です */
+typedef const long baz; /* これは baz です */
+.Ed
+.Pp
+全ての関数はどこかでプロトタイプされます。
+.Pp
+私的な関数 (すなわち、他のどこでも使用されない関数など) の関数プロトタイプは、
+最初のソースモジュールの先頭に置かれます。
+単一のソースモジュールにローカルな関数は、
+.Ic static
+で宣言されるべきです。
+.Pp
+カーネルの別の部分から使用される関数は、
+関連のあるインクルードファイルの中でプロトタイプされます。
+関数プロトタイプは、異なる順序の使用を強制する理由がない場合には、
+なるべくアルファベット順の論理的な順序で整列されるべきです。
+.Pp
+複数のモジュールでローカルに使用される関数は、
+.Qq Pa extern.h
+等の分離したヘッダファイルの中に置かれます。
+.Pp
+.Dv __P
+マクロは使用しません。
+.Pp
+ファイルの 50% かそれ以上を巻き込んだ修正の場合は、
+一般にコードは
+.Dq 新しいコード
+とみなすことができます。
+これは既存のコードの慣例を破り、
+現在の
+.Nm
+ガイドラインを使用するのに十分です。
+.Pp
+カーネルはパラメータの型に関連付けられた名前を持ちます。
+例えば、カーネル内で次のように使用します:
+.Bd -literal
+void function(int fd);
+.Ed
+.Pp
+ユーザランドのアプリケーションに対して見えるヘッダファイルの中では、
+可視のプロトタイプは、
+型を伴った
+.Dq 保護された
+(アンダスコアで開始する) 名前を使用するか、
+型だけで名前を使用しないかのどちらかが必要です。
+保護された名前の使用がより望ましいです。
+例えば、次のように使用します:
+.Bd -literal
+void function(int);
+.Ed
+.Pp
+または
+.Bd -literal
+void function(int _fd);
+.Ed
+.Pp
+プロトタイプは関数名の行揃えを行なうために、次のように
+タブの後に追加のスペース文字を置いても構いません:
+.Bd -literal
+static char *function(int _arg, const char *_arg2, struct foo *_arg3,
+ struct bar *_arg4);
+static void usage(void);
+
+/*
+ * 全ての主要なルーチンはそれが何をするのかを簡潔に記述した
+ * コメントを持つべきです。 "main" ルーチンの前のコメントは
+ * そのプログラムが何をするのかを記述するべきです。
+ */
+int
+main(int argc, char *argv[])
+{
+ char *ep;
+ long num;
+ int ch;
+.Ed
+.Pp
+一貫性のために、オプションの解析には
+.Xr getopt 3
+が使用されるべきです。
+.Xr getopt 3
+呼び出しと
+.Ic switch
+文では、オプションをソートすべきですが、
+.Ic switch
+文のカスケードの一部の場合は例外です。
+.Ic switch
+文のカスケード要素は
+.Li FALLTHROUGH
+コメントを持つべきです。
+数値の引数は精度をチェックされるべきです。
+到達できないコードは
+.Li NOTREACHED
+コメントを持つべきです。
+.Bd -literal
+ while ((ch = getopt(argc, argv, "abNn:")) != -1)
+ switch (ch) { /* switch をインデント */
+ case 'a': /* case はインデントしない */
+ aflag = 1;
+ /* FALLTHROUGH */
+ case 'b':
+ bflag = 1;
+ break;
+ case 'N':
+ Nflag = 1;
+ break;
+ case 'n':
+ num = strtol(optarg, &ep, 10);
+ if (num <= 0 || *ep != '\e0') {
+ warnx("illegal number, -n argument -- %s",
+ optarg);
+ usage();
+ }
+ break;
+ case '?':
+ default:
+ usage();
+ /* NOTREACHED */
+ }
+ argc -= optind;
+ argv += optind;
+.Ed
+.Pp
+予約語
+.Pq Ic if , while , for , return , switch
+の後にスペースを入れます。
+何も伴わないか、ただ 1 つの文を伴う制御文は、ブレース
+.Ql ( \&{
+および
+.Ql \&} )
+を使用しません。
+1 つの文が 複数行である文の場合には、これは許されます。
+無限ループは
+.Ic while
+ではなく
+.Ic for
+で行ないます。
+.Bd -literal
+ for (p = buf; *p != '\e0'; ++p)
+ ; /* 何もなし */
+ for (;;)
+ stmt;
+ for (;;) {
+ z = a + really + long + statement + that + needs +
+ two + lines + gets + indented + four + spaces +
+ on + the + second + and + subsequent + lines;
+ }
+ for (;;) {
+ if (cond)
+ stmt;
+ }
+ if (val != NULL)
+ val = realloc(val, newsize);
+.Ed
+.Pp
+.Ic for
+ループの各部は空のまま残しても構いません。
+異常に複雑なルーチンでない限りは、ブロックの中に宣言を置いてはなりません。
+.Bd -literal
+ for (; cnt < 15; cnt++) {
+ stmt1;
+ stmt2;
+ }
+.Ed
+.Pp
+インデントは 8 文字のタブです。
+第 2 レベルのインデントは 4 文字のスペースです。
+長い分を折り返す必要がある場合、オペレータを行末に置きます。
+.Bd -literal
+ while (cnt < 20 && this_variable_name_is_too_long &&
+ ep != NULL)
+ z = a + really + long + statement + that + needs +
+ two + lines + gets + indented + four + spaces +
+ on + the + second + and + subsequent + lines;
+.Ed
+.Pp
+空白文字を行末に追加してはいけません。
+また、インデントを形成するためには、タブとその後にスペースのみを使用します。
+タブが生み出す以上のスペースや、タブの前のスペースは使用しません。
+.Pp
+ブレースの終了と開始は
+.Ic else
+と同じ行に置かれます。
+必要でないブレースは省いても構いません。
+.Bd -literal
+ if (test)
+ stmt;
+ else if (bar) {
+ stmt;
+ stmt;
+ } else
+ stmt;
+.Ed
+.Pp
+関数名の後はスペースを空けません。
+コンマの後にはスペースを持ちます。
+.Ql \&(
+または
+.Ql \&[
+の後ろまたは
+.Ql \&]
+または
+.Ql \&)
+の前にはスペースを空けません。
+.Bd -literal
+ error = function(a1, a2);
+ if (error != 0)
+ exit(error);
+.Ed
+.Pp
+単項演算子はスペースを要求しませんが、二項演算子は要求します。
+優先順位が要求する場合または文が括弧なしでは混乱する場合以外は、
+括弧は使用しません。
+他人はあなたよりも混乱しやすいかもしれないということを覚えておいてください。
+あなたは以下を理解できますか?
+.Bd -literal
+ a = b->c[0] + ~d == (e || f) || g && h ? i : j >> 1;
+ k = !(l & FLAGS);
+.Ed
+.Pp
+成功時には 0 で、または
+.Xr sysexits 3
+にあらかじめ定義してある値で exit するべきです。
+.Bd -literal
+ exit(EX_OK); /*
+ * "Exit 0 on success." (成功時は 0 で終了)
+ * の様に分かりきったコメントは避けてください
+ */
+}
+.Ed
+.Pp
+関数の型は、関数自身に先行する行にあるべきです。
+関数の本体の開始のブレースは、単独で 1 行であるべきです。
+.Bd -literal
+static char *
+function(int a1, int a2, float fl, int a4)
+{
+.Ed
+.Pp
+関数の中で変数を宣言する時には、サイズ順に、次にアルファベット順に
+ソートして宣言します。
+1 行に複数の宣言は可能です。
+行が溢れる場合は、型の予約語を再度使用します。
+.Pp
+宣言時に変数を初期化することによってコードを
+不明瞭にしない様に注意してください。
+この機能は良く考えて使用してください。
+初期化に関数呼び出しを使用しないでください。
+.Bd -literal
+ struct foo one, *two;
+ double three;
+ int *four, five;
+ char *six, seven, eight, nine, ten, eleven, twelve;
+
+ four = myfunction();
+.Ed
+.Pp
+他の関数の内部で関数を宣言しないでください。
+ANSI C によると、このような宣言は、宣言のネスティングによらず、
+ファイルスコープになります。
+ローカルスコープに見えるものの中にファイルの宣言を隠すことは好ましくなく、
+良いコンパイラは苦情を言います。
+.Pp
+キャストと
+.Ic sizeof
+演算子の後にはスペースを続けません。
+この規則は
+.Xr indent 1
+が理解しないことに注意してください。
+.Ic sizeof
+は常に括弧をつけて書かれます。
+冗長な括弧の規則は
+.Fn sizeof var
+の事例には適用されません。
+.Pp
+.Dv NULL
+は、好まれるヌルポインタ定数です。
+コンパイラが型を知っている文脈、例えば代入では、
+.Vt ( "type *" ) Ns 0
+または
+.Vt ( "type *" ) Ns Dv NULL
+の代わりに、
+.Dv NULL
+を使用します。
+他の文脈では、特に全ての関数の引数では、
+.Vt ( "type *" ) Ns Dv NULL
+を使用します。
+(関数のプロトタイプがスコープ外かもしれない場合に、
+キャストはいろいろな引数にとって必須で、その他の引数にとっても必要です。)
+ポインタは
+.Dv NULL
+と比較します。
+例えば、次のように使います:
+.Pp
+.Bd -literal
+(p = f()) == NULL
+.Ed
+.Pp
+次のようには使いません:
+.Bd -literal
+!(p = f())
+.Ed
+.Pp
+真理値 (ブール値) ではない場合、テストには
+.Ic \&!
+を使用しないでください。
+例えば、次のように使います:
+.Bd -literal
+if (*p == '\e0')
+.Ed
+.Pp
+次のようには使いません:
+.Bd -literal
+if (!*p)
+.Ed
+.Pp
+.Vt "void *"
+を返すルーチンでは、
+戻り値をどのポインタ型にもキャストしてはなりません。
+.Pp
+.Ic return
+文の値は括弧で囲まれているべきです。
+.Pp
+.Xr err 3
+または
+.Xr warn 3
+を使用し、勝手に作らないでください。
+.Bd -literal
+ if ((four = malloc(sizeof(struct foo))) == NULL)
+ err(1, (char *)NULL);
+ if ((six = (int *)overflow()) == NULL)
+ errx(1, "number overflowed");
+ return (eight);
+}
+.Ed
+.Pp
+古いスタイルの関数宣言はこのようになっています:
+.Bd -literal
+static char *
+function(a1, a2, fl, a4)
+ int a1, a2; /* int 型も宣言します、デフォルトにしないこと */
+ float fl; /* double と float の違いに気を付けてください */
+ int a4; /* 出てきた順に宣言します */
+{
+.Ed
+.Pp
+あなたが明確に K&R との互換性を必要とする場合以外は、
+ANSI の関数宣言を使用してください。
+長いパラメータリストの折り返しには、
+4 個の空白による通常のインデントを付けます。
+.Pp
+可変個数の引数はこのようにします:
+.Bd -literal
+#include <stdarg.h>
+
+void
+vaf(const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ STUFF;
+ va_end(ap);
+ /* void 型の関数に return は不要です */
+}
+
+static void
+usage()
+{
+ /* 関数がローカル変数を持たない場合、空行をいれます */
+.Ed
+.Pp
+.Xr fputs 3 ,
+.Xr puts 3 ,
+.Xr putchar 3
+等ではなく、
+.Xr printf 3
+を使用してください。
+これは速くて大抵はきれいで、言うまでもなくつまらないバグを避けます。
+.Pp
+使用法 (usage) の文はマニュアルページの
+.Sx SYNOPSIS
+(書式) の様であるべきです。
+使用法の文は、次の構造であるべきです:
+.Bl -enum
+.It
+オペランドの無いオプションが、最初にアルファベット順に、
+1 組の大括弧
+.Ql ( \&[
+と
+.Ql \&] )
+でくくられます。
+.It
+オプションとそのオペランドがこれもアルファベット順に続き、
+それぞれのオプションとその引数を 1 組の大括弧でくくります。
+.It
+必須の引数
+(もしあれば)
+が続き、
+コマンドラインで指定されるべき順で一覧されます。
+.It
+最後に、
+すべての任意の引数が指定されるべき順で、
+すべて大括弧の中に一覧されます。
+.El
+.Pp
+縦棒
+.Pq Ql \&|
+は、
+.Dq 二者択一
+のオプションまたは引数を分割し、
+同時に使用するオプションと引数は、単一の大括弧でくくります。
+.Bd -literal -offset 4n
+"usage: f [-aDde] [-b b_arg] [-m m_arg] req1 req2 [opt1 [opt2]]\en"
+"usage: f [-a | -b] [-c [-dEe] [-n number]]\en"
+.Ed
+.Bd -literal
+ (void)fprintf(stderr, "usage: f [-ab]\en");
+ exit(EX_USAGE);
+}
+.Ed
+.Pp
+マニュアルページのオプション記述は、
+純粋なアルファベット順であるべきであることに注意してください。
+つまり、オプションが引数を取るか否かに関わらないということです。
+アルファベット順は、前述の大文字小文字の順序を考慮に入れるべきです。
+.Pp
+新しい中心的なカーネルのコードは、適度に
+.Nm
+ガイドに従うべきです。
+サードパーティが保守するモジュールやデバイスドライバのためのガイドラインは
+より緩やかですが、最低限内部的には彼らの一貫したスタイルであるべきです。
+.Pp
+ソースリポジトリの文体の変更 (空白文字の変更を含む) は困難で、
+正当な理由なしには避けるべきです。
+リポジトリの中のおおよそ
+.Fx
+KNF
+.Nm
+に適合しているコードは、この適合から離れてはなりません。
+.Pp
+可能な時にはいつでも、
+コードはコードチェッカ (例えば、
+.Xr lint 1
+または
+.Nm gcc Fl Wall )
+を
+通過し、発生する警告は最小限となるべきです。
+.Sh 関連項目
+.Xr indent 1 ,
+.Xr lint 1 ,
+.Xr err 3 ,
+.Xr sysexits 3 ,
+.Xr warn 3 ,
+.Xr style.Makefile 5
+.Sh 歴史
+このページは
+.Bx 4.4 Lite2
+リリースの
+.Pa src/admin/style/style
+ファイルに大きく基づいていて、
+現在の実装と
+.Fx
+プロジェクトの要望を反映して、頻繁に更新しています。
diff --git a/documentation/manual-pages/ja/man9/suser.9 b/documentation/manual-pages/ja/man9/suser.9
new file mode 100644
index 0000000000..0817ea5ee7
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/suser.9
@@ -0,0 +1,128 @@
+.\"
+.\" Copyright (c) 1996 Julian R Elischer
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed by Kenneth Stailey.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed for the FreeBSD Project
+.\" by Julian R Elischer
+.\" 4. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/suser.9,v 1.25.2.2 2005/01/05 08:31:19 krion Exp %
+.\" $FreeBSD$
+.\"
+.Dd April 2, 2002
+.Dt SUSER 9
+.Os
+.Sh 名称
+.Nm suser ,
+.Nm suser_cred
+.Nd 証明がスーパユーザの権限を持っているかどうかのチェック
+.Sh 書式
+.In sys/param.h
+.In sys/systm.h
+.Ft int
+.Fn suser "struct thread *td"
+.Ft int
+.Fn suser_cred "struct ucred *cred" "int flag"
+.Sh 解説
+.Fn suser
+および
+.Fn suser_cred
+関数は、スーパユーザの権限を含む証明が与えられているかどうかをチェックします。
+.Pp
+.Fn suser
+関数は最も普通で、特別な事情がその他の方法を要求するのでなければ、
+これが使用されるべきです。
+.Pp
+.Fn suser_cred
+関数は、チェックされるべき証明がそのスレッド自身のものでない時、
+スレッドが存在しない時、スーパユーザの権限が
+閉じ込められた root に拡大されるべき時、またはチェックされるべき証明が
+実効ユーザというよりは実際のユーザである時に、使用されるべきです。
+.Pp
+デフォルトでは、
+.Xr jail 2
+システムコールによって閉じ込められている場合には、
+プロセスはスーパユーザの権限を持ちません。
+しかしながら、これが適切な場合があり、
+.Fn suser_cred
+関数へ渡す
+.Fa flag
+引数に
+.Dv SUSER_ALLOWJAIL
+ビットを設定することによって実現されます。
+これが牢屋を弱くしないことを、注意深く再調査することが重要です。
+一般的には
+.Xr jail 2
+呼び出しの中の暗黙の
+.Xr chroot 2
+によって行動が保護されている場所のみにおいて、
+このような権限を承諾されるべきです。
+.Pp
+デフォルトでは、チェックされる証明は実効ユーザです。
+代わりに実際のユーザをチェックする必要がある場合 (例えば、
+リソースリミットが適用された場合の決定のとき) があります。
+そして、これは
+.Fn suser_cred
+関数への
+.Fa flag
+引数に
+.Dv SUSER_RUID
+を渡すことによって行うことが可能です。
+.Pp
+.Fn suser
+および
+.Fn suser_cred
+関数は、スーパユーザの権限が使用された事を、
+指定されたプロセスのプロセス構造体中に記録します。
+これらの関数の機能の一部は、スーパユーザの権限が使用されたかどうかを
+通知することにありますので、
+他のパーミッションの可能性が使い尽くされた後でのみ、
+これら関数を呼び出すべきです。
+.Sh 戻り値
+.Fn suser
+および
+.Fn suser_cred
+関数は、そのユーザがスーパユーザの権限を持っている場合には 0 を返し、
+そうでない場合には
+.Er EPERM
+を返します。
+これは、TRUE の応答がスーパユーザ権限を持つことを示すような他の実装とは
+.Em 逆の論理
+になっています。
+TRUE の応答の
+.Fn suser
+はスーパユーザの権限を示します。
+.Sh 関連項目
+.Xr chroot 2 ,
+.Xr jail 2
+.Sh バグ
+.Fn suser
+および
+.Fn suser_cred
+関数は事実上は 2000 年の 8 月から、
+スーパユーザの特権が使用されたことおよびされなかったことを記録しません。
diff --git a/documentation/manual-pages/ja/man9/sx.9 b/documentation/manual-pages/ja/man9/sx.9
new file mode 100644
index 0000000000..661a7ccf25
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/sx.9
@@ -0,0 +1,227 @@
+.\"
+.\" 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.29.2.2 2005/01/17 11:34:57 keramida Exp %
+.\"
+.\" $FreeBSD$
+.Dd August 14, 2001
+.Dt SX 9
+.Os
+.Sh 名称
+.Nm sx ,
+.Nm sx_init ,
+.Nm sx_destroy ,
+.Nm sx_slock ,
+.Nm sx_xlock ,
+.Nm sx_try_slock ,
+.Nm sx_try_xlock ,
+.Nm sx_sunlock ,
+.Nm sx_xunlock ,
+.Nm sx_try_upgrade ,
+.Nm sx_downgrade ,
+.Nm sx_assert ,
+.Nm sx_unlock ,
+.Nm SX_SYSINIT
+.Nd カーネルの共有/排他ロック
+.Sh 書式
+.In sys/param.h
+.In sys/lock.h
+.In sys/sx.h
+.Ft void
+.Fn sx_init "struct sx *sx" "const char *description"
+.Ft void
+.Fn sx_destroy "struct sx *sx"
+.Ft void
+.Fn sx_slock "struct sx *sx"
+.Ft void
+.Fn sx_xlock "struct sx *sx"
+.Ft int
+.Fn sx_try_slock "struct sx *sx"
+.Ft int
+.Fn sx_try_xlock "struct sx *sx"
+.Ft void
+.Fn sx_sunlock "struct sx *sx"
+.Ft void
+.Fn sx_xunlock "struct sx *sx"
+.Ft int
+.Fn sx_try_upgrade "struct sx *sx"
+.Ft void
+.Fn sx_downgrade "struct sx *sx"
+.Ft void
+.Fn sx_assert "struct sx *sx" "int what"
+.\"
+.Ss Nm Ss ユーティリティマクロ
+.Fn sx_unlock "struct sx *sx"
+.Fn SX_SYSINIT "name" "struct sx *sx" "const char *description"
+.\"
+.Ss カーネルオプション
+.Cd "options INVARIANTS"
+.Cd "options INVARIANT_SUPPORT"
+.Sh 解説
+共有/排他ロックは書き込まれるよりも、読み込まれる方が非常に多いデータを
+保護するために使用されます。
+mutex は本質的に共有/排他ロックよりも能率的なので、共有/排他ロックは
+用心深く使用されるべきです。
+.Pp
+共有/排他ロックは
+.Fn sx_init
+を使用して作成されます。
+ここで
+.Fa sx
+は
+.Vt struct sx
+のための領域へのポインタで、
+.Fa description
+はその共有/排他ロックを説明するヌルで終端された文字列へのポインタです。
+共有/排他ロックは
+.Fn sx_destroy
+を使用して破壊されます。
+スレッドは
+.Fn sx_slock
+または
+.Fn sx_try_slock
+および
+.Fn sx_sunlock
+または
+.Fn sx_unlock
+の呼び出しによって共有ロックを獲得および解放します。
+スレッドは
+.Fn sx_xlock
+または
+.Fn sx_try_xlock
+および
+.Fn sx_xunlock
+または
+.Fn sx_unlock
+の呼び出しによって排他ロックを獲得および解放します。
+スレッドは
+.Fn sx_try_upgrade
+の呼び出しによって、現在保有している共有ロックから排他ロックへの
+アップグレードを試みることが可能です。
+排他ロックを持っているスレッドは、
+.Fn sx_downgrade
+の呼び出しによってその排他ロックから共有ロックへのダウングレードが可能です。
+.Pp
+.Fn sx_try_slock
+および
+.Fn sx_try_xlock
+は共有/排他ロックがすぐに獲得できなかった場合には 0 を返し、
+そうでない場合には共有/排他ロックが獲得され 0 ではない値が返されます。
+.Pp
+.Fn sx_try_upgrade
+は共有ロックをすぐに排他ロックにアップグレードできない場合には 0 を返し、
+そうでない場合には排他ロックが獲得され 0 ではない値が返されます。
+.Pp
+.Cd "options INVARIANTS"
+および
+.Cd "options INVARIANT_SUPPORT"
+付きでコンパイルされたときには、
+.Fn sx_assert
+関数は
+.Fa what
+に指定されたアサートのために
+.Fa sx
+をテストし、それらが合わなかった場合には panic します。
+以下のアサートがサポートされています。
+.Bl -tag -width ".Dv SX_UNLOCKED"
+.It Dv SX_LOCKED
+現在のスレッドが、最初の引数によって指されている
+.Vt sx
+ロック上に、共有または排他ロックのいずれかを持っていることをアサートします。
+.It Dv SX_SLOCKED
+現在のスレッドが、最初の引数によって指されている
+.Vt sx
+ロック上に、共有ロックを持っていることをアサートします。
+.It Dv SX_XLOCKED
+現在のスレッドが、最初の引数によって指されている
+.Vt sx
+ロック上に、排他ロックを持っていることをアサートします。
+.It Dv SX_UNLOCKED
+現在のスレッドが、最初の引数によって指されている
+.Vt sx
+ロック上に、ロックを持っていないことをアサートします。
+.El
+.Pp
+プログラミングを簡単にするために、
+.Fn sx_sunlock
+および
+.Fn sx_xunlock
+各々の関数へのフロントエンドマクロとして
+.Fn sx_unlock
+が提供されています。
+ロックがどの状態になっているかを知っているアルゴリズムは、
+小さなパフォーマンスの利益のために各々の 2 つの特定の関数を使用すべきです。
+.Pp
+.Fn SX_SYSINIT
+マクロはシステムスタートアップ時に与えられた
+.Fa sx
+ロックを初期化するために
+.Fn sx_sysinit
+の呼び出しを生成します。
+引数は
+.Fn sx_init
+と同様ですが、
+そのロックと sysinit ルーチンに関連付けられた構造体に関連した唯一の
+変数名を生成する際に使用される追加の引数として
+.Fa name
+を持ちます。
+.Pp
+スレッドは同じロック上に共有ロックと排他ロックを同時には持つことができません。
+同時に持つことはデッドロックを引き起こすことになるためです。
+.Sh コンテキスト
+スリープしている間に
+.Nm
+ロック上に共有ロックまたは排他ロックを所有することは許可されます。
+その結果、ミューテックスを保持している間、
+.Nm
+ロックは獲得されないかもしれません。
+そうでなければ、ミューテックスを獲得した後に同じ
+.Nm
+ロック上で別のスレッドがブロックされる間に、
+一つのスレッドが
+.Nm
+ロックを保持している間にスリープするなら、
+事実上、2 番目のスレッドは最後には許可されていないミューテックスを
+保持している間にスリープすることになるでしょう。
+.Sh 関連項目
+.Xr condvar 9 ,
+.Xr mtx_pool 9 ,
+.Xr mutex 9 ,
+.Xr panic 9 ,
+.Xr sema 9
+.Sh バグ
+現在、ロックが保持されていないことをアサートする方法がありません。
+.Dv WITNESS
+ではない場合には、このスレッドが共有ロックを保持していないことを
+アサートすることは不可能です。
+.Dv WITNESS
+ではない場合には、
+.Dv SX_LOCKED
+および
+.Dv SX_SLOCKED
+のアサートは、あるスレッドが共有ロックを保持していることを
+単にチェックするに過ぎません。
+これらは、現在のスレッドが共有ロックを保持していることを保証しません。
diff --git a/documentation/manual-pages/ja/man9/sysctl_add_oid.9 b/documentation/manual-pages/ja/man9/sysctl_add_oid.9
new file mode 100644
index 0000000000..b0a50f5759
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/sysctl_add_oid.9
@@ -0,0 +1,499 @@
+.\"
+.\" Copyright (c) 2000, Andrzej Bialecki <abial@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.
+.\" 3. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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/sysctl_add_oid.9,v 1.20 2004/07/03 18:29:24 ru Exp %
+.\" $FreeBSD$
+.\"
+.Dd July 15, 2000
+.Dt SYSCTL_ADD_OID 9
+.Os
+.Sh 名称
+.Nm sysctl_add_oid ,
+.Nm sysctl_move_oid ,
+.Nm sysctl_remove_oid
+.Nd ランタイム sysctl ツリー操作
+.Sh 書式
+.In sys/types.h
+.In sys/sysctl.h
+.Ft struct sysctl_oid *
+.Fo sysctl_add_oid
+.Fa "struct sysctl_ctx_list *ctx"
+.Fa "struct sysctl_oid_list *parent"
+.Fa "int number"
+.Fa "const char *name"
+.Fa "int kind"
+.Fa "void *arg1"
+.Fa "int arg2"
+.Fa "int (*handler) (SYSCTL_HANDLER_ARGS)"
+.Fa "const char *format"
+.Fa "const char *descr"
+.Fc
+.Ft int
+.Fo sysctl_move_oid
+.Fa "struct sysctl_oid *oidp"
+.Fa "struct sysctl_oid_list *parent"
+.Fc
+.Ft int
+.Fo sysctl_remove_oid
+.Fa "struct sysctl_oid *oidp"
+.Fa "int del"
+.Fa "int recurse"
+.Fc
+.Ft struct sysctl_oid_list *
+.Fo SYSCTL_CHILDREN
+.Fa "struct sysctl_oid *oidp"
+.Fc
+.Ft struct sysctl_oid_list *
+.Fo SYSCTL_STATIC_CHILDREN
+.Fa "struct sysctl_oid_list OID_NAME"
+.Fc
+.Ft struct sysctl_oid *
+.Fo SYSCTL_ADD_OID
+.Fa "struct sysctl_ctx_list *ctx"
+.Fa "struct sysctl_oid_list *parent"
+.Fa "int number"
+.Fa "const char *name"
+.Fa "int kind"
+.Fa "void *arg1"
+.Fa "int arg2"
+.Fa "int (*handler) (SYSCTL_HANDLER_ARGS)"
+.Fa "const char *format"
+.Fa "const char *descr"
+.Fc
+.Ft struct sysctl_oid *
+.Fo SYSCTL_ADD_NODE
+.Fa "struct sysctl_ctx_list *ctx"
+.Fa "struct sysctl_oid_list *parent"
+.Fa "int number"
+.Fa "const char *name"
+.Fa "int access"
+.Fa "int (*handler) (SYSCTL_HANDLER_ARGS)"
+.Fa "const char *descr"
+.Fc
+.Ft struct sysctl_oid *
+.Fo SYSCTL_ADD_STRING
+.Fa "struct sysctl_ctx_list *ctx"
+.Fa "struct sysctl_oid_list *parent"
+.Fa "int number"
+.Fa "const char *name"
+.Fa "int access"
+.Fa "char *arg"
+.Fa "int len"
+.Fa "const char *descr"
+.Fc
+.Ft struct sysctl_oid *
+.Fo SYSCTL_ADD_INT
+.Fa "struct sysctl_ctx_list *ctx"
+.Fa "struct sysctl_oid_list *parent"
+.Fa "int number"
+.Fa "const char *name"
+.Fa "int access"
+.Fa "int *arg"
+.Fa "int len"
+.Fa "const char *descr"
+.Fc
+.Ft struct sysctl_oid *
+.Fo SYSCTL_ADD_UINT
+.Fa "struct sysctl_ctx_list *ctx"
+.Fa "struct sysctl_oid_list *parent"
+.Fa "int number"
+.Fa "const char *name"
+.Fa "int access"
+.Fa "unsigned int *arg"
+.Fa "int len"
+.Fa "const char *descr"
+.Fc
+.Ft struct sysctl_oid *
+.Fo SYSCTL_ADD_LONG
+.Fa "struct sysctl_ctx_list *ctx"
+.Fa "struct sysctl_oid_list *parent"
+.Fa "int number"
+.Fa "const char *name"
+.Fa "int access"
+.Fa "long *arg"
+.Fa "const char *descr"
+.Fc
+.Ft struct sysctl_oid *
+.Fo SYSCTL_ADD_ULONG
+.Fa "struct sysctl_ctx_list *ctx"
+.Fa "struct sysctl_oid_list *parent"
+.Fa "int number"
+.Fa "const char *name"
+.Fa "int access"
+.Fa "unsigned long *arg"
+.Fa "const char *descr"
+.Fc
+.Ft struct sysctl_oid *
+.Fo SYSCTL_ADD_OPAQUE
+.Fa "struct sysctl_ctx_list *ctx"
+.Fa "struct sysctl_oid_list *parent"
+.Fa "int number"
+.Fa "const char *name"
+.Fa "int access"
+.Fa "void *arg"
+.Fa "int len"
+.Fa "const char *format"
+.Fa "const char *descr"
+.Fc
+.Ft struct sysctl_oid *
+.Fo SYSCTL_ADD_STRUCT
+.Fa "struct sysctl_ctx_list *ctx"
+.Fa "struct sysctl_oid_list *parent"
+.Fa "int number"
+.Fa "const char *name"
+.Fa "int access"
+.Fa "void *arg"
+.Fa STRUCT_NAME
+.Fa "const char *descr"
+.Fc
+.Ft struct sysctl_oid *
+.Fo SYSCTL_ADD_PROC
+.Fa "struct sysctl_ctx_list *ctx"
+.Fa "struct sysctl_oid_list *parent"
+.Fa "int number"
+.Fa "const char *name"
+.Fa "int access"
+.Fa "void *arg1"
+.Fa "int arg2"
+.Fa "int (*handler) (SYSCTL_HANDLER_ARGS)"
+.Fa "const char *format"
+.Fa "const char *descr"
+.Fc
+.Sh 解説
+これらの関数およびマクロは sysctl oid のランタイム (例えばモジュールの
+存在期間) での作成と削除のためのインタフェースを提供します。
+リンカセット (詳細は
+.In sys/linker_set.h
+および
+.\" XXX マニュアルページはソースファイルの参照を避けるべきです。
+.Pa src/sys/kern/kern_sysctl.c
+を参照)
+に基づく代わりの方法は、各々のモジュールのロード時およびアンロード時の
+作成と削除のみを可能にします。
+.Pp
+型
+.Dv CTLTYPE_NODE
+の動的な oid は再利用可能であるため、複数のコードセクションが、
+oid を作成および削除することが可能です。
+実際には、参照カウントに基づいて、その割り当ておよび解放が行われます。
+その結果として、2 つ以上のコードセクションが、部分的に重なり、
+両者が使用できるツリーを作成可能にします。
+重なる葉の作成や、同一の名前と親を持つ異なる型の子の作成は、
+不可能です。
+.Pp
+新しく作成された oid は親のノードに接続されます。
+これら全ての関数およびマクロ
+.Fn ( sysctl_remove_oid
+は例外) において、必須パラメータの 1 つ
+.Fa parent
+は、子の親リストの先頭を指します。
+.Pp
+殆どのトップレベルのカテゴリは静的に作成されます。
+既存の静的な oid に接続するときに、このポインタは
+.Fn SYSCTL_STATIC_CHILDREN
+マクロによって取得することが可能で、その
+.Fa OID_NAME
+引数は
+.Dv CTLTYPE_NODE
+型の親 oid の名前 (すなわち、
+.Xr sysctl 8
+によって表示される名前に、
+アンダスコアを前置し、全てのドットをアンダスコアで置き換えた名前) です。
+.Pp
+既存の動的な oid に接続するときに、このポインタは
+.Fn SYSCTL_CHILDREN
+マクロによって取得することが可能で、その
+.Fa oidp
+引数は
+.Dv CTLTYPE_NODE
+型の親 oid を指します。
+.Pp
+.Fn sysctl_add_oid
+関数はあらゆる型の生の oid を作成します。
+oid の作成が成功した場合には、この関数はその oid へのポインタを返します。
+そうでない場合には、
+.Dv NULL
+を返します。
+.Fn sysctl_add_oid
+のための引数の多くはマクロと共通です。
+引数は以下のとおりです。
+.Bl -tag -width handler
+.It Fa ctx
+オプションの sysctl コンテキストへのポインタ、または
+.Dv NULL
+です。
+詳細は
+.Xr sysctl_ctx_init 9
+を参照してください。
+特別な作成および削除のシーケンスが要求されるのでなければ、
+作成する動的な oid を組織するためにコンテキストを使用することを、
+プログラマは強く勧告されています。
+.Fa ctx
+が
+.Dv NULL
+でない場合には、新しく作成される oid は最初のエントリとしてこのコンテキストに
+追加されます。
+.It Fa parent
+子の親リストの先頭である
+.Li struct sysctl_oid_list
+へのポインタです。
+.It Fa number
+この oid に割り当てられる oid 番号です。
+殆ど全ての場合、これは割り当て時に次の利用可能な oid 番号になる
+.Dv OID_AUTO
+に設定されるべきです。
+.It Fa name
+この oid の名前です。
+新しく作成された oid は名前のコピーを含んでいます。
+.It Fa kind
+oid の種類で、
+.In sys/sysctl.h
+ヘッダファイルの中で定義される型とアクセス値のビットマスクとして明示されます。
+動的に作成された oid は常に
+.Dv CTLFLAG_DYN
+フラグが設定されます。
+アクセスフラグはこの oid が読み取り専用か読み書き可能か、および
+全てのユーザによってまたはスーパユーザによってのみ修正可能かを明示します。
+.It Fa arg1
+oid が参照すべきあらゆるデータへのポインタ、または
+.Dv NULL
+です。
+.It Fa arg2
+.Fa arg1
+の大きさ、または
+.Fa arg1
+が
+.Dv NULL
+であれば 0 です。
+.It Fa handler
+この oid への読み書き要求を取り扱う責任がある関数へのポインタです。
+ノード、整数、文字列、および不透明なオブジェクトの操作をサポートする
+幾つかの標準ハンドラが存在しています。
+.Fn SYSCTL_ADD_PROC
+マクロを使用して新しいハンドラを定義することも可能です。
+.It Fa format
+oid のフォーマットを記号的に明示する文字列へのポインタです。
+このフォーマットは、表示目的のための適切なデータフォーマットを適用するために
+.Xr sysctl 8
+によってヒントとして使用されます。
+現在使用されているフォーマット名は以下のとおりです。
+.Dq N
+はノード、
+.Dq A
+は
+.Li "char *"
+型、
+.Dq I
+は
+.Li "int"
+型、
+.Dq IU
+は
+.Li "unsigned int"
+型、
+.Dq L
+は
+.Li "long"
+型、
+.Dq LU
+は
+.Li "unsigned long"
+型、および
+.Dq S,TYPE
+は
+.Li "struct TYPE"
+構造体です。
+.It Fa descr
+この oid の解説テキストへのポインタです。
+.El
+.Pp
+.Fn sysctl_move_oid
+関数は存在している oid の親を付け変えます。
+その oid は、まるで
+.Fa number
+に
+.Dv OID_AUTO
+が設定されて作成されたかの様に、新しい番号を割り当てられます。
+.Pp
+.Fn sysctl_remove_oid
+関数は動的に作成された oid をツリーから削除し、
+オプションでそのリソースを解放します。
+これは以下の引数を取ります。
+.Bl -tag -width recurse
+.It Fa oidp
+削除されるべき動的な oid へのポインタです。
+oid が動的でない、またはポインタが
+.Dv NULL
+の場合には、この関数は
+.Er EINVAL
+を返します。
+.It Fa del
+0 でない場合には、oid の参照カウントが 0 になった時に、
+.Fn sysctl_remove_oid
+は oid のリソースを解放しようとします。
+しかしながら
+.Fa del
+が 0 に設定されている場合には、このルーチンは oid のリソースの解放をせずに
+ツリーから oid の登録抹消のみを行ないます。
+この振舞いは、呼び出し側が後で (ひょっとすると部分的に失敗する) 多数の oid の
+削除のロールバックを予期している時に、有用です。
+.It Fa recurse
+0 でない場合には、そのノードとその子を削除しようとします。
+.Pa recurse
+が 0 に設定されている場合には、あらゆる子を含むノードの削除の試みは
+.Er ENOTEMPTY
+エラーを発生させます。
+.Em 警告 : "再帰的な削除は非常な注意を払って使用すること" !
+通常、コンテキストが使用されていれば、必要とされるべきではありません。
+コンテキストはツリーの利用者間の依存性の追跡に注意しています。
+しかしながら、ある極端な場合には、ある他のリソースを解放するために、
+それがどのように作成されたものであれ、サブツリーの一部を削除することが
+必要になることがあります。
+しかしながら、このことは、別のコードセクションが削除されたサブツリーを
+使用し続ける場合に、システムの
+.Xr panic 9
+を引き起こすことがあることを知っていてください。
+.El
+.Pp
+.\" XXX sheldonh はここまで仕上げました。
+再度言いますが、殆んどの場合、作成された oid を見失わないようにするため、
+および後で整然とした流儀でそれらを削除するため、
+.Xr sysctl_ctx_init 9
+で解説されているように、プログラマはコンテキストを使用するべきです。
+.Pp
+与えられた型の oid の作成を助ける定義済みのマクロセットがあります。
+.Bl -tag -width SYSCTL_ADD_STRINGXX
+それらを以下に示します。
+.It Fn SYSCTL_ADD_OID
+は生の oid を作成します。
+このマクロは機能的には
+.Fn sysctl_add_oid
+関数と同等です。
+.It Fn SYSCTL_ADD_NODE
+は型
+.Dv CTLTYPE_NODE
+の oid を作成します。
+この oid に対して、子の oid を追加可能です。
+.It Fn SYSCTL_ADD_STRING
+は 0 で終端された文字列を取り扱う oid を作成します。
+.It Fn SYSCTL_ADD_INT
+は
+.Li int
+変数を取り扱う oid を作成します。
+.It Fn SYSCTL_ADD_UINT
+は
+.Li unsigned int
+変数を取り扱う oid を作成します。
+.It Fn SYSCTL_ADD_LONG
+は
+.Li long
+変数を取り扱う oid を作成します。
+.It Fn SYSCTL_ADD_ULONG
+は
+.Li unsigned long
+変数を取り扱う oid を作成します。
+.It Fn SYSCTL_ADD_OPAQUE
+は
+.Li "size_t *"
+へのポインタである
+.Fa len
+引数によって明示された大きさのあらゆる不透明なデータのかたまりを
+取り扱う oid を作成します。
+.It Fn SYSCTL_ADD_STRUCT
+は
+.Li "struct TYPE"
+構造体を取り扱う oid を作成します。
+.Fa format
+引数は
+.Xr sysctl 8
+ユーティリティへの適切なヒントを提供するために
+.Dq S,TYPE
+に設定されます。
+.It Fn SYSCTL_ADD_PROC
+は明示された
+.Pa handler
+ハンドラ関数を持つ oid を作成します。
+ハンドラは oid に対しての読み書き要求を取り扱う責任を持ちます。
+カーネルデータが簡単にアクセスできない場合、または取り出される前に処理される
+必要がある場合に、この oid 型は特に有用です。
+.El
+.Sh 使用例
+以下は、どのように新しいトップレベルのカテゴリを作成するか、および
+どのように既存の静的なノードに別のサブツリーを引っ掛けるか
+を示す使用例です。
+この使用例はコンテキストを使用していません。
+これは全ての後でそれらを解放するといった、
+中間の oid の退屈な管理を結果として生じさせます。
+.Bd -literal
+#include <sys/sysctl.h>
+ ...
+/* 新しく作成したサブツリーへのポインタは、後でそれらを解放するために
+ * 保存しておく必要があります。
+ */
+struct sysctl_oid *root1, *root2, *oidp;
+int a_int;
+char *string = "dynamic sysctl";
+ ...
+
+root1 = SYSCTL_ADD_NODE( NULL, SYSCTL_STATIC_CHILDREN(/* tree top */),
+ OID_AUTO, "newtree", CTLFLAG_RW, 0, "new top level tree");
+oidp = SYSCTL_ADD_INT( NULL, SYSCTL_CHILDREN(root1),
+ OID_AUTO, "newint", CTLFLAG_RW, &a_int, 0, "new int leaf");
+ ...
+root2 = SYSCTL_ADD_NODE( NULL, SYSCTL_STATIC_CHILDREN(_debug),
+ OID_AUTO, "newtree", CTLFLAG_RW, 0, "new tree under debug");
+oidp = SYSCTL_ADD_STRING( NULL, SYSCTL_CHILDREN(root2),
+ OID_AUTO, "newstring", CTLFLAG_RD, string, 0, "new string leaf");
+.Ed
+.Pp
+この使用例は以下のサブツリーを作成します。
+.Bd -literal -offset indent
+debug.newtree.newstring
+newtree.newint
+.Ed
+.Pp
+.Em "これ以上必要でなくなった全ての oid は解放されるべきであることに注意!"
+.Sh 関連項目
+.Xr sysctl 8 ,
+.Xr sysctl_ctx_free 9 ,
+.Xr sysctl_ctx_init 9
+.Sh 歴史
+これらの関数は
+.Fx 4.2
+ではじめて登場しました。
+.Sh 作者
+.An Andrzej Bialecki Aq abial@FreeBSD.org
+.Sh バグ
+多くのコードセクション間でノードを共有することは、
+時々リソースをロックすることがある相互依存を引き起こします。
+例えば、モジュール B によって作成された oid に対し、
+モジュール A がサブツリーを引っ掛けた場合には、
+モジュール B はその oid を削除できないでしょう。
+これらの問題は sysctl コンテキストによって適切に取り扱われます。
+.Pp
+ツリー上の多くの操作はリンクリストを横切ることを必要とします。
+この理由のため、oid の作成と削除は相対的にコストがかかります。
diff --git a/documentation/manual-pages/ja/man9/sysctl_ctx_init.9 b/documentation/manual-pages/ja/man9/sysctl_ctx_init.9
new file mode 100644
index 0000000000..c03b50a69e
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/sysctl_ctx_init.9
@@ -0,0 +1,232 @@
+.\"
+.\" Copyright (c) 2000, Andrzej Bialecki <abial@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.
+.\" 3. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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/sysctl_ctx_init.9,v 1.12 2004/07/03 18:29:24 ru Exp %
+.\" $FreeBSD$
+.\"
+.Dd July 15, 2000
+.Dt SYSCTL_CTX_INIT 9
+.Os
+.Sh 名称
+.Nm sysctl_ctx_init ,
+.Nm sysctl_ctx_free ,
+.Nm sysctl_ctx_entry_add ,
+.Nm sysctl_ctx_entry_find ,
+.Nm sysctl_ctx_entry_del
+.Nd 動的に生成された sysctl oid のための sysctl コンテキスト
+.Sh 書式
+.In sys/types.h
+.In sys/sysctl.h
+.Ft int
+.Fo sysctl_ctx_init
+.Fa "struct sysctl_ctx_list *clist"
+.Fc
+.Ft int
+.Fo sysctl_ctx_free
+.Fa "struct sysctl_ctx_list *clist"
+.Fc
+.Ft struct sysctl_ctx_entry *
+.Fo sysctl_ctx_entry_add
+.Fa "struct sysctl_ctx_list *clist"
+.Fa "struct sysctl_oid *oidp"
+.Fc
+.Ft struct sysctl_ctx_entry *
+.Fo sysctl_ctx_entry_find
+.Fa "struct sysctl_ctx_list *clist"
+.Fa "struct sysctl_oid *oidp"
+.Fc
+.Ft int
+.Fo sysctl_ctx_entry_del
+.Fa "struct sysctl_ctx_list *clist"
+.Fa "struct sysctl_oid *oidp"
+.Fc
+.Sh 解説
+これらの関数は動的に作成された oid の管理のためのインタフェースを提供します。
+sysctl コンテキストは作成された oid の必要な時の厳密な削除はもちろん、
+oid を見失わないようにすることに対して責任があります。
+これは oid の削除操作に簡単なトランザクション的な側面を追加します。
+すなわち、途中で削除操作が失敗した場合に、sysctl ツリーを以前の状態に
+ロールバックすることが可能です。
+.Pp
+.Fn sysctl_ctx_init
+関数は sysctl コンテキストを初期化します。
+.Fa clist
+引数は既に割り当てられている変数を指していなければなりません。
+コンテキストは使用の前に
+.Em 必ず
+初期化されていなければなりません。
+一度初期化されると、そのコンテキストのポインタは全ての
+.Fa SYSCTL_ADD_*
+マクロ
+.Xr ( sysctl_add_oid 9
+参照) の引数として渡されることが可能で、新しく作成される oid を指すエントリ
+を伴って更新されるでしょう。
+.Pp
+内部的には、コンテキストは
+.Xr queue 3
+TAILQ リンクリストとして表現されています。
+そのリストは
+.Li struct sysctl_ctx_entry
+エントリから成っています。
+.Bd -literal -offset indent
+struct sysctl_ctx_entry {
+ struct sysctl_oid *entry;
+ TAILQ_ENTRY(sysctl_ctx_entry) link;
+};
+
+TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry);
+.Ed
+.Pp
+各々のコンテキストエントリは、それが管理する 1 つの動的な oid を指します。
+新しく作成された oid は常にリストの最初に挿入されます。
+.Pp
+.Fn sysctl_ctx_free
+関数はコンテキストおよびそれが管理する関連付けられた oid を削除します。
+その関数が成功して完了した場合には、全ての管理されている oid は
+登録抹消 (ツリーから削除) され、全てのそれらに割り当てられたメモリと共に
+解放され、同様にコンテキストのエントリも解放されています。
+.Pp
+削除操作は 2 ステップで実行されます。
+最初に、各々のコンテキストエントリのために、リソースの解放を抑制するパラメータ
+.Fa del
+を 0 に設定して、関数
+.Xr sysctl_remove_oid 9
+が呼び出されます。
+このステップでエラーが無い場合には、
+.Fn sysctl_ctx_free
+は次のステップに移行します。
+最初のステップが失敗した場合には、そのコンテキストに関連付けられた
+全ての登録抹消された oid が再登録されます。
+.Pp
+.Em 注意 :
+ほとんどの場合、プログラマは oid の作成時に oid 番号として
+.Dv OID_AUTO
+を明示します。
+しかしながら、ツリーに oid を登録している間に、
+この番号は 99 よりも大きい最初の利用可能な番号に変更されます。
+コンテキスト削除の最初のステップが失敗した場合、
+oid の再登録は既に割り当てられている oid 番号を
+変更しません (OID_AUTO とは異なります)。
+これは、再登録されたエントリがツリーの中の元の位置を維持していることを
+保証します。
+.Pp
+2 番目のステップは、動的な oid の削除を実際に実行します。
+.Xr sysctl_remove_oid 9
+は最初 (すなわち、最新のエントリ) から始めて、コンテキストリストを通して
+繰り返します。
+.Em 重要 :
+この時、この関数はツリーから oid を削除するだけではなく、全てのコンテキストの
+メモリはもちろん、(oid_refcount == 0 であれば) oid のメモリも解放します。
+.Pp
+.Fn sysctl_ctx_entry_add
+関数は既存の動的な oid のコンテキストへの追加を可能にします。
+.Pp
+.Fn sysctl_ctx_entry_del
+関数はコンテキストからエントリを取り除きます。
+.Em 重要 :
+この場合、対応する
+.Li struct sysctl_ctx_entry
+のみが解放されますが、
+.Fa oidp
+ポインタはそのまま残ります。
+その後は、プログラマにこの oid に割り当てられたリソースの管理の責任があります。
+.Pp
+.Fn sysctl_ctx_entry_find
+関数は与えられた
+.Fa oidp
+をコンテキストリストの中から検索し、見付かった
+.Fa struct sysctl_ctx_entry
+へのポインタまたは
+.Dv NULL
+を返します。
+.Sh 使用例
+以下は、どのように新しいトップレベルのカテゴリを作成するか、および
+どのように既存の静的なノードに別のサブツリーを引っ掛けるか
+を示す使用例です。
+この使用例は oid の追跡を維持するためにコンテキストを使用しています。
+.Bd -literal
+#include <sys/sysctl.h>
+ ...
+struct sysctl_ctx_list clist;
+struct sysctl_oid *oidp;
+int a_int;
+char *string = "dynamic sysctl";
+ ...
+
+sysctl_ctx_init(&clist);
+oidp = SYSCTL_ADD_NODE( &clist, SYSCTL_STATIC_CHILDREN(/* ツリートップ */),
+ OID_AUTO, "newtree", CTFLAG_RW, 0, "new top level tree");
+oidp = SYSCTL_ADD_INT( &clist, SYSCTL_CHILDREN(oidp),
+ OID_AUTO, "newint", CTLFLAG_RW, &a_int, 0, "new int leaf");
+ ...
+oidp = SYSCTL_ADD_NODE( &clist, SYSCTL_STATIC_CHILDREN(_debug),
+ OID_AUTO, "newtree", CTFLAG_RW, 0, "new tree under debug");
+oidp = SYSCTL_ADD_STRING( &clist, SYSCTL_CHILDREN(oidp),
+ OID_AUTO, "newstring", CTLFLAG_R, string, 0, "new string leaf");
+ ...
+/* ここで oid を解放できます */
+if(sysctl_ctx_free(&clist)) {
+ printf("コンテキストを解放出来ません - 他の oid が依存しています");
+ return(ENOTEMPTY);
+} else {
+ printf("成功です!\\n"):
+ return(0);
+}
+.Ed
+.Pp
+この使用例は以下のサブツリーを作成します。
+.Bd -literal -offset indent
+debug.newtree.newstring
+newtree.newint
+.Ed
+.Pp
+1 つの
+.Fn sysctl_ctx_free
+の呼び出しを通して、両方のツリーが削除され、
+リソースが解放されることに注意してください。
+最新のエントリ (葉) を解放することによって始まり、それから
+古いエントリ (この場合はノード) の削除を続行します。
+.Sh 関連項目
+.Xr queue 3 ,
+.Xr sysctl 8 ,
+.Xr sysctl_add_oid 9 ,
+.Xr sysctl_remove_oid 9
+.Sh 歴史
+これらの関数は
+.Fx 4.2
+ではじめて登場しました。
+.Sh 作者
+.An Andrzej Bialecki Aq abial@FreeBSD.org
+.Sh バグ
+現在の削除アルゴリズムは多少重いです。
+最悪の場合、全ての oid が登録抹消され、再登録され、それから登録抹消され、
+削除される必要があります。
+しかしながら、削除操作がトランザクションの特質を持つことを、
+このアルゴリズムは保証します。
+.Pp
+コンテキスト上の全ての操作はリンクリストを横切ることを必要とします。
+この理由のため、エントリの作成と削除には相対的にコストがかかります。
diff --git a/documentation/manual-pages/ja/man9/taskqueue.9 b/documentation/manual-pages/ja/man9/taskqueue.9
new file mode 100644
index 0000000000..7d16c8b036
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/taskqueue.9
@@ -0,0 +1,233 @@
+.\" -*- 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.12 2004/08/08 02:37:22 jmg 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 int
+.Fn taskqueue_enqueue_fast "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"
+.Fn TASKQUEUE_DEFINE_THREAD "name"
+.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_enqueue_fast
+は、高速割り込みハンドラからキューに入れることが発生するときには、
+.Fn taskqueue_enqueue
+の代わりに使用されるべきです。
+このメソッドは高速割り込みコンテキスト内でスリープの可能性を避けるために
+スピンロックを使用します。
+.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
+3 つのマクロ
+.Fn TASKQUEUE_DECLARE "name" ,
+.Fn TASKQUEUE_DEFINE "name" "enqueue" "context" "init"
+および
++.Fn TASKQUEUE_DEFINE_THREAD "name"
+は、グローバルなキューへの参照の宣言、そのキューの実装の定義、
+および所有するスレッドを使用するキューを宣言するために使用されます。
+.Fn TASKQUEUE_DEFINE
+マクロは
+.Va name ,
+.Va enqueue
+および
+.Va context
+引数の値で、システムの初期化の間に
+.Fn taskqueue_create
+を呼び出すための手配を行います。
+.Fn taskqueue_create
+の呼び出しの後で、(割り込みハンドラの登録などの) その他の初期化が
+実行されることを可能にするために、このマクロへの
+.Va init
+引数が C のステートメントとして実行されます。
+.Pp
+.Fn TASKQUEUE_DEFINE_THREAD
+マクロはタスクを取り扱う自身が所有するカーネルスレッドで
+新しいタスクキューを定義します。
+変数
+.Vt struct proc *taskqueue_name_proc
+はタスクを取り扱うカーネルスレッドを含んで定義されます。
+変数
+.Vt struct taskqueue *taskqueue_name
+はそのキューにタスクを追加するために使用されます。
+.Pp
+システムは 3 つのグローバルなタスクキュー
+.Va taskqueue_swi ,
+.Va taskqueue_swi_giant ,
+および
+.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
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/time.9 b/documentation/manual-pages/ja/man9/time.9
new file mode 100644
index 0000000000..35623bb966
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/time.9
@@ -0,0 +1,113 @@
+.\" $NetBSD: time.9,v 1.1 1995/11/25 21:24:53 perry Exp $
+.\"
+.\" Copyright (c) 1994 Christopher G. Demetriou
+.\" 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.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by Christopher G. Demetriou
+.\" for the NetBSD Project.
+.\" 3. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/time.9,v 1.12.2.1 2004/09/22 04:43:33 brooks Exp %
+.\"
+.\" $FreeBSD$
+.Dd September 17, 2004
+.Dt TIME 9
+.Os
+.Sh 名称
+.Nm boottime ,
+.Nm time_second ,
+.Nm time_uptime
+.Nd システム時刻変数
+.Sh 書式
+.In sys/time.h
+.Bl -item -compact
+.It
+.Va extern struct timeval boottime ;
+.It
+.Va extern struct time_t time_second ;
+.It
+.Va extern struct timeval time_uptime ;
+.El
+.Sh 解説
+.Va boottime
+変数はシステムのブート時刻を保持します。
+.Pp
+.Va time_second
+変数はシステムの
+.Dq 柱時計
+クロック (秒) です。
+.Pp
+.Va time_uptime
+変数は、ブートしてからの秒数です。
+.Pp
+.Xr bintime 9 ,
+.Xr getbintime 9 ,
+.Xr microtime 9 ,
+.Xr getmicrotime 9 ,
+.Xr nanotime 9 ,
+.Xr getnanotime 9
+関数は、現在時刻をより正確に、不可分に取得することができます。
+同様に
+.Xr binuptime 9 ,
+.Xr getbinuptime 9 ,
+.Xr microuptime 9 ,
+.Xr getmicrouptime 9 ,
+.Xr nanouptime 9 ,
+.Xr getnanouptime 9
+関数は、ブートしてからの経過時間をより正確に、不可分に取得することができます。
+.Va boottime
+変数は、特別な警戒なしに読み書きすることができます。
+.Pp
+.Sh 関連項目
+.Xr clock_settime 2 ,
+.Xr ntp_adjtime 2 ,
+.Xr settimeofday 2 ,
+.Xr getbintime 9 ,
+.Xr getbinuptime 9 ,
+.Xr getmicrotime 9 ,
+.Xr getmicrouptime 9 ,
+.Xr getnanotime 9 ,
+.Xr getnanouptime 9 ,
+.Xr bintime 9 ,
+.Xr binuptime 9 ,
+.Xr microtime 9 ,
+.Xr microuptime 9 ,
+.Xr nanotime 9,
+.Xr nanouptime 9
+.Rs
+.%A "Poul-Henning Kamp"
+.%T "Timecounters: Efficient and precise timekeeping in SMP kernels"
+.%J "Proceedings of EuroBSDCon 2002"
+.%C "Amsterdam"
+.%O /usr/share/doc/papers/timecounter.ascii.gz
+.Re
+.Rs
+.%A "Marshall Kirk McKusick"
+.%A "George V. Neville-Neil"
+.%B "The Design and Implementation of the FreeBSD Operating System"
+.%D "July 2004"
+.%I "Addison-Wesley"
+.%P "57-61,65-66"
+.Re
diff --git a/documentation/manual-pages/ja/man9/timeout.9 b/documentation/manual-pages/ja/man9/timeout.9
new file mode 100644
index 0000000000..46c29a1b1a
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/timeout.9
@@ -0,0 +1,510 @@
+.\" $NetBSD: timeout.9,v 1.2 1996/06/23 22:32:34 pk Exp $
+.\"
+.\" Copyright (c) 1996 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Paul Kranenburg.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the NetBSD
+.\" Foundation, Inc. and its contributors.
+.\" 4. Neither the name of The NetBSD Foundation nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/timeout.9,v 1.23.2.2 2005/03/21 23:01:30 iedowse Exp %
+.\" $FreeBSD$
+.\"
+.Dd February 6, 2005
+.Dt TIMEOUT 9
+.Os
+.Sh 名称
+.Nm timeout ,
+.Nm untimeout ,
+.Nm callout_handle_init ,
+.Nm callout_init ,
+.Nm callout_stop ,
+.Nm callout_drain ,
+.Nm callout_reset ,
+.Nm callout_pending ,
+.Nm callout_active ,
+.Nm callout_deactivate
+.Nd 明示された時間長の後の関数の実行
+.Sh 書式
+.In sys/types.h
+.In sys/systm.h
+.Pp
+.Bd -literal
+typedef void timeout_t (void *);
+.Ed
+.Ft struct callout_handle
+.Fn timeout "timeout_t *func" "void *arg" "int ticks"
+.Ft void
+.Fn callout_handle_init "struct callout_handle *handle"
+.Pp
+.Bd -literal
+struct callout_handle handle = CALLOUT_HANDLE_INITIALIZER(&handle)
+.Ed
+.Ft void
+.Fn untimeout "timeout_t *func" "void *arg" "struct callout_handle handle"
+.Ft void
+.Fn callout_init "struct callout *c" "int mpsafe"
+.Ft int
+.Fn callout_stop "struct callout *c"
+.Ft int
+.Fn callout_drain "struct callout *c"
+.Ft void
+.Fn callout_reset "struct callout *c" "int ticks" "timeout_t *func" "void *arg"
+.Ft int
+.Fn callout_pending "struct callout *c"
+.Ft int
+.Fn callout_active "struct callout *c"
+.Fn callout_deactivate "struct callout *c"
+.Sh 解説
+関数
+.Fn timeout
+は
+.Fa ticks Ns No /hz
+秒後に実行されるための引数
+.Fa func
+によって与えられる関数を呼び出すためのスケジュールを行います。
+正ではない値の
+.Fa ticks
+は暗黙のうちに値
+.Sq 1
+に変換されます。
+.Fa func
+は
+.Fa void *
+の引数を取る関数へのポインタであるべきです。
+実行時には、
+.Fa func
+は
+.Fa arg
+をその唯一の引数として受け取ります。
+.Fn timeout
+からの戻り値は、スケジュールされた timeout を取り消す要求のための
+.Fn untimeout
+関数との接続に使用されることが可能な
+.Ft struct callout_handle
+です。
+.Fn timeout
+の呼び出しは古いスタイルで、新しいコードは
+.Fn callout_*
+関数を使用するべきです。
+.Pp
+関数
+.Fn callout_handle_init
+はハンドルを初期化するために使用し、untimeout と共に
+使用されても副作用無しに戻るようにします。
+.Pp
+コールアウトハンドルに
+.Fn CALLOUT_HANDLE_INITIALIZER
+の値を割当てることは、
+.Fn callout_handle_init
+と同様の機能を実行し、静的な宣言またはグローバルなコールアウトハンドルで
+使用するために提供されています。
+.Pp
+関数
+.Fn untimeout
+は、そのハンドルの正当性を確認するために
+.Fa func
+および
+.Fa arg
+引数を使用して、
+.Fa handle
+に関連付けられた timeout を取り消します。
+そのハンドルが引数
+.Fa arg
+を取る関数
+.Fa func
+を持つ timeout と一致しない場合には、何も行いません。
+.Fa handle
+は
+.Fn untimeout
+に渡される前に以前の
+.Fn timeout ,
+.Fn callout_handle_init
+の呼び出し、または
+.Fn CALLOUT_HANDLE_INITIALIZER "&handle"
+の値の割当てによって初期化されなければなりません。
+以前に初期化されたハンドルを伴なわない untimeout の呼び出しの振る舞いは
+未定義です。
+.Fn untimeout
+の呼び出しは古いスタイルで、新しいコードは
+.Fn callout_*
+関数を使用するべきです。
+.Pp
+ハンドルがシステムによって再利用されるので、
+両方の呼び出しが同じ関数のポインタおよび引数を使用し、2 番目の呼び出しの前に
+最初の timeout が終了するか取り消された場合には、1 つの
+.Fn timeout
+の実行からのハンドルが別の
+.Fn timeout
+の実行のハンドルが一致することができることが (意外ではあるが) 可能です。
+timeout の設備は
+.Fn timeout
+および
+.Fn untimeout
+のための O(1) 実行時間を提供します。
+timeout (訳注: および untimeout) は
+.Va Giant
+ロックが保持されている状態で、
+.Fn softclock
+から実行されます。
+従って、再入から保護されます。
+.Pp
+関数
+.Fn callout_init ,
+.Fn callout_stop ,
+.Fn callout_drain
+および
+.Fn callout_reset
+は固有のコールアウト構造を割当てることを希望するクライアントのための、
+低レベルのルーチンです。
+.Pp
+関数
+.Fn callout_init
+はコールアウトを初期化し、そのためそのコールアウトは何の副作用もなしに
+.Fn callout_stop ,
+.Fn callout_drain
+または
+.Fn callout_reset
+に渡されることができます。
+.Fa mpsafe
+引数が 0 の場合には、callout 構造体は
+.Dq マルチプロセッサセーフ
+であるとはみなされません。
+すなわち、ジャイアントロックがコールアウト関数の呼出し前に
+獲得され、コールアウト関数が戻るときに解放されるようにします。
+.Pp
+関数
+.Fn callout_stop
+は、そのコールアウトが現在保留中の場合には、コールアウトを取り消します。
+コールアウトが保留中の場合には、
+.Fn callout_stop
+は 0 でない値を返します。
+コールアウトが設定されていないか既に実行されているか現在実行中の場合には、
+0 が返されます。
+この関数が呼び出されるとき、コールアウトが
+.Va Giant
+ミューテックス (mutex) によって保護されている場合には、
+.Va Giant
+を保持していなければなりません。
+.Pp
+関数
+.Fn callout_drain
+は、コールアウトが既に進行中の場合にはその完了をウェイトすることを除いて、
+.Fn callout_stop
+と同一です。
+この関数は、そのコールアウトがブロックするかもしれないあらゆるロックを
+保持している間は、決して呼び出されてはなりません。
+さもないと結果としてデッドロックします。
+コールアウトサブシステムが既にこのコールアウトを処理し始めたなら
+コールアウト関数が
+.Fn callout_drain
+の実行の間に呼び出されるかもしれないことに注意してください。
+しかしながら、コールアウトサブシステムは、
+.Fn callout_drain
+が返る前にコールアウトが完全に停止されることを保証します。
+.Pp
+関数
+.Fn callout_reset
+は最初にそのコールアウトを廃止するために
+.Fn callout_stop
+と同様のことを実行し、それから新しいコールアウトを
+.Fn timeout
+と同じ流儀で確立します。
+この関数が呼び出されるとき、コールアウトが
+.Va Giant
+ミューテックスによって保護される場合には、
+.Va Giant
+は保持されなければなりません。
+.Pp
+マクロ
+.Fn callout_pending ,
+.Fn callout_active
+および
+.Fn callout_deactivate
+はコールアウトの現在の状態へのアクセスを提供します。
+これらのマクロを慎重に使用すれば、非同期タイマ機構に
+特有の多くの競合条件を避けることができます。
+さらなる詳細については下記の
+.Sx "競合条件を回避する"
+を参照してださい。
+.Fn callout_pending
+マクロは、コールアウトが
+.Em 保留中
+であるかどうかチェックします。
+コールアウトはタイムアウトが設定されているが時間がまだ到着していない時、
+.Em 保留中
+であると見なされます。
+いったんタイムアウト時間が来て、コールアウトサブシステムがこのコールアウト
+を処理し始めれば、
+.Fn callout_pending
+はたとえコールアウト関数が実行を終了して (または、始めて) いなくても
+.Dv FALSE
+を返すことに注意してください。
+.\" even though = 〜にもかかわらず、たとえ〜としても、たとえ〜でも
+.Fn callout_active
+マクロはコールアウトが
+.Em アクティブ
+としてマークされているかどうかチェックし、
+.Fn callout_deactivate
+マクロはコールアウトの
+.Em アクティブ
+フラグをクリアします。
+コールアウトサブシステムは、タイムアウトが設定されているコールアウトを
+.Em アクティブ
+に設定し、
+.Fn callout_stop
+と
+.Fn callout_drain
+では
+.Em アクティブ
+をクリアしますが、
+コールアウト関数の実行を通して
+通常どおりコールアウトの期限が切れた場合には、クリア
+.Em しません
+。
+.Ss "競合条件を回避する"
+コールアウトサブシステムはそれ自体のタイマコンテキストから
+コールアウト関数を呼び出します。
+ある種の同期なしでは、コールアウト関数は他のスレッドからコールアウトの
+停止やリセットを試みながら並行して起動される可能性があります。
+特に、コールアウト関数は典型的には最初の動作として
+ミューテックスを獲得するので、
+コールアウト関数は既に呼び出されたとしても、
+別のスレッドがコールアウトをリセットするかまたは停止しようとするまで
+そのミューテックスを待ってブロックされてしまいます。
+.Pp
+コールアウトサブシステムはこれらの同期関係に対処するために
+多くのメカニズムを提供します。
+.Bl -enum -offset indent
+.It
+.Fa mpsafe
+を
+.Dv FALSE
+に設定して
+.Fn callout_init
+を使用することで指定される)
+.Va Giant
+ミューテックスによってコールアウトが保護される場合は、
+このミューテックスは競合条件を避けるために使用できます。
+.Fn callout_stop
+か
+.Fn callout_reset
+を呼び出す前に、
+.Va Giant
+ミューテックスは呼び出し側によって獲得されなければなりませんが、
+コールアウトが想定したとおりに正しく停止されるかまたはリセットされる
+ことが保証されます。
+.\" as expected = 案の定、予想どおり(に)、想定したとおり
+コールアウトかその関連のミューテックスを破壊する前に
+.Fn callout_drain
+を使用する必要がまだあることに注意してください。
+.It
+.Fn callout_stop
+からのリターン値は、コールアウトが削除されたかどうかを示します。
+コールアウトが設定され、
+コールアウト関数がまだ実行されていないことがわかっている場合は、
+.Dv FALSE
+の値はコールアウト関数がまさに呼び出されようとしていることを示します。
+.\" about to = 《be 〜》まさに〜しようとしている
+例えば:
+.Bd -literal -offset indent
+if (sc->sc_flags & SCFLG_CALLOUT_RUNNING) {
+ if (callout_stop(&sc->sc_callout)) {
+ sc->sc_flags &= ~SCFLG_CALLOUT_RUNNING;
+ /* successfully stopped */
+ } else {
+ /*
+ * callout has expired and callout
+ * function is about to be executed
+ */
+ }
+}
+.Ed
+.Pp
+.Fn callout_reset
+がコールアウトを停止したかどうか決定するための
+同等なメカニズムがなにもないことに注意してください。
+.It
+.Fn callout_pending ,
+.Fn callout_active
+および
+.Fn callout_deactivate
+マクロは競合条件を回避するために連携して使用できます。
+.\" work around = 問題に取り掛かる、対処する、
+コールアウトのタイムアウトが設定されるとき、コールアウトサブシステムは
+ともに
+.Em アクティブ
+と
+.Em 保留中
+の両方でコールアウトをマークします。
+タイムアウト時間に達するとき、コールアウトサブシステムは
+.Em 保留中
+のフラグを最初にクリアすることによってコールアウトを処理し始めます。
+次に、
+.Em アクティブ
+フラグを変えないでコールアウト関数を呼び出して、
+コールアウト関数が戻った後でさえ
+.Em アクティブ
+フラグをクリアしません。
+ここで説明されたメカニズムでは、
+コールアウト関数自体が
+.Fn callout_deactivate
+マクロを使用して
+.Em アクティブ
+フラグをクリアすることを要求します。
+.Fn callout_stop
+と
+.Fn callout_drain
+関数は戻る前に、
+常に
+.Em アクティブ
+と
+.Em 保留中
+フラグの両方をクリアします。
+.Pp
+.Fn callout_pending
+が
+.Dv TRUE
+を返す場合、
+コールアウト関数は、最初に
+.Em 保留中
+フラグをチェックして動作なしで戻るべきです。
+これは、コールアウトがコールアウト関数が呼び出される直前に
+.Fn callout_reset
+を使用して再スケジュールされたことを示します。
+.Fn callout_active
+が
+.Dv FALSE
+を返す場合、コールアウト関数は同様に動作なしで返るべきです。
+これは、コールアウトが停止されたことを示します。
+最後に、コールアウト関数は、
+.Em アクティブ
+フラグをクリアするために
+.Fn callout_deactivate
+を呼び出すべきです。
+例えば:
+.Bd -literal -offset indent
+mtx_lock(&sc->sc_mtx);
+if (callout_pending(&sc->sc_callout)) {
+ /* callout was reset */
+ mtx_unlock(&sc->sc_mtx);
+ return;
+}
+if (!callout_active(&sc->sc_callout)) {
+ /* callout was stopped */
+ mtx_unlock(&sc->sc_mtx);
+ return;
+}
+callout_deactivate(&sc->sc_callout);
+/* rest of callout function */
+.Ed
+.Pp
+上記で使用したミューテックスのような適切な同期をともに使うことにより、
+このアプローチは
+.Fn callout_stop
+と
+.Fn callout_reset
+関数がいつも競合なしで使用できます。
+.\" together with = 〜とともに、〜に加えて
+例えば:
+.Bd -literal -offset indent
+mtx_lock(&sc->sc_mtx);
+callout_stop(&sc->sc_callout);
+/* The callout is effectively stopped now. */
+.Ed
+.Pp
+コールアウトがまだ保留中である場合、これらの関数は通常どおり動作しますが、
+コールアウトの処理が既に始まっている場合、
+コールアウト関数におけるテストにおいて、これらの関数はさらなる
+動作なしで戻ることになります。
+コールアウト関数と他のコードの間の同期は、コールアウト関数が
+.Fn callout_deactivate
+呼び出しを終えるまでコールアウトの停止やリセットが行われないことを
+確実にします。
+.Pp
+さらに、上記のテクニックは、
+.Em アクティブ
+フラグが実際にコールアウトが有効か無効かを反映することを確実にします。
+.Fn callout_active
+が FALSE を返した場合、たとえコールアウトサブシステムが
+実際にコールアウト関数を開始しようとしていたとしても、
+コールアウト関数は動作なしに終了してしまうので、
+実質的に無効化されています。
+.\" since even if = たとえ〜でも〜なので、
+.\" even if = たとえ〜でも
+.El
+.Pp
+最後に、コールアウトを停止しようとしているときに
+考慮しなければならない最後の競合条件が 1 つあります。
+この場合、既に破壊されるかまたは再利用されたデータオブジェクトに
+アクセスする必要があるかもしれないので、
+コールアウト関数自体に
+停止されたコールアウトを検出するさせるために安全でないかもしれません。
+コールアウトが完全に終了したことを保証するためには、
+.Fn callout_drain
+呼び出しを使用しなければなりません。
+.Sh 戻り値
+.Fn timeout
+関数は
+.Fn untimeout
+に渡すことが可能な
+.Ft struct callout_handle
+を返します。
+.Fn callout_stop
+および
+.Fn callout_drain
+関数は呼び出された時にコールアウトが未だ保留中の場合には 0 以外を、
+そうでない場合には 0 を返します。
+.Sh 歴史
+現在の timeout および untimeout ルーチンは
+.An Adam M. Costello
+および
+.An George Varghese
+の
+.%T "Redesigning the BSD Callout and Timer Facilities"
+と名付けられた技術レポートで発表された作業に基づいています。
+また、
+.Fx
+への導入のために
+.An Justin T. Gibbs
+によって少し修正されています。
+この実装で使用されているデータ構造の元の作業は、
+.An G. Varghese
+および
+.An A. Lauck
+によって
+.%B "Proceedings of the 11th ACM Annual Symposium on Operating Systems Principles"
+の
+.%T "Hashed and Hierarchical Timing Wheels: Data Structures for the Efficient Implementation of a Timer Facility"
+で発表されました。
+現在の実装は、長らく存在していた、挿入および削除の O(n) 実行時間を
+提供するが untimeout 操作のためのハンドルを生成または要求しなかった
+.Bx
+リンクリストのコールアウト機構に、取って代りました。
diff --git a/documentation/manual-pages/ja/man9/tvtohz.9 b/documentation/manual-pages/ja/man9/tvtohz.9
new file mode 100644
index 0000000000..4b7ab29a1e
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/tvtohz.9
@@ -0,0 +1,60 @@
+.\" Copyright (c) 2000 Kelly Yancey
+.\" 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/tvtohz.9,v 1.3 2001/10/01 16:09:25 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd January 3, 2000
+.Dt TVTOHZ 9
+.Os
+.Sh 名称
+.Nm tvtohz
+.Nd 時間間隔からティック数への変換
+.Sh 書式
+.In sys/time.h
+.Ft int
+.Fn tvtohz "struct timeval *tv"
+.Sh 解説
+.Fn tvtohz
+関数は、時間間隔を示す単一引数
+.Fa tv
+を受け付けます。
+この時間間隔中に、システムティックが何個経過するかを計算します。
+.Sh 戻り値
+指定された時間間隔中に経過すると予測されるシステムティック数を、
+整数で返します。
+この数には、現在のティックも含まれます。
+.Sh 関連項目
+.Xr microtime 9 ,
+.Xr microuptime 9 ,
+.Xr timeout 9
+.Sh 歴史
+.Nm
+関数は、
+.Fx 3.0
+で初めて登場しました。
+.Sh 作者
+このマニュアルページは
+.An Kelly Yancey Aq kbyanc@posi.net
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/uio.9 b/documentation/manual-pages/ja/man9/uio.9
new file mode 100644
index 0000000000..4e6de6c310
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/uio.9
@@ -0,0 +1,177 @@
+.\"
+.\" Copyright (c) 1997 Joerg Wunsch
+.\"
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/uio.9,v 1.15 2004/04/15 07:24:10 markm Exp %
+.\"
+.\"
+.\" $FreeBSD$
+.Dd February 2, 1997
+.Os
+.Dt UIO 9
+.Sh 名称
+.Nm uio ,
+.Nm uiomove
+.Nd デバイスドライバ入出力ルーチン
+.Sh 書式
+.In sys/types.h
+.In sys/uio.h
+.Pp
+.Bd -literal
+struct uio {
+ struct iovec *uio_iov;
+ int uio_iovcnt;
+ off_t uio_offset;
+ int uio_resid;
+ enum uio_seg uio_segflg;
+ enum uio_rw uio_rw;
+ struct thread *uio_td;
+};
+.Ed
+.Ft int
+.Fn uiomove "void *buf" "int howmuch" "struct uio *uiop"
+.Sh 解説
+.Fn uiomove
+関数は、ユーザ空間とカーネル空間の境界を越えることさえ可能で、
+バッファと入出力ベクタ間のデータ転送の実行に使用されます。
+.Pp
+文字型デバイスのドライバに渡された、あらゆる
+.Xr read 2 ,
+.Xr write 2 ,
+.Xr readv 2
+ないし
+.Xr writev 2
+システムコールの結果として、適切なドライバの
+.Va d_read
+または
+.Va d_write
+エントリが
+.Vt "struct uio"
+構造体のポインタを渡されて呼び出されます。
+転送のリクエストは、この構造体の中にエンコードされます。
+ドライバ自身もこの構造体の中のデータを取り出すために
+.Fn uiomove
+を使用するべきです。
+.Pp
+.Vt uio
+構造体の各フィールドは下記のとおりです。
+.Bl -tag -width ".Va uio_iovcnt"
+.It Va uio_iov
+処理すべき入出力ベクタの配列です。
+散在的な入出力の場合には、一つ以上のベクタとなるでしょう。
+.It Va uio_iovcnt
+存在している入出力ベクタの数を示します。
+.It Va uio_offset
+デバイスのオフセットです。
+.It Va uio_resid
+処理すべきバイト数です。
+.It Va uio_segflg
+以下のフラグの中の一つです。
+.Bl -tag -width ".Dv UIO_USERSPACE"
+.It Va UIO_USERSPACE
+入出力ベクタはプロセスのアドレス空間を指しています。
+.It Va UIO_SYSSPACE
+入出力ベクタはカーネルのアドレス空間を指しています。
+.It Va UIO_NOCOPY
+オブジェクト中に既にデータがあり、コピーしません。
+.El
+.It Va uio_rw
+要求された転送の方向を示し、
+.Dv UIO_READ
+または
+.Dv UIO_WRITE
+です。
+.It Va uio_procp
+スレッドに関連付けられた
+.Vt "struct thread"
+構造体へのポインタです。
+.Dv uio_segflg
+がプロセスのアドレス空間との転送をすべきであると示している場合に
+使用されます。
+.El
+.Sh 使用例
+考え方として、ドライバはデータのためのプライベートなバッファの保守を行ない、
+このバッファの最大サイズのデータのかたまりの要求を処理します。
+下記のバッファの取り扱いはとても簡略化されていて
+恐らく動きません(バッファのポインタは部分的な読み込みの場合進みません)し、
+.Nm
+の取り扱いを実際にやって見せているだけだ、ということに注意してください。
+.Bd -literal
+/* MIN() の定義はこの中にあります */
+#include <sys/param.h>
+
+#define BUFSIZE 512
+static char buffer[BUFSIZE];
+
+static int data_available; /* 読み込めるデータ量 */
+
+static int
+fooread(dev_t dev, struct uio *uio, int flag)
+{
+ int rv, amnt;
+
+ rv = 0;
+ while (uio->uio_resid > 0) {
+ if (data_available > 0) {
+ amnt = MIN(uio->uio_resid, data_available);
+ rv = uiomove(buffer, amnt, uio);
+ if (rv != 0)
+ break;
+ data_available -= amnt;
+ } else
+ tsleep(...); /* より良い時期まで待つ */
+ }
+ if (rv != 0) {
+ /* エラーのクリーンアップをここで行なう */
+ }
+ return (rv);
+}
+.Ed
+.Sh 戻り値
+.Fn uiomove
+は
+プロセスのアドレス空間との転送の場合に、
+.Xr copyin 9
+または
+.Xr copyout 9
+によって引き起こされた
+.Er EFAULT
+を返すことがあります。
+.Sh 関連項目
+.Xr read 2 ,
+.Xr readv 2 ,
+.Xr write 2 ,
+.Xr writev 2 ,
+.Xr copyin 9 ,
+.Xr copyout 9 ,
+.Xr sleep 9
+.Sh 歴史
+.Nm
+の仕組みはある早期のバージョンの
+.Ux
+で登場しました。
+.Sh 作者
+このマニュアルページは
+.An J\(:org Wunsch
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/vfs_unmountall.9 b/documentation/manual-pages/ja/man9/vfs_unmountall.9
new file mode 100644
index 0000000000..f493bd6be8
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/vfs_unmountall.9
@@ -0,0 +1,45 @@
+.\" Copyright (c) 2001 Chris Costello <chris@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/vfs_unmountall.9,v 1.6 2002/12/12 17:25:58 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 26, 2001
+.Dt VFS_UNMOUNTALL 9
+.Os
+.Sh 名称
+.Nm vfs_unmountall
+.Nd 全てのファイルシステムのアンマウント
+.Sh 書式
+.In sys/param.h
+.In sys/mount.h
+.Ft void
+.Fn vfs_unmountall "void"
+.Sh 解説
+.Nm
+関数は、システムシャットダウン時にのみ実行され、操作の依存性を避けるため、
+最新のものから古いものの順で、
+マウントした全てのファイルシステムをアンマウントします。
+.Sh 関連項目
+.Xr boot 9
diff --git a/documentation/manual-pages/ja/man9/vget.9 b/documentation/manual-pages/ja/man9/vget.9
new file mode 100644
index 0000000000..2af7d0a767
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/vget.9
@@ -0,0 +1,73 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/vget.9,v 1.10 2003/10/23 02:22:07 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VGET 9
+.Sh 名称
+.Nm vget
+.Nd フリーリストから vnode を取得
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn vget "struct vnode *vp" "int lockflag" "struct thread *td"
+.Sh 解説
+フリーリストから vnode を取得し、その参照カウントをインクリメントします。
+.Bl -tag -width lockflag
+.It Fa vp
+フリーリストから取り除く vnode。
+.It Fa lockflag
+0 でない場合は、その vnode はロックもされるでしょう。
+.El
+.Pp
+使用されなくなった時、vnode はフリーリストに保持されます。
+これらの vnode は有効なファイルを参照していますが、
+いつでも新しいファイルを参照するために再利用され得ます。
+vnode は、名前キャッシュ等の
+システム中のキャッシュの中にも、しばしば保持されます。
+.Pp
+フリーリスト上にある vnode が再利用される時、例えば
+.Xr VOP_LOOKUP 9
+を呼び出した結果名前キャッシュにその vnode が見つかった場合、
+参照カウントのインクリメントとフリーリストからの削除のために、
+新しい使用者は
+.Fn vget
+を呼び出すことが必要です。
+.Sh 関連項目
+.Xr vnode 9 ,
+.Xr vput 9 ,
+.Xr vref 9 ,
+.Xr vrele 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/vnode.9 b/documentation/manual-pages/ja/man9/vnode.9
new file mode 100644
index 0000000000..59a8057cc8
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/vnode.9
@@ -0,0 +1,177 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/vnode.9,v 1.27 2003/10/23 02:22:07 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd May 20, 2003
+.Os
+.Dt VNODE 9
+.Sh 名称
+.Nm vnode
+.Nd ファイルまたはディレクトリの内部表現
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Sh 解説
+vnode は
+.Ux
+でのファイル活動の中心です。
+vnode は
+.Vt "struct vnode"
+で記述されます。
+個々の活動中のファイル、
+個々の現在のディレクトリ、個々のマウントされたファイル、
+テキストファイル、およびルートのために割当てられた一意的な vnode があります。
+.Pp
+個々の vnode は 3 つの参照カウント、
+.Va v_usecount ,
+.Va v_holdcnt
+および
+.Va v_writecount
+を持っています。
+最初のものはカーネル内でこの vnode を使用しているクライアントの数です。
+このカウントは
+.Xr vref 9 ,
+.Xr vrele 9
+および
+.Xr vput 9
+によって管理されます。
+2 番目のものはカーネル内でこの vnode の再利用を拒否しているクライアントの
+数です。
+このカウントは
+.Xr vhold 9
+および
+.Xr vdrop 9
+によって管理されます。
+vnode の
+.Va v_usecount
+および
+.Va v_holdcnt
+の両方が 0 に達すると、それからその vnode はフリーリスト上に置かれ、
+ことによっては別のファイルシステムで、
+別のファイルのために再利用されるかもしれません。
+フリーリストへのおよびフリーリストからの移行は、
+.Xr getnewvnode 9 ,
+.Xr vfree 9
+および
+.Xr vbusy 9
+によって取り扱われます。
+3 番目のものはファイルに書込み中のクライアントの数のカウントです。
+これは
+.Xr open 2
+および
+.Xr close 2
+システムコールによって管理されます。
+.Pp
+vnode を返すあらゆる呼び出し (例えば
+.Xr vget 9 ,
+.Xr VOP_LOOKUP 9
+など) は vnode の
+.Va v_usecount
+を 1 ずつ増やします。
+呼び出し側が vnode の利用を完了したときには、この参照は
+.Xr vrele 9
+(または vnode がロックされていれば
+.Xr vput 9 )
+の呼び出しによって解放されるべきです。
+.Pp
+その他の共通に使用される vnode 構造体のメンバは、
+名前キャッシュでの一貫性を管理するために使用される
+.Va v_id
+と、その vnode を所有しているファイルシステムを指す
+.Va v_mount
+と、その vnode が表現するオブジェクトの型を含む
+.Va v_type
+と、その vnode のファイルシステム特有のデータを保存するために
+ファイルシステムによって使用される
+.Va v_data
+があります。
+.Va v_op
+フィールドは vnode の機能を実装するファイルシステム内の関数を呼び出すための
+.Dv VOP_*
+マクロによって使用されます。
+.Sh VNODE の型
+.Bl -tag -width VSOCK
+.It Dv VNON
+型なしです。
+.It Dv VREG
+通常ファイルです。
+VM オブジェクトの支持が有るかもしれませんし無いかもしれません。
+必ず支持オブジェクトを取得したい場合には、
+.Xr vfs_object_create 9
+を呼び出します。
+.It Dv VDIR
+ディレクトリです。
+.It Dv VBLK
+ブロック型デバイスです。
+VM オブジェクトの支持が有るかもしれませんし無いかもしれません。
+必ず支持オブジェクトを取得したい場合には、
+.Xr vfs_object_create 9
+を呼び出します。
+.It Dv VCHR
+文字型デバイスです。
+.It Dv VLNK
+シンボリックリンクです。
+.It Dv VSOCK
+ソケットです。
+通知ロックは動作しないでしょう。
+.It Dv VFIFO
+FIFO (名前付きパイプ) です。
+通知ロックは動作しないでしょう。
+.It Dv VBAD
+古い形式のバッドセクタマップです。
+.El
+.Sh 実装に関する注
+VFIFO は
+.Pa /sys/kern/sys_pipe.c
+の "struct fileops" を使用します。
+VSOCK は
+.Pa /sys/kern/sys_socket.c
+の "struct fileops" を使用します。
+その他の全ては
+.Pa /sys/kern/vfs_vnops.c
+の "struct fileops" を使用します。
+.Pp
+VFIFO/VSOCK のコードになぜか "struct fileops" が使用されている理由は、
+カーネルへの VFS コードの不完全な統合の文化遺産です。
+.Pp
+.Xr vnode 9
+インタロックを保持している時の
+.Fn malloc
+または
+.Fn free
+への全ての呼出しは、VM オブジェクトと vnode のもつれ合いのために、
+LOR (ロック順序の逆転) を引き起こします。
+.Sh 関連項目
+.Xr malloc 9 ,
+.Xr VFS 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/vput.9 b/documentation/manual-pages/ja/man9/vput.9
new file mode 100644
index 0000000000..51aea21760
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/vput.9
@@ -0,0 +1,65 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/vput.9,v 1.10 2003/05/31 14:07:25 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VPUT 9
+.Sh 名称
+.Nm vput
+.Nd vnode の使用カウントのデクリメントとロック解除
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft void
+.Fn vput "struct vnode *vp"
+.Sh 解説
+vnode の
+.Va v_usecount
+フィールドをデクリメントし、その vnode のロックを解除します。
+.Bl -tag -width 2n
+.It Fa vp
+デクリメントされる vnode。
+.El
+.Pp
+この操作は、
+.Xr vrele 9
+が続く
+.Xr VOP_UNLOCK 9
+の呼び出しと、機能的に同等です。
+.Sh 関連項目
+.Xr vnode 9 ,
+.Xr VOP_UNLOCK 9 ,
+.Xr vref 9 ,
+.Xr vrele 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/vref.9 b/documentation/manual-pages/ja/man9/vref.9
new file mode 100644
index 0000000000..25998e4b1f
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/vref.9
@@ -0,0 +1,70 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/vref.9,v 1.12 2004/07/03 18:29:24 ru Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VREF 9
+.Sh 名称
+.Nm vref
+.Nd vnode の使用カウントのインクリメント
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft void
+.Fn vref "struct vnode *vp"
+.Sh 解説
+vnode の
+.Va v_usecount
+フィールドをインクリメントします。
+.Bl -tag -width 2n
+.It Fa vp
+インクリメントされる vnode。
+.El
+.Pp
+個々の vnode は、システムの何個の部分でその vnode が使用中であるかを示す
+参照カウントを維持管理します。
+これにより、
+vnode がもはや使われなくなって別のファイル用に安全に再利用可能なことを、
+ファイルシステムが検知可能となります。
+.Pp
+vnode を使用中のシステム中の全てのコード (例えば、
+あるアルゴリズムの操作中や、データ構造の格納時) は、
+.Fn vref
+を呼び出すべきです。
+.Sh 関連項目
+.Xr vget 9 ,
+.Xr vnode 9 ,
+.Xr vput 9 ,
+.Xr vrele 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/vrele.9 b/documentation/manual-pages/ja/man9/vrele.9
new file mode 100644
index 0000000000..5d60292a49
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/vrele.9
@@ -0,0 +1,67 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/vrele.9,v 1.11 2003/05/31 14:07:25 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VRELE 9
+.Sh 名称
+.Nm vrele
+.Nd vnode の使用カウントのデクリメント
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft void
+.Fn vrele "struct vnode *vp"
+.Sh 解説
+vnode の
+.Va v_usecount
+フィールドをデクリメントします。
+.Bl -tag -width 2n
+.It Fa vp
+デクリメントされる vnode。
+.El
+.Pp
+vnode を使用中のシステム中の全てのコードは、
+その vnode を使い終えた時には、
+.Fn vrele
+を呼び出すべきです。
+その vnode の
+.Va v_usecount
+フィールドが 0 に達した場合には、その vnode はフリーリストに置かれます。
+.Sh 関連項目
+.Xr vget 9 ,
+.Xr vnode 9 ,
+.Xr vput 9 ,
+.Xr vref 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。
diff --git a/documentation/manual-pages/ja/man9/vslock.9 b/documentation/manual-pages/ja/man9/vslock.9
new file mode 100644
index 0000000000..2ec5467197
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/vslock.9
@@ -0,0 +1,95 @@
+.\" %NetBSD: vslock.9,v 1.1 1996/06/15 20:47:29 pk Exp %
+.\"
+.\" Copyright (c) 1996 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Paul Kranenburg.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the NetBSD
+.\" Foundation, Inc. and its contributors.
+.\" 4. Neither the name of The NetBSD Foundation nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/vslock.9,v 1.15 2004/08/16 03:12:10 green Exp %
+.\"
+.\" $FreeBSD$
+.Dd August 10, 2004
+.Dt VSLOCK 9
+.Os
+.Sh 名称
+.Nm vslock ,
+.Nm vsunlock
+.Nd ユーザ空間のアドレスのメモリへのロックとアンロック
+.Sh 書式
+.In sys/param.h
+.In sys/proc.h
+.In vm/vm.h
+.In vm/vm_extern.h
+.Ft int
+.Fn vslock "void *addr" "size_t len"
+.Ft void
+.Fn vsunlock "void *addr" "size_t len"
+.Sh 解説
+.Fn vslock
+および
+.Fn vsunlock
+関数は現在実行中のプロセスに属するアドレスの範囲を
+メモリ中にそれぞれロックしたりアンロックしたりします。
+ロックされる実際のメモリ量はマシンのページサイズの倍数になります。
+開始ページナンバは
+.Fa addr
+をすぐ前のページ境界に切りつめられ、終了ページは
+.Fa addr +
+.Fa len
+の次のページ境界に切り上げられて計算されます。
+この操作に使用されるプロセスのコンテキストはグローバル変数
+.Va curproc
+を参照します。
+.Sh 戻り値
+.Fn vslock
+関数は成功すると 0 を返し、そうでないと以下に示すエラーの中の 1 つを
+返します。
+.Sh エラー
+.Fn vslock
+関数は以下の場合に失敗します。
+.Bl -tag -width Er
+.It Bq Er EINVAL
+.Fa addr
+および
+.Fa len
+パラメータがマシンのアドレス空間の最後をラップアラウンドする
+メモリ領域を指定しています。
+.It Bq Er ENOMEM
+指定されたアドレス範囲の大きさがロックされたメモリのシステム制限を
+超過しています。
+.It Bq Er ENOMEM
+要求されたアドレス範囲をロックすることが、そのプロセスのプロセス毎の
+ロックされたメモリの制限を超過させます。
+.It Bq Er EFAULT
+示されたアドレス範囲の中の幾つかの部分が割り当てられていません。
+ページのマッピングにエラー/失敗があります。
+.El
diff --git a/documentation/manual-pages/ja/man9/zone.9 b/documentation/manual-pages/ja/man9/zone.9
new file mode 100644
index 0000000000..f16a117ca5
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/zone.9
@@ -0,0 +1,205 @@
+.\"-
+.\" Copyright (c) 2001 Dag-Erling Coidan Smorgrav
+.\" 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/zone.9,v 1.26 2004/01/25 11:39:41 des Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 21, 2003
+.Dt ZONE 9
+.Os
+.Sh 名称
+.Nm uma_zcreate ,
+.Nm uma_zalloc ,
+.Nm uma_zfree ,
+.Nm uma_zdestroy ,
+.Nm uma_zone_set_max
+.Nd ゾーンアロケータ
+.Sh 書式
+.In sys/param.h
+.In sys/queue.h
+.In vm/uma.h
+.Ft uma_zone_t
+.Fo uma_zcreate
+.Fa "char *name" "int size"
+.Fa "uma_ctor ctor" "uma_dtor dtor" "uma_init uminit" "uma_fini fini"
+.Fa "int align" "u_int16_t flags"
+.Fc
+.Ft "void *"
+.Fn uma_zalloc "uma_zone_t zone" "int flags"
+.Ft void
+.Fn uma_zfree "uma_zone_t zone" "void *item"
+.Ft void
+.Fn uma_zdestroy "uma_zone_t zone"
+.Ft void
+.Fn uma_zone_set_max "uma_zone_t zone" "int nitems"
+.Sh 解説
+ゾーンアロケータは動的に大きさが決められる類似した大きさの項目の集合を
+管理するための効率的なインタフェースを提供します。
+ゾーンアロケータは実行時に割り当てられたゾーンはもちろん、
+予め割り当てられているゾーンに対しても使用することが出来、またそのため、
+他のメモリ管理ルーチンよりもブートプロセスのより早い段階で利用可能です。
+.Pp
+ゾーンは伸張性のある同一の大きさの項目の集合です。
+ゾーンアロケータはどの項目が使用中かそうでないのかを見失わないようにし、
+ゾーンから
+項目を割り当てるための関数および解放して戻す (後での使用のために項目を
+利用可能にする) ための関数を提供します。
+.Pp
+構造体をゾーンアロケータで管理し、
+割り当ての間に埋め込み済みのフィールドを残すことにより
+型が固定となるゾーンの特性を使用したい場合、
+ゾーンアロケータが内部で使用する先頭 2 つのポインタを
+この構造体が予約しておく必要があります。
+.Bd -literal -offset indent
+struct my_item {
+ struct my_item *z_rsvd1;
+ struct my_item *z_rsvd2;
+ /* 構造体の残りの部分 */
+};
+.Ed
+.Pp
+そうしない場合、各々の割当ての後でこれらのエントリが壊れたとみなすべきです。
+項目の最初の割当ての後では、0 にクリアされています。
+しかしそれに続く割当てでは、
+最近解放されたものが内容として残っているでしょうが、
+前述のフィールドは例外です。
+.Pp
+.Fn uma_zcreate
+関数は、これから項目が割当てられることが可能な新しいゾーンを作成します。
+.Fa name
+引数はデバッグおよびステータスのためのテキストのゾーン名です。
+このメモリは、ゾーンの割当てが解放されるまでは、解放されるべきではありません。
+.Pp
+引数
+.Fa ctor
+と
+.Fa dtor
+は、それぞれ
+.Fn uma_zalloc
+と
+.Fn uma_zfree
+の呼び出し時に uma サブシステムから呼ばれる、コールバック関数です。
+これらの目的は、資源の割り当て時と解放時に必要となる、
+初期化および破壊のためのフックを提供することです。
+.Fa ctor
+および
+.Fa dtor
+のコールバックの良い使い方としては、
+割り当てられたオブジェクトのグローバルカウントの調整があるでしょう。
+.Pp
+引数
+.Fa uminit
+と
+.Fa fini
+は、ゾーンからのオブジェクト割り当ての最適化に使用されます。
+これらは、要求実現またはメモリ圧迫の理由により、
+uma サブシステムが複数の項目を割り当てまたは解放する必要があるときに、
+呼び出されます。
+.Fa uminit
+および
+.Fa fini
+のコールバックの良い使い方としては、
+オブジェクトに含まれるミューテックスの初期化と破壊があるでしょう。
+これにより、オブジェクトが uma サブシステムのオブジェクトから返されたときに、
+既に初期化済みのミューテックスを再使用可能となります。
+これらは、各
+.Fn uma_zalloc
+や
+.Fn uma_zfree
+の呼び出し時には呼び出されず、
+複数のオブジェクトに対してバッチ的に呼び出されます。
+.Pp
+項目はそのゾーンへのポインタを伴なう
+.Fn uma_zalloc
+の呼出しによって割当てられ、
+.Fa flags
+引数に
+.Xr malloc 9
+として文書化された選択されたフラグを設定されます。
+その項目はそのゾーンに解放し戻されます。
+成功の場合には項目へのポインタを返します。
+ゾーン中の全項目が使用中で且つアロケータがゾーンを拡張できない稀な場合か、
+.Dv M_NOWAIT
+が明示されている場合、
+.Dv NULL
+を返します。
+.Pp
+項目はそのゾーンへのポインタおよびその項目へのポインタを伴なった
+.Fn uma_zfree
+の呼び出しによって、割当てられていたゾーンに解放し戻されます。
+.Pp
+空である作成されたゾーンは、
+.Fn uma_zdestroy
+を使用して、そのゾーンのために割当てられた全てのメモリを解放して、
+破壊されることが可能です。
+そのゾーンから
+.Fn uma_zalloc
+によって割当てられた項目は、その前に
+.Fn uma_zfree
+によって解放されなければなりません。
+.Pp
+.Fn uma_zone_set_max
+の目的は、
+.Fa zone
+引数によって指定されたゾーンに対して専用にできるメモリの最大量を
+制限することです。
+.Fa nitems
+引数にはそのゾーン内の項目の上限を与えます。
+この制限は、割り当てられた項目、開放された項目、および CPU 毎の
+キャッシュ内にある開放された項目を含む、そのゾーンの中の項目のトータル数です。
+複数の CPU を持つシステム上では、メモリの不足がない時にでさえ、
+指定された数の項目を割り当てることが不可能であることがあります。
+なぜならば、制限に引っかかる時点で、残りの全ての開放されている項目が、
+他の CPU のキャッシュの中にあるかもしれないからです。
+.Sh 戻り値
+.Fn uma_zalloc
+関数は項目へのポインタを、またはゾーンの未使用項目が不足してアロケータが
+ゾーンを拡張できない場合に
+.Dv NULL
+を、返します。
+.Sh 関連項目
+.Xr malloc 9
+.Sh 歴史
+ゾーンアロケータは
+.Fx 3.0
+ではじめて登場しました。
+スラブアロケータとしての機能のため、
+.Fx 5.0
+で根本的に変更されました。
+.Sh 作者
+.An -nosplit
+ゾーンアロケータは
+.An John S. Dyson
+が書きました。
+ゾーンアロケータは、スラブアロケータとしての機能のため、
+.An Jeff Roberson Aq jeff@FreeBSD.org
+が大部分を書き直しました。
+.Pp
+このマニュアルページは
+.An Dag-Erling Sm\(/orgrav Aq des@FreeBSD.org
+が書きました。
+UMA のために
+.An Jeroen Ruigrok van der Werven Aq asmodai@FreeBSD.org
+が変更しました。