+#. type: SS
+#: build/C/man2/syscall.2:82
+#, no-wrap
+msgid "Architecture-specific requirements"
+msgstr "アーキテクチャ固有の要件"
+
+#. type: Plain text
+#: build/C/man2/syscall.2:93
+msgid ""
+"Each architecture ABI has its own requirements on how system call arguments "
+"are passed to the kernel. For system calls that have a glibc wrapper (e.g., "
+"most system calls), glibc handles the details of copying arguments to the "
+"right registers in a manner suitable for the architecture. However, when "
+"using B<syscall>() to make a system call, the caller might need to handle "
+"architecture-dependent details; this requirement is most commonly "
+"encountered on certain 32-bit architectures."
+msgstr ""
+"各アーキテクチャの ABI には、 システムコールの引き数のカーネルへの渡し方に関"
+"する独自の要件がある。\n"
+"(ほとんどのシステムコールのように) glibc ラッパー関数があるシステムコールで"
+"は、 glibc が詳細を処理し、アーキテクチャに応じた方法で引き数が適切なレジスタ"
+"にコピーされる。 しかし、 システムコールを呼び出すのに B<syscall>() を使う場"
+"合には、 呼び出し側でアーキテクチャ依存の詳細を処理しなければならない場合があ"
+"る。 これはいくつかの 32 ビットアーキテクチャでは非常によくあることだ。"
+
+#. type: Plain text
+#: build/C/man2/syscall.2:104
+msgid ""
+"For example, on the ARM architecture Embedded ABI (EABI), a 64-bit value (e."
+"g., I<long long>) must be aligned to an even register pair. Thus, using "
+"B<syscall>() instead of the wrapper provided by glibc, the B<readahead>() "
+"system call would be invoked as follows on the ARM architecture with the "
+"EABI:"
+msgstr ""
+"例えば、ARM アーキテクチャの Embedded ABI (EABI) では、 (I<long long> など"
+"の) 64 ビット値は偶数番地のレジスタのペアに境界があっていなければならない。し"
+"たがって、 glibc が提供するラッパー関数ではなく B<syscall>() を使う場合に"
+"は、 B<readahead>() システムコールは ARM アーキテクチャの EABI では以下のよう"
+"にして起動されることになる。"
+
+#. type: Plain text
+#: build/C/man2/syscall.2:111
+#, no-wrap
+msgid ""
+"syscall(SYS_readahead, fd, 0,\n"
+" (unsigned int) (offset E<gt>E<gt> 32),\n"
+" (unsigned int) (offset & 0xFFFFFFFF),\n"
+" count);\n"
+msgstr ""
+"syscall(SYS_readahead, fd, 0,\n"
+" (unsigned int) (offset E<gt>E<gt> 32),\n"
+" (unsigned int) (offset & 0xFFFFFFFF),\n"
+" count);\n"
+
+#. type: Plain text
+#: build/C/man2/syscall.2:125
+msgid ""
+"Since the offset argument is 64 bits, and the first argument (I<fd>) is "
+"passed in I<r0>, the caller must manually split and align the 64-bit value "
+"so that it is passed in the I<r2>/I<r3> register pair. That means inserting "
+"a dummy value into I<r1> (the second argument of 0)."
+msgstr ""
+"オフセット引き数は 64 ビットで、最初の引き数 (I<fd>) は I<r0> で渡されるの"
+"で、呼び出し側では手動で 64 ビット値を分割して境界を合わせて、 64 ビット値が "
+"I<r2>/I<r3> レジスタペアで渡されるようにしなければならない。このため、 I<r1> "
+"(2 番目の引数 0) としてダミー値を挿入している。"
+
+#. Mike Frysinger: this issue ends up forcing MIPS
+#. O32 to take 7 arguments to syscall()
+#. type: Plain text
+#: build/C/man2/syscall.2:130
+msgid ""
+"Similar issues can occur on MIPS with the O32 ABI, on PowerPC with the 32-"
+"bit ABI, and on Xtensa."
+msgstr ""
+"同様のことが、 MIPS の O32 ABI、 PowerPC の 32 ビット ABI や Xtensa でも起こ"
+"りうる。"
+
+#. type: Plain text
+#: build/C/man2/syscall.2:141
+msgid ""
+"The affected system calls are B<fadvise64_64>(2), B<ftruncate64>(2), "
+"B<posix_fadvise>(2), B<pread64>(2), B<pwrite64>(2), B<readahead>(2), "
+"B<sync_file_range>(2), and B<truncate64>(2)."
+msgstr ""
+"次のシステムコールに影響がある: B<fadvise64_64>(2), B<ftruncate64>(2), "
+"B<posix_fadvise>(2), B<pread64>(2), B<pwrite64>(2), B<readahead>(2), "
+"B<sync_file_range>(2), B<truncate64>(2)"
+
+#. type: SS
+#: build/C/man2/syscall.2:141
+#, no-wrap
+msgid "Architecture calling conventions"
+msgstr "アーキテクチャ毎の呼び出し規約"
+
+#. type: Plain text
+#: build/C/man2/syscall.2:145
+msgid ""
+"Every architecture has its own way of invoking and passing arguments to the "
+"kernel. The details for various architectures are listed in the two tables "
+"below."
+msgstr ""
+"各アーキテクチャには、それぞれ独自のシステムコール起動方法とカーネルへの引き"
+"数の渡し方がある。 各種のアーキテクチャの詳細を以下の 2 つの表にまとめる。"
+
+#. type: Plain text
+#: build/C/man2/syscall.2:152
+#, fuzzy
+#| msgid ""
+#| "The first table lists the instruction used to transition to kernel mode, "
+#| "(which might not be the fastest or best way to transition to the kernel, "
+#| "so you might have to refer to the VDSO), the register used to indicate "
+#| "the system call number, and the register used to return the system call "
+#| "result."
+msgid ""
+"The first table lists the instruction used to transition to kernel mode, "
+"(which might not be the fastest or best way to transition to the kernel, so "
+"you might have to refer to B<vdso>(7)), the register used to indicate the "
+"system call number, and the register used to return the system call result."
+msgstr ""
+"最初の表は、 カーネルモードに遷移するのに使用される命令、 システムコール番号"
+"を示すのに使用されるレジスタ、 システムコールの結果を返すのに使用されるレジス"
+"タの一覧である (なお、 ここに載っているカーネルモードに遷移するのに使用される"
+"命令は、 カーネルモードに遷移する最速や最善の方法でない場合もあるので、 VDSO "
+"を参照する必要があるかもしれない)。"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:157
+#, no-wrap
+msgid "arch/ABI\tinstruction\tsyscall #\tretval\tNotes\n"
+msgstr "arch/ABI\tinstruction\tsyscall #\tretval\tNotes\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:159
+#, no-wrap
+msgid "arm/OABI\tswi NR\t-\ta1\tNR is syscall #\n"
+msgstr "arm/OABI\tswi NR\t-\ta1\tNR is syscall #\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:160
+#, no-wrap
+msgid "arm/EABI\tswi 0x0\tr7\tr0\n"
+msgstr "arm/EABI\tswi 0x0\tr7\tr0\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:161
+#, no-wrap
+msgid "blackfin\texcpt 0x0\tP0\tR0\n"
+msgstr "blackfin\texcpt 0x0\tP0\tR0\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:162
+#, no-wrap
+msgid "i386\tint $0x80\teax\teax\n"
+msgstr "i386\tint $0x80\teax\teax\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:163
+#, fuzzy, no-wrap
+#| msgid "ia64\tbreak 0x100000\tr15\tr10/r8\n"
+msgid "ia64\tbreak 0x100000\tr15\tr10/r8\tbool error/errno value\n"
+msgstr "ia64\tbreak 0x100000\tr15\tr10/r8\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:164
+#, no-wrap
+msgid "parisc\tble 0x100(%sr2, %r0)\tr20\tr28\n"
+msgstr "parisc\tble 0x100(%sr2, %r0)\tr20\tr28\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:165
+#, no-wrap
+msgid "s390\tsvc 0\tr1\tr2\tNR may be passed directly with\n"
+msgstr "s390\tsvc 0\tr1\tr2\tNR が 256 未満の場合 \"svc NR\" で\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:166
+#, no-wrap
+msgid "s390x\tsvc 0\tr1\tr2\t\"svc NR\" if NR is less than 256\n"
+msgstr "s390x\tsvc 0\tr1\tr2\tNR が直接渡される場合がある\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:167
+#, no-wrap
+msgid "sparc/32\tt 0x10\tg1\to0\n"
+msgstr "sparc/32\tt 0x10\tg1\to0\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:168
+#, no-wrap
+msgid "sparc/64\tt 0x6d\tg1\to0\n"
+msgstr "sparc/64\tt 0x6d\tg1\to0\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:169
+#, no-wrap
+msgid "x86_64\tsyscall\trax\trax\n"
+msgstr "x86_64\tsyscall\trax\trax\n"
+
+#. type: Plain text
+#: build/C/man2/syscall.2:177
+msgid ""
+"The second table shows the registers used to pass the system call arguments."
+msgstr ""
+"2 つ目の表は、システムコールの引き数を渡すのに使用されるレジスタの一覧であ"
+"る。"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:182
+#, no-wrap
+msgid "arch/ABI\targ1\targ2\targ3\targ4\targ5\targ6\targ7\n"
+msgstr "arch/ABI\targ1\targ2\targ3\targ4\targ5\targ6\targ7\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:184
+#, no-wrap
+msgid "arm/OABI\ta1\ta2\ta3\ta4\tv1\tv2\tv3\n"
+msgstr "arm/OABI\ta1\ta2\ta3\ta4\tv1\tv2\tv3\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:185
+#, no-wrap
+msgid "arm/EABI\tr0\tr1\tr2\tr3\tr4\tr5\tr6\n"
+msgstr "arm/EABI\tr0\tr1\tr2\tr3\tr4\tr5\tr6\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:186
+#, no-wrap
+msgid "blackfin\tR0\tR1\tR2\tR3\tR4\tR5\t-\n"
+msgstr "blackfin\tR0\tR1\tR2\tR3\tR4\tR5\t-\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:187
+#, no-wrap
+msgid "i386\tebx\tecx\tedx\tesi\tedi\tebp\t-\n"
+msgstr "i386\tebx\tecx\tedx\tesi\tedi\tebp\t-\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:188
+#, fuzzy, no-wrap
+#| msgid "sparc/64\to0\to1\to2\to3\to4\to5\t-\n"
+msgid "ia64\tout0\tout1\tout2\tout3\tout4\tout5\t-\n"
+msgstr "sparc/64\to0\to1\to2\to3\to4\to5\t-\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:189
+#, no-wrap
+msgid "parisc\tr26\tr25\tr24\tr23\tr22\tr21\t-\n"
+msgstr "parisc\tr26\tr25\tr24\tr23\tr22\tr21\t-\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:190
+#, no-wrap
+msgid "s390\tr2\tr3\tr4\tr5\tr6\tr7\t-\n"
+msgstr "s390\tr2\tr3\tr4\tr5\tr6\tr7\t-\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:191
+#, no-wrap
+msgid "s390x\tr2\tr3\tr4\tr5\tr6\tr7\t-\n"
+msgstr "s390x\tr2\tr3\tr4\tr5\tr6\tr7\t-\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:192
+#, no-wrap
+msgid "sparc/32\to0\to1\to2\to3\to4\to5\t-\n"
+msgstr "sparc/32\to0\to1\to2\to3\to4\to5\t-\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:193
+#, no-wrap
+msgid "sparc/64\to0\to1\to2\to3\to4\to5\t-\n"
+msgstr "sparc/64\to0\to1\to2\to3\to4\to5\t-\n"
+
+#. type: tbl table
+#: build/C/man2/syscall.2:194
+#, no-wrap
+msgid "x86_64\trdi\trsi\trdx\tr10\tr8\tr9\t-\n"
+msgstr "x86_64\trdi\trsi\trdx\tr10\tr8\tr9\t-\n"
+
+#. type: Plain text
+#: build/C/man2/syscall.2:203
+msgid ""
+"Note that these tables don't cover the entire calling convention\\(emsome "
+"architectures may indiscriminately clobber other registers not listed here."
+msgstr ""
+"これらの表にはすべての呼び出し規約が記載されているわけではない点に注意するこ"
+"と \\(em アーキテクチャによっては、ここに記載されていない他のレジスタが見境な"
+"く上書きされる場合もある。"
+