+"Modify certain kernel memory map descriptor fields of the calling process. "
+"Usually these fields are set by the kernel and dynamic loader (see B<ld.so>"
+"(8) for more information) and a regular application should not use this "
+"feature. However, there are cases, such as self-modifying programs, where a "
+"program might find it useful to change its own memory map. This feature is "
+"available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
+"option enabled. The calling process must have the B<CAP_SYS_RESOURCE> "
+"capability. The value in I<arg2> is one of the options below, while I<arg3> "
+"provides a new value for the option."
+msgstr "呼び出したプロセスのカーネルメモリマップディスクリプタのフィールドを変更する。 これらのフィールドは通常カーネルと動的リンカーにより設定される (詳しい情報は B<ld.so> を参照)。 通常のアプリケーションはこの機能を利用すべきではない。 しかしながら、自分を書き換えるプログラムなど、 プログラムが自分自身のメモリマップを変更するのが有用な場面もある。 この機能はカーネルが B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして作成されている場合にのみ利用できる。 呼び出したプロセスは B<CAP_SYS_RESOURCE> ケーパビリティを持っていなければならない。 I<arg2> の値には以下のいずれかを指定し、 I<arg3> でそのオプションの新しい値を指定する。"
+
+#. type: TP
+#: build/C/man2/prctl.2:688
+#, no-wrap
+msgid "B<PR_SET_MM_START_CODE>"
+msgstr "B<PR_SET_MM_START_CODE>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:697
+msgid ""
+"Set the address above which the program text can run. The corresponding "
+"memory area must be readable and executable, but not writable or sharable "
+"(see B<mprotect>(2) and B<mmap>(2) for more information)."
+msgstr "プログラムテキストを実行できるアドレスの上限を設定する。 対応するメモリ領域は読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能だったりしてはならない (詳しい情報は B<mprotect>(2) と B<mmap>(2) 参照)。"
+
+#. type: TP
+#: build/C/man2/prctl.2:697
+#, no-wrap
+msgid "B<PR_SET_MM_END_CODE>"
+msgstr "B<PR_SET_MM_END_CODE>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:702
+msgid ""
+"Set the address below which the program text can run. The corresponding "
+"memory area must be readable and executable, but not writable or sharable."
+msgstr "プログラムテキストを実行できるアドレスの下限を設定する。 対応するメモリ領域は読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能だったりしてはならない。"
+
+#. type: TP
+#: build/C/man2/prctl.2:702
+#, no-wrap
+msgid "B<PR_SET_MM_START_DATA>"
+msgstr "B<PR_SET_MM_START_DATA>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:708
+msgid ""
+"Set the address above which initialized and uninitialized (bss) data are "
+"placed. The corresponding memory area must be readable and writable, but "
+"not executable or sharable."
+msgstr "初期化済データや未初期化 (bss) データを配置する領域のアドレス上限を指定する。 対応するメモリ領域は読み書き可能でなければならないが、 実行可能だったり共有可能だったりしてはならない。"
+
+#. type: TP
+#: build/C/man2/prctl.2:708
+#, no-wrap
+msgid "B<PR_SET_MM_END_DATA>"
+msgstr "B<PR_SET_MM_END_DATA>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:714
+msgid ""
+"Set the address below which initialized and uninitialized (bss) data are "
+"placed. The corresponding memory area must be readable and writable, but "
+"not executable or sharable."
+msgstr "初期化済データや未初期化 (bss) データを配置する領域のアドレス下限を指定する。 対応するメモリ領域は読み書き可能でなければならないが、 実行可能だったり共有可能だったりしてはならない。"
+
+#. type: TP
+#: build/C/man2/prctl.2:714
+#, no-wrap
+msgid "B<PR_SET_MM_START_STACK>"
+msgstr "B<PR_SET_MM_START_STACK>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:718
+msgid ""
+"Set the start address of the stack. The corresponding memory area must be "
+"readable and writable."
+msgstr "スタックの開始アドレスを設定する。 対応するメモリ領域は読み書き可能でなければならない。"
+
+#. type: TP
+#: build/C/man2/prctl.2:718
+#, no-wrap
+msgid "B<PR_SET_MM_START_BRK>"
+msgstr "B<PR_SET_MM_START_BRK>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:730
+msgid ""
+"Set the address above which the program heap can be expanded with B<brk>(2) "
+"call. The address must be greater than the ending address of the current "
+"program data segment. In addition, the combined size of the resulting heap "
+"and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
+"limit (see B<setrlimit>(2))."
+msgstr "B<brk>(2) コールで拡張できるプログラムのヒープ領域のアドレス上限を設定する。 このアドレスは、プログラムの現在のデータセグメントの最終アドレスより大きくなければならない。 また、 変更後のヒープとデータセグメントのサイズを合わせたサイズが B<RLIMIT_DATA> リソースリミットを超えることはできない (B<setrlimit>(2) 参照)。"
+
+#. type: TP
+#: build/C/man2/prctl.2:730
+#, no-wrap
+msgid "B<PR_SET_MM_BRK>"
+msgstr "B<PR_SET_MM_BRK>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:738
+msgid ""
+"Set the current B<brk>(2) value. The requirements for the address are the "
+"same as for the B<PR_SET_MM_START_BRK> option."
+msgstr "現在の B<brk>(2) 値を設定する。 このアドレスの要件は B<PR_SET_MM_START_BRK> オプションと同じである。"
+
+#. commit fe8c7f5cbf91124987106faa3bdf0c8b955c4cf7
+#. type: Plain text
+#: build/C/man2/prctl.2:741
+msgid "The following options are available since Linux 3.5."
+msgstr "以下のオプションは Linux 3.5 以降で利用できる。"
+
+#. type: TP
+#: build/C/man2/prctl.2:741
+#, no-wrap
+msgid "B<PR_SET_MM_ARG_START>"
+msgstr "B<PR_SET_MM_ARG_START>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:744
+msgid "Set the address above which the program command line is placed."
+msgstr "プログラムのコマンドラインを配置するアドレスの上限を設定する。"
+
+#. type: TP
+#: build/C/man2/prctl.2:744
+#, no-wrap
+msgid "B<PR_SET_MM_ARG_END>"
+msgstr "B<PR_SET_MM_ARG_END>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:747
+msgid "Set the address below which the program command line is placed."
+msgstr "プログラムのコマンドラインを配置するアドレスの下限を設定する。"
+
+#. type: TP
+#: build/C/man2/prctl.2:747
+#, no-wrap
+msgid "B<PR_SET_MM_ENV_START>"
+msgstr "B<PR_SET_MM_ENV_START>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:750
+msgid "Set the address above which the program environment is placed."
+msgstr "プログラムの環境情報 (environment) を配置するアドレスの上限を設定する。"
+
+#. type: TP
+#: build/C/man2/prctl.2:750
+#, no-wrap
+msgid "B<PR_SET_MM_ENV_END>"
+msgstr "B<PR_SET_MM_ENV_END>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:753
+msgid "Set the address below which the program environment is placed."
+msgstr "プログラムの環境情報 (environment) を配置するアドレスの下限を設定する。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:766
+msgid ""
+"The address passed with B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, "
+"B<PR_SET_MM_ENV_START>, and B<PR_SET_MM_ENV_END> should belong to a process "
+"stack area. Thus, the corresponding memory area must be readable, writable, "
+"and (depending on the kernel configuration) have the B<MAP_GROWSDOWN> "
+"attribute set (see B<mmap>(2))."
+msgstr "B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, B<PR_SET_MM_ENV_START>, B<PR_SET_MM_ENV_END> で指定されるアドレスはプロセスのスタック領域に属している必要がある。 したがって、これらのメモリ領域は読み書き可能でなければならない。 また、 (カーネル設定によっては) B<MAP_GROWSDOWN> 属性がセットされていなければならない (B<mmap>(2) 参照)。"
+
+#. type: TP
+#: build/C/man2/prctl.2:766
+#, no-wrap
+msgid "B<PR_SET_MM_AUXV>"
+msgstr "B<PR_SET_MM_AUXV>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:775
+msgid ""
+"Set a new auxiliary vector. The I<arg3> argument should provide the address "
+"of the vector. The I<arg4> is the size of the vector."
+msgstr "新しい補助ベクトル (auxiliary vector) を設定する。 I<arg3> 引き数はベクトルのアドレスを指定し、 I<arg4> はベクトルのサイズを指定する。"
+
+#. type: TP
+#: build/C/man2/prctl.2:775
+#, no-wrap
+msgid "B<PR_SET_MM_EXE_FILE>"
+msgstr "B<PR_SET_MM_EXE_FILE>"
+
+#. commit b32dfe377102ce668775f8b6b1461f7ad428f8b6
+#. type: Plain text
+#: build/C/man2/prctl.2:787
+msgid ""
+"Supersede the I</proc/pid/exe> symbolic link with a new one pointing to a "
+"new executable file identified by the file descriptor provided in I<arg3> "
+"argument. The file descriptor should be obtained with a regular B<open>(2) "
+"call."
+msgstr "I</proc/pid/exe> シンボリックリンクを I<arg3> 引き数で渡された新しい実行可能なファイルディスクリプタを指すシンボリックリンクで置き換える。 ファイルディスクリプタは通常の B<open>(2) コールで取得すべきである。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:794
+msgid ""
+"To change the symbolic link, one needs to unmap all existing executable "
+"memory areas, including those created by the kernel itself (for example the "
+"kernel usually creates at least one executable memory area for the ELF I<."
+"text> section)."
+msgstr "シンボリックリンクを変更するには、 既存の実行可能なメモリ領域のすべてをアンマップする必要がある。これにはカーネル自身が作成した領域も含まれる (例えば、カーネルは通常 ELF I<.text> セクションに少なくとも一つの実行可能なメモリ領域を作成する)。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:800
+msgid ""
+"The second limitation is that such transitions can be done only once in a "
+"process life time. Any further attempts will be rejected. This should help "
+"system administrators monitor unusual symbolic-link transitions over all "
+"processes running on a system."
+msgstr "二つ目の制限は、このような変更はプロセスの生存期間で一度だけ行うことができるという点である。 一度変更を行った後で変更を行おうとすると拒否される。 この動作は、 システム管理者が、 システムで動作するすべてのプロセスが行う、 普通でないシンボリックリンクの変更を監視するのを楽にする。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:822
+msgid ""
+"On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
+"B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
+"B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, and (if it "
+"returns) B<PR_GET_SECCOMP> return the nonnegative values described above. "