+#: build/C/man2/prctl.2:763
+msgid "Set the address above which the program command line is placed."
+msgstr "プログラムのコマンドラインを配置するアドレスの上限を設定する。"
+
+#. type: TP
+#: build/C/man2/prctl.2:763
+#, no-wrap
+msgid "B<PR_SET_MM_ARG_END>"
+msgstr "B<PR_SET_MM_ARG_END>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:766
+msgid "Set the address below which the program command line is placed."
+msgstr "プログラムのコマンドラインを配置するアドレスの下限を設定する。"
+
+#. type: TP
+#: build/C/man2/prctl.2:766
+#, no-wrap
+msgid "B<PR_SET_MM_ENV_START>"
+msgstr "B<PR_SET_MM_ENV_START>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:769
+msgid "Set the address above which the program environment is placed."
+msgstr ""
+"プログラムの環境情報 (environment) を配置するアドレスの上限を設定する。"
+
+#. type: TP
+#: build/C/man2/prctl.2:769
+#, no-wrap
+msgid "B<PR_SET_MM_ENV_END>"
+msgstr "B<PR_SET_MM_ENV_END>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:772
+msgid "Set the address below which the program environment is placed."
+msgstr ""
+"プログラムの環境情報 (environment) を配置するアドレスの下限を設定する。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:785
+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:785
+#, no-wrap
+msgid "B<PR_SET_MM_AUXV>"
+msgstr "B<PR_SET_MM_AUXV>"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:794
+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:794
+#, 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:806
+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:813
+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:819
+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: TP
+#: build/C/man2/prctl.2:820
+#, no-wrap
+msgid "B<PR_MPX_ENABLE_MANAGEMENT>, B<PR_MPX_DISABLE_MANAGEMENT> (since Linux 3.19) "
+msgstr "B<PR_MPX_ENABLE_MANAGEMENT>, B<PR_MPX_DISABLE_MANAGEMENT> (Linux 3.19 以降) "
+
+#. commit fe3d197f84319d3bce379a9c0dc17b1f48ad358c
+#. See also http://lwn.net/Articles/582712/
+#. See also https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler
+#. commit e9d1b4f3c60997fe197bf0243cb4a41a44387a88
+#. type: Plain text
+#: build/C/man2/prctl.2:835
+msgid ""
+"Enable or disable kernel management of Memory Protection eXtensions (MPX) "
+"bounds tables. The I<arg2>, I<arg3>, I<arg4>, and I<arg5> arguments must be "
+"zero."
+msgstr "Memory Protection eXtensions (MPX) の境界テーブル (bounds table) のカーネル管理の有効化/無効化を行う。 引き数 I<arg2>, I<arg3>, I<arg4>, I<arg5> は 0 でなければならない。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:848
+msgid ""
+"MPX is a hardware-assisted mechanism for performing bounds checking on "
+"pointers. It consists of a set of registers storing bounds information and "
+"a set of special instruction prefixes that tell the CPU on which "
+"instructions it should do bounds enforcement. There is a limited number of "
+"these registers and when there are more pointers than registers, their "
+"contents must be \"spilled\" into a set of tables. These tables are called "
+"\"bounds tables\" and the MPX B<prctl>() operations control whether the "
+"kernel manages their allocation and freeing."
+msgstr ""
+"MPX は、 ポインターの境界チェックを行うハードウェア支援機構である。 この機能"
+"は、 境界情報を格納するレジスター群と、 境界チェックをどの命令に課すかを CPU "
+"に教えるための特別な命令プレフィックスの集合で構成される。 これらのレジスター"
+"数は限られており、 レジスター数よりも多くのポインターがある場合には、 その内"
+"容をテーブル群に退避する (spilled) 必要がある。 これらのテーブル群は「境界"
+"テーブル (bounds tables)」と呼ばれ、 MPX B<prctl> 命令はカーネルがこれらの割"
+"り当てと解放を行うかどうかを制御する。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:858
+msgid ""
+"When management is enabled, the kernel will take over allocation and freeing "
+"of the bounds tables. It does this by trapping the #BR exceptions that "
+"result at first use of missing bounds tables and instead of delivering the "
+"exception to user space, it allocates the table and populates the bounds "
+"directory with the location of the new table. For freeing, the kernel "
+"checks to see if bounds tables are present for memory which is not "
+"allocated, and frees them if so."
+msgstr ""
+"管理が有効になっている場合、 カーネルが境界テーブルの割り当てと解放を担当す"
+"る。 最初に存在しない境界テーブルを使おうとした際に上がる #BR 例外を捕捉し、 "
+"ユーザー空間に例外を配送せずに、 テーブルの割り当てを行い、 新しいテーブルに"
+"境界情報 (bounds directory) を書き込む。 解放に関しては、 カーネルが割り当て"
+"られていないメモリーに対応する境界テーブルが存在するかを確認し、 そうであれば"
+"解放を行う。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:865
+msgid ""
+"Before enabling MPX management using B<PR_MPX_ENABLE_MANAGEMENT>, the "
+"application must first have allocated a user-space buffer for the bounds "
+"directory and placed the location of that directory in the I<bndcfgu> "
+"register."
+msgstr ""
+"B<PR_MPX_ENABLE_MANAGEMENT> を使って MPX 管理を有効にする前に、 アプリケー"
+"ションはまず境界情報管理用のユーザー空間バッファーを割り当て、 その管理情報の"
+"場所を I<bndcfgu> レジスターに設定しなければならない。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:872
+msgid ""
+"These calls will fail if the CPU or kernel does not support MPX. Kernel "
+"support for MPX is enabled via the B<CONFIG_X86_INTEL_MPX> configuration "
+"option. You can check whether the CPU supports MPX by looking for the 'mpx' "
+"CPUID bit, like with the following command:"
+msgstr ""
+"CPU やカーネルが MPX をサポートしていない場合、 これらの呼び出しは失敗する。 "
+"カーネルによる MPX のサポートは B<CONFIG_X86_INTEL_MPX> 設定オプションで有効"
+"にできる。 CPU が MPX をサポートしているかを確認するには、 以下のように "
+"'mpx' CPUID ビットを見ればよい。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:874
+msgid " cat /proc/cpuinfo | grep ' mpx '"
+msgstr " cat /proc/cpuinfo | grep ' mpx '"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:877
+msgid ""
+"A thread may not switch in or out of long (64-bit) mode while MPX is enabled."
+msgstr ""
+"MPX が有効になっている間は、 スレッドはロング (64 ビット) モードのオン/オフの"
+"切り替えはできない。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:879
+msgid "All threads in a process are affected by these calls."
+msgstr "プロセス内のすべてのスレッドがこれらの呼び出しの影響を受ける。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:888
+msgid ""
+"The child of a B<fork>(2) inherits the state of MPX management. During "
+"B<execve>(2), MPX management is reset to a state as if "
+"B<PR_MPX_DISABLE_MANAGEMENT> had been called."
+msgstr ""
+"B<fork>(2) で作成された子プロセスは MPX 管理の状態を継承する。 B<execve>(2) "
+"の中で、 MPX 管理は B<PR_MPX_DISABLE_MANAGEMENT> が呼ばれた場合と同じ状態がリ"
+"セットされる。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:892
+msgid ""
+"For further information on Intel MPX, see the kernel source file "
+"I<Documentation/x86/intel_mpx.txt>."
+msgstr ""
+"Intel MPX についての詳しい情報は、カーネルソースファイル I<Documentation/x86/"
+"intel_mpx.txt> を参照。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:912
+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. "
+"All other I<option> values return 0 on success. On error, -1 is returned, "
+"and I<errno> is set appropriately."
+msgstr ""
+"成功すると、 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>, "
+"B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、B<PR_GET_SECCOMP> は返らな"
+"い場合もある)。 I<option> が他の値の場合は成功時に 0 を返す。 エラーの場"
+"合、-1 を返し、 I<errno> に適切な値を設定する。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:917
+msgid "I<arg2> is an invalid address."
+msgstr "I<arg2> が不正なアドレスである。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:930
+msgid ""
+"I<option> is B<PR_SET_SECCOMP>, I<arg2> is B<SECCOMP_MODE_FILTER>, the "
+"system was built with B<CONFIG_SECCOMP_FILTER>, and I<arg3> is an invalid "
+"address."
+msgstr ""
+"I<option> が B<PR_SET_SECCOMP> で、 I<arg2> が B<SECCOMP_MODE_FILTER> で、 "
+"カーネルが B<CONFIG_SECCOMP_FILTER> を有効にして作成されており、 I<arg3> が無"
+"効なアドレスである。"
+
+#. type: Plain text
+#: build/C/man2/prctl.2:935
+msgid "The value of I<option> is not recognized."