From: Akihiro MOTOKI Date: Sun, 25 Jan 2015 10:47:43 +0000 (+0900) Subject: Complete restart_syscall.2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=7d214483db712f6709172acbae09272928375ea2;p=linuxjm%2FLDP_man-pages.git Complete restart_syscall.2 --- diff --git a/draft/man2/restart_syscall.2 b/draft/man2/restart_syscall.2 new file mode 100644 index 00000000..11e6a964 --- /dev/null +++ b/draft/man2/restart_syscall.2 @@ -0,0 +1,94 @@ +.\" Copyright (c) 2013 by Michael Kerrisk +.\" +.\" %%%LICENSE_START(VERBATIM) +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" %%%LICENSE_END +.\" +.\" http://thread.gmane.org/gmane.linux.kernel/76552/focus=76803 +.\" From: Linus Torvalds transmeta.com> +.\" Subject: Re: [PATCH] compatibility syscall layer (lets try again) +.\" Newsgroups: gmane.linux.kernel +.\" Date: 2002-12-05 02:51:12 GMT +.\" +.\" See also Section 11.3.3 of Understanding the Linux Kernel, 3rd edition +.\" +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH RESTART_SYSCALL 2 2014\-12\-31 Linux "Linux Programmer's Manual" +.SH 名前 +restart_syscall \- 一時停止シグナルによる割り込み後にシステムコールを再開する +.SH 書式 +\fBint restart_syscall(void);\fP + +\fI注\fP: このシステムコールには、glibc のラッパー関数はない。「注意」の節を参照。 +.SH 説明 +\fBrestart_syscall\fP() システムコールは、 シグナル (\fBSIGSTOP\fP や \fBSIGTSTP\fP など) +によって停止されたプロセスが \fBSIGCONT\fP シグナルを受信して再開された後に、 特定のシステムコールを再開するのに使用される。 +このシステムコールはカーネル内部での利用のみを想定している。 + +.\" These system calls correspond to the special internal errno value +.\" ERESTART_RESTARTBLOCK. Each of the system calls has a "restart" +.\" helper function that is invoked by restart_syscall(). +.\" Notable (as at Linux 3.17) is that poll() has such a "restart" +.\" function, but ppoll(), select(), and pselect() do not. +.\" This means that the latter system calls do not take account of the +.\" time spent in the stopped state when restarting. +\fBrestart_syscall\fP() は、 再開時に時刻関連のパラメーターを調整する必要があるシステムコールを再開させる場合にのみ使用される。 +概要するシステムコールは \fBpoll\fP(2) (Linux 2.6.24 以降)、 \fBnanosleep\fP(2) (Linux 2.6 以降)、 +\fBclock_nanosleep\fP(2) (Linux 2.6 以降)、 \fBFUTEX_WAIT\fP (Linux 2.6.22 以降) や +\fBFUTEX_WAIT_BITSET\fP (Linux 2.6.31 以降) 操作を利用した場合の \fBfutex\fP(2) である。 +\fBrestart_syscall\fP() は、 中断されたシステムコールを、 経過した時間 (プロセスがシグナルにより停止されていた時間も含む) +を考慮に入れて適切に調整した時刻引き数で再開する。 \fBrestart_syscall\fP() の仕組みがないと、 これらのシステムコールの再開で、 +プロセスが実行を継続する際にすでに経過した時間を正しく減算できない。 +.SH 返り値 +\fBrestart_syscall\fP() の返り値は、 再開中のシステムコールの返り値となる。 +.SH エラー +\fIerrno\fP は \fBrestart_syscall\fP() が再開しているシステムコールのエラーに基づいて設定される。 +.SH バージョン +\fBrestart_syscall\fP() システムコールは Linux 2.6 以降に存在する。 +.SH 準拠 +このシステムコールは Linux 固有である。 +.SH 注意 +このシステムコールには glibc のラッパー関数はない。 それはカーネルによる利用だけが想定されており、 +アプリケーションは決してこのシステムコールを呼び出すべきではない。 + +カーネルは \fBrestart_syscall\fP() を使用することで、 シグナルにより停止されたプロセスが \fBSIGCONT\fP +により再開された後にシステムコールが再開される際に、 元のシステムコールに指定されたタイムアウト時間の計算に、 +プロセスが停止中に経過した時間が含まれることを保証する。 タイムアウト引き数を取り、停止シグナルの後に \fBSIGCONT\fP +があった場合自動的に再開するシステムコールだが、 そのシステムコールに \fBrestart_syscall\fP() の仕組みが組込まれていない場合には、 +プロセスの実行が再開された後、 停止中にプロセスが消費した時間はタイムアウト値としてカウント「されない」。 この問題を持つ有名なシステムコールとしては +\fBppoll\fP(2), \fBselect\fP(2), \fBpselect\fP(2) がある。 + +ユーザー空間からは \fBrestart_syscall\fP() の動作はほとんど見えない。 再開されたシステムコールを呼び出したプロセスには、 +そのシステムコールが通常通り実行され返ったように見える。 +.SH 関連項目 +.\" FIXME . ppoll(2), select(2), and pselect(2) +.\" should probably get the restart_syscall() treatment: +.\" If a select() call is suspended by stop-sig+SIGCONT, the time +.\" spent suspended is *not* deducted when the select() is restarted. +.\" FIXME . check whether recvmmsg() handles stop-sig+SIGCONT properly. +\fBsigaction\fP(2), \fBsigreturn\fP(2), \fBsignal\fP(7) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部である。 +プロジェクトの説明とバグ報告に関する情報は \%http://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/po4a/signal/po/ja.po b/po4a/signal/po/ja.po index c99f6483..6d3119b8 100644 --- a/po4a/signal/po/ja.po +++ b/po4a/signal/po/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2015-01-23 22:25+0900\n" -"PO-Revision-Date: 2015-01-25 07:25+0900\n" +"PO-Revision-Date: 2015-01-25 19:43+0900\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" @@ -4300,7 +4300,7 @@ msgstr "" #: build/C/man2/restart_syscall.2:33 #, no-wrap msgid "RESTART_SYSCALL" -msgstr "" +msgstr "RESTART_SYSCALL" #. type: Plain text #: build/C/man2/restart_syscall.2:36 @@ -4328,7 +4328,7 @@ msgid "" "calls after a process that was stopped by a signal (e.g., B or " "B) is later resumed after receiving a B signal. This " "system call is designed only for internal use by the kernel." -msgstr "" +msgstr "B() システムコールは、 シグナル (B や B など) によって停止されたプロセスが B シグナルを受信して再開された後に、 特定のシステムコールを再開するのに使用される。 このシステムコールはカーネル内部での利用のみを想定している。" #. These system calls correspond to the special internal errno value #. ERESTART_RESTARTBLOCK. Each of the system calls has a "restart" @@ -4351,21 +4351,21 @@ msgid "" "stopped by a signal). Without the B() mechanism, " "restarting these system calls would not correctly deduct the already elapsed " "time when the process continued execution." -msgstr "" +msgstr "B() は、 再開時に時刻関連のパラメーターを調整する必要があるシステムコールを再開させる場合にのみ使用される。 概要するシステムコールは B(2) (Linux 2.6.24 以降)、 B(2) (Linux 2.6 以降)、 B(2) (Linux 2.6 以降)、 B (Linux 2.6.22 以降) や B (Linux 2.6.31 以降) 操作を利用した場合の B(2) である。 B() は、 中断されたシステムコールを、 経過した時間 (プロセスがシグナルにより停止されていた時間も含む) を考慮に入れて適切に調整した時刻引き数で再開する。 B() の仕組みがないと、 これらのシステムコールの再開で、 プロセスが実行を継続する際にすでに経過した時間を正しく減算できない。" #. type: Plain text #: build/C/man2/restart_syscall.2:92 msgid "" "The return value of B() is the return value of whatever " "system call is being restarted." -msgstr "" +msgstr "B() の返り値は、 再開中のシステムコールの返り値となる。" #. type: Plain text #: build/C/man2/restart_syscall.2:96 msgid "" "I is set as per the errors for whatever system call is being " "restarted by B()." -msgstr "" +msgstr "I は B() が再開しているシステムコールのエラーに基づいて設定される。" #. type: Plain text #: build/C/man2/restart_syscall.2:100 @@ -4382,7 +4382,7 @@ msgstr "このシステムコールは Linux 固有である。" msgid "" "There is no glibc wrapper for this system call, because it is intended for " "use only by the kernel and should never be called by applications." -msgstr "" +msgstr "このシステムコールには glibc のラッパー関数はない。 それはカーネルによる利用だけが想定されており、 アプリケーションは決してこのシステムコールを呼び出すべきではない。" #. type: Plain text #: build/C/man2/restart_syscall.2:128 @@ -4397,7 +4397,7 @@ msgid "" "execution, the time that the process spent in the stop state is I " "counted against the timeout value. Notable examples of system calls that " "suffer this problem are B(2), B(2), B(2) がある。" # #. type: Plain text @@ -4407,7 +4407,7 @@ msgid "" "invisible: to the process that made the system call that is restarted, it " "appears as though that system call executed and returned in the usual " "fashion." -msgstr "" +msgstr "ユーザー空間からは B() の動作はほとんど見えない。 再開されたシステムコールを呼び出したプロセスには、 そのシステムコールが通常通り実行され返ったように見える。" #. FIXME . ppoll(2), select(2), and pselect(2) #. should probably get the restart_syscall() treatment: diff --git a/release/man2/restart_syscall.2 b/release/man2/restart_syscall.2 new file mode 100644 index 00000000..11e6a964 --- /dev/null +++ b/release/man2/restart_syscall.2 @@ -0,0 +1,94 @@ +.\" Copyright (c) 2013 by Michael Kerrisk +.\" +.\" %%%LICENSE_START(VERBATIM) +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" %%%LICENSE_END +.\" +.\" http://thread.gmane.org/gmane.linux.kernel/76552/focus=76803 +.\" From: Linus Torvalds transmeta.com> +.\" Subject: Re: [PATCH] compatibility syscall layer (lets try again) +.\" Newsgroups: gmane.linux.kernel +.\" Date: 2002-12-05 02:51:12 GMT +.\" +.\" See also Section 11.3.3 of Understanding the Linux Kernel, 3rd edition +.\" +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH RESTART_SYSCALL 2 2014\-12\-31 Linux "Linux Programmer's Manual" +.SH 名前 +restart_syscall \- 一時停止シグナルによる割り込み後にシステムコールを再開する +.SH 書式 +\fBint restart_syscall(void);\fP + +\fI注\fP: このシステムコールには、glibc のラッパー関数はない。「注意」の節を参照。 +.SH 説明 +\fBrestart_syscall\fP() システムコールは、 シグナル (\fBSIGSTOP\fP や \fBSIGTSTP\fP など) +によって停止されたプロセスが \fBSIGCONT\fP シグナルを受信して再開された後に、 特定のシステムコールを再開するのに使用される。 +このシステムコールはカーネル内部での利用のみを想定している。 + +.\" These system calls correspond to the special internal errno value +.\" ERESTART_RESTARTBLOCK. Each of the system calls has a "restart" +.\" helper function that is invoked by restart_syscall(). +.\" Notable (as at Linux 3.17) is that poll() has such a "restart" +.\" function, but ppoll(), select(), and pselect() do not. +.\" This means that the latter system calls do not take account of the +.\" time spent in the stopped state when restarting. +\fBrestart_syscall\fP() は、 再開時に時刻関連のパラメーターを調整する必要があるシステムコールを再開させる場合にのみ使用される。 +概要するシステムコールは \fBpoll\fP(2) (Linux 2.6.24 以降)、 \fBnanosleep\fP(2) (Linux 2.6 以降)、 +\fBclock_nanosleep\fP(2) (Linux 2.6 以降)、 \fBFUTEX_WAIT\fP (Linux 2.6.22 以降) や +\fBFUTEX_WAIT_BITSET\fP (Linux 2.6.31 以降) 操作を利用した場合の \fBfutex\fP(2) である。 +\fBrestart_syscall\fP() は、 中断されたシステムコールを、 経過した時間 (プロセスがシグナルにより停止されていた時間も含む) +を考慮に入れて適切に調整した時刻引き数で再開する。 \fBrestart_syscall\fP() の仕組みがないと、 これらのシステムコールの再開で、 +プロセスが実行を継続する際にすでに経過した時間を正しく減算できない。 +.SH 返り値 +\fBrestart_syscall\fP() の返り値は、 再開中のシステムコールの返り値となる。 +.SH エラー +\fIerrno\fP は \fBrestart_syscall\fP() が再開しているシステムコールのエラーに基づいて設定される。 +.SH バージョン +\fBrestart_syscall\fP() システムコールは Linux 2.6 以降に存在する。 +.SH 準拠 +このシステムコールは Linux 固有である。 +.SH 注意 +このシステムコールには glibc のラッパー関数はない。 それはカーネルによる利用だけが想定されており、 +アプリケーションは決してこのシステムコールを呼び出すべきではない。 + +カーネルは \fBrestart_syscall\fP() を使用することで、 シグナルにより停止されたプロセスが \fBSIGCONT\fP +により再開された後にシステムコールが再開される際に、 元のシステムコールに指定されたタイムアウト時間の計算に、 +プロセスが停止中に経過した時間が含まれることを保証する。 タイムアウト引き数を取り、停止シグナルの後に \fBSIGCONT\fP +があった場合自動的に再開するシステムコールだが、 そのシステムコールに \fBrestart_syscall\fP() の仕組みが組込まれていない場合には、 +プロセスの実行が再開された後、 停止中にプロセスが消費した時間はタイムアウト値としてカウント「されない」。 この問題を持つ有名なシステムコールとしては +\fBppoll\fP(2), \fBselect\fP(2), \fBpselect\fP(2) がある。 + +ユーザー空間からは \fBrestart_syscall\fP() の動作はほとんど見えない。 再開されたシステムコールを呼び出したプロセスには、 +そのシステムコールが通常通り実行され返ったように見える。 +.SH 関連項目 +.\" FIXME . ppoll(2), select(2), and pselect(2) +.\" should probably get the restart_syscall() treatment: +.\" If a select() call is suspended by stop-sig+SIGCONT, the time +.\" spent suspended is *not* deducted when the select() is restarted. +.\" FIXME . check whether recvmmsg() handles stop-sig+SIGCONT properly. +\fBsigaction\fP(2), \fBsigreturn\fP(2), \fBsignal\fP(7) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部である。 +プロジェクトの説明とバグ報告に関する情報は \%http://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/stats/signal b/stats/signal index 89296c34..6b2a57ae 100644 --- a/stats/signal +++ b/stats/signal @@ -1,6 +1,5 @@ # pagename,#complete,#remaining,#all prctl.2,199,19,218 -restart_syscall.2,20,8,28 rt_sigqueueinfo.2,30,18,48 s390_runtime_instr.2,20,11,31 timer_create.2,68,38,106 diff --git a/translation_list b/translation_list index f07bb849..d5ddb9c2 100644 --- a/translation_list +++ b/translation_list @@ -306,7 +306,7 @@ @:LDP man-pages:3.78:2014/08/19:renameat:2:rename:2: @:LDP man-pages:3.78:2014/08/19:renameat2:2:rename:2: ×:LDP man-pages:3.78:2010/02/25:request_key:2::::: -×:LDP man-pages:3.78:2014/12/31:restart_syscall:2::::: +○:LDP man-pages:3.78:2014/12/31:restart_syscall:2:2015/01/25::amotoki@gmail.com:Akihiro Motoki: ○:LDP man-pages:3.78:2008/05/08:rmdir:2:2015/01/24::amotoki@gmail.com:Akihiro Motoki: @:LDP man-pages:3.78:2015/01/22:rt_sigaction:2:sigaction:2: @:LDP man-pages:3.78:2013/12/11:rt_sigpending:2:sigpending:2: diff --git a/untrans.html b/untrans.html index 3ca88535..91ad9ac8 100644 --- a/untrans.html +++ b/untrans.html @@ -52,7 +52,6 @@ seccomp.265/14454.86 signal prctl.219/21891.28 -restart_syscall.28/2871.43 rt_sigqueueinfo.218/4862.50 s390_runtime_instr.211/3164.52 timer_create.238/10664.15 @@ -65,6 +64,6 @@ stdlib getauxval.334/8660.47 vdso.78/18495.65 -Total 41 pages +Total 40 pages