Catch up with 5.0-CURRENT-20030419-JPSNAP
Submitted by: Akira Ikeuchi <a_ikeuchi@mic.mitsumi.co.jp>
This commit is contained in:
parent
2d29a49113
commit
7821caa0a5
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=16723
7 changed files with 141 additions and 89 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 ,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
によってデタッチされます。
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue