Catch up with 5.2-CURRENT-20040423-JPSNAP
Submitted by: Akira Ikeuchi <a_ikeuchi@mic.mitsumi.co.jp> Approved by: kuriyama (mentor)
This commit is contained in:
parent
00528bc8c6
commit
ce71f53e42
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=21198
16 changed files with 246 additions and 121 deletions
|
@ -30,10 +30,10 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)acct.2 8.1 (Berkeley) 6/4/93
|
||||
.\" %FreeBSD: src/lib/libc/sys/acct.2,v 1.15 2003/09/10 19:24:33 ru Exp %
|
||||
.\" %FreeBSD: src/lib/libc/sys/acct.2,v 1.19 2004/04/16 22:53:51 brueffer Exp %
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.Dd June 4, 1993
|
||||
.Dd April 17, 2004
|
||||
.Dt ACCT 2
|
||||
.Os
|
||||
.Sh 名称
|
||||
|
@ -75,6 +75,17 @@
|
|||
アカウンティングファイルが存在しているファイルシステムの空き容量が
|
||||
少なくなると、アカウンティングは自動的に無効になります。
|
||||
空き容量が増えて再び利用できるようになると有効になります。
|
||||
この振舞いを制御する値は、以下の
|
||||
.Xr sysctl 8
|
||||
変数を使用して変更することが可能です:
|
||||
.Bl -tag -width ".Va kern.acct_chkfreq"
|
||||
.It Va kern.acct_chkfreq
|
||||
空きディスク領域がチェックされるべき頻度を (秒単位で) 指定します。
|
||||
.It Va kern.acct_resume
|
||||
プロセスアカウンティングを再開する、空きディスク領域のパーセンテージです。
|
||||
.It Va kern.acct_suspend
|
||||
プロセスアカウンティングを中断する、空きディスク領域のパーセンテージです。
|
||||
.El
|
||||
.Sh 戻り値
|
||||
エラーの場合は -1 が返されます。
|
||||
ファイルは存在している必要があり、呼び出しはスーパユーザだけができます。
|
||||
|
@ -106,6 +117,7 @@
|
|||
.El
|
||||
.Sh 関連項目
|
||||
.Xr acct 5 ,
|
||||
.Xr accton 8 ,
|
||||
.Xr sa 8
|
||||
.Sh 歴史
|
||||
.Fn acct
|
||||
|
|
|
@ -30,14 +30,15 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)getfh.2 8.1 (Berkeley) 6/9/93
|
||||
.\" %FreeBSD: src/lib/libc/sys/getfh.2,v 1.13 2002/12/19 09:40:24 ru Exp %
|
||||
.\" %FreeBSD: src/lib/libc/sys/getfh.2,v 1.15 2004/04/06 09:06:45 dfr Exp %
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.Dd June 9, 1993
|
||||
.Dd April 6, 2004
|
||||
.Dt GETFH 2
|
||||
.Os
|
||||
.Sh 名称
|
||||
.Nm getfh
|
||||
.Nm getfh ,
|
||||
.Nm lgetfh
|
||||
.Nd ファイルハンドルを得る
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
|
@ -46,16 +47,29 @@
|
|||
.In sys/mount.h
|
||||
.Ft int
|
||||
.Fn getfh "const char *path" "fhandle_t *fhp"
|
||||
.Ft int
|
||||
.Fn lgetfh "const char *path" "fhandle_t *fhp"
|
||||
.Sh 解説
|
||||
.Fn getfh
|
||||
システムコールは指定のファイルまたはディレクトリのファイルハンドルを
|
||||
.Fa fhp
|
||||
が指すファイルハンドルの格納領域に返します。
|
||||
このシステムコールはスーパユーザに限定されます。
|
||||
.Fn lgetfh
|
||||
システムコールは、指定されたファイルがシンボリックリンクであった場合を除いて
|
||||
.Fn getfh
|
||||
と同様です。
|
||||
この場合には
|
||||
.Fn lgetfh
|
||||
はそのリンクについての情報を返し、一方
|
||||
.Fn getfh
|
||||
はそのリンクが参照するファイルについての情報を返します。
|
||||
これらのシステムコールはスーパユーザに限定されます。
|
||||
.Sh 戻り値
|
||||
.Rv -std getfh
|
||||
.Rv -std
|
||||
.Sh エラー
|
||||
.Fn getfh
|
||||
および
|
||||
.Fn lgetfh
|
||||
システムコールは以下の 1 つでも真の場合、処理に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/lib/libc/sys/kqueue.2,v 1.36 2003/11/11 16:41:27 brueffer Exp %
|
||||
.\" %FreeBSD: src/lib/libc/sys/kqueue.2,v 1.37 2004/04/20 21:07:43 cperciva Exp %
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.Dd April 14, 2000
|
||||
|
@ -527,3 +527,7 @@ EV_ONESHOT
|
|||
.Xr miibus 4
|
||||
ドライバを使用しているデバイスに対してのみです。
|
||||
そのため、非イーサネットデバイスに対しては動作しません。
|
||||
.Pp
|
||||
.Fa timeout
|
||||
の値は 24 時間に制限されています。
|
||||
より長いタイムアウトは暗黙のうちに 24 時間として再解釈されます。
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)mmap.2 8.4 (Berkeley) 5/11/95
|
||||
.\" %FreeBSD: src/lib/libc/sys/mmap.2,v 1.48 2002/12/24 16:52:30 ru Exp %
|
||||
.\" %FreeBSD: src/lib/libc/sys/mmap.2,v 1.49 2004/04/18 23:36:45 cperciva Exp %
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.Dd May 11, 1995
|
||||
|
@ -344,3 +344,12 @@ sysctl
|
|||
.Pp
|
||||
2GB 制限のもうひとつの理由は、ファイルシステムメタデータが負のオフセットに
|
||||
存在できるということです。
|
||||
.Pp
|
||||
0 バイトを
|
||||
.Fn mmap
|
||||
しようとしても何の効果もなく、単に成功します。
|
||||
一方、0 バイトを
|
||||
.Fn munmap
|
||||
しようとすると
|
||||
.Bq Er EINVAL
|
||||
が返されることに注意してください。
|
||||
|
|
|
@ -30,14 +30,15 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)mount.2 8.3 (Berkeley) 5/24/95
|
||||
.\" %FreeBSD: src/lib/libc/sys/mount.2,v 1.37 2003/09/08 16:23:21 iedowse Exp %
|
||||
.\" %FreeBSD: src/lib/libc/sys/mount.2,v 1.38 2004/03/16 09:45:38 tjr Exp %
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.Dd September 8, 2003
|
||||
.Dd March 16, 2004
|
||||
.Dt MOUNT 2
|
||||
.Os
|
||||
.Sh 名称
|
||||
.Nm mount ,
|
||||
.Nm nmount ,
|
||||
.Nm unmount
|
||||
.Nd ファイルシステムをマウントまたはマウント解除する
|
||||
.Sh ライブラリ
|
||||
|
@ -49,6 +50,9 @@
|
|||
.Fn mount "const char *type" "const char *dir" "int flags" "void *data"
|
||||
.Ft int
|
||||
.Fn unmount "const char *dir" "int flags"
|
||||
.In sys/uio.h
|
||||
.Ft int
|
||||
.Fn nmount "struct iovec *iov" "u_int niov" "int flags"
|
||||
.Sh 解説
|
||||
.Fn mount
|
||||
システムコールは、ファイルシステムオブジェクトをシステムファイルツリーの
|
||||
|
@ -73,6 +77,30 @@
|
|||
にあるすべてのファイルが覆い隠された状態になり、
|
||||
ファイルシステムがマウント解除されるまで利用できなくなります。
|
||||
.Pp
|
||||
.Fn nmount
|
||||
システムコールは、マウントオプション (ファイルシステムタイプ名称、
|
||||
マウントされるデバイス、マウントポイントなど) が、
|
||||
.Fa niov
|
||||
個の要素を持つ
|
||||
.Fa iov
|
||||
配列によって名前と値の組の配列として渡されることを除いては、
|
||||
.Fn mount
|
||||
と同様に動作します。
|
||||
以下のオプションは全てのファイルシステムで要求されます:
|
||||
.Bl -item -offset indent -compact
|
||||
.It
|
||||
.Li fstype Ta ファイルシステムタイプ名称 (例えば Dq Li procfs )
|
||||
.It
|
||||
.Li fspath Ta マウントポイントのパス名 (例えば Dq Li /proc )
|
||||
.El
|
||||
.Pp
|
||||
ファイルシステムタイプに依存して、その他のオプションが認識あるいは要求
|
||||
されます。
|
||||
例えば、殆どのディスクベースのファイルシステムは、上記のオプションに加えて
|
||||
スペシャルデバイスのパス名を格納する
|
||||
.Dq Li from
|
||||
オプションを要求します。
|
||||
.Pp
|
||||
デフォルトではスーパユーザのみが
|
||||
.Fn mount
|
||||
システムコールを呼び出すことができます。
|
||||
|
@ -201,6 +229,8 @@ vfs
|
|||
.Rv -std
|
||||
.Sh エラー
|
||||
.Fn mount
|
||||
および
|
||||
.Fn nmount
|
||||
システムコールは、次のうちの 1 つでも起きたときには処理を失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)select.2 8.2 (Berkeley) 3/25/94
|
||||
.\" %FreeBSD: src/lib/libc/sys/select.2,v 1.27 2004/03/03 14:51:11 dds Exp %
|
||||
.\" %FreeBSD: src/lib/libc/sys/select.2,v 1.28 2004/03/19 16:04:11 dds Exp %
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.Dd November 17, 2002
|
||||
|
@ -140,9 +140,7 @@ NULL
|
|||
.It Bq Er EBADF
|
||||
記述子集合のどれかが無効な記述子を指定していました。
|
||||
.It Bq Er EFAULT
|
||||
.Fa readfds ,
|
||||
.Fa writefds ,
|
||||
.Fa exceptfds
|
||||
.Fa readfds , writefds , exceptfds
|
||||
または
|
||||
.Fa timeout
|
||||
の引数の 1 つが無効なアドレスを指しています。
|
||||
|
|
|
@ -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/DEVICE_ATTACH.9,v 1.7 2001/10/01 16:09:23 ru Exp %
|
||||
.\" %FreeBSD: src/share/man/man9/DEVICE_ATTACH.9,v 1.8 2004/04/11 06:37:50 imp Exp %
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.Dd June 16, 1998
|
||||
|
@ -47,6 +47,12 @@
|
|||
このルーチンはハードウェアの初期化と
|
||||
その他の (devfs エントリのような) システムリソース
|
||||
の割り当てを行なうべきです。
|
||||
.Pp
|
||||
バスを実装するデバイスは、そのバスにアタッチされたデバイスの存在のプローブ、
|
||||
およびそれらを子として追加するためにこのメソッドを使用するべきです。
|
||||
.Xr bus_generic_attach 9
|
||||
と共に使用された場合、その子デバイスは自動的にプローブされて
|
||||
アタッチされます。
|
||||
.Sh 戻り値
|
||||
成功時には 0 が返され、それ以外の場合は適切なエラーが返されます。
|
||||
.Sh 関連項目
|
||||
|
|
|
@ -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/DEVICE_PROBE.9,v 1.16 2003/10/23 01:31:25 hmp Exp %
|
||||
.\" %FreeBSD: src/share/man/man9/DEVICE_PROBE.9,v 1.17 2004/04/11 06:37:21 imp Exp %
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.Dd June 16, 1998
|
||||
|
@ -48,7 +48,7 @@
|
|||
を返すべきです。
|
||||
プローブの間にその他のエラー (メモリ割当の失敗など) が起こった場合は、
|
||||
適切なエラーコードが返されるべきです。
|
||||
1 つのデバイスに 1 つ以上のドライバが当てはまるような場合のために、
|
||||
1 つのデバイスに 2 つ以上のドライバが当てはまるような場合のために、
|
||||
優先順位を返すことができます。
|
||||
この場合、成功の値は 0 以下の値で、
|
||||
最も大きな値が最も適切であることを意味します。
|
||||
|
@ -64,17 +64,14 @@
|
|||
また、アタッチメソッドが呼ばれた場合、
|
||||
プローブの間に割り当てられたあらゆるリソースは解放して
|
||||
再割り当てしなければなりません。
|
||||
成功値 0 を返す場合には、
|
||||
ドライバはそのドライバがアタッチされると想定することができます。
|
||||
加えて、そのプローブルーチンはどんなことがあっても副作用がないことが、
|
||||
絶対必要条件です。
|
||||
プローブルーチンは、アタッチルーチンが呼び出される前に 2 回以上
|
||||
呼び出されることがあります。
|
||||
.Pp
|
||||
バスを実装するデバイスは、
|
||||
バスに接続されたデバイスの存在をプローブし
|
||||
それらを子デバイスとして追加するために、
|
||||
このメソッドを使用するべきです。
|
||||
このメソッドが
|
||||
.Xr bus_generic_attach 9
|
||||
の使用と結合していれば、
|
||||
子デバイスは自動的にプローブされ、アタッチされるでしょう。
|
||||
成功値 0 を返す場合には、
|
||||
ドライバはそのデバイスがアタッチされるであろうと想定することはできますが、
|
||||
プローブルーチンが戻った時にいかなるリソースをも保持してはなりません。
|
||||
.Sh 戻り値
|
||||
0 以下の値は成功を表し、0 より大きな値はエラー (errno) を表します。
|
||||
0 以下の値の時、0 は最高の優先順位を表し、それ以上のプローブは行ないません。
|
||||
|
|
|
@ -26,14 +26,15 @@
|
|||
.\" (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.17 2004/01/27 16:16:31 imp Exp %
|
||||
.\" %FreeBSD: src/share/man/man9/bus_alloc_resource.9,v 1.18 2004/03/17 17:40:34 njl Exp %
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.Dd May 18, 2000
|
||||
.Dt BUS_ALLOC_RESOURCE 9
|
||||
.Os
|
||||
.Sh 名称
|
||||
.Nm bus_alloc_resource
|
||||
.Nm bus_alloc_resource ,
|
||||
.Nm bus_alloc_resource_any
|
||||
.Nd 親のバスからの資源の割り当て
|
||||
.Sh 書式
|
||||
.In sys/param.h
|
||||
|
@ -44,12 +45,27 @@
|
|||
.In machine/resource.h
|
||||
.Ft struct resource *
|
||||
.Fn bus_alloc_resource "device_t dev" "int type" "int *rid" "u_long start" "u_long end" "u_long count" "u_int flags"
|
||||
.Ft struct resource *
|
||||
.Fn bus_alloc_resource_any "device_t dev" "int type" "int *rid" "u_int flags"
|
||||
.Sh 解説
|
||||
これは資源管理関数群への簡単なインタフェースです。
|
||||
親のメソッドテーブルを通る間接的な方法を隠蔽します。
|
||||
この関数は、一般的にアタッチ時に呼び出されるべきですが、
|
||||
(幾つかの稀な場合を除いて) 決してその前に呼び出してはなりません。
|
||||
.Pp
|
||||
.Fn bus_alloc_resource_any
|
||||
関数は
|
||||
.Fn bus_alloc_resource
|
||||
のための簡単なラッパです。
|
||||
これは
|
||||
.Fa start ,
|
||||
.Fa end
|
||||
および
|
||||
.Fa count
|
||||
の値としてデフォルトのリソース (下記の
|
||||
.Fa start
|
||||
の解説を参照してください) を設定します。
|
||||
.Pp
|
||||
引数は以下の通りです。
|
||||
.Bl -item
|
||||
.It
|
||||
|
@ -149,8 +165,8 @@ PCI
|
|||
irqid = 0;
|
||||
portres = bus_alloc_resource(dev, SYS_RES_IOPORT, &portid,
|
||||
0ul, ~0ul, 32, RF_ACTIVE);
|
||||
irqres = bus_alloc_resource(dev, SYS_RES_IRQ, &irqid,
|
||||
0ul, ~0ul, 1, RF_ACTIVE | RF_SHAREABLE);
|
||||
irqres = bus_alloc_resource_any(dev, SYS_RES_IRQ, &irqid,
|
||||
RF_ACTIVE | RF_SHAREABLE);
|
||||
.Ed
|
||||
.Sh 関連項目
|
||||
.Xr bus_activate_resource 9 ,
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
.\" DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/condvar.9,v 1.8 2002/03/28 12:51:06 dd Exp %
|
||||
.\" %FreeBSD: src/share/man/man9/condvar.9,v 1.9 2004/03/10 15:57:25 jhb Exp %
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.Dd December 11, 2000
|
||||
|
@ -40,8 +40,7 @@
|
|||
.Nm cv_timedwait_sig ,
|
||||
.Nm cv_signal ,
|
||||
.Nm cv_broadcast ,
|
||||
.Nm cv_waitq_remove ,
|
||||
.Nm cv_waitq_empty ,
|
||||
.Nm cv_broadcastpri ,
|
||||
.Nm cv_wmesg
|
||||
.Nd カーネル状態変数
|
||||
.Sh 書式
|
||||
|
@ -65,9 +64,7 @@
|
|||
.Ft void
|
||||
.Fn cv_broadcast "struct cv *cvp"
|
||||
.Ft void
|
||||
.Fn cv_waitq_remove "struct thread *td"
|
||||
.Ft int
|
||||
.Fn cv_waitq_empty "struct cv *cvp"
|
||||
.Fn cv_broadcastpri "struct cv *cvp" "int pri"
|
||||
.Ft const char *
|
||||
.Fn cv_wmesg "struct cv *cvp"
|
||||
.Sh 解説
|
||||
|
@ -97,13 +94,15 @@
|
|||
.Fn cv_signal
|
||||
の、または全てのウェイトのブロックを解除するには
|
||||
.Fn cv_broadcast
|
||||
または
|
||||
.Fn cv_broadcastpri
|
||||
の呼び出しによってウェイトのブロック解除を行います。
|
||||
.Fn cv_waitq_remove
|
||||
は状態変数のウェイトキューからウェイトしているスレッドを取り除きます。
|
||||
.Fn cv_waitq_empty
|
||||
は
|
||||
.Fa cvp
|
||||
上にウェイトしているものが存在しているかどうかを報告します。
|
||||
ウェイタを起こすのに加えて、
|
||||
.Fn cv_broadcastpri
|
||||
は、高い優先度を持っていない全てのスレッドの優先度を上げることによって、
|
||||
全てのウェイタが最低でも
|
||||
.Fa pri
|
||||
の優先度を持つことを保証します。
|
||||
.Fn cv_wmesg
|
||||
は
|
||||
.Fn cv_init
|
||||
|
@ -130,9 +129,10 @@
|
|||
.Fa mp
|
||||
を渡さなければなりません。
|
||||
スレッドは
|
||||
.Fn cv_signal
|
||||
または
|
||||
.Fn cv_signal ,
|
||||
.Fn cv_broadcast
|
||||
または
|
||||
.Fn cv_broadcastpri
|
||||
を呼び出している間は、たとえ引数として渡していないとしても、
|
||||
.Fa mp
|
||||
を保持しなければなりません。
|
||||
|
@ -176,10 +176,6 @@
|
|||
は 0 を返します。
|
||||
そうでない場合には、0 ではないエラーコードが返されます。
|
||||
.Pp
|
||||
.Fn cv_waitq_empty
|
||||
は、ウェイトキュー上にスレッドが存在しない場合には
|
||||
0 ではない値を、そうでない場合には 0 を、返します。
|
||||
.Pp
|
||||
.Fn cv_wmesg
|
||||
は
|
||||
.Fn cv_init
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
.\" 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.12 2003/10/23 02:22:07 hmp Exp %
|
||||
.\" %FreeBSD: src/share/man/man9/copy.9,v 1.14 2004/03/29 19:42:21 hmp Exp %
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.Dd January 7, 1996
|
||||
|
@ -73,52 +73,64 @@
|
|||
.Bl -tag -width "copyoutstr()"
|
||||
.It Fn copyin
|
||||
ユーザ空間のアドレス
|
||||
.Pa uaddr
|
||||
.Fa uaddr
|
||||
からカーネル空間のアドレス
|
||||
.Pa kaddr
|
||||
.Fa kaddr
|
||||
へ
|
||||
.Pa len
|
||||
.Fa len
|
||||
バイトのデータをコピーします。
|
||||
.It Fn copyout
|
||||
カーネル空間のアドレス
|
||||
.Pa kaddr
|
||||
.Fa kaddr
|
||||
からユーザ空間のアドレス
|
||||
.Pa uaddr
|
||||
.Fa uaddr
|
||||
へ
|
||||
.Pa len
|
||||
.Fa len
|
||||
バイトのデータをコピーします。
|
||||
.It Fn copystr
|
||||
カーネル空間のアドレス
|
||||
.Pa kfaddr
|
||||
.Fa kfaddr
|
||||
からカーネル空間のアドレス
|
||||
.Pa kdaddr
|
||||
.Fa kdaddr
|
||||
へヌル文字で終端された最大
|
||||
.Pa len
|
||||
.Fa len
|
||||
文字の文字列をコピーします。
|
||||
末尾のヌル文字を含む実際にコピーされた文字数が
|
||||
.Pa *done
|
||||
に手されます。
|
||||
.Fa *done
|
||||
に返されます
|
||||
.Po
|
||||
.Fa done
|
||||
が
|
||||
.Dv NULL
|
||||
ではない場合
|
||||
.Pc Ns 。
|
||||
.It Fn copyinstr
|
||||
ユーザ空間のアドレス
|
||||
.Pa uaddr
|
||||
.Fa uaddr
|
||||
からカーネル空間のアドレス
|
||||
.Pa kaddr
|
||||
.Fa kaddr
|
||||
へヌル文字で終端された最大
|
||||
.Pa len
|
||||
.Fa len
|
||||
文字の文字列をコピーします。
|
||||
末尾のヌル文字を含む実際にコピーされた文字数が
|
||||
.Pa *done
|
||||
に手されます。
|
||||
.Fa *done
|
||||
に返されます
|
||||
.Po
|
||||
.Fa done
|
||||
が
|
||||
.Dv NULL
|
||||
ではない場合
|
||||
.Pc Ns 。
|
||||
.\" .It Fn copyoutstr
|
||||
.\" カーネル空間のアドレス
|
||||
.\" .Pa kaddr
|
||||
.\" .Fa kaddr
|
||||
.\" からユーザ空間のアドレス
|
||||
.\" .Pa uaddr
|
||||
.\" .Fa uaddr
|
||||
.\" へヌル文字で終端された最大
|
||||
.\" .Pa len
|
||||
.\" .Fa len
|
||||
.\" 文字の文字列をコピーします。
|
||||
.\" 末尾のヌル文字を含む実際にコピーされた文字数が
|
||||
.\" .Pa *done
|
||||
.\" .Fa *done
|
||||
.\" に返されます。
|
||||
.El
|
||||
.Sh 戻り値
|
||||
|
@ -134,7 +146,7 @@
|
|||
.\"、
|
||||
.\" .Fn copyoutstr
|
||||
関数は文字列が
|
||||
.Pa len
|
||||
.Fa len
|
||||
バイトよりも長い時に
|
||||
.Er ENAMETOOLONG
|
||||
を返します。
|
||||
|
|
|
@ -31,16 +31,16 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/suser.9,v 1.21 2003/10/23 02:33:03 hmp Exp %
|
||||
.\" %FreeBSD: src/share/man/man9/suser.9,v 1.22 2004/04/06 19:49:21 ru Exp %
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd October 15, 1996
|
||||
.Dd April 2, 2002
|
||||
.Dt SUSER 9
|
||||
.Os
|
||||
.Sh 名称
|
||||
.Nm suser ,
|
||||
.Nm suser_cred
|
||||
.Nd プロセスがスーパユーザの権限を持っているかどうかのチェック
|
||||
.Nd 証明がスーパユーザの権限を持っているかどうかのチェック
|
||||
.Sh 書式
|
||||
.In sys/param.h
|
||||
.In sys/systm.h
|
||||
|
@ -49,16 +49,16 @@
|
|||
.Ft int
|
||||
.Fn suser_cred "struct ucred *cred" "int flags"
|
||||
.Sh 解説
|
||||
.Nm
|
||||
.Fn suser
|
||||
および
|
||||
.Nm suser_cred
|
||||
.Fn suser_cred
|
||||
関数は、スーパユーザの権限を含む証明が与えられているかどうかをチェックします。
|
||||
.Pp
|
||||
.Nm
|
||||
.Fn suser
|
||||
関数は最も普通で、特別な事情がその他の方法を要求するのでなければ、
|
||||
これが使用されるべきです。
|
||||
.Pp
|
||||
.Nm suser_cred
|
||||
.Fn suser_cred
|
||||
関数は、チェックされるべき証明がそのスレッド自身のものでない時、
|
||||
スレッドが存在しない時、またはスーパユーザの権限が
|
||||
閉じ込められた root に拡大されるべき時に、使用されるべきです。
|
||||
|
@ -68,8 +68,10 @@
|
|||
システムコールによって閉じ込められている場合には、
|
||||
プロセスはスーパユーザの権限を持ちません。
|
||||
しかしながら、これが適切な場合があり、
|
||||
.Nm suser_cred
|
||||
関数への flags 引数の
|
||||
.Fn suser_cred
|
||||
関数へ渡す
|
||||
.Fa flags
|
||||
引数に
|
||||
.Dv PRISON_ROOT
|
||||
ビットを設定することによって実現されます。
|
||||
これが牢屋を弱くしないことを、注意深く再調査することが重要です。
|
||||
|
@ -80,9 +82,9 @@
|
|||
によって行動が保護されている場所のみにおいて、
|
||||
このような権限を承諾されるべきです。
|
||||
.Pp
|
||||
.Nm
|
||||
.Fn suser
|
||||
および
|
||||
.Nm suser_cred
|
||||
.Fn suser_cred
|
||||
関数は、スーパユーザの権限が使用された事を、
|
||||
指定されたプロセスのプロセス構造体中に記録します。
|
||||
これらの関数の機能の一部は、スーパユーザの権限が使用されたかどうかを
|
||||
|
@ -90,9 +92,9 @@
|
|||
他のパーミッションの可能性が使い尽くされた後でのみ、
|
||||
これら関数を呼び出すべきです。
|
||||
.Sh 戻り値
|
||||
.Nm
|
||||
.Fn suser
|
||||
および
|
||||
.Nm suser_cred
|
||||
.Fn suser_cred
|
||||
関数は、そのユーザがスーパユーザの権限を持っている場合には 0 を返し、
|
||||
そうでない場合には
|
||||
.Er EPERM
|
||||
|
@ -100,6 +102,9 @@
|
|||
これは、TRUE の応答がスーパユーザ権限を持つことを示すような他の実装とは
|
||||
.Em 逆の論理
|
||||
になっています。
|
||||
TRUE の応答の
|
||||
.Fn suser
|
||||
はスーパユーザの権限を示します。
|
||||
.Sh 関連項目
|
||||
.Xr chroot 2 ,
|
||||
.Xr jail 2
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/sysctl_ctx_init.9,v 1.10 2002/01/09 11:43:48 mpp Exp %
|
||||
.\" %FreeBSD: src/share/man/man9/sysctl_ctx_init.9,v 1.11 2004/04/06 20:16:10 markm Exp %
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd July 15, 2000
|
||||
|
@ -179,14 +179,14 @@ char *string = "dynamic sysctl";
|
|||
|
||||
sysctl_ctx_init(&clist);
|
||||
oidp = SYSCTL_ADD_NODE( &clist, SYSCTL_STATIC_CHILDREN(/* ツリートップ */),
|
||||
OID_AUTO, newtree, CTFLAG_RW, 0, "new top level tree");
|
||||
OID_AUTO, "newtree", CTFLAG_RW, 0, "new top level tree");
|
||||
oidp = SYSCTL_ADD_INT( &clist, SYSCTL_CHILDREN(oidp),
|
||||
OID_AUTO, newint, CTLFLAG_RW, &a_int, 0, "new int leaf");
|
||||
OID_AUTO, "newint", CTLFLAG_RW, &a_int, 0, "new int leaf");
|
||||
...
|
||||
oidp = SYSCTL_ADD_NODE( &clist, SYSCTL_STATIC_CHILDREN(_debug),
|
||||
OID_AUTO, newtree, CTFLAG_RW, 0, "new tree under debug");
|
||||
OID_AUTO, "newtree", CTFLAG_RW, 0, "new tree under debug");
|
||||
oidp = SYSCTL_ADD_STRING( &clist, SYSCTL_CHILDREN(oidp),
|
||||
OID_AUTO, newstring, CTLFLAG_R, string, 0, "new string leaf");
|
||||
OID_AUTO, "newstring", CTLFLAG_R, string, 0, "new string leaf");
|
||||
...
|
||||
/* ここで oid を解放できます */
|
||||
if(sysctl_ctx_free(&clist)) {
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
.\" POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" %FreeBSD: src/share/man/man9/timeout.9,v 1.20 2003/10/01 21:32:42 imp Exp %
|
||||
.\" %FreeBSD: src/share/man/man9/timeout.9,v 1.21 2004/04/06 23:08:49 cperciva Exp %
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd September 10, 1996
|
||||
|
@ -46,6 +46,7 @@
|
|||
.Nm callout_handle_init ,
|
||||
.Nm callout_init ,
|
||||
.Nm callout_stop ,
|
||||
.Nm callout_drain ,
|
||||
.Nm callout_reset
|
||||
.Nd 明示された時間長の後の関数の実行
|
||||
.Sh 書式
|
||||
|
@ -69,6 +70,8 @@ struct callout_handle handle = CALLOUT_HANDLE_INITIALIZER(&handle)
|
|||
.Fn callout_init "struct callout *c" "int mpsafe"
|
||||
.Ft int
|
||||
.Fn callout_stop "struct callout *c"
|
||||
.Ft int
|
||||
.Fn callout_drain "struct callout *c"
|
||||
.Ft void
|
||||
.Fn callout_reset "struct callout *c" "int ticks" "timeout_t *func" "void *arg"
|
||||
.Sh 解説
|
||||
|
@ -163,7 +166,8 @@ timeout (
|
|||
.Pp
|
||||
関数
|
||||
.Fn callout_init ,
|
||||
.Fn callout_stop
|
||||
.Fn callout_stop ,
|
||||
.Fn callout_drain
|
||||
および
|
||||
.Fn callout_reset
|
||||
は固有のコールアウト構造を割当てることを希望するクライアントのための、
|
||||
|
@ -172,7 +176,8 @@ timeout (
|
|||
関数
|
||||
.Fn callout_init
|
||||
はコールアウトを初期化し、そのためそのコールアウトは何の副作用もなしに
|
||||
.Fn callout_stop
|
||||
.Fn callout_stop ,
|
||||
.Fn callout_drain
|
||||
または
|
||||
.Fn callout_reset
|
||||
に渡されることができます。
|
||||
|
@ -192,6 +197,15 @@ timeout (
|
|||
コールアウトが既に実行されたか現在実行中の場合には、0 が返されます。
|
||||
.Pp
|
||||
関数
|
||||
.Fn callout_drain
|
||||
は、コールアウトが既に進行中の場合にはその完了をウェイトすることを除いて、
|
||||
.Fn callout_stop
|
||||
と同一です。
|
||||
これは、そのコールアウトがブロックするかもしれないあらゆるロックを
|
||||
保持している間は、決して呼び出されてはなりません。
|
||||
さもないと結果としてデッドロックします。
|
||||
.Pp
|
||||
関数
|
||||
.Fn callout_reset
|
||||
は最初にそのコールアウトを廃止するために
|
||||
.Fn callout_stop
|
||||
|
@ -206,17 +220,10 @@ timeout (
|
|||
.Ft struct callout_handle
|
||||
を返します。
|
||||
.Fn callout_stop
|
||||
および
|
||||
.Fn callout_drain
|
||||
関数は呼び出された時にコールアウトが未だ保留の場合には 0 以外を、
|
||||
そうでない場合には 0 を返します。
|
||||
.Sh バグ
|
||||
コールアウトを取り消すか、もし取り消しが遅過ぎた場合には
|
||||
コールアウトが本当に完了されていることを保証することは、
|
||||
この API にはできません。
|
||||
.Fn callout_stop
|
||||
は 0 を返した時に、コールアウトが開始されていている場合のみを保証します。
|
||||
コールアウトが完了していることは保証しません。
|
||||
ドライバのデタッチルーチンから戻る前に実行されるスレッドがないことを
|
||||
保証したい時に、レース状態を発生させることがあります。
|
||||
.Sh 歴史
|
||||
現在の timeout および untimeout ルーチンは
|
||||
.An Adam M. Costello
|
||||
|
|
|
@ -23,7 +23,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/uio.9,v 1.14 2003/03/03 10:49:37 des Exp %
|
||||
.\" %FreeBSD: src/share/man/man9/uio.9,v 1.15 2004/04/15 07:24:10 markm Exp %
|
||||
.\"
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
|
@ -131,23 +131,22 @@ fooread(dev_t dev, struct uio *uio, int flag)
|
|||
{
|
||||
int rv, amnt;
|
||||
|
||||
rv = 0;
|
||||
while (uio->uio_resid > 0) {
|
||||
if (data_available > 0) {
|
||||
amnt = MIN(uio->uio_resid, data_available);
|
||||
if ((rv = uiomove(buffer, amnt, uio))
|
||||
!= 0)
|
||||
goto error;
|
||||
rv = uiomove(buffer, amnt, uio);
|
||||
if (rv != 0)
|
||||
break;
|
||||
data_available -= amnt;
|
||||
} else {
|
||||
} else
|
||||
tsleep(...); /* より良い時期まで待つ */
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
error:
|
||||
/* エラーのクリーンアップをここで行なう */
|
||||
return rv;
|
||||
if (rv != 0) {
|
||||
/* エラーのクリーンアップをここで行なう */
|
||||
}
|
||||
return (rv);
|
||||
}
|
||||
|
||||
.Ed
|
||||
.Sh 戻り値
|
||||
.Fn uiomove
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
.\" 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.10 2003/01/21 11:34:57 alfred Exp %
|
||||
.\" %FreeBSD: src/share/man/man9/vslock.9,v 1.11 2004/03/15 10:05:27 truckman Exp %
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.Dd June 15, 1996
|
||||
|
@ -49,10 +49,10 @@
|
|||
.In sys/proc.h
|
||||
.In vm/vm.h
|
||||
.In vm/vm_extern.h
|
||||
.Ft int
|
||||
.Fn vslock "void *addr" "size_t len"
|
||||
.Ft void
|
||||
.Fn vslock "void *addr" "u_int len"
|
||||
.Ft void
|
||||
.Fn vsunlock "void *addr" "u_int len"
|
||||
.Fn vsunlock "void *addr" "size_t len"
|
||||
.Sh 解説
|
||||
.Fn vslock
|
||||
および
|
||||
|
@ -69,7 +69,27 @@
|
|||
この操作に使用されるプロセスのコンテキストはグローバル変数
|
||||
.Va curproc
|
||||
を参照します。
|
||||
.Sh 関連項目
|
||||
.Xr physio 9
|
||||
.Sh バグ
|
||||
引数としてプロセスのポインタを渡すべきです。
|
||||
.Sh 戻り値
|
||||
.Fn vslock
|
||||
関数は成功すると 0 を返し、そうでないと以下に示すエラーの中の 1 つを
|
||||
返します。
|
||||
.Sh エラー
|
||||
.Fn vslock
|
||||
関数は以下の場合に失敗します。
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa addr
|
||||
および
|
||||
.Fa len
|
||||
パラメータがマシンのアドレス空間の最後をラップアラウンドする
|
||||
メモリ領域を指定しています。
|
||||
.It Bq Er ENOMEM
|
||||
指定されたアドレス範囲の大きさがロックされたメモリのシステム制限を
|
||||
超過しています。
|
||||
.It Bq Er ENOMEM
|
||||
要求されたアドレス範囲をロックすることが、そのプロセスのプロセス毎の
|
||||
ロックされたメモリの制限を超過させます。
|
||||
.It Bq Er EFAULT
|
||||
示されたアドレス範囲の中の幾つかの部分が割り当てられていません。
|
||||
ページのマッピングにエラー/失敗があります。
|
||||
.El
|
||||
|
|
Loading…
Reference in a new issue