diff options
Diffstat (limited to 'ja_JP.eucJP')
31 files changed, 3377 insertions, 0 deletions
diff --git a/ja_JP.eucJP/man/man9/BUS_CONNECT_INTR.9 b/ja_JP.eucJP/man/man9/BUS_CONNECT_INTR.9 new file mode 100644 index 0000000000..f421d4d3dd --- /dev/null +++ b/ja_JP.eucJP/man/man9/BUS_CONNECT_INTR.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/BUS_CONNECT_INTR.9,v 1.3 1999/08/28 00:21:04 peter Exp $ +.\" +.Dd June 16, 1998 +.Os +.Dt BUS_CONNECT_INTR 9 +.Os FreeBSD +.Sh 名称 +.Nm BUS_CONNECT_INTR +.Nd 割り込みハンドラの活性化 +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/bus.h> +.Ft int +.Fn BUS_CONNECT_INTR "device_t dev" "void *ih" +.Sh 解説 +.Pp +このメソッドは以前に +.Xr BUS_CREATE_INTR 9 +によって生成された割り込みハンドラを活性化します。 +.Sh 戻り値 +成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。 +.Sh 関連項目 +.Xr BUS_CREATE_INTR 9 , +.Xr device 9 , +.Xr driver 9 +.Sh バグ +このインターフェイスは恐らく不十分で、変えるべき課題があります。 +.Sh 作者 +このマニュアルページは +.An Doug Rabson +が書きました。 diff --git a/ja_JP.eucJP/man/man9/BUS_CREATE_INTR.9 b/ja_JP.eucJP/man/man9/BUS_CREATE_INTR.9 new file mode 100644 index 0000000000..14fd44dc50 --- /dev/null +++ b/ja_JP.eucJP/man/man9/BUS_CREATE_INTR.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/BUS_CREATE_INTR.9,v 1.3 1999/08/28 00:21:05 peter Exp $ +.\" +.Dd June 16, 1998 +.Os +.Dt BUS_CREATE_INTR 9 +.Os FreeBSD +.Sh 名称 +.Nm BUS_CREATE_INTR +.Nd 割り込みハンドラの生成 +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/bus.h> +.Ft void * +.Fn BUS_CREATE_INTR "device_t dev" "device_t child" "int irq" "driver_intr_t *intr" "void *arg" +.Sh 解説 +.Pp +.Xr BUS_CREATE_INTR 9 +メソッドは子デバイスのための割り込みハンドラを生成します。 +このハンドラ +.Fa intr +は唯一の引数 +.Fa arg +を伴って呼び出されるでしょう。 +割り込みハンドラを活性化するための +.Xr BUS_CONNECT_INTR 9 +の呼び出しで使用されることのできるハンドルが返されます。 +.Sh 戻り値 +呼び出し成功時には +割り込みを活性化することができる不明瞭なハンドルが返され、 +そうでない場合には NULL が返されます。 +.Sh 関連項目 +.Xr BUS_CONNECT_INTR 9 , +.Xr device 9 , +.Xr driver 9 +.Sh バグ +このインターフェイスは恐らく不十分で、変えるべき課題があります。 +.Sh 作者 +このマニュアルページは +.An Doug Rabson +が書きました。 diff --git a/ja_JP.eucJP/man/man9/BUS_PRINT_CHILD.9 b/ja_JP.eucJP/man/man9/BUS_PRINT_CHILD.9 new file mode 100644 index 0000000000..289ee70c00 --- /dev/null +++ b/ja_JP.eucJP/man/man9/BUS_PRINT_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/BUS_PRINT_CHILD.9,v 1.6 1999/08/28 00:21:05 peter Exp $ +.\" +.Dd June 16, 1998 +.Os +.Dt BUS_PRINT_CHILD 9 +.Os FreeBSD +.Sh 名称 +.Nm BUS_PRINT_CHILD +.Nd デバイスについての情報の表示 +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/bus.h> +.Ft int +.Fn BUS_PRINT_CHILD "device_t dev" "device_t child" +.Sh 解説 +.Pp +これはデバイスの説明をプリントアウトするシステムのコードから呼び出されます。 +それは子デバイスが持っている親とのアタッチメントを記述するべきです。 +例えば、TurboLaser のバスはどのノードにアタッチされたかをプリントします。 +BUS_PRINT_CHILD によって出力されるメッセージの適切なフォーマット +に関しての更なる情報は +.Xr bus_generic_print_child 9 +を見てください。 +.Sh 関連項目 +.Xr device 9 , +.Xr driver 9 +.Sh 戻り値 +出力の文字数です。 +.Sh 作者 +このマニュアルページは +.An Doug Rabson +が書きました。 diff --git a/ja_JP.eucJP/man/man9/BUS_READ_IVAR.9 b/ja_JP.eucJP/man/man9/BUS_READ_IVAR.9 new file mode 100644 index 0000000000..34605e876a --- /dev/null +++ b/ja_JP.eucJP/man/man9/BUS_READ_IVAR.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/BUS_READ_IVAR.9,v 1.3 1999/08/28 00:21:05 peter Exp $ +.\" +.Dd June 16, 1998 +.Os +.Dt BUS_READ_IVAR 9 +.Os FreeBSD +.Sh 名称 +.Nm BUS_READ_IVAR , +.Nm BUS_WRITE_IVAR +.Nd バス特有のデバイスインスタンス変数の操作 +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <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 解説 +.Pp +これらの 2 つのメソッドは子デバイスのバス特有のインスタンス変数の組 +を管理します。 +その意図は、異なった型のバスはそれぞれが適当なインスタンス変数 +の組(ISA バスにおける port や irq という具合に)を定義するということです。 +.Pp +この情報は構造体として子デバイスに与えられることも出来ましたが、 +そうすると、全てのドライバを編集し再コンパイルするという作業なしには、 +バスが変数を追加したり削除したりすることは困難になります。 +この作業はベンダが供給するバイナリのドライバでは不可能かもしれません。 +.Sh 戻り値 +成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。 +.Sh 関連項目 +.Xr device 9 , +.Xr driver 9 +.Sh 作者 +このマニュアルページは +.An Doug Rabson +が書きました。 diff --git a/ja_JP.eucJP/man/man9/DEVICE_ATTACH.9 b/ja_JP.eucJP/man/man9/DEVICE_ATTACH.9 new file mode 100644 index 0000000000..0a2d2cee02 --- /dev/null +++ b/ja_JP.eucJP/man/man9/DEVICE_ATTACH.9 @@ -0,0 +1,58 @@ +.\" -*- 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.3 1999/08/28 00:21:05 peter Exp $ +.\" +.Dd June 16, 1998 +.Dt DEVICE_ATTACH 9 +.Os FreeBSD +.Sh 名称 +.Nm DEVICE_ATTACH +.Nd デバイスのアタッチ +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/bus.h> +.Ft int +.Fn DEVICE_ATTACH "device_t dev" +.Sh 解説 +.Pp +デバイスをシステムにアタッチします。 +プローブメソッドは既に呼び出されているでしょうし、 +デバイスが存在していると示されているでしょう。 +このルーチンはハードウェアの初期化と +その他のシステムリソース(devfs エントリなど)の割り当てを行なうべきです。 +.Sh 戻り値 +成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。 +.Sh 関連項目 +.Xr device 9 , +.Xr DEVICE_DETACH 9 , +.Xr DEVICE_PROBE 9 +.Sh 作者 +このマニュアルページは +.An Doug Rabson +が書きました。 diff --git a/ja_JP.eucJP/man/man9/DEVICE_DETACH.9 b/ja_JP.eucJP/man/man9/DEVICE_DETACH.9 new file mode 100644 index 0000000000..68a6857e6a --- /dev/null +++ b/ja_JP.eucJP/man/man9/DEVICE_DETACH.9 @@ -0,0 +1,63 @@ +.\" -*- 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.3 1999/08/28 00:21:06 peter Exp $ +.\" +.Dd June 16, 1998 +.Os +.Dt DEVICE_DETACH 9 +.Os FreeBSD +.Sh 名称 +.Nm DEVICE_DETACH +.Nd デバイスのデタッチ +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/bus.h> +.Ft int +.Fn DEVICE_DETACH "device_t dev" +.Sh 解説 +.Pp +デバイスをデタッチします。 +ユーザがドライバソフトウェアを置き換えた場合、またはデバイスが +システムから物理的に切り離されようとしている場合(たとえば pccard デバイス)に、 +呼び出されることができます。 +.Pp +このメソッドは +.Xr DEVICE_ATTACH 9 +メソッドで割り当てられたあらゆるシステムリソースを開放し、 +ハードウェアを健全な状態にリセットする +(つまり割り込みをディセーブルするなど)べきです。 +.Sh 戻り値 +成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。 +.Sh 関連項目 +.Xr device 9 , +.Xr DEVICE_ATTACH 9 +.Sh 作者 +このマニュアルページは +.An Doug Rabson +が書きました。 diff --git a/ja_JP.eucJP/man/man9/DEVICE_PROBE.9 b/ja_JP.eucJP/man/man9/DEVICE_PROBE.9 new file mode 100644 index 0000000000..c84d3ec7f9 --- /dev/null +++ b/ja_JP.eucJP/man/man9/DEVICE_PROBE.9 @@ -0,0 +1,86 @@ +.\" -*- 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.4 2000/03/02 14:53:52 sheldonh Exp $ +.\" +.Dd June 16, 1998 +.Os +.Dt DEVICE_PROBE 9 +.Os FreeBSD +.Sh 名称 +.Nm DEVICE_PROBE +.Nd デバイスの存在のプローブ +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/bus.h> +.Ft int +.Fn DEVICE_PROBE "device_t dev" +.Sh 解説 +.Pp +このデバイスメソッドはデバイスがあるかどうかを知るためにプローブするべきです。 +デバイスが存在すれば 0 を、デバイスが見つからなければ ENXIO を返すべきです。 +プローブの間にその他のエラー(メモリ割当の失敗など)が起こった場合は、 +適切なエラーコードが返されるべきです。 +1 つのデバイスに 1 つ以上のドライバが当てはまるような場合のために、 +優先順位を返すことができます。 +この場合、成功の値は 0 以下の値で、 +最も大きな値が最も適切であることを意味します。 +失敗の値は正の値で表現され、 +通常の UNIX エラーコードが目的に応じて使用されるべきです。 +.Pp +ドライバが 0 より小さい成功値を返す場合、 +ドライバはそのデバイスにアタッチされるのが +同じドライバであると想定してはいけません。 +特に、softc 構造体に格納されたすべての値が +アタッチメソッドで利用可能であると想定してはいけませんし、 +また、アタッチメソッドが呼ばれた場合、 +プローブの間に割り当てられたあらゆるリソースは開放して +再割り当てしなければなりません。 +成功値 0 を返す場合には、 +ドライバはそのドライバがアタッチされると想定することができます。 +.Pp +バスを実装するデバイスは、 +バスに接続されたデバイスの存在をプローブし +それらを子デバイスとして追加するために、 +このメソッドを使用するべきです。 +このメソッドが +.Xr bus_generic_attach 9 +の使用と結合していれば、 +子デバイスは自動的にプローブされ、アタッチされるでしょう。 +.Sh 戻り値 +0 以下の値は成功を表し、0 より大きな値はエラー(errno)を表します。 +0 以下の値の時、0 は最高の優先順位を表し、それ以上のプローブは行ないません。 +0 未満の値は、低い値程、低い優先順位を表します。 +たとえば、-100 は -50 よりも低い優先順位を表します。 +.Sh 関連項目 +.Xr device 9 , +.Xr DEVICE_ATTACH 9 +.Sh 作者 +このマニュアルページは +.An Doug Rabson +が書きました。 diff --git a/ja_JP.eucJP/man/man9/DEVICE_SHUTDOWN.9 b/ja_JP.eucJP/man/man9/DEVICE_SHUTDOWN.9 new file mode 100644 index 0000000000..ae8f144928 --- /dev/null +++ b/ja_JP.eucJP/man/man9/DEVICE_SHUTDOWN.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/DEVICE_SHUTDOWN.9,v 1.2 1999/08/28 00:21:07 peter Exp $ +.\" +.Dd June 16, 1998 +.Os +.Dt DEVICE_SHUTDOWN 9 +.Os FreeBSD +.Sh 名称 +.Nm DEVICE_SHUTDOWN +.Nd システムシャットダウンの間に呼ばれる +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/bus.h> +.Ft int +.Fn DEVICE_SHUTDOWN "device_t dev" +.Sh 解説 +.Pp +システムシャットダウンの間に呼び出され、 +ドライバがハードウェアをコンピュータがリブートしても構わない状態にすることを +可能にします。 +.Sh 戻り値 +成功時には 0 が返され、それ以外の場合にはエラーが返されます。 +.Sh 関連項目 +.Xr device 9 , +.Xr DEVICE_ATTACH 9 +.Sh 作者 +このマニュアルページは +.An Doug Rabson +が書きました。 diff --git a/ja_JP.eucJP/man/man9/MD5.9 b/ja_JP.eucJP/man/man9/MD5.9 new file mode 100644 index 0000000000..8a9809f2b3 --- /dev/null +++ b/ja_JP.eucJP/man/man9/MD5.9 @@ -0,0 +1,75 @@ +.\" $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.5 2000/03/02 14:53:52 sheldonh Exp $ +.\" +.Dd April 17, 1996 +.Dt MD5 9 +.Os OpenBSD +.Sh 名称 +.Nm MD5 , +.Nm MD5Init , +.Nm MD5Transform +.Nd メッセージダイジェストルーチン +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 ハッシュを変更します。 +.Sh 著作権 +MD5 変換のコードはパブリックドメインに置かれていた Colin Plumb の +実装から得ています。 +MD5 暗号化チェックサムは Ronald Rivest が考案し、 +RFC 1321 "The MD5 Message Digest Algorithm" に記述されています。 diff --git a/ja_JP.eucJP/man/man9/Makefile b/ja_JP.eucJP/man/man9/Makefile new file mode 100644 index 0000000000..1c51d50e7e --- /dev/null +++ b/ja_JP.eucJP/man/man9/Makefile @@ -0,0 +1,67 @@ +MAN9 = BUS_CONNECT_INTR.9\ + BUS_CREATE_INTR.9\ + BUS_PRINT_CHILD.9\ + BUS_READ_IVAR.9\ + DEVICE_ATTACH.9\ + DEVICE_DETACH.9\ + DEVICE_PROBE.9\ + DEVICE_SHUTDOWN.9\ + MD5.9\ + VFS.9\ + bus_generic_attach.9\ + bus_generic_detach.9\ + bus_generic_map_intr.9\ + bus_generic_print_child.9\ + bus_generic_read_ivar.9\ + bus_generic_shutdown.9\ + copy.9\ + fetch.9\ + free.9\ + inittodr.9\ + intro.9\ + malloc.9\ + panic.9\ + physio.9\ + resettodr.9\ + spl.9\ + store.9\ + style.9\ + uio.9\ + vslock.9 + +MLINKS+=BUS_READ_IVAR.9 BUSWRITE_IVAR.9 +MLINKS+=malloc.9 FREE.9 +MLINKS+=malloc.9 MALLOC.9 +MLINKS+=MD5.9 MD5Init.9 +MLINKS+=MD5.9 MD5Transform.9 +MLINKS+=bus_generic_read_ivar.9 bus_generic_write_ivar.9 +MLINKS+=copy.9 copyin.9 +MLINKS+=copy.9 copyinstr.9 +MLINKS+=copy.9 copyout.9 +MLINKS+=copy.9 copystr.9 +MLINKS+=copy.9 malloc.9 +MLINLS+=fetch.9 fubyte.9 +MLINKS+=fetch.9 fuswintr.9 +MLINKS+=fetch.9 fusword.9 +MLINKS+=fetch.9 fuword.9 +MLINKS+=fetch.9 subyte.9 +MLINKS+=fetch.9 suswintr.9 +MLINKS+=fetch.9 susword.9 +MLINKS+=fetch.9 suword.9 +MLINKS+=spl.9 spl0.9 +MLINKS+=spl.9 splbio.9 +MLINKS+=spl.9 splclock.9 +MLINKS+=spl.9 splhigh.9 +MLINKS+=spl.9 splimp.9 +MLINKS+=spl.9 splnet.9 +MLINKS+=spl.9 splsoftclock.9 +MLINKS+=spl.9 splsofttty.9 +MLINKS+=spl.9 splstatclock.9 +MLINKS+=spl.9 spltty.9 +MLINKS+=spl.9 splvm.9 +MLINKS+=spl.9 splx.9 +MLINKS+=uio.9 uiomove.9 +MLINKS+=vslock.9 vsunlock.9 + +.include "bsd.prog.mk" + diff --git a/ja_JP.eucJP/man/man9/VFS.9 b/ja_JP.eucJP/man/man9/VFS.9 new file mode 100644 index 0000000000..55057bdc6e --- /dev/null +++ b/ja_JP.eucJP/man/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.4 1999/09/11 00:57:20 alfred Exp $ +.\" +.Dd July 24, 1996 +.Os +.Dt VFS 9 +.Sh 名称 +.Nm VFS +.Nd ファイルシステムへのカーネルインターフェイス +.Sh 解説 +ファイルシステムの設定や情報を、 +設定したり問い合わせたりするために使用される呼び出しです。 +.Pp +ある VFS 操作を実装しないファイルシステムは、 +空の関数の実装したり、 +.Fa eopnotsupp +にキャストしたりするよりも、 +.Fa src/sys/vfs_defaults.c +にある適切な +.Fa vfs_std +関数を使用するべきです。 +.Sh 関連項目 +.Xr vnode 9 , +.Xr VFS_CHECKEXP 9 , +.Xr VFS_FHTOVP 9 , +.Xr VFS_INIT 9 , +.Xr VFS_MOUNT 9 , +.Xr VFS_QUOTACTL 9 , +.Xr VFS_START 9 , +.Xr VFS_STATFS 9 , +.Xr VFS_SYNC 9 , +.Xr VFS_UNMOUNT 9 , +.Xr VFS_VGET 9 , +.Xr VFS_VPTOFH 9 +.Sh 作者 +このマニュアルページは +.An Doug Rabson +が書きました。 diff --git a/ja_JP.eucJP/man/man9/bus_generic_attach.9 b/ja_JP.eucJP/man/man9/bus_generic_attach.9 new file mode 100644 index 0000000000..b2c5f06d59 --- /dev/null +++ b/ja_JP.eucJP/man/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.3 1999/08/28 00:21:18 peter Exp $ +.\" +.Dd June 16, 1998 +.Dt BUS_GENERIC_ATTACH 9 +.Os FreeBSD +.Sh 名称 +.Nm bus_generic_attach +.Nd バスのための +.Dv DEVICE_ATTACH +の一般的な実装 +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/bus.h> +.Ft int +.Fn bus_generic_attach "device_t dev" +.Sh 解説 +.Pp +この関数はほとんどのバスのコードで使用されることができる +.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/ja_JP.eucJP/man/man9/bus_generic_detach.9 b/ja_JP.eucJP/man/man9/bus_generic_detach.9 new file mode 100644 index 0000000000..60b2c87ceb --- /dev/null +++ b/ja_JP.eucJP/man/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.3 1999/08/28 00:21:18 peter Exp $ +.\" +.Dd June 16, 1998 +.Dt BUS_GENERIC_DETACH 9 +.Os FreeBSD +.Sh 名称 +.Nm bus_generic_detach +.Nd バスのための +.Dv DEVICE_DETACH +の一般的な実装 +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/bus.h> +.Ft int +.Fn bus_generic_detach "device_t dev" +.Sh 解説 +.Pp +この関数はほとんどのバスのコードで使用されることが可能な +.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/ja_JP.eucJP/man/man9/bus_generic_map_intr.9 b/ja_JP.eucJP/man/man9/bus_generic_map_intr.9 new file mode 100644 index 0000000000..367aa8126d --- /dev/null +++ b/ja_JP.eucJP/man/man9/bus_generic_map_intr.9 @@ -0,0 +1,58 @@ +.\" -*- 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_map_intr.9,v 1.3 1999/08/28 00:21:19 peter Exp $ +.\" +.Dd June 16, 1998 +.Dt BUS_GENERIC_MAP_INTR 9 +.Os FreeBSD +.Sh 名称 +.Nm bus_generic_map_intr +.Nd バスのための +.Dv BUS_MAP_INTR +の一般的な実装 +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/bus.h> +.Ft int +.Fn bus_generic_map_intr "device_t dev" "device_t child" "driver_intr_t *intr" "void *arg" +.Sh 解説 +.Pp +この +.Xr BUS_MAP_INTR 9 +の単純な実装は、 +.Fa dev +の親のメソッドを呼び出すだけです。 +.Sh 戻り値 +成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。 +.Sh 関連項目 +.Xr device 9 +.Sh 作者 +このマニュアルページは +.An Doug Rabson +が書きました。 diff --git a/ja_JP.eucJP/man/man9/bus_generic_print_child.9 b/ja_JP.eucJP/man/man9/bus_generic_print_child.9 new file mode 100644 index 0000000000..3c5a49d8df --- /dev/null +++ b/ja_JP.eucJP/man/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.5 1999/08/28 00:21:19 peter Exp $ +.\" +.Dd June 16, 1998 +.Dt BUS_GENERIC_PRINT_CHILD 9 +.Os FreeBSD +.Sh 名称 +.Nm bus_generic_print_child +.Nd バスのための +.Dv DEVICE_PRINT_CHILD +の一般的な実装 +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/bus.h> +.Ft int +.Fn bus_generic_print_child "device_t dev" "device_t child" +.Sh 解説 +.Pp +この実装はデフォルトのデバイスアナウンスメッセージを出力します。 +与えられた '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/ja_JP.eucJP/man/man9/bus_generic_read_ivar.9 b/ja_JP.eucJP/man/man9/bus_generic_read_ivar.9 new file mode 100644 index 0000000000..f8be797758 --- /dev/null +++ b/ja_JP.eucJP/man/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.4 1999/08/28 00:21:19 peter Exp $ +.\" +.Dd June 16, 1998 +.Dt BUS_GENERIC_READ_IVAR 9 +.Os FreeBSD +.Sh 名称 +.Nm bus_generic_read_ivar , +.Nm bus_generic_write_ivar +.Nd バスのための +.Dv BUS_READ_IVAR +および +.Dv BUS_WRITE_IVAR +の一般的な実装 +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <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 解説 +.Pp +これらの関数は単純に +.Dv ENOENT +を返します。 +.Sh 関連項目 +.Xr device 9 , +.Xr driver 9 +.Sh 作者 +このマニュアルページは +.An Doug Rabson +が書きました。 diff --git a/ja_JP.eucJP/man/man9/bus_generic_shutdown.9 b/ja_JP.eucJP/man/man9/bus_generic_shutdown.9 new file mode 100644 index 0000000000..cfba948127 --- /dev/null +++ b/ja_JP.eucJP/man/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.3 1999/08/28 00:21:20 peter Exp $ +.\" +.Dd June 16, 1998 +.Dt BUS_GENERIC_SHUTDOWN 9 +.Os FreeBSD +.Sh 名称 +.Nm bus_generic_shutdown +.Nd バスのための +.Dv DEVICE_SHUTDOWN +の一般的な実装 +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/bus.h> +.Ft int +.Fn bus_generic_shutdown "device_t dev" +.Sh 解説 +.Pp +この関数は、ほとんどのバスのコードで使用されることができる +.Xr DEVICE_SHUTDOWN 9 +の実装を提供します。 +これは単純に、 +バスにアタッチされているの子デバイスそれぞれの +.Xr DEVICE_SHUTDOWN 9 +メソッドを呼び出します。 +.Sh 戻り値 +成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。 +.Sh 関連項目 +.Xr device 9 , +.Xr driver 9 +.Sh 作者 +このマニュアルページは +.An Doug Rabson +が書きました。 diff --git a/ja_JP.eucJP/man/man9/copy.9 b/ja_JP.eucJP/man/man9/copy.9 new file mode 100644 index 0000000000..01459ca817 --- /dev/null +++ b/ja_JP.eucJP/man/man9/copy.9 @@ -0,0 +1,138 @@ +.\" $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.6 1999/08/28 00:21:20 peter Exp $ +.\" +.Dd Jan 7, 1996 +.Dt COPY 9 +.Os FreeBSD +.Sh 名称 +.Nm copy , +.Nm copyin , +.Nm copyout , +.Nm copystr , +.Nm copyinstr +.\" .Nm copyinstr , +.\" .Nm copyoutstr +.Nd カーネルコピー関数 +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 +ユーザー空間のアドレス +.Pa uaddr +からカーネル空間のアドレス +.Pa kaddr +へ +.Pa len +バイトのデータをコピーします。 +.It Fn copyout +カーネル空間のアドレス +.Pa kaddr +からユーザー空間のアドレス +.Pa uaddr +へ +.Pa len +バイトのデータをコピーします。 +.It Fn copystr +カーネル空間のアドレス +.Pa kfaddr +からカーネル空間のアドレス +.Pa kdaddr +へヌル文字で終端された最大 +.Pa len +文字の文字列をコピーします。 +末尾のヌル文字を含む実際にコピーされた文字数が +.Pa *done +に返されます。 +.It Fn copyinstr +ユーザー空間のアドレス +.Pa uaddr +からカーネル空間のアドレス +.Pa kaddr +へヌル文字で終端された最大 +.Pa len +文字の文字列をコピーします。 +末尾のヌル文字を含む実際にコピーされた文字数が +.Pa *done +に返されます。 +.\" .It Fn copyoutstr +.\" カーネル空間のアドレス +.\" .Pa kaddr +.\" からユーザー空間のアドレス +.\" .Pa uaddr +.\" へヌル文字で終端された最大 +.\" .Pa len +.\" 文字の文字列をコピーします。 +.\" 末尾のヌル文字を含む実際にコピーされた文字数が +.\" .Pa *done +.\" に返されます。 +.El +.Sh 戻り値 +それぞれの +.Nm +関数は成功した時に 0 を、不正なアドレスに遭遇した時に EFAULT を返します。 +さらに、 +.Fn copystr +および +.Fn copyinstr +.\" 、 +.\" .Fn copyoutstr +関数は文字列が +.Pa len +バイトよりも長い時に ENAMETOOLONG を返します。 +.Sh 関連項目 +.Xr fetch 9 , +.Xr store 9 . diff --git a/ja_JP.eucJP/man/man9/fetch.9 b/ja_JP.eucJP/man/man9/fetch.9 new file mode 100644 index 0000000000..369a804de2 --- /dev/null +++ b/ja_JP.eucJP/man/man9/fetch.9 @@ -0,0 +1,90 @@ +.\" $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.6 1999/08/28 00:21:28 peter Exp $ +.\" +.Dd Jan 7, 1996 +.Dt FETCH 9 +.Os FreeBSD +.Sh 名称 +.Nm fetch , +.Nm fubyte , +.Nm fusword , +.Nm fuswintr , +.Nm fuword +.Nd ユーザー空間からのデータの取り出し +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/time.h> +.Fd #include <sys/systm.h> +.Fd #include <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/ja_JP.eucJP/man/man9/free.9 b/ja_JP.eucJP/man/man9/free.9 new file mode 100644 index 0000000000..a307bebbf1 --- /dev/null +++ b/ja_JP.eucJP/man/man9/free.9 @@ -0,0 +1,243 @@ +.\" 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.13 2000/03/03 14:05:06 sheldonh Exp $ +.\" +.Dd June 16, 1996 +.Dt MALLOC 9 +.Os FreeBSD +.Sh 名称 +.Nm malloc , +.Nm MALLOC , +.Nm free , +.Nm FREE +.Nd カーネルメモリマネージメントルーチン +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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" +.Sh 解説 +.Fn malloc +関数はカーネルアドレス空間の初期化されていたいメモリを +.Fa size +で明示された大きさの 1 つのオブジェクトとして割り当てます。 +.Fn free +は +.Fn malloc +で先に割り当てられていた +.Fa addr +のアドレスのメモリを再使用するために開放します。 +メモリは 0 にクリアされません。 +.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 M_NOWAIT +.It Dv M_NOWAIT +リソースの不足のため直ちに実行することが出来ない場合は、 +.Fn malloc +に +.Dv NULL +を返させます。 +さもなければ、 +.Fn malloc +は他のプロセスによるリソースの開放を待つために +.Fn sleep +を呼び出すでしょう。 +このフラグがセットされていれば、 +.Fn malloc +はブロックせずに +.Dv NULL +を返します。 +.Dv M_WAITOK +が 0 に定義されていることに注意してください。 +これはブロッキング操作がデフォルトだということです。 +.It Dv M_ASLEEP +リソースの不足のため直ちに実行することが出来ない場合は、 +.Fn malloc +に +.Fn asleep +を呼ばせます。 +.Dv M_ASLEEP +は単独での使用は実用的ではなく、常に +.Dv M_NOWAIT +との論理和(OR)をとって +.Fn malloc +に +.Fn asleep +を呼ばせ、直ちに +.Dv NULL +を返させます。 +呼び出し側がある時点で +.Fn await +を呼び、割り当てのリトライをすることが期待されています。 +当のルーチンに依存して、呼び出し側で一時的な失敗を上位に連鎖的に伝搬し、実際に +.Fn malloc +がキューに入れた非同期のウェイトをブロックする +幾つかの別の高レベルルーチンをもつことを決めることも出来ます。 +.It Dv M_WAITOK +リソースを待つことが可能(OK)であることを示します。 +都合の悪いことに 0 として定義されているので、この値に対して比較したり、 +フラグとして論理積(AND)をとることが決して無い様に注意されなければなりません。 +デフォルトの操作はメモリの割り当てが成功するまでブロックします。 +.Dv M_NOWAIT +が明示されると +.Fn malloc +は +.Dv NULL +のみを返すことが出来ます。 +.It Dv M_USE_RESERVE +システムが要求されたメモリを獲得するために、 +リザーブ領域を調査することが可能なことを示します。 +このオプションは以前は M_KERNEL と呼ばれていましたが、 +より解りやすく改名されていました。 +このオプションは軽視されていて、カーネルから徐々に削除されています。 +そのため、新しいプログラミングでは使用されない様にするべきです。 +.El +.Pp +引き数 +.Fa type +はメモリの利用方法の統計をとるために使われていて、簡単で健全なチェックです。 +この統計は +.Sq vmstat -m +により調査されることが出来ます。 +.Pp +.Fa type +は +.Fn MALLOC_DECLARE +と +.Fn MALLOC_DEFINE +マクロを通して +.Va malloc_type_t +を使用し決定されます。 +.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 +.Sh 戻り値 +.Fn malloc +はあらゆるタイプのストレージに適切に整列されたカーネル仮想アドレス、 +または要求が満足できずに且つ +.Dv M_NOWAIT +がセットされている場合に +.Dv NULL +を返します。 +.Dv M_ASLEEP +がセットされていて +.Fn malloc +が +.Dv NULL +を返す場合、副作用として +.Fn asleep +が呼び出されます。 +.Sh 関連項目 +.Xr vmstat 8 +.Sh 診断 +.Dv DIAGNOSTIC +コンフィギュレーションオプションを付けてコンパイルされたカーネルは、 +割り当てられた領域外への書き込みや不均衡な +.Fn malloc +関数と +.Fn free +関数の呼び出し等により生じたメモリ不正の検出を試みます。 +一貫性チェックの失敗はパニックまたはシステムコンソールメッセージを出力します。 +.Bl -bullet -offset indent -compact +.Pp +.It +panic: +.Dq malloc: bogus type +.It +panic: +.Dq malloc: allocation too large +.It +panic: +.Dq malloc: wrong bucket +.It +panic: +.Dq malloc: lost data +.It +panic: +.Dq free: address 0x%x out of range +.It +panic: +.Dq free: type %d out of range +.It +panic: +.Dq free: unaligned addr Aq description of object +.It +panic: +.Dq free: item modified +.It +panic: +.Dq free: multiple free[s] +.It +.Dq Data modified on freelist: Aq description of object +.El diff --git a/ja_JP.eucJP/man/man9/inittodr.9 b/ja_JP.eucJP/man/man9/inittodr.9 new file mode 100644 index 0000000000..879abbfe57 --- /dev/null +++ b/ja_JP.eucJP/man/man9/inittodr.9 @@ -0,0 +1,116 @@ +.\" $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.4 1999/08/28 00:21:28 peter Exp $ +.\" +.Dd March 22, 1997 +.Dt INITTODR 9 +.Os FreeBSD +.Sh 名称 +.Nm inittodr +.Nd システムタイムの初期化 +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 +.Tn FreeBSD +の実装は、 +バッテリバックアップクロックを使用できない場合は、 +.Fa base +で与えられた時刻をもっとうまく検証するべきでしょう。 +現在は無条件にシステムタイムをこの値に設定します。 diff --git a/ja_JP.eucJP/man/man9/intro.9 b/ja_JP.eucJP/man/man9/intro.9 new file mode 100644 index 0000000000..4ee7bf5f4e --- /dev/null +++ b/ja_JP.eucJP/man/man9/intro.9 @@ -0,0 +1,111 @@ +.\" 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.10 1999/08/28 00:21:28 peter Exp $ +.\" +.Dd December 13, 1995 +.Dt INTRO 9 +.Os FreeBSD 2.2 +.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 + +加えて、関数の名前は、それがデバッガルーチンであることが明確にわかるように、 +.Li DDB_ +を接頭辞として始めるべきです。 +.El +.Sh シンボルのスコープ +カーネル内のシンボルのスコープは注意深く考慮することが重要です。 +何らかの理由でそう出来ない場合以外は、デフォルトでは全てを static にします。 +.Pp +この方針には幾つかの理由があります。 +主な理由は、カーネルは単一の名前空間であることと、 +ここでは名前空間の汚染もあまり名案ではないということです。 +.Pp +デバイスドライバと +カーネルに新しい内部のインターフェイスを追加しないモジュールでは、 +可能であるならば全てのソースコードが一つのファイルであるべきです。 +それは全てのシンボルを static にできる方法であるからです。 +.Pp +何らかの理由によりモジュールが複数のファイルに分割される場合には、 +大きな境界線に沿ってそのモジュールを分割するよう努力して、 +グローバルなシンボルの数を手引にして熟考してください。 +少ない方が好ましいです。 +.Sh 関連項目 +.Xr style 9 +.Sh 歴史 +.Nm intro +セクションのマニュアルページは +.Fx 2.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man9/malloc.9 b/ja_JP.eucJP/man/man9/malloc.9 new file mode 100644 index 0000000000..93d0ad91e3 --- /dev/null +++ b/ja_JP.eucJP/man/man9/malloc.9 @@ -0,0 +1,247 @@ +.\" 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.13 2000/03/03 14:05:06 sheldonh Exp $ +.\" +.Dd June 16, 1996 +.Dt MALLOC 9 +.Os FreeBSD +.Sh 名称 +.Nm malloc , +.Nm MALLOC , +.Nm free , +.Nm FREE +.Nd カーネルメモリマネージメントルーチン +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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" +.Sh 解説 +.Fn malloc +関数はカーネルアドレス空間の初期化されていないメモリを +.Fa size +で指定された大きさの 1 つのオブジェクトとして割り当てます。 +.Fn free +は +.Fn malloc +で先に割り当てられていた +.Fa addr +のアドレスのメモリを再使用するために開放します。 +メモリは 0 にクリアされません。 +マクロ版の +.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 M_NOWAIT +.It Dv M_NOWAIT +リソースの不足のため直ちに要求を満たすことができない場合は、 +.Fn malloc +が +.Dv NULL +を返すようにします。 +通常は、 +.Fn malloc +は他のプロセスによるリソースの開放を待つために +.Fn sleep +を呼び出すでしょう。 +このフラグがセットされていれば、 +.Fn malloc +はブロックせずに +.Dv NULL +を返します。 +.Dv M_WAITOK +が 0 に定義されていることに注意してください。 +これはブロッキング操作がデフォルトだということです。 +.It Dv M_ASLEEP +リソースの不足のため直ちに要求を満たすことができない場合は、 +.Fn malloc +が +.Fn asleep +を呼ぶようにします。 +.Dv M_ASLEEP +の単独での使用は実用的ではなく、常に +.Dv M_NOWAIT +との論理和(OR)をとって +.Fn malloc +に +.Fn asleep +を呼ばせ、直ちに +.Dv NULL +を返させます。 +呼び出し側がある時点で +.Fn await +を呼び、割り当てのリトライをすることが期待されています。 +当のルーチンに依存して、呼び出し側で一時的な失敗を上位に連鎖的に伝搬し、実際に +.Fn malloc +がキューに入れた非同期のウェイトをブロックする +幾つかの別の高レベルルーチンをもつことを決めることも出来ます。 +.It Dv M_WAITOK +リソースを待つことが可能(OK)であることを示します。 +都合の悪いことに 0 と定義されているので、直接この値に対して比較したり、 +フラグとして論理積(AND)をとったりしないように注意されなければなりません。 +デフォルトの操作はメモリの割り当てが成功するまでブロックします。 +.Dv M_NOWAIT +が指定されると +.Fn malloc +は単に +.Dv NULL +を返すことが出来ます。 +.It Dv M_USE_RESERVE +要求されたメモリを獲得するために、 +システムがリザーブ領域を使ってよいことを示します。 +このオプションは以前は M_KERNEL と呼ばれていましたが、 +より明示的に改名されました。 +このオプションは軽視されていて、カーネルから徐々に削除されています。 +そのため、新たなプログラミングでは使用されない様にするべきです。 +.El +.Pp +引き数 +.Fa type +はメモリの利用方法の統計をとるためと、 +簡単なサニティチェックのために使われています。 +この統計は +.Sq vmstat -m +で調べることが出来ます。 +.Pp +.Fa type +は +.Fn MALLOC_DECLARE +と +.Fn MALLOC_DEFINE +マクロを通じて +.Va malloc_type_t +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 +.Sh 戻り値 +.Fn malloc +はすべてのタイプのオブジェクトの格納に適切なように整列された +カーネル仮想アドレスを、 +または要求が満足できずかつ +.Dv M_NOWAIT +がセットされている場合に +.Dv NULL +を返します。 +.Dv M_ASLEEP +がセットされていて +.Fn malloc +が +.Dv NULL +を返す場合、副作用として +.Fn asleep +が呼び出されます。 +.Sh 関連項目 +.Xr vmstat 8 +.Sh 診断 +.Dv DIAGNOSTIC +コンフィギュレーションオプションを付けてコンパイルされたカーネルは、 +割り当てられた領域以外への書き込みや +.Fn malloc +関数と +.Fn free +関数の不均衡な呼び出しなどにより生じたメモリ不正の検出を試みます。 +一貫性チェックの失敗はパニックまたはシステムコンソールメッセージを出力します。 +.Bl -bullet -offset indent -compact +.Pp +.It +panic: +.Dq malloc: bogus type +.It +panic: +.Dq malloc: allocation too large +.It +panic: +.Dq malloc: wrong bucket +.It +panic: +.Dq malloc: lost data +.It +panic: +.Dq free: address 0x%x out of range +.It +panic: +.Dq free: type %d out of range +.It +panic: +.Dq free: unaligned addr Aq description of object +.It +panic: +.Dq free: item modified +.It +panic: +.Dq free: multiple free[s] +.It +.Dq Data modified on freelist: Aq description of object +.El diff --git a/ja_JP.eucJP/man/man9/panic.9 b/ja_JP.eucJP/man/man9/panic.9 new file mode 100644 index 0000000000..3e210790a0 --- /dev/null +++ b/ja_JP.eucJP/man/man9/panic.9 @@ -0,0 +1,66 @@ +.\" $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.4 1999/12/23 17:42:10 bde Exp $ +.\" +.Dd August 11, 1995 +.Dt PANIC 9 +.Os +.Sh 名称 +.Nm panic +.Nd 致命的なエラーによるシステムダウン +.Sh 書式 +.Fd #include <sys/param.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/ja_JP.eucJP/man/man9/physio.9 b/ja_JP.eucJP/man/man9/physio.9 new file mode 100644 index 0000000000..6e783ed297 --- /dev/null +++ b/ja_JP.eucJP/man/man9/physio.9 @@ -0,0 +1,142 @@ +.\" $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.6.2.1 2000/04/01 20:33:15 asmodai Exp $ +.\" +.Dd June 15, 1996 +.Dt PHYSIO 9 +.Os FreeBSD +.Sh 名称 +.Nm physio +.Nd ロウデバイスの入出力の開始 +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/systm.h> +.Fd #include <sys/buf.h> +.Ft int +.Fn physio "dev_t dev" "struct uio *uio" "int ioflag" +.Sh 解説 +.Fn physio +は通常、 +文字型デバイスの read および write ルーチンから呼び出されるヘルパー関数で、 +ユーザープロセスのバッファへの入出力を開始させます。 +この関数は +.Fa uio +構造体に記述されている転送が完了するまで、与えられた +.Fa strategy +ルーチンを 1 回以上呼び出します。 +.Fa strategy +を呼び出すごとの最大のデータ転送量は +.Fa minphys +ルーチンによって決定されます。 +.Fa uio +構造体は通常ユーザー空間のアドレスを示すので、 +.Fn physio +はプロセスをメモリ中にロックする必要があります。 +これは、プロセスに +.Dv P_PHYSIO +フラグをセットすることで行ないます。 +以前にエラー状態が検出された時を除いて、 +.Fn physio +は常にリターンする前に全ての要求された転送が完了するまで待ちます。 +全ての場合に、 +.Fa bp +に渡されるバッファは転送が完了するまでの期間中、ロック( +.Dq busy +にマーク)されます。 +.Pp +引数の詳細を下記に示します。 +.Bl -tag -width "strategy" +.It Fa strategy +それぞれのデータのかたまりをデバイスに入出力開始させるために呼ばれる +デバイスの strategy ルーチン。 +.It Fa bp +strategy ルーチンで使用されるバッファ。 +このバッファのフラグは strategy に渡される時に +.Dv B_BUSY +および +.Dv B_PHYS +がセットされます。 +もし bp が +.Dv NULL +であれば、システムのプールから割り当てられます。 +.It Fa dev +デバイスを識別するために関連付けられたデバイス番号。 +.It Fa flags +転送方向。 +有効な設定は +.Dv B_READ +または +.Dv B_WRITE +のみ。 +.It Fa minphys +デバイスの strategy ルーチンが取り扱う事ができる最大の転送サイズを +決定するために呼ばれる、デバイス固有のルーチン。 +.It Fa uio +ユーザープロセスから要求された転送全体の記述。 +現在は、 +.Fa uio +構造体の +.Sq uio_segflg +フラグに +.Dv UIO_USERSPACE +以外の値をセットして渡した場合の結果は未定義です。 +.El +.Pp +.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 diff --git a/ja_JP.eucJP/man/man9/resettodr.9 b/ja_JP.eucJP/man/man9/resettodr.9 new file mode 100644 index 0000000000..19657527bd --- /dev/null +++ b/ja_JP.eucJP/man/man9/resettodr.9 @@ -0,0 +1,59 @@ +.\" $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.4 1999/08/28 00:21:31 peter Exp $ +.\" +.Dd November 13, 1995 +.Dt RESETTODR 9 +.Os FreeBSD +.Sh 名称 +.Nm resettodr +.Nd バッテリーバックアップの時計をシステムの時間に合わせる +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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/ja_JP.eucJP/man/man9/spl.9 b/ja_JP.eucJP/man/man9/spl.9 new file mode 100644 index 0000000000..c3ed180f9b --- /dev/null +++ b/ja_JP.eucJP/man/man9/spl.9 @@ -0,0 +1,199 @@ +.\" +.\" 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.8 1999/08/28 00:21:32 peter Exp $ +.\" " +.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 書式 +.Fd #include <sys/types.h> +.Fd #include <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 解説 +.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 splnet +.It Fn splnet +全てのネットワークインターフェイスドライバ。 +.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 歴史 +割り込み優先度レベルは早期のバージョンの Unix で登場しました。 +伝統的には名前ではなく数字が使われていて、そのレベルまでの全てを含んで +(優先度 5 はレベル 5 までの全てをブロックします)いた事が知られています。 +これは +.Tn FreeBSD +にはあてはまりません。 +伝統的な名前 +.Ql level +はいまだに文字 +.Ql l +としてそれぞれの関数や変数の名前に反映されています。 +しかし、実際にはもはやレベルではなく、 +むしろ異なった(部分的に含まれた)関数群がシステムのある期間ブロックされます。 +歴史的な番号による方法は単純で順番通りの +割り込み優先度レベルグループであるとみなす事ができます。 +.Sh 作者 +このマニュアルページは +.ie t J\(:org Wunsch +.el Joerg Wunsch +が書きました。 diff --git a/ja_JP.eucJP/man/man9/store.9 b/ja_JP.eucJP/man/man9/store.9 new file mode 100644 index 0000000000..7f52e70e67 --- /dev/null +++ b/ja_JP.eucJP/man/man9/store.9 @@ -0,0 +1,90 @@ +.\" $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.7 1999/08/28 00:21:32 peter Exp $ +.\" +.Dd Jan 7, 1996 +.Dt STORE 9 +.Os FreeBSD +.Sh 名称 +.Nm store , +.Nm subyte , +.Nm susword , +.Nm suswintr , +.Nm suword +.Nd ユーザー空間へのデータの格納 +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/time.h> +.Fd #include <sys/systm.h> +.Fd #include <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" "int 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/ja_JP.eucJP/man/man9/style.9 b/ja_JP.eucJP/man/man9/style.9 new file mode 100644 index 0000000000..65bbe831ea --- /dev/null +++ b/ja_JP.eucJP/man/man9/style.9 @@ -0,0 +1,535 @@ +.\" Copyright (c) 1995 FreeBSD Inc. +.\" 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.32.2.3 2000/08/08 09:56:53 sheldonh Exp $ +.\" +.Dd December 14, 1995 +.Dt STYLE 9 +.Os FreeBSD +.Sh 名称 +.Nm style +.Nd カーネルソースファイルのスタイルガイド +.Sh 解説 +このファイルは +.Tn FreeBSD +ソースツリーのカーネルソースに好ましいスタイルを明記しています。 +これはユーザランドのコードスタイルの手引きでもあります。 +.Bd -literal -offset 0i +/* + * FreeBSD のためのスタイルガイドです。 + * KNF (Kernel Normal Form, カーネル標準書式) に基づいています。 + */ + +/* + * とても重要な 1 行のコメントはこのようにします。 + */ + +/* 殆どの 1 行のコメントはこのようにします。 */ + +/* + * 複数行にわたるコメントはこのようにします。実際の文章を書きます。実際の + * 段落に見えるように埋めていきます。 + */ +.Ed +.Pp +カーネルのインクルードファイル (すなわち、sys/*.h) が初めに来ます。 +通常、<sys/types.h> または <sys/param.h> のどちらかが必要ですが、 +両方は必要ないでしょう。 +<sys/types.h> は <sys/cdefs.h> をインクルードしており、 +依存関係は問題ありません。 +.Bd -literal -offset 0i +#include <sys/types.h> /* < > 括弧による非ローカルインクルード */ +.Ed +.Pp +ネットワークプログラムである場合は、 +次にネットワークインクルードファイルを置きます。 +.Bd -literal -offset 0i +#include <net/if.h> +#include <net/if_dl.h> +#include <net/route.h> +#include <netinet/in.h> +#include <protocols/rwhod.h> +.Ed +.Pp +それから空行を置き、/usr インクルードファイルを続けます。 +/usr インクルードファイルはソートされているべきです。 +.Bd -literal -offset 0i +#include <stdio.h> +.Ed +.Pp +グローバルなパス名は /usr/include/paths.h で定義されています。 +プログラムにローカルなパス名はローカルディレクトリの pathnames.h に入れます。 +.Bd -literal -offset 0i +#include <paths.h> +.Ed +.Pp +それから、空行があって、ユーザインクルードファイルが来ます。 +.Bd -literal -offset 0i +#include "pathnames.h" /* " " によるローカルインクルード */ +.Ed +.Pp +マクロは大文字であり、( ) 括弧に入れて、副作用を避けるべきです。 +.Ql #define +とマクロ名の間にタブ文字を 1 個入れます。 +それがある関数のインライン展開である場合は、 +関数は全て小文字で定義され、マクロは大文字で同じ名前を持ちます。 +マクロが 1 行以上必要な場合は、{ } 括弧を使用します。 +バックスラッシュは右揃えします。こうすると読みやすくなります。 +マクロが複合文をカプセル化する場合には、それを +.Dq Li do +ループで囲みます。 +これにより、 +.Dq Li if +文で安全に使用できます。 +最後の文の終端のセミコロンは、 +マクロではなくマクロの実施時に付けられるべきです。 +これにより、清書器やエディタで文法解析しやすくなります。 +.Bd -literal -offset 0i +#define MACRO(x, y) do { \e + variable = (x) + (y); \e + (y) += 2; \e +} while(0) +.Ed +.Pp +列挙値は全て大文字を使用します。 +.Bd -literal -offset 0i +enum enumtype { ONE, TWO } et; +.Ed +.Pp +構造体の中で変数を宣言する時には、 +使用順、サイズ順、アルファベット順にソートして宣言します。 +最初の区分は通常適用しませんが、例外があります。 +各宣言は、それぞれ独立した行にて行います。 +最初の語の後にタブ文字を 1 個置きます、すなわち +.Ql int^Ix; +と +.Ql struct^Ifoo *x; +です。 +.Pp +重要な構造体は、それが使用されるファイルの先頭で宣言されるか、 +複数のソースファイルで使用される場合は別のヘッダファイルで宣言されるべきです。 +構造体がヘッダファイルで宣言されている場合には、 +それら構造体の使用は、宣言とは分けられるべきで、かつ "extern" であるべきです。 +.Bd -literal -offset 0i +struct foo { + struct foo *next; /* 使用中の foo リスト */ + struct mumble amumble; /* mumble のコメント */ + int bar; +}; +struct foo *foohead; /* グローバルな foo リストの先頭 */ +.Ed +.Pp +可能な時には必ず、あなた自身でリストを操作するのではなく、 +.Xr queue 3 +マクロを使用してください。 +従って、前の例をより良く書くと次のようになります。 +.Bd -literal -offset 0i +#include <sys/queue.h> +struct foo { + LIST_ENTRY(foo) link; /* foo リスト用のキューマクロの糊 */ + struct mumble amumble; /* mumble のコメント */ + int bar; +}; +LIST_HEAD(, foo) foohead; /* グローバルな foo リストの先頭 */ +.Ed +.Pp +構造体の型に typedef を使用する事は避けてください。 +使用してしまうと、 +構造体へのポインタを不透明 (opaque) に使用することが、 +アプリケーションにとって不可能となります。 +通常の struct タグを使用すると、これが可能となり、かつ有益です。 +規約が typedef を要求する場合には、その名前を構造体タグに一致させます。 +標準 C または +.Tn POSIX +によって明示されたものを除いては、 +.Dq Li \&_t +で終る typedef を避けてください。 +.Bd -literal -offset 0i +/* 構造体名と typedef を一致させます */ +typedef struct _bar { + int level; +} BAR; +.Ed +.Pp +全ての関数はどこかでプロトタイプされます。 +.Pp +私的な関数 (すなわち、他のどこでも使用されない関数など) の関数プロトタイプは、 +最初のソースモジュールの先頭に置かれます。 +単一のソースモジュールにローカルな関数は、 +.Ql static +で宣言されるべきです。 +.Pp +カーネルの別の部分から使用される関数は、 +関連のあるインクルードファイルの中でプロトタイプされます。 +.Pp +複数のモジュールでローカルに使用される関数は、 +.Pa extern.h +等の分離したヘッダファイルの中に置かれます。 +.Pp +一般にソースファイルが K&R 旧約聖書コンパイラで +コンパイル可能である (べき) 時にのみ、 +インクルードファイル <sys/cdefs.h> の __P マクロを使用します。 +新しいコードでの __P マクロの使用は反対されていますが、 +既存のファイルに対する修正はそのファイルの規約と首尾一貫しているべきです。 +.Pp +ファイルの 50% かそれ以上を巻き込んだ修正の場合は、 +一般にコードは +.Dq 新しいコード +とみなすことができます。 +これは既存のコードの慣例を破り、 +現在のスタイルガイドラインを使用するのに十分です。 +.Pp +カーネルはパラメータの型に関連付けられた名前を持ちます。 +例えば、カーネル内でこのように使用します。 +.Bd -literal -offset 0i +void function(int fd); +.Ed +.Pp +ユーザランドのアプリケーションに対して見えるヘッダファイルの中では、 +可視のプロトタイプは、 +型を伴った保護された名前を使用するか、 +型だけで名前を使用しないかのどちらかが必要です。 +保護された名前の使用がより望ましいです。 +例えば、このように使用します。 +.Bd -literal -offset 0i +void function(int); +.Ed +.Pp +または +.Bd -literal -offset 0i +void function(int _fd); +.Ed +.Pp +プロトタイプは関数名の行揃えを行なうために、タブの後に追加のスペース文字を +置いても構いません。 +.Bd -literal -offset 0i +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[]) +{ + long num; + int ch; + char *ep; + +.Ed +.Pp +一貫性のために、オプションの解析には getopt が使用されるべきです。 +getopt 呼び出しと switch 文では、オプションをソートすべきですが、 +switch 文のカスケードの一部の場合は例外です。 +switch 文のカスケード要素は FALLTHROUGH コメントを持つべきです。 +数値の引数は精度をチェックされるべきです。 +到達できないコードは NOTREACHED コメントを持つべきです。 +.Bd -literal -offset 0i + while ((ch = getopt(argc, argv, "abn")) != -1) + switch (ch) { /* switch をインデント */ + case 'a': /* case はインデントしない */ + aflag = 1; + /* FALLTHROUGH */ + case 'b': + bflag = 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 +予約語 (if, while, for, return, switch) の後にスペースを入れます。 +何も伴わないかただ 1 つの文を伴う制御文は、{ } 括弧を使用しません。 +1 つの文が 複数行である文の場合には、これは許されます。 +無限ループは while ではなく for で行ないます。 +.Bd -literal -offset 0i + 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 +for ループの各部は空のまま残しても構いません。 +異常に複雑なルーチンでない限りは、ブロックの中に宣言を置いてはなりません。 +.Bd -literal -offset 0i + for (; cnt < 15; cnt++) { + stmt1; + stmt2; + } +.Ed +.Pp +インデントは 8 文字のタブです。 +第 2 レベルのインデントは 4 文字のスペースです。 +.Bd -literal -offset 0i + while (cnt < 20) + z = a + really + long + statement + that + needs + + two lines + gets + indented + four + spaces + + on + the + second + and + subsequent + lines. +.Ed +.Pp +空白文字を行末に追加してはいけません。 +また、インデントを形成するためには、タブとその後にスペースのみを使用します。 +タブが生み出す以上のスペースや、タブの前のスペースは使用しません。 +.Pp +{ } 括弧の終了と開始は else と同じ行に置かれます。 +必要でない { } 括弧は省いても構いません。 +.Bd -literal -offset 0i + if (test) + stmt; + else if (bar) { + stmt; + stmt; + } else + stmt; +.Ed +.Pp +関数名の後はスペースを空けません。 +コンマの後にはスペースを持ちます。 +.Sq \&( +または +.Sq \&[ +の後ろまたは +.Sq \&] +または +.Sq \&) +の前にはスペースを空けません。 +.Bd -literal -offset 0i + if (error = function(a1, a2)) + exit(error); +.Ed +.Pp +単項演算子はスペースを要求しませんが、二項演算子は要求します。 +優先順位が要求する場合または文が ( ) 括弧なしでは混乱する場合以外は、 +( ) 括弧は使用しません。 +他人はあなたよりも混乱しやすいかもしれないということを覚えておいてください。 +あなたは以下を理解できますか? +.Bd -literal -offset 0i + a = b->c[0] + ~d == (e || f) || g && h ? i : j >> 1; + k = !(l & FLAGS); +.Ed +.Pp +成功時には 0 で、または +.Xr sysexits 3 +にあらかじめ定義してある値で exit するべきです。 +.Bd -literal -offset 0i + exit(EX_OK); /* + * "Exit 0 on success." (成功時は 0 で終了) + * の様に明白なコメントは避けてください + */ +} +.Ed +.Pp +関数の型は、関数自身に先行する行にあるべきです。 +.Bd -literal -offset 0i +static char * +function(int a1, int a2, float fl, int a4) +{ +.Ed +.Pp +関数の中で変数を宣言する時には、サイズ順に、次にアルファベット順に +ソートして宣言します。 +1 行に複数の宣言は可能です。 +リンケージのスコープが常にグローバルになるため、 +関数の中での関数の宣言は推奨されません。 +行が溢れる場合は、型の予約語を再度使用します。 +.Pp +宣言時に変数を初期化することによってコードを +不明瞭にしない様に注意してください。 +この機能は良く考えて使用してください。 +初期化に関数呼び出しを使用しないでください。 +.Bd -literal -offset 0i + struct foo one, *two; + double three; + int *four, five; + char *six, seven, eight, nine, ten, eleven, twelve; + + four = myfunction(); +.Ed +.Pp +他の関数の内部で関数を宣言しないでください。 +ANSI C によると、このような宣言は、宣言のネスティングによらず、 +ファイルスコープになります。 +ローカルスコープに見えるものの中にファイルの宣言を隠すことは好ましくなく、 +良いコンパイラは苦情を言います。 +.Pp +キャストと sizeof 演算子の後にはスペースを続けません。 +この規則は +.Xr indent 1 +が理解しないことに注意してください。 +.Pp +NULL は、好まれるヌルポインタ定数です。 +コンパイラが型を知っている文脈、例えば代入では、 +(type *)0 または (type *)NULL の代わりに、NULL を使用します。 +他の文脈では、特に全ての関数の引数では、 +(type *)NULL を使用します。 +(関数のプロトタイプがスコープ外かもしれない場合に、 +キャストはいろいろな引数にとって必須で、その他の引数にとっても必要です。) +ポインタは NULL と比較します。例えば、 +.Bd -literal -offset 0i +!(p = f()) +.Ed +.Pp +ではなく、このように使います。 +.Bd -literal -offset 0i +(p = f()) == NULL +.Ed +.Pp +真理値ではない場合、テストには '!' を使用しないでください。 +例えば、下記のように使います。 +.Bd -literal -offset 0i +if (*p == '\e0') +.Ed +.Pp +下記のようには使いません。 +.Bd -literal -offset 0i +if (!*p) +.Ed +.Pp +void * を返すルーチンでは、 +戻り値をどのポインタ型にもキャストしてはなりません。 +.Pp +.Xr err 3 +または +.Xr warn 3 +を使用し、勝手に作らないでください。 +.Bd -literal -offset 0i + 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 -offset 0i +static char * +function(a1, a2, fl, a4) + int a1, a2; /* int 型も宣言します、デフォルトにしないこと */ + float fl; /* double と float の違いに気を付けてください */ + int a4; /* 出てきた順に宣言します */ +{ +.Ed +.Pp +あなたが明確に K&R との互換性を必要とする場合以外は、 +ANSI の関数宣言を使用してください。 +.Pp +可変個数の引数はこのようにします。 +.Bd -literal -offset 0i +#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 +fputs/puts/putchar 等ではなく、 +.Xr printf 3 +を使用してください。 +これは速くて大抵はきれいで、言うまでもなくつまらないバグを避けます。 +.Pp +使用法 (usage) の文はマニュアルページの書式の様であるべきです。 +オペランドの無いオプションが、最初にアルファベット順に、 +1 つの[ ] 括弧でくくられます。 +オペランドのあるオプションが、アルファベット順に続き、 +それぞれを [ ] 括弧でくくられます。 +必須の引数が特定の順に続き、オプションの引数が特定の順に続きます。 +縦棒 +.Pq Sq \&| +は、二者択一のオプションまたは引数を分割し、 +同時に使用するオプションと引数は、単一の [ ] 括弧でくくります。 +.Pp +.Bd -ragged -offset 0.3i +"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 -offset 0i + (void)fprintf(stderr, "usage: f [-ab]\en"); + exit(1); +} +.Ed +.Pp +新しい中心的なカーネルのコードは、適度にスタイルガイドに従うべきです。 +サードパーティが保守するモジュールやデバイスドライバのためのガイドラインは +より緩やかですが、最低限内部的には彼らの一貫したスタイルであるべきです。 +.Pp +ソースリポジトリの文体の変更 (空白文字の変更を含む) は困難で、 +正当な理由なしには避けるべきです。 +リポジトリの中のおおよそ +.Xr style 9 +に適合しているコードは、この適合から離れてはなりません。 +.Pp +可能な時にはいつでも、 +コードはコードチェッカ (例えば、"gcc -Wall" または xlint(1)) を +通過し、発生する警告は最小限となるべきです。 +.Sh 関連項目 +.Xr indent 1 , +.Xr err 3 , +.Xr sysexits 3 , +.Xr warn 3 +.Sh 歴史 +このページは +.Tn BSD +4.4-Lite2 release の src/admin/style/style ファイルに大きく基づいていて、 +現在の実装と +.Tn FreeBSD +プロジェクトの要望を反映して、更新してあります。 diff --git a/ja_JP.eucJP/man/man9/uio.9 b/ja_JP.eucJP/man/man9/uio.9 new file mode 100644 index 0000000000..145ec4dc71 --- /dev/null +++ b/ja_JP.eucJP/man/man9/uio.9 @@ -0,0 +1,176 @@ +.\" +.\" 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.5 1999/08/28 00:21:34 peter Exp $ +.\" " +.Dd February 2, 1997 +.Os +.Dt UIO 9 +.Sh 名称 +.Nm uio , +.Nm uiomove +.Nd デバイスドライバ入出力ルーチン +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 proc *uio_procp; +}; +.Ed +.Ft int +.Fn uiomove "caddr_t buf" "int howmuch" "struct uio *uiop" +.Sh 解説 +.Fn uiomove +関数は、ユーザ空間とカーネル空間の境界を越えることさえ可能で、 +バッファと入出力ベクタ間のデータ転送の実行に使用されます。 +.Pp +文字型デバイスのドライバに渡された、あらゆる +.Xr read 2 , +.Xr write 2 , +.Xr readv 2 +ないし +.Xr writev 2 +システムコールの結果として、適切なドライバの +.Em read +または +.Em write +エントリが +.Fa "struct uio" +構造体のポインタを渡されて呼び出されます。 +転送のリクエストは、この構造体の中にエンコードされます。 +ドライバ自身もこの構造体の中のデータを取り出すために +.Fn uiomove +を使用するべきです。 +.Pp +uio 構造体の各フィールドは下記のとおりです。 +.Bl -tag -width "uio_iovcntX" -compact +.It Dv uio_iov +処理すべき入出力ベクタの配列です。 +散在的な入出力の場合には、一つ以上のベクタとなるでしょう。 +.It Dv uio_iovcnt +存在している入出力ベクタの数を示します。 +.It Dv uio_offset +デバイスのオフセットです。 +.It Dv uio_resid +処理すべきバイト数です。 +.It Dv uio_segflg +以下のフラグの中の一つです。 +.Bl -tag -width "UIO_USERISPACEX" -compact +.It Dv UIO_USERSPACE +入出力ベクタはプロセスのアドレス空間を指しています。 +.It Dv UIO_SYSSPACE +入出力ベクタはカーネルのアドレス空間を指しています。 +.It Dv UIO_USERISPACE +入出力ベクタはプロセスのアドレス空間の命令領域を指しています。 +.It Dv UIO_NOCOPY +オブジェクト中に既にデータがあり、コピーしません。 +.El +.It Dv uio_rw +要求された転送の方向を示し、 +.Dv UIO_READ +または +.Dv UIO_WRITE +です。 +.It Dv uio_procp +プロセスに関連付けられた +.Li struct proc +構造体へのポインタです。 +.Dv uio_segflg +がプロセスのアドレス空間との転送をすべきであると示している場合に +使用されます。 +.El +.Sh 具体例 +考え方として、ドライバはデータのためのプライベートなバッファの保守を行ない、 +このバッファの最大サイズのデータのかたまりの要求を処理します。 +下記のバッファの取り扱いはとても簡略化されていて +恐らく動きません(バッファのポインタは部分的な読み込みの場合進みません)し、 +uio の取り扱いを実際にやって見せているだけだ、ということに注意してください。 +.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; + + while (uio->uio_resid > 0) { + if (data_available > 0) { + amnt = MIN(uio->uio_resid, data_available); + if ((rv = uiomove((caddr_t)buffer, amnt, uio)) + != 0) + goto error; + data_available -= amnt; + } else { + tsleep(...); /* より良い時期まで待つ */ + } + } + return 0; +error: + /* エラーのクリーンアップをここで行なう */ + 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 歴史 +uio の仕組みはある早期のバージョンの +.Ux +で登場しました。 +.Sh 作者 +このマニュアルページは +.ie t J\(:org Wunsch +.el Joerg Wunsch +が書きました。 diff --git a/ja_JP.eucJP/man/man9/vslock.9 b/ja_JP.eucJP/man/man9/vslock.9 new file mode 100644 index 0000000000..c8faa722ab --- /dev/null +++ b/ja_JP.eucJP/man/man9/vslock.9 @@ -0,0 +1,74 @@ +.\" $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.4 1999/08/28 00:21:35 peter Exp $ +.\" +.Dd Jun 15, 1996 +.Dt VSLOCK 9 +.Os FreeBSD +.Sh 名称 +.Nm vslock , +.Nm vsunlock +.Nd ユーザー空間のアドレスのメモリへのロックとアンロック +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <vm/vm.h> +.Fd #include <vm/vm_extern.h> +.Ft void +.Fn vslock "caddr_t addr" "u_int len" +.Ft void +.Fn vsunlock "caddr_t addr" "u_int len" "int dirtied" +.Sh 解説 +.Fn vslock +および +.Fn vsunlock +関数は現在実行中のプロセスに属するアドレスの範囲を +メモリ中にそれぞれロックしたりアンロックしたりします。 +ロックされる実際のメモリ量はマシンのページサイズの倍数になります。 +開始ページナンバーは +.Fa addr +をすぐ前のページ境界に切りつめられ、終了ページは +.Fa addr + +.Fa len +の次のページ境界に切り上げられて計算されます。 +この操作に使用されるプロセスのコンテキストはグローバル変数 +.Va curproc +を参照します。 +.Pp +.Sh 関連項目 +.Xr physio 9 +.Sh バグ +引数としてプロセスのポインタを渡すべきです。 |