From 7821caa0a5669959ab3e0066feb3033a1ebd4bf7 Mon Sep 17 00:00:00 2001 From: Kazuo Horikawa Date: Sun, 27 Apr 2003 19:06:14 +0000 Subject: [PATCH] Catch up with 5.0-CURRENT-20030419-JPSNAP Submitted by: Akira Ikeuchi --- ja_JP.eucJP/man/man2/Makefile | 1 + ja_JP.eucJP/man/man2/connect.2 | 4 +- ja_JP.eucJP/man/man2/jail.2 | 32 ++++- ja_JP.eucJP/man/man2/madvise.2 | 11 +- ja_JP.eucJP/man/man9/BUS_SETUP_INTR.9 | 14 ++- ja_JP.eucJP/man/man9/bus_alloc_resource.9 | 24 ++-- ja_JP.eucJP/man/man9/malloc.9 | 144 +++++++++++----------- 7 files changed, 141 insertions(+), 89 deletions(-) diff --git a/ja_JP.eucJP/man/man2/Makefile b/ja_JP.eucJP/man/man2/Makefile index 8d2bc24261..1a3914517c 100644 --- a/ja_JP.eucJP/man/man2/Makefile +++ b/ja_JP.eucJP/man/man2/Makefile @@ -175,6 +175,7 @@ MLINKS+=getsockopt.2 setsockopt.2 MLINKS+=gettimeofday.2 settimeofday.2 MLINKS+=getuid.2 geteuid.2 MLINKS+=intro.2 errno.2 +MLINKS+=jail.2 jail_attach.2 MLINKS+=kqueue.2 kevent.2 MLINKS+=mlock.2 munlock.2 MLINKS+=modnext.2 modfnext.2 diff --git a/ja_JP.eucJP/man/man2/connect.2 b/ja_JP.eucJP/man/man2/connect.2 index 5b53b14d35..5de094d26e 100644 --- a/ja_JP.eucJP/man/man2/connect.2 +++ b/ja_JP.eucJP/man/man2/connect.2 @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)connect.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/connect.2,v 1.22 2002/12/19 09:40:24 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/connect.2,v 1.23 2003/04/01 20:25:46 ceri Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 @@ -99,6 +99,8 @@ 接続が強制的に拒絶されました。 .It Bq Er ENETUNREACH このホストからそのネットワークに到達できません。 +.It Bq Er EHOSTUNREACH +このホストからそのリモートホストに到達できません。 .It Bq Er EADDRINUSE アドレスが既に使用中です。 .It Bq Er EFAULT diff --git a/ja_JP.eucJP/man/man2/jail.2 b/ja_JP.eucJP/man/man2/jail.2 index 9b539c3f8b..bde1f2cb20 100644 --- a/ja_JP.eucJP/man/man2/jail.2 +++ b/ja_JP.eucJP/man/man2/jail.2 @@ -5,10 +5,10 @@ .\"can do whatever you want with this stuff. If we meet some day, and you think .\"this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp .\"---------------------------------------------------------------------------- -.\"%FreeBSD: src/lib/libc/sys/jail.2,v 1.22 2002/12/18 09:22:30 ru Exp % + .\"%FreeBSD: src/lib/libc/sys/jail.2,v 1.23 2003/04/09 02:55:17 mike Exp % .\" .\" $FreeBSD$ -.Dd April 28, 1999 +.Dd April 8, 2003 .Dt JAIL 2 .Os .Sh 名称 @@ -17,10 +17,12 @@ .Sh ライブラリ .Lb libc .Sh 書式 -.In sys/types.h +.In sys/param.h .In sys/jail.h .Ft int .Fn jail "struct jail *jail" +.Ft int +.Fn jail_attach "int jid" .Sh 解説 .Fn jail システムコールは牢屋をつくり、現在のプロセスをその中に閉じ込めます。 @@ -48,10 +50,28 @@ struct jail { .Pp .Dq Li ip_number は牢屋に割り当てる IP 番号を設定します。 +.Pp +.Fn jail_attach +システムコールは、 +.Va jid +によって識別される既存の jail を現在のプロセスにアタッチします。 +.Sh 戻り値 +成功の場合には、 +.Fn jail +は jail 識別子 (JID) と呼ばれる負ではない整数を返します。 +失敗の場合には -1 を返し、そのエラーを示すために +.Va errno +を設定します。 +.Pp +成功の場合には、 +.Fn jail_attach +は 0 を返します。 +失敗の場合には -1 を返し、そのエラーを示すために +.Va errno +を設定します。 .Sh 牢屋? プロセスは一度牢屋に入れられると、それ自身とその子孫は牢屋から 逃れることはできません。 -既存の牢屋にプロセスを追加することはできません。 .Pp 牢屋の中では "スーパユーザ" の概念はとても弱まっています。 一般に全体が牢屋の中にあるわけではないものを牢屋の中から台無しにすることは @@ -96,6 +116,10 @@ IP システムコールは .Fx 4.0 で登場しました。 +.Fn jail_attach +システムコールは +.Fx 5.1 +で登場しました。 .Sh 作者 jail の機能は .An Poul-Henning Kamp diff --git a/ja_JP.eucJP/man/man2/madvise.2 b/ja_JP.eucJP/man/man2/madvise.2 index ed32abcd99..170ace022e 100644 --- a/ja_JP.eucJP/man/man2/madvise.2 +++ b/ja_JP.eucJP/man/man2/madvise.2 @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)madvise.2 8.1 (Berkeley) 6/9/93 -.\" %FreeBSD: src/lib/libc/sys/madvise.2,v 1.28 2003/01/06 23:20:55 trhodes Exp % +.\" %FreeBSD: src/lib/libc/sys/madvise.2,v 1.29 2003/03/31 21:09:56 wes Exp % .\" .\" WORD: revert 書き戻す(dirty なページをファイルシステムに書き込む)[madvise.2] .\" WORD: physically backing store 物理的バッキングストア @@ -126,6 +126,12 @@ MADV_NOSYNC 領域は、コアファイルに含まれません。 .It Dv MADV_CORE コアファイルの領域を含みます。 +.It Dv MADV_PROTECT +スワップ空間を使い果たした時に、 +このプロセスは終了させられるべきではないことを、VM システムに通知します。 +プロセスはスーパユーザの特権を持っていなければなりません。 +これは、システムが適切に機能するために実行され続けなければならない +プロセス群で、思慮分別を持って使用されるべきです。 .El .Sh 戻り値 .Rv -std madvise @@ -138,6 +144,9 @@ MADV_NOSYNC 引数と .Fa len 引数で指定された仮想アドレス範囲が有効ではありません。 +.It Bq Er EPERM +.Dv MADV_PROTECT +が指定され、プロセスがスーパユーザの特権を持っていません。 .El .Sh 関連項目 .Xr mincore 2 , diff --git a/ja_JP.eucJP/man/man9/BUS_SETUP_INTR.9 b/ja_JP.eucJP/man/man9/BUS_SETUP_INTR.9 index 21bcb15381..8a052edc69 100644 --- a/ja_JP.eucJP/man/man9/BUS_SETUP_INTR.9 +++ b/ja_JP.eucJP/man/man9/BUS_SETUP_INTR.9 @@ -22,10 +22,10 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/BUS_SETUP_INTR.9,v 1.11 2002/01/09 11:43:45 mpp Exp % +.\" %FreeBSD: src/share/man/man9/BUS_SETUP_INTR.9,v 1.12 2003/03/29 05:11:14 imp Exp % .\" .\" $FreeBSD$ -.Dd April 2, 2000 +.Dd March 28, 2003 .Dt BUS_SETUP_INTR 9 .Os .Sh 名称 @@ -82,6 +82,16 @@ .Fa arg の値を伴なって呼び出されます。 .Pp +.Fa cookiep +引数は、 +割り込みの確立が成功した場合に、 +.Nm +が書込む親のバスが使用するクッキーである void * 型へのポインタです。 +ドライバ作成者は、このクッキーが 0 ではないことを仮定することが出来ます。 +nexus ドライバは失敗時に +.Fa cookiep +に 0 を書込みます。 +.Pp 割り込みハンドラは、 .Fn BUS_TEARDOWN_INTR によってデタッチされます。 diff --git a/ja_JP.eucJP/man/man9/bus_alloc_resource.9 b/ja_JP.eucJP/man/man9/bus_alloc_resource.9 index 9a985dc1de..92c04d3544 100644 --- a/ja_JP.eucJP/man/man9/bus_alloc_resource.9 +++ b/ja_JP.eucJP/man/man9/bus_alloc_resource.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man9/bus_alloc_resource.9,v 1.12 2001/10/01 16:09:24 ru Exp % +.\" %FreeBSD: src/share/man/man9/bus_alloc_resource.9,v 1.13 2003/03/29 05:09:15 imp Exp % .\" .\" $FreeBSD$ .Dd May 18, 2000 @@ -48,7 +48,7 @@ これは資源管理関数群への簡単なインタフェースです。 親のメソッドテーブルを通る間接的な方法を隠蔽します。 この関数は、一般的にアタッチ時に呼び出されるべきですが、 -(競合状態の場合を除いて) 決してその前に呼び出してはなりません。 +(幾つかの稀な場合を除いて) 決してその前に呼び出してはなりません。 .Pp 引数は以下の通りです。 .Bl -item @@ -86,17 +86,24 @@ PCI および .Fa end は資源の開始/終了アドレスです。 -start に +.Fa start +に .Dv 0 -の値を end に +を、 +.Fa end +に .Dv ~0 -の値を指定した場合には、バスのためのデフォルト値が計算されます。 +を、 +.Fa count +に +.Dv 1 +を指定した場合には、バスのためのデフォルト値が計算されます。 .It .Fa count は資源の大きさで、例えば、入出力ポートの大きさです -(これは大抵、PCI 上では +(これは大抵 .Dv 1 -で、ISA および PCCARD 上ではデバイス依存です)。 +ですが、幾つかのデバイスはこれを上書きします)。 .Fa start および .Fa end @@ -113,7 +120,7 @@ start .It Dv RF_ALLOCATED 資源は既に予約されています。 資源は引続き -.Xr rman_activate_resource 9 +.Xr bus_activate_resource 9 で活性化される必要があります。 .It Dv RF_ACTIVE 不可分に、資源を活性化します。 @@ -149,6 +156,7 @@ pccard/cardbus 0ul, ~0ul, 1, RF_ACTIVE | RF_SHAREABLE); .Ed .Sh 関連項目 +.Xr bus_activate_resource 9 , .Xr bus_release_resource 9 , .Xr device 9 , .Xr driver 9 diff --git a/ja_JP.eucJP/man/man9/malloc.9 b/ja_JP.eucJP/man/man9/malloc.9 index 64633d55e2..e2078f14c0 100644 --- a/ja_JP.eucJP/man/man9/malloc.9 +++ b/ja_JP.eucJP/man/man9/malloc.9 @@ -33,17 +33,21 @@ .\" 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.29 2003/02/05 14:00:46 charnier +.\" %FreeBSD: src/share/man/man9/malloc.9,v 1.32 2003/04/10 10:18:56 harti Exp % .\" $FreeBSD$ .\" -.Dd June 16, 1996 +.Dd April 9, 2003 .Dt MALLOC 9 .Os .Sh 名称 .Nm malloc , .Nm MALLOC , .Nm free , -.Nm FREE +.Nm FREE , +.Nm realloc , +.Nm reallocf , +.Nm MALLOC_DEFINE , +.Nm MALLOC_DECLARE .Nd カーネルメモリマネージメントルーチン .Sh 書式 .In sys/types.h @@ -58,6 +62,11 @@ .Fn realloc "void *addr" "unsigned long size" "struct malloc_type *type" "int flags" .Ft void * .Fn reallocf "void *addr" "unsigned long size" "struct malloc_type *type" "int flags" +.Fn MALLOC_DECLARE "type" +.In sys/param.h +.In sys/malloc.h +.In sys/kernel.h +.Fn MALLOC_DEFINE "type" "shortdesc" "longdesc" .Sh 解説 .Fn malloc 関数はカーネルアドレス空間の初期化されていないメモリを @@ -145,46 +154,22 @@ free((addr), type) が .Dv NULL を返すようにします。 -通常は、 -他のプロセスによるリソースの解放を待つためにスリープ状態にされます。 -このフラグがセットされていれば、 -.Fn malloc -はブロックせずに -.Dv NULL -を返します。 +割り込みコンテキストでの動作時には .Dv M_NOWAIT -が 0 に定義されているということは、ブロッキング操作がデフォルトであることを -意味することに注意してください。 -また、割り込みコンテキストでの動作時には -.Dv M_NOWAIT -が必要であることにも注意してください。 -.Pp -プログラマは、 -.Fn malloc -フラグ -.Dv M_NOWAIT -と -.Xr mbuf 9 -の割り当てフラグ -.Dv M_DONTWAIT -を、混乱しないようにするべきです。 -後者は -.Fn malloc -にとって有効ではない引数です。 +が要求されることに注意してください。 .It Dv M_WAITOK はリソースを待つことが OK であることを示します。 -これは都合の悪いことに 0 として定義されていますので、 -この値を直接比較すること、またはフラグとして AND をとろうとすることを -決して行なわないように注意が払われるべきです。 -デフォルトの操作はメモリ割り当てが成功するまでブロックされます。 -.Dv M_NOWAIT +この要求がすぐに満たされることが出来ない場合には、現在のプロセスは、 +他のプロセスのよってリソースが開放されることを待つために、 +スリープ状態に置かれます。 +.Dv M_WAITOK が指定されると .Fn malloc , .Fn realloc , .Fn reallocf -関数は単に +関数は .Dv NULL -を返すことが出来ます。 +を返すことが出来ません。 .It Dv M_USE_RESERVE 要求されたメモリを獲得するために、 システムがリザーブ領域を使ってよいことを示します。 @@ -194,6 +179,12 @@ free((addr), type) そのため、新たなプログラミングでは使用されない様にするべきです。 .El .Pp +厳密に +.Dv M_WAITOK +または +.Dv M_NOWAIT +のどちらかが指定されなければなりません。 +.Pp 引数 .Fa type はメモリの利用方法の統計をとるためと、 @@ -208,7 +199,7 @@ free((addr), type) と .Fn MALLOC_DEFINE マクロを通じて -.Va malloc_type_t +.Va struct malloc_type_t typedef を使用して定義されます。 .Bd -literal -offset indent /* sys/something/foo_extern.h */ @@ -226,6 +217,14 @@ MALLOC_DEFINE(M_FOOBUF, "foobuffers", MALLOC(buf, struct foo_buf *, sizeof *buf, M_FOOBUF, M_NOWAIT); .Ed +.Pp +.Fn MALLOC_DEFINE +を使用するためには、 +.Aq sys/param.h +.Aq ( sys/types.h +の代わりに) および +.Aq sys/kernel.h +をインクルードしなければなりません。 .Sh 戻り値 .Fn malloc , .Fn realloc , @@ -244,15 +243,46 @@ MALLOC(buf, struct foo_buf *, sizeof *buf, M_FOOBUF, M_NOWAIT); この動作に依存してはなりませんが、 この情報がメモリ使用効率の最適化に有用かもしれません。 .Pp -以上に記載された malloc のフラグは、望まれていない結果を引き起こすため、 +プログラマは malloc フラグの +.Dv M_NOWAIT +および +.Dv M_WAITOK +と、 .Xr mbuf 9 -のルーチンと一緒に使用されるべき -.Em ではありません 。 +フラグの +.Dv M_DONTWAIT +および +.Dv M_TRYWAIT +を混乱しないように注意するべきです。 +.Sh ロックすることの考慮 +.Fn malloc , +.Fn realloc +および +.Fn reallocf +は高速割り込みハンドラから呼び出されることは出来ません。 +スレッド化された割り込みから呼び出される時には、 +.Ar flag +は +.Dv M_NOWAIT +を含んでいなければなりません。 +.Pp +ジャイアントロックではなく mutex が保持されている間は、 +.Fn malloc , +.Fn realloc +および +.Fn reallocf +は +.Dv M_WAITOK +付きで呼び出されてはなりません。 +.Fn free +が呼び出される時には、ジャイアントロックが保持されていても +保持されていなくても構いません。 .Pp .Xr vnode 9 インタロックを保持している時の .Fn malloc -または +.Dv ( M_NOWAIT +付であっても) または .Fn free への全ての呼出しは、VM オブジェクトと vnode の相互獲得のために、 LOR (ロック順序の逆転) を引き起こします。 @@ -260,7 +290,7 @@ LOR ( .Xr vmstat 8 , .Xr vnode 9 .Sh 診断 -.Dv DIAGNOSTIC +.Dv INVARIANTS コンフィギュレーションオプションを付けてコンパイルされたカーネルは、 割り当てられた領域以外への書き込みや .Fn malloc @@ -268,35 +298,3 @@ LOR ( .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