OSDN Git Service

f2e78533743303ca7596c057b02a823e097c9cf6
[linuxjm/LDP_man-pages.git] / po4a / man2 / po / ja.po
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2013-09-28 04:05+0900\n"
10 "PO-Revision-Date: 2013-09-28 04:25+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man2/arch_prctl.2:25
20 #, no-wrap
21 msgid "ARCH_PRCTL"
22 msgstr "ARCH_PRCTL"
23
24 #. type: TH
25 #: build/C/man2/arch_prctl.2:25
26 #, no-wrap
27 msgid "2007-12-26"
28 msgstr "2007-12-26"
29
30 #. type: TH
31 #: build/C/man2/arch_prctl.2:25 build/C/man2/futex.2:53
32 #: build/C/man2/get_robust_list.2:29 build/C/man2/getunwind.2:27
33 #: build/C/man2/kexec_load.2:26 build/C/man2/lookup_dcookie.2:27
34 #: build/C/man2/modify_ldt.2:24 build/C/man2/nfsservctl.2:8
35 #: build/C/man2/outb.2:26 build/C/man2/pciconfig_read.2:8
36 #: build/C/man2/perf_event_open.2:27 build/C/man2/perfmonctl.2:27
37 #: build/C/man2/personality.2:32 build/C/man2/pivot_root.2:10
38 #: build/C/man2/process_vm_readv.2:29 build/C/man2/ptrace.2:44
39 #: build/C/man2/quotactl.2:27 build/C/man2/sendfile.2:19
40 #: build/C/man2/set_tid_address.2:25 build/C/man2/splice.2:26
41 #: build/C/man2/tee.2:26 build/C/man2/vm86.2:26 build/C/man2/vmsplice.2:26
42 #, no-wrap
43 msgid "Linux"
44 msgstr "Linux"
45
46 #. type: TH
47 #: build/C/man2/arch_prctl.2:25 build/C/man2/futex.2:53
48 #: build/C/man2/getunwind.2:27 build/C/man2/kexec_load.2:26
49 #: build/C/man2/lookup_dcookie.2:27 build/C/man2/modify_ldt.2:24
50 #: build/C/man2/nfsservctl.2:8 build/C/man2/outb.2:26
51 #: build/C/man2/pciconfig_read.2:8 build/C/man2/perf_event_open.2:27
52 #: build/C/man2/perfmonctl.2:27 build/C/man2/personality.2:32
53 #: build/C/man2/pivot_root.2:10 build/C/man2/process_vm_readv.2:29
54 #: build/C/man2/ptrace.2:44 build/C/man2/quotactl.2:27
55 #: build/C/man2/sendfile.2:19 build/C/man2/set_tid_address.2:25
56 #: build/C/man2/splice.2:26 build/C/man2/tee.2:26 build/C/man2/vm86.2:26
57 #: build/C/man2/vmsplice.2:26
58 #, no-wrap
59 msgid "Linux Programmer's Manual"
60 msgstr "Linux Programmer's Manual"
61
62 #. type: SH
63 #: build/C/man2/arch_prctl.2:26 build/C/man2/futex.2:54
64 #: build/C/man2/get_robust_list.2:30 build/C/man2/getunwind.2:28
65 #: build/C/man2/kexec_load.2:27 build/C/man2/lookup_dcookie.2:28
66 #: build/C/man2/modify_ldt.2:25 build/C/man2/nfsservctl.2:9
67 #: build/C/man2/outb.2:27 build/C/man2/pciconfig_read.2:9
68 #: build/C/man2/perf_event_open.2:28 build/C/man2/perfmonctl.2:28
69 #: build/C/man2/personality.2:33 build/C/man2/pivot_root.2:11
70 #: build/C/man2/process_vm_readv.2:30 build/C/man2/ptrace.2:45
71 #: build/C/man2/quotactl.2:28 build/C/man2/sendfile.2:20
72 #: build/C/man2/set_tid_address.2:26 build/C/man2/splice.2:27
73 #: build/C/man2/tee.2:27 build/C/man2/vm86.2:27 build/C/man2/vmsplice.2:27
74 #, no-wrap
75 msgid "NAME"
76 msgstr "名前"
77
78 #. type: Plain text
79 #: build/C/man2/arch_prctl.2:28
80 msgid "arch_prctl - set architecture-specific thread state"
81 msgstr "arch_prctl - アーキテクチャ固有のスレッド状態を設定する"
82
83 #. type: SH
84 #: build/C/man2/arch_prctl.2:28 build/C/man2/futex.2:56
85 #: build/C/man2/get_robust_list.2:32 build/C/man2/getunwind.2:30
86 #: build/C/man2/kexec_load.2:29 build/C/man2/lookup_dcookie.2:30
87 #: build/C/man2/modify_ldt.2:27 build/C/man2/nfsservctl.2:11
88 #: build/C/man2/outb.2:31 build/C/man2/pciconfig_read.2:11
89 #: build/C/man2/perf_event_open.2:30 build/C/man2/perfmonctl.2:30
90 #: build/C/man2/personality.2:35 build/C/man2/pivot_root.2:13
91 #: build/C/man2/process_vm_readv.2:32 build/C/man2/ptrace.2:47
92 #: build/C/man2/quotactl.2:30 build/C/man2/sendfile.2:22
93 #: build/C/man2/set_tid_address.2:28 build/C/man2/splice.2:29
94 #: build/C/man2/tee.2:29 build/C/man2/vm86.2:29 build/C/man2/vmsplice.2:29
95 #, no-wrap
96 msgid "SYNOPSIS"
97 msgstr "書式"
98
99 #. type: Plain text
100 #: build/C/man2/arch_prctl.2:31
101 #, no-wrap
102 msgid "B<#include E<lt>asm/prctl.hE<gt>>\n"
103 msgstr "B<#include E<lt>asm/prctl.hE<gt>>\n"
104
105 #. type: Plain text
106 #: build/C/man2/arch_prctl.2:33
107 #, no-wrap
108 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
109 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
110
111 #. type: Plain text
112 #: build/C/man2/arch_prctl.2:36
113 #, no-wrap
114 msgid ""
115 "B<int arch_prctl(int >I<code>B<, unsigned long >I<addr>B<);>\n"
116 "B<int arch_prctl(int >I<code>B<, unsigned long *>I<addr>B<);>\n"
117 msgstr "B<int arch_prctl(int >I<code>B<, unsigned long *>I<addr>B<);>\n"
118
119 #.  Return type was long before glibc 2.7
120 #. type: SH
121 #: build/C/man2/arch_prctl.2:37 build/C/man2/futex.2:68
122 #: build/C/man2/get_robust_list.2:44 build/C/man2/getunwind.2:40
123 #: build/C/man2/kexec_load.2:39 build/C/man2/lookup_dcookie.2:32
124 #: build/C/man2/modify_ldt.2:36 build/C/man2/nfsservctl.2:18
125 #: build/C/man2/outb.2:62 build/C/man2/pciconfig_read.2:22
126 #: build/C/man2/perf_event_open.2:42 build/C/man2/perfmonctl.2:39
127 #: build/C/man2/personality.2:39 build/C/man2/pivot_root.2:18
128 #: build/C/man2/process_vm_readv.2:50 build/C/man2/ptrace.2:54
129 #: build/C/man2/quotactl.2:38 build/C/man2/sendfile.2:47
130 #: build/C/man2/set_tid_address.2:34 build/C/man2/splice.2:39
131 #: build/C/man2/tee.2:38 build/C/man2/vm86.2:35 build/C/man2/vmsplice.2:39
132 #, no-wrap
133 msgid "DESCRIPTION"
134 msgstr "説明"
135
136 #. type: Plain text
137 #: build/C/man2/arch_prctl.2:52
138 msgid ""
139 "The B<arch_prctl>()  function sets architecture-specific process or thread "
140 "state.  I<code> selects a subfunction and passes argument I<addr> to it; "
141 "I<addr> is interpreted as either an I<unsigned long> for the \"set\" "
142 "operations, or as an I<unsigned long\\ *>, for the \"get\" operations."
143 msgstr ""
144 "B<arch_prctl>()  関数はアーキテクチャ固有のプロセス状態またはスレッド状態を設"
145 "定する。 I<code> は副機能を選択し、引き数 I<addr> を副機能に渡す。 I<addr> "
146 "は、\"set\" 操作では I<unsigned long> として、\"get\" 操作では I<unsigned "
147 "long\\ *> として解釈される。"
148
149 #. type: Plain text
150 #: build/C/man2/arch_prctl.2:54
151 msgid "Subfunctions for x86-64 are:"
152 msgstr "x86-64 の副機能は以下の通り:"
153
154 #. type: TP
155 #: build/C/man2/arch_prctl.2:54
156 #, no-wrap
157 msgid "B<ARCH_SET_FS>"
158 msgstr "B<ARCH_SET_FS>"
159
160 #. type: Plain text
161 #: build/C/man2/arch_prctl.2:60
162 msgid "Set the 64-bit base for the I<FS> register to I<addr>."
163 msgstr "I<FS> レジスタの 64 ビットベースを I<addr> に設定する。"
164
165 #. type: TP
166 #: build/C/man2/arch_prctl.2:60
167 #, no-wrap
168 msgid "B<ARCH_GET_FS>"
169 msgstr "B<ARCH_GET_FS>"
170
171 #. type: Plain text
172 #: build/C/man2/arch_prctl.2:68
173 msgid ""
174 "Return the 64-bit base value for the I<FS> register of the current thread in "
175 "the I<unsigned long> pointed to by I<addr>."
176 msgstr ""
177 "現在のスレッドの I<FS> レジスタの 64 ビットベース値を、 I<addr> が指す "
178 "I<unsigned long> の領域に格納する。"
179
180 #. type: TP
181 #: build/C/man2/arch_prctl.2:68
182 #, no-wrap
183 msgid "B<ARCH_SET_GS>"
184 msgstr "B<ARCH_SET_GS>"
185
186 #. type: Plain text
187 #: build/C/man2/arch_prctl.2:74
188 msgid "Set the 64-bit base for the I<GS> register to I<addr>."
189 msgstr "I<GS> レジスタの 64 ビットベースを I<addr> に設定する。"
190
191 #. type: TP
192 #: build/C/man2/arch_prctl.2:74
193 #, no-wrap
194 msgid "B<ARCH_GET_GS>"
195 msgstr "B<ARCH_GET_GS>"
196
197 #. type: Plain text
198 #: build/C/man2/arch_prctl.2:82
199 msgid ""
200 "Return the 64-bit base value for the I<GS> register of the current thread in "
201 "the I<unsigned long> pointed to by I<addr>."
202 msgstr ""
203 "現在のスレッドの I<GS> レジスタの 64 ビットベース値を、 I<addr> が指す "
204 "I<unsigned long> の領域に格納する。"
205
206 #. type: SH
207 #: build/C/man2/arch_prctl.2:82 build/C/man2/futex.2:214
208 #: build/C/man2/get_robust_list.2:77 build/C/man2/getunwind.2:81
209 #: build/C/man2/kexec_load.2:114 build/C/man2/lookup_dcookie.2:43
210 #: build/C/man2/modify_ldt.2:98 build/C/man2/nfsservctl.2:53
211 #: build/C/man2/pciconfig_read.2:50 build/C/man2/perf_event_open.2:2116
212 #: build/C/man2/perfmonctl.2:190 build/C/man2/personality.2:57
213 #: build/C/man2/pivot_root.2:101 build/C/man2/process_vm_readv.2:209
214 #: build/C/man2/ptrace.2:1780 build/C/man2/quotactl.2:419
215 #: build/C/man2/sendfile.2:108 build/C/man2/set_tid_address.2:88
216 #: build/C/man2/splice.2:127 build/C/man2/tee.2:85 build/C/man2/vm86.2:54
217 #: build/C/man2/vmsplice.2:113
218 #, no-wrap
219 msgid "RETURN VALUE"
220 msgstr "返り値"
221
222 #. type: Plain text
223 #: build/C/man2/arch_prctl.2:88
224 msgid ""
225 "On success, B<arch_prctl>()  returns 0; on error, -1 is returned, and "
226 "I<errno> is set to indicate the error."
227 msgstr ""
228 "成功すると、 B<arch_prctl>()  は 0 を返す。エラーの場合、-1 を返し、 "
229 "I<errno> をエラーを示す値に設定する。"
230
231 #. type: SH
232 #: build/C/man2/arch_prctl.2:88 build/C/man2/futex.2:239
233 #: build/C/man2/get_robust_list.2:84 build/C/man2/getunwind.2:88
234 #: build/C/man2/kexec_load.2:121 build/C/man2/lookup_dcookie.2:50
235 #: build/C/man2/modify_ldt.2:108 build/C/man2/pciconfig_read.2:77
236 #: build/C/man2/perf_event_open.2:2122 build/C/man2/personality.2:64
237 #: build/C/man2/pivot_root.2:105 build/C/man2/process_vm_readv.2:229
238 #: build/C/man2/ptrace.2:1801 build/C/man2/quotactl.2:427
239 #: build/C/man2/sendfile.2:115 build/C/man2/set_tid_address.2:91
240 #: build/C/man2/splice.2:142 build/C/man2/tee.2:100 build/C/man2/vm86.2:59
241 #: build/C/man2/vmsplice.2:122
242 #, no-wrap
243 msgid "ERRORS"
244 msgstr "エラー"
245
246 #. type: TP
247 #: build/C/man2/arch_prctl.2:89 build/C/man2/futex.2:254
248 #: build/C/man2/get_robust_list.2:111 build/C/man2/lookup_dcookie.2:51
249 #: build/C/man2/modify_ldt.2:109 build/C/man2/process_vm_readv.2:251
250 #: build/C/man2/process_vm_readv.2:256 build/C/man2/ptrace.2:1805
251 #: build/C/man2/quotactl.2:428 build/C/man2/sendfile.2:125
252 #: build/C/man2/vm86.2:60
253 #, no-wrap
254 msgid "B<EFAULT>"
255 msgstr "B<EFAULT>"
256
257 #. type: Plain text
258 #: build/C/man2/arch_prctl.2:93
259 msgid ""
260 "I<addr> points to an unmapped address or is outside the process address "
261 "space."
262 msgstr ""
263 "I<addr> がアンマップされたアドレスを指しているか、プロセスのアドレス空間の外"
264 "にある。"
265
266 #. type: TP
267 #: build/C/man2/arch_prctl.2:93 build/C/man2/futex.2:266
268 #: build/C/man2/get_robust_list.2:88 build/C/man2/kexec_load.2:126
269 #: build/C/man2/lookup_dcookie.2:54 build/C/man2/modify_ldt.2:113
270 #: build/C/man2/pciconfig_read.2:78 build/C/man2/perf_event_open.2:2123
271 #: build/C/man2/personality.2:65 build/C/man2/pivot_root.2:114
272 #: build/C/man2/process_vm_readv.2:230 build/C/man2/process_vm_readv.2:241
273 #: build/C/man2/process_vm_readv.2:245 build/C/man2/ptrace.2:1816
274 #: build/C/man2/quotactl.2:434 build/C/man2/quotactl.2:501
275 #: build/C/man2/sendfile.2:128 build/C/man2/splice.2:147
276 #: build/C/man2/tee.2:101 build/C/man2/vmsplice.2:127
277 #, no-wrap
278 msgid "B<EINVAL>"
279 msgstr "B<EINVAL>"
280
281 #. type: Plain text
282 #: build/C/man2/arch_prctl.2:97
283 msgid "I<code> is not a valid subcommand."
284 msgstr "I<code> が有効なサブコマンドでない。"
285
286 #. type: TP
287 #: build/C/man2/arch_prctl.2:97 build/C/man2/get_robust_list.2:98
288 #: build/C/man2/kexec_load.2:133 build/C/man2/lookup_dcookie.2:65
289 #: build/C/man2/pciconfig_read.2:105 build/C/man2/pivot_root.2:120
290 #: build/C/man2/process_vm_readv.2:267 build/C/man2/ptrace.2:1826
291 #: build/C/man2/quotactl.2:456 build/C/man2/vm86.2:68
292 #, no-wrap
293 msgid "B<EPERM>"
294 msgstr "B<EPERM>"
295
296 #.  .SH AUTHOR
297 #.  Man page written by Andi Kleen.
298 #. type: Plain text
299 #: build/C/man2/arch_prctl.2:103
300 msgid "I<addr> is outside the process address space."
301 msgstr "I<addr> がプロセスのアドレス空間の外にある。"
302
303 #. type: SH
304 #: build/C/man2/arch_prctl.2:103 build/C/man2/futex.2:301
305 #: build/C/man2/getunwind.2:96 build/C/man2/kexec_load.2:142
306 #: build/C/man2/lookup_dcookie.2:78 build/C/man2/modify_ldt.2:130
307 #: build/C/man2/nfsservctl.2:58 build/C/man2/outb.2:87
308 #: build/C/man2/pciconfig_read.2:112 build/C/man2/perf_event_open.2:2141
309 #: build/C/man2/perfmonctl.2:199 build/C/man2/personality.2:68
310 #: build/C/man2/pivot_root.2:128 build/C/man2/process_vm_readv.2:279
311 #: build/C/man2/ptrace.2:1844 build/C/man2/sendfile.2:148
312 #: build/C/man2/set_tid_address.2:97 build/C/man2/splice.2:170
313 #: build/C/man2/tee.2:119 build/C/man2/vm86.2:73 build/C/man2/vmsplice.2:143
314 #, no-wrap
315 msgid "CONFORMING TO"
316 msgstr "準拠"
317
318 #. type: Plain text
319 #: build/C/man2/arch_prctl.2:107
320 msgid ""
321 "B<arch_prctl>()  is a Linux/x86-64 extension and should not be used in "
322 "programs intended to be portable."
323 msgstr ""
324 "B<arch_prctl>()  は Linux/x86-64 拡張であり、移植性を意図したプログラムでは使"
325 "うべきでない。"
326
327 #. type: SH
328 #: build/C/man2/arch_prctl.2:107 build/C/man2/futex.2:303
329 #: build/C/man2/get_robust_list.2:119 build/C/man2/getunwind.2:99
330 #: build/C/man2/kexec_load.2:144 build/C/man2/lookup_dcookie.2:81
331 #: build/C/man2/modify_ldt.2:133 build/C/man2/perf_event_open.2:2146
332 #: build/C/man2/perfmonctl.2:202 build/C/man2/pivot_root.2:131
333 #: build/C/man2/process_vm_readv.2:281 build/C/man2/ptrace.2:1846
334 #: build/C/man2/sendfile.2:155 build/C/man2/splice.2:172
335 #: build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145
336 #, no-wrap
337 msgid "NOTES"
338 msgstr "注意"
339
340 #. type: Plain text
341 #: build/C/man2/arch_prctl.2:110
342 msgid ""
343 "B<arch_prctl>()  is supported only on Linux/x86-64 for 64-bit programs "
344 "currently."
345 msgstr ""
346 "B<arch_prctl>()  は現在のところ Linux/x86-64 上の 64 ビットプログラムでのみサ"
347 "ポートされている。"
348
349 #. type: Plain text
350 #: build/C/man2/arch_prctl.2:112
351 msgid "The 64-bit base changes when a new 32-bit segment selector is loaded."
352 msgstr ""
353 "新しい 32 ビットセグメントセレクタがロードされた場合、 64 ビットベースは変更"
354 "される。"
355
356 #. type: Plain text
357 #: build/C/man2/arch_prctl.2:115
358 msgid "B<ARCH_SET_GS> is disabled in some kernels."
359 msgstr "B<ARCH_SET_GS> が無効にされているカーネルもある。"
360
361 #. type: Plain text
362 #: build/C/man2/arch_prctl.2:130
363 msgid ""
364 "Context switches for 64-bit segment bases are rather expensive.  It may be a "
365 "faster alternative to set a 32-bit base using a segment selector by setting "
366 "up an LDT with B<modify_ldt>(2)  or using the B<set_thread_area>(2)  system "
367 "call in kernel 2.5 or later.  B<arch_prctl>()  is needed only when you want "
368 "to set bases that are larger than 4GB.  Memory in the first 2GB of address "
369 "space can be allocated by using B<mmap>(2)  with the B<MAP_32BIT> flag."
370 msgstr ""
371 "64 ビットセグメントベースのコンテキストスイッチは、やや高価である。 LDT を "
372 "B<modify_ldt>(2)  で設定してセグメントセレクタを使うか、 (カーネル 2.5 以降"
373 "の)  B<set_thread_area>(2)  システムコールを使うことにより、 32 ビットベース"
374 "を設定するという高速な代替手段もある。 4GB より大きなベースを設定したい場合に"
375 "のみ、 B<arch_prctl>()  が必要である。 アドレス空間の最初の 2GB にあるメモリ"
376 "は、 B<mmap>(2)  に B<MAP_32BIT> フラグを指定して割り当てることができる。"
377
378 #. type: Plain text
379 #: build/C/man2/arch_prctl.2:135
380 msgid ""
381 "As of version 2.7, glibc provides no prototype for B<arch_prctl>().  You "
382 "have to declare it yourself for now.  This may be fixed in future glibc "
383 "versions."
384 msgstr ""
385 "バージョン 2.7 時点では、glibc には B<arch_prctl>()  のプロトタイプがない。 "
386 "今のところユーザは自分自身で宣言する必要がある。 これは将来の glibc のバー"
387 "ジョンで修正されるかもしれない。"
388
389 #. type: Plain text
390 #: build/C/man2/arch_prctl.2:138
391 msgid "I<FS> may be already used by the threading library."
392 msgstr "I<FS> はスレッドライブラリで既に使われているかもしれない。"
393
394 #. type: SH
395 #: build/C/man2/arch_prctl.2:138 build/C/man2/futex.2:317
396 #: build/C/man2/get_robust_list.2:128 build/C/man2/getunwind.2:111
397 #: build/C/man2/kexec_load.2:159 build/C/man2/modify_ldt.2:136
398 #: build/C/man2/outb.2:96 build/C/man2/pciconfig_read.2:114
399 #: build/C/man2/perf_event_open.2:2266 build/C/man2/perfmonctl.2:205
400 #: build/C/man2/pivot_root.2:143 build/C/man2/process_vm_readv.2:331
401 #: build/C/man2/ptrace.2:2000 build/C/man2/quotactl.2:507
402 #: build/C/man2/sendfile.2:197 build/C/man2/set_tid_address.2:99
403 #: build/C/man2/splice.2:226 build/C/man2/tee.2:197
404 #: build/C/man2/vmsplice.2:154
405 #, no-wrap
406 msgid "SEE ALSO"
407 msgstr "関連項目"
408
409 #. type: Plain text
410 #: build/C/man2/arch_prctl.2:143
411 msgid "B<mmap>(2), B<modify_ldt>(2), B<prctl>(2), B<set_thread_area>(2)"
412 msgstr "B<mmap>(2), B<modify_ldt>(2), B<prctl>(2), B<set_thread_area>(2)"
413
414 #. type: Plain text
415 #: build/C/man2/arch_prctl.2:145
416 msgid "AMD X86-64 Programmer's manual"
417 msgstr "AMD X86-64 Programmer's manual"
418
419 #. type: SH
420 #: build/C/man2/arch_prctl.2:145 build/C/man2/futex.2:331
421 #: build/C/man2/get_robust_list.2:137 build/C/man2/getunwind.2:113
422 #: build/C/man2/kexec_load.2:162 build/C/man2/lookup_dcookie.2:88
423 #: build/C/man2/modify_ldt.2:138 build/C/man2/nfsservctl.2:60
424 #: build/C/man2/outb.2:99 build/C/man2/pciconfig_read.2:116
425 #: build/C/man2/perf_event_open.2:2272 build/C/man2/perfmonctl.2:209
426 #: build/C/man2/personality.2:72 build/C/man2/pivot_root.2:149
427 #: build/C/man2/process_vm_readv.2:334 build/C/man2/ptrace.2:2014
428 #: build/C/man2/quotactl.2:512 build/C/man2/sendfile.2:203
429 #: build/C/man2/set_tid_address.2:102 build/C/man2/splice.2:230
430 #: build/C/man2/tee.2:200 build/C/man2/vm86.2:76 build/C/man2/vmsplice.2:157
431 #, no-wrap
432 msgid "COLOPHON"
433 msgstr "この文書について"
434
435 #. type: Plain text
436 #: build/C/man2/arch_prctl.2:152 build/C/man2/futex.2:338
437 #: build/C/man2/get_robust_list.2:144 build/C/man2/getunwind.2:120
438 #: build/C/man2/kexec_load.2:169 build/C/man2/lookup_dcookie.2:95
439 #: build/C/man2/modify_ldt.2:145 build/C/man2/nfsservctl.2:67
440 #: build/C/man2/outb.2:106 build/C/man2/pciconfig_read.2:123
441 #: build/C/man2/perf_event_open.2:2279 build/C/man2/perfmonctl.2:216
442 #: build/C/man2/personality.2:79 build/C/man2/pivot_root.2:156
443 #: build/C/man2/process_vm_readv.2:341 build/C/man2/ptrace.2:2021
444 #: build/C/man2/quotactl.2:519 build/C/man2/sendfile.2:210
445 #: build/C/man2/set_tid_address.2:109 build/C/man2/splice.2:237
446 #: build/C/man2/tee.2:207 build/C/man2/vm86.2:83 build/C/man2/vmsplice.2:164
447 msgid ""
448 "This page is part of release 3.54 of the Linux I<man-pages> project.  A "
449 "description of the project, and information about reporting bugs, can be "
450 "found at \\%http://www.kernel.org/doc/man-pages/."
451 msgstr ""
452 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.54 の一部\n"
453 "である。プロジェクトの説明とバグ報告に関する情報は\n"
454 "http://www.kernel.org/doc/man-pages/ に書かれている。"
455
456 #. type: TH
457 #: build/C/man2/futex.2:53
458 #, no-wrap
459 msgid "FUTEX"
460 msgstr "FUTEX"
461
462 #. type: TH
463 #: build/C/man2/futex.2:53
464 #, fuzzy, no-wrap
465 #| msgid "2013-07-30"
466 msgid "2013-09-04"
467 msgstr "2013-07-30"
468
469 #. type: Plain text
470 #: build/C/man2/futex.2:56
471 msgid "futex - fast user-space locking"
472 msgstr "futex - 高速ユーザ空間ロック"
473
474 #. type: Plain text
475 #: build/C/man2/futex.2:61
476 #, no-wrap
477 msgid ""
478 "B<#include E<lt>linux/futex.hE<gt>>\n"
479 "B<#include E<lt>sys/time.hE<gt>>\n"
480 msgstr ""
481 "B<#include E<lt>linux/futex.hE<gt>>\n"
482 "B<#include E<lt>sys/time.hE<gt>>\n"
483
484 #. type: Plain text
485 #: build/C/man2/futex.2:64
486 #, no-wrap
487 msgid "B<int futex(int *>I<uaddr>B<, int >I<op>B<, int >I<val>B<, const struct timespec *>I<timeout>B<,>\n"
488 msgstr "B<int futex(int *>I<uaddr>B<, int >I<op>B<, int >I<val>B<, const struct timespec *>I<timeout>B<,>\n"
489
490 #.  int *? void *? u32 *?
491 #. type: Plain text
492 #: build/C/man2/futex.2:67
493 #, no-wrap
494 msgid "B<          int *>I<uaddr2>B<, int >I<val3>B<);>\n"
495 msgstr "B<          int *>I<uaddr2>B<, int >I<val3>B<);>\n"
496
497 #. type: Plain text
498 #: build/C/man2/futex.2:84
499 msgid ""
500 "The B<futex>()  system call provides a method for a program to wait for a "
501 "value at a given address to change, and a method to wake up anyone waiting "
502 "on a particular address (while the addresses for the same memory in separate "
503 "processes may not be equal, the kernel maps them internally so the same "
504 "memory mapped in different locations will correspond for B<futex>()  "
505 "calls).  This system call is typically used to implement the contended case "
506 "of a lock in shared memory, as described in B<futex>(7)."
507 msgstr ""
508 "B<futex>()  システムコールは、 指定したアドレスの値が変更されるのをプログラム"
509 "が待つ手段や 特定のアドレスに対して待機中のプロセスを wake (起床) させる手段"
510 "を提供する (プロセスが異なれば同じメモリに対するアドレスも同じではないかもし"
511 "れないが、 カーネルは異なる位置にマップされた同じメモリを B<futex>()  で使え"
512 "るよう内部でマップする)。 通常は、このシステムコールは B<futex>(7)  に書かれ"
513 "ているように、 共有メモリ中のロックが競合する場合の処理を実装するのに用いられ"
514 "る。"
515
516 #. type: Plain text
517 #: build/C/man2/futex.2:91
518 msgid ""
519 "When a B<futex>(7)  operation did not finish uncontended in user space, a "
520 "call needs to be made to the kernel to arbitrate.  Arbitration can either "
521 "mean putting the calling process to sleep or, conversely, waking a waiting "
522 "process."
523 msgstr ""
524 "B<futex>(7)  の操作がユーザ空間で競合なく完了しなかった場合、 カーネルに仲裁"
525 "させるためにシステムコールを呼ぶ必要がある。 仲裁というのは、呼び出しプロセス"
526 "を sleep (起床待ち) させたり、反対に 待ちプロセスを wake させたりすることを意"
527 "味する。"
528
529 #. type: Plain text
530 #: build/C/man2/futex.2:98
531 msgid ""
532 "Callers of this function are expected to adhere to the semantics as set out "
533 "in B<futex>(7).  As these semantics involve writing nonportable assembly "
534 "instructions, this in turn probably means that most users will in fact be "
535 "library authors and not general application developers."
536 msgstr ""
537 "この関数を呼び出すプロセスは B<futex>(7)  に記述されているセマンティクスに忠"
538 "実であることが要求される。 このセマンティクスには移植不可能なアセンブリ命令を"
539 "書くことが含まれる。 このことは言い換えると futex のユーザのほとんどは実際は"
540 "ライブラリの作者であり、 一般アプリケーションの開発者ではないということであ"
541 "る。"
542
543 #. type: Plain text
544 #: build/C/man2/futex.2:106
545 msgid ""
546 "The I<uaddr> argument needs to point to an aligned integer which stores the "
547 "counter.  The operation to execute is passed via the I<op> argument, along "
548 "with a value I<val>."
549 msgstr ""
550 "I<uaddr> 引き数は、カウンタを格納する、 アラインメントの揃った int 型変数を指"
551 "している必要がある。 実行する操作は I<op> 引き数を介して、値 I<val> とともに"
552 "渡される。"
553
554 #. type: Plain text
555 #: build/C/man2/futex.2:108
556 msgid "Five operations are currently defined:"
557 msgstr "現在のところ 5 つの操作が定義されている:"
558
559 #. type: TP
560 #: build/C/man2/futex.2:108 build/C/man2/futex.2:221
561 #, no-wrap
562 msgid "B<FUTEX_WAIT>"
563 msgstr "B<FUTEX_WAIT>"
564
565 #. type: Plain text
566 #: build/C/man2/futex.2:131
567 #, fuzzy
568 #| msgid ""
569 #| "This operation atomically verifies that the futex address I<uaddr> still "
570 #| "contains the value I<val>, and sleeps awaiting B<FUTEX_WAKE> on this "
571 #| "futex address.  If the I<timeout> argument is non-NULL, its contents "
572 #| "describe the minimum duration of the wait, which is infinite otherwise.  "
573 #| "The arguments I<uaddr2> and I<val3> are ignored."
574 msgid ""
575 "This operation atomically verifies that the futex address I<uaddr> still "
576 "contains the value I<val>, and sleeps awaiting B<FUTEX_WAKE> on this futex "
577 "address.  If the I<timeout> argument is non-NULL, its contents specify the "
578 "duration of the wait.  (This interval will be rounded up to the system clock "
579 "granularity, and kernel scheduling delays mean that the blocking interval "
580 "may overrun by a small amount.)  If I<timeout> is NULL, the call blocks "
581 "indefinitely.  The arguments I<uaddr2> and I<val3> are ignored."
582 msgstr ""
583 "この操作は futex アドレス I<uaddr> に指定された値 I<val> がまだ格納されている"
584 "かどうかを不可分操作で検証し、 sleep 状態で この futex アドレスに対して "
585 "B<FUTEX_WAKE> が実行されるのを待つ。 I<timeout> 引き数が NULL でない場合、そ"
586 "の内容は 待ち時間の最大値を表す。NULL の場合は無限大を表す。 引き数 "
587 "I<uaddr2> と I<val3> は無視される。"
588
589 #. type: Plain text
590 #: build/C/man2/futex.2:139
591 msgid ""
592 "For B<futex>(7), this call is executed if decrementing the count gave a "
593 "negative value (indicating contention), and will sleep until another process "
594 "releases the futex and executes the B<FUTEX_WAKE> operation."
595 msgstr ""
596 "B<futex>(7)  に照らし合わせると、この呼び出しは カウントのデクリメントで負の"
597 "値 (競合を表す) になった場合に実行され、 別のプロセスがその futex を解放し "
598 "B<FUTEX_WAKE> の操作を実行するまで sleep する。"
599
600 #. type: TP
601 #: build/C/man2/futex.2:139 build/C/man2/futex.2:227
602 #, no-wrap
603 msgid "B<FUTEX_WAKE>"
604 msgstr "B<FUTEX_WAKE>"
605
606 #. type: Plain text
607 #: build/C/man2/futex.2:150
608 msgid ""
609 "This operation wakes at most I<val> processes waiting on this futex address "
610 "(i.e., inside B<FUTEX_WAIT>).  The arguments I<timeout>, I<uaddr2> and "
611 "I<val3> are ignored."
612 msgstr ""
613 "この操作では指定した futex アドレスに対して待ち状態の (すなわち "
614 "B<FUTEX_WAIT> 中の) 最大 I<val> 個のプロセスを wake させる。 引き数 "
615 "I<timeout>, I<uaddr2>, I<val3> は無視される。"
616
617 #. type: Plain text
618 #: build/C/man2/futex.2:156
619 msgid ""
620 "For B<futex>(7), this is executed if incrementing the count showed that "
621 "there were waiters, once the futex value has been set to 1 (indicating that "
622 "it is available)."
623 msgstr ""
624 "B<futex>(4) に照らし合わせると、 この操作は カウントのインクリメントで待ちプ"
625 "ロセスがあると判明し、 futex 値が 1 に設定された (利用可能であることを表す) "
626 "場合に実行される。"
627
628 #. type: TP
629 #: build/C/man2/futex.2:156
630 #, no-wrap
631 msgid "B<FUTEX_FD> (present up to and including Linux 2.6.25)"
632 msgstr "B<FUTEX_FD> (Linux 2.6.25 以前)"
633
634 #.  , suitable for .BR poll (2).
635 #. type: Plain text
636 #: build/C/man2/futex.2:172
637 msgid ""
638 "To support asynchronous wakeups, this operation associates a file descriptor "
639 "with a futex.  If another process executes a B<FUTEX_WAKE>, the process will "
640 "receive the signal number that was passed in I<val>.  The calling process "
641 "must close the returned file descriptor after use.  The arguments "
642 "I<timeout>, I<uaddr2> and I<val3> are ignored."
643 msgstr ""
644 "非同期の wake に対応するため、この操作はファイルディスクリプタを futex に 関"
645 "連づける。 別のプロセスが B<FUTEX_WAKE> を実行すると、プロセスは I<val> で渡"
646 "されたシグナル番号のシグナルを受信する。 呼び出しプロセスは使用後、返された"
647 "ファイルディスクリプタを クローズしなければならない。 引き数 I<timeout>, "
648 "I<uaddr2>, I<val3> は無視される。"
649
650 #. type: Plain text
651 #: build/C/man2/futex.2:177
652 msgid ""
653 "To prevent race conditions, the caller should test if the futex has been "
654 "upped after B<FUTEX_FD> returns."
655 msgstr ""
656 "競合状態を防止するため、呼び出しプロセスは B<FUTEX_FD> が返ったあと futex が "
657 "up されたかどうかを確認しなければならない。"
658
659 #. type: Plain text
660 #: build/C/man2/futex.2:181
661 msgid ""
662 "Because it was inherently racy, B<FUTEX_FD> has been removed from Linux "
663 "2.6.26 onward."
664 msgstr ""
665 "B<FUTEX_FD> はもともと競合が起きやすかったため、 Linux 2.6.26 以降で削除され"
666 "ている。"
667
668 #. type: TP
669 #: build/C/man2/futex.2:181
670 #, no-wrap
671 msgid "B<FUTEX_REQUEUE> (since Linux 2.5.70)"
672 msgstr "B<FUTEX_REQUEUE> (Linux 2.5.70 以降)"
673
674 #. type: Plain text
675 #: build/C/man2/futex.2:196
676 msgid ""
677 "This operation was introduced in order to avoid a \"thundering herd\" effect "
678 "when B<FUTEX_WAKE> is used and all processes woken up need to acquire "
679 "another futex.  This call wakes up I<val> processes, and requeues all other "
680 "waiters on the futex at address I<uaddr2>.  The arguments I<timeout> and "
681 "I<val3> are ignored."
682 msgstr ""
683 "この操作は、 B<FUTEX_WAKE> が使われていて、かつ wake されている全てのプロセス"
684 "が 他の futex を取得する必要がある場合に、 「獣の群れの暴走 (thundering "
685 "herd)」効果を避けるために導入された。 この呼び出しは I<val> 個のプロセスを "
686 "wake し、アドレス I<uaddr2> で futex を待っている他の全てのプロセスを再度"
687 "キューにいれる。 引き数 I<timeout> と I<val3> は無視される。"
688
689 #. type: TP
690 #: build/C/man2/futex.2:196
691 #, no-wrap
692 msgid "B<FUTEX_CMP_REQUEUE> (since Linux 2.6.7)"
693 msgstr "B<FUTEX_CMP_REQUEUE> (Linux 2.6.7 以降)"
694
695 #. type: Plain text
696 #: build/C/man2/futex.2:214
697 msgid ""
698 "There was a race in the intended use of B<FUTEX_REQUEUE>, so "
699 "B<FUTEX_CMP_REQUEUE> was introduced.  This is similar to B<FUTEX_REQUEUE>, "
700 "but first checks whether the location I<uaddr> still contains the value "
701 "I<val3>.  If not, the operation fails with the error B<EAGAIN>.  The "
702 "argument I<timeout> is ignored."
703 msgstr ""
704 "故意に B<FUTEX_REQUEUE> を使う場合に競合が起こるため、 B<FUTEX_CMP_REQUEUE> "
705 "が導入された。これは B<FUTEX_REQUEUE> と似ているが、場所 I<uaddr> に値 "
706 "I<val3> がまだ保持されているかを最初にチェックする。 保持されていない場合、操"
707 "作はエラー B<EAGAIN> で失敗する。引き数 I<timeout> は無視される。"
708
709 #. type: Plain text
710 #: build/C/man2/futex.2:221
711 msgid ""
712 "In the event of an error, all operations return -1, and set I<errno> to "
713 "indicate the error.  The return value on success depends on the operation, "
714 "as described in the following list:"
715 msgstr ""
716 "エラーの場合、全ての操作で -1 が返り、 I<errno> がエラーの内容を示す値に設定"
717 "される。成功時の返り値は操作によって異なり、以下のリストに書かれている通りで"
718 "ある。"
719
720 #. type: Plain text
721 #: build/C/man2/futex.2:227
722 msgid ""
723 "Returns 0 if the process was woken by a B<FUTEX_WAKE> call.  See ERRORS for "
724 "the various possible error returns."
725 msgstr ""
726 "そのプロセスが B<FUTEX_WAKE> により wake された場合 0 を返す。発生する可能性"
727 "があるエラーについては「エラー」の節を参照。"
728
729 #. type: Plain text
730 #: build/C/man2/futex.2:230 build/C/man2/futex.2:236 build/C/man2/futex.2:239
731 msgid "Returns the number of processes woken up."
732 msgstr "wake したプロセスの数を返す。"
733
734 #. type: TP
735 #: build/C/man2/futex.2:230
736 #, no-wrap
737 msgid "B<FUTEX_FD>"
738 msgstr "B<FUTEX_FD>"
739
740 #. type: Plain text
741 #: build/C/man2/futex.2:233
742 msgid "Returns the new file descriptor associated with the futex."
743 msgstr "futex に関連づけられた新たなファイルディスクリプタを返す。"
744
745 #. type: TP
746 #: build/C/man2/futex.2:233
747 #, no-wrap
748 msgid "B<FUTEX_REQUEUE>"
749 msgstr "B<FUTEX_REQUEUE>"
750
751 #. type: TP
752 #: build/C/man2/futex.2:236
753 #, no-wrap
754 msgid "B<FUTEX_CMP_REQUEUE>"
755 msgstr "B<FUTEX_CMP_REQUEUE>"
756
757 #. type: TP
758 #: build/C/man2/futex.2:240 build/C/man2/quotactl.2:486
759 #, no-wrap
760 msgid "B<EACCES>"
761 msgstr "B<EACCES>"
762
763 #. type: Plain text
764 #: build/C/man2/futex.2:243
765 msgid "No read access to futex memory."
766 msgstr "futex メモリに読み込みアクセス権がなかった。"
767
768 #. type: TP
769 #: build/C/man2/futex.2:243 build/C/man2/sendfile.2:116
770 #, no-wrap
771 msgid "B<EAGAIN>"
772 msgstr "B<EAGAIN>"
773
774 #. type: Plain text
775 #: build/C/man2/futex.2:254
776 msgid ""
777 "B<FUTEX_CMP_REQUEUE> detected that the value pointed to by I<uaddr> is not "
778 "equal to the expected value I<val3>.  (This probably indicates a race; use "
779 "the safe B<FUTEX_WAKE> now.)"
780 msgstr ""
781 "B<FUTEX_CMP_REQUEUE> で、I<uaddr> が指す値が期待値 I<val3> と異なる状況が検出"
782 "された。 (これは競合を示しているかもしれない。この場合は安全な B<FUTEX_WAKE> "
783 "を使うこと。)"
784
785 #. type: Plain text
786 #: build/C/man2/futex.2:259
787 msgid "Error retrieving I<timeout> information from user space."
788 msgstr "ユーザ空間から I<timeout> の情報を取得する際にエラーが発生した。"
789
790 #. type: TP
791 #: build/C/man2/futex.2:259
792 #, no-wrap
793 msgid "B<EINTR>"
794 msgstr "B<EINTR>"
795
796 #. type: Plain text
797 #: build/C/man2/futex.2:266
798 msgid ""
799 "A B<FUTEX_WAIT> operation was interrupted by a signal (see B<signal>(7))  or "
800 "a spurious wakeup."
801 msgstr ""
802 "B<FUTEX_WAIT> 操作がシグナル (B<signal>(7) 参照) もしくは偽の wakeup により中"
803 "断された。"
804
805 #. type: Plain text
806 #: build/C/man2/futex.2:269
807 msgid "Invalid argument."
808 msgstr "無効な引き数。"
809
810 #. type: TP
811 #: build/C/man2/futex.2:269
812 #, no-wrap
813 msgid "B<ENFILE>"
814 msgstr "B<ENFILE>"
815
816 #. type: Plain text
817 #: build/C/man2/futex.2:272
818 msgid "The system limit on the total number of open files has been reached."
819 msgstr "オープンされているファイルの総数がシステムの制限に達した。"
820
821 #. type: TP
822 #: build/C/man2/futex.2:272 build/C/man2/modify_ldt.2:126
823 #: build/C/man2/pciconfig_read.2:93 build/C/man2/quotactl.2:447
824 #: build/C/man2/vm86.2:64
825 #, no-wrap
826 msgid "B<ENOSYS>"
827 msgstr "B<ENOSYS>"
828
829 #. type: Plain text
830 #: build/C/man2/futex.2:276
831 msgid "Invalid operation specified in I<op>."
832 msgstr "I<op> に無効な操作が指定された。"
833
834 #. type: TP
835 #: build/C/man2/futex.2:276
836 #, no-wrap
837 msgid "B<ETIMEDOUT>"
838 msgstr "B<ETIMEDOUT>"
839
840 #. type: Plain text
841 #: build/C/man2/futex.2:281
842 msgid "Timeout during the B<FUTEX_WAIT> operation."
843 msgstr "B<FUTEX_WAIT> 操作でタイムアウトが発生した。"
844
845 #. type: TP
846 #: build/C/man2/futex.2:281
847 #, no-wrap
848 msgid "B<EWOULDBLOCK>"
849 msgstr "B<EWOULDBLOCK>"
850
851 #. type: Plain text
852 #: build/C/man2/futex.2:291
853 msgid ""
854 "I<op> was B<FUTEX_WAIT> and the value pointed to by I<uaddr> was not equal "
855 "to the expected value I<val> at the time of the call."
856 msgstr ""
857 "I<op> が B<FUTEX_WAIT> で、その呼び出しにおいて I<uaddr> が指す値が期待値 "
858 "I<val> と異なっていた。"
859
860 #. type: SH
861 #: build/C/man2/futex.2:291 build/C/man2/get_robust_list.2:115
862 #: build/C/man2/getunwind.2:94 build/C/man2/kexec_load.2:138
863 #: build/C/man2/lookup_dcookie.2:73 build/C/man2/perfmonctl.2:196
864 #: build/C/man2/pivot_root.2:125 build/C/man2/process_vm_readv.2:276
865 #: build/C/man2/sendfile.2:142 build/C/man2/set_tid_address.2:94
866 #: build/C/man2/splice.2:165 build/C/man2/tee.2:114
867 #: build/C/man2/vmsplice.2:138
868 #, no-wrap
869 msgid "VERSIONS"
870 msgstr "バージョン"
871
872 #. type: Plain text
873 #: build/C/man2/futex.2:301
874 msgid ""
875 "Initial futex support was merged in Linux 2.5.7 but with different semantics "
876 "from what was described above.  A 4-argument system call with the semantics "
877 "described in this page was introduced in Linux 2.5.40.  In Linux 2.5.70 one "
878 "argument was added.  In Linux 2.6.7 a sixth argument was added\\(emmessy, "
879 "especially on the s390 architecture."
880 msgstr ""
881 "最初の futex 対応は Linux 2.5.7 で組み込まれたが、 上記のセマンティクスとは異"
882 "なる。 4 つの引き数のここに書かれているセマンティクスを持つ システムコール"
883 "は、Linux 2.5.40 で導入された。 Linux 2.5.70 では 1 つの引き数が追加された。 "
884 "Linux 2.6.7 では 6 番目の引き数が追加された。 これは汚く、s390 アーキテクチャ"
885 "上の特別のものである。"
886
887 #. type: Plain text
888 #: build/C/man2/futex.2:303 build/C/man2/kexec_load.2:144
889 #: build/C/man2/set_tid_address.2:99 build/C/man2/splice.2:172
890 #: build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145
891 msgid "This system call is Linux-specific."
892 msgstr "このシステムコールは Linux 固有である。"
893
894 #.  .SH "AUTHORS"
895 #.  .PP
896 #.  Futexes were designed and worked on by
897 #.  Hubertus Franke (IBM Thomas J. Watson Research Center),
898 #.  Matthew Kirkwood, Ingo Molnar (Red Hat)
899 #.  and Rusty Russell (IBM Linux Technology Center).
900 #.  This page written by bert hubert.
901 #. type: Plain text
902 #: build/C/man2/futex.2:317
903 msgid ""
904 "To reiterate, bare futexes are not intended as an easy-to-use abstraction "
905 "for end-users.  (There is no wrapper function for this system call in "
906 "glibc.)  Implementors are expected to be assembly literate and to have read "
907 "the sources of the futex user-space library referenced below."
908 msgstr ""
909 "繰り返すが、裸の futex はエンドユーザが容易に使うことのできる概念として 意図"
910 "されたものではない (glibc にはこのシステムコールに対するラッパー関数はな"
911 "い)。 実装者は、アセンブリ言語に慣れており、以下に挙げる futex ユーザ空間ライ"
912 "ブラリの ソースを読み終えていることが要求される。"
913
914 #. type: Plain text
915 #: build/C/man2/futex.2:320
916 msgid "B<restart_syscall>(2), B<futex>(7)"
917 msgstr "B<restart_syscall>(2), B<futex>(7)"
918
919 #. type: Plain text
920 #: build/C/man2/futex.2:323
921 msgid ""
922 "I<Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux> (proceedings "
923 "of the Ottawa Linux Symposium 2002), online at"
924 msgstr ""
925 "I<Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux> (proceedings "
926 "of the Ottawa Linux Symposium 2002), online at"
927
928 #. type: Plain text
929 #: build/C/man2/futex.2:326
930 msgid ""
931 "E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> "
932 "E<.UE>"
933 msgstr ""
934 "E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> "
935 "E<.UE>"
936
937 #. type: Plain text
938 #: build/C/man2/futex.2:328
939 msgid "Futex example library, futex-*.tar.bz2 at"
940 msgstr "futex の使用例ライブラリ, futex-*.tar.bz2"
941
942 #. type: Plain text
943 #: build/C/man2/futex.2:331
944 msgid ""
945 "E<.UR ftp://ftp.nl.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> "
946 "E<.UE>"
947 msgstr ""
948 "E<.UR ftp://ftp.nl.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> "
949 "E<.UE>"
950
951 #. type: TH
952 #: build/C/man2/get_robust_list.2:29
953 #, no-wrap
954 msgid "GET_ROBUST_LIST"
955 msgstr "GET_ROBUST_LIST"
956
957 #. type: TH
958 #: build/C/man2/get_robust_list.2:29 build/C/man2/kexec_load.2:26
959 #: build/C/man2/modify_ldt.2:24 build/C/man2/pivot_root.2:10
960 #, no-wrap
961 msgid "2012-07-13"
962 msgstr "2012-07-13"
963
964 #. type: TH
965 #: build/C/man2/get_robust_list.2:29
966 #, no-wrap
967 msgid "Linux System Calls"
968 msgstr ""
969
970 #. type: Plain text
971 #: build/C/man2/get_robust_list.2:32
972 msgid "get_robust_list, set_robust_list - get/set list of robust futexes"
973 msgstr ""
974
975 #. type: Plain text
976 #: build/C/man2/get_robust_list.2:36
977 #, no-wrap
978 msgid ""
979 "B<#include E<lt>linux/futex.hE<gt>>\n"
980 "B<#include E<lt>syscall.hE<gt>>\n"
981 msgstr ""
982 "B<#include E<lt>linux/futex.hE<gt>>\n"
983 "B<#include E<lt>syscall.hE<gt>>\n"
984
985 #. type: Plain text
986 #: build/C/man2/get_robust_list.2:40
987 #, no-wrap
988 msgid ""
989 "B<long get_robust_list(int >I<pid>B<, struct robust_list_head **>I<head_ptr>B<,>\n"
990 "B<\t\t\t  size_t *>I<len_ptr>B<);>\n"
991 "B<long set_robust_list(struct robust_list_head *>I<head>B<, size_t >I<len>B<);>\n"
992 msgstr ""
993
994 #. type: Plain text
995 #: build/C/man2/get_robust_list.2:44
996 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
997 msgstr ""
998 "I<注意>: これらのシステムコールには glibc ラッパー関数は存在しない。 「注意」"
999 "の節を参照。"
1000
1001 #. type: Plain text
1002 #: build/C/man2/get_robust_list.2:49
1003 msgid ""
1004 "The robust futex implementation needs to maintain per-thread lists of robust "
1005 "futexes which are unlocked when the thread exits.  These lists are managed "
1006 "in user space; the kernel is notified about only the location of the head of "
1007 "the list."
1008 msgstr ""
1009
1010 #. type: Plain text
1011 #: build/C/man2/get_robust_list.2:65
1012 msgid ""
1013 "The B<get_robust_list>()  system call returns the head of the robust futex "
1014 "list of the thread whose thread ID is specified in I<pid>.  If I<pid> is 0, "
1015 "the head of the list for the calling thread is returned.  The list head is "
1016 "stored in the location pointed to by I<head_ptr>.  The size of the object "
1017 "pointed to by I<**head_ptr> is stored in I<len_ptr>."
1018 msgstr ""
1019
1020 #. type: Plain text
1021 #: build/C/man2/get_robust_list.2:77
1022 msgid ""
1023 "The B<set_robust_list>()  system call requests the kernel to record the head "
1024 "of the list of robust futexes owned by the calling thread.  The I<head> "
1025 "argument is the list head to record.  The I<len> argument should be I<sizeof"
1026 "(*head)>."
1027 msgstr ""
1028
1029 #. type: Plain text
1030 #: build/C/man2/get_robust_list.2:84
1031 msgid ""
1032 "The B<set_robust_list>()  and B<get_robust_list>()  system calls return zero "
1033 "when the operation is successful, an error code otherwise."
1034 msgstr ""
1035
1036 #. type: Plain text
1037 #: build/C/man2/get_robust_list.2:88
1038 msgid ""
1039 "The B<set_robust_list>()  system call can fail with the following error:"
1040 msgstr ""
1041
1042 #. type: Plain text
1043 #: build/C/man2/get_robust_list.2:94
1044 msgid ""
1045 "I<len> does not match the size of structure B<struct robust_list_head> "
1046 "expected by kernel."
1047 msgstr ""
1048
1049 #. type: Plain text
1050 #: build/C/man2/get_robust_list.2:98
1051 msgid ""
1052 "The B<get_robust_list>()  system call can fail with the following errors:"
1053 msgstr ""
1054
1055 #. type: Plain text
1056 #: build/C/man2/get_robust_list.2:106
1057 msgid ""
1058 "The calling process does not have permission to see the robust futex list of "
1059 "the thread with the thread ID I<pid>, and does not have the "
1060 "B<CAP_SYS_PTRACE> capability."
1061 msgstr ""
1062
1063 #. type: TP
1064 #: build/C/man2/get_robust_list.2:106 build/C/man2/process_vm_readv.2:271
1065 #: build/C/man2/ptrace.2:1839 build/C/man2/quotactl.2:461
1066 #: build/C/man2/quotactl.2:504
1067 #, no-wrap
1068 msgid "B<ESRCH>"
1069 msgstr "B<ESRCH>"
1070
1071 #. type: Plain text
1072 #: build/C/man2/get_robust_list.2:111
1073 msgid "No thread with the thread ID I<pid> could be found."
1074 msgstr ""
1075
1076 #. type: Plain text
1077 #: build/C/man2/get_robust_list.2:115
1078 msgid ""
1079 "The head of the robust futex list can't be stored at the location I<head>."
1080 msgstr ""
1081
1082 #. type: Plain text
1083 #: build/C/man2/get_robust_list.2:119
1084 msgid ""
1085 "These system calls were added in Linux 2.6.17.  No library support is "
1086 "provided; use B<syscall>(2)."
1087 msgstr ""
1088 "これらのシステムコールは Linux 2.6.17 で追加された。ライブラリによる\n"
1089 "サポートは提供されていない。 B<syscall>(2) を使うこと。"
1090
1091 #. type: Plain text
1092 #: build/C/man2/get_robust_list.2:124
1093 msgid ""
1094 "These system calls are not needed by normal applications.  No support for "
1095 "them is provided in glibc.  In the unlikely event that you want to call them "
1096 "directly, use B<syscall>(2)."
1097 msgstr ""
1098 "通常のアプリケーションでは、これらのシステムコールは必要ではない。 glibc によ"
1099 "るサポートは提供されていない。おそらくないと思うが、このシステムコールを直接"
1100 "呼び出したい場合は B<syscall>(2) を使うこと。"
1101
1102 #. type: Plain text
1103 #: build/C/man2/get_robust_list.2:128
1104 msgid ""
1105 "A thread can have only one robust futex list; therefore applications that "
1106 "wish to use this functionality should use the robust mutexes provided by "
1107 "glibc."
1108 msgstr ""
1109
1110 #.  .BR pthread_mutexattr_setrobust_np (3)
1111 #. type: Plain text
1112 #: build/C/man2/get_robust_list.2:131
1113 msgid "B<futex>(2)"
1114 msgstr "B<futex>(2)"
1115
1116 #.  http://lwn.net/Articles/172149/
1117 #. type: Plain text
1118 #: build/C/man2/get_robust_list.2:137
1119 msgid ""
1120 "I<Documentation/robust-futexes.txt> and I<Documentation/robust-futex-ABI."
1121 "txt> in the Linux kernel source tree"
1122 msgstr ""
1123
1124 #. type: TH
1125 #: build/C/man2/getunwind.2:27
1126 #, no-wrap
1127 msgid "GETUNWIND"
1128 msgstr ""
1129
1130 #. type: TH
1131 #: build/C/man2/getunwind.2:27 build/C/man2/perfmonctl.2:27
1132 #, no-wrap
1133 msgid "2013-02-13"
1134 msgstr "2013-02-13"
1135
1136 #. type: Plain text
1137 #: build/C/man2/getunwind.2:30
1138 msgid "getunwind - copy the unwind data to caller's buffer"
1139 msgstr ""
1140
1141 #. type: Plain text
1142 #: build/C/man2/getunwind.2:34
1143 #, no-wrap
1144 msgid ""
1145 "B<#include E<lt>syscall.hE<gt>>\n"
1146 "B<#include E<lt>linux/unwind.hE<gt>>\n"
1147 msgstr ""
1148 "B<#include E<lt>syscall.hE<gt>>\n"
1149 "B<#include E<lt>linux/unwind.hE<gt>>\n"
1150
1151 #. type: Plain text
1152 #: build/C/man2/getunwind.2:36
1153 #, no-wrap
1154 msgid "B<long getunwind(void >I<*buf>B<, size_t >I<buf_size>B<);>\n"
1155 msgstr ""
1156
1157 #. type: Plain text
1158 #: build/C/man2/getunwind.2:40 build/C/man2/kexec_load.2:39
1159 #: build/C/man2/modify_ldt.2:36 build/C/man2/perf_event_open.2:42
1160 #: build/C/man2/perfmonctl.2:39 build/C/man2/pivot_root.2:18
1161 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
1162 msgstr ""
1163 "I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
1164 "を参照。"
1165
1166 #. type: Plain text
1167 #: build/C/man2/getunwind.2:42
1168 msgid "I<Note: this function is obsolete.>"
1169 msgstr ""
1170
1171 #. type: Plain text
1172 #: build/C/man2/getunwind.2:52
1173 msgid ""
1174 "The IA-64-specific B<getunwind>()  system call copies the kernel's call "
1175 "frame unwind data into the buffer pointed to by I<buf> and returns the size "
1176 "of the unwind data; this data describes the gate page (kernel code that is "
1177 "mapped into user space)."
1178 msgstr ""
1179
1180 #. type: Plain text
1181 #: build/C/man2/getunwind.2:64
1182 msgid ""
1183 "The size of the buffer I<buf> is specified in I<buf_size>.  The data is "
1184 "copied only if I<buf_size> is greater than or equal to the size of the "
1185 "unwind data and I<buf> is not NULL; otherwise, no data is copied, and the "
1186 "call succeeds, returning the size that would be needed to store the unwind "
1187 "data."
1188 msgstr ""
1189
1190 #. type: Plain text
1191 #: build/C/man2/getunwind.2:68
1192 msgid ""
1193 "The first part of the unwind data contains an unwind table.  The rest "
1194 "contains the associated unwind information, in no particular order.  The "
1195 "unwind table contains entries of the following form:"
1196 msgstr ""
1197
1198 #. type: Plain text
1199 #: build/C/man2/getunwind.2:73
1200 #, no-wrap
1201 msgid ""
1202 "\tu64 start;      (64-bit address of start of function)\n"
1203 "\tu64 end;        (64-bit address of end of function)\n"
1204 "\tu64 info;       (BUF-relative offset to unwind info)\n"
1205 msgstr ""
1206
1207 #. type: Plain text
1208 #: build/C/man2/getunwind.2:81
1209 msgid ""
1210 "An entry whose I<start> value is zero indicates the end of the table.  For "
1211 "more information about the format, see the I<IA-64 Software Conventions and "
1212 "Runtime Architecture> manual."
1213 msgstr ""
1214
1215 #. type: Plain text
1216 #: build/C/man2/getunwind.2:88
1217 msgid ""
1218 "On success, B<getunwind>()  returns the size of unwind table.  On error, -1 "
1219 "is returned and I<errno> is set to indicate the error."
1220 msgstr ""
1221
1222 #. type: Plain text
1223 #: build/C/man2/getunwind.2:94
1224 msgid ""
1225 "B<getunwind>()  fails with the error B<EFAULT> if the unwind info can't be "
1226 "stored in the space specified by I<buf>."
1227 msgstr ""
1228
1229 #. type: Plain text
1230 #: build/C/man2/getunwind.2:96
1231 msgid "This system call is available since Linux 2.4."
1232 msgstr ""
1233
1234 #. type: Plain text
1235 #: build/C/man2/getunwind.2:99
1236 msgid ""
1237 "This system call is Linux specific, and is available only on the IA-64 "
1238 "architecture."
1239 msgstr ""
1240
1241 #. type: Plain text
1242 #: build/C/man2/getunwind.2:107
1243 msgid ""
1244 "This system call has been deprecated.  The modern way to obtain the kernel's "
1245 "unwind data is via the gate DSO.  The address of the ELF header for this DSO "
1246 "is passed to user level via B<AT_SYSINFO_EHDR> (see B<getauxval>(3))."
1247 msgstr ""
1248
1249 #. type: Plain text
1250 #: build/C/man2/getunwind.2:111
1251 msgid ""
1252 "Glibc does not provide a wrapper for this system call; in the unlikely event "
1253 "that you want to call it, use B<syscall>(2)."
1254 msgstr ""
1255 "glibc はこのシステムコールに対するラッパー関数を提供していない。おそらくない"
1256 "と思うが、このシステムコールを呼び出したい場合は B<syscall>(2) を使うこと。"
1257
1258 #. type: Plain text
1259 #: build/C/man2/getunwind.2:113
1260 msgid "B<getauxval>(3)"
1261 msgstr "B<getauxval>(3)"
1262
1263 #. type: TH
1264 #: build/C/man2/kexec_load.2:26
1265 #, no-wrap
1266 msgid "KEXEC_LOAD"
1267 msgstr "KEXEC_LOAD"
1268
1269 #. type: Plain text
1270 #: build/C/man2/kexec_load.2:29
1271 msgid "kexec_load - load a new kernel for later execution"
1272 msgstr "kexec_load - 新しいカーネルを後で実行するためにロードする"
1273
1274 #. type: Plain text
1275 #: build/C/man2/kexec_load.2:31
1276 msgid "B<#include E<lt>linux/kexec.hE<gt>>"
1277 msgstr "B<#include E<lt>linux/kexec.hE<gt>>"
1278
1279 #. type: Plain text
1280 #: build/C/man2/kexec_load.2:33
1281 msgid ""
1282 "B<long kexec_load(unsigned long >I<entry>B<, unsigned long >I<nr_segments>B<,"
1283 ">"
1284 msgstr ""
1285 "B<long kexec_load(unsigned long >I<entry>B<, unsigned long >I<nr_segments>B<,"
1286 ">"
1287
1288 #. type: Plain text
1289 #: build/C/man2/kexec_load.2:36
1290 msgid "B< struct kexec_segment *>I<segments>B<, unsigned long >I<flags>B<);>"
1291 msgstr "B< struct kexec_segment *>I<segments>B<, unsigned long >I<flags>B<);>"
1292
1293 #. type: Plain text
1294 #: build/C/man2/kexec_load.2:44
1295 msgid ""
1296 "The B<kexec_load>()  system call loads a new kernel that can be executed "
1297 "later by B<reboot>(2)."
1298 msgstr ""
1299 "B<kexec_load>() システムコールは、新しいカーネルをロードし、\n"
1300 "その後の B<reboot>(2) で実行できるようにする。"
1301
1302 #. type: Plain text
1303 #: build/C/man2/kexec_load.2:50
1304 msgid ""
1305 "The I<flags> argument is a mask whose high-order bits control the operation "
1306 "of the call.  The following values can be specified in I<flags>:"
1307 msgstr ""
1308 "I<flags> 引き数はマスクビットで、\n"
1309 "その上位ビットでシステムコールの呼び出しの動作を制御する。\n"
1310 "I<flags> には以下の値を指定できる。"
1311
1312 #. type: TP
1313 #: build/C/man2/kexec_load.2:50
1314 #, no-wrap
1315 msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
1316 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
1317
1318 #.  FIXME figure out how this is really used
1319 #. type: Plain text
1320 #: build/C/man2/kexec_load.2:54
1321 msgid "Execute the new kernel automatically on a system crash."
1322 msgstr "システムのクラッシュ時に、新しいカーネルを自動的に実行する。"
1323
1324 #. type: TP
1325 #: build/C/man2/kexec_load.2:54
1326 #, no-wrap
1327 msgid "B<KEXEC_PRESERVE_CONTEXT> (since Linux 2.6.27)"
1328 msgstr "B<KEXEC_PRESERVE_CONTEXT> (Linux 2.6.27 以降)"
1329
1330 #. type: Plain text
1331 #: build/C/man2/kexec_load.2:64
1332 msgid ""
1333 "Preserve the system hardware and software states before executing the new "
1334 "kernel.  This could be used for system suspend.  This flag is available only "
1335 "if the kernel was configured with B<CONFIG_KEXEC_JUMP>, and is effective "
1336 "only if I<nr_segments> is greater than 0."
1337 msgstr ""
1338 "新しいカーネルを実行する前に、\n"
1339 "システムのハードウェアとソフトウェアの状態を保存する。\n"
1340 "システムの中断時 (suspend) などで使用できる。\n"
1341 "このフラグは、カーネルの設定で B<CONFIG_KEXEC_JUMP> が有効の場合のみ\n"
1342 "利用可能であり、 I<nr_segments> が 0 より大きい場合のみ効果がある。"
1343
1344 #. type: Plain text
1345 #: build/C/man2/kexec_load.2:84
1346 msgid ""
1347 "The low-order bits of I<flags> contain the architecture of the to-be-"
1348 "executed kernel.  Specify (OR) the constant B<KEXEC_ARCH_DEFAULT> to use the "
1349 "current architecture, or one of the following architecture constants "
1350 "B<KEXEC_ARCH_386>, B<KEXEC_ARCH_X86_64>, B<KEXEC_ARCH_PPC>, "
1351 "B<KEXEC_ARCH_PPC64>, B<KEXEC_ARCH_IA_64>, B<KEXEC_ARCH_ARM>, "
1352 "B<KEXEC_ARCH_S390>, B<KEXEC_ARCH_SH>, B<KEXEC_ARCH_MIPS>, and "
1353 "B<KEXEC_ARCH_MIPS_LE>.  The architecture must be executable on the CPU of "
1354 "the system."
1355 msgstr ""
1356 "I<flags> の下位ビットには、実行されるカーネルのアーキテクチャが入る。\n"
1357 "現在のアーキテクチャを使うことを意味する定数 B<KEXEC_ARCH_DEFAULT> か、\n"
1358 "アーキテクチャ定数 B<KEXEC_ARCH_386>, B<KEXEC_ARCH_X86_64>,\n"
1359 "B<KEXEC_ARCH_PPC>, B<KEXEC_ARCH_PPC64>, B<KEXEC_ARCH_IA_64>,\n"
1360 "B<KEXEC_ARCH_ARM>, B<KEXEC_ARCH_S390>, B<KEXEC_ARCH_SH>,\n"
1361 "B<KEXEC_ARCH_MIPS>, B<KEXEC_ARCH_MIPS_LE> の\n"
1362 "いずれか一つを (OR で) 指定する。指定するアーキテクチャは、\n"
1363 "システムの CPU で実行可能なものでなければならない。"
1364
1365 #. type: Plain text
1366 #: build/C/man2/kexec_load.2:98
1367 msgid ""
1368 "The I<entry> argument is the physical entry address in the kernel image.  "
1369 "The I<nr_segments> argument is the number of segments pointed to by the "
1370 "I<segments> pointer.  The I<segments> argument is an array of "
1371 "I<kexec_segment> structures which define the kernel layout:"
1372 msgstr ""
1373 "I<entry> 引き数は、カーネルイメージの物理エントリーアドレスである。\n"
1374 "I<nr_segments> 引き数は、 I<segments> ポインタが指すセグメントの\n"
1375 "数である。 I<segments> 引き数は I<kexec_segment> 構造体の配列で、\n"
1376 "この構造体によりカーネルの配置が定義される。"
1377
1378 #. type: Plain text
1379 #: build/C/man2/kexec_load.2:107
1380 #, no-wrap
1381 msgid ""
1382 "struct kexec_segment {\n"
1383 "    void   *buf;        /* Buffer in user space */\n"
1384 "    size_t  bufsz;      /* Buffer length in user space */\n"
1385 "    void   *mem;        /* Physical address of kernel */\n"
1386 "    size_t  memsz;      /* Physical address length */\n"
1387 "};\n"
1388 msgstr ""
1389 "struct kexec_segment {\n"
1390 "    void   *buf;        /* Buffer in user space */\n"
1391 "    size_t  bufsz;      /* Buffer length in user space */\n"
1392 "    void   *mem;        /* Physical address of kernel */\n"
1393 "    size_t  memsz;      /* Physical address length */\n"
1394 "};\n"
1395
1396 #.  FIXME elaborate on the following:
1397 #. type: Plain text
1398 #: build/C/man2/kexec_load.2:114
1399 msgid ""
1400 "The kernel image defined by I<segments> is copied from the calling process "
1401 "into previously reserved memory."
1402 msgstr ""
1403 "I<segments> で定義されたカーネルイメージは、\n"
1404 "呼び出したプロセスから予約済みメモリにコピーされる。"
1405
1406 #. type: Plain text
1407 #: build/C/man2/kexec_load.2:121
1408 msgid ""
1409 "On success, B<kexec_load>()  returns 0.  On error, -1 is returned and "
1410 "I<errno> is set to indicate the error."
1411 msgstr ""
1412 "成功すると、 B<kexec_load> は 0 を返す。\n"
1413 "エラーの場合、 -1 が返り、 I<errno> にエラーを示す値が設定される。"
1414
1415 #. type: TP
1416 #: build/C/man2/kexec_load.2:122 build/C/man2/pivot_root.2:110
1417 #: build/C/man2/ptrace.2:1802 build/C/man2/quotactl.2:495
1418 #, no-wrap
1419 msgid "B<EBUSY>"
1420 msgstr "B<EBUSY>"
1421
1422 #. type: Plain text
1423 #: build/C/man2/kexec_load.2:126
1424 msgid ""
1425 "Another crash kernel is already being loaded or a crash kernel is already in "
1426 "use."
1427 msgstr ""
1428 "別のクラッシュカーネルがすでにロードされているか、\n"
1429 "クラッシュカーネルがすでに使用されている。"
1430
1431 #.  KEXEC_SEGMENT_MAX == 16
1432 #. type: Plain text
1433 #: build/C/man2/kexec_load.2:133
1434 msgid "I<flags> is invalid; or I<nr_segments> is too large"
1435 msgstr "I<flags> が無効である。 I<nr_segments> が大きすぎる。"
1436
1437 #. type: Plain text
1438 #: build/C/man2/kexec_load.2:138
1439 msgid "The caller does not have the B<CAP_SYS_BOOT> capability."
1440 msgstr "呼び出し側が B<CAP_SYS_BOOT> ケーパビリティを持っていない。"
1441
1442 #. type: Plain text
1443 #: build/C/man2/kexec_load.2:142
1444 msgid "The B<kexec_load>()  system call first appeared in Linux 2.6.13."
1445 msgstr "B<kexec_load>() システムコールは Linux 2.6.13 で初めて登場した。"
1446
1447 #. type: Plain text
1448 #: build/C/man2/kexec_load.2:149
1449 msgid ""
1450 "Currently, there is no glibc support for B<kexec_load>().  Call it using "
1451 "B<syscall>(2)."
1452 msgstr ""
1453 "現在のところ、 B<kexec_load>() は glibc ではサポートされていない。\n"
1454 "B<syscall>(2) を使って呼び出すこと。"
1455
1456 #.  FIXME Andi submitted a patch for this.
1457 #.  Check if it got accepted later.
1458 #. type: Plain text
1459 #: build/C/man2/kexec_load.2:156
1460 msgid ""
1461 "The required constants are in the Linux kernel source file I<linux/kexec.h>, "
1462 "which is not currently exported to glibc.  Therefore, these constants must "
1463 "be defined manually."
1464 msgstr ""
1465 "必要な定数は Linux カーネルのソースファイル I<linux/kexec.h> で定義されてい"
1466 "る\n"
1467 "が、現在のところ glibc には公開されていない。\n"
1468 "そのため、これらの定数は手動で定義しなければならない。"
1469
1470 #. type: Plain text
1471 #: build/C/man2/kexec_load.2:159
1472 msgid ""
1473 "This system call is available only if the kernel was configured with "
1474 "B<CONFIG_KEXEC>."
1475 msgstr ""
1476 "このシステムコールは、カーネルの設定で B<CONFIG_KEXEC> が有効になって\n"
1477 "いる場合にのみ利用できる。"
1478
1479 #. type: Plain text
1480 #: build/C/man2/kexec_load.2:162
1481 msgid "B<reboot>(2), B<syscall>(2)"
1482 msgstr "B<reboot>(2), B<syscall>(2)"
1483
1484 #. type: TH
1485 #: build/C/man2/lookup_dcookie.2:27
1486 #, no-wrap
1487 msgid "LOOKUP_DCOOKIE"
1488 msgstr "LOOKUP_DCOOKIE"
1489
1490 #. type: TH
1491 #: build/C/man2/lookup_dcookie.2:27
1492 #, no-wrap
1493 msgid "2004-06-17"
1494 msgstr "2004-06-17"
1495
1496 #. type: Plain text
1497 #: build/C/man2/lookup_dcookie.2:30
1498 msgid "lookup_dcookie - return a directory entry's path"
1499 msgstr "lookup_dcookie - ディレクトリ・エントリのパス名を返す"
1500
1501 #. type: Plain text
1502 #: build/C/man2/lookup_dcookie.2:32
1503 msgid ""
1504 "B<int lookup_dcookie(u64 >I<cookie>B<, char *>I<buffer>B<, size_t >I<len>B<);"
1505 ">"
1506 msgstr ""
1507 "B<int lookup_dcookie(u64 >I<cookie>B<, char *>I<buffer>B<, size_t >I<len>B<);"
1508 ">"
1509
1510 #. type: Plain text
1511 #: build/C/man2/lookup_dcookie.2:38
1512 msgid ""
1513 "Look up the full path of the directory entry specified by the value "
1514 "I<cookie>.  The cookie is an opaque identifier uniquely identifying a "
1515 "particular directory entry.  The buffer given is filled in with the full "
1516 "path of the directory entry."
1517 msgstr ""
1518 "I<cookie> 値で指定されたディレクトリ・エントリのフルパス名を検索する。 "
1519 "cookie は、個々のディレクトリ・エントリを区別する内部識別子 (opaque "
1520 "identifier) である。引き数で指定されたバッファに、ディレクトリ・エントリの フ"
1521 "ルパス名が格納される。"
1522
1523 #. type: Plain text
1524 #: build/C/man2/lookup_dcookie.2:43
1525 msgid ""
1526 "For B<lookup_dcookie>()  to return successfully, the kernel must still hold "
1527 "a cookie reference to the directory entry."
1528 msgstr ""
1529 "B<lookup_dcookie>()  が正常に値を返すためには、カーネルがディレクトリ・エント"
1530 "リへの cookie 参照を 保持していなければならない。"
1531
1532 #. type: Plain text
1533 #: build/C/man2/lookup_dcookie.2:50
1534 msgid ""
1535 "On success, B<lookup_dcookie>()  returns the length of the path string "
1536 "copied into the buffer.  On error, -1 is returned, and I<errno> is set "
1537 "appropriately."
1538 msgstr ""
1539 "成功した場合、 B<lookup_dcookie>()  はバッファにコピーしたパス文字列の長さを"
1540 "返す。 エラーの場合は -1 を返し、 I<errno> に適切な値を設定する。"
1541
1542 #. type: Plain text
1543 #: build/C/man2/lookup_dcookie.2:54
1544 msgid "The buffer was not valid."
1545 msgstr "バッファが有効でなかった。"
1546
1547 #. type: Plain text
1548 #: build/C/man2/lookup_dcookie.2:58
1549 msgid ""
1550 "The kernel has no registered cookie/directory entry mappings at the time of "
1551 "lookup, or the cookie does not refer to a valid directory entry."
1552 msgstr ""
1553 "検索が行われた時、cookie とディレクトリ・エントリのマッピングがカーネルに 登"
1554 "録されていなかったか、または cookie が有効なディレクトリ・エントリを 参照して"
1555 "いない。"
1556
1557 #. type: TP
1558 #: build/C/man2/lookup_dcookie.2:58
1559 #, no-wrap
1560 msgid "B<ENAMETOOLONG>"
1561 msgstr "B<ENAMETOOLONG>"
1562
1563 #. type: Plain text
1564 #: build/C/man2/lookup_dcookie.2:61
1565 msgid "The name could not fit in the buffer."
1566 msgstr "名前がバッファに入り切らなかった。"
1567
1568 #. type: TP
1569 #: build/C/man2/lookup_dcookie.2:61 build/C/man2/process_vm_readv.2:262
1570 #: build/C/man2/sendfile.2:138 build/C/man2/splice.2:155
1571 #: build/C/man2/tee.2:111 build/C/man2/vmsplice.2:135
1572 #, no-wrap
1573 msgid "B<ENOMEM>"
1574 msgstr "B<ENOMEM>"
1575
1576 #. type: Plain text
1577 #: build/C/man2/lookup_dcookie.2:65
1578 msgid ""
1579 "The kernel could not allocate memory for the temporary buffer holding the "
1580 "path."
1581 msgstr ""
1582 "カーネルが、パス名を保持する一時バッファ用のメモリを割り当てることが できな"
1583 "かった。"
1584
1585 #. type: Plain text
1586 #: build/C/man2/lookup_dcookie.2:70
1587 msgid ""
1588 "The process does not have the capability B<CAP_SYS_ADMIN> required to look "
1589 "up cookie values."
1590 msgstr ""
1591 "プロセスが cookie 値を検索するのに必要なケーパビリティ B<CAP_SYS_ADMIN> を"
1592 "持っていない。"
1593
1594 #. type: TP
1595 #: build/C/man2/lookup_dcookie.2:70 build/C/man2/quotactl.2:474
1596 #, no-wrap
1597 msgid "B<ERANGE>"
1598 msgstr "B<ERANGE>"
1599
1600 #. type: Plain text
1601 #: build/C/man2/lookup_dcookie.2:73
1602 msgid ""
1603 "The buffer was not large enough to hold the path of the directory entry."
1604 msgstr ""
1605 "バッファが、ディレクトリ・エントリのパス名を収容するのに 十分な大きさではな"
1606 "かった。"
1607
1608 #. type: Plain text
1609 #: build/C/man2/lookup_dcookie.2:78
1610 msgid ""
1611 "Available since Linux 2.5.43.  The B<ENAMETOOLONG> error return was added in "
1612 "2.5.70."
1613 msgstr ""
1614 "Linux 2.5.43 以降で利用できる。 エラー B<ENAMETOOLONG> を返す仕様は 2.5.70 で"
1615 "追加された。"
1616
1617 #. type: Plain text
1618 #: build/C/man2/lookup_dcookie.2:81
1619 msgid "B<lookup_dcookie>()  is Linux-specific."
1620 msgstr "B<lookup_dcookie>()  は Linux 独自の関数である。"
1621
1622 #. type: Plain text
1623 #: build/C/man2/lookup_dcookie.2:85
1624 msgid ""
1625 "B<lookup_dcookie>()  is a special-purpose system call, currently used only "
1626 "by the oprofile profiler.  It relies on a kernel driver to register cookies "
1627 "for directory entries."
1628 msgstr ""
1629 "B<lookup_dcookie>()  は特殊な用途に使われるシステムコールで、現在のところ "
1630 "oprofile profiler で 使われているだけである。"
1631
1632 #. type: Plain text
1633 #: build/C/man2/lookup_dcookie.2:88
1634 msgid ""
1635 "The path returned may be suffixed by the string \" (deleted)\" if the "
1636 "directory entry has been removed."
1637 msgstr ""
1638 "指定されたディレクトリ・エントリが削除されていた場合、返されるパス名の最後に "
1639 "\" (deleted)\" という文字列が付加されることがある。"
1640
1641 #. type: TH
1642 #: build/C/man2/modify_ldt.2:24
1643 #, no-wrap
1644 msgid "MODIFY_LDT"
1645 msgstr "MODIFY_LDT"
1646
1647 #. type: Plain text
1648 #: build/C/man2/modify_ldt.2:27
1649 msgid "modify_ldt - get or set ldt"
1650 msgstr "modify_ldt - ldt を設定または取得する"
1651
1652 #. type: Plain text
1653 #: build/C/man2/modify_ldt.2:30
1654 #, no-wrap
1655 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1656 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1657
1658 #. type: Plain text
1659 #: build/C/man2/modify_ldt.2:32
1660 #, no-wrap
1661 msgid "B<int modify_ldt(int >I<func>B<, void *>I<ptr>B<, unsigned long >I<bytecount>B<);>\n"
1662 msgstr "B<int modify_ldt(int >I<func>B<, void *>I<ptr>B<, unsigned long >I<bytecount>B<);>\n"
1663
1664 #. type: Plain text
1665 #: build/C/man2/modify_ldt.2:41
1666 msgid ""
1667 "B<modify_ldt>()  reads or writes the local descriptor table (ldt) for a "
1668 "process.  The ldt is a per-process memory management table used by the i386 "
1669 "processor.  For more information on this table, see an Intel 386 processor "
1670 "handbook."
1671 msgstr ""
1672 "B<modify_ldt>()  はプロセスのローカル・ディスクリプタ・テーブル (local "
1673 "descriptor table; ldt)  を読み書きする。 ldt は i386 プロセッサで使用されるプ"
1674 "ロセスごとのメモリ管理テーブルである。 このテーブルに関してのより詳しい情報"
1675 "は Intel 386 processor handbook を 参照すること。"
1676
1677 #. type: Plain text
1678 #: build/C/man2/modify_ldt.2:51
1679 msgid ""
1680 "When I<func> is 0, B<modify_ldt>()  reads the ldt into the memory pointed to "
1681 "by I<ptr>.  The number of bytes read is the smaller of I<bytecount> and the "
1682 "actual size of the ldt."
1683 msgstr ""
1684 "I<func> が 0 ならば、 B<modify_ldt>()  は ldt を I<ptr> が指しているメモリに"
1685 "読み込む。 読み込むバイト数は実際の ldt のサイズか I<bytecount> より小さい方"
1686 "である。"
1687
1688 #.  FIXME ? say something about func == 2 and func == 0x11?
1689 #.  In Linux 2.4, func == 2 returned "the default ldt"
1690 #.  In Linux 2.6, func == 2 is a nop, returning a zeroed out structure.
1691 #.  Linux 2.4 and 2.6 implement an operation for func == 0x11
1692 #. type: Plain text
1693 #: build/C/man2/modify_ldt.2:69
1694 msgid ""
1695 "When I<func> is 1, B<modify_ldt>()  modifies one ldt entry.  I<ptr> points "
1696 "to a I<user_desc> structure and I<bytecount> must equal the size of this "
1697 "structure."
1698 msgstr ""
1699 "I<func> が 1 ならば、 B<modify_ldt>()  は ldt エントリの一つを変更する。 "
1700 "I<ptr> は I<user_desc> 構造体を指し、 I<bytecount> はこの構造体の大きさに等し"
1701 "くなければならない。"
1702
1703 #. type: Plain text
1704 #: build/C/man2/modify_ldt.2:73
1705 msgid "The I<user_desc> structure is defined in I<E<lt>asm/ldt.hE<gt>> as:"
1706 msgstr ""
1707 "I<user_desc> 構造体は I<E<lt>asm/ldt.hE<gt>> で以下のように定義されている:"
1708
1709 #. type: Plain text
1710 #: build/C/man2/modify_ldt.2:87
1711 #, no-wrap
1712 msgid ""
1713 "struct user_desc {\n"
1714 "    unsigned int  entry_number;\n"
1715 "    unsigned long base_addr;\n"
1716 "    unsigned int  limit;\n"
1717 "    unsigned int  seg_32bit:1;\n"
1718 "    unsigned int  contents:2;\n"
1719 "    unsigned int  read_exec_only:1;\n"
1720 "    unsigned int  limit_in_pages:1;\n"
1721 "    unsigned int  seg_not_present:1;\n"
1722 "    unsigned int  useable:1;\n"
1723 "};\n"
1724 msgstr ""
1725 "struct user_desc {\n"
1726 "    unsigned int  entry_number;\n"
1727 "    unsigned long base_addr;\n"
1728 "    unsigned int  limit;\n"
1729 "    unsigned int  seg_32bit:1;\n"
1730 "    unsigned int  contents:2;\n"
1731 "    unsigned int  read_exec_only:1;\n"
1732 "    unsigned int  limit_in_pages:1;\n"
1733 "    unsigned int  seg_not_present:1;\n"
1734 "    unsigned int  useable:1;\n"
1735 "};\n"
1736
1737 #.  .PP
1738 #.  The ldt is specific for the calling process. Any attempts to change
1739 #.  the ldt to include the address space of another process or the kernel
1740 #.  will result in a segmentation violation when trying to access the memory
1741 #.  outside of the process address space. The memory protection is enforced
1742 #.  at the paging layer.
1743 #. type: Plain text
1744 #: build/C/man2/modify_ldt.2:98
1745 msgid "In Linux 2.4 and earlier, this structure was named I<modify_ldt_ldt_s>."
1746 msgstr ""
1747 "Linux 2.4 以前では、この構造体は I<modify_ldt_ldt_s> という名前であった。"
1748
1749 #. type: Plain text
1750 #: build/C/man2/modify_ldt.2:108
1751 msgid ""
1752 "On success, B<modify_ldt>()  returns either the actual number of bytes read "
1753 "(for reading)  or 0 (for writing).  On failure, B<modify_ldt>()  returns -1 "
1754 "and sets I<errno> to indicate the error."
1755 msgstr ""
1756 "成功した場合は、 B<modify_ldt>()  は (読み込みの場合は) 実際に読み込んだバイ"
1757 "ト数、 または (書き込みの場合は) 0 を返す。 失敗した場合は B<modify_ldt>()  "
1758 "は -1 を返し、 I<errno> をエラーを示す値に設定する。"
1759
1760 #. type: Plain text
1761 #: build/C/man2/modify_ldt.2:113
1762 msgid "I<ptr> points outside the address space."
1763 msgstr "I<ptr> がアドレス空間の外を指している。"
1764
1765 #. type: Plain text
1766 #: build/C/man2/modify_ldt.2:126
1767 msgid ""
1768 "I<ptr> is 0, or I<func> is 1 and I<bytecount> is not equal to the size of "
1769 "the structure I<modify_ldt_ldt_s>, or I<func> is 1 and the new ldt entry has "
1770 "invalid values."
1771 msgstr ""
1772 "I<ptr> が 0 である、 または I<func> が 1 で I<bytecount> が "
1773 "I<modify_ldt_ldt_s> 構造体のサイズと等しくないか、 I<func> が 1 で新しい ldt "
1774 "エントリが無効な値である。"
1775
1776 #. type: Plain text
1777 #: build/C/man2/modify_ldt.2:130
1778 msgid "I<func> is neither 0 nor 1."
1779 msgstr "I<func> が 0 でも 1 でもない。"
1780
1781 #. type: Plain text
1782 #: build/C/man2/modify_ldt.2:133
1783 msgid ""
1784 "This call is Linux-specific and should not be used in programs intended to "
1785 "be portable."
1786 msgstr ""
1787 "このコールは Linux 特有であり、移植を意図したプログラムでは 使用してはいけな"
1788 "い。"
1789
1790 #. type: Plain text
1791 #: build/C/man2/modify_ldt.2:136 build/C/man2/perfmonctl.2:205
1792 #: build/C/man2/pivot_root.2:134
1793 msgid ""
1794 "Glibc does not provide a wrapper for this system call; call it using "
1795 "B<syscall>(2)."
1796 msgstr ""
1797 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
1798 "(2)  を使って呼び出すこと。"
1799
1800 #. type: Plain text
1801 #: build/C/man2/modify_ldt.2:138
1802 msgid "B<vm86>(2)"
1803 msgstr "B<vm86>(2)"
1804
1805 #. type: TH
1806 #: build/C/man2/nfsservctl.2:8
1807 #, no-wrap
1808 msgid "NFSSERVCTL"
1809 msgstr "NFSSERVCTL"
1810
1811 #. type: TH
1812 #: build/C/man2/nfsservctl.2:8
1813 #, fuzzy, no-wrap
1814 #| msgid "2013-02-13"
1815 msgid "2013-09-17"
1816 msgstr "2013-02-13"
1817
1818 #. type: Plain text
1819 #: build/C/man2/nfsservctl.2:11
1820 msgid "nfsservctl - syscall interface to kernel nfs daemon"
1821 msgstr "nfsservctl - カーネル nfs デーモンのためのインターフェース"
1822
1823 #. type: Plain text
1824 #: build/C/man2/nfsservctl.2:14
1825 #, no-wrap
1826 msgid "B<#include E<lt>linux/nfsd/syscall.hE<gt>>\n"
1827 msgstr "B<#include E<lt>linux/nfsd/syscall.hE<gt>>\n"
1828
1829 #. type: Plain text
1830 #: build/C/man2/nfsservctl.2:17
1831 #, no-wrap
1832 msgid ""
1833 "B<long nfsservctl(int >I<cmd>B<, struct nfsctl_arg *>I<argp>B<,>\n"
1834 "B<                union nfsctl_res *>I<resp>B<);>\n"
1835 msgstr ""
1836 "B<long nfsservctl(int >I<cmd>B<, struct nfsctl_arg *>I<argp>B<,>\n"
1837 "B<                union nfsctl_res *>I<resp>B<);>\n"
1838
1839 #. type: Plain text
1840 #: build/C/man2/nfsservctl.2:21
1841 msgid "I<Note>: Since Linux 3.1, this system call no longer exists."
1842 msgstr "I<注意>: Linux 3.1 以降では、このシステムコールはもはや存在しない。"
1843
1844 #. type: Plain text
1845 #: build/C/man2/nfsservctl.2:35
1846 #, fuzzy, no-wrap
1847 #| msgid ""
1848 #| "/*\n"
1849 #| " * These are the commands understood by nfsctl().\n"
1850 #| " */\n"
1851 #| "#define NFSCTL_SVC          0    /* This is a server process. */\n"
1852 #| "#define NFSCTL_ADDCLIENT    1    /* Add an NFS client. */\n"
1853 #| "#define NFSCTL_DELCLIENT    2    /* Remove an NFS client. */\n"
1854 #| "#define NFSCTL_EXPORT       3    /* export a file system. */\n"
1855 #| "#define NFSCTL_UNEXPORT     4    /* unexport a file system. */\n"
1856 #| "#define NFSCTL_UGIDUPDATE   5    /* update a client's UID/GID map. */\n"
1857 #| "#define NFSCTL_GETFH        6    /* get an fh (used by mountd) */\n"
1858 msgid ""
1859 "/*\n"
1860 " * These are the commands understood by nfsctl().\n"
1861 " */\n"
1862 "#define NFSCTL_SVC          0    /* This is a server process. */\n"
1863 "#define NFSCTL_ADDCLIENT    1    /* Add an NFS client. */\n"
1864 "#define NFSCTL_DELCLIENT    2    /* Remove an NFS client. */\n"
1865 "#define NFSCTL_EXPORT       3    /* Export a filesystem. */\n"
1866 "#define NFSCTL_UNEXPORT     4    /* Unexport a filesystem. */\n"
1867 "#define NFSCTL_UGIDUPDATE   5    /* Update a client's UID/GID map\n"
1868 "                                    (only in Linux 2.4.x and earlier). */\n"
1869 "#define NFSCTL_GETFH        6    /* Get a file handle (used by mountd)\n"
1870 "                                    (only in Linux 2.4.x and earlier). */\n"
1871 msgstr ""
1872 "/*\n"
1873 " * nfsctl() によって理解されるコマンド\n"
1874 " */\n"
1875 "#define NFSCTL_SVC          0    /* サーバープロセス */\n"
1876 "#define NFSCTL_ADDCLIENT    1    /* NFS クライアントを追加 */\n"
1877 "#define NFSCTL_DELCLIENT    2    /* NFS クライアンドを削除 */\n"
1878 "#define NFSCTL_EXPORT       3    /* ファイルシステムのエクスポート */\n"
1879 "#define NFSCTL_UNEXPORT     4    /* ファイルシステムのアンエクスポート */\n"
1880 "#define NFSCTL_UGIDUPDATE   5    /* UID/GID マップの更新 */\n"
1881 "#define NFSCTL_GETFH        6    /* (mountd で使用される) fh の取得 */\n"
1882
1883 #. type: Plain text
1884 #: build/C/man2/nfsservctl.2:47
1885 #, no-wrap
1886 msgid ""
1887 "struct nfsctl_arg {\n"
1888 "    int                       ca_version;     /* safeguard */\n"
1889 "    union {\n"
1890 "        struct nfsctl_svc     u_svc;\n"
1891 "        struct nfsctl_client  u_client;\n"
1892 "        struct nfsctl_export  u_export;\n"
1893 "        struct nfsctl_uidmap  u_umap;\n"
1894 "        struct nfsctl_fhparm  u_getfh;\n"
1895 "        unsigned int          u_debug;\n"
1896 "    } u;\n"
1897 "}\n"
1898 msgstr ""
1899 "struct nfsctl_arg {\n"
1900 "    int                       ca_version;     /* safeguard */\n"
1901 "    union {\n"
1902 "        struct nfsctl_svc     u_svc;\n"
1903 "        struct nfsctl_client  u_client;\n"
1904 "        struct nfsctl_export  u_export;\n"
1905 "        struct nfsctl_uidmap  u_umap;\n"
1906 "        struct nfsctl_fhparm  u_getfh;\n"
1907 "        unsigned int          u_debug;\n"
1908 "    } u;\n"
1909 "}\n"
1910
1911 #. type: Plain text
1912 #: build/C/man2/nfsservctl.2:52
1913 #, no-wrap
1914 msgid ""
1915 "union nfsctl_res {\n"
1916 "        struct knfs_fh          cr_getfh;\n"
1917 "        unsigned int            cr_debug;\n"
1918 "};\n"
1919 msgstr ""
1920 "union nfsctl_res {\n"
1921 "        struct knfs_fh          cr_getfh;\n"
1922 "        unsigned int            cr_debug;\n"
1923 "};\n"
1924
1925 #. type: Plain text
1926 #: build/C/man2/nfsservctl.2:58 build/C/man2/pivot_root.2:105
1927 #: build/C/man2/vm86.2:59
1928 msgid ""
1929 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1930 "appropriately."
1931 msgstr ""
1932 "成功した場合は 0 が返される。エラーの場合は -1 が返され、 I<errno> が適切に設"
1933 "定される。"
1934
1935 #. type: Plain text
1936 #: build/C/man2/nfsservctl.2:60
1937 msgid "This call is Linux-specific."
1938 msgstr "このコールは Linux 特有である。"
1939
1940 #. type: TH
1941 #: build/C/man2/outb.2:26
1942 #, no-wrap
1943 msgid "OUTB"
1944 msgstr "OUTB"
1945
1946 #. type: TH
1947 #: build/C/man2/outb.2:26
1948 #, no-wrap
1949 msgid "2012-12-31"
1950 msgstr "2012-12-31"
1951
1952 #. type: Plain text
1953 #: build/C/man2/outb.2:31
1954 msgid ""
1955 "outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, "
1956 "outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - port I/O"
1957 msgstr ""
1958 "outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, "
1959 "outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ポート入出力"
1960
1961 #. type: Plain text
1962 #: build/C/man2/outb.2:34
1963 #, no-wrap
1964 msgid "B<#include E<lt>sys/io.hE<gt>>\n"
1965 msgstr "B<#include E<lt>sys/io.hE<gt>>\n"
1966
1967 #. type: Plain text
1968 #: build/C/man2/outb.2:41
1969 #, no-wrap
1970 msgid ""
1971 "B<unsigned char inb(unsigned short int >I<port>B<);>\n"
1972 "B<unsigned char inb_p(unsigned short int >I<port>B<);>\n"
1973 "B<unsigned short int inw(unsigned short int >I<port>B<);>\n"
1974 "B<unsigned short int inw_p(unsigned short int >I<port>B<);>\n"
1975 "B<unsigned int inl(unsigned short int >I<port>B<);>\n"
1976 "B<unsigned int inl_p(unsigned short int >I<port>B<);>\n"
1977 msgstr ""
1978 "B<unsigned char inb(unsigned short int >I<port>B<);>\n"
1979 "B<unsigned char inb_p(unsigned short int >I<port>B<);>\n"
1980 "B<unsigned short int inw(unsigned short int >I<port>B<);>\n"
1981 "B<unsigned short int inw_p(unsigned short int >I<port>B<);>\n"
1982 "B<unsigned int inl(unsigned short int >I<port>B<);>\n"
1983 "B<unsigned int inl_p(unsigned short int >I<port>B<);>\n"
1984
1985 #. type: Plain text
1986 #: build/C/man2/outb.2:48
1987 #, no-wrap
1988 msgid ""
1989 "B<void outb(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1990 "B<void outb_p(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1991 "B<void outw(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1992 "B<void outw_p(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1993 "B<void outl(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1994 "B<void outl_p(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1995 msgstr ""
1996 "B<void outb(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1997 "B<void outb_p(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1998 "B<void outw(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1999 "B<void outw_p(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
2000 "B<void outl(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
2001 "B<void outl_p(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
2002
2003 #. type: Plain text
2004 #: build/C/man2/outb.2:61
2005 #, no-wrap
2006 msgid ""
2007 "B<void insb(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2008 "B<           unsigned long int >I<count>B<);>\n"
2009 "B<void insw(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2010 "B<           unsigned long int >I<count>B<);>\n"
2011 "B<void insl(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2012 "B<           unsigned long int >I<count>B<);>\n"
2013 "B<void outsb(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2014 "B<           unsigned long int >I<count>B<);>\n"
2015 "B<void outsw(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2016 "B<           unsigned long int >I<count>B<);>\n"
2017 "B<void outsl(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2018 "B<           unsigned long int >I<count>B<);>\n"
2019 msgstr ""
2020 "B<void insb(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2021 "B<           unsigned long int >I<count>B<);>\n"
2022 "B<void insw(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2023 "B<           unsigned long int >I<count>B<);>\n"
2024 "B<void insl(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2025 "B<           unsigned long int >I<count>B<);>\n"
2026 "B<void outsb(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2027 "B<           unsigned long int >I<count>B<);>\n"
2028 "B<void outsw(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2029 "B<           unsigned long int >I<count>B<);>\n"
2030 "B<void outsl(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2031 "B<           unsigned long int >I<count>B<);>\n"
2032
2033 #. type: Plain text
2034 #: build/C/man2/outb.2:67
2035 msgid ""
2036 "This family of functions is used to do low-level port input and output.  The "
2037 "out* functions do port output, the in* functions do port input; the b-suffix "
2038 "functions are byte-width and the w-suffix functions word-width; the _p-"
2039 "suffix functions pause until the I/O completes."
2040 msgstr ""
2041 "この一連の関数はポートに対する低レベルの入出力に使用する。 out* 関数はポート"
2042 "出力、in* 関数はポート入力を行う。 語尾に b がついている関数はバイト単位、w "
2043 "がついている関数はワード単位である。 _p がついている関数は I/O が終了するまで"
2044 "待つ。"
2045
2046 #.  , given the following information
2047 #.  in addition to that given in
2048 #.  .BR outb (9).
2049 #. type: Plain text
2050 #: build/C/man2/outb.2:73
2051 msgid ""
2052 "They are primarily designed for internal kernel use, but can be used from "
2053 "user space."
2054 msgstr ""
2055 "これらの関数はもともとカーネル内部での使用を想定して設計されているが、 ユー"
2056 "ザー空間からでも使用できる。"
2057
2058 #. type: Plain text
2059 #: build/C/man2/outb.2:78
2060 msgid ""
2061 "You must compile with B<-O> or B<-O2> or similar.  The functions are defined "
2062 "as inline macros, and will not be substituted in without optimization "
2063 "enabled, causing unresolved references at link time."
2064 msgstr ""
2065 "B<-O> や B<-O2> などを指定してコンパイルしなければならない。 これらの関数はイ"
2066 "ンライン・マクロとして定義されており、 最適化を行わないと関数の展開が行われ"
2067 "ず、 リンクの時に「解決できない参照(unresolved reference)」が発生する。"
2068
2069 #. type: Plain text
2070 #: build/C/man2/outb.2:87
2071 msgid ""
2072 "You use B<ioperm>(2)  or alternatively B<iopl>(2)  to tell the kernel to "
2073 "allow the user space application to access the I/O ports in question.  "
2074 "Failure to do this will cause the application to receive a segmentation "
2075 "fault."
2076 msgstr ""
2077 "ユーザー空間のアプリケーションが I/O ポートにアクセスすることを カーネルに教"
2078 "えるために B<ioperm>(2)  もしくは B<iopl>(2)  を使用すること。これを忘れると"
2079 "アプリケーションはセグメンテーション違反 (segmentation fault) を受けとること"
2080 "になる。"
2081
2082 #. type: Plain text
2083 #: build/C/man2/outb.2:96
2084 msgid ""
2085 "B<outb>()  and friends are hardware-specific.  The I<value> argument is "
2086 "passed first and the I<port> argument is passed second, which is the "
2087 "opposite order from most DOS implementations."
2088 msgstr ""
2089 "B<outb>()  とその仲間はハードウェア特有である。 I<value> 引数が最初に渡さ"
2090 "れ、 I<port> 引数が二番目に渡される。 この順序はほとんどの DOS での実装とは逆"
2091 "である。"
2092
2093 #. type: Plain text
2094 #: build/C/man2/outb.2:99
2095 msgid "B<ioperm>(2), B<iopl>(2)"
2096 msgstr "B<ioperm>(2), B<iopl>(2)"
2097
2098 #. type: TH
2099 #: build/C/man2/pciconfig_read.2:8
2100 #, no-wrap
2101 msgid "PCICONFIG_READ"
2102 msgstr "PCICONFIG_READ"
2103
2104 #. type: TH
2105 #: build/C/man2/pciconfig_read.2:8
2106 #, no-wrap
2107 msgid "2003-07-14"
2108 msgstr "2003-07-14"
2109
2110 #. type: Plain text
2111 #: build/C/man2/pciconfig_read.2:11
2112 msgid ""
2113 "pciconfig_read, pciconfig_write, pciconfig_iobase - pci device information "
2114 "handling"
2115 msgstr ""
2116 "pciconfig_read, pciconfig_write, pciconfig_iobase - pci デバイス情報を扱う"
2117
2118 #. type: Plain text
2119 #: build/C/man2/pciconfig_read.2:14
2120 #, no-wrap
2121 msgid "B<#include E<lt>pci.hE<gt>>\n"
2122 msgstr "B<#include E<lt>pci.hE<gt>>\n"
2123
2124 #. type: Plain text
2125 #: build/C/man2/pciconfig_read.2:21
2126 #, no-wrap
2127 msgid ""
2128 "B<int pciconfig_read(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2129 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2130 "B<int pciconfig_write(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2131 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2132 "B<int pciconfig_iobase(long >I<which>B<, unsigned long >I<bus>B<,>\n"
2133 "B<          unsigned long >I<devfn>B<);>\n"
2134 msgstr ""
2135 "B<int pciconfig_read(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2136 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2137 "B<int pciconfig_write(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2138 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2139 "B<int pciconfig_iobase(long >I<which>B<, unsigned long >I<bus>B<,>\n"
2140 "B<          unsigned long >I<devfn>B<);>\n"
2141
2142 #. type: Plain text
2143 #: build/C/man2/pciconfig_read.2:27
2144 msgid ""
2145 "Most of the interaction with PCI devices is already handled by the kernel "
2146 "PCI layer, and thus these calls should not normally need to be accessed from "
2147 "user space."
2148 msgstr ""
2149 "PCI デバイスとのやり取り (interaction) は カーネル PCI レイヤですでに処理され"
2150 "ているので、 通常はこららの関数をユーザ空間からアクセスする必要はない。"
2151
2152 #. type: TP
2153 #: build/C/man2/pciconfig_read.2:27 build/C/man2/pciconfig_read.2:51
2154 #, no-wrap
2155 msgid "B<pciconfig_read>()"
2156 msgstr "B<pciconfig_read>()"
2157
2158 #. type: Plain text
2159 #: build/C/man2/pciconfig_read.2:36
2160 msgid "Reads to I<buf> from device I<dev> at offset I<off> value."
2161 msgstr "デバイス I<dev> のオフセット I<off> の値を I<buf> に読み込む。"
2162
2163 #. type: TP
2164 #: build/C/man2/pciconfig_read.2:36 build/C/man2/pciconfig_read.2:57
2165 #, no-wrap
2166 msgid "B<pciconfig_write>()"
2167 msgstr "B<pciconfig_write>()"
2168
2169 #. type: Plain text
2170 #: build/C/man2/pciconfig_read.2:45
2171 msgid "Writes from I<buf> to device I<dev> at offset I<off> value."
2172 msgstr "デバイス I<dev> のオフセット I<off> に I<buf> の値を書き込む。"
2173
2174 #. type: TP
2175 #: build/C/man2/pciconfig_read.2:45 build/C/man2/pciconfig_read.2:63
2176 #, no-wrap
2177 msgid "B<pciconfig_iobase>()"
2178 msgstr "B<pciconfig_iobase>()"
2179
2180 #. type: Plain text
2181 #: build/C/man2/pciconfig_read.2:50
2182 msgid ""
2183 "You pass it a bus/devfn pair and get a physical address for either the "
2184 "memory offset (for things like prep, this is 0xc0000000), the IO base for "
2185 "PIO cycles, or the ISA holes if any."
2186 msgstr ""
2187 "bus/devfn ペアをこの関数に渡し、 メモリオフセット (prep のようなものでは、こ"
2188 "の値は 0xc0000000 である) と PIO サイクルの IO ベースの物理アドレスを取得す"
2189 "る。 また、もしあるならば ISA hole の物理アドレスを取得する。"
2190
2191 #. type: Plain text
2192 #: build/C/man2/pciconfig_read.2:57 build/C/man2/pciconfig_read.2:63
2193 msgid ""
2194 "On success zero is returned.  On error, -1 is returned and I<errno> is set "
2195 "appropriately."
2196 msgstr ""
2197 "成功した場合、0 が返される。 エラーの場合、-1 が返され、 I<errno> が適切に設"
2198 "定される。"
2199
2200 #. type: Plain text
2201 #: build/C/man2/pciconfig_read.2:77
2202 msgid ""
2203 "Returns information on locations of various I/O regions in physical memory "
2204 "according to the I<which> value.  Values for I<which> are: "
2205 "B<IOBASE_BRIDGE_NUMBER>, B<IOBASE_MEMORY>, B<IOBASE_IO>, B<IOBASE_ISA_IO>, "
2206 "B<IOBASE_ISA_MEM>."
2207 msgstr ""
2208 "I<which> の値に基づいて、物理メモリ内の様々な I/O 領域の位置情報が返される。 "
2209 "I<which> の値は、 B<IOBASE_BRIDGE_NUMBER>, B<IOBASE_MEMORY>, B<IOBASE_IO>, "
2210 "B<IOBASE_ISA_IO>, B<IOBASE_ISA_MEM> である。"
2211
2212 #. type: Plain text
2213 #: build/C/man2/pciconfig_read.2:84
2214 msgid "I<len> value is invalid.  This does not apply to B<pciconfig_iobase>()."
2215 msgstr ""
2216 "I<len> の値が無効である。 このエラーは B<pciconfig_iobase>()  には適用されな"
2217 "い。"
2218
2219 #. type: TP
2220 #: build/C/man2/pciconfig_read.2:84 build/C/man2/ptrace.2:1819
2221 #: build/C/man2/sendfile.2:134
2222 #, no-wrap
2223 msgid "B<EIO>"
2224 msgstr "B<EIO>"
2225
2226 #. type: Plain text
2227 #: build/C/man2/pciconfig_read.2:87
2228 msgid "I/O error."
2229 msgstr "I/O エラー。"
2230
2231 #. type: TP
2232 #: build/C/man2/pciconfig_read.2:87
2233 #, no-wrap
2234 msgid "B<ENODEV>"
2235 msgstr "B<ENODEV>"
2236
2237 #. type: Plain text
2238 #: build/C/man2/pciconfig_read.2:93
2239 msgid ""
2240 "For B<pciconfig_iobase>(), \"hose\" value is NULL.  For the other calls, "
2241 "could not find a slot."
2242 msgstr ""
2243 "B<pciconfig_iobase>()  の場合、でホース (hose) の値が NULL である。 他の呼び"
2244 "出しの場合、スロット (slot) が見つからない。"
2245
2246 #. type: Plain text
2247 #: build/C/man2/pciconfig_read.2:98
2248 msgid "The system has not implemented these calls (B<CONFIG_PCI> not defined)."
2249 msgstr ""
2250 "このシステムはこれらの呼び出しを実装していない。 (B<CONFIG_PCI> が定義されて"
2251 "いない)。"
2252
2253 #. type: TP
2254 #: build/C/man2/pciconfig_read.2:98
2255 #, no-wrap
2256 msgid "B<EOPNOTSUPP>"
2257 msgstr "B<EOPNOTSUPP>"
2258
2259 #. type: Plain text
2260 #: build/C/man2/pciconfig_read.2:105
2261 msgid ""
2262 "This return value is valid only for B<pciconfig_iobase>().  It is returned "
2263 "if the value for I<which> is invalid."
2264 msgstr ""
2265 "この返り値は B<pciconfig_iobase>()  でのみ有効である。 このエラーは I<which> "
2266 "の値が無効であるときに返される。"
2267
2268 #. type: Plain text
2269 #: build/C/man2/pciconfig_read.2:112
2270 msgid ""
2271 "User does not have the B<CAP_SYS_ADMIN> capability.  This does not apply to "
2272 "B<pciconfig_iobase>()."
2273 msgstr ""
2274 "ユーザが B<CAP_SYS_ADMIN> 権限を持っていない。 このエラーは "
2275 "B<pciconfig_iobase>()  には適用されない。"
2276
2277 #. type: Plain text
2278 #: build/C/man2/pciconfig_read.2:114
2279 msgid "These calls are Linux-specific, available since Linux 2.0.26/2.1.11."
2280 msgstr ""
2281 "これらの呼び出しは Linux 特有のものであり、 Linux 2.0.26/2.1.11 から使用可能"
2282 "である。"
2283
2284 #. type: Plain text
2285 #: build/C/man2/pciconfig_read.2:116
2286 msgid "B<capabilities>(7)"
2287 msgstr "B<capabilities>(7)"
2288
2289 #. type: TH
2290 #: build/C/man2/perf_event_open.2:27
2291 #, no-wrap
2292 msgid "PERF_EVENT_OPEN"
2293 msgstr "PERF_EVENT_OPEN"
2294
2295 #. type: TH
2296 #: build/C/man2/perf_event_open.2:27
2297 #, fuzzy, no-wrap
2298 #| msgid "2013-02-13"
2299 msgid "2013-09-13"
2300 msgstr "2013-02-13"
2301
2302 #. type: Plain text
2303 #: build/C/man2/perf_event_open.2:30
2304 msgid "perf_event_open - set up performance monitoring"
2305 msgstr ""
2306
2307 #. type: Plain text
2308 #: build/C/man2/perf_event_open.2:34
2309 #, no-wrap
2310 msgid ""
2311 "B<#include E<lt>linux/perf_event.hE<gt>>\n"
2312 "B<#include E<lt>linux/hw_breakpoint.hE<gt>>\n"
2313 msgstr ""
2314 "B<#include E<lt>linux/perf_event.hE<gt>>\n"
2315 "B<#include E<lt>linux/hw_breakpoint.hE<gt>>\n"
2316
2317 #. type: Plain text
2318 #: build/C/man2/perf_event_open.2:38
2319 #, no-wrap
2320 msgid ""
2321 "B<int perf_event_open(struct perf_event_attr *>I<attr>B<,>\n"
2322 "B<                    pid_t >I<pid>B<, int >I<cpu>B<, int >I<group_fd>B<,>\n"
2323 "B<                    unsigned long >I<flags>B<);>\n"
2324 msgstr ""
2325 "B<int perf_event_open(struct perf_event_attr *>I<attr>B<,>\n"
2326 "B<                    pid_t >I<pid>B<, int >I<cpu>B<, int >I<group_fd>B<,>\n"
2327 "B<                    unsigned long >I<flags>B<);>\n"
2328
2329 #. type: Plain text
2330 #: build/C/man2/perf_event_open.2:47
2331 msgid ""
2332 "Given a list of parameters, B<perf_event_open>()  returns a file descriptor, "
2333 "for use in subsequent system calls (B<read>(2), B<mmap>(2), B<prctl>(2), "
2334 "B<fcntl>(2), etc.)."
2335 msgstr ""
2336
2337 #. type: Plain text
2338 #: build/C/man2/perf_event_open.2:55
2339 msgid ""
2340 "A call to B<perf_event_open>()  creates a file descriptor that allows "
2341 "measuring performance information.  Each file descriptor corresponds to one "
2342 "event that is measured; these can be grouped together to measure multiple "
2343 "events simultaneously."
2344 msgstr ""
2345
2346 #. type: Plain text
2347 #: build/C/man2/perf_event_open.2:62
2348 msgid ""
2349 "Events can be enabled and disabled in two ways: via B<ioctl>(2)  and via "
2350 "B<prctl>(2)B<.> When an event is disabled it does not count or generate "
2351 "overflows but does continue to exist and maintain its count value."
2352 msgstr ""
2353
2354 #. type: Plain text
2355 #: build/C/man2/perf_event_open.2:76
2356 msgid ""
2357 "Events come in two flavors: counting and sampled.  A I<counting> event is "
2358 "one that is used for counting the aggregate number of events that occur.  In "
2359 "general, counting event results are gathered with a B<read>(2)  call.  A "
2360 "I<sampling> event periodically writes measurements to a buffer that can then "
2361 "be accessed via B<mmap>(2)B<.>"
2362 msgstr ""
2363
2364 #. type: SS
2365 #: build/C/man2/perf_event_open.2:76
2366 #, no-wrap
2367 msgid "Arguments"
2368 msgstr ""
2369
2370 #. type: Plain text
2371 #: build/C/man2/perf_event_open.2:90
2372 msgid ""
2373 "The argument I<pid> allows events to be attached to processes in various "
2374 "ways.  If I<pid> is 0, measurements happen on the current thread, if I<pid> "
2375 "is greater than 0, the process indicated by I<pid> is measured, and if "
2376 "I<pid> is -1, all processes are counted."
2377 msgstr ""
2378
2379 #. type: Plain text
2380 #: build/C/man2/perf_event_open.2:101
2381 msgid ""
2382 "The I<cpu> argument allows measurements to be specific to a CPU.  If I<cpu> "
2383 "is greater than or equal to 0, measurements are restricted to the specified "
2384 "CPU; if I<cpu> is -1, the events are measured on all CPUs."
2385 msgstr ""
2386
2387 #. type: Plain text
2388 #: build/C/man2/perf_event_open.2:107
2389 msgid ""
2390 "Note that the combination of I<pid> == -1 and I<cpu> == -1 is not valid."
2391 msgstr ""
2392
2393 #. type: Plain text
2394 #: build/C/man2/perf_event_open.2:115
2395 msgid ""
2396 "A I<pid> E<gt> 0 and I<cpu> == -1 setting measures per-process and follows "
2397 "that process to whatever CPU the process gets scheduled to.  Per-process "
2398 "events can be created by any user."
2399 msgstr ""
2400
2401 #. type: Plain text
2402 #: build/C/man2/perf_event_open.2:126
2403 msgid ""
2404 "A I<pid> == -1 and I<cpu> E<gt>= 0 setting is per-CPU and measures all "
2405 "processes on the specified CPU.  Per-CPU events need the B<CAP_SYS_ADMIN> "
2406 "capability or a I</proc/sys/kernel/perf_event_paranoid> value of less than 1."
2407 msgstr ""
2408
2409 #. type: Plain text
2410 #: build/C/man2/perf_event_open.2:148
2411 msgid ""
2412 "The I<group_fd> argument allows event groups to be created.  An event group "
2413 "has one event which is the group leader.  The leader is created first, with "
2414 "I<group_fd> = -1.  The rest of the group members are created with subsequent "
2415 "B<perf_event_open>()  calls with I<group_fd> being set to the fd of the "
2416 "group leader.  (A single event on its own is created with I<group_fd> = -1 "
2417 "and is considered to be a group with only 1 member.)  An event group is "
2418 "scheduled onto the CPU as a unit: it will be put onto the CPU only if all of "
2419 "the events in the group can be put onto the CPU.  This means that the values "
2420 "of the member events can be meaningfully compared, added, divided (to get "
2421 "ratios), etc., with each other, since they have counted events for the same "
2422 "set of executed instructions."
2423 msgstr ""
2424
2425 #. type: Plain text
2426 #: build/C/man2/perf_event_open.2:152
2427 #, fuzzy
2428 #| msgid ""
2429 #| "The I<flags> argument is a bit mask that is composed by ORing together "
2430 #| "zero or more of the following values:"
2431 msgid ""
2432 "The I<flags> argument is formed by ORing together zero or more of the "
2433 "following values:"
2434 msgstr ""
2435 "I<flags> 引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。"
2436
2437 #. type: TP
2438 #: build/C/man2/perf_event_open.2:152
2439 #, no-wrap
2440 msgid "B<PERF_FLAG_FD_NO_GROUP>"
2441 msgstr ""
2442
2443 #.  FIXME The following sentence is unclear
2444 #.  FIXME So, why is it useful?
2445 #. type: Plain text
2446 #: build/C/man2/perf_event_open.2:159
2447 msgid ""
2448 "This flag allows creating an event as part of an event group but having no "
2449 "group leader.  It is unclear why this is useful."
2450 msgstr ""
2451
2452 #. type: TP
2453 #: build/C/man2/perf_event_open.2:159
2454 #, no-wrap
2455 msgid "B<PERF_FLAG_FD_OUTPUT>"
2456 msgstr ""
2457
2458 #. type: Plain text
2459 #: build/C/man2/perf_event_open.2:162
2460 msgid "This flag re-routes the output from an event to the group leader."
2461 msgstr ""
2462
2463 #. type: TP
2464 #: build/C/man2/perf_event_open.2:162
2465 #, fuzzy, no-wrap
2466 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
2467 msgid "B<PERF_FLAG_PID_CGROUP> (Since Linux 2.6.39)."
2468 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
2469
2470 #. type: Plain text
2471 #: build/C/man2/perf_event_open.2:185
2472 msgid ""
2473 "This flag activates per-container system-wide monitoring.  A container is an "
2474 "abstraction that isolates a set of resources for finer grain control (CPUs, "
2475 "memory, etc.).  In this mode, the event is measured only if the thread "
2476 "running on the monitored CPU belongs to the designated container (cgroup).  "
2477 "The cgroup is identified by passing a file descriptor opened on its "
2478 "directory in the cgroupfs filesystem.  For instance, if the cgroup to "
2479 "monitor is called I<test>, then a file descriptor opened on I</dev/cgroup/"
2480 "test> (assuming cgroupfs is mounted on I</dev/cgroup>)  must be passed as "
2481 "the I<pid> parameter.  cgroup monitoring is available only for system-wide "
2482 "events and may therefore require extra permissions."
2483 msgstr ""
2484
2485 #. type: Plain text
2486 #: build/C/man2/perf_event_open.2:190
2487 msgid ""
2488 "The I<perf_event_attr> structure provides detailed configuration information "
2489 "for the event being created."
2490 msgstr ""
2491
2492 #. type: Plain text
2493 #: build/C/man2/perf_event_open.2:197
2494 #, no-wrap
2495 msgid ""
2496 "struct perf_event_attr {\n"
2497 "    __u32     type;         /* Type of event */\n"
2498 "    __u32     size;         /* Size of attribute structure */\n"
2499 "    __u64     config;       /* Type-specific configuration */\n"
2500 msgstr ""
2501
2502 #. type: Plain text
2503 #: build/C/man2/perf_event_open.2:202
2504 #, no-wrap
2505 msgid ""
2506 "    union {\n"
2507 "        __u64 sample_period;    /* Period of sampling */\n"
2508 "        __u64 sample_freq;      /* Frequency of sampling */\n"
2509 "    };\n"
2510 msgstr ""
2511
2512 #. type: Plain text
2513 #: build/C/man2/perf_event_open.2:205
2514 #, no-wrap
2515 msgid ""
2516 "    __u64     sample_type;  /* Specifies values included in sample */\n"
2517 "    __u64     read_format;  /* Specifies values returned in read */\n"
2518 msgstr ""
2519
2520 #. type: Plain text
2521 #: build/C/man2/perf_event_open.2:231
2522 #, no-wrap
2523 msgid ""
2524 "    __u64     disabled       : 1,   /* off by default */\n"
2525 "              inherit        : 1,   /* children inherit it */\n"
2526 "              pinned         : 1,   /* must always be on PMU */\n"
2527 "              exclusive      : 1,   /* only group on PMU */\n"
2528 "              exclude_user   : 1,   /* don't count user */\n"
2529 "              exclude_kernel : 1,   /* don't count kernel */\n"
2530 "              exclude_hv     : 1,   /* don't count hypervisor */\n"
2531 "              exclude_idle   : 1,   /* don't count when idle */\n"
2532 "              mmap           : 1,   /* include mmap data */\n"
2533 "              comm           : 1,   /* include comm data */\n"
2534 "              freq           : 1,   /* use freq, not period */\n"
2535 "              inherit_stat   : 1,   /* per task counts */\n"
2536 "              enable_on_exec : 1,   /* next exec enables */\n"
2537 "              task           : 1,   /* trace fork/exit */\n"
2538 "              watermark      : 1,   /* wakeup_watermark */\n"
2539 "              precise_ip     : 2,   /* skid constraint */\n"
2540 "              mmap_data      : 1,   /* non-exec mmap data */\n"
2541 "              sample_id_all  : 1,   /* sample_type all events */\n"
2542 "              exclude_host   : 1,   /* don't count in host */\n"
2543 "              exclude_guest  : 1,   /* don't count in guest */\n"
2544 "              exclude_callchain_kernel : 1,\n"
2545 "                                    /* exclude kernel callchains */\n"
2546 "              exclude_callchain_user   : 1,\n"
2547 "\t                            /* exclude user callchains */\n"
2548 "              __reserved_1   : 41;\n"
2549 msgstr ""
2550
2551 #. type: Plain text
2552 #: build/C/man2/perf_event_open.2:236
2553 #, no-wrap
2554 msgid ""
2555 "    union {\n"
2556 "        __u32 wakeup_events;    /* wakeup every n events */\n"
2557 "        __u32 wakeup_watermark; /* bytes before wakeup */\n"
2558 "    };\n"
2559 msgstr ""
2560
2561 #. type: Plain text
2562 #: build/C/man2/perf_event_open.2:238
2563 #, no-wrap
2564 msgid "    __u32     bp_type;          /* breakpoint type */\n"
2565 msgstr ""
2566
2567 #. type: Plain text
2568 #: build/C/man2/perf_event_open.2:243
2569 #, no-wrap
2570 msgid ""
2571 "    union {\n"
2572 "        __u64 bp_addr;          /* breakpoint address */\n"
2573 "        __u64 config1;          /* extension of config */\n"
2574 "    };\n"
2575 msgstr ""
2576
2577 #. type: Plain text
2578 #: build/C/man2/perf_event_open.2:253
2579 #, no-wrap
2580 msgid ""
2581 "    union {\n"
2582 "        __u64 bp_len;           /* breakpoint length */\n"
2583 "        __u64 config2;          /* extension of config1 */\n"
2584 "    };\n"
2585 "    __u64   branch_sample_type; /* enum perf_branch_sample_type */\n"
2586 "    __u64   sample_regs_user;   /* user regs to dump on samples */\n"
2587 "    __u32   sample_stack_user;  /* size of stack to dump on\n"
2588 "                                   samples */\n"
2589 "    __u32   __reserved_2;       /* Align to u64 */\n"
2590 msgstr ""
2591
2592 #. type: Plain text
2593 #: build/C/man2/perf_event_open.2:255
2594 #, no-wrap
2595 msgid "};\n"
2596 msgstr ""
2597
2598 #. type: Plain text
2599 #: build/C/man2/perf_event_open.2:261
2600 msgid ""
2601 "The fields of the I<perf_event_attr> structure are described in more detail "
2602 "below:"
2603 msgstr ""
2604
2605 #. type: TP
2606 #: build/C/man2/perf_event_open.2:261 build/C/man2/perf_event_open.2:1379
2607 #, no-wrap
2608 msgid "I<type>"
2609 msgstr ""
2610
2611 #. type: Plain text
2612 #: build/C/man2/perf_event_open.2:265
2613 msgid ""
2614 "This field specifies the overall event type.  It has one of the following "
2615 "values:"
2616 msgstr ""
2617
2618 #. type: TP
2619 #: build/C/man2/perf_event_open.2:266
2620 #, no-wrap
2621 msgid "B<PERF_TYPE_HARDWARE>"
2622 msgstr ""
2623
2624 #. type: Plain text
2625 #: build/C/man2/perf_event_open.2:273
2626 msgid ""
2627 "This indicates one of the \"generalized\" hardware events provided by the "
2628 "kernel.  See the I<config> field definition for more details."
2629 msgstr ""
2630
2631 #. type: TP
2632 #: build/C/man2/perf_event_open.2:273
2633 #, no-wrap
2634 msgid "B<PERF_TYPE_SOFTWARE>"
2635 msgstr ""
2636
2637 #. type: Plain text
2638 #: build/C/man2/perf_event_open.2:277
2639 msgid ""
2640 "This indicates one of the software-defined events provided by the kernel "
2641 "(even if no hardware support is available)."
2642 msgstr ""
2643
2644 #. type: TP
2645 #: build/C/man2/perf_event_open.2:277
2646 #, no-wrap
2647 msgid "B<PERF_TYPE_TRACEPOINT>"
2648 msgstr "B<PERF_TYPE_TRACEPOINT>"
2649
2650 #. type: Plain text
2651 #: build/C/man2/perf_event_open.2:281
2652 msgid ""
2653 "This indicates a tracepoint provided by the kernel tracepoint infrastructure."
2654 msgstr ""
2655
2656 #. type: TP
2657 #: build/C/man2/perf_event_open.2:281
2658 #, no-wrap
2659 msgid "B<PERF_TYPE_HW_CACHE>"
2660 msgstr ""
2661
2662 #. type: Plain text
2663 #: build/C/man2/perf_event_open.2:287
2664 msgid ""
2665 "This indicates a hardware cache event.  This has a special encoding, "
2666 "described in the I<config> field definition."
2667 msgstr ""
2668
2669 #. type: TP
2670 #: build/C/man2/perf_event_open.2:287
2671 #, no-wrap
2672 msgid "B<PERF_TYPE_RAW>"
2673 msgstr ""
2674
2675 #. type: Plain text
2676 #: build/C/man2/perf_event_open.2:291
2677 msgid ""
2678 "This indicates a \"raw\" implementation-specific event in the I<config> "
2679 "field."
2680 msgstr ""
2681
2682 #. type: TP
2683 #: build/C/man2/perf_event_open.2:291
2684 #, no-wrap
2685 msgid "B<PERF_TYPE_BREAKPOINT> (Since Linux 2.6.33)"
2686 msgstr "B<PERF_TYPE_BREAKPOINT> (Linux 2.6.33 以降)"
2687
2688 #. type: Plain text
2689 #: build/C/man2/perf_event_open.2:296
2690 msgid ""
2691 "This indicates a hardware breakpoint as provided by the CPU.  Breakpoints "
2692 "can be read/write accesses to an address as well as execution of an "
2693 "instruction address."
2694 msgstr ""
2695
2696 #. type: TP
2697 #: build/C/man2/perf_event_open.2:296
2698 #, no-wrap
2699 msgid "dynamic PMU"
2700 msgstr ""
2701
2702 #. type: Plain text
2703 #: build/C/man2/perf_event_open.2:315
2704 msgid ""
2705 "Since Linux 2.6.39, B<perf_event_open>()  can support multiple PMUs.  To "
2706 "enable this, a value exported by the kernel can be used in the I<type> field "
2707 "to indicate which PMU to use.  The value to use can be found in the sysfs "
2708 "filesystem: there is a subdirectory per PMU instance under I</sys/bus/"
2709 "event_source/devices>.  In each sub-directory there is a I<type> file whose "
2710 "content is an integer that can be used in the I<type> field.  For instance, "
2711 "I</sys/bus/event_source/devices/cpu/type> contains the value for the core "
2712 "CPU PMU, which is usually 4."
2713 msgstr ""
2714
2715 #. type: TP
2716 #: build/C/man2/perf_event_open.2:316 build/C/man2/perf_event_open.2:1327
2717 #, no-wrap
2718 msgid "I<size>"
2719 msgstr ""
2720
2721 #. type: Plain text
2722 #: build/C/man2/perf_event_open.2:325
2723 msgid ""
2724 "The size of the I<perf_event_attr> structure for forward/backward "
2725 "compatibility.  Set this using I<sizeof(struct perf_event_attr)> to allow "
2726 "the kernel to see the struct size at the time of compilation."
2727 msgstr ""
2728
2729 #. type: Plain text
2730 #: build/C/man2/perf_event_open.2:340
2731 msgid ""
2732 "The related define B<PERF_ATTR_SIZE_VER0> is set to 64; this was the size of "
2733 "the first published struct.  B<PERF_ATTR_SIZE_VER1> is 72, corresponding to "
2734 "the addition of breakpoints in Linux 2.6.33.  B<PERF_ATTR_SIZE_VER2> is 80 "
2735 "corresponding to the addition of branch sampling in Linux 3.4.  "
2736 "B<PERF_ATR_SIZE_VER3> is 96 corresponding to the addition of "
2737 "I<sample_regs_user> and I<sample_stack_user> in Linux 3.7."
2738 msgstr ""
2739
2740 #. type: TP
2741 #: build/C/man2/perf_event_open.2:340
2742 #, no-wrap
2743 msgid "I<config>"
2744 msgstr ""
2745
2746 #. type: Plain text
2747 #: build/C/man2/perf_event_open.2:351
2748 msgid ""
2749 "This specifies which event you want, in conjunction with the I<type> field.  "
2750 "The I<config1> and I<config2> fields are also taken into account in cases "
2751 "where 64 bits is not enough to fully specify the event.  The encoding of "
2752 "these fields are event dependent."
2753 msgstr ""
2754
2755 #. type: Plain text
2756 #: build/C/man2/perf_event_open.2:357
2757 msgid ""
2758 "The most significant bit (bit 63) of I<config> signifies CPU-specific (raw) "
2759 "counter configuration data; if the most significant bit is unset, the next 7 "
2760 "bits are an event type and the rest of the bits are the event identifier."
2761 msgstr ""
2762
2763 #. type: Plain text
2764 #: build/C/man2/perf_event_open.2:368
2765 msgid ""
2766 "There are various ways to set the I<config> field that are dependent on the "
2767 "value of the previously described I<type> field.  What follows are various "
2768 "possible settings for I<config> separated out by I<type>."
2769 msgstr ""
2770
2771 #. type: Plain text
2772 #: build/C/man2/perf_event_open.2:378
2773 msgid ""
2774 "If I<type> is B<PERF_TYPE_HARDWARE>, we are measuring one of the generalized "
2775 "hardware CPU events.  Not all of these are available on all platforms.  Set "
2776 "I<config> to one of the following:"
2777 msgstr ""
2778
2779 #. type: TP
2780 #: build/C/man2/perf_event_open.2:379
2781 #, no-wrap
2782 msgid "B<PERF_COUNT_HW_CPU_CYCLES>"
2783 msgstr ""
2784
2785 #. type: Plain text
2786 #: build/C/man2/perf_event_open.2:383
2787 msgid "Total cycles.  Be wary of what happens during CPU frequency scaling."
2788 msgstr ""
2789
2790 #. type: TP
2791 #: build/C/man2/perf_event_open.2:383
2792 #, no-wrap
2793 msgid "B<PERF_COUNT_HW_INSTRUCTIONS>"
2794 msgstr ""
2795
2796 #. type: Plain text
2797 #: build/C/man2/perf_event_open.2:388
2798 msgid ""
2799 "Retired instructions.  Be careful, these can be affected by various issues, "
2800 "most notably hardware interrupt counts."
2801 msgstr ""
2802
2803 #. type: TP
2804 #: build/C/man2/perf_event_open.2:388
2805 #, no-wrap
2806 msgid "B<PERF_COUNT_HW_CACHE_REFERENCES>"
2807 msgstr ""
2808
2809 #. type: Plain text
2810 #: build/C/man2/perf_event_open.2:395
2811 msgid ""
2812 "Cache accesses.  Usually this indicates Last Level Cache accesses but this "
2813 "may vary depending on your CPU.  This may include prefetches and coherency "
2814 "messages; again this depends on the design of your CPU."
2815 msgstr ""
2816
2817 #. type: TP
2818 #: build/C/man2/perf_event_open.2:395
2819 #, no-wrap
2820 msgid "B<PERF_COUNT_HW_CACHE_MISSES>"
2821 msgstr ""
2822
2823 #. type: Plain text
2824 #: build/C/man2/perf_event_open.2:402
2825 msgid ""
2826 "Cache misses.  Usually this indicates Last Level Cache misses; this is "
2827 "intended to be used in conjunction with the "
2828 "B<PERF_COUNT_HW_CACHE_REFERENCES> event to calculate cache miss rates."
2829 msgstr ""
2830
2831 #. type: TP
2832 #: build/C/man2/perf_event_open.2:402
2833 #, no-wrap
2834 msgid "B<PERF_COUNT_HW_BRANCH_INSTRUCTIONS>"
2835 msgstr ""
2836
2837 #. type: Plain text
2838 #: build/C/man2/perf_event_open.2:407
2839 msgid ""
2840 "Retired branch instructions.  Prior to Linux 2.6.34, this used the wrong "
2841 "event on AMD processors."
2842 msgstr ""
2843
2844 #. type: TP
2845 #: build/C/man2/perf_event_open.2:407
2846 #, no-wrap
2847 msgid "B<PERF_COUNT_HW_BRANCH_MISSES>"
2848 msgstr ""
2849
2850 #. type: Plain text
2851 #: build/C/man2/perf_event_open.2:410
2852 msgid "Mispredicted branch instructions."
2853 msgstr ""
2854
2855 #. type: TP
2856 #: build/C/man2/perf_event_open.2:410
2857 #, no-wrap
2858 msgid "B<PERF_COUNT_HW_BUS_CYCLES>"
2859 msgstr ""
2860
2861 #. type: Plain text
2862 #: build/C/man2/perf_event_open.2:413
2863 msgid "Bus cycles, which can be different from total cycles."
2864 msgstr ""
2865
2866 #. type: TP
2867 #: build/C/man2/perf_event_open.2:413
2868 #, no-wrap
2869 msgid "B<PERF_COUNT_HW_STALLED_CYCLES_FRONTEND> (Since Linux 3.0)"
2870 msgstr "B<PERF_COUNT_HW_STALLED_CYCLES_FRONTEND> (Linux 3.0 以降)"
2871
2872 #. type: Plain text
2873 #: build/C/man2/perf_event_open.2:416
2874 msgid "Stalled cycles during issue."
2875 msgstr ""
2876
2877 #. type: TP
2878 #: build/C/man2/perf_event_open.2:416
2879 #, no-wrap
2880 msgid "B<PERF_COUNT_HW_STALLED_CYCLES_BACKEND> (Since Linux 3.0)"
2881 msgstr ""
2882
2883 #. type: Plain text
2884 #: build/C/man2/perf_event_open.2:419
2885 msgid "Stalled cycles during retirement."
2886 msgstr ""
2887
2888 #. type: TP
2889 #: build/C/man2/perf_event_open.2:419
2890 #, no-wrap
2891 msgid "B<PERF_COUNT_HW_REF_CPU_CYCLES> (Since Linux 3.3)"
2892 msgstr "B<PERF_COUNT_HW_REF_CPU_CYCLES> (Linux 3.3 以降)"
2893
2894 #. type: Plain text
2895 #: build/C/man2/perf_event_open.2:422
2896 msgid "Total cycles; not affected by CPU frequency scaling."
2897 msgstr ""
2898
2899 #. type: Plain text
2900 #: build/C/man2/perf_event_open.2:432
2901 msgid ""
2902 "If I<type> is B<PERF_TYPE_SOFTWARE>, we are measuring software events "
2903 "provided by the kernel.  Set I<config> to one of the following:"
2904 msgstr ""
2905
2906 #. type: TP
2907 #: build/C/man2/perf_event_open.2:433
2908 #, no-wrap
2909 msgid "B<PERF_COUNT_SW_CPU_CLOCK>"
2910 msgstr ""
2911
2912 #. type: Plain text
2913 #: build/C/man2/perf_event_open.2:436
2914 msgid "This reports the CPU clock, a high-resolution per-CPU timer."
2915 msgstr ""
2916
2917 #. type: TP
2918 #: build/C/man2/perf_event_open.2:436
2919 #, no-wrap
2920 msgid "B<PERF_COUNT_SW_TASK_CLOCK>"
2921 msgstr ""
2922
2923 #. type: Plain text
2924 #: build/C/man2/perf_event_open.2:439
2925 msgid "This reports a clock count specific to the task that is running."
2926 msgstr ""
2927
2928 #. type: TP
2929 #: build/C/man2/perf_event_open.2:439
2930 #, no-wrap
2931 msgid "B<PERF_COUNT_SW_PAGE_FAULTS>"
2932 msgstr ""
2933
2934 #. type: Plain text
2935 #: build/C/man2/perf_event_open.2:442
2936 msgid "This reports the number of page faults."
2937 msgstr ""
2938
2939 #. type: TP
2940 #: build/C/man2/perf_event_open.2:442
2941 #, no-wrap
2942 msgid "B<PERF_COUNT_SW_CONTEXT_SWITCHES>"
2943 msgstr ""
2944
2945 #. type: Plain text
2946 #: build/C/man2/perf_event_open.2:447
2947 msgid ""
2948 "This counts context switches.  Until Linux 2.6.34, these were all reported "
2949 "as user-space events, after that they are reported as happening in the "
2950 "kernel."
2951 msgstr ""
2952
2953 #. type: TP
2954 #: build/C/man2/perf_event_open.2:447
2955 #, no-wrap
2956 msgid "B<PERF_COUNT_SW_CPU_MIGRATIONS>"
2957 msgstr ""
2958
2959 #. type: Plain text
2960 #: build/C/man2/perf_event_open.2:451
2961 msgid "This reports the number of times the process has migrated to a new CPU."
2962 msgstr ""
2963
2964 #. type: TP
2965 #: build/C/man2/perf_event_open.2:451
2966 #, no-wrap
2967 msgid "B<PERF_COUNT_SW_PAGE_FAULTS_MIN>"
2968 msgstr ""
2969
2970 #. type: Plain text
2971 #: build/C/man2/perf_event_open.2:455
2972 msgid ""
2973 "This counts the number of minor page faults.  These did not require disk I/O "
2974 "to handle."
2975 msgstr ""
2976
2977 #. type: TP
2978 #: build/C/man2/perf_event_open.2:455
2979 #, no-wrap
2980 msgid "B<PERF_COUNT_SW_PAGE_FAULTS_MAJ>"
2981 msgstr ""
2982
2983 #. type: Plain text
2984 #: build/C/man2/perf_event_open.2:459
2985 msgid ""
2986 "This counts the number of major page faults.  These required disk I/O to "
2987 "handle."
2988 msgstr ""
2989
2990 #. type: TP
2991 #: build/C/man2/perf_event_open.2:459
2992 #, no-wrap
2993 msgid "B<PERF_COUNT_SW_ALIGNMENT_FAULTS> (Since Linux 2.6.33)"
2994 msgstr "B<PERF_COUNT_SW_ALIGNMENT_FAULTS> (Linux 2.6.33 以降)"
2995
2996 #. type: Plain text
2997 #: build/C/man2/perf_event_open.2:465
2998 msgid ""
2999 "This counts the number of alignment faults.  These happen when unaligned "
3000 "memory accesses happen; the kernel can handle these but it reduces "
3001 "performance.  This happens only on some architectures (never on x86)."
3002 msgstr ""
3003
3004 #. type: TP
3005 #: build/C/man2/perf_event_open.2:465
3006 #, no-wrap
3007 msgid "B<PERF_COUNT_SW_EMULATION_FAULTS> (Since Linux 2.6.33)"
3008 msgstr "B<PERF_COUNT_SW_EMULATION_FAULTS> (Linux 2.6.33 以降)"
3009
3010 #. type: Plain text
3011 #: build/C/man2/perf_event_open.2:471
3012 msgid ""
3013 "This counts the number of emulation faults.  The kernel sometimes traps on "
3014 "unimplemented instructions and emulates them for user space.  This can "
3015 "negatively impact performance."
3016 msgstr ""
3017
3018 #. type: Plain text
3019 #: build/C/man2/perf_event_open.2:484
3020 msgid ""
3021 "If I<type> is B<PERF_TYPE_TRACEPOINT>, then we are measuring kernel "
3022 "tracepoints.  The value to use in I<config> can be obtained from under "
3023 "debugfs I<tracing/events/*/*/id> if ftrace is enabled in the kernel."
3024 msgstr ""
3025
3026 #. type: Plain text
3027 #: build/C/man2/perf_event_open.2:495
3028 msgid ""
3029 "If I<type> is B<PERF_TYPE_HW_CACHE>, then we are measuring a hardware CPU "
3030 "cache event.  To calculate the appropriate I<config> value use the following "
3031 "equation:"
3032 msgstr ""
3033
3034 #. type: Plain text
3035 #: build/C/man2/perf_event_open.2:500
3036 #, no-wrap
3037 msgid ""
3038 "    (perf_hw_cache_id) | (perf_hw_cache_op_id E<lt>E<lt> 8) |\n"
3039 "    (perf_hw_cache_op_result_id E<lt>E<lt> 16)\n"
3040 msgstr ""
3041
3042 #. type: Plain text
3043 #: build/C/man2/perf_event_open.2:505
3044 msgid "where I<perf_hw_cache_id> is one of:"
3045 msgstr ""
3046
3047 #. type: TP
3048 #: build/C/man2/perf_event_open.2:506
3049 #, no-wrap
3050 msgid "B<PERF_COUNT_HW_CACHE_L1D>"
3051 msgstr ""
3052
3053 #. type: Plain text
3054 #: build/C/man2/perf_event_open.2:509
3055 msgid "for measuring Level 1 Data Cache"
3056 msgstr ""
3057
3058 #. type: TP
3059 #: build/C/man2/perf_event_open.2:509
3060 #, no-wrap
3061 msgid "B<PERF_COUNT_HW_CACHE_L1I>"
3062 msgstr ""
3063
3064 #. type: Plain text
3065 #: build/C/man2/perf_event_open.2:512
3066 msgid "for measuring Level 1 Instruction Cache"
3067 msgstr ""
3068
3069 #. type: TP
3070 #: build/C/man2/perf_event_open.2:512
3071 #, no-wrap
3072 msgid "B<PERF_COUNT_HW_CACHE_LL>"
3073 msgstr ""
3074
3075 #. type: Plain text
3076 #: build/C/man2/perf_event_open.2:515
3077 msgid "for measuring Last-Level Cache"
3078 msgstr ""
3079
3080 #. type: TP
3081 #: build/C/man2/perf_event_open.2:515
3082 #, no-wrap
3083 msgid "B<PERF_COUNT_HW_CACHE_DTLB>"
3084 msgstr ""
3085
3086 #. type: Plain text
3087 #: build/C/man2/perf_event_open.2:518
3088 msgid "for measuring the Data TLB"
3089 msgstr ""
3090
3091 #. type: TP
3092 #: build/C/man2/perf_event_open.2:518
3093 #, no-wrap
3094 msgid "B<PERF_COUNT_HW_CACHE_ITLB>"
3095 msgstr ""
3096
3097 #. type: Plain text
3098 #: build/C/man2/perf_event_open.2:521
3099 msgid "for measuring the Instruction TLB"
3100 msgstr ""
3101
3102 #. type: TP
3103 #: build/C/man2/perf_event_open.2:521
3104 #, no-wrap
3105 msgid "B<PERF_COUNT_HW_CACHE_BPU>"
3106 msgstr ""
3107
3108 #. type: Plain text
3109 #: build/C/man2/perf_event_open.2:524
3110 msgid "for measuring the branch prediction unit"
3111 msgstr ""
3112
3113 #. type: TP
3114 #: build/C/man2/perf_event_open.2:524
3115 #, no-wrap
3116 msgid "B<PERF_COUNT_HW_CACHE_NODE> (Since Linux 3.0)"
3117 msgstr "B<PERF_COUNT_HW_CACHE_NODE> (Linux 3.0 以降)"
3118
3119 #. type: Plain text
3120 #: build/C/man2/perf_event_open.2:527
3121 msgid "for measuring local memory accesses"
3122 msgstr ""
3123
3124 #. type: Plain text
3125 #: build/C/man2/perf_event_open.2:532
3126 msgid "and I<perf_hw_cache_op_id> is one of"
3127 msgstr ""
3128
3129 #. type: TP
3130 #: build/C/man2/perf_event_open.2:533
3131 #, no-wrap
3132 msgid "B<PERF_COUNT_HW_CACHE_OP_READ>"
3133 msgstr ""
3134
3135 #. type: Plain text
3136 #: build/C/man2/perf_event_open.2:536
3137 msgid "for read accesses"
3138 msgstr ""
3139
3140 #. type: TP
3141 #: build/C/man2/perf_event_open.2:536
3142 #, no-wrap
3143 msgid "B<PERF_COUNT_HW_CACHE_OP_WRITE>"
3144 msgstr ""
3145
3146 #. type: Plain text
3147 #: build/C/man2/perf_event_open.2:539
3148 msgid "for write accesses"
3149 msgstr ""
3150
3151 #. type: TP
3152 #: build/C/man2/perf_event_open.2:539
3153 #, no-wrap
3154 msgid "B<PERF_COUNT_HW_CACHE_OP_PREFETCH>"
3155 msgstr ""
3156
3157 #. type: Plain text
3158 #: build/C/man2/perf_event_open.2:542
3159 msgid "for prefetch accesses"
3160 msgstr ""
3161
3162 #. type: Plain text
3163 #: build/C/man2/perf_event_open.2:547
3164 msgid "and I<perf_hw_cache_op_result_id> is one of"
3165 msgstr ""
3166
3167 #. type: TP
3168 #: build/C/man2/perf_event_open.2:548
3169 #, no-wrap
3170 msgid "B<PERF_COUNT_HW_CACHE_RESULT_ACCESS>"
3171 msgstr ""
3172
3173 #. type: Plain text
3174 #: build/C/man2/perf_event_open.2:551
3175 msgid "to measure accesses"
3176 msgstr ""
3177
3178 #. type: TP
3179 #: build/C/man2/perf_event_open.2:551
3180 #, no-wrap
3181 msgid "B<PERF_COUNT_HW_CACHE_RESULT_MISS>"
3182 msgstr ""
3183
3184 #. type: Plain text
3185 #: build/C/man2/perf_event_open.2:554
3186 msgid "to measure misses"
3187 msgstr ""
3188
3189 #. type: Plain text
3190 #: build/C/man2/perf_event_open.2:572
3191 msgid ""
3192 "If I<type> is B<PERF_TYPE_RAW>, then a custom \"raw\" I<config> value is "
3193 "needed.  Most CPUs support events that are not covered by the \"generalized"
3194 "\" events.  These are implementation defined; see your CPU manual (for "
3195 "example the Intel Volume 3B documentation or the AMD BIOS and Kernel "
3196 "Developer Guide).  The libpfm4 library can be used to translate from the "
3197 "name in the architectural manuals to the raw hex value B<perf_event_open>()  "
3198 "expects in this field."
3199 msgstr ""
3200
3201 #. type: Plain text
3202 #: build/C/man2/perf_event_open.2:581
3203 msgid ""
3204 "If I<type> is B<PERF_TYPE_BREAKPOINT>, then leave I<config> set to zero.  "
3205 "Its parameters are set in other places."
3206 msgstr ""
3207
3208 #. type: TP
3209 #: build/C/man2/perf_event_open.2:582
3210 #, no-wrap
3211 msgid "I<sample_period>, I<sample_freq>"
3212 msgstr ""
3213
3214 #. type: Plain text
3215 #: build/C/man2/perf_event_open.2:594
3216 msgid ""
3217 "A \"sampling\" counter is one that generates an interrupt every N events, "
3218 "where N is given by I<sample_period>.  A sampling counter has "
3219 "I<sample_period> E<gt> 0.  When an overflow interrupt occurs, requested data "
3220 "is recorded in the mmap buffer.  The I<sample_type> field controls what data "
3221 "is recorded on each interrupt."
3222 msgstr ""
3223
3224 #. type: Plain text
3225 #: build/C/man2/perf_event_open.2:604
3226 msgid ""
3227 "I<sample_freq> can be used if you wish to use frequency rather than period.  "
3228 "In this case you set the I<freq> flag.  The kernel will adjust the sampling "
3229 "period to try and achieve the desired rate.  The rate of adjustment is a "
3230 "timer tick."
3231 msgstr ""
3232
3233 #. type: TP
3234 #: build/C/man2/perf_event_open.2:604
3235 #, no-wrap
3236 msgid "I<sample_type>"
3237 msgstr ""
3238
3239 #. type: Plain text
3240 #: build/C/man2/perf_event_open.2:616
3241 msgid ""
3242 "The various bits in this field specify which values to include in the "
3243 "sample.  They will be recorded in a ring-buffer, which is available to user "
3244 "space using B<mmap>(2).  The order in which the values are saved in the "
3245 "sample are documented in the MMAP Layout subsection below; it is not the "
3246 "I<enum perf_event_sample_format> order."
3247 msgstr ""
3248
3249 #. type: TP
3250 #: build/C/man2/perf_event_open.2:617
3251 #, no-wrap
3252 msgid "B<PERF_SAMPLE_IP>"
3253 msgstr ""
3254
3255 #. type: Plain text
3256 #: build/C/man2/perf_event_open.2:620
3257 msgid "Records instruction pointer."
3258 msgstr ""
3259
3260 #. type: TP
3261 #: build/C/man2/perf_event_open.2:620
3262 #, no-wrap
3263 msgid "B<PERF_SAMPLE_TID>"
3264 msgstr ""
3265
3266 #. type: Plain text
3267 #: build/C/man2/perf_event_open.2:623
3268 msgid "Records the process and thread IDs."
3269 msgstr ""
3270
3271 #. type: TP
3272 #: build/C/man2/perf_event_open.2:623
3273 #, no-wrap
3274 msgid "B<PERF_SAMPLE_TIME>"
3275 msgstr ""
3276
3277 #. type: Plain text
3278 #: build/C/man2/perf_event_open.2:626
3279 msgid "Records a timestamp."
3280 msgstr ""
3281
3282 #. type: TP
3283 #: build/C/man2/perf_event_open.2:626
3284 #, no-wrap
3285 msgid "B<PERF_SAMPLE_ADDR>"
3286 msgstr ""
3287
3288 #. type: Plain text
3289 #: build/C/man2/perf_event_open.2:629
3290 msgid "Records an address, if applicable."
3291 msgstr ""
3292
3293 #. type: TP
3294 #: build/C/man2/perf_event_open.2:629
3295 #, no-wrap
3296 msgid "B<PERF_SAMPLE_READ>"
3297 msgstr ""
3298
3299 #. type: Plain text
3300 #: build/C/man2/perf_event_open.2:632
3301 msgid ""
3302 "Record counter values for all events in a group, not just the group leader."
3303 msgstr ""
3304
3305 #. type: TP
3306 #: build/C/man2/perf_event_open.2:632
3307 #, no-wrap
3308 msgid "B<PERF_SAMPLE_CALLCHAIN>"
3309 msgstr ""
3310
3311 #. type: Plain text
3312 #: build/C/man2/perf_event_open.2:635
3313 msgid "Records the callchain (stack backtrace)."
3314 msgstr ""
3315
3316 #. type: TP
3317 #: build/C/man2/perf_event_open.2:635
3318 #, no-wrap
3319 msgid "B<PERF_SAMPLE_ID>"
3320 msgstr ""
3321
3322 #. type: Plain text
3323 #: build/C/man2/perf_event_open.2:638
3324 msgid "Records a unique ID for the opened event's group leader."
3325 msgstr ""
3326
3327 #. type: TP
3328 #: build/C/man2/perf_event_open.2:638
3329 #, no-wrap
3330 msgid "B<PERF_SAMPLE_CPU>"
3331 msgstr ""
3332
3333 #. type: Plain text
3334 #: build/C/man2/perf_event_open.2:641
3335 msgid "Records CPU number."
3336 msgstr ""
3337
3338 #. type: TP
3339 #: build/C/man2/perf_event_open.2:641
3340 #, no-wrap
3341 msgid "B<PERF_SAMPLE_PERIOD>"
3342 msgstr ""
3343
3344 #. type: Plain text
3345 #: build/C/man2/perf_event_open.2:644
3346 msgid "Records the current sampling period."
3347 msgstr ""
3348
3349 #. type: TP
3350 #: build/C/man2/perf_event_open.2:644
3351 #, no-wrap
3352 msgid "B<PERF_SAMPLE_STREAM_ID>"
3353 msgstr ""
3354
3355 #. type: Plain text
3356 #: build/C/man2/perf_event_open.2:651
3357 msgid ""
3358 "Records a unique ID for the opened event.  Unlike B<PERF_SAMPLE_ID> the "
3359 "actual ID is returned, not the group leader.  This ID is the same as the one "
3360 "returned by PERF_FORMAT_ID."
3361 msgstr ""
3362
3363 #. type: TP
3364 #: build/C/man2/perf_event_open.2:651
3365 #, no-wrap
3366 msgid "B<PERF_SAMPLE_RAW>"
3367 msgstr ""
3368
3369 #. type: Plain text
3370 #: build/C/man2/perf_event_open.2:655
3371 msgid ""
3372 "Records additional data, if applicable.  Usually returned by tracepoint "
3373 "events."
3374 msgstr ""
3375
3376 #. type: TP
3377 #: build/C/man2/perf_event_open.2:655
3378 #, no-wrap
3379 msgid "B<PERF_SAMPLE_BRANCH_STACK> (Since Linux 3.4)"
3380 msgstr "B<PERF_SAMPLE_BRANCH_STACK> (Linux 3.4 以降)"
3381
3382 #. type: Plain text
3383 #: build/C/man2/perf_event_open.2:660
3384 msgid ""
3385 "This provides a record of recent branches, as provided by CPU branch "
3386 "sampling hardware (such as Intel Last Branch Record).  Not all hardware "
3387 "supports this feature."
3388 msgstr ""
3389
3390 #. type: Plain text
3391 #: build/C/man2/perf_event_open.2:664
3392 msgid ""
3393 "See the I<branch_sample_type> field for how to filter which branches are "
3394 "reported."
3395 msgstr ""
3396
3397 #. type: TP
3398 #: build/C/man2/perf_event_open.2:664
3399 #, no-wrap
3400 msgid "B<PERF_SAMPLE_REGS_USER> (Since Linux 3.7)"
3401 msgstr "B<PERF_SAMPLE_REGS_USER> (Linux 3.7 以降)"
3402
3403 #. type: Plain text
3404 #: build/C/man2/perf_event_open.2:668
3405 msgid ""
3406 "Records the current user-level CPU register state (the values in the process "
3407 "before the kernel was called)."
3408 msgstr ""
3409
3410 #. type: TP
3411 #: build/C/man2/perf_event_open.2:668
3412 #, no-wrap
3413 msgid "B<PERF_SAMPLE_STACK_USER> (Since Linux 3.7)"
3414 msgstr "B<PERF_SAMPLE_STACK_USER> (Linux 3.7 以降)"
3415
3416 #. type: Plain text
3417 #: build/C/man2/perf_event_open.2:671
3418 msgid "Records the user level stack, allowing stack unwinding."
3419 msgstr ""
3420
3421 #. type: TP
3422 #: build/C/man2/perf_event_open.2:671
3423 #, no-wrap
3424 msgid "B<PERF_SAMPLE_WEIGHT> (Since Linux 3.10)"
3425 msgstr "B<PERF_SAMPLE_WEIGHT> (Linux 3.10 以降)"
3426
3427 #. type: Plain text
3428 #: build/C/man2/perf_event_open.2:677
3429 msgid ""
3430 "Records a hardware provided weight value that expresses how costly the "
3431 "sampled event was.  This allows the hardware to highlight expensive events "
3432 "in a profile."
3433 msgstr ""
3434
3435 #. type: TP
3436 #: build/C/man2/perf_event_open.2:677
3437 #, no-wrap
3438 msgid "B<PERF_SAMPLE_DATA_SRC> (Since Linux 3.10)"
3439 msgstr "B<PERF_SAMPLE_DATA_SRC> (Linux 3.10 以降)"
3440
3441 #. type: Plain text
3442 #: build/C/man2/perf_event_open.2:683
3443 msgid ""
3444 "Records the data source: where in the memory hierarchy the data associated "
3445 "with the sampled instruction came from.  This is only available if the "
3446 "underlying hardware supports this feature."
3447 msgstr ""
3448
3449 #. type: TP
3450 #: build/C/man2/perf_event_open.2:684
3451 #, no-wrap
3452 msgid "I<read_format>"
3453 msgstr ""
3454
3455 #. type: Plain text
3456 #: build/C/man2/perf_event_open.2:691
3457 msgid ""
3458 "This field specifies the format of the data returned by B<read>(2)  on a "
3459 "B<perf_event_open>()  file descriptor."
3460 msgstr ""
3461
3462 #. type: TP
3463 #: build/C/man2/perf_event_open.2:692
3464 #, no-wrap
3465 msgid "B<PERF_FORMAT_TOTAL_TIME_ENABLED>"
3466 msgstr ""
3467
3468 #. type: Plain text
3469 #: build/C/man2/perf_event_open.2:699
3470 msgid ""
3471 "Adds the 64-bit I<time_enabled> field.  This can be used to calculate "
3472 "estimated totals if the PMU is overcommitted and multiplexing is happening."
3473 msgstr ""
3474
3475 #. type: TP
3476 #: build/C/man2/perf_event_open.2:699
3477 #, no-wrap
3478 msgid "B<PERF_FORMAT_TOTAL_TIME_RUNNING>"
3479 msgstr ""
3480
3481 #. type: Plain text
3482 #: build/C/man2/perf_event_open.2:706
3483 msgid ""
3484 "Adds the 64-bit I<time_running> field.  This can be used to calculate "
3485 "estimated totals if the PMU is overcommitted and multiplexing is happening."
3486 msgstr ""
3487
3488 #. type: TP
3489 #: build/C/man2/perf_event_open.2:706
3490 #, no-wrap
3491 msgid "B<PERF_FORMAT_ID>"
3492 msgstr ""
3493
3494 #. type: Plain text
3495 #: build/C/man2/perf_event_open.2:709
3496 msgid "Adds a 64-bit unique value that corresponds to the event group."
3497 msgstr ""
3498
3499 #. type: TP
3500 #: build/C/man2/perf_event_open.2:709
3501 #, no-wrap
3502 msgid "B<PERF_FORMAT_GROUP>"
3503 msgstr ""
3504
3505 #. type: Plain text
3506 #: build/C/man2/perf_event_open.2:712
3507 msgid "Allows all counter values in an event group to be read with one read."
3508 msgstr ""
3509
3510 #. type: TP
3511 #: build/C/man2/perf_event_open.2:713
3512 #, no-wrap
3513 msgid "I<disabled>"
3514 msgstr ""
3515
3516 #. type: Plain text
3517 #: build/C/man2/perf_event_open.2:723
3518 msgid ""
3519 "The I<disabled> bit specifies whether the counter starts out disabled or "
3520 "enabled.  If disabled, the event can later be enabled by B<ioctl>(2), "
3521 "B<prctl>(2), or I<enable_on_exec>."
3522 msgstr ""
3523
3524 #. type: TP
3525 #: build/C/man2/perf_event_open.2:723
3526 #, no-wrap
3527 msgid "I<inherit>"
3528 msgstr ""
3529
3530 #. type: Plain text
3531 #: build/C/man2/perf_event_open.2:732
3532 msgid ""
3533 "The I<inherit> bit specifies that this counter should count events of child "
3534 "tasks as well as the task specified.  This applies only to new children, not "
3535 "to any existing children at the time the counter is created (nor to any new "
3536 "children of existing children)."
3537 msgstr ""
3538
3539 #. type: Plain text
3540 #: build/C/man2/perf_event_open.2:737
3541 msgid ""
3542 "Inherit does not work for some combinations of I<read_format>s, such as "
3543 "B<PERF_FORMAT_GROUP>."
3544 msgstr ""
3545
3546 #. type: TP
3547 #: build/C/man2/perf_event_open.2:737
3548 #, no-wrap
3549 msgid "I<pinned>"
3550 msgstr ""
3551
3552 #. type: Plain text
3553 #: build/C/man2/perf_event_open.2:750
3554 msgid ""
3555 "The I<pinned> bit specifies that the counter should always be on the CPU if "
3556 "at all possible.  It applies only to hardware counters and only to group "
3557 "leaders.  If a pinned counter cannot be put onto the CPU (e.g., because "
3558 "there are not enough hardware counters or because of a conflict with some "
3559 "other event), then the counter goes into an 'error' state, where reads "
3560 "return end-of-file (i.e., B<read>(2)  returns 0) until the counter is "
3561 "subsequently enabled or disabled."
3562 msgstr ""
3563
3564 #. type: TP
3565 #: build/C/man2/perf_event_open.2:750
3566 #, no-wrap
3567 msgid "I<exclusive>"
3568 msgstr ""
3569
3570 #. type: Plain text
3571 #: build/C/man2/perf_event_open.2:759
3572 msgid ""
3573 "The I<exclusive> bit specifies that when this counter's group is on the CPU, "
3574 "it should be the only group using the CPU's counters.  In the future this "
3575 "may allow monitoring programs to support PMU features that need to run alone "
3576 "so that they do not disrupt other hardware counters."
3577 msgstr ""
3578
3579 #. type: TP
3580 #: build/C/man2/perf_event_open.2:759
3581 #, no-wrap
3582 msgid "I<exclude_user>"
3583 msgstr ""
3584
3585 #. type: Plain text
3586 #: build/C/man2/perf_event_open.2:762
3587 msgid ""
3588 "If this bit is set, the count excludes events that happen in user space."
3589 msgstr ""
3590
3591 #. type: TP
3592 #: build/C/man2/perf_event_open.2:762
3593 #, no-wrap
3594 msgid "I<exclude_kernel>"
3595 msgstr ""
3596
3597 #. type: Plain text
3598 #: build/C/man2/perf_event_open.2:765
3599 msgid ""
3600 "If this bit is set, the count excludes events that happen in kernel-space."
3601 msgstr ""
3602
3603 #. type: TP
3604 #: build/C/man2/perf_event_open.2:765
3605 #, no-wrap
3606 msgid "I<exclude_hv>"
3607 msgstr ""
3608
3609 #. type: Plain text
3610 #: build/C/man2/perf_event_open.2:773
3611 msgid ""
3612 "If this bit is set, the count excludes events that happen in the "
3613 "hypervisor.  This is mainly for PMUs that have built-in support for handling "
3614 "this (such as POWER).  Extra support is needed for handling hypervisor "
3615 "measurements on most machines."
3616 msgstr ""
3617
3618 #. type: TP
3619 #: build/C/man2/perf_event_open.2:773
3620 #, no-wrap
3621 msgid "I<exclude_idle>"
3622 msgstr ""
3623
3624 #. type: Plain text
3625 #: build/C/man2/perf_event_open.2:776
3626 msgid "If set, don't count when the CPU is idle."
3627 msgstr ""
3628
3629 #. type: TP
3630 #: build/C/man2/perf_event_open.2:776
3631 #, no-wrap
3632 msgid "I<mmap>"
3633 msgstr ""
3634
3635 #. type: Plain text
3636 #: build/C/man2/perf_event_open.2:781
3637 msgid "The I<mmap> bit enables recording of exec mmap events."
3638 msgstr ""
3639
3640 #. type: TP
3641 #: build/C/man2/perf_event_open.2:781
3642 #, no-wrap
3643 msgid "I<comm>"
3644 msgstr ""
3645
3646 #. type: Plain text
3647 #: build/C/man2/perf_event_open.2:792
3648 msgid ""
3649 "The I<comm> bit enables tracking of process command name as modified by the "
3650 "I<exec>(2)  and I<prctl>(PR_SET_NAME)  system calls.  Unfortunately for "
3651 "tools, there is no way to distinguish one system call versus the other."
3652 msgstr ""
3653
3654 #. type: TP
3655 #: build/C/man2/perf_event_open.2:792
3656 #, no-wrap
3657 msgid "I<freq>"
3658 msgstr ""
3659
3660 #. type: Plain text
3661 #: build/C/man2/perf_event_open.2:799
3662 msgid ""
3663 "If this bit is set, then I<sample_frequency> not I<sample_period> is used "
3664 "when setting up the sampling interval."
3665 msgstr ""
3666
3667 #. type: TP
3668 #: build/C/man2/perf_event_open.2:799
3669 #, no-wrap
3670 msgid "I<inherit_stat>"
3671 msgstr ""
3672
3673 #. type: Plain text
3674 #: build/C/man2/perf_event_open.2:806
3675 msgid ""
3676 "This bit enables saving of event counts on context switch for inherited "
3677 "tasks.  This is meaningful only if the I<inherit> field is set."
3678 msgstr ""
3679
3680 #. type: TP
3681 #: build/C/man2/perf_event_open.2:806
3682 #, no-wrap
3683 msgid "I<enable_on_exec>"
3684 msgstr ""
3685
3686 #. type: Plain text
3687 #: build/C/man2/perf_event_open.2:811
3688 msgid ""
3689 "If this bit is set, a counter is automatically enabled after a call to "
3690 "B<exec>(2)."
3691 msgstr ""
3692
3693 #. type: TP
3694 #: build/C/man2/perf_event_open.2:811
3695 #, no-wrap
3696 msgid "I<task>"
3697 msgstr ""
3698
3699 #. type: Plain text
3700 #: build/C/man2/perf_event_open.2:815
3701 msgid ""
3702 "If this bit is set, then fork/exit notifications are included in the ring "
3703 "buffer."
3704 msgstr ""
3705
3706 #. type: TP
3707 #: build/C/man2/perf_event_open.2:815
3708 #, no-wrap
3709 msgid "I<watermark>"
3710 msgstr ""
3711
3712 #. type: Plain text
3713 #: build/C/man2/perf_event_open.2:823
3714 msgid ""
3715 "If set, have a sampling interrupt happen when we cross the "
3716 "I<wakeup_watermark> boundary.  Otherwise interrupts happen after "
3717 "I<wakeup_events> samples."
3718 msgstr ""
3719
3720 #. type: TP
3721 #: build/C/man2/perf_event_open.2:823
3722 #, no-wrap
3723 msgid "I<precise_ip> (Since Linux 2.6.35)"
3724 msgstr "I<precise_ip> (Linux 2.6.35 以降)"
3725
3726 #. type: Plain text
3727 #: build/C/man2/perf_event_open.2:833
3728 msgid ""
3729 "This controls the amount of skid.  Skid is how many instructions execute "
3730 "between an event of interest happening and the kernel being able to stop and "
3731 "record the event.  Smaller skid is better and allows more accurate reporting "
3732 "of which events correspond to which instructions, but hardware is often "
3733 "limited with how small this can be."
3734 msgstr ""
3735
3736 #. type: Plain text
3737 #: build/C/man2/perf_event_open.2:835
3738 #, fuzzy
3739 #| msgid "The I<subcmd> value is one of the following:"
3740 msgid "The values of this are the following:"
3741 msgstr "I<subcmd> の値は以下のいずれかである"
3742
3743 #. type: TP
3744 #: build/C/man2/perf_event_open.2:836
3745 #, no-wrap
3746 msgid "0 -"
3747 msgstr ""
3748
3749 #. type: Plain text
3750 #: build/C/man2/perf_event_open.2:840
3751 msgid "B<SAMPLE_IP> can have arbitrary skid."
3752 msgstr ""
3753
3754 #. type: TP
3755 #: build/C/man2/perf_event_open.2:840
3756 #, no-wrap
3757 msgid "1 -"
3758 msgstr ""
3759
3760 #. type: Plain text
3761 #: build/C/man2/perf_event_open.2:844
3762 msgid "B<SAMPLE_IP> must have constant skid."
3763 msgstr ""
3764
3765 #. type: TP
3766 #: build/C/man2/perf_event_open.2:844
3767 #, no-wrap
3768 msgid "2 -"
3769 msgstr ""
3770
3771 #. type: Plain text
3772 #: build/C/man2/perf_event_open.2:848
3773 msgid "B<SAMPLE_IP> requested to have 0 skid."
3774 msgstr ""
3775
3776 #. type: TP
3777 #: build/C/man2/perf_event_open.2:848
3778 #, no-wrap
3779 msgid "3 -"
3780 msgstr ""
3781
3782 #. type: Plain text
3783 #: build/C/man2/perf_event_open.2:854
3784 msgid "B<SAMPLE_IP> must have 0 skid.  See also B<PERF_RECORD_MISC_EXACT_IP>."
3785 msgstr ""
3786
3787 #. type: TP
3788 #: build/C/man2/perf_event_open.2:855
3789 #, no-wrap
3790 msgid "I<mmap_data> (Since Linux 2.6.36)"
3791 msgstr "I<mmap_data> (Linux 2.6.36 以降)"
3792
3793 #. type: Plain text
3794 #: build/C/man2/perf_event_open.2:861
3795 msgid ""
3796 "The counterpart of the I<mmap> field, but enables including data mmap events "
3797 "in the ring-buffer."
3798 msgstr ""
3799
3800 #. type: TP
3801 #: build/C/man2/perf_event_open.2:861
3802 #, no-wrap
3803 msgid "I<sample_id_all> (Since Linux 2.6.38)"
3804 msgstr "I<sample_id_all> (Linux 2.6.38 以降)"
3805
3806 #. type: Plain text
3807 #: build/C/man2/perf_event_open.2:869
3808 msgid ""
3809 "If set, then TID, TIME, ID, CPU, and STREAM_ID can additionally be included "
3810 "in non-B<PERF_RECORD_SAMPLE>s if the corresponding I<sample_type> is "
3811 "selected."
3812 msgstr ""
3813
3814 #. type: TP
3815 #: build/C/man2/perf_event_open.2:869
3816 #, no-wrap
3817 msgid "I<exclude_host> (Since Linux 3.2)"
3818 msgstr ""
3819
3820 #. type: Plain text
3821 #: build/C/man2/perf_event_open.2:872
3822 msgid "Do not measure time spent in VM host."
3823 msgstr ""
3824
3825 #. type: TP
3826 #: build/C/man2/perf_event_open.2:872
3827 #, no-wrap
3828 msgid "I<exclude_guest> (Since Linux 3.2)"
3829 msgstr ""
3830
3831 #. type: Plain text
3832 #: build/C/man2/perf_event_open.2:875
3833 msgid "Do not measure time spent in VM guest."
3834 msgstr ""
3835
3836 #. type: TP
3837 #: build/C/man2/perf_event_open.2:875
3838 #, no-wrap
3839 msgid "I<exclude_callchain_kernel> (Since Linux 3.7)"
3840 msgstr ""
3841
3842 #. type: Plain text
3843 #: build/C/man2/perf_event_open.2:878
3844 msgid "Do not include kernel callchains."
3845 msgstr ""
3846
3847 #. type: TP
3848 #: build/C/man2/perf_event_open.2:878
3849 #, no-wrap
3850 msgid "I<exclude_callchain_user> (Since Linux 3.7)"
3851 msgstr ""
3852
3853 #. type: Plain text
3854 #: build/C/man2/perf_event_open.2:881
3855 msgid "Do not include user callchains."
3856 msgstr ""
3857
3858 #. type: TP
3859 #: build/C/man2/perf_event_open.2:881
3860 #, no-wrap
3861 msgid "I<wakeup_events>, I<wakeup_watermark>"
3862 msgstr ""
3863
3864 #. type: Plain text
3865 #: build/C/man2/perf_event_open.2:891
3866 msgid ""
3867 "This union sets how many samples (I<wakeup_events>)  or bytes "
3868 "(I<wakeup_watermark>)  happen before an overflow signal happens.  Which one "
3869 "is used is selected by the I<watermark> bitflag."
3870 msgstr ""
3871
3872 #. type: Plain text
3873 #: build/C/man2/perf_event_open.2:901
3874 msgid ""
3875 "I<wakeup_events> only counts B<PERF_RECORD_SAMPLE> record types.  To receive "
3876 "a signal for every incoming B<PERF_RECORD> type set I<wakeup_watermark> to 1."
3877 msgstr ""
3878
3879 #. type: TP
3880 #: build/C/man2/perf_event_open.2:901
3881 #, no-wrap
3882 msgid "I<bp_type> (Since Linux 2.6.33)"
3883 msgstr "I<bp_type> (Linux 2.6.33 以降)"
3884
3885 #. type: Plain text
3886 #: build/C/man2/perf_event_open.2:905
3887 msgid "This chooses the breakpoint type.  It is one of:"
3888 msgstr ""
3889
3890 #. type: TP
3891 #: build/C/man2/perf_event_open.2:906
3892 #, no-wrap
3893 msgid "B<HW_BREAKPOINT_EMPTY>"
3894 msgstr ""
3895
3896 #. type: Plain text
3897 #: build/C/man2/perf_event_open.2:909
3898 msgid "No breakpoint."
3899 msgstr ""
3900
3901 #. type: TP
3902 #: build/C/man2/perf_event_open.2:909
3903 #, no-wrap
3904 msgid "B<HW_BREAKPOINT_R>"
3905 msgstr ""
3906
3907 #. type: Plain text
3908 #: build/C/man2/perf_event_open.2:912
3909 msgid "Count when we read the memory location."
3910 msgstr ""
3911
3912 #. type: TP
3913 #: build/C/man2/perf_event_open.2:912
3914 #, no-wrap
3915 msgid "B<HW_BREAKPOINT_W>"
3916 msgstr ""
3917
3918 #. type: Plain text
3919 #: build/C/man2/perf_event_open.2:915
3920 msgid "Count when we write the memory location."
3921 msgstr ""
3922
3923 #. type: TP
3924 #: build/C/man2/perf_event_open.2:915
3925 #, no-wrap
3926 msgid "B<HW_BREAKPOINT_RW>"
3927 msgstr ""
3928
3929 #. type: Plain text
3930 #: build/C/man2/perf_event_open.2:918
3931 #, fuzzy
3932 #| msgid "Cannot read or write the quota file."
3933 msgid "Count when we read or write the memory location."
3934 msgstr "quota ファイルへの読み書きが出来ない。"
3935
3936 #. type: TP
3937 #: build/C/man2/perf_event_open.2:918
3938 #, no-wrap
3939 msgid "B<HW_BREAKPOINT_X>"
3940 msgstr ""
3941
3942 #. type: Plain text
3943 #: build/C/man2/perf_event_open.2:921
3944 msgid "Count when we execute code at the memory location."
3945 msgstr ""
3946
3947 #. type: Plain text
3948 #: build/C/man2/perf_event_open.2:930
3949 msgid ""
3950 "The values can be combined via a bitwise or, but the combination of "
3951 "B<HW_BREAKPOINT_R> or B<HW_BREAKPOINT_W> with B<HW_BREAKPOINT_X> is not "
3952 "allowed."
3953 msgstr ""
3954
3955 #. type: TP
3956 #: build/C/man2/perf_event_open.2:931
3957 #, no-wrap
3958 msgid "I<bp_addr> (Since Linux 2.6.33)"
3959 msgstr "I<bp_addr> (Linux 2.6.33 以降)"
3960
3961 #. type: Plain text
3962 #: build/C/man2/perf_event_open.2:938
3963 msgid ""
3964 "I<bp_addr> address of the breakpoint.  For execution breakpoints this is the "
3965 "memory address of the instruction of interest; for read and write "
3966 "breakpoints it is the memory address of the memory location of interest."
3967 msgstr ""
3968
3969 #. type: TP
3970 #: build/C/man2/perf_event_open.2:938
3971 #, no-wrap
3972 msgid "I<config1> (Since Linux 2.6.39)"
3973 msgstr "I<config1> (Linux 2.6.39 以降)"
3974
3975 #. type: Plain text
3976 #: build/C/man2/perf_event_open.2:945
3977 msgid ""
3978 "I<config1> is used for setting events that need an extra register or "
3979 "otherwise do not fit in the regular config field.  Raw OFFCORE_EVENTS on "
3980 "Nehalem/Westmere/SandyBridge use this field on 3.3 and later kernels."
3981 msgstr ""
3982
3983 #. type: TP
3984 #: build/C/man2/perf_event_open.2:945
3985 #, no-wrap
3986 msgid "I<bp_len> (Since Linux 2.6.33)"
3987 msgstr "I<bp_len> (Linux 2.6.33 以降)"
3988
3989 #. type: Plain text
3990 #: build/C/man2/perf_event_open.2:959
3991 msgid ""
3992 "I<bp_len> is the length of the breakpoint being measured if I<type> is "
3993 "B<PERF_TYPE_BREAKPOINT>.  Options are B<HW_BREAKPOINT_LEN_1>, "
3994 "B<HW_BREAKPOINT_LEN_2>, B<HW_BREAKPOINT_LEN_4>, B<HW_BREAKPOINT_LEN_8>.  For "
3995 "an execution breakpoint, set this to I<sizeof(long)>."
3996 msgstr ""
3997
3998 #. type: TP
3999 #: build/C/man2/perf_event_open.2:959
4000 #, no-wrap
4001 msgid "I<config2> (Since Linux 2.6.39)"
4002 msgstr "I<config2> (Linux 2.6.39 以降)"
4003
4004 #. type: Plain text
4005 #: build/C/man2/perf_event_open.2:966
4006 msgid "I<config2> is a further extension of the I<config1> field."
4007 msgstr ""
4008
4009 #. type: TP
4010 #: build/C/man2/perf_event_open.2:966
4011 #, no-wrap
4012 msgid "I<branch_sample_type> (Since Linux 3.4)"
4013 msgstr ""
4014
4015 #. type: Plain text
4016 #: build/C/man2/perf_event_open.2:972
4017 msgid ""
4018 "If B<PERF_SAMPLE_BRANCH_STACK> is enabled, then this specifies what branches "
4019 "to include in the branch record."
4020 msgstr ""
4021
4022 #. type: Plain text
4023 #: build/C/man2/perf_event_open.2:978
4024 msgid ""
4025 "The first part of the value is the privilege level, which is a combination "
4026 "of one of the following values.  If the user does not set privilege level "
4027 "explicitly, the kernel will use the event's privilege level.  Event and "
4028 "branch privilege levels do not have to match."
4029 msgstr ""
4030
4031 #. type: TP
4032 #: build/C/man2/perf_event_open.2:979
4033 #, no-wrap
4034 msgid "B<PERF_SAMPLE_BRANCH_USER>"
4035 msgstr ""
4036
4037 #. type: Plain text
4038 #: build/C/man2/perf_event_open.2:982
4039 msgid "Branch target is in user space."
4040 msgstr ""
4041
4042 #. type: TP
4043 #: build/C/man2/perf_event_open.2:982
4044 #, no-wrap
4045 msgid "B<PERF_SAMPLE_BRANCH_KERNEL>"
4046 msgstr ""
4047
4048 #. type: Plain text
4049 #: build/C/man2/perf_event_open.2:985
4050 msgid "Branch target is in kernel space."
4051 msgstr ""
4052
4053 #. type: TP
4054 #: build/C/man2/perf_event_open.2:985
4055 #, no-wrap
4056 msgid "B<PERF_SAMPLE_BRANCH_HV>"
4057 msgstr ""
4058
4059 #. type: Plain text
4060 #: build/C/man2/perf_event_open.2:988
4061 msgid "Branch target is in hypervisor."
4062 msgstr ""
4063
4064 #. type: TP
4065 #: build/C/man2/perf_event_open.2:988
4066 #, no-wrap
4067 msgid "B<PERF_SAMPLE_BRANCH_PLM_ALL>"
4068 msgstr ""
4069
4070 #. type: Plain text
4071 #: build/C/man2/perf_event_open.2:991
4072 msgid "A convenience value that is the three preceding values ORed together."
4073 msgstr ""
4074
4075 #. type: Plain text
4076 #: build/C/man2/perf_event_open.2:995
4077 msgid ""
4078 "In addition to the privilege value, at least one or more of the following "
4079 "bits must be set."
4080 msgstr ""
4081
4082 #. type: TP
4083 #: build/C/man2/perf_event_open.2:996
4084 #, no-wrap
4085 msgid "B<PERF_SAMPLE_BRANCH_ANY>"
4086 msgstr ""
4087
4088 #. type: Plain text
4089 #: build/C/man2/perf_event_open.2:999
4090 msgid "Any branch type."
4091 msgstr ""
4092
4093 #. type: TP
4094 #: build/C/man2/perf_event_open.2:999
4095 #, no-wrap
4096 msgid "B<PERF_SAMPLE_BRANCH_ANY_CALL>"
4097 msgstr ""
4098
4099 #. type: Plain text
4100 #: build/C/man2/perf_event_open.2:1002
4101 msgid "Any call branch."
4102 msgstr ""
4103
4104 #. type: TP
4105 #: build/C/man2/perf_event_open.2:1002
4106 #, no-wrap
4107 msgid "B<PERF_SAMPLE_BRANCH_ANY_RETURN>"
4108 msgstr ""
4109
4110 #. type: Plain text
4111 #: build/C/man2/perf_event_open.2:1005
4112 msgid "Any return branch."
4113 msgstr ""
4114
4115 #. type: TP
4116 #: build/C/man2/perf_event_open.2:1005
4117 #, no-wrap
4118 msgid "B<PERF_SAMPLE_BRANCH_IND_CALL>"
4119 msgstr ""
4120
4121 #. type: Plain text
4122 #: build/C/man2/perf_event_open.2:1008
4123 msgid "Indirect calls."
4124 msgstr ""
4125
4126 #. type: TP
4127 #: build/C/man2/perf_event_open.2:1008
4128 #, fuzzy, no-wrap
4129 #| msgid "B<PERF_SAMPLE_BRANCH_STACK> (Since Linux 3.4)"
4130 msgid "B<PERF_SAMPLE_BRANCH_ABORT_TX> (Since Linux 3.11)"
4131 msgstr "B<PERF_SAMPLE_BRANCH_STACK> (Linux 3.4 以降)"
4132
4133 #. type: Plain text
4134 #: build/C/man2/perf_event_open.2:1011
4135 msgid "Transactional memory aborts."
4136 msgstr ""
4137
4138 #. type: TP
4139 #: build/C/man2/perf_event_open.2:1011
4140 #, fuzzy, no-wrap
4141 #| msgid "B<PERF_SAMPLE_BRANCH_STACK> (Since Linux 3.4)"
4142 msgid "B<PERF_SAMPLE_BRANCH_IN_TX> (Since Linux 3.11)"
4143 msgstr "B<PERF_SAMPLE_BRANCH_STACK> (Linux 3.4 以降)"
4144
4145 #. type: Plain text
4146 #: build/C/man2/perf_event_open.2:1014
4147 msgid "Branch in transactional memory transaction."
4148 msgstr ""
4149
4150 #. type: TP
4151 #: build/C/man2/perf_event_open.2:1014
4152 #, fuzzy, no-wrap
4153 #| msgid "B<PERF_SAMPLE_BRANCH_STACK> (Since Linux 3.4)"
4154 msgid "B<PERF_SAMPLE_BRANCH_NO_TX> (Since Linux 3.11)"
4155 msgstr "B<PERF_SAMPLE_BRANCH_STACK> (Linux 3.4 以降)"
4156
4157 #. type: Plain text
4158 #: build/C/man2/perf_event_open.2:1017
4159 msgid "Branch not in transactional memory transaction."
4160 msgstr ""
4161
4162 #. type: TP
4163 #: build/C/man2/perf_event_open.2:1019
4164 #, no-wrap
4165 msgid "I<sample_regs_user> (Since Linux 3.7)"
4166 msgstr ""
4167
4168 #. type: Plain text
4169 #: build/C/man2/perf_event_open.2:1025
4170 msgid ""
4171 "This bitmask defines the set of user CPU registers to dump on samples.  The "
4172 "layout of the register mask is architecture specific and described in the "
4173 "kernel header I<arch/ARCH/include/uapi/asm/perf_regs.h>."
4174 msgstr ""
4175
4176 #. type: TP
4177 #: build/C/man2/perf_event_open.2:1025
4178 #, no-wrap
4179 msgid "I<sample_stack_user> (Since Linux 3.7)"
4180 msgstr ""
4181
4182 #. type: Plain text
4183 #: build/C/man2/perf_event_open.2:1030
4184 msgid ""
4185 "This defines the size of the user stack to dump if B<PERF_SAMPLE_STACK_USER> "
4186 "is specified."
4187 msgstr ""
4188
4189 #. type: SS
4190 #: build/C/man2/perf_event_open.2:1030
4191 #, no-wrap
4192 msgid "Reading results"
4193 msgstr ""
4194
4195 #. type: Plain text
4196 #: build/C/man2/perf_event_open.2:1040
4197 msgid ""
4198 "Once a B<perf_event_open>()  file descriptor has been opened, the values of "
4199 "the events can be read from the file descriptor.  The values that are there "
4200 "are specified by the I<read_format> field in the I<attr> structure at open "
4201 "time."
4202 msgstr ""
4203
4204 #. type: Plain text
4205 #: build/C/man2/perf_event_open.2:1045
4206 msgid ""
4207 "If you attempt to read into a buffer that is not big enough to hold the data "
4208 "B<ENOSPC> is returned"
4209 msgstr ""
4210
4211 #. type: Plain text
4212 #: build/C/man2/perf_event_open.2:1047
4213 msgid "Here is the layout of the data returned by a read:"
4214 msgstr ""
4215
4216 #. type: IP
4217 #: build/C/man2/perf_event_open.2:1047 build/C/man2/perf_event_open.2:1065
4218 #: build/C/man2/ptrace.2:1619 build/C/man2/ptrace.2:1629
4219 #: build/C/man2/ptrace.2:1637 build/C/man2/ptrace.2:1643
4220 #: build/C/man2/ptrace.2:1772
4221 #, no-wrap
4222 msgid "*"
4223 msgstr ""
4224
4225 #. type: Plain text
4226 #: build/C/man2/perf_event_open.2:1051
4227 msgid ""
4228 "If B<PERF_FORMAT_GROUP> was specified to allow reading all events in a group "
4229 "at once:"
4230 msgstr ""
4231
4232 #. type: Plain text
4233 #: build/C/man2/perf_event_open.2:1063
4234 #, no-wrap
4235 msgid ""
4236 "struct read_format {\n"
4237 "    u64 nr;            /* The number of events */\n"
4238 "    u64 time_enabled;  /* if PERF_FORMAT_TOTAL_TIME_ENABLED */\n"
4239 "    u64 time_running;  /* if PERF_FORMAT_TOTAL_TIME_RUNNING */\n"
4240 "    struct\n"
4241 "        u64 value;     /* The value of the event */\n"
4242 "        u64 id;        /* if PERF_FORMAT_ID */\n"
4243 "    } values[nr];\n"
4244 "};\n"
4245 msgstr ""
4246
4247 #. type: Plain text
4248 #: build/C/man2/perf_event_open.2:1071
4249 msgid "If B<PERF_FORMAT_GROUP> was I<not> specified:"
4250 msgstr ""
4251
4252 #. type: Plain text
4253 #: build/C/man2/perf_event_open.2:1080
4254 #, no-wrap
4255 msgid ""
4256 "struct read_format {\n"
4257 "    u64 value;         /* The value of the event */\n"
4258 "    u64 time_enabled;  /* if PERF_FORMAT_TOTAL_TIME_ENABLED */\n"
4259 "    u64 time_running;  /* if PERF_FORMAT_TOTAL_TIME_RUNNING */\n"
4260 "    u64 id;            /* if PERF_FORMAT_ID */\n"
4261 "};\n"
4262 msgstr ""
4263
4264 #. type: Plain text
4265 #: build/C/man2/perf_event_open.2:1084
4266 msgid "The values read are as follows:"
4267 msgstr ""
4268
4269 #. type: TP
4270 #: build/C/man2/perf_event_open.2:1084
4271 #, no-wrap
4272 msgid "I<nr>"
4273 msgstr ""
4274
4275 #. type: Plain text
4276 #: build/C/man2/perf_event_open.2:1090
4277 msgid ""
4278 "The number of events in this file descriptor.  Only available if "
4279 "B<PERF_FORMAT_GROUP> was specified."
4280 msgstr ""
4281
4282 #. type: TP
4283 #: build/C/man2/perf_event_open.2:1090
4284 #, no-wrap
4285 msgid "I<time_enabled>, I<time_running>"
4286 msgstr ""
4287
4288 #. type: Plain text
4289 #: build/C/man2/perf_event_open.2:1102
4290 msgid ""
4291 "Total time the event was enabled and running.  Normally these are the same.  "
4292 "If more events are started than available counter slots on the PMU, then "
4293 "multiplexing happens and events run only part of the time.  In that case the "
4294 "I<time_enabled> and I<time running> values can be used to scale an estimated "
4295 "value for the count."
4296 msgstr ""
4297
4298 #. type: TP
4299 #: build/C/man2/perf_event_open.2:1102
4300 #, no-wrap
4301 msgid "I<value>"
4302 msgstr ""
4303
4304 #. type: Plain text
4305 #: build/C/man2/perf_event_open.2:1105
4306 msgid "An unsigned 64-bit value containing the counter result."
4307 msgstr ""
4308
4309 #. type: TP
4310 #: build/C/man2/perf_event_open.2:1105 build/C/man2/perf_event_open.2:1423
4311 #: build/C/man2/perf_event_open.2:1560
4312 #, no-wrap
4313 msgid "I<id>"
4314 msgstr ""
4315
4316 #. type: Plain text
4317 #: build/C/man2/perf_event_open.2:1111
4318 msgid ""
4319 "A globally unique value for this particular event, only there if "
4320 "B<PERF_FORMAT_ID> was specified in I<read_format>."
4321 msgstr ""
4322
4323 #. type: SS
4324 #: build/C/man2/perf_event_open.2:1111
4325 #, no-wrap
4326 msgid "MMAP layout"
4327 msgstr ""
4328
4329 #. type: Plain text
4330 #: build/C/man2/perf_event_open.2:1121
4331 msgid ""
4332 "When using B<perf_event_open>()  in sampled mode, asynchronous events (like "
4333 "counter overflow or B<PROT_EXEC> mmap tracking)  are logged into a ring-"
4334 "buffer.  This ring-buffer is created and accessed through B<mmap>(2)."
4335 msgstr ""
4336
4337 #. type: Plain text
4338 #: build/C/man2/perf_event_open.2:1127
4339 msgid ""
4340 "The mmap size should be 1+2^n pages, where the first page is a metadata page "
4341 "(I<struct perf_event_mmap_page>)  that contains various bits of information "
4342 "such as where the ring-buffer head is."
4343 msgstr ""
4344
4345 #. type: Plain text
4346 #: build/C/man2/perf_event_open.2:1130
4347 msgid ""
4348 "Before kernel 2.6.39, there is a bug that means you must allocate a mmap "
4349 "ring buffer when sampling even if you do not plan to access it."
4350 msgstr ""
4351
4352 #. type: Plain text
4353 #: build/C/man2/perf_event_open.2:1132
4354 msgid "The structure of the first metadata mmap page is as follows:"
4355 msgstr ""
4356
4357 #. type: Plain text
4358 #: build/C/man2/perf_event_open.2:1156
4359 #, no-wrap
4360 msgid ""
4361 "struct perf_event_mmap_page {\n"
4362 "    __u32 version;          /* version number of this structure */\n"
4363 "    __u32 compat_version;   /* lowest version this is compat with */\n"
4364 "    __u32 lock;             /* seqlock for synchronization */\n"
4365 "    __u32 index;            /* hardware counter identifier */\n"
4366 "    __s64 offset;           /* add to hardware counter value */\n"
4367 "    __u64 time_enabled;     /* time event active */\n"
4368 "    __u64 time_running;     /* time event on CPU */\n"
4369 "    union {\n"
4370 "        __u64   capabilities;\n"
4371 "        __u64   cap_usr_time  : 1,\n"
4372 "                cap_usr_rdpmc : 1,\n"
4373 "    };\n"
4374 "    __u16   pmc_width;\n"
4375 "    __u16   time_shift;\n"
4376 "    __u32   time_mult;\n"
4377 "    __u64   time_offset;\n"
4378 "    __u64   __reserved[120];   /* Pad to 1k */\n"
4379 "    __u64   data_head;         /* head in the data section */\n"
4380 "    __u64   data_tail;         /* user-space written tail */\n"
4381 "}\n"
4382 msgstr ""
4383
4384 #. type: Plain text
4385 #: build/C/man2/perf_event_open.2:1162
4386 msgid ""
4387 "The following looks at the fields in the I<perf_event_mmap_page> structure "
4388 "in more detail:"
4389 msgstr ""
4390
4391 #. type: TP
4392 #: build/C/man2/perf_event_open.2:1162
4393 #, no-wrap
4394 msgid "I<version>"
4395 msgstr ""
4396
4397 #. type: Plain text
4398 #: build/C/man2/perf_event_open.2:1165
4399 msgid "Version number of this structure."
4400 msgstr ""
4401
4402 #. type: TP
4403 #: build/C/man2/perf_event_open.2:1165
4404 #, no-wrap
4405 msgid "I<compat_version>"
4406 msgstr ""
4407
4408 #. type: Plain text
4409 #: build/C/man2/perf_event_open.2:1168
4410 msgid "The lowest version this is compatible with."
4411 msgstr ""
4412
4413 #. type: TP
4414 #: build/C/man2/perf_event_open.2:1168
4415 #, no-wrap
4416 msgid "I<lock>"
4417 msgstr ""
4418
4419 #. type: Plain text
4420 #: build/C/man2/perf_event_open.2:1171
4421 msgid "A seqlock for synchronization."
4422 msgstr ""
4423
4424 #. type: TP
4425 #: build/C/man2/perf_event_open.2:1171
4426 #, no-wrap
4427 msgid "I<index>"
4428 msgstr ""
4429
4430 #. type: Plain text
4431 #: build/C/man2/perf_event_open.2:1174
4432 msgid "A unique hardware counter identifier."
4433 msgstr ""
4434
4435 #. type: TP
4436 #: build/C/man2/perf_event_open.2:1174
4437 #, no-wrap
4438 msgid "I<offset>"
4439 msgstr ""
4440
4441 #.  FIXME clarify
4442 #. type: Plain text
4443 #: build/C/man2/perf_event_open.2:1178
4444 msgid "Add this to hardware counter value??"
4445 msgstr ""
4446
4447 #. type: TP
4448 #: build/C/man2/perf_event_open.2:1178
4449 #, no-wrap
4450 msgid "I<time_enabled>"
4451 msgstr ""
4452
4453 #. type: Plain text
4454 #: build/C/man2/perf_event_open.2:1181
4455 msgid "Time the event was active."
4456 msgstr ""
4457
4458 #. type: TP
4459 #: build/C/man2/perf_event_open.2:1181
4460 #, no-wrap
4461 msgid "I<time_running>"
4462 msgstr ""
4463
4464 #. type: Plain text
4465 #: build/C/man2/perf_event_open.2:1184
4466 msgid "Time the event was running."
4467 msgstr ""
4468
4469 #. type: TP
4470 #: build/C/man2/perf_event_open.2:1184
4471 #, no-wrap
4472 msgid "I<cap_usr_time>"
4473 msgstr ""
4474
4475 #. type: Plain text
4476 #: build/C/man2/perf_event_open.2:1187
4477 msgid "User time capability."
4478 msgstr ""
4479
4480 #. type: TP
4481 #: build/C/man2/perf_event_open.2:1187
4482 #, no-wrap
4483 msgid "I<cap_usr_rdpmc>"
4484 msgstr ""
4485
4486 #. type: Plain text
4487 #: build/C/man2/perf_event_open.2:1192
4488 msgid ""
4489 "If the hardware supports user-space read of performance counters without "
4490 "syscall (this is the \"rdpmc\" instruction on x86), then the following code "
4491 "can be used to do a read:"
4492 msgstr ""
4493
4494 #. type: Plain text
4495 #: build/C/man2/perf_event_open.2:1199
4496 #, no-wrap
4497 msgid ""
4498 "u32 seq, time_mult, time_shift, idx, width;\n"
4499 "u64 count, enabled, running;\n"
4500 "u64 cyc, time_offset;\n"
4501 "s64 pmc = 0;\n"
4502 msgstr ""
4503
4504 #. type: Plain text
4505 #: build/C/man2/perf_event_open.2:1205
4506 #, no-wrap
4507 msgid ""
4508 "do {\n"
4509 "    seq = pc-E<gt>lock;\n"
4510 "    barrier();\n"
4511 "    enabled = pc-E<gt>time_enabled;\n"
4512 "    running = pc-E<gt>time_running;\n"
4513 msgstr ""
4514
4515 #. type: Plain text
4516 #: build/C/man2/perf_event_open.2:1212
4517 #, no-wrap
4518 msgid ""
4519 "    if (pc-E<gt>cap_usr_time && enabled != running) {\n"
4520 "        cyc = rdtsc();\n"
4521 "        time_offset = pc-E<gt>time_offset;\n"
4522 "        time_mult   = pc-E<gt>time_mult;\n"
4523 "        time_shift  = pc-E<gt>time_shift;\n"
4524 "    }\n"
4525 msgstr ""
4526
4527 #. type: Plain text
4528 #: build/C/man2/perf_event_open.2:1215
4529 #, no-wrap
4530 msgid ""
4531 "    idx = pc-E<gt>index;\n"
4532 "    count = pc-E<gt>offset;\n"
4533 msgstr ""
4534
4535 #. type: Plain text
4536 #: build/C/man2/perf_event_open.2:1220
4537 #, no-wrap
4538 msgid ""
4539 "    if (pc-E<gt>cap_usr_rdpmc && idx) {\n"
4540 "        width = pc-E<gt>pmc_width;\n"
4541 "        pmc = rdpmc(idx - 1);\n"
4542 "    }\n"
4543 msgstr ""
4544
4545 #. type: Plain text
4546 #: build/C/man2/perf_event_open.2:1223
4547 #, no-wrap
4548 msgid ""
4549 "    barrier();\n"
4550 "} while (pc-E<gt>lock != seq);\n"
4551 msgstr ""
4552
4553 #. type: TP
4554 #: build/C/man2/perf_event_open.2:1225
4555 #, no-wrap
4556 msgid "I<pmc_width>"
4557 msgstr ""
4558
4559 #. type: Plain text
4560 #: build/C/man2/perf_event_open.2:1232
4561 msgid ""
4562 "If I<cap_usr_rdpmc>, this field provides the bit-width of the value read "
4563 "using the rdpmc or equivalent instruction.  This can be used to sign extend "
4564 "the result like:"
4565 msgstr ""
4566
4567 #. type: Plain text
4568 #: build/C/man2/perf_event_open.2:1238
4569 #, no-wrap
4570 msgid ""
4571 "pmc E<lt>E<lt>= 64 - pmc_width;\n"
4572 "pmc E<gt>E<gt>= 64 - pmc_width; // signed shift right\n"
4573 "count += pmc;\n"
4574 msgstr ""
4575
4576 #. type: TP
4577 #: build/C/man2/perf_event_open.2:1240
4578 #, no-wrap
4579 msgid "I<time_shift>, I<time_mult>, I<time_offset>"
4580 msgstr ""
4581
4582 #. type: Plain text
4583 #: build/C/man2/perf_event_open.2:1247
4584 msgid ""
4585 "If I<cap_usr_time>, these fields can be used to compute the time delta since "
4586 "time_enabled (in nanoseconds) using rdtsc or similar."
4587 msgstr ""
4588
4589 #. type: Plain text
4590 #: build/C/man2/perf_event_open.2:1255
4591 #, no-wrap
4592 msgid ""
4593 "    u64 quot, rem;\n"
4594 "    u64 delta;\n"
4595 "    quot = (cyc E<gt>E<gt> time_shift);\n"
4596 "    rem = cyc & ((1 E<lt>E<lt> time_shift) - 1);\n"
4597 "    delta = time_offset + quot * time_mult +\n"
4598 "            ((rem * time_mult) E<gt>E<gt> time_shift);\n"
4599 msgstr ""
4600
4601 #. type: Plain text
4602 #: build/C/man2/perf_event_open.2:1267
4603 msgid ""
4604 "Where I<time_offset>, I<time_mult>, I<time_shift>, and I<cyc> are read in "
4605 "the seqcount loop described above.  This delta can then be added to enabled "
4606 "and possible running (if idx), improving the scaling:"
4607 msgstr ""
4608
4609 #. type: Plain text
4610 #: build/C/man2/perf_event_open.2:1275
4611 #, no-wrap
4612 msgid ""
4613 "    enabled += delta;\n"
4614 "    if (idx)\n"
4615 "        running += delta;\n"
4616 "    quot = count / running;\n"
4617 "    rem  = count % running;\n"
4618 "    count = quot * enabled + (rem * enabled) / running;\n"
4619 msgstr ""
4620
4621 #. type: TP
4622 #: build/C/man2/perf_event_open.2:1276
4623 #, no-wrap
4624 msgid "I<data_head>"
4625 msgstr ""
4626
4627 #. type: Plain text
4628 #: build/C/man2/perf_event_open.2:1282
4629 msgid ""
4630 "This points to the head of the data section.  The value continuously "
4631 "increases, it does not wrap.  The value needs to be manually wrapped by the "
4632 "size of the mmap buffer before accessing the samples."
4633 msgstr ""
4634
4635 #. type: Plain text
4636 #: build/C/man2/perf_event_open.2:1285
4637 msgid ""
4638 "On SMP-capable platforms, after reading the data_head value, user space "
4639 "should issue an rmb()."
4640 msgstr ""
4641
4642 #. type: TP
4643 #: build/C/man2/perf_event_open.2:1285
4644 #, no-wrap
4645 msgid "I<data_tail;>"
4646 msgstr ""
4647
4648 #. type: Plain text
4649 #: build/C/man2/perf_event_open.2:1293
4650 msgid ""
4651 "When the mapping is B<PROT_WRITE>, the I<data_tail> value should be written "
4652 "by user space to reflect the last read data.  In this case the kernel will "
4653 "not over-write unread data."
4654 msgstr ""
4655
4656 #. type: Plain text
4657 #: build/C/man2/perf_event_open.2:1295
4658 msgid "The following 2^n ring-buffer pages have the layout described below."
4659 msgstr ""
4660
4661 #. type: Plain text
4662 #: build/C/man2/perf_event_open.2:1309
4663 msgid ""
4664 "If I<perf_event_attr.sample_id_all> is set, then all event types will have "
4665 "the sample_type selected fields related to where/when (identity)  an event "
4666 "took place (TID, TIME, ID, CPU, STREAM_ID) described in "
4667 "B<PERF_RECORD_SAMPLE> below, it will be stashed just after the "
4668 "I<perf_event_header> and the fields already present for the existing fields, "
4669 "that is, at the end of the payload.  That way a newer perf.data file will be "
4670 "supported by older perf tools, with these new optional fields being ignored."
4671 msgstr ""
4672
4673 #. type: Plain text
4674 #: build/C/man2/perf_event_open.2:1311
4675 msgid "The mmap values start with a header:"
4676 msgstr ""
4677
4678 #. type: Plain text
4679 #: build/C/man2/perf_event_open.2:1319
4680 #, no-wrap
4681 msgid ""
4682 "struct perf_event_header {\n"
4683 "    __u32   type;\n"
4684 "    __u16   misc;\n"
4685 "    __u16   size;\n"
4686 "};\n"
4687 msgstr ""
4688
4689 #. type: Plain text
4690 #: build/C/man2/perf_event_open.2:1327
4691 msgid ""
4692 "Below, we describe the I<perf_event_header> fields in more detail.  For ease "
4693 "of reading, the fields with shorter descriptions are presented first."
4694 msgstr ""
4695
4696 #. type: Plain text
4697 #: build/C/man2/perf_event_open.2:1330
4698 msgid "This indicates the size of the record."
4699 msgstr ""
4700
4701 #. type: TP
4702 #: build/C/man2/perf_event_open.2:1330
4703 #, no-wrap
4704 msgid "I<misc>"
4705 msgstr ""
4706
4707 #. type: Plain text
4708 #: build/C/man2/perf_event_open.2:1335
4709 msgid "The I<misc> field contains additional information about the sample."
4710 msgstr ""
4711
4712 #. type: Plain text
4713 #: build/C/man2/perf_event_open.2:1340
4714 msgid ""
4715 "The CPU mode can be determined from this value by masking with "
4716 "B<PERF_RECORD_MISC_CPUMODE_MASK> and looking for one of the following (note "
4717 "these are not bit masks, only one can be set at a time):"
4718 msgstr ""
4719
4720 #. type: TP
4721 #: build/C/man2/perf_event_open.2:1341
4722 #, no-wrap
4723 msgid "B<PERF_RECORD_MISC_CPUMODE_UNKNOWN>"
4724 msgstr ""
4725
4726 #. type: Plain text
4727 #: build/C/man2/perf_event_open.2:1344
4728 msgid "Unknown CPU mode."
4729 msgstr ""
4730
4731 #. type: TP
4732 #: build/C/man2/perf_event_open.2:1344
4733 #, no-wrap
4734 msgid "B<PERF_RECORD_MISC_KERNEL>"
4735 msgstr ""
4736
4737 #. type: Plain text
4738 #: build/C/man2/perf_event_open.2:1347
4739 msgid "Sample happened in the kernel."
4740 msgstr ""
4741
4742 #. type: TP
4743 #: build/C/man2/perf_event_open.2:1347
4744 #, no-wrap
4745 msgid "B<PERF_RECORD_MISC_USER>"
4746 msgstr ""
4747
4748 #. type: Plain text
4749 #: build/C/man2/perf_event_open.2:1350
4750 msgid "Sample happened in user code."
4751 msgstr ""
4752
4753 #. type: TP
4754 #: build/C/man2/perf_event_open.2:1350
4755 #, no-wrap
4756 msgid "B<PERF_RECORD_MISC_HYPERVISOR>"
4757 msgstr ""
4758
4759 #. type: Plain text
4760 #: build/C/man2/perf_event_open.2:1353
4761 msgid "Sample happened in the hypervisor."
4762 msgstr ""
4763
4764 #. type: TP
4765 #: build/C/man2/perf_event_open.2:1353
4766 #, no-wrap
4767 msgid "B<PERF_RECORD_MISC_GUEST_KERNEL>"
4768 msgstr ""
4769
4770 #. type: Plain text
4771 #: build/C/man2/perf_event_open.2:1356
4772 msgid "Sample happened in the guest kernel."
4773 msgstr ""
4774
4775 #. type: TP
4776 #: build/C/man2/perf_event_open.2:1356
4777 #, no-wrap
4778 msgid "B<PERF_RECORD_MISC_GUEST_USER>"
4779 msgstr ""
4780
4781 #. type: Plain text
4782 #: build/C/man2/perf_event_open.2:1359
4783 msgid "Sample happened in guest user code."
4784 msgstr ""
4785
4786 #. type: Plain text
4787 #: build/C/man2/perf_event_open.2:1363
4788 msgid "In addition, one of the following bits can be set:"
4789 msgstr ""
4790
4791 #. type: TP
4792 #: build/C/man2/perf_event_open.2:1363
4793 #, no-wrap
4794 msgid "B<PERF_RECORD_MISC_MMAP_DATA>"
4795 msgstr "B<PERF_RECORD_MISC_MMAP_DATA>"
4796
4797 #. type: Plain text
4798 #: build/C/man2/perf_event_open.2:1367
4799 msgid ""
4800 "This is set when the mapping is not executable; otherwise the mapping is "
4801 "executable."
4802 msgstr ""
4803
4804 #. type: TP
4805 #: build/C/man2/perf_event_open.2:1367
4806 #, no-wrap
4807 msgid "B<PERF_RECORD_MISC_EXACT_IP>"
4808 msgstr ""
4809
4810 #. type: Plain text
4811 #: build/C/man2/perf_event_open.2:1375
4812 msgid ""
4813 "This indicates that the content of B<PERF_SAMPLE_IP> points to the actual "
4814 "instruction that triggered the event.  See also I<perf_event_attr."
4815 "precise_ip>."
4816 msgstr ""
4817
4818 #. type: TP
4819 #: build/C/man2/perf_event_open.2:1375
4820 #, no-wrap
4821 msgid "B<PERF_RECORD_MISC_EXT_RESERVED>"
4822 msgstr ""
4823
4824 #. type: Plain text
4825 #: build/C/man2/perf_event_open.2:1378
4826 msgid "This indicates there is extended data available (currently not used)."
4827 msgstr ""
4828
4829 #. type: Plain text
4830 #: build/C/man2/perf_event_open.2:1388
4831 msgid ""
4832 "The I<type> value is one of the below.  The values in the corresponding "
4833 "record (that follows the header)  depend on the I<type> selected as shown."
4834 msgstr ""
4835
4836 #. type: TP
4837 #: build/C/man2/perf_event_open.2:1389
4838 #, no-wrap
4839 msgid "B<PERF_RECORD_MMAP>"
4840 msgstr ""
4841
4842 #. type: Plain text
4843 #: build/C/man2/perf_event_open.2:1396
4844 msgid ""
4845 "The MMAP events record the B<PROT_EXEC> mappings so that we can correlate "
4846 "user-space IPs to code.  They have the following structure:"
4847 msgstr ""
4848
4849 #. type: Plain text
4850 #: build/C/man2/perf_event_open.2:1407
4851 #, no-wrap
4852 msgid ""
4853 "struct {\n"
4854 "    struct perf_event_header header;\n"
4855 "    u32    pid, tid;\n"
4856 "    u64    addr;\n"
4857 "    u64    len;\n"
4858 "    u64    pgoff;\n"
4859 "    char   filename[];\n"
4860 "};\n"
4861 msgstr ""
4862
4863 #. type: TP
4864 #: build/C/man2/perf_event_open.2:1409
4865 #, no-wrap
4866 msgid "B<PERF_RECORD_LOST>"
4867 msgstr ""
4868
4869 #. type: Plain text
4870 #: build/C/man2/perf_event_open.2:1412
4871 msgid "This record indicates when events are lost."
4872 msgstr ""
4873
4874 #. type: Plain text
4875 #: build/C/man2/perf_event_open.2:1420
4876 #, no-wrap
4877 msgid ""
4878 "struct {\n"
4879 "    struct perf_event_header header;\n"
4880 "    u64 id;\n"
4881 "    u64 lost;\n"
4882 "};\n"
4883 msgstr ""
4884
4885 #. type: Plain text
4886 #: build/C/man2/perf_event_open.2:1426
4887 msgid "is the unique event ID for the samples that were lost."
4888 msgstr ""
4889
4890 #. type: TP
4891 #: build/C/man2/perf_event_open.2:1426
4892 #, no-wrap
4893 msgid "I<lost>"
4894 msgstr ""
4895
4896 #. type: Plain text
4897 #: build/C/man2/perf_event_open.2:1429
4898 #, fuzzy
4899 #| msgid "Returns the number of processes woken up."
4900 msgid "is the number of events that were lost."
4901 msgstr "wake したプロセスの数を返す。"
4902
4903 #. type: TP
4904 #: build/C/man2/perf_event_open.2:1430
4905 #, no-wrap
4906 msgid "B<PERF_RECORD_COMM>"
4907 msgstr ""
4908
4909 #. type: Plain text
4910 #: build/C/man2/perf_event_open.2:1433
4911 msgid "This record indicates a change in the process name."
4912 msgstr ""
4913
4914 #. type: Plain text
4915 #: build/C/man2/perf_event_open.2:1441
4916 #, no-wrap
4917 msgid ""
4918 "struct {\n"
4919 "    struct perf_event_header header;\n"
4920 "    u32 pid, tid;\n"
4921 "    char comm[];\n"
4922 "};\n"
4923 msgstr ""
4924
4925 #. type: TP
4926 #: build/C/man2/perf_event_open.2:1443
4927 #, no-wrap
4928 msgid "B<PERF_RECORD_EXIT>"
4929 msgstr "B<PERF_RECORD_EXIT>"
4930
4931 #. type: Plain text
4932 #: build/C/man2/perf_event_open.2:1446
4933 msgid "This record indicates a process exit event."
4934 msgstr ""
4935
4936 #. type: Plain text
4937 #: build/C/man2/perf_event_open.2:1455 build/C/man2/perf_event_open.2:1483
4938 #, no-wrap
4939 msgid ""
4940 "struct {\n"
4941 "    struct perf_event_header header;\n"
4942 "    u32 pid, ppid;\n"
4943 "    u32 tid, ptid;\n"
4944 "    u64 time;\n"
4945 "};\n"
4946 msgstr ""
4947
4948 #. type: TP
4949 #: build/C/man2/perf_event_open.2:1457
4950 #, no-wrap
4951 msgid "B<PERF_RECORD_THROTTLE>, B<PERF_RECORD_UNTHROTTLE>"
4952 msgstr ""
4953
4954 #. type: Plain text
4955 #: build/C/man2/perf_event_open.2:1460
4956 msgid "This record indicates a throttle/unthrottle event."
4957 msgstr ""
4958
4959 #. type: Plain text
4960 #: build/C/man2/perf_event_open.2:1469
4961 #, no-wrap
4962 msgid ""
4963 "struct {\n"
4964 "    struct perf_event_header header;\n"
4965 "    u64 time;\n"
4966 "    u64 id;\n"
4967 "    u64 stream_id;\n"
4968 "};\n"
4969 msgstr ""
4970
4971 #. type: TP
4972 #: build/C/man2/perf_event_open.2:1471
4973 #, no-wrap
4974 msgid "B<PERF_RECORD_FORK>"
4975 msgstr "B<PERF_RECORD_FORK>"
4976
4977 #. type: Plain text
4978 #: build/C/man2/perf_event_open.2:1474
4979 msgid "This record indicates a fork event."
4980 msgstr ""
4981
4982 #. type: TP
4983 #: build/C/man2/perf_event_open.2:1485
4984 #, no-wrap
4985 msgid "B<PERF_RECORD_READ>"
4986 msgstr ""
4987
4988 #. type: Plain text
4989 #: build/C/man2/perf_event_open.2:1488
4990 msgid "This record indicates a read event."
4991 msgstr ""
4992
4993 #. type: Plain text
4994 #: build/C/man2/perf_event_open.2:1496
4995 #, no-wrap
4996 msgid ""
4997 "struct {\n"
4998 "    struct perf_event_header header;\n"
4999 "    u32 pid, tid;\n"
5000 "    struct read_format values;\n"
5001 "};\n"
5002 msgstr ""
5003
5004 #. type: TP
5005 #: build/C/man2/perf_event_open.2:1498
5006 #, no-wrap
5007 msgid "B<PERF_RECORD_SAMPLE>"
5008 msgstr ""
5009
5010 #. type: Plain text
5011 #: build/C/man2/perf_event_open.2:1501
5012 msgid "This record indicates a sample."
5013 msgstr ""
5014
5015 #. type: Plain text
5016 #: build/C/man2/perf_event_open.2:1531
5017 #, no-wrap
5018 msgid ""
5019 "struct {\n"
5020 "    struct perf_event_header header;\n"
5021 "    u64   ip;         /* if PERF_SAMPLE_IP */\n"
5022 "    u32   pid, tid;   /* if PERF_SAMPLE_TID */\n"
5023 "    u64   time;       /* if PERF_SAMPLE_TIME */\n"
5024 "    u64   addr;       /* if PERF_SAMPLE_ADDR */\n"
5025 "    u64   id;         /* if PERF_SAMPLE_ID */\n"
5026 "    u64   stream_id;  /* if PERF_SAMPLE_STREAM_ID */\n"
5027 "    u32   cpu, res;   /* if PERF_SAMPLE_CPU */\n"
5028 "    u64   period;     /* if PERF_SAMPLE_PERIOD */\n"
5029 "    struct read_format v; /* if PERF_SAMPLE_READ */\n"
5030 "    u64   nr;         /* if PERF_SAMPLE_CALLCHAIN */\n"
5031 "    u64   ips[nr];    /* if PERF_SAMPLE_CALLCHAIN */\n"
5032 "    u32   size;       /* if PERF_SAMPLE_RAW */\n"
5033 "    char  data[size]; /* if PERF_SAMPLE_RAW */\n"
5034 "    u64   bnr;        /* if PERF_SAMPLE_BRANCH_STACK */\n"
5035 "    struct perf_branch_entry lbr[bnr];\n"
5036 "                      /* if PERF_SAMPLE_BRANCH_STACK */\n"
5037 "    u64   abi;        /* if PERF_SAMPLE_REGS_USER */\n"
5038 "    u64   regs[weight(mask)];\n"
5039 "                      /* if PERF_SAMPLE_REGS_USER */\n"
5040 "    u64   size;       /* if PERF_SAMPLE_STACK_USER */\n"
5041 "    char  data[size]; /* if PERF_SAMPLE_STACK_USER */\n"
5042 "    u64   dyn_size;   /* if PERF_SAMPLE_STACK_USER */\n"
5043 "    u64   weight;     /* if PERF_SAMPLE_WEIGHT */\n"
5044 "    u64   data_src;   /* if PERF_SAMPLE_DATA_SRC */\n"
5045 "};\n"
5046 msgstr ""
5047
5048 #. type: TP
5049 #: build/C/man2/perf_event_open.2:1533
5050 #, no-wrap
5051 msgid "I<ip>"
5052 msgstr ""
5053
5054 #. type: Plain text
5055 #: build/C/man2/perf_event_open.2:1539
5056 msgid ""
5057 "If B<PERF_SAMPLE_IP> is enabled, then a 64-bit instruction pointer value is "
5058 "included."
5059 msgstr ""
5060
5061 #. type: TP
5062 #: build/C/man2/perf_event_open.2:1539
5063 #, no-wrap
5064 msgid "I<pid>, I<tid>"
5065 msgstr ""
5066
5067 #. type: Plain text
5068 #: build/C/man2/perf_event_open.2:1545
5069 msgid ""
5070 "If B<PERF_SAMPLE_TID> is enabled, then a 32-bit process ID and 32-bit thread "
5071 "ID are included."
5072 msgstr ""
5073
5074 #. type: TP
5075 #: build/C/man2/perf_event_open.2:1545
5076 #, no-wrap
5077 msgid "I<time>"
5078 msgstr ""
5079
5080 #. type: Plain text
5081 #: build/C/man2/perf_event_open.2:1553
5082 msgid ""
5083 "If B<PERF_SAMPLE_TIME> is enabled, then a 64-bit timestamp is included.  "
5084 "This is obtained via local_clock() which is a hardware timestamp if "
5085 "available and the jiffies value if not."
5086 msgstr ""
5087
5088 #. type: TP
5089 #: build/C/man2/perf_event_open.2:1553
5090 #, no-wrap
5091 msgid "I<addr>"
5092 msgstr ""
5093
5094 #. type: Plain text
5095 #: build/C/man2/perf_event_open.2:1560
5096 msgid ""
5097 "If B<PERF_SAMPLE_ADDR> is enabled, then a 64-bit address is included.  This "
5098 "is usually the address of a tracepoint, breakpoint, or software event; "
5099 "otherwise the value is 0."
5100 msgstr ""
5101
5102 #. type: Plain text
5103 #: build/C/man2/perf_event_open.2:1568
5104 msgid ""
5105 "If B<PERF_SAMPLE_ID> is enabled, a 64-bit unique ID is included.  If the "
5106 "event is a member of an event group, the group leader ID is returned.  This "
5107 "ID is the same as the one returned by B<PERF_FORMAT_ID>."
5108 msgstr ""
5109
5110 #. type: TP
5111 #: build/C/man2/perf_event_open.2:1568
5112 #, no-wrap
5113 msgid "I<stream_id>"
5114 msgstr ""
5115
5116 #. type: Plain text
5117 #: build/C/man2/perf_event_open.2:1578
5118 msgid ""
5119 "If B<PERF_SAMPLE_STREAM_ID> is enabled, a 64-bit unique ID is included.  "
5120 "Unlike B<PERF_SAMPLE_ID> the actual ID is returned, not the group leader.  "
5121 "This ID is the same as the one returned by B<PERF_FORMAT_ID>."
5122 msgstr ""
5123
5124 #. type: TP
5125 #: build/C/man2/perf_event_open.2:1578
5126 #, no-wrap
5127 msgid "I<cpu>, I<res>"
5128 msgstr ""
5129
5130 #. type: Plain text
5131 #: build/C/man2/perf_event_open.2:1585
5132 msgid ""
5133 "If B<PERF_SAMPLE_CPU> is enabled, this is a 32-bit value indicating which "
5134 "CPU was being used, in addition to a reserved (unused)  32-bit value."
5135 msgstr ""
5136
5137 #. type: TP
5138 #: build/C/man2/perf_event_open.2:1585
5139 #, no-wrap
5140 msgid "I<period>"
5141 msgstr ""
5142
5143 #. type: Plain text
5144 #: build/C/man2/perf_event_open.2:1591
5145 msgid ""
5146 "If B<PERF_SAMPLE_PERIOD> is enabled, a 64-bit value indicating the current "
5147 "sampling period is written."
5148 msgstr ""
5149
5150 #. type: TP
5151 #: build/C/man2/perf_event_open.2:1591
5152 #, no-wrap
5153 msgid "I<v>"
5154 msgstr ""
5155
5156 #. type: Plain text
5157 #: build/C/man2/perf_event_open.2:1602
5158 msgid ""
5159 "If B<PERF_SAMPLE_READ> is enabled, a structure of type read_format is "
5160 "included which has values for all events in the event group.  The values "
5161 "included depend on the I<read_format> value used at B<perf_event_open>()  "
5162 "time."
5163 msgstr ""
5164
5165 #. type: TP
5166 #: build/C/man2/perf_event_open.2:1602
5167 #, no-wrap
5168 msgid "I<nr>, I<ips[nr]>"
5169 msgstr ""
5170
5171 #. type: Plain text
5172 #: build/C/man2/perf_event_open.2:1610
5173 msgid ""
5174 "If B<PERF_SAMPLE_CALLCHAIN> is enabled, then a 64-bit number is included "
5175 "which indicates how many following 64-bit instruction pointers will follow.  "
5176 "This is the current callchain."
5177 msgstr ""
5178
5179 #. type: TP
5180 #: build/C/man2/perf_event_open.2:1610
5181 #, no-wrap
5182 msgid "I<size>, I<data[size]>"
5183 msgstr ""
5184
5185 #. type: Plain text
5186 #: build/C/man2/perf_event_open.2:1617
5187 msgid ""
5188 "If B<PERF_SAMPLE_RAW> is enabled, then a 32-bit value indicating size is "
5189 "included followed by an array of 8-bit values of length size.  The values "
5190 "are padded with 0 to have 64-bit alignment."
5191 msgstr ""
5192
5193 #. type: Plain text
5194 #: build/C/man2/perf_event_open.2:1622
5195 msgid ""
5196 "This RAW record data is opaque with respect to the ABI.  The ABI doesn't "
5197 "make any promises with respect to the stability of its content, it may vary "
5198 "depending on event, hardware, and kernel version."
5199 msgstr ""
5200
5201 #. type: TP
5202 #: build/C/man2/perf_event_open.2:1622
5203 #, no-wrap
5204 msgid "I<bnr>, I<lbr[bnr]>"
5205 msgstr ""
5206
5207 #. type: Plain text
5208 #: build/C/man2/perf_event_open.2:1631
5209 msgid ""
5210 "If B<PERF_SAMPLE_BRANCH_STACK> is enabled, then a 64-bit value indicating "
5211 "the number of records is included, followed by I<bnr> I<perf_branch_entry> "
5212 "structures which each include the fields:"
5213 msgstr ""
5214
5215 #. type: TP
5216 #: build/C/man2/perf_event_open.2:1632
5217 #, no-wrap
5218 msgid "I<from>"
5219 msgstr ""
5220
5221 #. type: Plain text
5222 #: build/C/man2/perf_event_open.2:1635
5223 msgid "This indicates the source instruction (may not be a branch)."
5224 msgstr ""
5225
5226 #. type: TP
5227 #: build/C/man2/perf_event_open.2:1635
5228 #, no-wrap
5229 msgid "I<to>"
5230 msgstr ""
5231
5232 #. type: Plain text
5233 #: build/C/man2/perf_event_open.2:1638
5234 msgid "The branch target."
5235 msgstr ""
5236
5237 #. type: TP
5238 #: build/C/man2/perf_event_open.2:1638
5239 #, no-wrap
5240 msgid "I<mispred>"
5241 msgstr ""
5242
5243 #. type: Plain text
5244 #: build/C/man2/perf_event_open.2:1641
5245 msgid "The branch target was mispredicted."
5246 msgstr ""
5247
5248 #. type: TP
5249 #: build/C/man2/perf_event_open.2:1641
5250 #, no-wrap
5251 msgid "I<predicted>"
5252 msgstr ""
5253
5254 #. type: Plain text
5255 #: build/C/man2/perf_event_open.2:1644
5256 msgid "The branch target was predicted."
5257 msgstr ""
5258
5259 #. type: TP
5260 #: build/C/man2/perf_event_open.2:1644
5261 #, fuzzy, no-wrap
5262 #| msgid "I<bp_type> (Since Linux 2.6.33)"
5263 msgid "I<in_tx> (Since Linux 3.11)"
5264 msgstr "I<bp_type> (Linux 2.6.33 以降)"
5265
5266 #. type: Plain text
5267 #: build/C/man2/perf_event_open.2:1647
5268 msgid "The branch was in a transactional memory transaction."
5269 msgstr ""
5270
5271 #. type: TP
5272 #: build/C/man2/perf_event_open.2:1647
5273 #, fuzzy, no-wrap
5274 #| msgid "I<bp_type> (Since Linux 2.6.33)"
5275 msgid "I<abort> (Since Linux 3.11)"
5276 msgstr "I<bp_type> (Linux 2.6.33 以降)"
5277
5278 #. type: Plain text
5279 #: build/C/man2/perf_event_open.2:1650
5280 msgid "The branch was in an aborted transactional memory transaction."
5281 msgstr ""
5282
5283 #. type: Plain text
5284 #: build/C/man2/perf_event_open.2:1654
5285 msgid ""
5286 "The entries are from most to least recent, so the first entry has the most "
5287 "recent branch."
5288 msgstr ""
5289
5290 #. type: Plain text
5291 #: build/C/man2/perf_event_open.2:1661
5292 msgid ""
5293 "Support for I<mispred> and I<predicted> is optional; if not supported, both "
5294 "values will be 0."
5295 msgstr ""
5296
5297 #. type: Plain text
5298 #: build/C/man2/perf_event_open.2:1665
5299 msgid ""
5300 "The type of branches recorded is specified by the I<branch_sample_type> "
5301 "field."
5302 msgstr ""
5303
5304 #. type: TP
5305 #: build/C/man2/perf_event_open.2:1667
5306 #, no-wrap
5307 msgid "I<abi>, I<regs[weight(mask)]>"
5308 msgstr ""
5309
5310 #. type: Plain text
5311 #: build/C/man2/perf_event_open.2:1672
5312 msgid ""
5313 "If B<PERF_SAMPLE_REGS_USER> is enabled, then the user CPU registers are "
5314 "recorded."
5315 msgstr ""
5316
5317 #. type: Plain text
5318 #: build/C/man2/perf_event_open.2:1678
5319 msgid ""
5320 "The I<abi> field is one of B<PERF_SAMPLE_REGS_ABI_NONE>, "
5321 "B<PERF_SAMPLE_REGS_ABI_32> or B<PERF_SAMPLE_REGS_ABI_64>."
5322 msgstr ""
5323
5324 #. type: Plain text
5325 #: build/C/man2/perf_event_open.2:1688
5326 msgid ""
5327 "The I<regs> field is an array of the CPU registers that were specified by "
5328 "the I<sample_regs_user> attr field.  The number of values is the number of "
5329 "bits set in the I<sample_regs_user> bitmask."
5330 msgstr ""
5331
5332 #. type: TP
5333 #: build/C/man2/perf_event_open.2:1688
5334 #, no-wrap
5335 msgid "I<size>, I<data[size]>, I<dyn_size>"
5336 msgstr ""
5337
5338 #. type: Plain text
5339 #: build/C/man2/perf_event_open.2:1702
5340 msgid ""
5341 "If B<PERF_SAMPLE_STACK_USER> is enabled, then record the user stack to "
5342 "enable backtracing.  I<size> is the size requested by the user in "
5343 "I<stack_user_size> or else the maximum record size.  I<data> is the stack "
5344 "data.  I<dyn_size> is the amount of data actually dumped (can be less than "
5345 "I<size>)."
5346 msgstr ""
5347
5348 #. type: TP
5349 #: build/C/man2/perf_event_open.2:1702
5350 #, no-wrap
5351 msgid "I<weight>"
5352 msgstr ""
5353
5354 #. type: Plain text
5355 #: build/C/man2/perf_event_open.2:1710
5356 msgid ""
5357 "If B<PERF_SAMPLE_WEIGHT> is enabled, then a 64 bit value provided by the "
5358 "hardware is recorded that indicates how costly the event was.  This allows "
5359 "expensive events to stand out more clearly in profiles."
5360 msgstr ""
5361
5362 #. type: TP
5363 #: build/C/man2/perf_event_open.2:1710
5364 #, no-wrap
5365 msgid "I<data_src>"
5366 msgstr ""
5367
5368 #. type: Plain text
5369 #: build/C/man2/perf_event_open.2:1716
5370 msgid ""
5371 "If B<PERF_SAMPLE_DATA_SRC> is enabled, then a 64 bit value is recorded that "
5372 "is made up of the following fields:"
5373 msgstr ""
5374
5375 #. type: TP
5376 #: build/C/man2/perf_event_open.2:1717
5377 #, no-wrap
5378 msgid "I<mem_op>"
5379 msgstr ""
5380
5381 #. type: Plain text
5382 #: build/C/man2/perf_event_open.2:1720
5383 msgid "Type of opcode, a bitwise combination of:"
5384 msgstr ""
5385
5386 #. type: TP
5387 #: build/C/man2/perf_event_open.2:1723
5388 #, fuzzy, no-wrap
5389 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5390 msgid "B<PERF_MEM_OP_NA>"
5391 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5392
5393 #. type: Plain text
5394 #: build/C/man2/perf_event_open.2:1726 build/C/man2/perf_event_open.2:1749
5395 #: build/C/man2/perf_event_open.2:1799 build/C/man2/perf_event_open.2:1822
5396 #: build/C/man2/perf_event_open.2:1836
5397 msgid "Not available"
5398 msgstr ""
5399
5400 #. type: TP
5401 #: build/C/man2/perf_event_open.2:1726
5402 #, fuzzy, no-wrap
5403 #| msgid "B<PERF_EVENT_IOC_PERIOD>"
5404 msgid "B<PERF_MEM_OP_LOAD>"
5405 msgstr "B<PERF_EVENT_IOC_PERIOD>"
5406
5407 #. type: Plain text
5408 #: build/C/man2/perf_event_open.2:1729
5409 msgid "Load instruction"
5410 msgstr ""
5411
5412 #. type: TP
5413 #: build/C/man2/perf_event_open.2:1729
5414 #, fuzzy, no-wrap
5415 #| msgid "B<PERF_RECORD_FORK>"
5416 msgid "B<PERF_MEM_OP_STORE>"
5417 msgstr "B<PERF_RECORD_FORK>"
5418
5419 #. type: Plain text
5420 #: build/C/man2/perf_event_open.2:1732
5421 msgid "Store instruction"
5422 msgstr ""
5423
5424 #. type: TP
5425 #: build/C/man2/perf_event_open.2:1732
5426 #, fuzzy, no-wrap
5427 #| msgid "B<PERF_EVENT_IOC_REFRESH>"
5428 msgid "B<PERF_MEM_OP_PFETCH>"
5429 msgstr "B<PERF_EVENT_IOC_REFRESH>"
5430
5431 #. type: Plain text
5432 #: build/C/man2/perf_event_open.2:1735
5433 msgid "Prefetch"
5434 msgstr ""
5435
5436 #. type: TP
5437 #: build/C/man2/perf_event_open.2:1735
5438 #, fuzzy, no-wrap
5439 #| msgid "B<PERF_RECORD_EXIT>"
5440 msgid "B<PERF_MEM_OP_EXEC>"
5441 msgstr "B<PERF_RECORD_EXIT>"
5442
5443 #. type: Plain text
5444 #: build/C/man2/perf_event_open.2:1738
5445 msgid "Executable code"
5446 msgstr ""
5447
5448 #. type: TP
5449 #: build/C/man2/perf_event_open.2:1740
5450 #, no-wrap
5451 msgid "I<mem_lvl>"
5452 msgstr ""
5453
5454 #. type: Plain text
5455 #: build/C/man2/perf_event_open.2:1743
5456 msgid "Memory hierarchy level hit or miss, a bitwise combination of:"
5457 msgstr ""
5458
5459 #. type: TP
5460 #: build/C/man2/perf_event_open.2:1746
5461 #, fuzzy, no-wrap
5462 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5463 msgid "B<PERF_MEM_LVL_NA>"
5464 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5465
5466 #. type: TP
5467 #: build/C/man2/perf_event_open.2:1749
5468 #, fuzzy, no-wrap
5469 #| msgid "B<PERF_RECORD_EXIT>"
5470 msgid "B<PERF_MEM_LVL_HIT>"
5471 msgstr "B<PERF_RECORD_EXIT>"
5472
5473 #. type: Plain text
5474 #: build/C/man2/perf_event_open.2:1752 build/C/man2/perf_event_open.2:1839
5475 msgid "Hit"
5476 msgstr ""
5477
5478 #. type: TP
5479 #: build/C/man2/perf_event_open.2:1752
5480 #, fuzzy, no-wrap
5481 #| msgid "B<PERF_EVENT_IOC_RESET>"
5482 msgid "B<PERF_MEM_LVL_MISS>"
5483 msgstr "B<PERF_EVENT_IOC_RESET>"
5484
5485 #. type: Plain text
5486 #: build/C/man2/perf_event_open.2:1755 build/C/man2/perf_event_open.2:1842
5487 msgid "Miss"
5488 msgstr ""
5489
5490 #. type: TP
5491 #: build/C/man2/perf_event_open.2:1755
5492 #, no-wrap
5493 msgid "B<PERF_MEM_LVL_L1>"
5494 msgstr ""
5495
5496 #. type: Plain text
5497 #: build/C/man2/perf_event_open.2:1758
5498 msgid "Level 1 cache"
5499 msgstr ""
5500
5501 #. type: TP
5502 #: build/C/man2/perf_event_open.2:1758
5503 #, no-wrap
5504 msgid "B<PERF_MEM_LVL_LFB>"
5505 msgstr ""
5506
5507 #. type: Plain text
5508 #: build/C/man2/perf_event_open.2:1761
5509 msgid "Line fill buffer"
5510 msgstr ""
5511
5512 #. type: TP
5513 #: build/C/man2/perf_event_open.2:1761
5514 #, no-wrap
5515 msgid "B<PERF_MEM_LVL_L2>"
5516 msgstr ""
5517
5518 #. type: Plain text
5519 #: build/C/man2/perf_event_open.2:1764
5520 msgid "Level 2 cache"
5521 msgstr ""
5522
5523 #. type: TP
5524 #: build/C/man2/perf_event_open.2:1764
5525 #, no-wrap
5526 msgid "B<PERF_MEM_LVL_L3>"
5527 msgstr ""
5528
5529 #. type: Plain text
5530 #: build/C/man2/perf_event_open.2:1767
5531 msgid "Level 3 cache"
5532 msgstr ""
5533
5534 #. type: TP
5535 #: build/C/man2/perf_event_open.2:1767
5536 #, fuzzy, no-wrap
5537 #| msgid "B<PERF_EVENT_IOC_RESET>"
5538 msgid "B<PERF_MEM_LVL_LOC_RAM>"
5539 msgstr "B<PERF_EVENT_IOC_RESET>"
5540
5541 #. type: Plain text
5542 #: build/C/man2/perf_event_open.2:1770
5543 msgid "Local DRAM"
5544 msgstr ""
5545
5546 #. type: TP
5547 #: build/C/man2/perf_event_open.2:1770
5548 #, no-wrap
5549 msgid "B<PERF_MEM_LVL_REM_RAM1>"
5550 msgstr ""
5551
5552 #. type: Plain text
5553 #: build/C/man2/perf_event_open.2:1773
5554 msgid "Remote DRAM 1 hop"
5555 msgstr ""
5556
5557 #. type: TP
5558 #: build/C/man2/perf_event_open.2:1773
5559 #, no-wrap
5560 msgid "B<PERF_MEM_LVL_REM_RAM2>"
5561 msgstr ""
5562
5563 #. type: Plain text
5564 #: build/C/man2/perf_event_open.2:1776
5565 msgid "Remote DRAM 2 hops"
5566 msgstr ""
5567
5568 #. type: TP
5569 #: build/C/man2/perf_event_open.2:1776
5570 #, no-wrap
5571 msgid "B<PERF_MEM_LVL_REM_CCE1>"
5572 msgstr ""
5573
5574 #. type: Plain text
5575 #: build/C/man2/perf_event_open.2:1779
5576 msgid "Remote cache 1 hop"
5577 msgstr ""
5578
5579 #. type: TP
5580 #: build/C/man2/perf_event_open.2:1779
5581 #, no-wrap
5582 msgid "B<PERF_MEM_LVL_REM_CCE2>"
5583 msgstr ""
5584
5585 #. type: Plain text
5586 #: build/C/man2/perf_event_open.2:1782
5587 msgid "Remote cache 2 hops"
5588 msgstr ""
5589
5590 #. type: TP
5591 #: build/C/man2/perf_event_open.2:1782
5592 #, fuzzy, no-wrap
5593 #| msgid "B<PERF_EVENT_IOC_RESET>"
5594 msgid "B<PERF_MEM_LVL_IO>"
5595 msgstr "B<PERF_EVENT_IOC_RESET>"
5596
5597 #. type: Plain text
5598 #: build/C/man2/perf_event_open.2:1785
5599 #, fuzzy
5600 #| msgid "I/O error."
5601 msgid "I/O memory"
5602 msgstr "I/O エラー。"
5603
5604 #. type: TP
5605 #: build/C/man2/perf_event_open.2:1785
5606 #, no-wrap
5607 msgid "B<PERF_MEM_LVL_UNC>"
5608 msgstr ""
5609
5610 #. type: Plain text
5611 #: build/C/man2/perf_event_open.2:1788
5612 msgid "Uncached memory"
5613 msgstr ""
5614
5615 #. type: TP
5616 #: build/C/man2/perf_event_open.2:1790
5617 #, no-wrap
5618 msgid "I<mem_snoop>"
5619 msgstr ""
5620
5621 #. type: Plain text
5622 #: build/C/man2/perf_event_open.2:1793
5623 msgid "Snoop mode, a bitwise combination of:"
5624 msgstr ""
5625
5626 #. type: TP
5627 #: build/C/man2/perf_event_open.2:1796
5628 #, fuzzy, no-wrap
5629 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5630 msgid "B<PERF_MEM_SNOOP_NA>"
5631 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5632
5633 #. type: TP
5634 #: build/C/man2/perf_event_open.2:1799
5635 #, fuzzy, no-wrap
5636 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5637 msgid "B<PERF_MEM_SNOOP_NONE>"
5638 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5639
5640 #. type: Plain text
5641 #: build/C/man2/perf_event_open.2:1802
5642 msgid "No snoop"
5643 msgstr ""
5644
5645 #. type: TP
5646 #: build/C/man2/perf_event_open.2:1802
5647 #, fuzzy, no-wrap
5648 #| msgid "B<PERF_RECORD_EXIT>"
5649 msgid "B<PERF_MEM_SNOOP_HIT>"
5650 msgstr "B<PERF_RECORD_EXIT>"
5651
5652 #. type: Plain text
5653 #: build/C/man2/perf_event_open.2:1805
5654 msgid "Snoop hit"
5655 msgstr ""
5656
5657 #. type: TP
5658 #: build/C/man2/perf_event_open.2:1805
5659 #, no-wrap
5660 msgid "B<PERF_MEM_SNOOP_MISS>"
5661 msgstr ""
5662
5663 #. type: Plain text
5664 #: build/C/man2/perf_event_open.2:1808
5665 msgid "Snoop miss"
5666 msgstr ""
5667
5668 #. type: TP
5669 #: build/C/man2/perf_event_open.2:1808
5670 #, fuzzy, no-wrap
5671 #| msgid "B<PERF_RECORD_EXIT>"
5672 msgid "B<PERF_MEM_SNOOP_HITM>"
5673 msgstr "B<PERF_RECORD_EXIT>"
5674
5675 #. type: Plain text
5676 #: build/C/man2/perf_event_open.2:1811
5677 msgid "Snoop hit modified"
5678 msgstr ""
5679
5680 #. type: TP
5681 #: build/C/man2/perf_event_open.2:1813
5682 #, no-wrap
5683 msgid "I<mem_lock>"
5684 msgstr ""
5685
5686 #. type: Plain text
5687 #: build/C/man2/perf_event_open.2:1816
5688 msgid "Lock instruction, a bitwise combination of:"
5689 msgstr ""
5690
5691 #. type: TP
5692 #: build/C/man2/perf_event_open.2:1819
5693 #, fuzzy, no-wrap
5694 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5695 msgid "B<PERF_MEM_LOCK_NA>"
5696 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5697
5698 #. type: TP
5699 #: build/C/man2/perf_event_open.2:1822
5700 #, fuzzy, no-wrap
5701 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5702 msgid "B<PERF_MEM_LOCK_LOCKED>"
5703 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5704
5705 #. type: Plain text
5706 #: build/C/man2/perf_event_open.2:1825
5707 msgid "Locked transaction"
5708 msgstr ""
5709
5710 #. type: TP
5711 #: build/C/man2/perf_event_open.2:1827
5712 #, no-wrap
5713 msgid "I<mem_dtlb>"
5714 msgstr ""
5715
5716 #. type: Plain text
5717 #: build/C/man2/perf_event_open.2:1830
5718 msgid "TLB access hit or miss, a bitwise combination of:"
5719 msgstr ""
5720
5721 #. type: TP
5722 #: build/C/man2/perf_event_open.2:1833
5723 #, fuzzy, no-wrap
5724 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5725 msgid "B<PERF_MEM_TLB_NA>"
5726 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5727
5728 #. type: TP
5729 #: build/C/man2/perf_event_open.2:1836
5730 #, fuzzy, no-wrap
5731 #| msgid "B<PERF_RECORD_EXIT>"
5732 msgid "B<PERF_MEM_TLB_HIT>"
5733 msgstr "B<PERF_RECORD_EXIT>"
5734
5735 #. type: TP
5736 #: build/C/man2/perf_event_open.2:1839
5737 #, fuzzy, no-wrap
5738 #| msgid "B<PERF_EVENT_IOC_RESET>"
5739 msgid "B<PERF_MEM_TLB_MISS>"
5740 msgstr "B<PERF_EVENT_IOC_RESET>"
5741
5742 #. type: TP
5743 #: build/C/man2/perf_event_open.2:1842
5744 #, no-wrap
5745 msgid "B<PERF_MEM_TLB_L1>"
5746 msgstr ""
5747
5748 #. type: Plain text
5749 #: build/C/man2/perf_event_open.2:1845
5750 msgid "Level 1 TLB"
5751 msgstr ""
5752
5753 #. type: TP
5754 #: build/C/man2/perf_event_open.2:1845
5755 #, no-wrap
5756 msgid "B<PERF_MEM_TLB_L2>"
5757 msgstr ""
5758
5759 #. type: Plain text
5760 #: build/C/man2/perf_event_open.2:1848
5761 msgid "Level 2 TLB"
5762 msgstr ""
5763
5764 #. type: TP
5765 #: build/C/man2/perf_event_open.2:1848
5766 #, no-wrap
5767 msgid "B<PERF_MEM_TLB_WK>"
5768 msgstr ""
5769
5770 #. type: Plain text
5771 #: build/C/man2/perf_event_open.2:1851
5772 msgid "Hardware walker"
5773 msgstr ""
5774
5775 #. type: TP
5776 #: build/C/man2/perf_event_open.2:1851
5777 #, fuzzy, no-wrap
5778 #| msgid "B<PERF_EVENT_IOC_RESET>"
5779 msgid "B<PERF_MEM_TLB_OS>"
5780 msgstr "B<PERF_EVENT_IOC_RESET>"
5781
5782 #. type: Plain text
5783 #: build/C/man2/perf_event_open.2:1854
5784 msgid "OS fault handler"
5785 msgstr ""
5786
5787 #. type: SS
5788 #: build/C/man2/perf_event_open.2:1860
5789 #, no-wrap
5790 msgid "Signal overflow"
5791 msgstr ""
5792
5793 #. type: Plain text
5794 #: build/C/man2/perf_event_open.2:1869
5795 msgid ""
5796 "Events can be set to deliver a signal when a threshold is crossed.  The "
5797 "signal handler is set up using the B<poll>(2), B<select>(2), B<epoll>(2)  "
5798 "and B<fcntl>(2), system calls."
5799 msgstr ""
5800
5801 #. type: Plain text
5802 #: build/C/man2/perf_event_open.2:1873
5803 msgid ""
5804 "To generate signals, sampling must be enabled (I<sample_period> must have a "
5805 "non-zero value)."
5806 msgstr ""
5807
5808 #. type: Plain text
5809 #: build/C/man2/perf_event_open.2:1875
5810 msgid "There are two ways to generate signals."
5811 msgstr ""
5812
5813 #. type: Plain text
5814 #: build/C/man2/perf_event_open.2:1885
5815 msgid ""
5816 "The first is to set a I<wakeup_events> or I<wakeup_watermark> value that "
5817 "will generate a signal if a certain number of samples or bytes have been "
5818 "written to the mmap ring buffer.  In this case a signal of type B<POLL_IN> "
5819 "is sent."
5820 msgstr ""
5821
5822 #. type: Plain text
5823 #: build/C/man2/perf_event_open.2:1897
5824 msgid ""
5825 "The other way is by use of the B<PERF_EVENT_IOC_REFRESH> ioctl.  This ioctl "
5826 "adds to a counter that decrements each time the event overflows.  When non-"
5827 "zero, a B<POLL_IN> signal is sent on overflow, but once the value reaches 0, "
5828 "a signal is sent of type B<POLL_HUP> and the underlying event is disabled."
5829 msgstr ""
5830
5831 #.  FIXME(Vince) : Find out when this was introduced
5832 #. type: Plain text
5833 #: build/C/man2/perf_event_open.2:1903
5834 msgid ""
5835 "Note: on newer kernels (definitely noticed with 3.2)  a signal is provided "
5836 "for every overflow, even if I<wakeup_events> is not set."
5837 msgstr ""
5838
5839 #. type: SS
5840 #: build/C/man2/perf_event_open.2:1903
5841 #, no-wrap
5842 msgid "rdpmc instruction"
5843 msgstr ""
5844
5845 #. type: Plain text
5846 #: build/C/man2/perf_event_open.2:1910
5847 msgid ""
5848 "Starting with Linux 3.4 on x86, you can use the I<rdpmc> instruction to get "
5849 "low-latency reads without having to enter the kernel.  Note that using "
5850 "I<rdpmc> is not necessarily faster than other methods for reading event "
5851 "values."
5852 msgstr ""
5853
5854 #. type: Plain text
5855 #: build/C/man2/perf_event_open.2:1915
5856 msgid ""
5857 "Support for this can be detected with the I<cap_usr_rdpmc> field in the mmap "
5858 "page; documentation on how to calculate event values can be found in that "
5859 "section."
5860 msgstr ""
5861
5862 #. type: SS
5863 #: build/C/man2/perf_event_open.2:1915
5864 #, no-wrap
5865 msgid "perf_event ioctl calls"
5866 msgstr ""
5867
5868 #. type: Plain text
5869 #: build/C/man2/perf_event_open.2:1920
5870 msgid "Various ioctls act on B<perf_event_open>()  file descriptors"
5871 msgstr ""
5872
5873 #. type: TP
5874 #: build/C/man2/perf_event_open.2:1920
5875 #, no-wrap
5876 msgid "B<PERF_EVENT_IOC_ENABLE>"
5877 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5878
5879 #. type: Plain text
5880 #: build/C/man2/perf_event_open.2:1924
5881 msgid ""
5882 "Enables the individual event or event group specified by the file descriptor "
5883 "argument."
5884 msgstr ""
5885
5886 #. type: Plain text
5887 #: build/C/man2/perf_event_open.2:1930
5888 msgid ""
5889 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
5890 "events in a group are enabled, even if the event specified is not the group "
5891 "leader (but see BUGS)."
5892 msgstr ""
5893
5894 #. type: TP
5895 #: build/C/man2/perf_event_open.2:1930
5896 #, no-wrap
5897 msgid "B<PERF_EVENT_IOC_DISABLE>"
5898 msgstr "B<PERF_EVENT_IOC_DISABLE>"
5899
5900 #. type: Plain text
5901 #: build/C/man2/perf_event_open.2:1934
5902 msgid ""
5903 "Disables the individual counter or event group specified by the file "
5904 "descriptor argument."
5905 msgstr ""
5906
5907 #. type: Plain text
5908 #: build/C/man2/perf_event_open.2:1941
5909 msgid ""
5910 "Enabling or disabling the leader of a group enables or disables the entire "
5911 "group; that is, while the group leader is disabled, none of the counters in "
5912 "the group will count.  Enabling or disabling a member of a group other than "
5913 "the leader affects only that counter; disabling a non-leader stops that "
5914 "counter from counting but doesn't affect any other counter."
5915 msgstr ""
5916
5917 #. type: Plain text
5918 #: build/C/man2/perf_event_open.2:1947
5919 msgid ""
5920 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
5921 "events in a group are disabled, even if the event specified is not the group "
5922 "leader (but see BUGS)."
5923 msgstr ""
5924
5925 #. type: TP
5926 #: build/C/man2/perf_event_open.2:1947
5927 #, no-wrap
5928 msgid "B<PERF_EVENT_IOC_REFRESH>"
5929 msgstr "B<PERF_EVENT_IOC_REFRESH>"
5930
5931 #. type: Plain text
5932 #: build/C/man2/perf_event_open.2:1961
5933 msgid ""
5934 "Non-inherited overflow counters can use this to enable a counter for a "
5935 "number of overflows specified by the argument, after which it is disabled.  "
5936 "Subsequent calls of this ioctl add the argument value to the current count.  "
5937 "A signal with B<POLL_IN> set will happen on each overflow until the count "
5938 "reaches 0; when that happens a signal with POLL_HUP set is sent and the "
5939 "event is disabled.  Using an argument of 0 is considered undefined behavior."
5940 msgstr ""
5941
5942 #. type: TP
5943 #: build/C/man2/perf_event_open.2:1961
5944 #, no-wrap
5945 msgid "B<PERF_EVENT_IOC_RESET>"
5946 msgstr "B<PERF_EVENT_IOC_RESET>"
5947
5948 #. type: Plain text
5949 #: build/C/man2/perf_event_open.2:1971
5950 msgid ""
5951 "Reset the event count specified by the file descriptor argument to zero.  "
5952 "This resets only the counts; there is no way to reset the multiplexing "
5953 "I<time_enabled> or I<time_running> values."
5954 msgstr ""
5955
5956 #. type: Plain text
5957 #: build/C/man2/perf_event_open.2:1977
5958 msgid ""
5959 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
5960 "events in a group are reset, even if the event specified is not the group "
5961 "leader (but see BUGS)."
5962 msgstr ""
5963
5964 #. type: TP
5965 #: build/C/man2/perf_event_open.2:1977
5966 #, no-wrap
5967 msgid "B<PERF_EVENT_IOC_PERIOD>"
5968 msgstr "B<PERF_EVENT_IOC_PERIOD>"
5969
5970 #. type: Plain text
5971 #: build/C/man2/perf_event_open.2:1981
5972 msgid ""
5973 "IOC_PERIOD is the command to update the period; it does not update the "
5974 "current period but instead defers until next."
5975 msgstr ""
5976
5977 #. type: Plain text
5978 #: build/C/man2/perf_event_open.2:1984
5979 msgid ""
5980 "The argument is a pointer to a 64-bit value containing the desired new "
5981 "period."
5982 msgstr ""
5983
5984 #. type: TP
5985 #: build/C/man2/perf_event_open.2:1984
5986 #, no-wrap
5987 msgid "B<PERF_EVENT_IOC_SET_OUTPUT>"
5988 msgstr ""
5989
5990 #. type: Plain text
5991 #: build/C/man2/perf_event_open.2:1989
5992 msgid ""
5993 "This tells the kernel to report event notifications to the specified file "
5994 "descriptor rather than the default one.  The file descriptors must all be on "
5995 "the same CPU."
5996 msgstr ""
5997
5998 #. type: Plain text
5999 #: build/C/man2/perf_event_open.2:1992
6000 msgid ""
6001 "The argument specifies the desired file descriptor, or -1 if output should "
6002 "be ignored."
6003 msgstr ""
6004
6005 #. type: TP
6006 #: build/C/man2/perf_event_open.2:1992
6007 #, no-wrap
6008 msgid "B<PERF_EVENT_IOC_SET_FILTER> (Since Linux 2.6.33)"
6009 msgstr "B<PERF_EVENT_IOC_SET_FILTER> (Linux 2.6.33 以降)"
6010
6011 #. type: Plain text
6012 #: build/C/man2/perf_event_open.2:1995
6013 msgid "This adds an ftrace filter to this event."
6014 msgstr ""
6015
6016 #. type: Plain text
6017 #: build/C/man2/perf_event_open.2:1997
6018 msgid "The argument is a pointer to the desired ftrace filter."
6019 msgstr ""
6020
6021 #. type: SS
6022 #: build/C/man2/perf_event_open.2:1997
6023 #, no-wrap
6024 msgid "Using prctl"
6025 msgstr ""
6026
6027 #. type: Plain text
6028 #: build/C/man2/perf_event_open.2:2010
6029 msgid ""
6030 "A process can enable or disable all the event groups that are attached to it "
6031 "using the B<prctl>(2)  B<PR_TASK_PERF_EVENTS_ENABLE> and "
6032 "B<PR_TASK_PERF_EVENTS_DISABLE> operations.  This applies to all counters on "
6033 "the current process, whether created by this process or by another, and does "
6034 "not affect any counters that this process has created on other processes.  "
6035 "It enables or disables only the group leaders, not any other members in the "
6036 "groups."
6037 msgstr ""
6038
6039 #. type: SS
6040 #: build/C/man2/perf_event_open.2:2010
6041 #, no-wrap
6042 msgid "perf_event related configuration files"
6043 msgstr ""
6044
6045 #. type: Plain text
6046 #: build/C/man2/perf_event_open.2:2013
6047 msgid "Files in I</proc/sys/kernel/>"
6048 msgstr ""
6049
6050 #. type: TP
6051 #: build/C/man2/perf_event_open.2:2014
6052 #, no-wrap
6053 msgid "I</proc/sys/kernel/perf_event_paranoid>"
6054 msgstr ""
6055
6056 #. type: Plain text
6057 #: build/C/man2/perf_event_open.2:2020
6058 msgid ""
6059 "The I<perf_event_paranoid> file can be set to restrict access to the "
6060 "performance counters."
6061 msgstr ""
6062
6063 #. type: IP
6064 #: build/C/man2/perf_event_open.2:2021
6065 #, no-wrap
6066 msgid "2"
6067 msgstr ""
6068
6069 #. type: Plain text
6070 #: build/C/man2/perf_event_open.2:2023
6071 msgid "only allow user-space measurements."
6072 msgstr ""
6073
6074 #. type: IP
6075 #: build/C/man2/perf_event_open.2:2023
6076 #, no-wrap
6077 msgid "1"
6078 msgstr ""
6079
6080 #. type: Plain text
6081 #: build/C/man2/perf_event_open.2:2025
6082 msgid "allow both kernel and user measurements (default)."
6083 msgstr ""
6084
6085 #. type: IP
6086 #: build/C/man2/perf_event_open.2:2025
6087 #, no-wrap
6088 msgid "0"
6089 msgstr ""
6090
6091 #. type: Plain text
6092 #: build/C/man2/perf_event_open.2:2027
6093 msgid "allow access to CPU-specific data but not raw tracepoint samples."
6094 msgstr ""
6095
6096 #. type: IP
6097 #: build/C/man2/perf_event_open.2:2027
6098 #, fuzzy, no-wrap
6099 #| msgid "-"
6100 msgid "-1"
6101 msgstr "-"
6102
6103 #. type: Plain text
6104 #: build/C/man2/perf_event_open.2:2029
6105 msgid "no restrictions."
6106 msgstr ""
6107
6108 #. type: Plain text
6109 #: build/C/man2/perf_event_open.2:2035
6110 msgid ""
6111 "The existence of the I<perf_event_paranoid> file is the official method for "
6112 "determining if a kernel supports B<perf_event_open>()."
6113 msgstr ""
6114
6115 #. type: TP
6116 #: build/C/man2/perf_event_open.2:2035
6117 #, no-wrap
6118 msgid "I</proc/sys/kernel/perf_event_max_sample_rate>"
6119 msgstr ""
6120
6121 #. type: Plain text
6122 #: build/C/man2/perf_event_open.2:2044
6123 msgid ""
6124 "This sets the maximum sample rate.  Setting this too high can allow users to "
6125 "sample at a rate that impacts overall machine performance and potentially "
6126 "lock up the machine.  The default value is 100000 (samples per second)."
6127 msgstr ""
6128
6129 #. type: TP
6130 #: build/C/man2/perf_event_open.2:2044
6131 #, no-wrap
6132 msgid "I</proc/sys/kernel/perf_event_mlock_kb>"
6133 msgstr ""
6134
6135 #. type: Plain text
6136 #: build/C/man2/perf_event_open.2:2049
6137 msgid ""
6138 "Maximum number of pages an unprivileged user can mlock (2) .  The default is "
6139 "516 (kB)."
6140 msgstr ""
6141
6142 #. type: Plain text
6143 #: build/C/man2/perf_event_open.2:2053
6144 msgid "Files in I</sys/bus/event_source/devices/>"
6145 msgstr ""
6146
6147 #. type: Plain text
6148 #: build/C/man2/perf_event_open.2:2059
6149 msgid ""
6150 "Since Linux 2.6.34 the kernel supports having multiple PMUs available for "
6151 "monitoring.  Information on how to program these PMUs can be found under I</"
6152 "sys/bus/event_source/devices/>.  Each subdirectory corresponds to a "
6153 "different PMU."
6154 msgstr ""
6155
6156 #. type: TP
6157 #: build/C/man2/perf_event_open.2:2059
6158 #, no-wrap
6159 msgid "I</sys/bus/event_source/devices/*/type> (Since Linux 2.6.38)"
6160 msgstr "I</sys/bus/event_source/devices/*/type> (Linux 2.6.38 以降)"
6161
6162 #. type: Plain text
6163 #: build/C/man2/perf_event_open.2:2064
6164 msgid ""
6165 "This contains an integer that can be used in the I<type> field of "
6166 "perf_event_attr to indicate you wish to use this PMU."
6167 msgstr ""
6168
6169 #. type: TP
6170 #: build/C/man2/perf_event_open.2:2064
6171 #, no-wrap
6172 msgid "I</sys/bus/event_source/devices/*/rdpmc> (Since Linux 3.4)"
6173 msgstr ""
6174
6175 #. type: Plain text
6176 #: build/C/man2/perf_event_open.2:2069
6177 msgid ""
6178 "If this file is 1, then direct user-space access to the performance counter "
6179 "registers is allowed via the rdpmc instruction.  This can be disabled by "
6180 "echoing 0 to the file."
6181 msgstr ""
6182
6183 #. type: TP
6184 #: build/C/man2/perf_event_open.2:2069
6185 #, no-wrap
6186 msgid "I</sys/bus/event_source/devices/*/format/> (Since Linux 3.4)"
6187 msgstr ""
6188
6189 #. type: Plain text
6190 #: build/C/man2/perf_event_open.2:2075
6191 msgid ""
6192 "This sub-directory contains information on the architecture-specific sub-"
6193 "fields available for programming the various I<config> fields in the "
6194 "perf_event_attr struct."
6195 msgstr ""
6196
6197 #. type: Plain text
6198 #: build/C/man2/perf_event_open.2:2085
6199 msgid ""
6200 "The content of each file is the name of the config field, followed by a "
6201 "colon, followed by a series of integer bit ranges separated by commas.  For "
6202 "example, the file I<event> may contain the value I<config1:1,6-10,44> which "
6203 "indicates that event is an attribute that occupies bits 1,6-10, and 44 of "
6204 "perf_event_attr::config1."
6205 msgstr ""
6206
6207 #. type: TP
6208 #: build/C/man2/perf_event_open.2:2085
6209 #, no-wrap
6210 msgid "I</sys/bus/event_source/devices/*/events/> (Since Linux 3.4)"
6211 msgstr ""
6212
6213 #. type: Plain text
6214 #: build/C/man2/perf_event_open.2:2094
6215 msgid ""
6216 "This sub-directory contains files with pre-defined events.  The contents are "
6217 "strings describing the event settings expressed in terms of the fields found "
6218 "in the previously mentioned I<./format/> directory.  These are not "
6219 "necessarily complete lists of all events supported by a PMU, but usually a "
6220 "subset of events deemed useful or interesting."
6221 msgstr ""
6222
6223 #. type: Plain text
6224 #: build/C/man2/perf_event_open.2:2102
6225 msgid ""
6226 "The content of each file is a list of attribute names separated by commas.  "
6227 "Each entry has an optional value (either hex or decimal).  If no value is "
6228 "specified than it is assumed to be a single-bit field with a value of 1.  An "
6229 "example entry may look like this: I<event=0x2,inv,ldlat=3>."
6230 msgstr ""
6231
6232 #. type: TP
6233 #: build/C/man2/perf_event_open.2:2102
6234 #, no-wrap
6235 msgid "I</sys/bus/event_source/devices/*/uevent>"
6236 msgstr ""
6237
6238 #. type: Plain text
6239 #: build/C/man2/perf_event_open.2:2106
6240 msgid ""
6241 "This file is the standard kernel device interface for injecting hotplug "
6242 "events."
6243 msgstr ""
6244
6245 #. type: TP
6246 #: build/C/man2/perf_event_open.2:2106
6247 #, no-wrap
6248 msgid "I</sys/bus/event_source/devices/*/cpumask> (Since Linux 3.7)"
6249 msgstr ""
6250
6251 #. type: Plain text
6252 #: build/C/man2/perf_event_open.2:2115
6253 msgid ""
6254 "The I<cpumask> file contains a comma-separated list of integers that "
6255 "indicate a representative CPU number for each socket (package)  on the "
6256 "motherboard.  This is needed when setting up uncore or northbridge events, "
6257 "as those PMUs present socket-wide events."
6258 msgstr ""
6259
6260 #. type: Plain text
6261 #: build/C/man2/perf_event_open.2:2122
6262 msgid ""
6263 "B<perf_event_open>()  returns the new file descriptor, or -1 if an error "
6264 "occurred (in which case, I<errno> is set appropriately)."
6265 msgstr ""
6266
6267 #. type: Plain text
6268 #: build/C/man2/perf_event_open.2:2126
6269 msgid "Returned if the specified event is not available."
6270 msgstr ""
6271
6272 #. type: TP
6273 #: build/C/man2/perf_event_open.2:2126
6274 #, no-wrap
6275 msgid "B<ENOSPC>"
6276 msgstr "B<ENOSPC>"
6277
6278 #. type: Plain text
6279 #: build/C/man2/perf_event_open.2:2136
6280 msgid ""
6281 "Prior to Linux 3.3, if there was not enough room for the event, B<ENOSPC> "
6282 "was returned.  Linus did not like this, and this was changed to B<EINVAL>.  "
6283 "B<ENOSPC> is still returned if you try to read results into too small of a "
6284 "buffer."
6285 msgstr ""
6286
6287 #. type: SH
6288 #: build/C/man2/perf_event_open.2:2136
6289 #, no-wrap
6290 msgid "VERSION"
6291 msgstr "バージョン"
6292
6293 #. type: Plain text
6294 #: build/C/man2/perf_event_open.2:2141
6295 msgid ""
6296 "B<perf_event_open>()  was introduced in Linux 2.6.31 but was called "
6297 "B<perf_counter_open>()B<.> It was renamed in Linux 2.6.32."
6298 msgstr ""
6299
6300 #. type: Plain text
6301 #: build/C/man2/perf_event_open.2:2146
6302 #, fuzzy
6303 #| msgid ""
6304 #| "B<personality>()  is Linux-specific and should not be used in programs "
6305 #| "intended to be portable."
6306 msgid ""
6307 "This B<perf_event_open>()  system call Linux- specific and should not be "
6308 "used in programs intended to be portable."
6309 msgstr ""
6310 "B<personality>()  は Linux 固有であり、移植を意図したプログラムで使用すべきで"
6311 "はない。"
6312
6313 #. type: Plain text
6314 #: build/C/man2/perf_event_open.2:2150
6315 #, fuzzy
6316 #| msgid ""
6317 #| "Glibc does not provide a wrapper for this system call; call it using "
6318 #| "B<syscall>(2)."
6319 msgid ""
6320 "Glibc does not provide a wrapper for this system call; call it using "
6321 "B<syscall>(2).  See the example below."
6322 msgstr ""
6323 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
6324 "(2)  を使って呼び出すこと。"
6325
6326 #. type: Plain text
6327 #: build/C/man2/perf_event_open.2:2156
6328 msgid ""
6329 "The official way of knowing if B<perf_event_open>()  support is enabled is "
6330 "checking for the existence of the file I</proc/sys/kernel/"
6331 "perf_event_paranoid>."
6332 msgstr ""
6333
6334 #. type: SH
6335 #: build/C/man2/perf_event_open.2:2156 build/C/man2/pivot_root.2:134
6336 #: build/C/man2/ptrace.2:1884
6337 #, no-wrap
6338 msgid "BUGS"
6339 msgstr "バグ"
6340
6341 #. type: Plain text
6342 #: build/C/man2/perf_event_open.2:2163
6343 msgid ""
6344 "The B<F_SETOWN_EX> option to B<fcntl>(2)  is needed to properly get overflow "
6345 "signals in threads.  This was introduced in Linux 2.6.32."
6346 msgstr ""
6347
6348 #. type: Plain text
6349 #: build/C/man2/perf_event_open.2:2171
6350 msgid ""
6351 "Prior to Linux 2.6.33 (at least for x86) the kernel did not check if events "
6352 "could be scheduled together until read time.  The same happens on all known "
6353 "kernels if the NMI watchdog is enabled.  This means to see if a given set of "
6354 "events works you have to B<perf_event_open>(), start, then read before you "
6355 "know for sure you can get valid measurements."
6356 msgstr ""
6357
6358 #. type: Plain text
6359 #: build/C/man2/perf_event_open.2:2175
6360 msgid ""
6361 "Prior to Linux 2.6.34 event constraints were not enforced by the kernel.  In "
6362 "that case, some events would silently return \"0\" if the kernel scheduled "
6363 "them in an improper counter slot."
6364 msgstr ""
6365
6366 #. type: Plain text
6367 #: build/C/man2/perf_event_open.2:2178
6368 msgid ""
6369 "Prior to Linux 2.6.34 there was a bug when multiplexing where the wrong "
6370 "results could be returned."
6371 msgstr ""
6372
6373 #. type: Plain text
6374 #: build/C/man2/perf_event_open.2:2181
6375 msgid ""
6376 "Kernels from Linux 2.6.35 to Linux 2.6.39 can quickly crash the kernel if "
6377 "\"inherit\" is enabled and many threads are started."
6378 msgstr ""
6379
6380 #. type: Plain text
6381 #: build/C/man2/perf_event_open.2:2185
6382 msgid ""
6383 "Prior to Linux 2.6.35, B<PERF_FORMAT_GROUP> did not work with attached "
6384 "processes."
6385 msgstr ""
6386
6387 #. type: Plain text
6388 #: build/C/man2/perf_event_open.2:2190
6389 msgid ""
6390 "In older Linux 2.6 versions, refreshing an event group leader refreshed all "
6391 "siblings, and refreshing with a parameter of 0 enabled infinite refresh.  "
6392 "This behavior is unsupported and should not be relied on."
6393 msgstr ""
6394
6395 #. type: Plain text
6396 #: build/C/man2/perf_event_open.2:2196
6397 msgid ""
6398 "There is a bug in the kernel code between Linux 2.6.36 and Linux 3.0 that "
6399 "ignores the \"watermark\" field and acts as if a wakeup_event was chosen if "
6400 "the union has a non-zero value in it."
6401 msgstr ""
6402
6403 #. type: Plain text
6404 #: build/C/man2/perf_event_open.2:2202
6405 msgid ""
6406 "From Linux 2.6.31 to Linux 3.4, the B<PERF_IOC_FLAG_GROUP> ioctl argument "
6407 "was broken and would repeatedly operate on the event specified rather than "
6408 "iterating across all sibling events in a group."
6409 msgstr ""
6410
6411 #. type: Plain text
6412 #: build/C/man2/perf_event_open.2:2207
6413 msgid ""
6414 "Always double-check your results! Various generalized events have had wrong "
6415 "values.  For example, retired branches measured the wrong thing on AMD "
6416 "machines until Linux 2.6.35."
6417 msgstr ""
6418
6419 #. type: SH
6420 #: build/C/man2/perf_event_open.2:2207 build/C/man2/process_vm_readv.2:295
6421 #: build/C/man2/splice.2:223 build/C/man2/tee.2:130
6422 #, no-wrap
6423 msgid "EXAMPLE"
6424 msgstr "例"
6425
6426 #. type: Plain text
6427 #: build/C/man2/perf_event_open.2:2211
6428 msgid ""
6429 "The following is a short example that measures the total instruction count "
6430 "of a call to B<printf>(3)."
6431 msgstr ""
6432
6433 #. type: Plain text
6434 #: build/C/man2/perf_event_open.2:2220
6435 #, no-wrap
6436 msgid ""
6437 "#include E<lt>stdlib.hE<gt>\n"
6438 "#include E<lt>stdio.hE<gt>\n"
6439 "#include E<lt>unistd.hE<gt>\n"
6440 "#include E<lt>string.hE<gt>\n"
6441 "#include E<lt>sys/ioctl.hE<gt>\n"
6442 "#include E<lt>linux/perf_event.hE<gt>\n"
6443 "#include E<lt>asm/unistd.hE<gt>\n"
6444 msgstr ""
6445 "#include E<lt>stdlib.hE<gt>\n"
6446 "#include E<lt>stdio.hE<gt>\n"
6447 "#include E<lt>unistd.hE<gt>\n"
6448 "#include E<lt>string.hE<gt>\n"
6449 "#include E<lt>sys/ioctl.hE<gt>\n"
6450 "#include E<lt>linux/perf_event.hE<gt>\n"
6451 "#include E<lt>asm/unistd.hE<gt>\n"
6452
6453 #. type: Plain text
6454 #: build/C/man2/perf_event_open.2:2226
6455 #, no-wrap
6456 msgid ""
6457 "long\n"
6458 "perf_event_open(struct perf_event_attr *hw_event, pid_t pid,\n"
6459 "                int cpu, int group_fd, unsigned long flags)\n"
6460 "{\n"
6461 "    int ret;\n"
6462 msgstr ""
6463
6464 #. type: Plain text
6465 #: build/C/man2/perf_event_open.2:2231
6466 #, no-wrap
6467 msgid ""
6468 "    ret = syscall(__NR_perf_event_open, hw_event, pid, cpu,\n"
6469 "                   group_fd, flags);\n"
6470 "    return ret;\n"
6471 "}\n"
6472 msgstr ""
6473
6474 #. type: Plain text
6475 #: build/C/man2/perf_event_open.2:2238
6476 #, no-wrap
6477 msgid ""
6478 "int\n"
6479 "main(int argc, char **argv)\n"
6480 "{\n"
6481 "    struct perf_event_attr pe;\n"
6482 "    long long count;\n"
6483 "    int fd;\n"
6484 msgstr ""
6485 "int\n"
6486 "main(int argc, char **argv)\n"
6487 "{\n"
6488 "    struct perf_event_attr pe;\n"
6489 "    long long count;\n"
6490 "    int fd;\n"
6491
6492 #. type: Plain text
6493 #: build/C/man2/perf_event_open.2:2246
6494 #, no-wrap
6495 msgid ""
6496 "    memset(&pe, 0, sizeof(struct perf_event_attr));\n"
6497 "    pe.type = PERF_TYPE_HARDWARE;\n"
6498 "    pe.size = sizeof(struct perf_event_attr);\n"
6499 "    pe.config = PERF_COUNT_HW_INSTRUCTIONS;\n"
6500 "    pe.disabled = 1;\n"
6501 "    pe.exclude_kernel = 1;\n"
6502 "    pe.exclude_hv = 1;\n"
6503 msgstr ""
6504
6505 #. type: Plain text
6506 #: build/C/man2/perf_event_open.2:2252
6507 #, no-wrap
6508 msgid ""
6509 "    fd = perf_event_open(&pe, 0, -1, -1, 0);\n"
6510 "    if (fd == -1) {\n"
6511 "       fprintf(stderr, \"Error opening leader %llx\\en\", pe.config);\n"
6512 "       exit(EXIT_FAILURE);\n"
6513 "    }\n"
6514 msgstr ""
6515 "    fd = perf_event_open(&pe, 0, -1, -1, 0);\n"
6516 "    if (fd == -1) {\n"
6517 "       fprintf(stderr, \"Error opening leader %llx\\en\", pe.config);\n"
6518 "       exit(EXIT_FAILURE);\n"
6519 "    }\n"
6520
6521 #. type: Plain text
6522 #: build/C/man2/perf_event_open.2:2255
6523 #, no-wrap
6524 msgid ""
6525 "    ioctl(fd, PERF_EVENT_IOC_RESET, 0);\n"
6526 "    ioctl(fd, PERF_EVENT_IOC_ENABLE, 0);\n"
6527 msgstr ""
6528
6529 #. type: Plain text
6530 #: build/C/man2/perf_event_open.2:2257
6531 #, no-wrap
6532 msgid "    printf(\"Measuring instruction count for this printf\\en\");\n"
6533 msgstr ""
6534
6535 #. type: Plain text
6536 #: build/C/man2/perf_event_open.2:2260
6537 #, no-wrap
6538 msgid ""
6539 "    ioctl(fd, PERF_EVENT_IOC_DISABLE, 0);\n"
6540 "    read(fd, &count, sizeof(long long));\n"
6541 msgstr ""
6542
6543 #. type: Plain text
6544 #: build/C/man2/perf_event_open.2:2262
6545 #, no-wrap
6546 msgid "    printf(\"Used %lld instructions\\en\", count);\n"
6547 msgstr ""
6548
6549 #. type: Plain text
6550 #: build/C/man2/perf_event_open.2:2265
6551 #, no-wrap
6552 msgid ""
6553 "    close(fd);\n"
6554 "}\n"
6555 msgstr ""
6556
6557 #. type: Plain text
6558 #: build/C/man2/perf_event_open.2:2272
6559 msgid "B<fcntl>(2), B<mmap>(2), B<open>(2), B<prctl>(2), B<read>(2)"
6560 msgstr "B<fcntl>(2), B<mmap>(2), B<open>(2), B<prctl>(2), B<read>(2)"
6561
6562 #. type: TH
6563 #: build/C/man2/perfmonctl.2:27
6564 #, no-wrap
6565 msgid "PERFMONCTL"
6566 msgstr ""
6567
6568 #. type: Plain text
6569 #: build/C/man2/perfmonctl.2:30
6570 msgid "perfmonctl - interface to IA-64 performance monitoring unit"
6571 msgstr ""
6572
6573 #. type: Plain text
6574 #: build/C/man2/perfmonctl.2:34
6575 #, no-wrap
6576 msgid ""
6577 "B<#include E<lt>syscall.hE<gt>>\n"
6578 "B<#include E<lt>perfmon.hE<gt>>\n"
6579 msgstr ""
6580 "B<#include E<lt>syscall.hE<gt>>\n"
6581 "B<#include E<lt>perfmon.hE<gt>>\n"
6582
6583 #. type: Plain text
6584 #: build/C/man2/perfmonctl.2:36
6585 #, no-wrap
6586 msgid "B<long perfmonctl(int >I<fd>B<, int >I<cmd>B<, void *>I<arg>B<, int >I<narg>B<);>\n"
6587 msgstr "B<long perfmonctl(int >I<fd>B<, int >I<cmd>B<, void *>I<arg>B<, int >I<narg>B<);>\n"
6588
6589 #. type: Plain text
6590 #: build/C/man2/perfmonctl.2:47
6591 msgid ""
6592 "The IA-64-specific B<perfmonctl>()  system call provides an interface to the "
6593 "PMU (performance monitoring unit).  The PMU consists of PMD (performance "
6594 "monitoring data) registers and PMC (performance monitoring control) "
6595 "registers, which gather hardware statistics."
6596 msgstr ""
6597
6598 #. type: Plain text
6599 #: build/C/man2/perfmonctl.2:57
6600 msgid ""
6601 "B<perfmonctl>()  applies the operation I<cmd> to the input arguments "
6602 "specified by I<arg>.  The number of arguments is defined by I<narg>.  The "
6603 "I<fd> argument specifies the perfmon context to operate on."
6604 msgstr ""
6605
6606 #. type: Plain text
6607 #: build/C/man2/perfmonctl.2:61
6608 msgid "Supported values for I<cmd> are:"
6609 msgstr ""
6610
6611 #. type: TP
6612 #: build/C/man2/perfmonctl.2:61
6613 #, no-wrap
6614 msgid "B<PFM_CREATE_CONTEXT>"
6615 msgstr "B<PFM_CREATE_CONTEXT>"
6616
6617 #. type: Plain text
6618 #: build/C/man2/perfmonctl.2:65
6619 #, no-wrap
6620 msgid "B<perfmonctl(int >I<fd>B<, PFM_CREATE_CONTEXT, pfarg_context_t *>I<ctxt>B<, 1);>\n"
6621 msgstr ""
6622
6623 #. type: Plain text
6624 #: build/C/man2/perfmonctl.2:67
6625 msgid "Set up a context."
6626 msgstr ""
6627
6628 #. type: Plain text
6629 #: build/C/man2/perfmonctl.2:74
6630 msgid ""
6631 "The I<fd> parameter is ignored.  A new perfmon context is created as "
6632 "specified in I<ctxt> and its file descriptor is returned in I<ctxt-"
6633 "E<gt>ctx_fd>."
6634 msgstr ""
6635
6636 #. type: Plain text
6637 #: build/C/man2/perfmonctl.2:86
6638 msgid ""
6639 "The file descriptor can be used in subsequent calls to B<perfmonctl>()  and "
6640 "can be used to read event notifications (type I<pfm_msg_t>)  using B<read>"
6641 "(2).  The file descriptor is pollable using B<select>(2), B<poll>(2), and "
6642 "B<epoll>(7)."
6643 msgstr ""
6644
6645 #. type: Plain text
6646 #: build/C/man2/perfmonctl.2:90
6647 msgid ""
6648 "The context can be destroyed by calling B<close>(2)  on the file descriptor."
6649 msgstr ""
6650
6651 #. type: TP
6652 #: build/C/man2/perfmonctl.2:90
6653 #, no-wrap
6654 msgid "B<PFM_WRITE_PMCS>"
6655 msgstr ""
6656
6657 #. type: Plain text
6658 #: build/C/man2/perfmonctl.2:95
6659 #, no-wrap
6660 msgid "B<perfmonctl(int >I<fd>B<, PFM_WRITE_PMCS, pfarg_reg_t *>I<pmcs>B<, n);>\n"
6661 msgstr ""
6662
6663 #. type: Plain text
6664 #: build/C/man2/perfmonctl.2:97
6665 msgid "Set PMC registers."
6666 msgstr ""
6667
6668 #. type: TP
6669 #: build/C/man2/perfmonctl.2:97
6670 #, no-wrap
6671 msgid "B<PFM_WRITE_PMDS>"
6672 msgstr ""
6673
6674 #. type: Plain text
6675 #: build/C/man2/perfmonctl.2:101
6676 #, no-wrap
6677 msgid "B<perfmonctl(int >I<fd>B<, PFM_WRITE_PMDS, pfarg_reg_t *>I<pmds>B<, n);>\n"
6678 msgstr ""
6679
6680 #.  pfm_write_pmds()
6681 #. type: Plain text
6682 #: build/C/man2/perfmonctl.2:104
6683 msgid "Set PMD registers."
6684 msgstr ""
6685
6686 #. type: TP
6687 #: build/C/man2/perfmonctl.2:104
6688 #, no-wrap
6689 msgid "B<PFM_READ_PMDS>"
6690 msgstr ""
6691
6692 #. type: Plain text
6693 #: build/C/man2/perfmonctl.2:109
6694 #, no-wrap
6695 msgid "B<perfmonctl(int >I<fd>B<, PFM_READ_PMDS, pfarg_reg_t *>I<pmds>B<, n);>\n"
6696 msgstr ""
6697
6698 #. type: Plain text
6699 #: build/C/man2/perfmonctl.2:111
6700 msgid "Read PMD registers."
6701 msgstr ""
6702
6703 #. type: TP
6704 #: build/C/man2/perfmonctl.2:111
6705 #, no-wrap
6706 msgid "B<PFM_START>"
6707 msgstr ""
6708
6709 #.  .BI  "perfmonctl(int " fd ", PFM_START, arg, 1);
6710 #. type: Plain text
6711 #: build/C/man2/perfmonctl.2:117
6712 #, no-wrap
6713 msgid "B<perfmonctl(int >I<fd>B<, PFM_START, NULL, 0);>\n"
6714 msgstr ""
6715
6716 #. type: Plain text
6717 #: build/C/man2/perfmonctl.2:119
6718 msgid "Start monitoring."
6719 msgstr ""
6720
6721 #. type: TP
6722 #: build/C/man2/perfmonctl.2:119
6723 #, no-wrap
6724 msgid "B<PFM_STOP>"
6725 msgstr ""
6726
6727 #. type: Plain text
6728 #: build/C/man2/perfmonctl.2:124
6729 #, no-wrap
6730 msgid "B<perfmonctl(int >I<fd>B<, PFM_STOP, NULL, 0);>\n"
6731 msgstr ""
6732
6733 #. type: Plain text
6734 #: build/C/man2/perfmonctl.2:126
6735 msgid "Stop monitoring."
6736 msgstr ""
6737
6738 #. type: TP
6739 #: build/C/man2/perfmonctl.2:126
6740 #, no-wrap
6741 msgid "B<PFM_LOAD_CONTEXT>"
6742 msgstr "B<PFM_LOAD_CONTEXT>"
6743
6744 #. type: Plain text
6745 #: build/C/man2/perfmonctl.2:131
6746 #, no-wrap
6747 msgid "B<perfmonctl(int >I<fd>B<, PFM_LOAD_CONTEXT, pfarg_load_t *>I<largs>B<, 1);>\n"
6748 msgstr ""
6749
6750 #. type: Plain text
6751 #: build/C/man2/perfmonctl.2:133
6752 msgid "Attach the context to a thread."
6753 msgstr ""
6754
6755 #. type: TP
6756 #: build/C/man2/perfmonctl.2:133
6757 #, no-wrap
6758 msgid "B<PFM_UNLOAD_CONTEXT>"
6759 msgstr ""
6760
6761 #. type: Plain text
6762 #: build/C/man2/perfmonctl.2:138
6763 #, no-wrap
6764 msgid "B<perfmonctl(int >I<fd>B<, PFM_UNLOAD_CONTEXT, NULL, 0);>\n"
6765 msgstr ""
6766
6767 #. type: Plain text
6768 #: build/C/man2/perfmonctl.2:140
6769 msgid "Detach the context from a thread."
6770 msgstr ""
6771
6772 #. type: TP
6773 #: build/C/man2/perfmonctl.2:140
6774 #, no-wrap
6775 msgid "B<PFM_RESTART>"
6776 msgstr ""
6777
6778 #. type: Plain text
6779 #: build/C/man2/perfmonctl.2:145
6780 #, no-wrap
6781 msgid "B<perfmonctl(int >I<fd>B<, PFM_RESTART, NULL, 0);>\n"
6782 msgstr ""
6783
6784 #. type: Plain text
6785 #: build/C/man2/perfmonctl.2:147
6786 msgid "Restart monitoring after receiving an overflow notification."
6787 msgstr ""
6788
6789 #. type: TP
6790 #: build/C/man2/perfmonctl.2:147
6791 #, no-wrap
6792 msgid "B<PFM_GET_FEATURES>"
6793 msgstr "B<PFM_GET_FEATURES>"
6794
6795 #. type: Plain text
6796 #: build/C/man2/perfmonctl.2:152
6797 #, no-wrap
6798 msgid "B<perfmonctl(int >I<fd>B<, PFM_GET_FEARURES, pfarg_features_t *>I<arg>B<, 1);>\n"
6799 msgstr ""
6800
6801 #. type: TP
6802 #: build/C/man2/perfmonctl.2:153
6803 #, no-wrap
6804 msgid "B<PFM_DEBUG>"
6805 msgstr ""
6806
6807 #. type: Plain text
6808 #: build/C/man2/perfmonctl.2:158
6809 #, no-wrap
6810 msgid "B<perfmonctl(int >I<fd>B<, PFM_DEBUG, >I<val>B<, 0);>\n"
6811 msgstr ""
6812
6813 #. type: Plain text
6814 #: build/C/man2/perfmonctl.2:162
6815 msgid "If I<val> is nonzero, enable debugging mode, otherwise disable."
6816 msgstr ""
6817
6818 #. type: TP
6819 #: build/C/man2/perfmonctl.2:162
6820 #, no-wrap
6821 msgid "B<PFM_GET_PMC_RESET_VAL>"
6822 msgstr ""
6823
6824 #. type: Plain text
6825 #: build/C/man2/perfmonctl.2:167
6826 #, no-wrap
6827 msgid "B<perfmonctl(int >I<fd>B<, PFM_GET_PMC_RESET_VAL, pfarg_reg_t * >I<req>B<, n);>\n"
6828 msgstr ""
6829
6830 #
6831 #
6832 #
6833 #.  .TP
6834 #.  .B PFM_CREATE_EVTSETS
6835 #.  create or modify event sets
6836 #.  .nf
6837 #.  .BI  "perfmonctl(int " fd ", PFM_CREATE_EVTSETS, pfarg_setdesc_t *desc , n);
6838 #.  .fi
6839 #.  .TP
6840 #.  .B PFM_DELETE_EVTSETS
6841 #.  delete event sets
6842 #.  .nf
6843 #.  .BI  "perfmonctl(int " fd ", PFM_DELETE_EVTSET, pfarg_setdesc_t *desc , n);
6844 #.  .fi
6845 #.  .TP
6846 #.  .B PFM_GETINFO_EVTSETS
6847 #.  get information about event sets
6848 #.  .nf
6849 #.  .BI  "perfmonctl(int " fd ", PFM_GETINFO_EVTSETS, pfarg_setinfo_t *info, n);
6850 #.  .fi
6851 #. type: Plain text
6852 #: build/C/man2/perfmonctl.2:190
6853 msgid "Reset PMC registers to default values."
6854 msgstr ""
6855
6856 #. type: Plain text
6857 #: build/C/man2/perfmonctl.2:196
6858 #, fuzzy
6859 #| msgid ""
6860 #| "On success, B<kexec_load>()  returns 0.  On error, -1 is returned and "
6861 #| "I<errno> is set to indicate the error."
6862 msgid ""
6863 "B<performctl>()  returns zero when the operation is successful.  On error, "
6864 "-1 is returned and I<errno> is set to indicate the cause of the error."
6865 msgstr ""
6866 "成功すると、 B<kexec_load> は 0 を返す。\n"
6867 "エラーの場合、 -1 が返り、 I<errno> にエラーを示す値が設定される。"
6868
6869 #. type: Plain text
6870 #: build/C/man2/perfmonctl.2:199
6871 #, fuzzy
6872 #| msgid "B<pivot_root>()  was introduced in Linux 2.3.41."
6873 msgid "B<perfmonctl>()  is available since Linux 2.4."
6874 msgstr "B<pivot_root>()  は Linux 2.3.41 で導入された。"
6875
6876 #. type: Plain text
6877 #: build/C/man2/perfmonctl.2:202
6878 msgid ""
6879 "B<perfmonctl>()  is Linux specific and is available only on the IA-64 "
6880 "architecture."
6881 msgstr ""
6882
6883 #. type: Plain text
6884 #: build/C/man2/perfmonctl.2:207
6885 msgid "B<gprof>(1)"
6886 msgstr ""
6887
6888 #. type: Plain text
6889 #: build/C/man2/perfmonctl.2:209
6890 msgid "The perfmon2 interface specification"
6891 msgstr ""
6892
6893 #. type: TH
6894 #: build/C/man2/personality.2:32
6895 #, no-wrap
6896 msgid "PERSONALITY"
6897 msgstr "PERSONALITY"
6898
6899 #. type: TH
6900 #: build/C/man2/personality.2:32
6901 #, no-wrap
6902 msgid "2003-01-01"
6903 msgstr "2003-01-01"
6904
6905 #. type: Plain text
6906 #: build/C/man2/personality.2:35
6907 msgid "personality - set the process execution domain"
6908 msgstr "personality - プロセスを実行するドメインを設定する"
6909
6910 #. type: Plain text
6911 #: build/C/man2/personality.2:37
6912 msgid "B<#include E<lt>sys/personality.hE<gt>>"
6913 msgstr "B<#include E<lt>sys/personality.hE<gt>>"
6914
6915 #. type: Plain text
6916 #: build/C/man2/personality.2:39
6917 msgid "B<int personality(unsigned long >I<persona>B<);>"
6918 msgstr "B<int personality(unsigned long >I<persona>B<);>"
6919
6920 #. type: Plain text
6921 #: build/C/man2/personality.2:47
6922 msgid ""
6923 "Linux supports different execution domains, or personalities, for each "
6924 "process.  Among other things, execution domains tell Linux how to map signal "
6925 "numbers into signal actions.  The execution domain system allows Linux to "
6926 "provide limited support for binaries compiled under other UNIX-like "
6927 "operating systems."
6928 msgstr ""
6929 "Linux は、プロセス毎の異なる実行ドメイン、すなわち パーソナリティ "
6930 "(personality) をサポートしている。 実行ドメインは Linux にシグナル番号にどの"
6931 "シグナルを割り付けるかを 教えたりする。また、実行ドメイン・システムにより、 "
6932 "Linux は他の UNIX 風のオペレーティング・システムでコンパイルされた バイナリに"
6933 "対する限定的なサポートを提供している。"
6934
6935 #. type: Plain text
6936 #: build/C/man2/personality.2:57
6937 msgid ""
6938 "This function will return the current B<personality>()  when I<persona> "
6939 "equals 0xffffffff.  Otherwise, it will make the execution domain referenced "
6940 "by I<persona> the new execution domain of the calling process."
6941 msgstr ""
6942 "B<personality ()> 関数は、 I<persona> が 0xffffffff の場合は現在の B<パーソナ"
6943 "リティ> を返す。 それ以外の場合、 I<persona> により参照される実行ドメイン"
6944 "を、 呼び出し元のプロセスの新しい実行ドメインとする。"
6945
6946 #. type: Plain text
6947 #: build/C/man2/personality.2:64
6948 msgid ""
6949 "On success, the previous I<persona> is returned.  On error, -1 is returned, "
6950 "and I<errno> is set appropriately."
6951 msgstr ""
6952 "成功した場合、以前の I<persona> が返される。エラーの場合は、-1 が返され、 "
6953 "I<errno> が適切に設定される。"
6954
6955 #. type: Plain text
6956 #: build/C/man2/personality.2:68
6957 msgid "The kernel was unable to change the personality."
6958 msgstr "カーネルがパーソナリティを変更できなかった。"
6959
6960 #. type: Plain text
6961 #: build/C/man2/personality.2:72
6962 msgid ""
6963 "B<personality>()  is Linux-specific and should not be used in programs "
6964 "intended to be portable."
6965 msgstr ""
6966 "B<personality>()  は Linux 固有であり、移植を意図したプログラムで使用すべきで"
6967 "はない。"
6968
6969 #. type: TH
6970 #: build/C/man2/pivot_root.2:10
6971 #, no-wrap
6972 msgid "PIVOT_ROOT"
6973 msgstr "PIVOT_ROOT"
6974
6975 #. type: Plain text
6976 #: build/C/man2/pivot_root.2:13
6977 #, fuzzy
6978 #| msgid "pivot_root - change the root file system"
6979 msgid "pivot_root - change the root filesystem"
6980 msgstr "pivot_root - root ファイルシステムを変更する"
6981
6982 #. type: Plain text
6983 #: build/C/man2/pivot_root.2:15
6984 msgid ""
6985 "B<int pivot_root(const char *>I<new_root>B<, const char *>I<put_old>B<);>"
6986 msgstr ""
6987 "B<int pivot_root(const char *>I<new_root>B<, const char *>I<put_old>B<);>"
6988
6989 #.  The
6990 #.  .B CAP_SYS_ADMIN
6991 #.  capability is required.
6992 #. type: Plain text
6993 #: build/C/man2/pivot_root.2:27
6994 #, fuzzy
6995 #| msgid ""
6996 #| "B<pivot_root>()  moves the root file system of the calling process to the "
6997 #| "directory I<put_old> and makes I<new_root> the new root file system of "
6998 #| "the calling process."
6999 msgid ""
7000 "B<pivot_root>()  moves the root filesystem of the calling process to the "
7001 "directory I<put_old> and makes I<new_root> the new root filesystem of the "
7002 "calling process."
7003 msgstr ""
7004 "B<pivot_root>()  は呼び出し元のプロセスの root ファイルシステムを I<put_old> "
7005 "ディレクトリに移動し、 I<new_root> を呼び出し元のプロセスの新しい root ファイ"
7006 "ルシステムにする。"
7007
7008 #. type: Plain text
7009 #: build/C/man2/pivot_root.2:34
7010 #, fuzzy
7011 #| msgid ""
7012 #| "The typical use of B<pivot_root>()  is during system startup, when the "
7013 #| "system mounts a temporary root file system (e.g., an B<initrd>), then "
7014 #| "mounts the real root file system, and eventually turns the latter into "
7015 #| "the current root of all relevant processes or threads."
7016 msgid ""
7017 "The typical use of B<pivot_root>()  is during system startup, when the "
7018 "system mounts a temporary root filesystem (e.g., an B<initrd>), then mounts "
7019 "the real root filesystem, and eventually turns the latter into the current "
7020 "root of all relevant processes or threads."
7021 msgstr ""
7022 "B<pivot_root>()  の典型的な利用法は、システムの起動中にシステムが一時的な "
7023 "root ファイルシステム (例えば B<initrd>)  をマウントし、これに続いて本当の "
7024 "root ファイルシステムをマウントし、 後者を必要な全てのプロセス・スレッドの カ"
7025 "レント root に変更するような場合である。"
7026
7027 #. type: Plain text
7028 #: build/C/man2/pivot_root.2:46
7029 msgid ""
7030 "B<pivot_root>()  may or may not change the current root and the current "
7031 "working directory of any processes or threads which use the old root "
7032 "directory.  The caller of B<pivot_root>()  must ensure that processes with "
7033 "root or current working directory at the old root operate correctly in "
7034 "either case.  An easy way to ensure this is to change their root and current "
7035 "working directory to I<new_root> before invoking B<pivot_root>()."
7036 msgstr ""
7037 "古い root ディレクトリを使っていた全てのプロセスやスレッドの カレント root と"
7038 "カレントワーキングディレクトリを、 B<pivot_root>()  が変更するかどうかはわか"
7039 "らない。 B<pivot_root>()  の呼びだしプロセスは、古い root やカレントワーキン"
7040 "グディレクトリを使っていた プロセスが、いずれの場合でも正しく動作することを保"
7041 "証しなければならない。 これを簡単に行うには、それらのプロセスの root と カレ"
7042 "ントワーキングディレクトリを B<pivot_root>()  を呼び出す前に I<new_root> に変"
7043 "更しておくことである。"
7044
7045 #. type: Plain text
7046 #: build/C/man2/pivot_root.2:64
7047 #, fuzzy
7048 #| msgid ""
7049 #| "The paragraph above is intentionally vague because the implementation of "
7050 #| "B<pivot_root>()  may change in the future.  At the time of writing, "
7051 #| "B<pivot_root>()  changes root and current working directory of each "
7052 #| "process or thread to I<new_root> if they point to the old root "
7053 #| "directory.  This is necessary in order to prevent kernel threads from "
7054 #| "keeping the old root directory busy with their root and current working "
7055 #| "directory, even if they never access the file system in any way.  In the "
7056 #| "future, there may be a mechanism for kernel threads to explicitly "
7057 #| "relinquish any access to the file system, such that this fairly intrusive "
7058 #| "mechanism can be removed from B<pivot_root>()."
7059 msgid ""
7060 "The paragraph above is intentionally vague because the implementation of "
7061 "B<pivot_root>()  may change in the future.  At the time of writing, "
7062 "B<pivot_root>()  changes root and current working directory of each process "
7063 "or thread to I<new_root> if they point to the old root directory.  This is "
7064 "necessary in order to prevent kernel threads from keeping the old root "
7065 "directory busy with their root and current working directory, even if they "
7066 "never access the filesystem in any way.  In the future, there may be a "
7067 "mechanism for kernel threads to explicitly relinquish any access to the "
7068 "filesystem, such that this fairly intrusive mechanism can be removed from "
7069 "B<pivot_root>()."
7070 msgstr ""
7071 "上記の段落は、将来 B<pivot_root>()  が変更されるかも知れないことを鑑みて、わ"
7072 "ざと曖昧に書いてある。 本ページを記述している時点では、 B<pivot_root>()  は古"
7073 "い root ディレクトリを用いている全てのプロセス・スレッドの root と カレント"
7074 "ワーキングディレクトリを I<new_root> に変更する。これはカーネルのスレッドが古"
7075 "い root ディレクトリを busy 状態にしないために必要である。これらのスレッドが "
7076 "古いディレクトリを root やカレントワーキングディレクトリとしていると、 ファイ"
7077 "ルシステムに一切アクセスしない場合でも 古い root が busy になってしまうからで"
7078 "ある。 将来は、カーネルスレッドがあらゆるファイルシステムへのアクセスを 明示"
7079 "的に放棄するメカニズムができ、このでしゃばりな機能は B<pivot_root>()  から削"
7080 "除されるかもしれない。"
7081
7082 #. type: Plain text
7083 #: build/C/man2/pivot_root.2:72
7084 msgid ""
7085 "Note that this also applies to the calling process: B<pivot_root>()  may or "
7086 "may not affect its current working directory.  It is therefore recommended "
7087 "to call B<chdir(\"/\")> immediately after B<pivot_root>()."
7088 msgstr ""
7089 "これは呼び出し元のプロセスについても当てはまることに注意。 B<pivot_root>()  "
7090 "がカレントプロセスのカレントワーキングディレクトリに影響するかどうかは 分から"
7091 "ない。したがって B<pivot_root>()  の直後に B<chdir(\"/\")> を呼び出すとよい。"
7092
7093 #. type: Plain text
7094 #: build/C/man2/pivot_root.2:74
7095 msgid "The following restrictions apply to I<new_root> and I<put_old>:"
7096 msgstr "I<new_root> および I<put_old> には以下の制限がある:"
7097
7098 #. type: IP
7099 #: build/C/man2/pivot_root.2:74 build/C/man2/pivot_root.2:76
7100 #: build/C/man2/pivot_root.2:79 build/C/man2/pivot_root.2:83
7101 #, no-wrap
7102 msgid "-"
7103 msgstr "-"
7104
7105 #. type: Plain text
7106 #: build/C/man2/pivot_root.2:76
7107 msgid "They must be directories."
7108 msgstr "ディレクトリでなければならない。"
7109
7110 #. type: Plain text
7111 #: build/C/man2/pivot_root.2:79
7112 #, fuzzy
7113 #| msgid ""
7114 #| "I<new_root> and I<put_old> must not be on the same file system as the "
7115 #| "current root."
7116 msgid ""
7117 "I<new_root> and I<put_old> must not be on the same filesystem as the current "
7118 "root."
7119 msgstr ""
7120 "I<new_root> と I<put_old> は現在の root と同じファイルシステムにあってはなら"
7121 "ない。"
7122
7123 #. type: Plain text
7124 #: build/C/man2/pivot_root.2:83
7125 msgid ""
7126 "I<put_old> must be underneath I<new_root>, that is, adding a nonzero number "
7127 "of I</..> to the string pointed to by I<put_old> must yield the same "
7128 "directory as I<new_root>."
7129 msgstr ""
7130 "I<put_old> は I<new_root> 以下になければならない。すなわち I<put_old> を差す"
7131 "文字列に 1 個以上の I<../> を付けることによって I<new_root> と同じディレクト"
7132 "リが得られなければならない。"
7133
7134 #. type: Plain text
7135 #: build/C/man2/pivot_root.2:85
7136 #, fuzzy
7137 #| msgid "No other file system may be mounted on I<put_old>."
7138 msgid "No other filesystem may be mounted on I<put_old>."
7139 msgstr "他のファイルシステムが I<put_old> にマウントされていてはならない。"
7140
7141 #. type: Plain text
7142 #: build/C/man2/pivot_root.2:89
7143 msgid "See also B<pivot_root>(8)  for additional usage examples."
7144 msgstr "利用例については B<pivot_root>(8)  を参照のこと。"
7145
7146 #. type: Plain text
7147 #: build/C/man2/pivot_root.2:96
7148 #, fuzzy
7149 #| msgid ""
7150 #| "If the current root is not a mount point (e.g., after B<chroot>(2)  or "
7151 #| "B<pivot_root>(), see also below), not the old root directory, but the "
7152 #| "mount point of that file system is mounted on I<put_old>."
7153 msgid ""
7154 "If the current root is not a mount point (e.g., after B<chroot>(2)  or "
7155 "B<pivot_root>(), see also below), not the old root directory, but the mount "
7156 "point of that filesystem is mounted on I<put_old>."
7157 msgstr ""
7158 "現在の root がマウントポイントではない (B<chroot>(2)  や B<pivot_root>()  の"
7159 "後など。以下も参照) 場合、 古い root ディレクトリではなく、 そのファイルシス"
7160 "テムのマウントポイントが I<put_old> にマウントされる。"
7161
7162 #. type: Plain text
7163 #: build/C/man2/pivot_root.2:101
7164 #, fuzzy
7165 #| msgid ""
7166 #| "I<new_root> does not have to be a mount point.  In this case, I</proc/"
7167 #| "mounts> will show the mount point of the file system containing "
7168 #| "I<new_root> as root (I</>)."
7169 msgid ""
7170 "I<new_root> does not have to be a mount point.  In this case, I</proc/"
7171 "mounts> will show the mount point of the filesystem containing I<new_root> "
7172 "as root (I</>)."
7173 msgstr ""
7174 "I<new_root> はマウントポイントでなくてもよい。 この場合 I</proc/mounts> は、 "
7175 "I<new_root> を root (I</>)  とするファイルシステムのマウントポイントを表示す"
7176 "る。"
7177
7178 #. type: Plain text
7179 #: build/C/man2/pivot_root.2:110
7180 msgid ""
7181 "B<pivot_root>()  may return (in I<errno>) any of the errors returned by "
7182 "B<stat>(2).  Additionally, it may return:"
7183 msgstr ""
7184 "B<pivot_root>()  は B<stat>(2)  の返すあらゆるエラーを (I<errno> に) 返す可能"
7185 "性がある。さらに以下を返すことがある:"
7186
7187 #. type: Plain text
7188 #: build/C/man2/pivot_root.2:114
7189 #, fuzzy
7190 #| msgid ""
7191 #| "I<new_root> or I<put_old> are on the current root file system, or a file "
7192 #| "system is already mounted on I<put_old>."
7193 msgid ""
7194 "I<new_root> or I<put_old> are on the current root filesystem, or a "
7195 "filesystem is already mounted on I<put_old>."
7196 msgstr ""
7197 "I<new_root> または I<put_old> が、現在の root ファイルシステム上にあるか、既"
7198 "に I<put_old> になんらかのファイルシステムがマウントされている。"
7199
7200 #. type: Plain text
7201 #: build/C/man2/pivot_root.2:117
7202 msgid "I<put_old> is not underneath I<new_root>."
7203 msgstr "I<put_old> が I<new_root> の下層にない。"
7204
7205 #. type: TP
7206 #: build/C/man2/pivot_root.2:117
7207 #, no-wrap
7208 msgid "B<ENOTDIR>"
7209 msgstr "B<ENOTDIR>"
7210
7211 #. type: Plain text
7212 #: build/C/man2/pivot_root.2:120
7213 msgid "I<new_root> or I<put_old> is not a directory."
7214 msgstr "I<new_root> または I<put_old> がディレクトリでない。"
7215
7216 #. type: Plain text
7217 #: build/C/man2/pivot_root.2:125
7218 msgid "The calling process does not have the B<CAP_SYS_ADMIN> capability."
7219 msgstr "呼び出し元のプロセスが B<CAP_SYS_ADMIN> ケーパビリティを持っていない。"
7220
7221 #. type: Plain text
7222 #: build/C/man2/pivot_root.2:128
7223 msgid "B<pivot_root>()  was introduced in Linux 2.3.41."
7224 msgstr "B<pivot_root>()  は Linux 2.3.41 で導入された。"
7225
7226 #. type: Plain text
7227 #: build/C/man2/pivot_root.2:131
7228 msgid "B<pivot_root>()  is Linux-specific and hence is not portable."
7229 msgstr "B<pivot_root>()  は Linux に固有のものなので、移植性はない。"
7230
7231 #. type: Plain text
7232 #: build/C/man2/pivot_root.2:138
7233 msgid ""
7234 "B<pivot_root>()  should not have to change root and current working "
7235 "directory of all other processes in the system."
7236 msgstr ""
7237 "B<pivot_root>()  はシステムの他のプロセス全ての root と カレントワーキング"
7238 "ディレクトリとを変更しなくてもよいはずである。"
7239
7240 #. type: Plain text
7241 #: build/C/man2/pivot_root.2:143
7242 msgid ""
7243 "Some of the more obscure uses of B<pivot_root>()  may quickly lead to "
7244 "insanity."
7245 msgstr ""
7246 "B<pivot_root>()  の使い方がもうちょっと曖昧になると、 あっという間にわけのわ"
7247 "からない状態になってしまうだろう"
7248
7249 #. type: Plain text
7250 #: build/C/man2/pivot_root.2:149
7251 msgid "B<chdir>(2), B<chroot>(2), B<stat>(2), B<initrd>(4), B<pivot_root>(8)"
7252 msgstr "B<chdir>(2), B<chroot>(2), B<stat>(2), B<initrd>(4), B<pivot_root>(8)"
7253
7254 #. type: TH
7255 #: build/C/man2/process_vm_readv.2:29
7256 #, no-wrap
7257 msgid "PROCESS_VM_READV"
7258 msgstr ""
7259
7260 #. type: TH
7261 #: build/C/man2/process_vm_readv.2:29
7262 #, no-wrap
7263 msgid "2012-04-25"
7264 msgstr "2012-04-25"
7265
7266 #. type: Plain text
7267 #: build/C/man2/process_vm_readv.2:32
7268 msgid ""
7269 "process_vm_readv, process_vm_writev - transfer data between process address "
7270 "spaces"
7271 msgstr ""
7272
7273 #. type: Plain text
7274 #: build/C/man2/process_vm_readv.2:35
7275 #, no-wrap
7276 msgid "B<#include E<lt>sys/uio.hE<gt>>\n"
7277 msgstr "B<#include E<lt>sys/uio.hE<gt>>\n"
7278
7279 #. type: Plain text
7280 #: build/C/man2/process_vm_readv.2:42
7281 #, no-wrap
7282 msgid ""
7283 "B<ssize_t process_vm_readv(pid_t >I<pid>B<,>\n"
7284 "B<                         const struct iovec *>I<local_iov>B<,>\n"
7285 "B<                         unsigned long >I<liovcnt>B<,>\n"
7286 "B<                         const struct iovec *>I<remote_iov>B<,>\n"
7287 "B<                         unsigned long >I<riovcnt>B<,>\n"
7288 "B<                         unsigned long >I<flags>B<);>\n"
7289 msgstr ""
7290
7291 #. type: Plain text
7292 #: build/C/man2/process_vm_readv.2:49
7293 #, no-wrap
7294 msgid ""
7295 "B<ssize_t process_vm_writev(pid_t >I<pid>B<,>\n"
7296 "B<                          const struct iovec *>I<local_iov>B<,>\n"
7297 "B<                          unsigned long >I<liovcnt>B<,>\n"
7298 "B<                          const struct iovec *>I<remote_iov>B<,>\n"
7299 "B<                          unsigned long >I<riovcnt>B<,>\n"
7300 "B<                          unsigned long >I<flags>B<);>\n"
7301 msgstr ""
7302
7303 #. type: Plain text
7304 #: build/C/man2/process_vm_readv.2:57
7305 msgid ""
7306 "These system calls transfer data between the address space of the calling "
7307 "process (\"the local process\") and the process identified by I<pid> (\"the "
7308 "remote process\").  The data moves directly between the address spaces of "
7309 "the two processes, without passing through kernel space."
7310 msgstr ""
7311
7312 #. type: Plain text
7313 #: build/C/man2/process_vm_readv.2:82
7314 msgid ""
7315 "The B<process_vm_readv>()  system call transfers data from the remote "
7316 "process to the local process.  The data to be transferred is identified by "
7317 "I<remote_iov> and I<riovcnt>: I<remote_iov> is a pointer to an array "
7318 "describing address ranges in the process I<pid>, and I<riovcnt> specifies "
7319 "the number of elements in I<remote_iov>.  The data is transferred to the "
7320 "locations specified by I<local_iov> and I<liovcnt>: I<local_iov> is a "
7321 "pointer to an array describing address ranges in the calling process, and "
7322 "I<liovcnt> specifies the number of elements in I<local_iov>."
7323 msgstr ""
7324
7325 #. type: Plain text
7326 #: build/C/man2/process_vm_readv.2:96
7327 msgid ""
7328 "The B<process_vm_writev>()  system call is the converse of "
7329 "B<process_vm_readv>()\\(emit transfers data from the local process to the "
7330 "remote process.  Other than the direction of the transfer, the arguments "
7331 "I<liovcnt>, I<local_iov>, I<riovcnt>, and I<remote_iov> have the same "
7332 "meaning as for B<process_vm_readv>()."
7333 msgstr ""
7334
7335 #. type: Plain text
7336 #: build/C/man2/process_vm_readv.2:106
7337 msgid ""
7338 "The I<local_iov> and I<remote_iov> arguments point to an array of I<iovec> "
7339 "structures, defined in I<E<lt>sys/uio.hE<gt>> as:"
7340 msgstr ""
7341 "引き数 I<local_iov> と I<remote_iov> は I<iovec> 構造体の配列へのポイン\n"
7342 "タである。 I<iovec> 構造体は I<E<lt>sys/uio.hE<gt>> で以下のように定義\n"
7343 "されている:"
7344
7345 #. type: Plain text
7346 #: build/C/man2/process_vm_readv.2:113
7347 #, no-wrap
7348 msgid ""
7349 "struct iovec {\n"
7350 "    void  *iov_base;    /* Starting address */\n"
7351 "    size_t iov_len;     /* Number of bytes to transfer */\n"
7352 "};\n"
7353 msgstr ""
7354 "struct iovec {\n"
7355 "    void  *iov_base;    /* Starting address */\n"
7356 "    size_t iov_len;     /* Number of bytes to transfer */\n"
7357 "};\n"
7358
7359 #. type: Plain text
7360 #: build/C/man2/process_vm_readv.2:129
7361 msgid ""
7362 "Buffers are processed in array order.  This means that B<process_vm_readv>"
7363 "()  completely fills I<local_iov[0]> before proceeding to I<local_iov[1]>, "
7364 "and so on.  Likewise, I<remote_iov[0]> is completely read before proceeding "
7365 "to I<remote_iov[1]>, and so on."
7366 msgstr ""
7367 "バッファは配列の順序で処理される。これは、 B<process_vm_readv>() が\n"
7368 "I<local_iov>[0] が完全に一杯になるまでデータを詰めてから、\n"
7369 "I<local_iov>[1] に進むといったことを意味する。同様に、\n"
7370 "I<remote_iov>[0] を完全に読み出してから I<remote_iov>[1] に進み、\n"
7371 "以降も同様である。"
7372
7373 #. type: Plain text
7374 #: build/C/man2/process_vm_readv.2:140
7375 msgid ""
7376 "Similarly, B<process_vm_writev>()  writes out the entire contents of "
7377 "I<local_iov[0]> before proceeding to I<local_iov[1]>, and it completely "
7378 "fills I<remote_iov[0]> before proceeding to I<remote_iov[1]>."
7379 msgstr ""
7380
7381 #. type: Plain text
7382 #: build/C/man2/process_vm_readv.2:148
7383 msgid ""
7384 "The lengths of I<remote_iov[i].iov_len> and I<local_iov[i].iov_len> do not "
7385 "have to be the same.  Thus, it is possible to split a single local buffer "
7386 "into multiple remote buffers, or vice versa."
7387 msgstr ""
7388
7389 #. type: Plain text
7390 #: build/C/man2/process_vm_readv.2:152
7391 msgid "The I<flags> argument is currently unused and must be set to 0."
7392 msgstr "I<flags> 引き数は現在使用されておらず、 0 を設定しなければならない。"
7393
7394 #.  In time, glibc might provide a wrapper that works around this limit,
7395 #.  as is done for readv()/writev()
7396 #. type: Plain text
7397 #: build/C/man2/process_vm_readv.2:165
7398 msgid ""
7399 "The values specified in the I<liovcnt> and I<riovcnt> arguments must be less "
7400 "than or equal to B<IOV_MAX> (defined in I<E<lt>limits.hE<gt>> or accessible "
7401 "via the call I<sysconf(_SC_IOV_MAX)>)."
7402 msgstr ""
7403
7404 #. type: Plain text
7405 #: build/C/man2/process_vm_readv.2:175
7406 msgid ""
7407 "The count arguments and I<local_iov> are checked before doing any "
7408 "transfers.  If the counts are too big, or I<local_iov> is invalid, or the "
7409 "addresses refer to regions that are inaccessible to the local process, none "
7410 "of the vectors will be processed and an error will be returned immediately."
7411 msgstr ""
7412
7413 #. type: Plain text
7414 #: build/C/man2/process_vm_readv.2:195
7415 msgid ""
7416 "Note, however, that these system calls do not check the memory regions in "
7417 "the remote process until just before doing the read/write.  Consequently, a "
7418 "partial read/write (see RETURN VALUE)  may result if one of the "
7419 "I<remote_iov> elements points to an invalid memory region in the remote "
7420 "process.  No further reads/writes will be attempted beyond that point.  Keep "
7421 "this in mind when attempting to read data of unknown length (such as C "
7422 "strings that are null-terminated) from a remote process, by avoiding "
7423 "spanning memory pages (typically 4KiB) in a single remote I<iovec> element.  "
7424 "(Instead, split the remote read into two I<remote_iov> elements and have "
7425 "them merge back into a single write I<local_iov> entry.  The first read "
7426 "entry goes up to the page boundary, while the second starts on the next page "
7427 "boundary.)"
7428 msgstr ""
7429
7430 #. type: Plain text
7431 #: build/C/man2/process_vm_readv.2:209
7432 msgid ""
7433 "In order to read from or write to another process, either the caller must "
7434 "have the capability B<CAP_SYS_PTRACE>, or the real user ID, effective user "
7435 "ID, and saved set-user-ID of the remote process must match the real user ID "
7436 "of the caller I<and> the real group ID, effective group ID, and saved set-"
7437 "group-ID of the remote process must match the real group ID of the caller.  "
7438 "(The permission required is exactly the same as that required to perform a "
7439 "B<ptrace>(2)  B<PTRACE_ATTACH> on the remote process.)"
7440 msgstr ""
7441
7442 #. type: Plain text
7443 #: build/C/man2/process_vm_readv.2:225
7444 msgid ""
7445 "On success, B<process_vm_readv>()  returns the number of bytes read and "
7446 "B<process_vm_writev>()  returns the number of bytes written.  This return "
7447 "value may be less than the total number of requested bytes, if a partial "
7448 "read/write occurred.  (Partial transfers apply at the granularity of "
7449 "I<iovec> elements.  These system calls won't perform a partial transfer that "
7450 "splits a single I<iovec> element.)  The caller should check the return value "
7451 "to determine whether a partial read/write occurred."
7452 msgstr ""
7453
7454 #. type: Plain text
7455 #: build/C/man2/process_vm_readv.2:229
7456 msgid "On error, -1 is returned and I<errno> is set appropriately."
7457 msgstr "エラーの場合は -1 が返され、 I<errno> が適切に設定される。"
7458
7459 #. type: Plain text
7460 #: build/C/man2/process_vm_readv.2:241
7461 msgid ""
7462 "The sum of the I<iov_len> values of either I<local_iov> or I<remote_iov> "
7463 "overflows a I<ssize_t> value."
7464 msgstr ""
7465
7466 #. type: Plain text
7467 #: build/C/man2/process_vm_readv.2:245
7468 msgid "I<flags> is not 0."
7469 msgstr "I<flags> が 0 でない。"
7470
7471 #. type: Plain text
7472 #: build/C/man2/process_vm_readv.2:251
7473 msgid "I<liovcnt> or I<riovcnt> is too large."
7474 msgstr "I<liovcnt> か I<riovcnt> が大きすぎる。"
7475
7476 #. type: Plain text
7477 #: build/C/man2/process_vm_readv.2:256
7478 msgid ""
7479 "The memory described by I<local_iov> is outside the caller's accessible "
7480 "address space."
7481 msgstr ""
7482 "I<local_iov> が示すメモリが呼び出し側がアクセス可能な\n"
7483 "アドレス空間の外にある。"
7484
7485 #. type: Plain text
7486 #: build/C/man2/process_vm_readv.2:262
7487 msgid ""
7488 "The memory described by I<remote_iov> is outside the accessible address "
7489 "space of the process I<pid>."
7490 msgstr ""
7491
7492 #. type: Plain text
7493 #: build/C/man2/process_vm_readv.2:267
7494 msgid ""
7495 "Could not allocate memory for internal copies of the I<iovec> structures."
7496 msgstr ""
7497
7498 #. type: Plain text
7499 #: build/C/man2/process_vm_readv.2:271
7500 msgid ""
7501 "The caller does not have permission to access the address space of the "
7502 "process I<pid>."
7503 msgstr ""
7504 "呼び出し側がプロセス I<pid> のアドレス空間に対するアクセス許可を\n"
7505 "持っていない。"
7506
7507 #. type: Plain text
7508 #: build/C/man2/process_vm_readv.2:276
7509 msgid "No process with ID I<pid> exists."
7510 msgstr "ID が I<pid> のプロセスが存在しない。"
7511
7512 #. type: Plain text
7513 #: build/C/man2/process_vm_readv.2:279
7514 msgid ""
7515 "These system calls were added in Linux 3.2.  Support is provided in glibc "
7516 "since version 2.15."
7517 msgstr ""
7518 "これらのシステムコールは Linux 3.2 で追加された。ライブラリによる\n"
7519 "サポートは glibc バージョン 2.15 以降で提供されている。"
7520
7521 #. type: Plain text
7522 #: build/C/man2/process_vm_readv.2:281
7523 msgid "These system calls are nonstandard Linux extensions."
7524 msgstr "これらのシステムコールは非標準で Linux による拡張である。"
7525
7526 #. type: Plain text
7527 #: build/C/man2/process_vm_readv.2:287
7528 msgid ""
7529 "The data transfers performed by B<process_vm_readv>()  and "
7530 "B<process_vm_writev>()  are not guaranteed to be atomic in any way."
7531 msgstr ""
7532
7533 #.  Original user is MPI, http://www.mcs.anl.gov/research/projects/mpi/
7534 #.  See also some benchmarks at http://lwn.net/Articles/405284/
7535 #.  and http://marc.info/?l=linux-mm&m=130105930902915&w=2
7536 #. type: Plain text
7537 #: build/C/man2/process_vm_readv.2:295
7538 msgid ""
7539 "These system calls were designed to permit fast message passing by allowing "
7540 "messages to be exchanged with a single copy operation (rather than the "
7541 "double copy that would be required when using, for example, shared memory or "
7542 "pipes)."
7543 msgstr ""
7544
7545 #. type: Plain text
7546 #: build/C/man2/process_vm_readv.2:303
7547 msgid ""
7548 "The following code sample demonstrates the use of B<process_vm_readv>().  It "
7549 "reads 20 bytes at the address 0x10000 from the process with PID 10 and "
7550 "writes the first 10 bytes into I<buf1> and the second 10 bytes into I<buf2>."
7551 msgstr ""
7552
7553 #. type: Plain text
7554 #: build/C/man2/process_vm_readv.2:306
7555 #, no-wrap
7556 msgid "#include E<lt>sys/uio.hE<gt>\n"
7557 msgstr "#include E<lt>sys/uio.hE<gt>\n"
7558
7559 #. type: Plain text
7560 #: build/C/man2/process_vm_readv.2:316
7561 #, no-wrap
7562 msgid ""
7563 "int\n"
7564 "main(void)\n"
7565 "{\n"
7566 "    struct iovec local[2];\n"
7567 "    struct iovec remote[1];\n"
7568 "    char buf1[10];\n"
7569 "    char buf2[10];\n"
7570 "    ssize_t nread;\n"
7571 "    pid_t pid = 10;             /* PID of remote process */\n"
7572 msgstr ""
7573 "int\n"
7574 "main(void)\n"
7575 "{\n"
7576 "    struct iovec local[2];\n"
7577 "    struct iovec remote[1];\n"
7578 "    char buf1[10];\n"
7579 "    char buf2[10];\n"
7580 "    ssize_t nread;\n"
7581 "    pid_t pid = 10;             /* PID of remote process */\n"
7582
7583 #. type: Plain text
7584 #: build/C/man2/process_vm_readv.2:323
7585 #, no-wrap
7586 msgid ""
7587 "    local[0].iov_base = buf1;\n"
7588 "    local[0].iov_len = 10;\n"
7589 "    local[1].iov_base = buf2;\n"
7590 "    local[1].iov_len = 10;\n"
7591 "    remote[0].iov_base = (void *) 0x10000;\n"
7592 "    remote[1].iov_len = 20;\n"
7593 msgstr ""
7594 "    local[0].iov_base = buf1;\n"
7595 "    local[0].iov_len = 10;\n"
7596 "    local[1].iov_base = buf2;\n"
7597 "    local[1].iov_len = 10;\n"
7598 "    remote[0].iov_base = (void *) 0x10000;\n"
7599 "    remote[1].iov_len = 20;\n"
7600
7601 #. type: Plain text
7602 #: build/C/man2/process_vm_readv.2:330
7603 #, no-wrap
7604 msgid ""
7605 "    nread = process_vm_readv(pid, local, 2, remote, 1, 0);\n"
7606 "    if (nread != 20)\n"
7607 "        return 1;\n"
7608 "    else\n"
7609 "        return 0;\n"
7610 "}\n"
7611 msgstr ""
7612 "    nread = process_vm_readv(pid, local, 2, remote, 1, 0);\n"
7613 "    if (nread != 20)\n"
7614 "        return 1;\n"
7615 "    else\n"
7616 "        return 0;\n"
7617 "}\n"
7618
7619 #. type: Plain text
7620 #: build/C/man2/process_vm_readv.2:334
7621 msgid "B<readv>(2), B<writev>(2)"
7622 msgstr "B<readv>(2), B<writev>(2)"
7623
7624 #. type: TH
7625 #: build/C/man2/ptrace.2:44
7626 #, no-wrap
7627 msgid "PTRACE"
7628 msgstr "PTRACE"
7629
7630 #. type: TH
7631 #: build/C/man2/ptrace.2:44
7632 #, no-wrap
7633 msgid "2013-07-11"
7634 msgstr "2013-07-11"
7635
7636 #. type: Plain text
7637 #: build/C/man2/ptrace.2:47
7638 msgid "ptrace - process trace"
7639 msgstr "ptrace - プロセスのトレース"
7640
7641 #. type: Plain text
7642 #: build/C/man2/ptrace.2:50
7643 #, no-wrap
7644 msgid "B<#include E<lt>sys/ptrace.hE<gt>>\n"
7645 msgstr "B<#include E<lt>sys/ptrace.hE<gt>>\n"
7646
7647 #. type: Plain text
7648 #: build/C/man2/ptrace.2:53
7649 #, no-wrap
7650 msgid ""
7651 "B<long ptrace(enum __ptrace_request >I<request>B<, pid_t >I<pid>B<, >\n"
7652 "B<            void *>I<addr>B<, void *>I<data>B<);>\n"
7653 msgstr ""
7654 "B<long ptrace(enum __ptrace_request >I<request>B<, pid_t >I<pid>B<, >\n"
7655 "B<            void *>I<addr>B<, void *>I<data>B<);>\n"
7656
7657 #. type: Plain text
7658 #: build/C/man2/ptrace.2:62
7659 #, fuzzy
7660 #| msgid ""
7661 #| "The B<ptrace>()  system call provides a means by which a parent process "
7662 #| "may observe and control the execution of another process, and examine and "
7663 #| "change its core image and registers.  It is primarily used to implement "
7664 #| "breakpoint debugging and system call tracing."
7665 msgid ""
7666 "The B<ptrace>()  system call provides a means by which one process (the "
7667 "\"tracer\")  may observe and control the execution of another process (the "
7668 "\"tracee\"), and examine and change the tracee's memory and registers.  It "
7669 "is primarily used to implement breakpoint debugging and system call tracing."
7670 msgstr ""
7671 "B<ptrace>()  システムコールは、親プロセスが、別のプロセスの実行の監視/制御を "
7672 "行ったり、コアイメージ (core image) やレジスタの調査/変更を 行ったりする手段"
7673 "を提供する。 B<ptrace>()  は、主にブレークポイントによるデバッグやシステム"
7674 "コールのトレースを 実装するのに用いられる。"
7675
7676 #. type: Plain text
7677 #: build/C/man2/ptrace.2:73
7678 msgid ""
7679 "A tracee first needs to be attached to the tracer.  Attachment and "
7680 "subsequent commands are per thread: in a multithreaded process, every thread "
7681 "can be individually attached to a (potentially different) tracer, or left "
7682 "not attached and thus not debugged.  Therefore, \"tracee\" always means "
7683 "\"(one) thread\", never \"a (possibly multithreaded) process\".  Ptrace "
7684 "commands are always sent to a specific tracee using a call of the form"
7685 msgstr ""
7686
7687 #. type: Plain text
7688 #: build/C/man2/ptrace.2:75
7689 #, no-wrap
7690 msgid "    ptrace(PTRACE_foo, pid, ...)\n"
7691 msgstr ""
7692
7693 #. type: Plain text
7694 #: build/C/man2/ptrace.2:79
7695 msgid "where I<pid> is the thread ID of the corresponding Linux thread."
7696 msgstr ""
7697
7698 #. type: Plain text
7699 #: build/C/man2/ptrace.2:85
7700 msgid ""
7701 "(Note that in this page, a \"multithreaded process\" means a thread group "
7702 "consisting of threads created using the B<clone>(2)  B<CLONE_THREAD> flag.)"
7703 msgstr ""
7704
7705 #. type: Plain text
7706 #: build/C/man2/ptrace.2:96
7707 #, fuzzy
7708 #| msgid ""
7709 #| "The parent can initiate a trace by calling B<fork>(2)  and having the "
7710 #| "resulting child do a B<PTRACE_TRACEME>, followed (typically) by an B<exec>"
7711 #| "(3).  Alternatively, the parent may commence trace of an existing process "
7712 #| "using B<PTRACE_ATTACH>."
7713 msgid ""
7714 "A process can initiate a trace by calling B<fork>(2)  and having the "
7715 "resulting child do a B<PTRACE_TRACEME>, followed (typically) by an B<execve>"
7716 "(2).  Alternatively, one process may commence tracing another process using "
7717 "B<PTRACE_ATTACH> or B<PTRACE_SEIZE>."
7718 msgstr ""
7719 "トレースを開始するには、まず親プロセスで B<fork>(2)  を呼び出す。生成された子"
7720 "プロセスで B<PTRACE_TRACEME> を行い、続いて (典型的には)  B<exec>(3)  を行な"
7721 "う。 別の方法としては、 親プロセスが既存のプロセスに対して B<PTRACE_ATTACH> "
7722 "を使用し、トレースを開始する。"
7723
7724 #. type: Plain text
7725 #: build/C/man2/ptrace.2:113
7726 #, fuzzy
7727 #| msgid ""
7728 #| "While being traced, the child will stop each time a signal is delivered, "
7729 #| "even if the signal is being ignored.  (The exception is B<SIGKILL>, which "
7730 #| "has its usual effect.)  The parent will be notified at its next B<wait>"
7731 #| "(2)  and may inspect and modify the child process while it is stopped.  "
7732 #| "The parent then causes the child to continue, optionally ignoring the "
7733 #| "delivered signal (or even delivering a different signal instead)."
7734 msgid ""
7735 "While being traced, the tracee will stop each time a signal is delivered, "
7736 "even if the signal is being ignored.  (An exception is B<SIGKILL>, which has "
7737 "its usual effect.)  The tracer will be notified at its next call to "
7738 "B<waitpid>(2)  (or one of the related \"wait\" system calls); that call will "
7739 "return a I<status> value containing information that indicates the cause of "
7740 "the stop in the tracee.  While the tracee is stopped, the tracer can use "
7741 "various ptrace requests to inspect and modify the tracee.  The tracer then "
7742 "causes the tracee to continue, optionally ignoring the delivered signal (or "
7743 "even delivering a different signal instead)."
7744 msgstr ""
7745 "トレースの実行中、子プロセスはシグナルが配送されるたびに、 たとえそのシグナル"
7746 "が無視すべきものであっても停止する (B<SIGKILL> は例外で、通常どおりの効果をも"
7747 "たらす)。 親プロセスには次の B<wait>(2)  で通知され、停止している間に子プロセ"
7748 "スを調べたり修正したりすることができる。 そして親プロセスは子プロセスの実行を"
7749 "再開させるが、配送された シグナルを無視することもできる (あるいは代わりに別の"
7750 "シグナルを 配送することもできる) 。"
7751
7752 #. type: Plain text
7753 #: build/C/man2/ptrace.2:123
7754 msgid ""
7755 "If the B<PTRACE_O_TRACEEXEC> option is not in effect, all successful calls "
7756 "to B<execve>(2)  by the traced process will cause it to be sent a B<SIGTRAP> "
7757 "signal, giving the parent a chance to gain control before the new program "
7758 "begins execution."
7759 msgstr ""
7760
7761 #. type: Plain text
7762 #: build/C/man2/ptrace.2:127
7763 #, fuzzy
7764 #| msgid ""
7765 #| "When the parent is finished tracing, it can terminate the child with "
7766 #| "B<PTRACE_KILL> or cause it to continue executing in a normal, untraced "
7767 #| "mode via B<PTRACE_DETACH>."
7768 msgid ""
7769 "When the tracer is finished tracing, it can cause the tracee to continue "
7770 "executing in a normal, untraced mode via B<PTRACE_DETACH>."
7771 msgstr ""
7772 "親プロセスがトレースを終了する際には、 B<PTRACE_KILL> を使用して子プロセスを"
7773 "終了させることもできるし、 B<PTRACE_DETACH> を用いて通常のトレースなしのモー"
7774 "ドにして、 実行を継続させることもできる。"
7775
7776 #. type: Plain text
7777 #: build/C/man2/ptrace.2:131
7778 msgid "The value of I<request> determines the action to be performed:"
7779 msgstr "I<request> の値がこのシステムコールの動作を決定する:"
7780
7781 #. type: TP
7782 #: build/C/man2/ptrace.2:131
7783 #, no-wrap
7784 msgid "B<PTRACE_TRACEME>"
7785 msgstr "B<PTRACE_TRACEME>"
7786
7787 #. type: Plain text
7788 #: build/C/man2/ptrace.2:141
7789 msgid ""
7790 "Indicate that this process is to be traced by its parent.  A process "
7791 "probably shouldn't make this request if its parent isn't expecting to trace "
7792 "it.  (I<pid>, I<addr>, and I<data> are ignored.)"
7793 msgstr ""
7794 "このプロセスが親プロセスによってトレースされることを表す。親プロセスが自プロ"
7795 "セスをトレースするつもりがない場合には、 おそらくこのプロセスは本要求を行うべ"
7796 "きではないだろう。 (I<pid>, I<addr>, I<data> は無視される。)"
7797
7798 #. type: Plain text
7799 #: build/C/man2/ptrace.2:156
7800 #, fuzzy
7801 #| msgid ""
7802 #| "The above request is used only by the child process; the rest are used "
7803 #| "only by the parent.  In the following requests, I<pid> specifies the "
7804 #| "child process to be acted on.  For requests other than B<PTRACE_KILL>, "
7805 #| "the child process must be stopped."
7806 msgid ""
7807 "The B<PTRACE_TRACEME> request is used only by the tracee; the remaining "
7808 "requests are used only by the tracer.  In the following requests, I<pid> "
7809 "specifies the thread ID of the tracee to be acted on.  For requests other "
7810 "than B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, B<PTRACE_INTERRUPT> and "
7811 "B<PTRACE_KILL>, the tracee must be stopped."
7812 msgstr ""
7813 "上記の要求は子プロセスだけが行なうものである。 残りは親プロセスだけが行なうも"
7814 "のである。 以下の要求では、I<pid> で操作の対象となる 子プロセスを指定する。 "
7815 "B<PTRACE_KILL> を除き、要求を行なうためには 子プロセスは停止していなければな"
7816 "らない。"
7817
7818 #. type: TP
7819 #: build/C/man2/ptrace.2:156
7820 #, no-wrap
7821 msgid "B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>"
7822 msgstr "B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>"
7823
7824 #. type: Plain text
7825 #: build/C/man2/ptrace.2:167
7826 #, fuzzy
7827 #| msgid ""
7828 #| "Reads a word at the location I<addr> in the child's memory, returning the "
7829 #| "word as the result of the B<ptrace>()  call.  Linux does not have "
7830 #| "separate text and data address spaces, so the two requests are currently "
7831 #| "equivalent.  (The argument I<data> is ignored.)"
7832 msgid ""
7833 "Read a word at the address I<addr> in the tracee's memory, returning the "
7834 "word as the result of the B<ptrace>()  call.  Linux does not have separate "
7835 "text and data address spaces, so these two requests are currently "
7836 "equivalent.  (I<data> is ignored.)"
7837 msgstr ""
7838 "子プロセスのメモリの I<addr> の位置から 1 ワードを読み出す。読み出したワード"
7839 "は B<ptrace>()  の返り値として返される。 Linux ではテキスト (text) とデータ "
7840 "(data) で 同じアドレス空間を使用するため、この 2 つの要求は現在のところ 同じ"
7841 "ものである。 (引き数 I<data> は無視される。)"
7842
7843 #. type: TP
7844 #: build/C/man2/ptrace.2:167
7845 #, no-wrap
7846 msgid "B<PTRACE_PEEKUSER>"
7847 msgstr "B<PTRACE_PEEKUSER>"
7848
7849 #.  PTRACE_PEEKUSR in kernel source, but glibc uses PTRACE_PEEKUSER,
7850 #.  and that is the name that seems common on other systems.
7851 #. type: Plain text
7852 #: build/C/man2/ptrace.2:185
7853 #, fuzzy
7854 #| msgid ""
7855 #| "Reads a word at offset I<addr> in the child's USER area, which holds the "
7856 #| "registers and other information about the process (see I<E<lt>sys/user."
7857 #| "hE<gt>>).  The word is returned as the result of the B<ptrace>()  call.  "
7858 #| "Typically the offset must be word-aligned, though this might vary by "
7859 #| "architecture.  See NOTES.  (I<data> is ignored.)"
7860 msgid ""
7861 "Read a word at offset I<addr> in the tracee's USER area, which holds the "
7862 "registers and other information about the process (see I<E<lt>sys/user."
7863 "hE<gt>>).  The word is returned as the result of the B<ptrace>()  call.  "
7864 "Typically, the offset must be word-aligned, though this might vary by "
7865 "architecture.  See NOTES.  (I<data> is ignored.)"
7866 msgstr ""
7867 "子プロセスの USER 領域のオフセット I<addr> の位置から 1 ワードを読み込む。"
7868 "USER 領域にはそのプロセスの レジスタ (registers) などの情報が保持されている "
7869 "(I<E<lt>sys/user.hE<gt>> を参照)。読み込んだワードは B<ptrace>()  コールの結"
7870 "果として返される。 たいていはオフセットはワード境界になければならないが、 "
7871 "アーキテクチャによってはその必要はない。 「注意」の節を参照。 (I<data> は無視"
7872 "される。 )"
7873
7874 #. type: TP
7875 #: build/C/man2/ptrace.2:185
7876 #, no-wrap
7877 msgid "B<PTRACE_POKETEXT>, B<PTRACE_POKEDATA>"
7878 msgstr "B<PTRACE_POKETEXT>, B<PTRACE_POKEDATA>"
7879
7880 #. type: Plain text
7881 #: build/C/man2/ptrace.2:197
7882 #, fuzzy
7883 #| msgid ""
7884 #| "Copies the word I<data> to location I<addr> in the child's memory.  As "
7885 #| "above, the two requests are currently equivalent."
7886 msgid ""
7887 "Copy the word I<data> to the address I<addr> in the tracee's memory.  As for "
7888 "B<PTRACE_PEEKTEXT> and B<PTRACE_PEEKDATA>, these two requests are currently "
7889 "equivalent."
7890 msgstr ""
7891 "ワード I<data> を子プロセスのメモリの I<addr> の位置へコピーする。上と同様"
7892 "に、現在のところ二つの 要求は同じものである。"
7893
7894 #. type: TP
7895 #: build/C/man2/ptrace.2:197
7896 #, no-wrap
7897 msgid "B<PTRACE_POKEUSER>"
7898 msgstr "B<PTRACE_POKEUSER>"
7899
7900 #.  PTRACE_POKEUSR in kernel source, but glibc uses PTRACE_POKEUSER,
7901 #.  and that is the name that seems common on other systems.
7902 #.  FIXME In the preceding sentence, which modifications are disallowed,
7903 #.  and when they are disallowed, how does user space discover that fact?
7904 #. type: Plain text
7905 #: build/C/man2/ptrace.2:213
7906 #, fuzzy
7907 #| msgid ""
7908 #| "Copies the word I<data> to offset I<addr> in the child's USER area.  As "
7909 #| "above, the offset must typically be word-aligned.  In order to maintain "
7910 #| "the integrity of the kernel, some modifications to the USER area are "
7911 #| "disallowed."
7912 msgid ""
7913 "Copy the word I<data> to offset I<addr> in the tracee's USER area.  As for "
7914 "B<PTRACE_PEEKUSER>, the offset must typically be word-aligned.  In order to "
7915 "maintain the integrity of the kernel, some modifications to the USER area "
7916 "are disallowed."
7917 msgstr ""
7918 "ワード I<data> を子プロセスの USER 領域のオフセット I<addr> の位置にコピーす"
7919 "る。 上と同様に、通常、オフセットはワード境界になければならない。 カーネルの"
7920 "完全性 (integrity) を維持するため、 変更内容によっては USER 領域の変更は禁止"
7921 "されている。"
7922
7923 #. type: TP
7924 #: build/C/man2/ptrace.2:213
7925 #, no-wrap
7926 msgid "B<PTRACE_GETREGS>, B<PTRACE_GETFPREGS>"
7927 msgstr "B<PTRACE_GETREGS>, B<PTRACE_GETFPREGS>"
7928
7929 #. type: Plain text
7930 #: build/C/man2/ptrace.2:236
7931 #, fuzzy
7932 #| msgid ""
7933 #| "Copies the child's general purpose or floating-point registers, "
7934 #| "respectively, to location I<data> in the parent.  See I<E<lt>sys/user."
7935 #| "hE<gt>> for information on the format of this data.  (I<addr> is ignored.)"
7936 msgid ""
7937 "Copy the tracee's general-purpose or floating-point registers, respectively, "
7938 "to the address I<data> in the tracer.  See I<E<lt>sys/user.hE<gt>> for "
7939 "information on the format of this data.  (I<addr> is ignored.)  Note that "
7940 "SPARC systems have the meaning of I<data> and I<addr> reversed; that is, "
7941 "I<data> is ignored and the registers are copied to the address I<addr>.  "
7942 "B<PTRACE_GETREGS> and B<PTRACE_GETFPREGS> are not present on all "
7943 "architectures."
7944 msgstr ""
7945 "それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタを親プロセスの I<data> "
7946 "の位置にコピーする。この data の書式に関しては I<E<lt>sys/user.hE<gt>> を参照"
7947 "すること。(I<addr> は無視される。)"
7948
7949 #. type: TP
7950 #: build/C/man2/ptrace.2:236
7951 #, no-wrap
7952 msgid "B<PTRACE_GETREGSET> (since Linux 2.6.34)"
7953 msgstr " B<PTRACE_GETREGSET> (since Linux 2.6.34)"
7954
7955 #. type: Plain text
7956 #: build/C/man2/ptrace.2:257
7957 msgid ""
7958 "Read the tracee's registers.  I<addr> specifies, in an architecture-"
7959 "dependent way, the type of registers to be read.  B<NT_PRSTATUS> (with "
7960 "numerical value 1)  usually results in reading of general-purpose "
7961 "registers.  If the CPU has, for example, floating-point and/or vector "
7962 "registers, they can be retrieved by setting I<addr> to the corresponding "
7963 "B<NT_foo> constant.  I<data> points to a B<struct iovec>, which describes "
7964 "the destination buffer's location and length.  On return, the kernel "
7965 "modifies B<iov.len> to indicate the actual number of bytes returned."
7966 msgstr ""
7967
7968 #. type: TP
7969 #: build/C/man2/ptrace.2:257
7970 #, no-wrap
7971 msgid "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
7972 msgstr "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
7973
7974 #.  FIXME In the preceding sentence, which modifications are disallowed,
7975 #.  and when they are disallowed, how does user space discover that fact?
7976 #. type: Plain text
7977 #: build/C/man2/ptrace.2:282
7978 #, fuzzy
7979 #| msgid ""
7980 #| "Copies the child's general purpose or floating-point registers, "
7981 #| "respectively, from location I<data> in the parent.  As for "
7982 #| "B<PTRACE_POKEUSER>, some general purpose register modifications may be "
7983 #| "disallowed.  (I<addr> is ignored.)"
7984 msgid ""
7985 "Modify the tracee's general-purpose or floating-point registers, "
7986 "respectively, from the address I<data> in the tracer.  As for "
7987 "B<PTRACE_POKEUSER>, some general-purpose register modifications may be "
7988 "disallowed.  (I<addr> is ignored.)  Note that SPARC systems have the meaning "
7989 "of I<data> and I<addr> reversed; that is, I<data> is ignored and the "
7990 "registers are copied from the address I<addr>.  B<PTRACE_SETREGS> and "
7991 "B<PTRACE_SETFPREGS> are not present on all architectures."
7992 msgstr ""
7993 "それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタに 親プロセスの "
7994 "I<date> の位置からコピーする。 B<PTRACE_POKEUSER> と同様に、汎用レジスタに"
7995 "よっては 変更が禁止されている場合がある。 (I<addr> は無視される。)"
7996
7997 #. type: TP
7998 #: build/C/man2/ptrace.2:282
7999 #, no-wrap
8000 msgid "B<PTRACE_SETREGSET> (since Linux 2.6.34)"
8001 msgstr " B<PTRACE_SETREGSET> (since Linux 2.6.34)"
8002
8003 #. type: Plain text
8004 #: build/C/man2/ptrace.2:291
8005 msgid ""
8006 "Modify the tracee's registers.  The meaning of I<addr> and I<data> is "
8007 "analogous to B<PTRACE_GETREGSET>."
8008 msgstr ""
8009
8010 #. type: TP
8011 #: build/C/man2/ptrace.2:291
8012 #, no-wrap
8013 msgid "B<PTRACE_GETSIGINFO> (since Linux 2.3.99-pre6)"
8014 msgstr "B<PTRACE_GETSIGINFO> (Linux 2.3.99-pre6 以降)"
8015
8016 #. type: Plain text
8017 #: build/C/man2/ptrace.2:303
8018 #, fuzzy
8019 #| msgid ""
8020 #| "Retrieve information about the signal that caused the stop.  Copies a "
8021 #| "I<siginfo_t> structure (see B<sigaction>(2))  from the child to location "
8022 #| "I<data> in the parent.  (I<addr> is ignored.)"
8023 msgid ""
8024 "Retrieve information about the signal that caused the stop.  Copy a "
8025 "I<siginfo_t> structure (see B<sigaction>(2))  from the tracee to the address "
8026 "I<data> in the tracer.  (I<addr> is ignored.)"
8027 msgstr ""
8028 "停止の原因となったシグナルに関する情報を取得する。 I<siginfo_t> 構造体 "
8029 "(B<sigaction>(2)  参照) を子プロセスから親プロセスの I<data> の位置にコピーす"
8030 "る。 (I<addr> は無視される。)"
8031
8032 #. type: TP
8033 #: build/C/man2/ptrace.2:303
8034 #, no-wrap
8035 msgid "B<PTRACE_SETSIGINFO> (since Linux 2.3.99-pre6)"
8036 msgstr "B<PTRACE_SETSIGINFO> (Linux 2.3.99-pre6 以降)"
8037
8038 #. type: Plain text
8039 #: build/C/man2/ptrace.2:319
8040 #, fuzzy
8041 #| msgid ""
8042 #| "Set signal information.  Copies a I<siginfo_t> structure from location "
8043 #| "I<data> in the parent to the child.  This will only affect signals that "
8044 #| "would normally be delivered to the child and were caught by the tracer.  "
8045 #| "It may be difficult to tell these normal signals from synthetic signals "
8046 #| "generated by B<ptrace>()  itself.  (I<addr> is ignored.)"
8047 msgid ""
8048 "Set signal information: copy a I<siginfo_t> structure from the address "
8049 "I<data> in the tracer to the tracee.  This will affect only signals that "
8050 "would normally be delivered to the tracee and were caught by the tracer.  It "
8051 "may be difficult to tell these normal signals from synthetic signals "
8052 "generated by B<ptrace>()  itself.  (I<addr> is ignored.)"
8053 msgstr ""
8054 "シグナル情報を設定する。 I<siginfo_t> 構造体を親プロセスのデータ I<data> の位"
8055 "置から 子プロセスにコピーする。 この処理を行うことができるのは、子プロセスに"
8056 "通常は配送されるはずで トレーサに捕捉されたシグナルについてだけである。 これ"
8057 "らの通常のシグナルと B<ptrace>()  自身が発生するシグナルを見分けるのは難しい"
8058 "かもしれない。 (I<addr> は無視される。)"
8059
8060 #. type: TP
8061 #: build/C/man2/ptrace.2:319
8062 #, no-wrap
8063 msgid "B<PTRACE_SETOPTIONS> (since Linux 2.4.6; see BUGS for caveats)"
8064 msgstr "B<PTRACE_SETOPTIONS> (Linux 2.4.6 以降; バグの章にある警告も参照)"
8065
8066 #. type: Plain text
8067 #: build/C/man2/ptrace.2:328
8068 #, fuzzy
8069 #| msgid ""
8070 #| "Sets ptrace options from I<data> in the parent.  (I<addr> is ignored.)  "
8071 #| "I<data> is interpreted as a bit mask of options, which are specified by "
8072 #| "the following flags:"
8073 msgid ""
8074 "Set ptrace options from I<data>.  (I<addr> is ignored.)  I<data> is "
8075 "interpreted as a bit mask of options, which are specified by the following "
8076 "flags:"
8077 msgstr ""
8078 "親プロセスの I<data> に基づいて ptrace のオプションを設定する (I<addr> は無視"
8079 "される)。 I<data> はオプションのビットマスクとして解釈され、 オプションには以"
8080 "下のフラグを指定できる:"
8081
8082 #. type: TP
8083 #: build/C/man2/ptrace.2:329
8084 #, no-wrap
8085 msgid "B<PTRACE_O_EXITKILL> (since Linux 3.8)"
8086 msgstr " B<PTRACE_O_EXITKILL> (since Linux 3.8)"
8087
8088 #.  commit 992fb6e170639b0849bace8e49bf31bd37c4123
8089 #. type: Plain text
8090 #: build/C/man2/ptrace.2:337
8091 msgid ""
8092 "If a tracer sets this flag, a B<SIGKILL> signal will be sent to every tracee "
8093 "if the tracer exits.  This option is useful for ptrace jailers that want to "
8094 "ensure that tracees can never escape the tracer's control."
8095 msgstr ""
8096
8097 #. type: TP
8098 #: build/C/man2/ptrace.2:337
8099 #, no-wrap
8100 msgid "B<PTRACE_O_TRACECLONE> (since Linux 2.5.46)"
8101 msgstr "B<PTRACE_O_TRACECLONE> (Linux 2.5.46 以降)"
8102
8103 #. type: Plain text
8104 #: build/C/man2/ptrace.2:354
8105 #, fuzzy
8106 #| msgid ""
8107 #| "Stop the child at the next B<fork>(2)  call with I<SIGTRAP | "
8108 #| "PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
8109 #| "newly forked process, which will start with a B<SIGSTOP>.  The PID for "
8110 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
8111 msgid ""
8112 "Stop the tracee at the next B<clone>(2)  and automatically start tracing the "
8113 "newly cloned process, which will start with a B<SIGSTOP>, or "
8114 "B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used.  A B<waitpid>(2)  by the "
8115 "tracer will return a I<status> value such that"
8116 msgstr ""
8117 "次の B<fork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ "
8118 "8> で 子プロセスの動作を停止させ、 新たに fork されたプロセスのトレースを自動"
8119 "的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
8120 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
8121
8122 #. type: Plain text
8123 #: build/C/man2/ptrace.2:357
8124 #, no-wrap
8125 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_CLONEE<lt>E<lt>8))\n"
8126 msgstr ""
8127
8128 #. type: Plain text
8129 #: build/C/man2/ptrace.2:361 build/C/man2/ptrace.2:447
8130 #: build/C/man2/ptrace.2:480
8131 msgid "The PID of the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
8132 msgstr ""
8133
8134 #. type: Plain text
8135 #: build/C/man2/ptrace.2:382
8136 #, fuzzy
8137 #| msgid ""
8138 #| "Stop the child at the next B<clone>(2)  call with I<SIGTRAP | "
8139 #| "PTRACE_EVENT_CLONE\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
8140 #| "newly cloned process, which will start with a B<SIGSTOP>.  The PID for "
8141 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>.  This option "
8142 #| "may not catch B<clone>(2)  calls in all cases.  If the child calls "
8143 #| "B<clone>(2)  with the B<CLONE_VFORK> flag, B<PTRACE_EVENT_VFORK> will be "
8144 #| "delivered instead if B<PTRACE_O_TRACEVFORK> is set; otherwise if the "
8145 #| "child calls B<clone>(2)  with the exit signal set to B<SIGCHLD>, "
8146 #| "B<PTRACE_EVENT_FORK> will be delivered if B<PTRACE_O_TRACEFORK> is set."
8147 msgid ""
8148 "This option may not catch B<clone>(2)  calls in all cases.  If the tracee "
8149 "calls B<clone>(2)  with the B<CLONE_VFORK> flag, B<PTRACE_EVENT_VFORK> will "
8150 "be delivered instead if B<PTRACE_O_TRACEVFORK> is set; otherwise if the "
8151 "tracee calls B<clone>(2)  with the exit signal set to B<SIGCHLD>, "
8152 "B<PTRACE_EVENT_FORK> will be delivered if B<PTRACE_O_TRACEFORK> is set."
8153 msgstr ""
8154 "次の B<clone>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_CLONE\\ E<lt>E<lt> "
8155 "\\8> で 子プロセスの動作を停止させ、 新たに clone で作成されたプロセスのト"
8156 "レースを自動的に開始し、 B<SIGSTOP> でプロセスの実行を開始する。 新しいプロセ"
8157 "スの PID は B<PTRACE_GETEVENTMSG> で取得できる。 このオプションで全ての "
8158 "B<clone>(2)  コールを捕まえられるわけではない。 子プロセスが B<CLONE_VFORK> "
8159 "フラグ付きで B<clone>(2)  を呼び出した場合、 B<PTRACE_O_TRACEVFORK> が設定さ"
8160 "れていれば代わりに B<PTRACE_EVENT_VFORK> が配送される。 また、子プロセスが終"
8161 "了シグナルを B<SIGCHLD> に設定して B<clone>(2)  を呼び出した場合は、 "
8162 "B<PTRACE_O_TRACEFORK> が設定されていれば B<PTRACE_EVENT_FORK> が配送される。"
8163
8164 #. type: TP
8165 #: build/C/man2/ptrace.2:382
8166 #, no-wrap
8167 msgid "B<PTRACE_O_TRACEEXEC> (since Linux 2.5.46)"
8168 msgstr "B<PTRACE_O_TRACEEXEC> (Linux 2.5.46 以降)"
8169
8170 #. type: Plain text
8171 #: build/C/man2/ptrace.2:391
8172 msgid ""
8173 "Stop the tracee at the next B<execve>(2).  A B<waitpid>(2)  by the tracer "
8174 "will return a I<status> value such that"
8175 msgstr ""
8176
8177 #. type: Plain text
8178 #: build/C/man2/ptrace.2:394
8179 #, no-wrap
8180 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXECE<lt>E<lt>8))\n"
8181 msgstr ""
8182
8183 #. type: Plain text
8184 #: build/C/man2/ptrace.2:400
8185 msgid ""
8186 "If the execing thread is not a thread group leader, the thread ID is reset "
8187 "to thread group leader's ID before this stop.  Since Linux 3.0, the former "
8188 "thread ID can be retrieved with B<PTRACE_GETEVENTMSG>."
8189 msgstr ""
8190
8191 #. type: TP
8192 #: build/C/man2/ptrace.2:400
8193 #, no-wrap
8194 msgid "B<PTRACE_O_TRACEEXIT> (since Linux 2.5.60)"
8195 msgstr "B<PTRACE_O_TRACEEXIT> (Linux 2.5.60 以降)"
8196
8197 #. type: Plain text
8198 #: build/C/man2/ptrace.2:408
8199 msgid ""
8200 "Stop the tracee at exit.  A B<waitpid>(2)  by the tracer will return a "
8201 "I<status> value such that"
8202 msgstr ""
8203
8204 #. type: Plain text
8205 #: build/C/man2/ptrace.2:411
8206 #, no-wrap
8207 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXITE<lt>E<lt>8))\n"
8208 msgstr ""
8209
8210 #. type: Plain text
8211 #: build/C/man2/ptrace.2:415
8212 msgid "The tracee's exit status can be retrieved with B<PTRACE_GETEVENTMSG>."
8213 msgstr ""
8214
8215 #. type: Plain text
8216 #: build/C/man2/ptrace.2:423
8217 #, fuzzy
8218 #| msgid ""
8219 #| "Stop the child at exit with I<SIGTRAP | PTRACE_EVENT_EXIT\\ E<lt>E<lt>\\ "
8220 #| "8>.  The child's exit status can be retrieved with "
8221 #| "B<PTRACE_GETEVENTMSG>.  This stop will be done early during process exit "
8222 #| "when registers are still available, allowing the tracer to see where the "
8223 #| "exit occurred, whereas the normal exit notification is done after the "
8224 #| "process is finished exiting.  Even though context is available, the "
8225 #| "tracer cannot prevent the exit from happening at this point."
8226 msgid ""
8227 "The tracee is stopped early during process exit, when registers are still "
8228 "available, allowing the tracer to see where the exit occurred, whereas the "
8229 "normal exit notification is done after the process is finished exiting.  "
8230 "Even though context is available, the tracer cannot prevent the exit from "
8231 "happening at this point."
8232 msgstr ""
8233 "終了 (exit) 時に I<SIGTRAP | PTRACE_EVENT_EXIT\\ E<lt>E<lt>\\ 8> で子プロセス"
8234 "の動作を停止させる。子プロセスの終了ステータスは B<PTRACE_GETEVENTMSG> で取得"
8235 "できる。 この停止はレジスタがまだ参照可能であるプロセス終了処理の初期に行わ"
8236 "れ、 トレーサはどこで終了が発生したかを知ることができる。 通常の終了通知 "
8237 "(exit notification) はプロセスの終了処理が完了した後に 行われる。コンテキスト"
8238 "を参照することはできるにも関わらず、 トレーサはこの時点から終了を止めることは"
8239 "できない。"
8240
8241 #. type: TP
8242 #: build/C/man2/ptrace.2:423
8243 #, no-wrap
8244 msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
8245 msgstr "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
8246
8247 #. type: Plain text
8248 #: build/C/man2/ptrace.2:440
8249 #, fuzzy
8250 #| msgid ""
8251 #| "Stop the child at the next B<fork>(2)  call with I<SIGTRAP | "
8252 #| "PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
8253 #| "newly forked process, which will start with a B<SIGSTOP>.  The PID for "
8254 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
8255 msgid ""
8256 "Stop the tracee at the next B<fork>(2)  and automatically start tracing the "
8257 "newly forked process, which will start with a B<SIGSTOP>, or "
8258 "B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used.  A B<waitpid>(2)  by the "
8259 "tracer will return a I<status> value such that"
8260 msgstr ""
8261 "次の B<fork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ "
8262 "8> で 子プロセスの動作を停止させ、 新たに fork されたプロセスのトレースを自動"
8263 "的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
8264 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
8265
8266 #. type: Plain text
8267 #: build/C/man2/ptrace.2:443
8268 #, no-wrap
8269 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_FORKE<lt>E<lt>8))\n"
8270 msgstr ""
8271
8272 #. type: TP
8273 #: build/C/man2/ptrace.2:447
8274 #, no-wrap
8275 msgid "B<PTRACE_O_TRACESYSGOOD> (since Linux 2.4.6)"
8276 msgstr "B<PTRACE_O_TRACESYSGOOD> (Linux 2.4.6 以降)"
8277
8278 #. type: Plain text
8279 #: build/C/man2/ptrace.2:456
8280 #, fuzzy
8281 #| msgid ""
8282 #| "When delivering syscall traps, set bit 7 in the signal number (i.e., "
8283 #| "deliver I<SIGTRAP | 0x80>).  This makes it easy for the tracer to tell "
8284 #| "the difference between normal traps and those caused by a syscall.  "
8285 #| "(B<PTRACE_O_TRACESYSGOOD> may not work on all architectures.)"
8286 msgid ""
8287 "When delivering system call traps, set bit 7 in the signal number (i.e., "
8288 "deliver I<SIGTRAP|0x80>).  This makes it easy for the tracer to distinguish "
8289 "normal traps from those caused by a system call.  (B<PTRACE_O_TRACESYSGOOD> "
8290 "may not work on all architectures.)"
8291 msgstr ""
8292 "システムコールのトラップが配送されたときに、シグナル番号のビット 7 を設定す"
8293 "る (すなわち、I<SIGTRAP | 0x80> を配送する)。 これにより、トレーサが通常のト"
8294 "ラップとシステムコールによるトラップを 区別しやすくなる。 "
8295 "(B<PTRACE_O_TRACESYSGOOD> はどのアーキテクチャでも動作しない可能性がある。)"
8296
8297 #. type: TP
8298 #: build/C/man2/ptrace.2:456
8299 #, no-wrap
8300 msgid "B<PTRACE_O_TRACEVFORK> (since Linux 2.5.46)"
8301 msgstr "B<PTRACE_O_TRACEVFORK> (Linux 2.5.46 以降)"
8302
8303 #. type: Plain text
8304 #: build/C/man2/ptrace.2:473
8305 #, fuzzy
8306 #| msgid ""
8307 #| "Stop the child at the next B<vfork>(2)  call with I<SIGTRAP | "
8308 #| "PTRACE_EVENT_VFORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
8309 #| "newly vforked process, which will start with a B<SIGSTOP>.  The PID for "
8310 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
8311 msgid ""
8312 "Stop the tracee at the next B<vfork>(2)  and automatically start tracing the "
8313 "newly vforked process, which will start with a B<SIGSTOP>, or "
8314 "B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used.  A B<waitpid>(2)  by the "
8315 "tracer will return a I<status> value such that"
8316 msgstr ""
8317 "次の B<vfork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_VFORK\\ E<lt>E<lt>\\ "
8318 "8> で 子プロセスの動作を停止させ、 新たに vfork されたプロセスのトレースを自"
8319 "動的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
8320 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
8321
8322 #. type: Plain text
8323 #: build/C/man2/ptrace.2:476
8324 #, no-wrap
8325 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORKE<lt>E<lt>8))\n"
8326 msgstr ""
8327
8328 #. type: TP
8329 #: build/C/man2/ptrace.2:480
8330 #, no-wrap
8331 msgid "B<PTRACE_O_TRACEVFORKDONE> (since Linux 2.5.60)"
8332 msgstr "B<PTRACE_O_TRACEVFORKDONE> (Linux 2.5.60 以降)"
8333
8334 #. type: Plain text
8335 #: build/C/man2/ptrace.2:489
8336 msgid ""
8337 "Stop the tracee at the completion of the next B<vfork>(2).  A B<waitpid>(2)  "
8338 "by the tracer will return a I<status> value such that"
8339 msgstr ""
8340
8341 #. type: Plain text
8342 #: build/C/man2/ptrace.2:492
8343 #, no-wrap
8344 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORK_DONEE<lt>E<lt>8))\n"
8345 msgstr ""
8346
8347 #. type: Plain text
8348 #: build/C/man2/ptrace.2:496
8349 msgid ""
8350 "The PID of the new process can (since Linux 2.6.18) be retrieved with "
8351 "B<PTRACE_GETEVENTMSG>."
8352 msgstr ""
8353
8354 #. type: TP
8355 #: build/C/man2/ptrace.2:497
8356 #, no-wrap
8357 msgid "B<PTRACE_GETEVENTMSG> (since Linux 2.5.46)"
8358 msgstr "B<PTRACE_GETEVENTMSG> (Linux 2.5.46 以降)"
8359
8360 #. type: Plain text
8361 #: build/C/man2/ptrace.2:517
8362 #, fuzzy
8363 #| msgid ""
8364 #| "Retrieve a message (as an I<unsigned long>)  about the ptrace event that "
8365 #| "just happened, placing it in the location I<data> in the parent.  For "
8366 #| "B<PTRACE_EVENT_EXIT> this is the child's exit status.  For "
8367 #| "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK> and B<PTRACE_EVENT_CLONE> "
8368 #| "this is the PID of the new process.  Since Linux 2.6.18, the PID of the "
8369 #| "new process is also available for B<PTRACE_EVENT_VFORK_DONE>.  (I<addr> "
8370 #| "is ignored.)"
8371 msgid ""
8372 "Retrieve a message (as an I<unsigned long>)  about the ptrace event that "
8373 "just happened, placing it at the address I<data> in the tracer.  For "
8374 "B<PTRACE_EVENT_EXIT>, this is the tracee's exit status.  For "
8375 "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK>, B<PTRACE_EVENT_VFORK_DONE>, and "
8376 "B<PTRACE_EVENT_CLONE>, this is the PID of the new process.  (I<addr> is "
8377 "ignored.)"
8378 msgstr ""
8379 "発生したばかりの ptrace イベントに関するメッセージを (I<unsigned long> 型で) "
8380 "取得する。 取得したメッセージは親プロセスの I<data> の位置に格納される。 得ら"
8381 "れる内容は、 B<PTRACE_EVENT_EXIT> の場合は子プロセスの終了ステータスであり、 "
8382 "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK>, B<PTRACE_EVENT_CLONE> の場合は新"
8383 "しいプロセスの PID である。 Linux 2.6.18 以降では、新しいプロセスの PID は "
8384 "B<PTRACE_EVENT_VFORK_DONE> で入手できる。 (I<addr> は無視される。)"
8385
8386 #. type: TP
8387 #: build/C/man2/ptrace.2:517
8388 #, no-wrap
8389 msgid "B<PTRACE_CONT>"
8390 msgstr "B<PTRACE_CONT>"
8391
8392 #. type: Plain text
8393 #: build/C/man2/ptrace.2:529
8394 #, fuzzy
8395 #| msgid ""
8396 #| "Restarts the stopped child process.  If I<data> is nonzero and not "
8397 #| "B<SIGSTOP>, it is interpreted as a signal to be delivered to the child; "
8398 #| "otherwise, no signal is delivered.  Thus, for example, the parent can "
8399 #| "control whether a signal sent to the child is delivered or not.  (I<addr> "
8400 #| "is ignored.)"
8401 msgid ""
8402 "Restart the stopped tracee process.  If I<data> is nonzero, it is "
8403 "interpreted as the number of a signal to be delivered to the tracee; "
8404 "otherwise, no signal is delivered.  Thus, for example, the tracer can "
8405 "control whether a signal sent to the tracee is delivered or not.  (I<addr> "
8406 "is ignored.)"
8407 msgstr ""
8408 "停止した子プロセスの実行を再開させる。 I<data> がゼロでなく、 B<SIGSTOP> でも"
8409 "なければ、 子プロセスに配送されるシグナルと解釈される。 ゼロや B<SIGSTOP> の"
8410 "場合はシグナルは配送されない。 これを使うと、例えば、親プロセスは 子プロセス"
8411 "に送られたシグナルを実際に配送するかどうかを 制御することができる。(I<addr> "
8412 "は無視される。)"
8413
8414 #. type: TP
8415 #: build/C/man2/ptrace.2:529
8416 #, no-wrap
8417 msgid "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
8418 msgstr "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
8419
8420 #. type: Plain text
8421 #: build/C/man2/ptrace.2:553
8422 #, fuzzy
8423 #| msgid ""
8424 #| "Restarts the stopped child as for B<PTRACE_CONT>, but arranges for the "
8425 #| "child to be stopped at the next entry to or exit from a system call, or "
8426 #| "after execution of a single instruction, respectively.  (The child will "
8427 #| "also, as usual, be stopped upon receipt of a signal.)  From the parent's "
8428 #| "perspective, the child will appear to have been stopped by receipt of a "
8429 #| "B<SIGTRAP>.  So, for B<PTRACE_SYSCALL>, for example, the idea is to "
8430 #| "inspect the arguments to the system call at the first stop, then do "
8431 #| "another B<PTRACE_SYSCALL> and inspect the return value of the system call "
8432 #| "at the second stop.  The I<data> argument is treated as for "
8433 #| "B<PTRACE_CONT>.  (I<addr> is ignored.)"
8434 msgid ""
8435 "Restart the stopped tracee as for B<PTRACE_CONT>, but arrange for the tracee "
8436 "to be stopped at the next entry to or exit from a system call, or after "
8437 "execution of a single instruction, respectively.  (The tracee will also, as "
8438 "usual, be stopped upon receipt of a signal.)  From the tracer's perspective, "
8439 "the tracee will appear to have been stopped by receipt of a B<SIGTRAP>.  So, "
8440 "for B<PTRACE_SYSCALL>, for example, the idea is to inspect the arguments to "
8441 "the system call at the first stop, then do another B<PTRACE_SYSCALL> and "
8442 "inspect the return value of the system call at the second stop.  The I<data> "
8443 "argument is treated as for B<PTRACE_CONT>.  (I<addr> is ignored.)"
8444 msgstr ""
8445 "B<PTRACE_CONT> と同様に停止した子プロセスを再開する。ただし、 "
8446 "B<PTRACE_SYSCALL> の場合は子プロセスが 次にシステムコールに入るかシステムコー"
8447 "ルから抜けるかする時に、 B<PTRACE_SINGLESTEP> の場合は 1 命令 (instruction) "
8448 "実行した後に停止させる (通常どおり、子プロセスはシグナルを受け取った場合にも"
8449 "停止する)。 親プロセスから見ると、子プロセスは B<SIGTRAP> を受信して停止した"
8450 "ように見える。そのため、例えば B<PTRACE_SYSCALL> を使うと、1回目の停止で引き"
8451 "数を調べて B<PTRACE_SYSCALL> を実行し、 2回目の停止でシステムコールの返り値を"
8452 "調べる、 というようなことができる。 引き数 I<data> は B<PTRACE_CONT> の場合と"
8453 "同じ様に解釈される。 (I<addr> は無視される。)"
8454
8455 #. type: TP
8456 #: build/C/man2/ptrace.2:553
8457 #, no-wrap
8458 msgid "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (since Linux 2.6.14)"
8459 msgstr "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (Linux 2.6.14 以降)"
8460
8461 #.  As at 3.7
8462 #. type: Plain text
8463 #: build/C/man2/ptrace.2:574
8464 #, fuzzy
8465 #| msgid ""
8466 #| "For B<PTRACE_SYSEMU>, continue and stop on entry to the next syscall, "
8467 #| "which will not be executed.  For B<PTRACE_SYSEMU_SINGLESTEP>, do the same "
8468 #| "but also singlestep if not a syscall.  This call is used by programs like "
8469 #| "User Mode Linux that want to emulate all the child's system calls.  The "
8470 #| "I<data> argument is treated as for B<PTRACE_CONT>.  (I<addr> is ignored; "
8471 #| "not supported on all architectures.)"
8472 msgid ""
8473 "For B<PTRACE_SYSEMU>, continue and stop on entry to the next system call, "
8474 "which will not be executed.  For B<PTRACE_SYSEMU_SINGLESTEP>, do the same "
8475 "but also singlestep if not a system call.  This call is used by programs "
8476 "like User Mode Linux that want to emulate all the tracee's system calls.  "
8477 "The I<data> argument is treated as for B<PTRACE_CONT>.  The I<addr> argument "
8478 "is ignored.  These requests are currently supported only on x86."
8479 msgstr ""
8480 "B<PTRACE_SYSEMU> は、実行を再開し、次のシステムコールに入る時に停止させる。 "
8481 "システムコールは実行されない。 B<PTRACE_SYSEMU_SINGLESTEP> も同様だが、システ"
8482 "ムコールでない場合には 1 命令 (singlestep) だけ実行した時点でも停止させる。 "
8483 "このコールは User Mode Linux のように子プロセスのシステムコールを全て エミュ"
8484 "レートしようとするプログラムで使用される。 引き数 I<data> は B<PTRACE_CONT> "
8485 "の場合と同じ様に解釈される。 (I<addr> は無視される。 全てのアーキテクチャでサ"
8486 "ポートされているわけではない。)"
8487
8488 #. type: TP
8489 #: build/C/man2/ptrace.2:574
8490 #, no-wrap
8491 msgid "B<PTRACE_LISTEN> (since Linux 3.4)"
8492 msgstr " B<PTRACE_LISTEN> (since Linux 3.4)"
8493
8494 #. type: Plain text
8495 #: build/C/man2/ptrace.2:585
8496 msgid ""
8497 "Restart the stopped tracee, but prevent it from executing.  The resulting "
8498 "state of the tracee is similar to a process which has been stopped by a "
8499 "B<SIGSTOP> (or other stopping signal).  See the \"group-stop\" subsection "
8500 "for additional information.  B<PTRACE_LISTEN> works only on tracees attached "
8501 "by B<PTRACE_SEIZE>."
8502 msgstr ""
8503
8504 #. type: TP
8505 #: build/C/man2/ptrace.2:585
8506 #, no-wrap
8507 msgid "B<PTRACE_KILL>"
8508 msgstr "B<PTRACE_KILL>"
8509
8510 #. type: Plain text
8511 #: build/C/man2/ptrace.2:594
8512 #, fuzzy
8513 #| msgid ""
8514 #| "Sends the child a B<SIGKILL> to terminate it.  (I<addr> and I<data> are "
8515 #| "ignored.)"
8516 msgid ""
8517 "Send the tracee a B<SIGKILL> to terminate it.  (I<addr> and I<data> are "
8518 "ignored.)"
8519 msgstr ""
8520 "子プロセスに B<SIGKILL> を送り終了させる。(I<addr> と I<data> は無視される。)"
8521
8522 #.  [Note from Denys Vlasenko:
8523 #.      deprecation suggested by Oleg Nesterov. He prefers to deprecate it
8524 #.      instead of describing (and needing to support) PTRACE_KILL's quirks.]
8525 #. type: Plain text
8526 #: build/C/man2/ptrace.2:613
8527 msgid ""
8528 "I<This operation is deprecated; do not use it!> Instead, send a B<SIGKILL> "
8529 "directly using B<kill>(2)  or B<tgkill>(2).  The problem with B<PTRACE_KILL> "
8530 "is that it requires the tracee to be in signal-delivery-stop, otherwise it "
8531 "may not work (i.e., may complete successfully but won't kill the tracee).  "
8532 "By contrast, sending a B<SIGKILL> directly has no such limitation."
8533 msgstr ""
8534
8535 #. type: TP
8536 #: build/C/man2/ptrace.2:613
8537 #, no-wrap
8538 msgid "B<PTRACE_INTERRUPT> (since Linux 3.4)"
8539 msgstr " B<PTRACE_INTERRUPT> (since Linux 3.4)"
8540
8541 #. type: Plain text
8542 #: build/C/man2/ptrace.2:641
8543 msgid ""
8544 "Stop a tracee.  If the tracee is running or sleeping in kernel space and "
8545 "B<PTRACE_SYSCALL> is in effect, the system call is interrupted and syscall-"
8546 "exit-stop is reported.  (The interrupted system call is restarted when the "
8547 "tracee is restarted.)  If the tracee was already stopped by a signal and "
8548 "B<PTRACE_LISTEN> was sent to it, the tracee stops with B<PTRACE_EVENT_STOP> "
8549 "and I<WSTOPSIG(status)> returns the stop signal.  If any other ptrace-stop "
8550 "is generated at the same time (for example, if a signal is sent to the "
8551 "tracee), this ptrace-stop happens.  If none of the above applies (for "
8552 "example, if the tracee is running in userspace), it stops with "
8553 "B<PTRACE_EVENT_STOP> with I<WSTOPSIG(status)> == B<SIGTRAP>.  "
8554 "B<PTRACE_INTERRUPT> only works on tracees attached by B<PTRACE_SEIZE>."
8555 msgstr ""
8556
8557 #. type: TP
8558 #: build/C/man2/ptrace.2:641
8559 #, no-wrap
8560 msgid "B<PTRACE_ATTACH>"
8561 msgstr "B<PTRACE_ATTACH>"
8562
8563 #.  No longer true (removed by Denys Vlasenko, 2011, who remarks:
8564 #.         "I think it isn't true in non-ancient 2.4 and in 2.6/3.x.
8565 #.          Basically, it's not true for any Linux in practical use.
8566 #.  ; the behavior of the tracee is as if it had done a
8567 #.  .BR PTRACE_TRACEME .
8568 #.  The calling process actually becomes the parent of the tracee
8569 #.  process for most purposes (e.g., it will receive
8570 #.  notification of tracee events and appears in
8571 #.  .BR ps (1)
8572 #.  output as the tracee's parent), but a
8573 #.  .BR getppid (2)
8574 #.  by the tracee will still return the PID of the original parent.
8575 #. type: Plain text
8576 #: build/C/man2/ptrace.2:669
8577 msgid ""
8578 "Attach to the process specified in I<pid>, making it a tracee of the calling "
8579 "process.  The tracee is sent a B<SIGSTOP>, but will not necessarily have "
8580 "stopped by the completion of this call; use B<waitpid>(2)  to wait for the "
8581 "tracee to stop.  See the \"Attaching and detaching\" subsection for "
8582 "additional information.  (I<addr> and I<data> are ignored.)"
8583 msgstr ""
8584
8585 #. type: TP
8586 #: build/C/man2/ptrace.2:669
8587 #, no-wrap
8588 msgid "B<PTRACE_SEIZE> (since Linux 3.4)"
8589 msgstr " B<PTRACE_SEIZE> (since Linux 3.4)"
8590
8591 #. type: Plain text
8592 #: build/C/man2/ptrace.2:689
8593 msgid ""
8594 "Attach to the process specified in I<pid>, making it a tracee of the calling "
8595 "process.  Unlike B<PTRACE_ATTACH>, B<PTRACE_SEIZE> does not stop the "
8596 "process.  Only a B<PTRACE_SEIZE>d process can accept B<PTRACE_INTERRUPT> and "
8597 "B<PTRACE_LISTEN> commands.  I<addr> must be zero.  I<data> contains a bit "
8598 "mask of ptrace options to activate immediately."
8599 msgstr ""
8600
8601 #. type: TP
8602 #: build/C/man2/ptrace.2:689
8603 #, no-wrap
8604 msgid "B<PTRACE_DETACH>"
8605 msgstr "B<PTRACE_DETACH>"
8606
8607 #. type: Plain text
8608 #: build/C/man2/ptrace.2:698
8609 #, fuzzy
8610 #| msgid ""
8611 #| "Restarts the stopped child as for B<PTRACE_CONT>, but first detaches from "
8612 #| "the process, undoing the reparenting effect of B<PTRACE_ATTACH>, and the "
8613 #| "effects of B<PTRACE_TRACEME>.  Although perhaps not intended, under Linux "
8614 #| "a traced child can be detached in this way regardless of which method was "
8615 #| "used to initiate tracing.  (I<addr> is ignored.)"
8616 msgid ""
8617 "Restart the stopped tracee as for B<PTRACE_CONT>, but first detach from it.  "
8618 "Under Linux, a tracee can be detached in this way regardless of which method "
8619 "was used to initiate tracing.  (I<addr> is ignored.)"
8620 msgstr ""
8621 "B<PTRACE_CONT> と同様に停止した子プロセスを再開する。ただし まずそのプロセス"
8622 "からの分離 (detach) を行い、 B<PTRACE_ATTACH> での親の切り換えによる効果と "
8623 "B<PTRACE_TRACEME> の効果を取り消す。意図したものではないだろうが、 Linux で"
8624 "は、トレースされている子プロセスはどのような方法でトレースを 開始されたとして"
8625 "も、この方法で分離 (detach) することができる。 (I<addr> は無視される。)"
8626
8627 #. type: SS
8628 #: build/C/man2/ptrace.2:698
8629 #, no-wrap
8630 msgid "Death under ptrace"
8631 msgstr ""
8632
8633 #. type: Plain text
8634 #: build/C/man2/ptrace.2:707
8635 msgid ""
8636 "When a (possibly multithreaded) process receives a killing signal (one whose "
8637 "disposition is set to B<SIG_DFL> and whose default action is to kill the "
8638 "process), all threads exit.  Tracees report their death to their tracer(s).  "
8639 "Notification of this event is delivered via B<waitpid>(2)."
8640 msgstr ""
8641
8642 #. type: Plain text
8643 #: build/C/man2/ptrace.2:716
8644 msgid ""
8645 "Note that the killing signal will first cause signal-delivery-stop (on one "
8646 "tracee only), and only after it is injected by the tracer (or after it was "
8647 "dispatched to a thread which isn't traced), will death from the signal "
8648 "happen on I<all> tracees within a multithreaded process.  (The term \"signal-"
8649 "delivery-stop\" is explained below.)"
8650 msgstr ""
8651
8652 #. type: Plain text
8653 #: build/C/man2/ptrace.2:728
8654 msgid ""
8655 "B<SIGKILL> does not generate signal-delivery-stop and therefore the tracer "
8656 "can't suppress it.  B<SIGKILL> kills even within system calls (syscall-exit-"
8657 "stop is not generated prior to death by B<SIGKILL>).  The net effect is that "
8658 "B<SIGKILL> always kills the process (all its threads), even if some threads "
8659 "of the process are ptraced."
8660 msgstr ""
8661
8662 #. type: Plain text
8663 #: build/C/man2/ptrace.2:733
8664 msgid ""
8665 "When the tracee calls B<_exit>(2), it reports its death to its tracer.  "
8666 "Other threads are not affected."
8667 msgstr ""
8668
8669 #. type: Plain text
8670 #: build/C/man2/ptrace.2:737
8671 msgid ""
8672 "When any thread executes B<exit_group>(2), every tracee in its thread group "
8673 "reports its death to its tracer."
8674 msgstr ""
8675
8676 #. type: Plain text
8677 #: build/C/man2/ptrace.2:751
8678 msgid ""
8679 "If the B<PTRACE_O_TRACEEXIT> option is on, B<PTRACE_EVENT_EXIT> will happen "
8680 "before actual death.  This applies to exits via B<exit>(2), B<exit_group>"
8681 "(2), and signal deaths (except B<SIGKILL>), and when threads are torn down "
8682 "on B<execve>(2)  in a multithreaded process."
8683 msgstr ""
8684
8685 #. type: Plain text
8686 #: build/C/man2/ptrace.2:776
8687 msgid ""
8688 "The tracer cannot assume that the ptrace-stopped tracee exists.  There are "
8689 "many scenarios when the tracee may die while stopped (such as B<SIGKILL>).  "
8690 "Therefore, the tracer must be prepared to handle an B<ESRCH> error on any "
8691 "ptrace operation.  Unfortunately, the same error is returned if the tracee "
8692 "exists but is not ptrace-stopped (for commands which require a stopped "
8693 "tracee), or if it is not traced by the process which issued the ptrace "
8694 "call.  The tracer needs to keep track of the stopped/running state of the "
8695 "tracee, and interpret B<ESRCH> as \"tracee died unexpectedly\" only if it "
8696 "knows that the tracee has been observed to enter ptrace-stop.  Note that "
8697 "there is no guarantee that I<waitpid(WNOHANG)> will reliably report the "
8698 "tracee's death status if a ptrace operation returned B<ESRCH>.  I<waitpid"
8699 "(WNOHANG)> may return 0 instead.  In other words, the tracee may be \"not "
8700 "yet fully dead\", but already refusing ptrace requests."
8701 msgstr ""
8702
8703 #. type: Plain text
8704 #: build/C/man2/ptrace.2:790
8705 msgid ""
8706 "The tracer can't assume that the tracee I<always> ends its life by reporting "
8707 "I<WIFEXITED(status)> or I<WIFSIGNALED(status)>; there are cases where this "
8708 "does not occur.  For example, if a thread other than thread group leader "
8709 "does an B<execve>(2), it disappears; its PID will never be seen again, and "
8710 "any subsequent ptrace stops will be reported under the thread group leader's "
8711 "PID."
8712 msgstr ""
8713
8714 #. type: SS
8715 #: build/C/man2/ptrace.2:790
8716 #, no-wrap
8717 msgid "Stopped states"
8718 msgstr ""
8719
8720 #. type: Plain text
8721 #: build/C/man2/ptrace.2:812
8722 msgid ""
8723 "A tracee can be in two states: running or stopped.  For the purposes of "
8724 "ptrace, a tracee which is blocked in a system call (such as B<read>(2), "
8725 "B<pause>(2), etc.)  is nevertheless considered to be running, even if the "
8726 "tracee is blocked for a long time.  The state of the tracee after "
8727 "B<PTRACE_LISTEN> is somewhat of a gray area: it is not in any ptrace-stop "
8728 "(ptrace commands won't work on it, and it will deliver B<waitpid>(2)  "
8729 "notifications), but it also may be considered \"stopped\" because it is not "
8730 "executing instructions (is not scheduled), and if it was in group-stop "
8731 "before B<PTRACE_LISTEN>, it will not respond to signals until B<SIGCONT> is "
8732 "received."
8733 msgstr ""
8734
8735 #. type: Plain text
8736 #: build/C/man2/ptrace.2:816
8737 msgid ""
8738 "There are many kinds of states when the tracee is stopped, and in ptrace "
8739 "discussions they are often conflated.  Therefore, it is important to use "
8740 "precise terms."
8741 msgstr ""
8742
8743 #. type: Plain text
8744 #: build/C/man2/ptrace.2:827
8745 msgid ""
8746 "In this manual page, any stopped state in which the tracee is ready to "
8747 "accept ptrace commands from the tracer is called I<ptrace-stop>.  Ptrace-"
8748 "stops can be further subdivided into I<signal-delivery-stop>, I<group-stop>, "
8749 "I<syscall-stop>, and so on.  These stopped states are described in detail "
8750 "below."
8751 msgstr ""
8752
8753 #. type: Plain text
8754 #: build/C/man2/ptrace.2:832
8755 msgid ""
8756 "When the running tracee enters ptrace-stop, it notifies its tracer using "
8757 "B<waitpid>(2)  (or one of the other \"wait\" system calls).  Most of this "
8758 "manual page assumes that the tracer waits with:"
8759 msgstr ""
8760
8761 #. type: Plain text
8762 #: build/C/man2/ptrace.2:834
8763 #, no-wrap
8764 msgid "    pid = waitpid(pid_or_minus_1, &status, __WALL);\n"
8765 msgstr ""
8766
8767 #.  Denys Vlasenko:
8768 #.      Do we require __WALL usage, or will just using 0 be ok? (With 0,
8769 #.      I am not 100% sure there aren't ugly corner cases.) Are the
8770 #.      rules different if user wants to use waitid? Will waitid require
8771 #.      WEXITED?
8772 #. type: Plain text
8773 #: build/C/man2/ptrace.2:846
8774 msgid ""
8775 "Ptrace-stopped tracees are reported as returns with I<pid> greater than 0 "
8776 "and I<WIFSTOPPED(status)> true."
8777 msgstr ""
8778
8779 #. type: Plain text
8780 #: build/C/man2/ptrace.2:854
8781 msgid ""
8782 "The B<__WALL> flag does not include the B<WSTOPPED> and B<WEXITED> flags, "
8783 "but implies their functionality."
8784 msgstr ""
8785
8786 #. type: Plain text
8787 #: build/C/man2/ptrace.2:861
8788 msgid ""
8789 "Setting the B<WCONTINUED> flag when calling B<waitpid>(2)  is not "
8790 "recommended: the \"continued\" state is per-process and consuming it can "
8791 "confuse the real parent of the tracee."
8792 msgstr ""
8793
8794 #. type: Plain text
8795 #: build/C/man2/ptrace.2:869
8796 msgid ""
8797 "Use of the B<WNOHANG> flag may cause B<waitpid>(2)  to return 0 (\"no wait "
8798 "results available yet\")  even if the tracer knows there should be a "
8799 "notification.  Example:"
8800 msgstr ""
8801
8802 #. type: Plain text
8803 #: build/C/man2/ptrace.2:878
8804 #, no-wrap
8805 msgid ""
8806 "    errno = 0;\n"
8807 "    ptrace(PTRACE_CONT, pid, 0L, 0L);\n"
8808 "    if (errno == ESRCH) {\n"
8809 "        /* tracee is dead */\n"
8810 "        r = waitpid(tracee, &status, __WALL | WNOHANG);\n"
8811 "        /* r can still be 0 here! */\n"
8812 "    }\n"
8813 msgstr ""
8814
8815 #. type: Plain text
8816 #: build/C/man2/ptrace.2:901
8817 msgid ""
8818 "The following kinds of ptrace-stops exist: signal-delivery-stops, group-"
8819 "stops, B<PTRACE_EVENT> stops, syscall-stops.  They all are reported by "
8820 "B<waitpid>(2)  with I<WIFSTOPPED(status)> true.  They may be differentiated "
8821 "by examining the value I<statusE<gt>E<gt>8>, and if there is ambiguity in "
8822 "that value, by querying B<PTRACE_GETSIGINFO>.  (Note: the I<WSTOPSIG(status)"
8823 "> macro can't be used to perform this examination, because it returns the "
8824 "value I<(statusE<gt>E<gt>8)\\ &\\ 0xff>.)"
8825 msgstr ""
8826
8827 #. type: SS
8828 #: build/C/man2/ptrace.2:901
8829 #, no-wrap
8830 msgid "Signal-delivery-stop"
8831 msgstr ""
8832
8833 #. type: Plain text
8834 #: build/C/man2/ptrace.2:921
8835 msgid ""
8836 "When a (possibly multithreaded) process receives any signal except "
8837 "B<SIGKILL>, the kernel selects an arbitrary thread which handles the "
8838 "signal.  (If the signal is generated with B<tgkill>(2), the target thread "
8839 "can be explicitly selected by the caller.)  If the selected thread is "
8840 "traced, it enters signal-delivery-stop.  At this point, the signal is not "
8841 "yet delivered to the process, and can be suppressed by the tracer.  If the "
8842 "tracer doesn't suppress the signal, it passes the signal to the tracee in "
8843 "the next ptrace restart request.  This second step of signal delivery is "
8844 "called I<signal injection> in this manual page.  Note that if the signal is "
8845 "blocked, signal-delivery-stop doesn't happen until the signal is unblocked, "
8846 "with the usual exception that B<SIGSTOP> can't be blocked."
8847 msgstr ""
8848
8849 #. type: Plain text
8850 #: build/C/man2/ptrace.2:935
8851 msgid ""
8852 "Signal-delivery-stop is observed by the tracer as B<waitpid>(2)  returning "
8853 "with I<WIFSTOPPED(status)> true, with the signal returned by I<WSTOPSIG"
8854 "(status)>.  If the signal is B<SIGTRAP>, this may be a different kind of "
8855 "ptrace-stop; see the \"Syscall-stops\" and \"execve\" sections below for "
8856 "details.  If I<WSTOPSIG(status)> returns a stopping signal, this may be a "
8857 "group-stop; see below."
8858 msgstr ""
8859
8860 #. type: SS
8861 #: build/C/man2/ptrace.2:935
8862 #, no-wrap
8863 msgid "Signal injection and suppression"
8864 msgstr ""
8865
8866 #. type: Plain text
8867 #: build/C/man2/ptrace.2:938
8868 msgid ""
8869 "After signal-delivery-stop is observed by the tracer, the tracer should "
8870 "restart the tracee with the call"
8871 msgstr ""
8872
8873 #. type: Plain text
8874 #: build/C/man2/ptrace.2:940
8875 #, no-wrap
8876 msgid "    ptrace(PTRACE_restart, pid, 0, sig)\n"
8877 msgstr ""
8878
8879 #. type: Plain text
8880 #: build/C/man2/ptrace.2:953
8881 msgid ""
8882 "where B<PTRACE_restart> is one of the restarting ptrace requests.  If I<sig> "
8883 "is 0, then a signal is not delivered.  Otherwise, the signal I<sig> is "
8884 "delivered.  This operation is called I<signal injection> in this manual "
8885 "page, to distinguish it from signal-delivery-stop."
8886 msgstr ""
8887
8888 #. type: Plain text
8889 #: build/C/man2/ptrace.2:959
8890 msgid ""
8891 "The I<sig> value may be different from the I<WSTOPSIG(status)> value: the "
8892 "tracer can cause a different signal to be injected."
8893 msgstr ""
8894
8895 #. type: Plain text
8896 #: build/C/man2/ptrace.2:975
8897 msgid ""
8898 "Note that a suppressed signal still causes system calls to return "
8899 "prematurely.  In this case system calls will be restarted: the tracer will "
8900 "observe the tracee to reexecute the interrupted system call (or "
8901 "B<restart_syscall>(2)  system call for a few syscalls which use a different "
8902 "mechanism for restarting) if the tracer uses B<PTRACE_SYSCALL>.  Even system "
8903 "calls (such as B<poll>(2))  which are not restartable after signal are "
8904 "restarted after signal is suppressed; however, kernel bugs exist which cause "
8905 "some syscalls to fail with B<EINTR> even though no observable signal is "
8906 "injected to the tracee."
8907 msgstr ""
8908
8909 #. type: Plain text
8910 #: build/C/man2/ptrace.2:986
8911 msgid ""
8912 "Restarting ptrace commands issued in ptrace-stops other than signal-delivery-"
8913 "stop are not guaranteed to inject a signal, even if I<sig> is nonzero.  No "
8914 "error is reported; a nonzero I<sig> may simply be ignored.  Ptrace users "
8915 "should not try to \"create a new signal\" this way: use B<tgkill>(2)  "
8916 "instead."
8917 msgstr ""
8918
8919 #. type: Plain text
8920 #: build/C/man2/ptrace.2:993
8921 msgid ""
8922 "The fact that signal injection requests may be ignored when restarting the "
8923 "tracee after ptrace stops that are not signal-delivery-stops is a cause of "
8924 "confusion among ptrace users.  One typical scenario is that the tracer "
8925 "observes group-stop, mistakes it for signal-delivery-stop, restarts the "
8926 "tracee with"
8927 msgstr ""
8928
8929 #. type: Plain text
8930 #: build/C/man2/ptrace.2:995
8931 #, no-wrap
8932 msgid "    ptrace(PTRACE_restart, pid, 0, stopsig)\n"
8933 msgstr ""
8934
8935 #. type: Plain text
8936 #: build/C/man2/ptrace.2:1001
8937 msgid ""
8938 "with the intention of injecting I<stopsig>, but I<stopsig> gets ignored and "
8939 "the tracee continues to run."
8940 msgstr ""
8941
8942 #. type: Plain text
8943 #: build/C/man2/ptrace.2:1021
8944 msgid ""
8945 "The B<SIGCONT> signal has a side effect of waking up (all threads of)  a "
8946 "group-stopped process.  This side effect happens before signal-delivery-"
8947 "stop.  The tracer can't suppress this side effect (it can only suppress "
8948 "signal injection, which only causes the B<SIGCONT> handler to not be "
8949 "executed in the tracee, if such a handler is installed).  In fact, waking up "
8950 "from group-stop may be followed by signal-delivery-stop for signal(s)  "
8951 "I<other than> B<SIGCONT>, if they were pending when B<SIGCONT> was "
8952 "delivered.  In other words, B<SIGCONT> may be not the first signal observed "
8953 "by the tracee after it was sent."
8954 msgstr ""
8955
8956 #. type: Plain text
8957 #: build/C/man2/ptrace.2:1025
8958 msgid ""
8959 "Stopping signals cause (all threads of) a process to enter group-stop.  This "
8960 "side effect happens after signal injection, and therefore can be suppressed "
8961 "by the tracer."
8962 msgstr ""
8963
8964 #
8965 #.  In the Linux 2.4 sources, in arch/i386/kernel/signal.c::do_signal(),
8966 #.  there is:
8967 #.              /* The debugger continued.  Ignore SIGSTOP.  */
8968 #.              if (signr == SIGSTOP)
8969 #.                      continue;
8970 #. type: Plain text
8971 #: build/C/man2/ptrace.2:1035
8972 msgid "In Linux 2.4 and earlier, the B<SIGSTOP> signal can't be injected."
8973 msgstr ""
8974
8975 #. type: Plain text
8976 #: build/C/man2/ptrace.2:1052
8977 msgid ""
8978 "B<PTRACE_GETSIGINFO> can be used to retrieve a I<siginfo_t> structure which "
8979 "corresponds to the delivered signal.  B<PTRACE_SETSIGINFO> may be used to "
8980 "modify it.  If B<PTRACE_SETSIGINFO> has been used to alter I<siginfo_t>, the "
8981 "I<si_signo> field and the I<sig> parameter in the restarting command must "
8982 "match, otherwise the result is undefined."
8983 msgstr ""
8984
8985 #. type: SS
8986 #: build/C/man2/ptrace.2:1052
8987 #, no-wrap
8988 msgid "Group-stop"
8989 msgstr ""
8990
8991 #. type: Plain text
8992 #: build/C/man2/ptrace.2:1064
8993 msgid ""
8994 "When a (possibly multithreaded) process receives a stopping signal, all "
8995 "threads stop.  If some threads are traced, they enter a group-stop.  Note "
8996 "that the stopping signal will first cause signal-delivery-stop (on one "
8997 "tracee only), and only after it is injected by the tracer (or after it was "
8998 "dispatched to a thread which isn't traced), will group-stop be initiated on "
8999 "I<all> tracees within the multithreaded process.  As usual, every tracee "
9000 "reports its group-stop separately to the corresponding tracer."
9001 msgstr ""
9002
9003 #. type: Plain text
9004 #: build/C/man2/ptrace.2:1073
9005 msgid ""
9006 "Group-stop is observed by the tracer as B<waitpid>(2)  returning with "
9007 "I<WIFSTOPPED(status)> true, with the stopping signal available via I<WSTOPSIG"
9008 "(status)>.  The same result is returned by some other classes of ptrace-"
9009 "stops, therefore the recommended practice is to perform the call"
9010 msgstr ""
9011
9012 #. type: Plain text
9013 #: build/C/man2/ptrace.2:1075
9014 #, no-wrap
9015 msgid "    ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo)\n"
9016 msgstr ""
9017
9018 #. type: Plain text
9019 #: build/C/man2/ptrace.2:1096
9020 msgid ""
9021 "The call can be avoided if the signal is not B<SIGSTOP>, B<SIGTSTP>, "
9022 "B<SIGTTIN>, or B<SIGTTOU>; only these four signals are stopping signals.  If "
9023 "the tracer sees something else, it can't be a group-stop.  Otherwise, the "
9024 "tracer needs to call B<PTRACE_GETSIGINFO>.  If B<PTRACE_GETSIGINFO> fails "
9025 "with B<EINVAL>, then it is definitely a group-stop.  (Other failure codes "
9026 "are possible, such as B<ESRCH> (\"no such process\") if a B<SIGKILL> killed "
9027 "the tracee.)"
9028 msgstr ""
9029
9030 #. type: Plain text
9031 #: build/C/man2/ptrace.2:1106
9032 msgid ""
9033 "If tracee was attached using B<PTRACE_SEIZE>, group-stop is indicated by "
9034 "B<PTRACE_EVENT_STOP>: I<statusE<gt>E<gt>16 == PTRACE_EVENT_STOP>.  This "
9035 "allows detection of group-stops without requiring an extra "
9036 "B<PTRACE_GETSIGINFO> call."
9037 msgstr ""
9038
9039 #. type: Plain text
9040 #: build/C/man2/ptrace.2:1115
9041 msgid ""
9042 "As of Linux 2.6.38, after the tracer sees the tracee ptrace-stop and until "
9043 "it restarts or kills it, the tracee will not run, and will not send "
9044 "notifications (except B<SIGKILL> death) to the tracer, even if the tracer "
9045 "enters into another B<waitpid>(2)  call."
9046 msgstr ""
9047
9048 #. type: Plain text
9049 #: build/C/man2/ptrace.2:1129
9050 msgid ""
9051 "The kernel behavior described in the previous paragraph causes a problem "
9052 "with transparent handling of stopping signals.  If the tracer restarts the "
9053 "tracee after group-stop, the stopping signal is effectively ignored\\(emthe "
9054 "tracee doesn't remain stopped, it runs.  If the tracer doesn't restart the "
9055 "tracee before entering into the next B<waitpid>(2), future B<SIGCONT> "
9056 "signals will not be reported to the tracer; this would cause the B<SIGCONT> "
9057 "signals to have no effect on the tracee."
9058 msgstr ""
9059
9060 #. type: Plain text
9061 #: build/C/man2/ptrace.2:1140
9062 msgid ""
9063 "Since Linux 3.4, there is a method to overcome this problem: instead of "
9064 "B<PTRACE_CONT>, a B<PTRACE_LISTEN> command can be used to restart a tracee "
9065 "in a way where it does not execute, but waits for a new event which it can "
9066 "report via B<waitpid>(2)  (such as when it is restarted by a B<SIGCONT>)."
9067 msgstr ""
9068
9069 #. type: SS
9070 #: build/C/man2/ptrace.2:1140
9071 #, no-wrap
9072 msgid "PTRACE_EVENT stops"
9073 msgstr ""
9074
9075 #. type: Plain text
9076 #: build/C/man2/ptrace.2:1146
9077 msgid ""
9078 "If the tracer sets B<PTRACE_O_TRACE_*> options, the tracee will enter ptrace-"
9079 "stops called B<PTRACE_EVENT> stops."
9080 msgstr ""
9081
9082 #. type: Plain text
9083 #: build/C/man2/ptrace.2:1160
9084 msgid ""
9085 "B<PTRACE_EVENT> stops are observed by the tracer as B<waitpid>(2)  returning "
9086 "with I<WIFSTOPPED(status)>, and I<WSTOPSIG(status)> returns B<SIGTRAP>.  An "
9087 "additional bit is set in the higher byte of the status word: the value "
9088 "I<statusE<gt>E<gt>8> will be"
9089 msgstr ""
9090
9091 #. type: Plain text
9092 #: build/C/man2/ptrace.2:1162
9093 #, no-wrap
9094 msgid "    (SIGTRAP | PTRACE_EVENT_foo E<lt>E<lt> 8).\n"
9095 msgstr ""
9096
9097 #. type: Plain text
9098 #: build/C/man2/ptrace.2:1164
9099 msgid "The following events exist:"
9100 msgstr ""
9101
9102 #. type: TP
9103 #: build/C/man2/ptrace.2:1164
9104 #, no-wrap
9105 msgid "B<PTRACE_EVENT_VFORK>"
9106 msgstr "B<PTRACE_EVENT_VFORK>"
9107
9108 #. type: Plain text
9109 #: build/C/man2/ptrace.2:1177
9110 msgid ""
9111 "Stop before return from B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> "
9112 "flag.  When the tracee is continued after this stop, it will wait for child "
9113 "to exit/exec before continuing its execution (in other words, the usual "
9114 "behavior on B<vfork>(2))."
9115 msgstr ""
9116
9117 #. type: TP
9118 #: build/C/man2/ptrace.2:1177
9119 #, no-wrap
9120 msgid "B<PTRACE_EVENT_FORK>"
9121 msgstr "B<PTRACE_EVENT_FORK>"
9122
9123 #. type: Plain text
9124 #: build/C/man2/ptrace.2:1185
9125 msgid ""
9126 "Stop before return from B<fork>(2)  or B<clone>(2)  with the exit signal set "
9127 "to B<SIGCHLD>."
9128 msgstr ""
9129
9130 #. type: TP
9131 #: build/C/man2/ptrace.2:1185
9132 #, no-wrap
9133 msgid "B<PTRACE_EVENT_CLONE>"
9134 msgstr "B<PTRACE_EVENT_CLONE>"
9135
9136 #. type: Plain text
9137 #: build/C/man2/ptrace.2:1189
9138 msgid "Stop before return from B<clone>(2)."
9139 msgstr ""
9140
9141 #. type: TP
9142 #: build/C/man2/ptrace.2:1189
9143 #, no-wrap
9144 msgid "B<PTRACE_EVENT_VFORK_DONE>"
9145 msgstr "B<PTRACE_EVENT_VFORK_DONE>"
9146
9147 #. type: Plain text
9148 #: build/C/man2/ptrace.2:1199
9149 msgid ""
9150 "Stop before return from B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> "
9151 "flag, but after the child unblocked this tracee by exiting or execing."
9152 msgstr ""
9153
9154 #. type: Plain text
9155 #: build/C/man2/ptrace.2:1205
9156 msgid ""
9157 "For all four stops described above, the stop occurs in the parent (i.e., the "
9158 "tracee), not in the newly created thread.  B<PTRACE_GETEVENTMSG> can be used "
9159 "to retrieve the new thread's ID."
9160 msgstr ""
9161
9162 #. type: TP
9163 #: build/C/man2/ptrace.2:1205
9164 #, no-wrap
9165 msgid "B<PTRACE_EVENT_EXEC>"
9166 msgstr "B<PTRACE_EVENT_EXEC>"
9167
9168 #. type: Plain text
9169 #: build/C/man2/ptrace.2:1212
9170 msgid ""
9171 "Stop before return from B<execve>(2).  Since Linux 3.0, "
9172 "B<PTRACE_GETEVENTMSG> returns the former thread ID."
9173 msgstr ""
9174
9175 #. type: TP
9176 #: build/C/man2/ptrace.2:1212
9177 #, no-wrap
9178 msgid "B<PTRACE_EVENT_EXIT>"
9179 msgstr "B<PTRACE_EVENT_EXIT>"
9180
9181 #. type: Plain text
9182 #: build/C/man2/ptrace.2:1228
9183 msgid ""
9184 "Stop before exit (including death from B<exit_group>(2)), signal death, or "
9185 "exit caused by B<execve>(2)  in a multithreaded process.  "
9186 "B<PTRACE_GETEVENTMSG> returns the exit status.  Registers can be examined "
9187 "(unlike when \"real\" exit happens).  The tracee is still alive; it needs to "
9188 "be B<PTRACE_CONT>ed or B<PTRACE_DETACH>ed to finish exiting."
9189 msgstr ""
9190
9191 #. type: TP
9192 #: build/C/man2/ptrace.2:1228
9193 #, no-wrap
9194 msgid "B<PTRACE_EVENT_STOP>"
9195 msgstr "B<PTRACE_EVENT_STOP>"
9196
9197 #. type: Plain text
9198 #: build/C/man2/ptrace.2:1240
9199 msgid ""
9200 "Stop induced by B<PTRACE_INTERRUPT> command, or group-stop, or initial "
9201 "ptrace-stop when a new child is attached (only if attached using "
9202 "B<PTRACE_SEIZE>), or B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used."
9203 msgstr ""
9204
9205 #. type: Plain text
9206 #: build/C/man2/ptrace.2:1252
9207 msgid ""
9208 "B<PTRACE_GETSIGINFO> on B<PTRACE_EVENT> stops returns B<SIGTRAP> in "
9209 "I<si_signo>, with I<si_code> set to I<(eventE<lt>E<lt>8)\\ |\\ SIGTRAP>."
9210 msgstr ""
9211
9212 #. type: SS
9213 #: build/C/man2/ptrace.2:1252
9214 #, no-wrap
9215 msgid "Syscall-stops"
9216 msgstr ""
9217
9218 #. type: Plain text
9219 #: build/C/man2/ptrace.2:1265
9220 msgid ""
9221 "If the tracee was restarted by B<PTRACE_SYSCALL>, the tracee enters syscall-"
9222 "enter-stop just prior to entering any system call.  If the tracer restarts "
9223 "the tracee with B<PTRACE_SYSCALL>, the tracee enters syscall-exit-stop when "
9224 "the system call is finished, or if it is interrupted by a signal.  (That is, "
9225 "signal-delivery-stop never happens between syscall-enter-stop and syscall-"
9226 "exit-stop; it happens I<after> syscall-exit-stop.)"
9227 msgstr ""
9228
9229 #. type: Plain text
9230 #: build/C/man2/ptrace.2:1279
9231 msgid ""
9232 "Other possibilities are that the tracee may stop in a B<PTRACE_EVENT> stop, "
9233 "exit (if it entered B<_exit>(2)  or B<exit_group>(2)), be killed by "
9234 "B<SIGKILL>, or die silently (if it is a thread group leader, the B<execve>"
9235 "(2)  happened in another thread, and that thread is not traced by the same "
9236 "tracer; this situation is discussed later)."
9237 msgstr ""
9238
9239 #. type: Plain text
9240 #: build/C/man2/ptrace.2:1294
9241 msgid ""
9242 "Syscall-enter-stop and syscall-exit-stop are observed by the tracer as "
9243 "B<waitpid>(2)  returning with I<WIFSTOPPED(status)> true, and I<WSTOPSIG"
9244 "(status)> giving B<SIGTRAP>.  If the B<PTRACE_O_TRACESYSGOOD> option was set "
9245 "by the tracer, then I<WSTOPSIG(status)> will give the value I<(SIGTRAP\\ |\\ "
9246 "0x80)>."
9247 msgstr ""
9248
9249 #. type: Plain text
9250 #: build/C/man2/ptrace.2:1300
9251 msgid ""
9252 "Syscall-stops can be distinguished from signal-delivery-stop with B<SIGTRAP> "
9253 "by querying B<PTRACE_GETSIGINFO> for the following cases:"
9254 msgstr ""
9255
9256 #. type: TP
9257 #: build/C/man2/ptrace.2:1300
9258 #, no-wrap
9259 msgid "I<si_code> E<lt>= 0"
9260 msgstr ""
9261
9262 #. type: Plain text
9263 #: build/C/man2/ptrace.2:1312
9264 msgid ""
9265 "B<SIGTRAP> was delivered as a result of a user-space action, for example, a "
9266 "system call (B<tgkill>(2), B<kill>(2), B<sigqueue>(3), etc.), expiration of "
9267 "a POSIX timer, change of state on a POSIX message queue, or completion of an "
9268 "asynchronous I/O request."
9269 msgstr ""
9270
9271 #. type: TP
9272 #: build/C/man2/ptrace.2:1312
9273 #, no-wrap
9274 msgid "I<si_code> == SI_KERNEL (0x80)"
9275 msgstr ""
9276
9277 #. type: Plain text
9278 #: build/C/man2/ptrace.2:1316
9279 msgid "B<SIGTRAP> was sent by the kernel."
9280 msgstr ""
9281
9282 #. type: TP
9283 #: build/C/man2/ptrace.2:1316
9284 #, no-wrap
9285 msgid "I<si_code> == SIGTRAP or I<si_code> == (SIGTRAP|0x80)"
9286 msgstr ""
9287
9288 #. type: Plain text
9289 #: build/C/man2/ptrace.2:1319
9290 msgid "This is a syscall-stop."
9291 msgstr ""
9292
9293 #. type: Plain text
9294 #: build/C/man2/ptrace.2:1324
9295 msgid ""
9296 "However, syscall-stops happen very often (twice per system call), and "
9297 "performing B<PTRACE_GETSIGINFO> for every syscall-stop may be somewhat "
9298 "expensive."
9299 msgstr ""
9300
9301 #. type: Plain text
9302 #: build/C/man2/ptrace.2:1347
9303 msgid ""
9304 "Some architectures allow the cases to be distinguished by examining "
9305 "registers.  For example, on x86, I<rax> == -B<ENOSYS> in syscall-enter-"
9306 "stop.  Since B<SIGTRAP> (like any other signal) always happens I<after> "
9307 "syscall-exit-stop, and at this point I<rax> almost never contains -"
9308 "B<ENOSYS>, the B<SIGTRAP> looks like \"syscall-stop which is not syscall-"
9309 "enter-stop\"; in other words, it looks like a \"stray syscall-exit-stop\" "
9310 "and can be detected this way.  But such detection is fragile and is best "
9311 "avoided."
9312 msgstr ""
9313
9314 #. type: Plain text
9315 #: build/C/man2/ptrace.2:1353
9316 msgid ""
9317 "Using the B<PTRACE_O_TRACESYSGOOD> option is the recommended method to "
9318 "distinguish syscall-stops from other kinds of ptrace-stops, since it is "
9319 "reliable and does not incur a performance penalty."
9320 msgstr ""
9321
9322 #. type: Plain text
9323 #: build/C/man2/ptrace.2:1364
9324 msgid ""
9325 "Syscall-enter-stop and syscall-exit-stop are indistinguishable from each "
9326 "other by the tracer.  The tracer needs to keep track of the sequence of "
9327 "ptrace-stops in order to not misinterpret syscall-enter-stop as syscall-exit-"
9328 "stop or vice versa.  The rule is that syscall-enter-stop is always followed "
9329 "by syscall-exit-stop, B<PTRACE_EVENT> stop or the tracee's death; no other "
9330 "kinds of ptrace-stop can occur in between."
9331 msgstr ""
9332
9333 #. type: Plain text
9334 #: build/C/man2/ptrace.2:1369
9335 msgid ""
9336 "If after syscall-enter-stop, the tracer uses a restarting command other than "
9337 "B<PTRACE_SYSCALL>, syscall-exit-stop is not generated."
9338 msgstr ""
9339
9340 #. type: Plain text
9341 #: build/C/man2/ptrace.2:1381
9342 msgid ""
9343 "B<PTRACE_GETSIGINFO> on syscall-stops returns B<SIGTRAP> in I<si_signo>, "
9344 "with I<si_code> set to B<SIGTRAP> or I<(SIGTRAP|0x80)>."
9345 msgstr ""
9346
9347 #. type: SS
9348 #: build/C/man2/ptrace.2:1381
9349 #, no-wrap
9350 msgid "PTRACE_SINGLESTEP, PTRACE_SYSEMU, PTRACE_SYSEMU_SINGLESTEP stops"
9351 msgstr ""
9352
9353 #
9354 #.  FIXME
9355 #.  document stops occurring with PTRACE_SINGLESTEP, PTRACE_SYSEMU,
9356 #.  PTRACE_SYSEMU_SINGLESTEP
9357 #. type: Plain text
9358 #: build/C/man2/ptrace.2:1387
9359 msgid "[Details of these kinds of stops are yet to be documented.]"
9360 msgstr ""
9361
9362 #. type: SS
9363 #: build/C/man2/ptrace.2:1387
9364 #, no-wrap
9365 msgid "Informational and restarting ptrace commands"
9366 msgstr ""
9367
9368 #. type: Plain text
9369 #: build/C/man2/ptrace.2:1397
9370 msgid ""
9371 "Most ptrace commands (all except B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, "
9372 "B<PTRACE_TRACEME>, B<PTRACE_INTERRUPT>, and B<PTRACE_KILL>)  require the "
9373 "tracee to be in a ptrace-stop, otherwise they fail with B<ESRCH>."
9374 msgstr ""
9375
9376 #. type: Plain text
9377 #: build/C/man2/ptrace.2:1402
9378 msgid ""
9379 "When the tracee is in ptrace-stop, the tracer can read and write data to the "
9380 "tracee using informational commands.  These commands leave the tracee in "
9381 "ptrace-stopped state:"
9382 msgstr ""
9383
9384 #. type: Plain text
9385 #: build/C/man2/ptrace.2:1414
9386 #, no-wrap
9387 msgid ""
9388 "    ptrace(PTRACE_PEEKTEXT/PEEKDATA/PEEKUSER, pid, addr, 0);\n"
9389 "    ptrace(PTRACE_POKETEXT/POKEDATA/POKEUSER, pid, addr, long_val);\n"
9390 "    ptrace(PTRACE_GETREGS/GETFPREGS, pid, 0, &struct);\n"
9391 "    ptrace(PTRACE_SETREGS/SETFPREGS, pid, 0, &struct);\n"
9392 "    ptrace(PTRACE_GETREGSET, pid, NT_foo, &iov);\n"
9393 "    ptrace(PTRACE_SETREGSET, pid, NT_foo, &iov);\n"
9394 "    ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo);\n"
9395 "    ptrace(PTRACE_SETSIGINFO, pid, 0, &siginfo);\n"
9396 "    ptrace(PTRACE_GETEVENTMSG, pid, 0, &long_var);\n"
9397 "    ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
9398 msgstr ""
9399
9400 #. type: Plain text
9401 #: build/C/man2/ptrace.2:1426
9402 msgid ""
9403 "Note that some errors are not reported.  For example, setting signal "
9404 "information (I<siginfo>)  may have no effect in some ptrace-stops, yet the "
9405 "call may succeed (return 0 and not set I<errno>); querying "
9406 "B<PTRACE_GETEVENTMSG> may succeed and return some random value if current "
9407 "ptrace-stop is not documented as returning a meaningful event message."
9408 msgstr ""
9409
9410 #. type: Plain text
9411 #: build/C/man2/ptrace.2:1428
9412 msgid "The call"
9413 msgstr ""
9414
9415 #. type: Plain text
9416 #: build/C/man2/ptrace.2:1430
9417 #, no-wrap
9418 msgid "    ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
9419 msgstr ""
9420
9421 #. type: Plain text
9422 #: build/C/man2/ptrace.2:1439
9423 msgid ""
9424 "affects one tracee.  The tracee's current flags are replaced.  Flags are "
9425 "inherited by new tracees created and \"auto-attached\" via active "
9426 "B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, or B<PTRACE_O_TRACECLONE> "
9427 "options."
9428 msgstr ""
9429
9430 #. type: Plain text
9431 #: build/C/man2/ptrace.2:1442
9432 msgid ""
9433 "Another group of commands makes the ptrace-stopped tracee run.  They have "
9434 "the form:"
9435 msgstr ""
9436
9437 #. type: Plain text
9438 #: build/C/man2/ptrace.2:1444
9439 #, no-wrap
9440 msgid "    ptrace(cmd, pid, 0, sig);\n"
9441 msgstr ""
9442
9443 #. type: Plain text
9444 #: build/C/man2/ptrace.2:1465
9445 msgid ""
9446 "where I<cmd> is B<PTRACE_CONT>, B<PTRACE_LISTEN>, B<PTRACE_DETACH>, "
9447 "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>, B<PTRACE_SYSEMU>, or "
9448 "B<PTRACE_SYSEMU_SINGLESTEP>.  If the tracee is in signal-delivery-stop, "
9449 "I<sig> is the signal to be injected (if it is nonzero).  Otherwise, I<sig> "
9450 "may be ignored.  (When restarting a tracee from a ptrace-stop other than "
9451 "signal-delivery-stop, recommended practice is to always pass 0 in I<sig>.)"
9452 msgstr ""
9453
9454 #. type: SS
9455 #: build/C/man2/ptrace.2:1465
9456 #, no-wrap
9457 msgid "Attaching and detaching"
9458 msgstr ""
9459
9460 #. type: Plain text
9461 #: build/C/man2/ptrace.2:1467
9462 msgid "A thread can be attached to the tracer using the call"
9463 msgstr ""
9464
9465 #. type: Plain text
9466 #: build/C/man2/ptrace.2:1469
9467 #, no-wrap
9468 msgid "    ptrace(PTRACE_ATTACH, pid, 0, 0);\n"
9469 msgstr ""
9470
9471 #. type: Plain text
9472 #: build/C/man2/ptrace.2:1471 build/C/man2/ptrace.2:1968
9473 msgid "or"
9474 msgstr ""
9475
9476 #. type: Plain text
9477 #: build/C/man2/ptrace.2:1473
9478 #, no-wrap
9479 msgid "    ptrace(PTRACE_SEIZE, pid, 0, PTRACE_O_flags);\n"
9480 msgstr ""
9481
9482 #
9483 #.  FIXME: Describe how to attach to a thread which is already
9484 #.         group-stopped.
9485 #. type: Plain text
9486 #: build/C/man2/ptrace.2:1498
9487 msgid ""
9488 "B<PTRACE_ATTACH> sends B<SIGSTOP> to this thread.  If the tracer wants this "
9489 "B<SIGSTOP> to have no effect, it needs to suppress it.  Note that if other "
9490 "signals are concurrently sent to this thread during attach, the tracer may "
9491 "see the tracee enter signal-delivery-stop with other signal(s) first! The "
9492 "usual practice is to reinject these signals until B<SIGSTOP> is seen, then "
9493 "suppress B<SIGSTOP> injection.  The design bug here is that a ptrace attach "
9494 "and a concurrently delivered B<SIGSTOP> may race and the concurrent "
9495 "B<SIGSTOP> may be lost."
9496 msgstr ""
9497
9498 #. type: Plain text
9499 #: build/C/man2/ptrace.2:1505
9500 msgid ""
9501 "Since attaching sends B<SIGSTOP> and the tracer usually suppresses it, this "
9502 "may cause a stray B<EINTR> return from the currently executing system call "
9503 "in the tracee, as described in the \"Signal injection and suppression\" "
9504 "section."
9505 msgstr ""
9506
9507 #. type: Plain text
9508 #: build/C/man2/ptrace.2:1517
9509 msgid ""
9510 "Since Linux 3.4, B<PTRACE_SEIZE> can be used instead of B<PTRACE_ATTACH>.  "
9511 "B<PTRACE_SEIZE> does not stop the attached process.  If you need to stop it "
9512 "after attach (or at any other time) without sending it any signals, use "
9513 "B<PTRACE_INTERRUPT> command."
9514 msgstr ""
9515
9516 #. type: Plain text
9517 #: build/C/man2/ptrace.2:1519
9518 msgid "The request"
9519 msgstr ""
9520
9521 #. type: Plain text
9522 #: build/C/man2/ptrace.2:1521
9523 #, no-wrap
9524 msgid "    ptrace(PTRACE_TRACEME, 0, 0, 0);\n"
9525 msgstr ""
9526
9527 #. type: Plain text
9528 #: build/C/man2/ptrace.2:1527
9529 msgid ""
9530 "turns the calling thread into a tracee.  The thread continues to run "
9531 "(doesn't enter ptrace-stop).  A common practice is to follow the "
9532 "B<PTRACE_TRACEME> with"
9533 msgstr ""
9534
9535 #. type: Plain text
9536 #: build/C/man2/ptrace.2:1529
9537 #, no-wrap
9538 msgid "    raise(SIGSTOP);\n"
9539 msgstr ""
9540
9541 #. type: Plain text
9542 #: build/C/man2/ptrace.2:1532
9543 msgid ""
9544 "and allow the parent (which is our tracer now) to observe our signal-"
9545 "delivery-stop."
9546 msgstr ""
9547
9548 #. type: Plain text
9549 #: build/C/man2/ptrace.2:1556
9550 msgid ""
9551 "If the B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, or "
9552 "B<PTRACE_O_TRACECLONE> options are in effect, then children created by, "
9553 "respectively, B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> flag, "
9554 "B<fork>(2)  or B<clone>(2)  with the exit signal set to B<SIGCHLD>, and "
9555 "other kinds of B<clone>(2), are automatically attached to the same tracer "
9556 "which traced their parent.  B<SIGSTOP> is delivered to the children, causing "
9557 "them to enter signal-delivery-stop after they exit the system call which "
9558 "created them."
9559 msgstr ""
9560
9561 #. type: Plain text
9562 #: build/C/man2/ptrace.2:1558
9563 msgid "Detaching of the tracee is performed by:"
9564 msgstr ""
9565
9566 #. type: Plain text
9567 #: build/C/man2/ptrace.2:1560
9568 #, no-wrap
9569 msgid "    ptrace(PTRACE_DETACH, pid, 0, sig);\n"
9570 msgstr ""
9571
9572 #. type: Plain text
9573 #: build/C/man2/ptrace.2:1568
9574 msgid ""
9575 "B<PTRACE_DETACH> is a restarting operation; therefore it requires the tracee "
9576 "to be in ptrace-stop.  If the tracee is in signal-delivery-stop, a signal "
9577 "can be injected.  Otherwise, the I<sig> parameter may be silently ignored."
9578 msgstr ""
9579
9580 #.  FIXME: Describe how to detach from a group-stopped tracee so that it
9581 #.         doesn't run, but continues to wait for SIGCONT.
9582 #. type: Plain text
9583 #: build/C/man2/ptrace.2:1592
9584 msgid ""
9585 "If the tracee is running when the tracer wants to detach it, the usual "
9586 "solution is to send B<SIGSTOP> (using B<tgkill>(2), to make sure it goes to "
9587 "the correct thread), wait for the tracee to stop in signal-delivery-stop for "
9588 "B<SIGSTOP> and then detach it (suppressing B<SIGSTOP> injection).  A design "
9589 "bug is that this can race with concurrent B<SIGSTOP>s.  Another complication "
9590 "is that the tracee may enter other ptrace-stops and needs to be restarted "
9591 "and waited for again, until B<SIGSTOP> is seen.  Yet another complication is "
9592 "to be sure that the tracee is not already ptrace-stopped, because no signal "
9593 "delivery happens while it is\\(emnot even B<SIGSTOP>."
9594 msgstr ""
9595
9596 #. type: Plain text
9597 #: build/C/man2/ptrace.2:1600
9598 msgid ""
9599 "If the tracer dies, all tracees are automatically detached and restarted, "
9600 "unless they were in group-stop.  Handling of restart from group-stop is "
9601 "currently buggy, but the \"as planned\" behavior is to leave tracee stopped "
9602 "and waiting for B<SIGCONT>.  If the tracee is restarted from signal-delivery-"
9603 "stop, the pending signal is injected."
9604 msgstr ""
9605
9606 #. type: SS
9607 #: build/C/man2/ptrace.2:1600
9608 #, no-wrap
9609 msgid "execve(2) under ptrace"
9610 msgstr ""
9611
9612 #
9613 #.  clone(2) CLONE_THREAD says:
9614 #.      If  any  of the threads in a thread group performs an execve(2),
9615 #.      then all threads other than the thread group leader are terminated,
9616 #.      and the new program is executed in the thread group leader.
9617 #.  In kernel 3.1 sources, see fs/exec.c::de_thread()
9618 #. type: Plain text
9619 #: build/C/man2/ptrace.2:1619
9620 msgid ""
9621 "When one thread in a multithreaded process calls B<execve>(2), the kernel "
9622 "destroys all other threads in the process, and resets the thread ID of the "
9623 "execing thread to the thread group ID (process ID).  (Or, to put things "
9624 "another way, when a multithreaded process does an B<execve>(2), at "
9625 "completion of the call, it appears as though the B<execve>(2)  occurred in "
9626 "the thread group leader, regardless of which thread did the B<execve>(2).)  "
9627 "This resetting of the thread ID looks very confusing to tracers:"
9628 msgstr ""
9629
9630 #. type: Plain text
9631 #: build/C/man2/ptrace.2:1629
9632 msgid ""
9633 "All other threads stop in B<PTRACE_EVENT_EXIT> stop, if the "
9634 "B<PTRACE_O_TRACEEXIT> option was turned on.  Then all other threads except "
9635 "the thread group leader report death as if they exited via B<_exit>(2)  with "
9636 "exit code 0."
9637 msgstr ""
9638
9639 #. type: Plain text
9640 #: build/C/man2/ptrace.2:1637
9641 msgid ""
9642 "The execing tracee changes its thread ID while it is in the B<execve>(2).  "
9643 "(Remember, under ptrace, the \"pid\" returned from B<waitpid>(2), or fed "
9644 "into ptrace calls, is the tracee's thread ID.)  That is, the tracee's thread "
9645 "ID is reset to be the same as its process ID, which is the same as the "
9646 "thread group leader's thread ID."
9647 msgstr ""
9648
9649 #. type: Plain text
9650 #: build/C/man2/ptrace.2:1643
9651 msgid ""
9652 "Then a B<PTRACE_EVENT_EXEC> stop happens, if the B<PTRACE_O_TRACEEXEC> "
9653 "option was turned on."
9654 msgstr ""
9655
9656 #. type: Plain text
9657 #: build/C/man2/ptrace.2:1664
9658 msgid ""
9659 "If the thread group leader has reported its B<PTRACE_EVENT_EXIT> stop by "
9660 "this time, it appears to the tracer that the dead thread leader \"reappears "
9661 "from nowhere\".  (Note: the thread group leader does not report death via "
9662 "I<WIFEXITED(status)> until there is at least one other live thread.  This "
9663 "eliminates the possibility that the tracer will see it dying and then "
9664 "reappearing.)  If the thread group leader was still alive, for the tracer "
9665 "this may look as if thread group leader returns from a different system call "
9666 "than it entered, or even \"returned from a system call even though it was "
9667 "not in any system call\".  If the thread group leader was not traced (or was "
9668 "traced by a different tracer), then during B<execve>(2)  it will appear as "
9669 "if it has become a tracee of the tracer of the execing tracee."
9670 msgstr ""
9671
9672 #. type: Plain text
9673 #: build/C/man2/ptrace.2:1667
9674 msgid ""
9675 "All of the above effects are the artifacts of the thread ID change in the "
9676 "tracee."
9677 msgstr ""
9678
9679 #. type: Plain text
9680 #: build/C/man2/ptrace.2:1687
9681 msgid ""
9682 "The B<PTRACE_O_TRACEEXEC> option is the recommended tool for dealing with "
9683 "this situation.  First, it enables B<PTRACE_EVENT_EXEC> stop, which occurs "
9684 "before B<execve>(2)  returns.  In this stop, the tracer can use "
9685 "B<PTRACE_GETEVENTMSG> to retrieve the tracee's former thread ID.  (This "
9686 "feature was introduced in Linux 3.0).  Second, the B<PTRACE_O_TRACEEXEC> "
9687 "option disables legacy B<SIGTRAP> generation on B<execve>(2)."
9688 msgstr ""
9689
9690 #. type: Plain text
9691 #: build/C/man2/ptrace.2:1693
9692 msgid ""
9693 "When the tracer receives B<PTRACE_EVENT_EXEC> stop notification, it is "
9694 "guaranteed that except this tracee and the thread group leader, no other "
9695 "threads from the process are alive."
9696 msgstr ""
9697
9698 #. type: Plain text
9699 #: build/C/man2/ptrace.2:1701
9700 msgid ""
9701 "On receiving the B<PTRACE_EVENT_EXEC> stop notification, the tracer should "
9702 "clean up all its internal data structures describing the threads of this "
9703 "process, and retain only one data structure\\(emone which describes the "
9704 "single still running tracee, with"
9705 msgstr ""
9706
9707 #. type: Plain text
9708 #: build/C/man2/ptrace.2:1703
9709 #, no-wrap
9710 msgid "    thread ID == thread group ID == process ID.\n"
9711 msgstr ""
9712
9713 #. type: Plain text
9714 #: build/C/man2/ptrace.2:1707
9715 msgid "Example: two threads call B<execve>(2)  at the same time:"
9716 msgstr ""
9717
9718 #. type: Plain text
9719 #: build/C/man2/ptrace.2:1718
9720 #, no-wrap
9721 msgid ""
9722 "*** we get syscall-enter-stop in thread 1: **\n"
9723 "PID1 execve(\"/bin/foo\", \"foo\" E<lt>unfinished ...E<gt>\n"
9724 "*** we issue PTRACE_SYSCALL for thread 1 **\n"
9725 "*** we get syscall-enter-stop in thread 2: **\n"
9726 "PID2 execve(\"/bin/bar\", \"bar\" E<lt>unfinished ...E<gt>\n"
9727 "*** we issue PTRACE_SYSCALL for thread 2 **\n"
9728 "*** we get PTRACE_EVENT_EXEC for PID0, we issue PTRACE_SYSCALL **\n"
9729 "*** we get syscall-exit-stop for PID0: **\n"
9730 "PID0 E<lt>... execve resumedE<gt> )             = 0\n"
9731 msgstr ""
9732
9733 #. type: Plain text
9734 #: build/C/man2/ptrace.2:1741
9735 msgid ""
9736 "If the B<PTRACE_O_TRACEEXEC> option is I<not> in effect for the execing "
9737 "tracee, the kernel delivers an extra B<SIGTRAP> to the tracee after B<execve>"
9738 "(2)  returns.  This is an ordinary signal (similar to one which can be "
9739 "generated by I<kill -TRAP>), not a special kind of ptrace-stop.  Employing "
9740 "B<PTRACE_GETSIGINFO> for this signal returns I<si_code> set to 0 "
9741 "(I<SI_USER>).  This signal may be blocked by signal mask, and thus may be "
9742 "delivered (much) later."
9743 msgstr ""
9744
9745 #. type: Plain text
9746 #: build/C/man2/ptrace.2:1760
9747 msgid ""
9748 "Usually, the tracer (for example, B<strace>(1))  would not want to show this "
9749 "extra post-execve B<SIGTRAP> signal to the user, and would suppress its "
9750 "delivery to the tracee (if B<SIGTRAP> is set to B<SIG_DFL>, it is a killing "
9751 "signal).  However, determining I<which> B<SIGTRAP> to suppress is not easy.  "
9752 "Setting the B<PTRACE_O_TRACEEXEC> option and thus suppressing this extra "
9753 "B<SIGTRAP> is the recommended approach."
9754 msgstr ""
9755
9756 #. type: SS
9757 #: build/C/man2/ptrace.2:1760
9758 #, no-wrap
9759 msgid "Real parent"
9760 msgstr ""
9761
9762 #. type: Plain text
9763 #: build/C/man2/ptrace.2:1767
9764 msgid ""
9765 "The ptrace API (ab)uses the standard UNIX parent/child signaling over "
9766 "B<waitpid>(2).  This used to cause the real parent of the process to stop "
9767 "receiving several kinds of B<waitpid>(2)  notifications when the child "
9768 "process is traced by some other process."
9769 msgstr ""
9770
9771 #. type: Plain text
9772 #: build/C/man2/ptrace.2:1770
9773 msgid ""
9774 "Many of these bugs have been fixed, but as of Linux 2.6.38 several still "
9775 "exist; see BUGS below."
9776 msgstr ""
9777
9778 #. type: Plain text
9779 #: build/C/man2/ptrace.2:1772
9780 msgid "As of Linux 2.6.38, the following is believed to work correctly:"
9781 msgstr ""
9782
9783 #. type: Plain text
9784 #: build/C/man2/ptrace.2:1780
9785 msgid ""
9786 "exit/death by signal is reported first to the tracer, then, when the tracer "
9787 "consumes the B<waitpid>(2)  result, to the real parent (to the real parent "
9788 "only when the whole multithreaded process exits).  If the tracer and the "
9789 "real parent are the same process, the report is sent only once."
9790 msgstr ""
9791
9792 #. type: Plain text
9793 #: build/C/man2/ptrace.2:1791
9794 #, fuzzy
9795 #| msgid ""
9796 #| "On success, B<PTRACE_PEEK*> requests return the requested data, while "
9797 #| "other requests return zero.  On error, all requests return -1, and "
9798 #| "I<errno> is set appropriately.  Since the value returned by a successful "
9799 #| "B<PTRACE_PEEK*> request may be -1, the caller must check I<errno> after "
9800 #| "such requests to determine whether or not an error occurred."
9801 msgid ""
9802 "On success, B<PTRACE_PEEK*> requests return the requested data, while other "
9803 "requests return zero.  (On Linux, this is done in the libc wrapper around "
9804 "ptrace system call.  On the system call level, B<PTRACE_PEEK*> requests have "
9805 "a different API: they store the result at the address specified by I<data> "
9806 "parameter, and return value is the error flag.)"
9807 msgstr ""
9808 "成功すると、 B<PTRACE_PEEK*> の場合は要求したデータを返し、 それ以外の場合は "
9809 "0 を返す。 エラーの場合は -1 を返し、 I<errno> が適切に設定される。 "
9810 "B<PTRACE_PEEK*> が成功して返す値も -1 になることがあるため、 そのような要求"
9811 "の場合には、呼び出し元は I<errno> を調べ、エラーか発生したのかどうかを判断し"
9812 "なければならない。"
9813
9814 #. type: Plain text
9815 #: build/C/man2/ptrace.2:1801
9816 #, fuzzy
9817 #| msgid ""
9818 #| "On success, B<PTRACE_PEEK*> requests return the requested data, while "
9819 #| "other requests return zero.  On error, all requests return -1, and "
9820 #| "I<errno> is set appropriately.  Since the value returned by a successful "
9821 #| "B<PTRACE_PEEK*> request may be -1, the caller must check I<errno> after "
9822 #| "such requests to determine whether or not an error occurred."
9823 msgid ""
9824 "On error, all requests return -1, and I<errno> is set appropriately.  Since "
9825 "the value returned by a successful B<PTRACE_PEEK*> request may be -1, the "
9826 "caller must clear I<errno> before the call, and then check it afterward to "
9827 "determine whether or not an error occurred."
9828 msgstr ""
9829 "成功すると、 B<PTRACE_PEEK*> の場合は要求したデータを返し、 それ以外の場合は "
9830 "0 を返す。 エラーの場合は -1 を返し、 I<errno> が適切に設定される。 "
9831 "B<PTRACE_PEEK*> が成功して返す値も -1 になることがあるため、 そのような要求"
9832 "の場合には、呼び出し元は I<errno> を調べ、エラーか発生したのかどうかを判断し"
9833 "なければならない。"
9834
9835 #. type: Plain text
9836 #: build/C/man2/ptrace.2:1805
9837 msgid ""
9838 "(i386 only) There was an error with allocating or freeing a debug register."
9839 msgstr "(i386 のみ) デバッグレジスタの確保または解放でエラーが発生した。"
9840
9841 #. type: Plain text
9842 #: build/C/man2/ptrace.2:1816
9843 #, fuzzy
9844 #| msgid ""
9845 #| "There was an attempt to read from or write to an invalid area in the "
9846 #| "parent's or child's memory, probably because the area wasn't mapped or "
9847 #| "accessible.  Unfortunately, under Linux, different variations of this "
9848 #| "fault will return B<EIO> or B<EFAULT> more or less arbitrarily."
9849 msgid ""
9850 "There was an attempt to read from or write to an invalid area in the "
9851 "tracer's or the tracee's memory, probably because the area wasn't mapped or "
9852 "accessible.  Unfortunately, under Linux, different variations of this fault "
9853 "will return B<EIO> or B<EFAULT> more or less arbitrarily."
9854 msgstr ""
9855 "親プロセスまたは子プロセスのメモリの不正な領域に読み書きしようとした。 おそら"
9856 "くその領域がマッピングされていないか、 その領域へのアクセスが許されていないか"
9857 "である。 不運なことに、Linux ではこのようなエラーの場合、多かれ少なかれ 恣意"
9858 "的に B<EIO> を返したり B<EFAULT> を返したりすることがある。"
9859
9860 #. type: Plain text
9861 #: build/C/man2/ptrace.2:1819
9862 msgid "An attempt was made to set an invalid option."
9863 msgstr "不正なオプションを設定しようとした。"
9864
9865 #. type: Plain text
9866 #: build/C/man2/ptrace.2:1826
9867 #, fuzzy
9868 #| msgid ""
9869 #| "I<request> is invalid, or an attempt was made to read from or write to an "
9870 #| "invalid area in the parent's or child's memory, or there was a word-"
9871 #| "alignment violation, or an invalid signal was specified during a restart "
9872 #| "request."
9873 msgid ""
9874 "I<request> is invalid, or an attempt was made to read from or write to an "
9875 "invalid area in the tracer's or the tracee's memory, or there was a word-"
9876 "alignment violation, or an invalid signal was specified during a restart "
9877 "request."
9878 msgstr ""
9879 "I<request> が不正である。 または、親プロセスまたは子プロセスのメモリの 不正な"
9880 "領域に読み書きしようとした。 または、ワード境界違反があった。 または、実行再"
9881 "開の要求で不正なシグナルを指定した。"
9882
9883 #. type: Plain text
9884 #: build/C/man2/ptrace.2:1839
9885 #, fuzzy
9886 #| msgid ""
9887 #| "The specified process cannot be traced.  This could be because the parent "
9888 #| "has insufficient privileges (the required capability is "
9889 #| "B<CAP_SYS_PTRACE>); unprivileged processes cannot trace processes that "
9890 #| "they cannot send signals to or those running set-user-ID/set-group-ID "
9891 #| "programs, for obvious reasons.  Alternatively, the process may already be "
9892 #| "being traced, or be B<init>(8)  (PID 1)."
9893 msgid ""
9894 "The specified process cannot be traced.  This could be because the tracer "
9895 "has insufficient privileges (the required capability is B<CAP_SYS_PTRACE>); "
9896 "unprivileged processes cannot trace processes that they cannot send signals "
9897 "to or those running set-user-ID/set-group-ID programs, for obvious reasons.  "
9898 "Alternatively, the process may already be being traced, or (on kernels "
9899 "before 2.6.26) be B<init>(8)  (PID 1)."
9900 msgstr ""
9901 "指定したプロセスをトレースすることができない。これは親プロセスが 必要な権限 "
9902 "(必要なケーパビリティは B<CAP_SYS_PTRACE>)  を持っていないことが原因の場合が"
9903 "ある。 分かりやすい理由を挙げるなら、 非特権プロセスはシグナルを送ることがで"
9904 "きないプロセスをトレースできないし、 set-user-ID/set-group-ID プログラムを実"
9905 "行しているプロセスはトレースできない。 または、プロセスはすでにトレース中であ"
9906 "る、 または B<init>(8)  プロセス (PID が 1) である。"
9907
9908 #. type: Plain text
9909 #: build/C/man2/ptrace.2:1844
9910 #, fuzzy
9911 #| msgid ""
9912 #| "The specified process does not exist, or is not currently being traced by "
9913 #| "the caller, or is not stopped (for requests that require that)."
9914 msgid ""
9915 "The specified process does not exist, or is not currently being traced by "
9916 "the caller, or is not stopped (for requests that require a stopped tracee)."
9917 msgstr ""
9918 "指定したプロセスが存在しない。 または、指定したプロセスは呼び出したプロセス"
9919 "が 現在トレース中の子プロセスではない。 または、指定したプロセスが停止してい"
9920 "ない (停止していることが必要な要求の場合)。"
9921
9922 #. type: Plain text
9923 #: build/C/man2/ptrace.2:1846
9924 msgid "SVr4, 4.3BSD."
9925 msgstr "SVr4, 4.3BSD."
9926
9927 #. type: Plain text
9928 #: build/C/man2/ptrace.2:1861
9929 #, fuzzy
9930 #| msgid ""
9931 #| "Although arguments to B<ptrace>()  are interpreted according to the "
9932 #| "prototype given, glibc currently declares B<ptrace>()  as a variadic "
9933 #| "function with only the I<request> argument fixed.  This means that "
9934 #| "unneeded trailing arguments may be omitted, though doing so makes use of "
9935 #| "undocumented B<gcc>(1)  behavior."
9936 msgid ""
9937 "Although arguments to B<ptrace>()  are interpreted according to the "
9938 "prototype given, glibc currently declares B<ptrace>()  as a variadic "
9939 "function with only the I<request> argument fixed.  It is recommended to "
9940 "always supply four arguments, even if the requested operation does not use "
9941 "them, setting unused/ignored arguments to I<0L> or I<(void\\ *)\\ 0>."
9942 msgstr ""
9943 "B<ptrace>()  の引き数は上のようなプロトタイプに基づいて解釈されるが、 glibc "
9944 "では、現在のところ B<ptrace>()  は I<request> 引き数だけが固定の可変長引き数"
9945 "関数として 宣言されている。 これは必要なければ残りの引き数は省略可能であるこ"
9946 "とを意味するが、 それは B<gcc>(1)  の明文化されていない動作を利用していること"
9947 "になる。"
9948
9949 #.  See commit 00cd5c37afd5f431ac186dd131705048c0a11fdb
9950 #. type: Plain text
9951 #: build/C/man2/ptrace.2:1866
9952 #, fuzzy
9953 #| msgid "B<init>(8), the process with PID 1, may not be traced."
9954 msgid ""
9955 "In Linux kernels before 2.6.26, B<init>(8), the process with PID 1, may not "
9956 "be traced."
9957 msgstr "B<init>(8)  すなわち PID が 1 のプロセスはトレースすることができない。"
9958
9959 #.  See http://lkml.org/lkml/2008/5/8/375
9960 #. type: Plain text
9961 #: build/C/man2/ptrace.2:1873
9962 #, fuzzy
9963 #| msgid ""
9964 #| "The layout of the contents of memory and the USER area are quite OS- and "
9965 #| "architecture-specific.  The offset supplied, and the data returned, might "
9966 #| "not entirely match with the definition of I<struct user>."
9967 msgid ""
9968 "The layout of the contents of memory and the USER area are quite operating-"
9969 "system- and architecture-specific.  The offset supplied, and the data "
9970 "returned, might not entirely match with the definition of I<struct user>."
9971 msgstr ""
9972 "メモリや USER 領域の内容や配置は OS ごと、アーキテクチャごとに 非常に依存す"
9973 "る。 オフセットが指定された場合、返されるデータは I<struct user> の定義と完全"
9974 "に一致しないこともありえる。"
9975
9976 #. type: Plain text
9977 #: build/C/man2/ptrace.2:1876
9978 #, fuzzy
9979 #| msgid ""
9980 #| "The size of a \"word\" is determined by the OS variant (e.g., for 32-bit "
9981 #| "Linux it is 32 bits, etc.)."
9982 msgid ""
9983 "The size of a \"word\" is determined by the operating-system variant (e.g., "
9984 "for 32-bit Linux it is 32 bits)."
9985 msgstr ""
9986 "「ワード (word) 」の大きさは OS によって決まる。 (例えば、32 ビットの Linux "
9987 "では 32 ビットである、など。)"
9988
9989 #. type: Plain text
9990 #: build/C/man2/ptrace.2:1884
9991 #, fuzzy
9992 #| msgid ""
9993 #| "This page documents the way the B<ptrace>()  call works currently in "
9994 #| "Linux.  Its behavior differs noticeably on other flavors of UNIX.  In any "
9995 #| "case, use of B<ptrace>()  is highly OS- and architecture-specific."
9996 msgid ""
9997 "This page documents the way the B<ptrace>()  call works currently in Linux.  "
9998 "Its behavior differs noticeably on other flavors of UNIX.  In any case, use "
9999 "of B<ptrace>()  is highly specific to the operating system and architecture."
10000 msgstr ""
10001 "このマニュアルは現在の Linux における B<ptrace>()  コールの動作について記述し"
10002 "ている。他の UNIX では その動作は著しく異なる。 いかなる場合も B<ptrace>()  "
10003 "を使うと OS やアーキテクチャに非常に依存したものになる。"
10004
10005 #. type: Plain text
10006 #: build/C/man2/ptrace.2:1895
10007 #, fuzzy
10008 #| msgid ""
10009 #| "On hosts with 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared with a "
10010 #| "different value than the one for 2.4.  This leads to applications "
10011 #| "compiled with such headers failing when run on 2.4 kernels.  This can be "
10012 #| "worked around by redefining B<PTRACE_SETOPTIONS> to "
10013 #| "B<PTRACE_OLDSETOPTIONS>, if that is defined."
10014 msgid ""
10015 "On hosts with 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared with a "
10016 "different value than the one for 2.4.  This leads to applications compiled "
10017 "with 2.6 kernel headers failing when run on 2.4 kernels.  This can be worked "
10018 "around by redefining B<PTRACE_SETOPTIONS> to B<PTRACE_OLDSETOPTIONS>, if "
10019 "that is defined."
10020 msgstr ""
10021 "カーネル 2.6 のヘッダがインストールされたホストでは、 B<PTRACE_SETOPTIONS> は"
10022 "カーネル 2.4 のヘッダとは異なる値で宣言される。 このため、カーネル 2.6 のヘッ"
10023 "ダでコンパイルされたアプリケーションは カーネル 2.4 では正しく動作しない。 こ"
10024 "の問題は、 B<PTRACE_SETOPTIONS> が定義されていた際は、 B<PTRACE_SETOPTIONS> "
10025 "を B<PTRACE_OLDSETOPTIONS> に定義し直すことで対処できる。"
10026
10027 #. type: Plain text
10028 #: build/C/man2/ptrace.2:1898
10029 msgid ""
10030 "Group-stop notifications are sent to the tracer, but not to real parent.  "
10031 "Last confirmed on 2.6.38.6."
10032 msgstr ""
10033
10034 #.  Note from Denys Vlasenko:
10035 #.      Here "exits" means any kind of death - _exit, exit_group,
10036 #.      signal death. Signal death and exit_group cases are trivial,
10037 #.      though: since signal death and exit_group kill all other threads
10038 #.      too, "until all other threads exit" thing happens rather soon
10039 #.      in these cases. Therefore, only _exit presents observably
10040 #.      puzzling behavior to ptrace users: thread leader _exit's,
10041 #.      but WIFEXITED isn't reported! We are trying to explain here
10042 #.      why it is so.
10043 #.   FIXME: ^^^ need to test/verify this scenario
10044 #. type: Plain text
10045 #: build/C/man2/ptrace.2:1929
10046 msgid ""
10047 "If a thread group leader is traced and exits by calling B<_exit>(2), a "
10048 "B<PTRACE_EVENT_EXIT> stop will happen for it (if requested), but the "
10049 "subsequent B<WIFEXITED> notification will not be delivered until all other "
10050 "threads exit.  As explained above, if one of other threads calls B<execve>"
10051 "(2), the death of the thread group leader will I<never> be reported.  If the "
10052 "execed thread is not traced by this tracer, the tracer will never know that "
10053 "B<execve>(2)  happened.  One possible workaround is to B<PTRACE_DETACH> the "
10054 "thread group leader instead of restarting it in this case.  Last confirmed "
10055 "on 2.6.38.6."
10056 msgstr ""
10057
10058 #. type: Plain text
10059 #: build/C/man2/ptrace.2:1939
10060 msgid ""
10061 "A B<SIGKILL> signal may still cause a B<PTRACE_EVENT_EXIT> stop before "
10062 "actual signal death.  This may be changed in the future; B<SIGKILL> is meant "
10063 "to always immediately kill tasks even under ptrace.  Last confirmed on "
10064 "2.6.38.6."
10065 msgstr ""
10066
10067 #. type: Plain text
10068 #: build/C/man2/ptrace.2:1957
10069 msgid ""
10070 "Some system calls return with B<EINTR> if a signal was sent to a tracee, but "
10071 "delivery was suppressed by the tracer.  (This is very typical operation: it "
10072 "is usually done by debuggers on every attach, in order to not introduce a "
10073 "bogus B<SIGSTOP>).  As of Linux 3.2.9, the following system calls are "
10074 "affected (this list is likely incomplete): B<epoll_wait>(2), and B<read>(2)  "
10075 "from an B<inotify>(7)  file descriptor.  The usual symptom of this bug is "
10076 "that when you attach to a quiescent process with the command"
10077 msgstr ""
10078
10079 #. type: Plain text
10080 #: build/C/man2/ptrace.2:1959
10081 #, no-wrap
10082 msgid "    strace -p E<lt>process-IDE<gt>\n"
10083 msgstr ""
10084
10085 #. type: Plain text
10086 #: build/C/man2/ptrace.2:1962
10087 msgid "then, instead of the usual and expected one-line output such as"
10088 msgstr ""
10089
10090 #. type: Plain text
10091 #: build/C/man2/ptrace.2:1965
10092 #, no-wrap
10093 msgid "    restart_syscall(E<lt>... resuming interrupted call ...E<gt>_\n"
10094 msgstr ""
10095
10096 #. type: Plain text
10097 #: build/C/man2/ptrace.2:1971
10098 #, no-wrap
10099 msgid "    select(6, [5], NULL, [5], NULL_\n"
10100 msgstr ""
10101
10102 #. type: Plain text
10103 #: build/C/man2/ptrace.2:1975
10104 msgid ""
10105 "('_' denotes the cursor position), you observe more than one line.  For "
10106 "example:"
10107 msgstr ""
10108
10109 #. type: Plain text
10110 #: build/C/man2/ptrace.2:1979
10111 #, no-wrap
10112 msgid ""
10113 "    clock_gettime(CLOCK_MONOTONIC, {15370, 690928118}) = 0\n"
10114 "    epoll_wait(4,_\n"
10115 msgstr ""
10116
10117 #. type: Plain text
10118 #: build/C/man2/ptrace.2:2000
10119 msgid ""
10120 "What is not visible here is that the process was blocked in B<epoll_wait>"
10121 "(2)  before B<strace>(1)  has attached to it.  Attaching caused B<epoll_wait>"
10122 "(2)  to return to user space with the error B<EINTR>.  In this particular "
10123 "case, the program reacted to B<EINTR> by checking the current time, and then "
10124 "executing B<epoll_wait>(2)  again.  (Programs which do not expect such "
10125 "\"stray\" B<EINTR> errors may behave in an unintended way upon an B<strace>"
10126 "(1)  attach.)"
10127 msgstr ""
10128
10129 #. type: Plain text
10130 #: build/C/man2/ptrace.2:2014
10131 msgid ""
10132 "B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2), B<gettid>"
10133 "(2), B<sigaction>(2), B<tgkill>(2), B<vfork>(2), B<waitpid>(2), B<exec>(3), "
10134 "B<capabilities>(7), B<signal>(7)"
10135 msgstr ""
10136 "B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2),\n"
10137 "B<gettid>(2), B<sigaction>(2), B<tgkill>(2), B<vfork>(2),\n"
10138 "B<waitpid>(2), B<exec>(3), B<capabilities>(7), B<signal>(7)"
10139
10140 #. type: TH
10141 #: build/C/man2/quotactl.2:27
10142 #, no-wrap
10143 msgid "QUOTACTL"
10144 msgstr "QUOTACTL"
10145
10146 #. type: TH
10147 #: build/C/man2/quotactl.2:27
10148 #, no-wrap
10149 msgid "2010-06-16"
10150 msgstr "2010-06-16"
10151
10152 #. type: Plain text
10153 #: build/C/man2/quotactl.2:30
10154 msgid "quotactl - manipulate disk quotas"
10155 msgstr "quotactl - ディスク quota を操作する"
10156
10157 #. type: Plain text
10158 #: build/C/man2/quotactl.2:34
10159 #, no-wrap
10160 msgid ""
10161 "B<#include E<lt>sys/quota.hE<gt>>\n"
10162 "B<#include E<lt>xfs/xqm.hE<gt>>\n"
10163 msgstr ""
10164 "B<#include E<lt>sys/quota.hE<gt>>\n"
10165 "B<#include E<lt>xfs/xqm.hE<gt>>\n"
10166
10167 #. type: Plain text
10168 #: build/C/man2/quotactl.2:37
10169 #, no-wrap
10170 msgid "B<int quotactl(int >I<cmd>B<, const char *>I<special>B<, int >I<id>B<, caddr_t >I<addr>B<);>\n"
10171 msgstr "B<int quotactl(int >I<cmd>B<, const char *>I<special>B<, int >I<id>B<, caddr_t >I<addr>B<);>\n"
10172
10173 #. type: Plain text
10174 #: build/C/man2/quotactl.2:49
10175 #, fuzzy
10176 #| msgid ""
10177 #| "The quota system defines for each user and/or group a soft limit and a "
10178 #| "hard limit bounding the amount of disk space that can be used on a given "
10179 #| "file system.  The hard limit cannot be crossed.  The soft limit can be "
10180 #| "crossed, but warnings will ensue.  Moreover, the user cannot be above the "
10181 #| "soft limit for more than one week (by default)  at a time: after this "
10182 #| "week the soft limit counts as hard limit."
10183 msgid ""
10184 "The quota system can be used to set per-user and per-group limits on the "
10185 "amount of disk space used on a filesystem.  For each user and/or group, a "
10186 "soft limit and a hard limit can be set for each filesystem.  The hard limit "
10187 "can't be exceeded.  The soft limit can be exceeded, but warnings will "
10188 "ensue.  Moreover, the user can't exceed the soft limit for more than one "
10189 "week (by default) at a time; after this time, the soft limit counts as a "
10190 "hard limit."
10191 msgstr ""
10192 "quota システムは、各々のユーザ及び/またはグループに対して、 ソフト・リミット"
10193 "及びハード・リミットを定める。これはあるファイル・システムで 使用する事が出来"
10194 "るディスク容量を制限する。 ハード・リミットは超過することは出来ない。 ソフ"
10195 "ト・リミットは超過する事が出来るが、警告が発せられる。 更に、(デフォルトで"
10196 "は) 一週間以上ソフト・リミットを超過したままに しておく事はできない: 一週間経"
10197 "過した後はハード・リミットを超過したと みなされる。"
10198
10199 #. type: Plain text
10200 #: build/C/man2/quotactl.2:74
10201 #, fuzzy
10202 #| msgid ""
10203 #| "The B<quotactl>()  system call manipulates these quota.  Its first "
10204 #| "argument is of the form B<QCMD(>I<subcmd>B<,>I<type>B<)> where I<type> is "
10205 #| "either B<USRQUOTA> or B<GRPQUOTA> (for user quota and group quota, "
10206 #| "respectively), and I<subcmd> is described below."
10207 msgid ""
10208 "The B<quotactl>()  call manipulates disk quotas.  The I<cmd> argument "
10209 "indicates a command to be applied to the user or group ID specified in "
10210 "I<id>.  To initialize the I<cmd> argument, use the I<QCMD(subcmd, type)> "
10211 "macro.  The I<type> value is either B<USRQUOTA>, for user quotas, or "
10212 "B<GRPQUOTA>, for group quotas.  The I<subcmd> value is described below."
10213 msgstr ""
10214 "B<quotactl>()  システムコールはこれらの quota に対する操作を行なう。 最初の引"
10215 "き数は B<QCMD(>I<subcmd>B<,>I<type>B<)> という形式である。 I<type> には、ユー"
10216 "ザー quota については B<USRQUOTA> を、グループ quota については B<GRPQUOTA> "
10217 "を指定する。 I<subcmd> は以下で説明する。"
10218
10219 #. type: Plain text
10220 #: build/C/man2/quotactl.2:79
10221 msgid ""
10222 "The I<special> argument is a pointer to a null-terminated string containing "
10223 "the pathname of the (mounted) block special device for the filesystem being "
10224 "manipulated."
10225 msgstr ""
10226
10227 #. type: Plain text
10228 #: build/C/man2/quotactl.2:87
10229 msgid ""
10230 "The I<addr> argument is the address of an optional, command-specific, data "
10231 "structure that is copied in or out of the system.  The interpretation of "
10232 "I<addr> is given with each command below."
10233 msgstr ""
10234
10235 #. type: Plain text
10236 #: build/C/man2/quotactl.2:91
10237 msgid "The I<subcmd> value is one of the following:"
10238 msgstr "I<subcmd> の値は以下のいずれかである"
10239
10240 #. type: TP
10241 #: build/C/man2/quotactl.2:91
10242 #, no-wrap
10243 msgid "B<Q_QUOTAON>"
10244 msgstr "B<Q_QUOTAON>"
10245
10246 #. type: Plain text
10247 #: build/C/man2/quotactl.2:98
10248 msgid ""
10249 "Turn on quotas for a filesystem.  The I<id> argument is the identification "
10250 "number of the quota format to be used.  Currently, there are three supported "
10251 "quota formats:"
10252 msgstr ""
10253
10254 #. type: TP
10255 #: build/C/man2/quotactl.2:99
10256 #, no-wrap
10257 msgid "B<QFMT_VFS_OLD>"
10258 msgstr ""
10259
10260 #. type: Plain text
10261 #: build/C/man2/quotactl.2:102
10262 msgid "The original quota format."
10263 msgstr ""
10264
10265 #. type: TP
10266 #: build/C/man2/quotactl.2:102
10267 #, no-wrap
10268 msgid "B<QFMT_VFS_V0>"
10269 msgstr ""
10270
10271 #. type: Plain text
10272 #: build/C/man2/quotactl.2:106
10273 msgid ""
10274 "The standard VFS v0 quota format, which can handle 32-bit UIDs and GIDs and "
10275 "quota limits up to 2^42 bytes and 2^32 inodes."
10276 msgstr ""
10277
10278 #. type: TP
10279 #: build/C/man2/quotactl.2:106
10280 #, no-wrap
10281 msgid "B<QFMT_VFS_V1>"
10282 msgstr ""
10283
10284 #. type: Plain text
10285 #: build/C/man2/quotactl.2:110
10286 msgid ""
10287 "A quota format that can handle 32-bit UIDs and GIDs and quota limits of 2^64 "
10288 "bytes and 2^64 inodes."
10289 msgstr ""
10290
10291 #. type: Plain text
10292 #: build/C/man2/quotactl.2:121
10293 msgid ""
10294 "The I<addr> argument points to the pathname of a file containing the quotas "
10295 "for the filesystem.  The quota file must exist; it is normally created with "
10296 "the B<quotacheck>(8)  program.  This operation requires privilege "
10297 "(B<CAP_SYS_ADMIN>)."
10298 msgstr ""
10299
10300 #. type: TP
10301 #: build/C/man2/quotactl.2:121
10302 #, no-wrap
10303 msgid "B<Q_QUOTAOFF>"
10304 msgstr "B<Q_QUOTAOFF>"
10305
10306 #. type: Plain text
10307 #: build/C/man2/quotactl.2:131
10308 msgid ""
10309 "Turn off quotas for a filesystem.  The I<addr> and I<id> arguments are "
10310 "ignored.  This operation requires privilege (B<CAP_SYS_ADMIN>)."
10311 msgstr ""
10312
10313 #. type: TP
10314 #: build/C/man2/quotactl.2:131
10315 #, no-wrap
10316 msgid "B<Q_GETQUOTA>"
10317 msgstr "B<Q_GETQUOTA>"
10318
10319 #. type: Plain text
10320 #: build/C/man2/quotactl.2:142
10321 #, fuzzy
10322 #| msgid ""
10323 #| "Get limits and current usage of disk space.  The I<addr> argument is a "
10324 #| "pointer to a dqblk structure (defined in I<E<lt>sys/quota.hE<gt>>)."
10325 msgid ""
10326 "Get disk quota limits and current usage for user or group I<id>.  The "
10327 "I<addr> argument is a pointer to a I<dqblk> structure defined in I<E<lt>sys/"
10328 "quota.hE<gt>> as follows:"
10329 msgstr ""
10330 "ディスク使用量の制限値と現在の使用量を得る。 I<addr> 引き数は (I<E<lt>sys/"
10331 "quota.hE<gt>> で定義された) dqblk 構造体を指すポインタである。"
10332
10333 #. type: Plain text
10334 #: build/C/man2/quotactl.2:147 build/C/man2/quotactl.2:234
10335 #, no-wrap
10336 msgid ""
10337 "/* uint64_t is an unsigned 64-bit integer;\n"
10338 "   uint32_t is an unsigned 32-bit integer */\n"
10339 msgstr ""
10340
10341 #. type: Plain text
10342 #: build/C/man2/quotactl.2:167
10343 #, no-wrap
10344 msgid ""
10345 "struct dqblk {          /* Definition since Linux 2.4.22 */\n"
10346 "    uint64_t dqb_bhardlimit;   /* absolute limit on disk\n"
10347 "                                  quota blocks alloc */\n"
10348 "    uint64_t dqb_bsoftlimit;   /* preferred limit on\n"
10349 "                                  disk quota blocks */\n"
10350 "    uint64_t dqb_curspace;     /* current quota block\n"
10351 "                                  count */\n"
10352 "    uint64_t dqb_ihardlimit;   /* maximum number of\n"
10353 "                                  allocated inodes */\n"
10354 "    uint64_t dqb_isoftlimit;   /* preferred inode limit */\n"
10355 "    uint64_t dqb_curinodes;    /* current number of\n"
10356 "                                  allocated inodes */\n"
10357 "    uint64_t dqb_btime;        /* time limit for excessive\n"
10358 "                                  disk use */\n"
10359 "    uint64_t dqb_itime;        /* time limit for excessive\n"
10360 "                                  files */\n"
10361 "    uint32_t dqb_valid;        /* bit mask of QIF_*\n"
10362 "                                  constants */\n"
10363 "};\n"
10364 msgstr ""
10365
10366 #. type: Plain text
10367 #: build/C/man2/quotactl.2:170
10368 #, no-wrap
10369 msgid ""
10370 "/* Flags in dqb_valid that indicate which fields in\n"
10371 "   dqblk structure are valid. */\n"
10372 msgstr ""
10373
10374 #. type: Plain text
10375 #: build/C/man2/quotactl.2:181
10376 #, no-wrap
10377 msgid ""
10378 "#define QIF_BLIMITS   1\n"
10379 "#define QIF_SPACE     2\n"
10380 "#define QIF_ILIMITS   4\n"
10381 "#define QIF_INODES    8\n"
10382 "#define QIF_BTIME     16\n"
10383 "#define QIF_ITIME     32\n"
10384 "#define QIF_LIMITS    (QIF_BLIMITS | QIF_ILIMITS)\n"
10385 "#define QIF_USAGE     (QIF_SPACE | QIF_INODES)\n"
10386 "#define QIF_TIMES     (QIF_BTIME | QIF_ITIME)\n"
10387 "#define QIF_ALL       (QIF_LIMITS | QIF_USAGE | QIF_TIMES)\n"
10388 msgstr ""
10389
10390 #. type: Plain text
10391 #: build/C/man2/quotactl.2:198
10392 msgid ""
10393 "The I<dqb_valid> field is a bit mask that is set to indicate the entries in "
10394 "the I<dqblk> structure that are valid.  Currently, the kernel fills in all "
10395 "entries of the I<dqblk> structure and marks them as valid in the "
10396 "I<dqb_valid> field.  Unprivileged users may retrieve only their own quotas; "
10397 "a privileged user (B<CAP_SYS_ADMIN>)  can retrieve the quotas of any user."
10398 msgstr ""
10399
10400 #. type: TP
10401 #: build/C/man2/quotactl.2:198
10402 #, no-wrap
10403 msgid "B<Q_SETQUOTA>"
10404 msgstr "B<Q_SETQUOTA>"
10405
10406 #. type: Plain text
10407 #: build/C/man2/quotactl.2:218
10408 msgid ""
10409 "Set quota information for user or group I<id>, using the information "
10410 "supplied in the I<dqblk> structure pointed to by I<addr>.  The I<dqb_valid> "
10411 "field of the I<dqblk> structure indicates which entries in the structure "
10412 "have been set by the caller.  This operation supersedes the B<Q_SETQLIM> and "
10413 "B<Q_SETUSE> operations in the previous quota interfaces.  This operation "
10414 "requires privilege (B<CAP_SYS_ADMIN>)."
10415 msgstr ""
10416
10417 #. type: TP
10418 #: build/C/man2/quotactl.2:218
10419 #, no-wrap
10420 msgid "B<Q_GETINFO>"
10421 msgstr "B<Q_GETINFO>"
10422
10423 #. type: Plain text
10424 #: build/C/man2/quotactl.2:229
10425 #, fuzzy
10426 #| msgid ""
10427 #| "Get limits and current usage of disk space.  The I<addr> argument is a "
10428 #| "pointer to a dqblk structure (defined in I<E<lt>sys/quota.hE<gt>>)."
10429 msgid ""
10430 "Get information (like grace times) about quotafile.  The I<addr> argument "
10431 "should be a pointer to a I<dqinfo> structure.  This structure is defined in "
10432 "I<E<lt>sys/quota.hE<gt>> as follows:"
10433 msgstr ""
10434 "ディスク使用量の制限値と現在の使用量を得る。 I<addr> 引き数は (I<E<lt>sys/"
10435 "quota.hE<gt>> で定義された) dqblk 構造体を指すポインタである。"
10436
10437 #. type: Plain text
10438 #: build/C/man2/quotactl.2:238
10439 #, no-wrap
10440 msgid ""
10441 "struct dqinfo {         /* Defined since kernel 2.4.22 */\n"
10442 "    uint64_t dqi_bgrace;    /* Time before block soft limit\n"
10443 "                               becomes hard limit */\n"
10444 msgstr ""
10445
10446 #. type: Plain text
10447 #: build/C/man2/quotactl.2:245
10448 #, no-wrap
10449 msgid ""
10450 "    uint64_t dqi_igrace;    /* Time before inode soft limit\n"
10451 "                               becomes hard limit */\n"
10452 "    uint32_t dqi_flags;     /* Flags for quotafile\n"
10453 "                               (DQF_*) */\n"
10454 "    uint32_t dqi_valid;\n"
10455 "};\n"
10456 msgstr ""
10457
10458 #. type: Plain text
10459 #: build/C/man2/quotactl.2:247
10460 #, no-wrap
10461 msgid "/* Bits for dqi_flags */\n"
10462 msgstr ""
10463
10464 #. type: Plain text
10465 #: build/C/man2/quotactl.2:249
10466 #, no-wrap
10467 msgid "/* Quota format QFMT_VFS_OLD */\n"
10468 msgstr ""
10469
10470 #. type: Plain text
10471 #: build/C/man2/quotactl.2:251
10472 #, no-wrap
10473 msgid "#define V1_DQF_RSQUASH\t1   /* Root squash enabled */\n"
10474 msgstr ""
10475
10476 #. type: Plain text
10477 #: build/C/man2/quotactl.2:253
10478 #, no-wrap
10479 msgid "/* Other quota formats have no dqi_flags bits defined */\n"
10480 msgstr ""
10481
10482 #. type: Plain text
10483 #: build/C/man2/quotactl.2:256
10484 #, no-wrap
10485 msgid ""
10486 "/* Flags in dqi_valid that indicate which fields in\n"
10487 "   dqinfo structure are valid. */\n"
10488 msgstr ""
10489
10490 #. type: Plain text
10491 #: build/C/man2/quotactl.2:261
10492 #, no-wrap
10493 msgid ""
10494 "# define IIF_BGRACE\t1\n"
10495 "# define IIF_IGRACE\t2\n"
10496 "# define IIF_FLAGS\t4\n"
10497 "# define IIF_ALL\t(IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)\n"
10498 msgstr ""
10499
10500 #. type: Plain text
10501 #: build/C/man2/quotactl.2:277
10502 msgid ""
10503 "The I<dqi_valid> field in the I<dqinfo> structure indicates the entries in "
10504 "the structure that are valid.  Currently, the kernel fills in all entries of "
10505 "the I<dqinfo> structure and marks them all as valid in the I<dqi_valid> "
10506 "field.  The I<id> argument is ignored."
10507 msgstr ""
10508
10509 #. type: TP
10510 #: build/C/man2/quotactl.2:277
10511 #, no-wrap
10512 msgid "B<Q_SETINFO>"
10513 msgstr "B<Q_SETINFO>"
10514
10515 #. type: Plain text
10516 #: build/C/man2/quotactl.2:301
10517 msgid ""
10518 "Set information about quotafile.  The I<addr> argument should be a pointer "
10519 "to a I<dqinfo> structure.  The I<dqi_valid> field of the I<dqinfo> structure "
10520 "indicates the entries in the structure that have been set by the caller.  "
10521 "This operation supersedes the B<Q_SETGRACE> and B<Q_SETFLAGS> operations in "
10522 "the previous quota interfaces.  The I<id> argument is ignored.  This "
10523 "operation requires privilege (B<CAP_SYS_ADMIN>)."
10524 msgstr ""
10525
10526 #. type: TP
10527 #: build/C/man2/quotactl.2:301
10528 #, no-wrap
10529 msgid "B<Q_GETFMT>"
10530 msgstr "B<Q_GETFMT>"
10531
10532 #. type: Plain text
10533 #: build/C/man2/quotactl.2:308
10534 msgid ""
10535 "Get quota format used on the specified filesystem.  The I<addr> argument "
10536 "should be a pointer to a 4-byte buffer where the format number will be "
10537 "stored."
10538 msgstr ""
10539
10540 #. type: TP
10541 #: build/C/man2/quotactl.2:308
10542 #, no-wrap
10543 msgid "B<Q_SYNC>"
10544 msgstr "B<Q_SYNC>"
10545
10546 #. type: Plain text
10547 #: build/C/man2/quotactl.2:319
10548 msgid ""
10549 "Update the on-disk copy of quota usages for a filesystem.  If I<special> is "
10550 "NULL, then all filesystems with active quotas are sync'ed.  The I<addr> and "
10551 "I<id> arguments are ignored."
10552 msgstr ""
10553
10554 #. type: TP
10555 #: build/C/man2/quotactl.2:319
10556 #, no-wrap
10557 msgid "B<Q_GETSTATS>"
10558 msgstr "B<Q_GETSTATS>"
10559
10560 #.  Q_GETSTATS was removed in kernel 2.4.22.
10561 #. type: Plain text
10562 #: build/C/man2/quotactl.2:339
10563 msgid ""
10564 "Get statistics and other generic information about the quota subsystem.  The "
10565 "I<addr> argument should be a pointer to a I<dqstats> structure in which data "
10566 "should be stored.  This structure is defined in I<E<lt>sys/quota.hE<gt>.> "
10567 "The I<special> and I<id> arguments are ignored.  This operation is obsolete "
10568 "and not supported by recent kernels.  Files in I</proc/sys/fs/quota/> carry "
10569 "the information instead."
10570 msgstr ""
10571
10572 #. type: Plain text
10573 #: build/C/man2/quotactl.2:342
10574 msgid ""
10575 "For XFS filesystems making use of the XFS Quota Manager (XQM), the above "
10576 "commands are bypassed and the following commands are used:"
10577 msgstr ""
10578
10579 #. type: TP
10580 #: build/C/man2/quotactl.2:342
10581 #, no-wrap
10582 msgid "B<Q_XQUOTAON>"
10583 msgstr "B<Q_XQUOTAON>"
10584
10585 #. type: Plain text
10586 #: build/C/man2/quotactl.2:363
10587 msgid ""
10588 "Turn on quotas for an XFS filesystem.  XFS provides the ability to turn on/"
10589 "off quota limit enforcement with quota accounting.  Therefore, XFS expects "
10590 "I<addr> to be a pointer to an I<unsigned int> that contains either the flags "
10591 "B<XFS_QUOTA_UDQ_ACCT> and/or B<XFS_QUOTA_UDQ_ENFD> (for user quota), or "
10592 "B<XFS_QUOTA_GDQ_ACCT> and/or B<XFS_QUOTA_GDQ_ENFD> (for group quota), as "
10593 "defined in I<E<lt>xfs/xqm.hE<gt>>.  This operation requires privilege "
10594 "(B<CAP_SYS_ADMIN>)."
10595 msgstr ""
10596
10597 #. type: TP
10598 #: build/C/man2/quotactl.2:363
10599 #, no-wrap
10600 msgid "B<Q_XQUOTAOFF>"
10601 msgstr "B<Q_XQUOTAOFF>"
10602
10603 #. type: Plain text
10604 #: build/C/man2/quotactl.2:374
10605 msgid ""
10606 "Turn off quotas for an XFS filesystem.  As with B<Q_QUOTAON>, XFS "
10607 "filesystems expect a pointer to an I<unsigned int> that specifies whether "
10608 "quota accounting and/or limit enforcement need to be turned off.  This "
10609 "operation requires privilege (B<CAP_SYS_ADMIN>)."
10610 msgstr ""
10611
10612 #. type: TP
10613 #: build/C/man2/quotactl.2:374
10614 #, no-wrap
10615 msgid "B<Q_XGETQUOTA>"
10616 msgstr "B<Q_XGETQUOTA>"
10617
10618 #. type: Plain text
10619 #: build/C/man2/quotactl.2:388
10620 msgid ""
10621 "Get disk quota limits and current usage for user I<id>.  The I<addr> "
10622 "argument is a pointer to an I<fs_disk_quota> structure (defined in "
10623 "I<E<lt>xfs/xqm.hE<gt>>).  Unprivileged users may retrieve only their own "
10624 "quotas; a privileged user (B<CAP_SYS_ADMIN>)  may retrieve the quotas of any "
10625 "user."
10626 msgstr ""
10627
10628 #. type: TP
10629 #: build/C/man2/quotactl.2:388
10630 #, no-wrap
10631 msgid "B<Q_XSETQLIM>"
10632 msgstr "B<Q_XSETQLIM>"
10633
10634 #. type: Plain text
10635 #: build/C/man2/quotactl.2:400
10636 msgid ""
10637 "Set disk quota limits for user I<id>.  The I<addr> argument is a pointer to "
10638 "an I<fs_disk_quota> structure (defined in I<E<lt>xfs/xqm.hE<gt>>).  This "
10639 "operation requires privilege (B<CAP_SYS_ADMIN>)."
10640 msgstr ""
10641
10642 #. type: TP
10643 #: build/C/man2/quotactl.2:400
10644 #, no-wrap
10645 msgid "B<Q_XGETQSTAT>"
10646 msgstr "B<Q_XGETQSTAT>"
10647
10648 #. type: Plain text
10649 #: build/C/man2/quotactl.2:408
10650 msgid ""
10651 "Returns an I<fs_quota_stat> structure containing XFS filesystem specific "
10652 "quota information.  This is useful for finding out how much space is used to "
10653 "store quota information, and also to get quotaon/off status of a given local "
10654 "XFS filesystem."
10655 msgstr ""
10656
10657 #. type: TP
10658 #: build/C/man2/quotactl.2:408
10659 #, no-wrap
10660 msgid "B<Q_XQUOTARM>"
10661 msgstr "B<Q_XQUOTARM>"
10662
10663 #. type: Plain text
10664 #: build/C/man2/quotactl.2:412
10665 msgid ""
10666 "Free the disk space taken by disk quotas.  Quotas must have already been "
10667 "turned off."
10668 msgstr ""
10669
10670 #. type: Plain text
10671 #: build/C/man2/quotactl.2:419
10672 msgid ""
10673 "There is no command equivalent to B<Q_SYNC> for XFS since B<sync>(1)  writes "
10674 "quota information to disk (in addition to the other filesystem metadata that "
10675 "it writes out)."
10676 msgstr ""
10677
10678 #. type: Plain text
10679 #: build/C/man2/quotactl.2:427
10680 msgid ""
10681 "On success, B<quotactl>()  returns 0; on error -1 is returned, and I<errno> "
10682 "is set to indicate the error."
10683 msgstr ""
10684 "成功すると、 B<quotactl>()  は 0 を返す。\n"
10685 "エラーの場合、-1 を返し、 I<errno> をエラーを示す値に設定する。"
10686
10687 #. type: Plain text
10688 #: build/C/man2/quotactl.2:434
10689 msgid "I<addr> or I<special> is invalid."
10690 msgstr ""
10691
10692 #. type: Plain text
10693 #: build/C/man2/quotactl.2:440
10694 msgid "I<cmd> or I<type> is invalid."
10695 msgstr ""
10696
10697 #. type: TP
10698 #: build/C/man2/quotactl.2:440
10699 #, no-wrap
10700 msgid "B<ENOENT>"
10701 msgstr "B<ENOENT>"
10702
10703 #. type: Plain text
10704 #: build/C/man2/quotactl.2:447
10705 msgid "The file specified by I<special> or I<addr> does not exist."
10706 msgstr ""
10707
10708 #. type: Plain text
10709 #: build/C/man2/quotactl.2:452
10710 msgid "The kernel has not been compiled with the B<CONFIG_QUOTA> option."
10711 msgstr ""
10712
10713 #. type: TP
10714 #: build/C/man2/quotactl.2:452
10715 #, no-wrap
10716 msgid "B<ENOTBLK>"
10717 msgstr "B<ENOTBLK>"
10718
10719 #. type: Plain text
10720 #: build/C/man2/quotactl.2:456
10721 msgid "I<special> is not a block device."
10722 msgstr "I<special> がブロックデバイスではない。"
10723
10724 #. type: Plain text
10725 #: build/C/man2/quotactl.2:461
10726 msgid ""
10727 "The caller lacked the required privilege (B<CAP_SYS_ADMIN>)  for the "
10728 "specified operation."
10729 msgstr ""
10730
10731 #. type: Plain text
10732 #: build/C/man2/quotactl.2:465
10733 msgid ""
10734 "No disk quota is found for the indicated user.  Quotas have not been turned "
10735 "on for this filesystem."
10736 msgstr ""
10737
10738 #. type: Plain text
10739 #: build/C/man2/quotactl.2:474
10740 msgid "If I<cmd> is B<Q_SETQUOTA>, B<quotactl>()  may also set I<errno> to:"
10741 msgstr ""
10742
10743 #. type: Plain text
10744 #: build/C/man2/quotactl.2:477
10745 msgid "Specified limits are out of range allowed by quota format."
10746 msgstr ""
10747
10748 #. type: Plain text
10749 #: build/C/man2/quotactl.2:486
10750 msgid "If I<cmd> is B<Q_QUOTAON>, B<quotactl>()  may also set I<errno> to:"
10751 msgstr ""
10752
10753 #. type: Plain text
10754 #: build/C/man2/quotactl.2:495
10755 msgid ""
10756 "The quota file pointed to by I<addr> exists, but is not a regular file; or, "
10757 "the quota file pointed to by I<addr> exists, but is not on the filesystem "
10758 "pointed to by I<special>."
10759 msgstr ""
10760
10761 #. type: Plain text
10762 #: build/C/man2/quotactl.2:501
10763 msgid ""
10764 "B<Q_QUOTAON> attempted, but another B<Q_QUOTAON> had already been performed."
10765 msgstr ""
10766
10767 #. type: Plain text
10768 #: build/C/man2/quotactl.2:504
10769 msgid "The quota file is corrupted."
10770 msgstr "quota ファイルが壊れている。"
10771
10772 #. type: Plain text
10773 #: build/C/man2/quotactl.2:507
10774 msgid "Specified quota format was not found."
10775 msgstr ""
10776
10777 #. type: Plain text
10778 #: build/C/man2/quotactl.2:512
10779 msgid "B<quota>(1), B<getrlimit>(2), B<quotacheck>(8), B<quotaon>(8)"
10780 msgstr "B<quota>(1), B<getrlimit>(2), B<quotacheck>(8), B<quotaon>(8)"
10781
10782 #. type: TH
10783 #: build/C/man2/sendfile.2:19
10784 #, no-wrap
10785 msgid "SENDFILE"
10786 msgstr "SENDFILE"
10787
10788 #. type: TH
10789 #: build/C/man2/sendfile.2:19
10790 #, no-wrap
10791 msgid "2011-09-14"
10792 msgstr "2011-09-14"
10793
10794 #. type: Plain text
10795 #: build/C/man2/sendfile.2:22
10796 msgid "sendfile - transfer data between file descriptors"
10797 msgstr "sendfile - ファイル・ディスクリプタ間でデータを転送する"
10798
10799 #. type: Plain text
10800 #: build/C/man2/sendfile.2:24
10801 msgid "B<#include E<lt>sys/sendfile.hE<gt>>"
10802 msgstr "B<#include E<lt>sys/sendfile.hE<gt>>"
10803
10804 #.  The below is too ugly. Comments about glibc versions belong
10805 #.  in the notes, not in the header.
10806 #.  .B #include <features.h>
10807 #.  .br
10808 #.  .B #if (__GLIBC__==2 && __GLIBC_MINOR__>=1) || __GLIBC__>2
10809 #.  .br
10810 #.  .B #include <sys/sendfile.h>
10811 #.  .br
10812 #.  #else
10813 #.  .br
10814 #.  .B #include <sys/types.h>
10815 #.  .br
10816 #.  .B /* No system prototype before glibc 2.1. */
10817 #.  .br
10818 #.  .BI "ssize_t sendfile(int" " out_fd" ", int" " in_fd" ", off_t *" #.                        offset ", size_t" " count" )
10819 #.  .br
10820 #.  .B #endif
10821 #. type: Plain text
10822 #: build/C/man2/sendfile.2:47
10823 msgid ""
10824 "B<ssize_t sendfile(int>I< out_fd>B<, int>I< in_fd>B<, off_t *>I<offset>B<, "
10825 "size_t>I< count>B<);>"
10826 msgstr ""
10827 "B<ssize_t sendfile(int>I< out_fd>B<, int>I< in_fd>B<, off_t *>I<offset>B<, "
10828 "size_t>I< count>B<);>"
10829
10830 #. type: Plain text
10831 #: build/C/man2/sendfile.2:57
10832 msgid ""
10833 "B<sendfile>()  copies data between one file descriptor and another.  Because "
10834 "this copying is done within the kernel, B<sendfile>()  is more efficient "
10835 "than the combination of B<read>(2)  and B<write>(2), which would require "
10836 "transferring data to and from user space."
10837 msgstr ""
10838 "B<sendfile>()  は、あるファイル・ディスクリプタから別の ファイル・ディスクリ"
10839 "プタへのデータのコピーを行う。 このコピーはカーネル内で行われるので、 "
10840 "B<sendfile>()  は、 B<read>(2)  と B<write>(2)  を組み合わせるよりも効率がよ"
10841 "い。 B<read>(2)  や B<write>(2)  ではユーザ空間との間でデータの転送が必要とな"
10842 "るからである。"
10843
10844 #. type: Plain text
10845 #: build/C/man2/sendfile.2:62
10846 msgid ""
10847 "I<in_fd> should be a file descriptor opened for reading and I<out_fd> should "
10848 "be a descriptor opened for writing."
10849 msgstr ""
10850 "I<in_fd> は読み込みのためにオープンされたファイル・ディスクリプタ、 "
10851 "I<out_fd> は書き込みのためにオープンされたディスクリプタでなければならない。"
10852
10853 #. type: Plain text
10854 #: build/C/man2/sendfile.2:83
10855 msgid ""
10856 "If I<offset> is not NULL, then it points to a variable holding the file "
10857 "offset from which B<sendfile>()  will start reading data from I<in_fd>.  "
10858 "When B<sendfile>()  returns, this variable will be set to the offset of the "
10859 "byte following the last byte that was read.  If I<offset> is not NULL, then "
10860 "B<sendfile>()  does not modify the current file offset of I<in_fd>; "
10861 "otherwise the current file offset is adjusted to reflect the number of bytes "
10862 "read from I<in_fd>."
10863 msgstr ""
10864 "I<offset> が NULL でない場合、 I<offset> は B<sendfile>()  が I<in_fd> のどこ"
10865 "からデータを読み始めるかを示すファイル・オフセットを保持する変数への ポインタ"
10866 "である。 B<sendfile>()  は復帰する時、この変数に最後に読み込んだバイトの 次の"
10867 "バイトのオフセットを書き込む。 I<offset> が NULL でない場合、 B<sendfile>()  "
10868 "は I<in_fd> のファイル・オフセットの現在値を変更しない。 NULL の場合は、ファ"
10869 "イル・オフセットの現在値を I<in_fd> から読み込んだバイト数を反映した位置に調"
10870 "整する。"
10871
10872 #. type: Plain text
10873 #: build/C/man2/sendfile.2:90
10874 msgid ""
10875 "If I<offset> is NULL, then data will be read from I<in_fd> starting at the "
10876 "current file offset, and the file offset will be updated by the call."
10877 msgstr ""
10878 "I<offset> が NULL の場合、データは I<in_fd> の現在のファイル・オフセットから"
10879 "読み出され、 ファイル・オフセットはこの呼び出しで更新される。"
10880
10881 #. type: Plain text
10882 #: build/C/man2/sendfile.2:93
10883 msgid "I<count> is the number of bytes to copy between the file descriptors."
10884 msgstr "I<count> は、ファイル・ディスクリプタ間でコピーするバイト数である。"
10885
10886 #. type: Plain text
10887 #: build/C/man2/sendfile.2:100
10888 msgid ""
10889 "The I<in_fd> argument must correspond to a file which supports B<mmap>(2)-"
10890 "like operations (i.e., it cannot be a socket)."
10891 msgstr ""
10892 "I<in_fd> 引き数は B<mmap>(2) 風の操作ができるファイルを指していなければなら"
10893 "な\n"
10894 "い (ソケットを指定することはできない)。"
10895
10896 #. type: Plain text
10897 #: build/C/man2/sendfile.2:108
10898 msgid ""
10899 "In Linux kernels before 2.6.33, I<out_fd> must refer to a socket.  Since "
10900 "Linux 2.6.33 it can be any file.  If it is a regular file, then B<sendfile>"
10901 "()  changes the file offset appropriately."
10902 msgstr ""
10903 "2.6.33 より前の Linux カーネルでは I<out_fd> はソケットを参照していなければ"
10904 "な\n"
10905 "らない。Linux 2.6.33 以降では、任意のファイルを参照することができる。\n"
10906 "通常のファイルの場合には B<sendfile>() はファイルオフセットを適切に変更する。"
10907
10908 #. type: Plain text
10909 #: build/C/man2/sendfile.2:115
10910 msgid ""
10911 "If the transfer was successful, the number of bytes written to I<out_fd> is "
10912 "returned.  On error, -1 is returned, and I<errno> is set appropriately."
10913 msgstr ""
10914 "転送に成功した場合、 I<out_fd> に書き込まれたバイト数を返す。エラーの場"
10915 "合、-1 を返し、 I<errno> に適切な値を設定する。"
10916
10917 #. type: Plain text
10918 #: build/C/man2/sendfile.2:121
10919 msgid ""
10920 "Nonblocking I/O has been selected using B<O_NONBLOCK> and the write would "
10921 "block."
10922 msgstr ""
10923 "B<O_NONBLOCK> を用いて非ブロック I/O が選択されたが、書き込みがブロックされ"
10924 "た。"
10925
10926 #. type: TP
10927 #: build/C/man2/sendfile.2:121 build/C/man2/splice.2:143
10928 #: build/C/man2/vmsplice.2:123
10929 #, no-wrap
10930 msgid "B<EBADF>"
10931 msgstr "B<EBADF>"
10932
10933 #. type: Plain text
10934 #: build/C/man2/sendfile.2:125
10935 msgid ""
10936 "The input file was not opened for reading or the output file was not opened "
10937 "for writing."
10938 msgstr ""
10939 "入力ファイルが読み込みのためにオープンされていないか、 出力ファイルが書き込み"
10940 "のためにオープンされていない。"
10941
10942 #. type: Plain text
10943 #: build/C/man2/sendfile.2:128
10944 msgid "Bad address."
10945 msgstr "アドレスがおかしい。"
10946
10947 #. type: Plain text
10948 #: build/C/man2/sendfile.2:134
10949 msgid ""
10950 "Descriptor is not valid or locked, or an B<mmap>(2)-like operation is not "
10951 "available for I<in_fd>."
10952 msgstr ""
10953 "ディスクリプタが有効でないか、ロックされている。もしくは B<mmap>(2)  風の操作"
10954 "が I<in_fd> では利用できない。"
10955
10956 #. type: Plain text
10957 #: build/C/man2/sendfile.2:138
10958 msgid "Unspecified error while reading from I<in_fd>."
10959 msgstr "I<in_fd> から読み込んでいるうちに予期しないエラーが起こった。"
10960
10961 #. type: Plain text
10962 #: build/C/man2/sendfile.2:142
10963 msgid "Insufficient memory to read from I<in_fd>."
10964 msgstr "I<in_fd> から読み込むための十分なメモリがない。"
10965
10966 #. type: Plain text
10967 #: build/C/man2/sendfile.2:148
10968 msgid ""
10969 "B<sendfile>()  is a new feature in Linux 2.2.  The include file I<E<lt>sys/"
10970 "sendfile.hE<gt>> is present since glibc 2.1."
10971 msgstr ""
10972 "B<sendfile> は Linux 2.2 の新しい機能である。 インクルードファイル "
10973 "I<E<lt>sys/sendfile.hE<gt>> は glibc 2.1 から存在している。"
10974
10975 #. type: Plain text
10976 #: build/C/man2/sendfile.2:150
10977 msgid "Not specified in POSIX.1-2001, or other standards."
10978 msgstr "POSIX.1-2001 や他の標準では規定されていない。"
10979
10980 #. type: Plain text
10981 #: build/C/man2/sendfile.2:155
10982 msgid ""
10983 "Other UNIX systems implement B<sendfile>()  with different semantics and "
10984 "prototypes.  It should not be used in portable programs."
10985 msgstr ""
10986 "他の UNIX システムでは、異なった方式やプロトタイプで B<sendfile>()  を実装し"
10987 "ている。移植性を考慮したプログラムでは使用すべきではない。"
10988
10989 #. type: Plain text
10990 #: build/C/man2/sendfile.2:165
10991 msgid ""
10992 "If you plan to use B<sendfile>()  for sending files to a TCP socket, but "
10993 "need to send some header data in front of the file contents, you will find "
10994 "it useful to employ the B<TCP_CORK> option, described in B<tcp>(7), to "
10995 "minimize the number of packets and to tune performance."
10996 msgstr ""
10997 "B<sendfile>()  を使って TCP ソケットにファイルを送ろうとしていて、 ファイルの"
10998 "内容の前にヘッダ・データを付け加える必要がある場合は、 パケット数を最小にして"
10999 "性能を上げるために B<tcp>(7)  に記述されている B<TCP_CORK> オプションを使うと"
11000 "いいだろう。"
11001
11002 #. type: Plain text
11003 #: build/C/man2/sendfile.2:171
11004 msgid ""
11005 "In Linux 2.4 and earlier, I<out_fd> could also refer to a regular file, and "
11006 "B<sendfile>()  changed the current offset of that file."
11007 msgstr ""
11008 "Linux 2.4 とそれ以前のバージョンでも、 I<out_fd> は通常のファイルを参照で"
11009 "き、\n"
11010 "B<sendfile>() はそのファイルのオフセットの現在値を変更していた。"
11011
11012 #. type: Plain text
11013 #: build/C/man2/sendfile.2:183
11014 msgid ""
11015 "The original Linux B<sendfile>()  system call was not designed to handle "
11016 "large file offsets.  Consequently, Linux 2.4 added B<sendfile64>(), with a "
11017 "wider type for the I<offset> argument.  The glibc B<sendfile>()  wrapper "
11018 "function transparently deals with the kernel differences."
11019 msgstr ""
11020 "元々の Linux B<sendfile>() システムコールは大きなファイルオフセットを\n"
11021 "扱えるように設計されていなかった。その結果、Linux 2.4 で、\n"
11022 "ビット幅の大きな I<offset> 引き数を持った B<sendfile64>() が追加された。\n"
11023 "glibc の B<sendfile>() のラッパー関数はカーネルによるこの違いを吸収している。"
11024
11025 #. type: Plain text
11026 #: build/C/man2/sendfile.2:192
11027 msgid ""
11028 "Applications may wish to fall back to B<read>(2)/B<write>(2)  in the case "
11029 "where B<sendfile>()  fails with B<EINVAL> or B<ENOSYS>."
11030 msgstr ""
11031 "B<sendfile>()  が B<EINVAL> や B<ENOSYS> で失敗するような場合は、 アプリケー"
11032 "ションは B<read>(2)/B<write>(2)  に戻すことを考えてもよいかもしれない。"
11033
11034 #. type: Plain text
11035 #: build/C/man2/sendfile.2:197
11036 msgid ""
11037 "The Linux-specific B<splice>(2)  call supports transferring data between "
11038 "arbitrary files (e.g., a pair of sockets)."
11039 msgstr ""
11040 "Linux 固有の B<splice>(2) システムコールは、任意のファイル間 (例えば、\n"
11041 "ソケット同士) でのデータ転送をサポートしている。"
11042
11043 #. type: Plain text
11044 #: build/C/man2/sendfile.2:202
11045 msgid "B<mmap>(2), B<open>(2), B<socket>(2), B<splice>(2)"
11046 msgstr "B<mmap>(2), B<open>(2), B<socket>(2), B<splice>(2)"
11047
11048 #. type: TH
11049 #: build/C/man2/set_tid_address.2:25
11050 #, no-wrap
11051 msgid "SET_TID_ADDRESS"
11052 msgstr "SET_TID_ADDRESS"
11053
11054 #. type: TH
11055 #: build/C/man2/set_tid_address.2:25
11056 #, no-wrap
11057 msgid "2012-07-19"
11058 msgstr "2012-07-19"
11059
11060 #. type: Plain text
11061 #: build/C/man2/set_tid_address.2:28
11062 msgid "set_tid_address - set pointer to thread ID"
11063 msgstr "set_tid_address - スレッド ID へのポインタを設定する"
11064
11065 #. type: Plain text
11066 #: build/C/man2/set_tid_address.2:31
11067 #, no-wrap
11068 msgid "B<#include E<lt>linux/unistd.hE<gt>>\n"
11069 msgstr "B<#include E<lt>linux/unistd.hE<gt>>\n"
11070
11071 #. type: Plain text
11072 #: build/C/man2/set_tid_address.2:33
11073 #, no-wrap
11074 msgid "B<long set_tid_address(int *>I<tidptr>B<);>\n"
11075 msgstr "B<long set_tid_address(int *>I<tidptr>B<);>\n"
11076
11077 #. type: Plain text
11078 #: build/C/man2/set_tid_address.2:40
11079 msgid ""
11080 "For each process, the kernel maintains two attributes (addresses) called "
11081 "I<set_child_tid> and I<clear_child_tid>.  These two attributes contain the "
11082 "value NULL by default."
11083 msgstr ""
11084 "各プロセスについて、カーネルは I<set_child_tid> と I<clear_child_tid> という "
11085 "2 つの属性を保持する。この 2 つの属性はデフォルトでは NULL である。"
11086
11087 #. type: TP
11088 #: build/C/man2/set_tid_address.2:40
11089 #, no-wrap
11090 msgid "I<set_child_tid>"
11091 msgstr "I<set_child_tid>"
11092
11093 #. type: Plain text
11094 #: build/C/man2/set_tid_address.2:51
11095 msgid ""
11096 "If a process is started using B<clone>(2)  with the B<CLONE_CHILD_SETTID> "
11097 "flag, I<set_child_tid> is set to the value passed in the I<ctid> argument of "
11098 "that system call."
11099 msgstr ""
11100 "プロセスが B<CLONE_CHILD_SETTID> フラグを指定した B<clone>(2)  によって開始さ"
11101 "れた場合、 I<set_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引き数"
11102 "で渡された値に設定される。"
11103
11104 #. type: Plain text
11105 #: build/C/man2/set_tid_address.2:56
11106 msgid ""
11107 "When I<set_child_tid> is set, the very first thing the new process does is "
11108 "writing its PID at this address."
11109 msgstr ""
11110 "I<set_child_tid> が設定された場合、一番最初に新しいプロセスが行うことは、 こ"
11111 "のアドレスに自身の PID を書き込むことである。"
11112
11113 #. type: TP
11114 #: build/C/man2/set_tid_address.2:56
11115 #, no-wrap
11116 msgid "I<clear_child_tid>"
11117 msgstr "I<clear_child_tid>"
11118
11119 #. type: Plain text
11120 #: build/C/man2/set_tid_address.2:67
11121 msgid ""
11122 "If a process is started using B<clone>(2)  with the B<CLONE_CHILD_CLEARTID> "
11123 "flag, I<clear_child_tid> is set to the value passed in the I<ctid> argument "
11124 "of that system call."
11125 msgstr ""
11126 "プロセスが B<CLONE_CHILD_CLEARTID> フラグを指定した B<clone>(2) によって開始"
11127 "された場合、 I<clear_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引"
11128 "き数で渡された値に設定される。"
11129
11130 #. type: Plain text
11131 #: build/C/man2/set_tid_address.2:74
11132 msgid ""
11133 "The system call B<set_tid_address>()  sets the I<clear_child_tid> value for "
11134 "the calling process to I<tidptr>."
11135 msgstr ""
11136 "システムコール B<set_tid_address>()  は呼び出し元プロセスの "
11137 "I<clear_child_tid> の値を I<tidptr> に設定する。"
11138
11139 #. type: Plain text
11140 #: build/C/man2/set_tid_address.2:82
11141 msgid ""
11142 "When a process whose I<clear_child_tid> is not NULL terminates, then, if the "
11143 "process is sharing memory with other processes or threads, then 0 is written "
11144 "at the address specified in I<clear_child_tid> and the kernel performs the "
11145 "following operation:"
11146 msgstr ""
11147 "I<clear_child_tid> が NULL でないプロセスが終了すると、そのプロセスが他のプロ"
11148 "セスまたはスレッドとメモリを共有していれば、 I<clear_child_tid> で指定された"
11149 "アドレスに 0 が書き込まれ、カーネルは以下の処理を実行する。"
11150
11151 #. type: Plain text
11152 #: build/C/man2/set_tid_address.2:84
11153 #, no-wrap
11154 msgid "    futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);\n"
11155 msgstr "    futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);\n"
11156
11157 #. type: Plain text
11158 #: build/C/man2/set_tid_address.2:88
11159 msgid ""
11160 "The effect of this operation is to wake a single process that is performing "
11161 "a futex wait on the memory location.  Errors from the futex wake operation "
11162 "are ignored."
11163 msgstr ""
11164 "この処理の結果、このメモリアドレスに対する futex wait を実行しているプロセス"
11165 "を一つ起こす (wake)。 futex wake 操作でのエラーは無視される。"
11166
11167 #. type: Plain text
11168 #: build/C/man2/set_tid_address.2:91
11169 msgid "B<set_tid_address>()  always returns the PID of the calling process."
11170 msgstr "B<set_tid_address>()  は常に現在のプロセスの PID を返す。"
11171
11172 #. type: Plain text
11173 #: build/C/man2/set_tid_address.2:94
11174 msgid "B<set_tid_address>()  always succeeds."
11175 msgstr "B<set_tid_address>()  は常に成功する。"
11176
11177 #. type: Plain text
11178 #: build/C/man2/set_tid_address.2:97
11179 msgid ""
11180 "This call is present since Linux 2.5.48.  Details as given here are valid "
11181 "since Linux 2.5.49."
11182 msgstr ""
11183 "この呼び出しは Linux 2.5.48 以降で存在する。 ここで書かれた詳細は Linux "
11184 "2.5.49 以降で有効である。"
11185
11186 #. type: Plain text
11187 #: build/C/man2/set_tid_address.2:102
11188 msgid "B<clone>(2), B<futex>(2)"
11189 msgstr "B<clone>(2), B<futex>(2)"
11190
11191 #. type: TH
11192 #: build/C/man2/splice.2:26
11193 #, no-wrap
11194 msgid "SPLICE"
11195 msgstr "SPLICE"
11196
11197 #. type: TH
11198 #: build/C/man2/splice.2:26 build/C/man2/tee.2:26 build/C/man2/vmsplice.2:26
11199 #, no-wrap
11200 msgid "2012-05-04"
11201 msgstr "2012-05-04"
11202
11203 #. type: Plain text
11204 #: build/C/man2/splice.2:29
11205 msgid "splice - splice data to/from a pipe"
11206 msgstr "splice - パイプとの間でデータを継ぎ合わせる"
11207
11208 #. type: Plain text
11209 #: build/C/man2/splice.2:33 build/C/man2/tee.2:33
11210 #, no-wrap
11211 msgid ""
11212 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
11213 "B<#include E<lt>fcntl.hE<gt>>\n"
11214 msgstr ""
11215 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
11216 "B<#include E<lt>fcntl.hE<gt>>\n"
11217
11218 #.  Return type was long before glibc 2.7
11219 #. type: Plain text
11220 #: build/C/man2/splice.2:38
11221 #, no-wrap
11222 msgid ""
11223 "B<ssize_t splice(int >I<fd_in>B<, loff_t *>I<off_in>B<, int >I<fd_out>B<,>\n"
11224 "B<               loff_t *>I<off_out>B<, size_t >I<len>B<, unsigned int >I<flags>B<);>\n"
11225 msgstr ""
11226 "B<ssize_t splice(int >I<fd_in>B<, loff_t *>I<off_in>B<, int >I<fd_out>B<,>\n"
11227 "B<               loff_t *>I<off_out>B<, size_t >I<len>B<, unsigned int >I<flags>B<);>\n"
11228
11229 #. type: Plain text
11230 #: build/C/man2/splice.2:50
11231 msgid ""
11232 "B<splice>()  moves data between two file descriptors without copying between "
11233 "kernel address space and user address space.  It transfers up to I<len> "
11234 "bytes of data from the file descriptor I<fd_in> to the file descriptor "
11235 "I<fd_out>, where one of the descriptors must refer to a pipe."
11236 msgstr ""
11237 "B<splice>()  は、カーネルアドレス空間とユーザアドレス空間との間のコピーを伴わ"
11238 "ずに、 2 つのファイルディスクリプタ間でデータの移動を行う。 ファイルディスク"
11239 "リプタ I<fd_in> からファイルディスクリプタ I<fd_out> へ最大 I<len> バイトを転"
11240 "送する。 2 つのファイルディスクリプタのうち一つは パイプを参照していなければ"
11241 "ならない。"
11242
11243 #. type: Plain text
11244 #: build/C/man2/splice.2:80
11245 msgid ""
11246 "If I<fd_in> refers to a pipe, then I<off_in> must be NULL.  If I<fd_in> does "
11247 "not refer to a pipe and I<off_in> is NULL, then bytes are read from I<fd_in> "
11248 "starting from the current file offset, and the current file offset is "
11249 "adjusted appropriately.  If I<fd_in> does not refer to a pipe and I<off_in> "
11250 "is not NULL, then I<off_in> must point to a buffer which specifies the "
11251 "starting offset from which bytes will be read from I<fd_in>; in this case, "
11252 "the current file offset of I<fd_in> is not changed.  Analogous statements "
11253 "apply for I<fd_out> and I<off_out>."
11254 msgstr ""
11255 "I<fd_in> がパイプを参照している場合、 I<off_in> は NULL でなければならない。 "
11256 "I<fd_in> がパイプを参照しておらず、 I<off_in> が NULL の場合、 I<fd_in> の現"
11257 "在のファイルオフセットから始まるバイトを読み出す。 現在のファイルオフセットは"
11258 "適切に調整される。 I<fd_in> がパイプを参照しておらず、 I<off_in> が NULL でな"
11259 "い場合、 I<off_in> は I<fd_in> からのデータ読み出しを開始する先頭オフセットを"
11260 "格納したバッファ へのポインタでなければならない。この場合、 I<fd_in> の現在の"
11261 "ファイルオフセットは変更されない。 I<fd_out> と I<off_out> に関しても同様であ"
11262 "る。"
11263
11264 #. type: Plain text
11265 #: build/C/man2/splice.2:85 build/C/man2/vmsplice.2:78
11266 msgid ""
11267 "The I<flags> argument is a bit mask that is composed by ORing together zero "
11268 "or more of the following values:"
11269 msgstr ""
11270 "I<flags> 引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。"
11271
11272 #. type: TP
11273 #: build/C/man2/splice.2:85 build/C/man2/tee.2:62 build/C/man2/vmsplice.2:78
11274 #, no-wrap
11275 msgid "B<SPLICE_F_MOVE>"
11276 msgstr "B<SPLICE_F_MOVE>"
11277
11278 #. type: Plain text
11279 #: build/C/man2/splice.2:98
11280 msgid ""
11281 "Attempt to move pages instead of copying.  This is only a hint to the "
11282 "kernel: pages may still be copied if the kernel cannot move the pages from "
11283 "the pipe, or if the pipe buffers don't refer to full pages.  The initial "
11284 "implementation of this flag was buggy: therefore starting in Linux 2.6.21 it "
11285 "is a no-op (but is still permitted in a B<splice>()  call); in the future, a "
11286 "correct implementation may be restored."
11287 msgstr ""
11288 "ページのコピーでなく移動を試みる。 これはカーネルに対するヒントでしかない。 "
11289 "つまり、カーネルがパイプからページを移動できない場合や、 パイプバッファがペー"
11290 "ジ全部を参照していない場合は、 ページのコピーが行われることもある。 このフラ"
11291 "グの最初の実装にはバグがあった。そのため、 Linux 2.6.21 以降ではこのフラグの"
11292 "操作はできないようになっている (ただし、 B<splice>()  コールでこのフラグを指"
11293 "定することは今も認められている)。 将来、正しい実装が行われることだろう。"
11294
11295 #. type: TP
11296 #: build/C/man2/splice.2:98 build/C/man2/tee.2:68 build/C/man2/vmsplice.2:84
11297 #, no-wrap
11298 msgid "B<SPLICE_F_NONBLOCK>"
11299 msgstr "B<SPLICE_F_NONBLOCK>"
11300
11301 #. type: Plain text
11302 #: build/C/man2/splice.2:107
11303 msgid ""
11304 "Do not block on I/O.  This makes the splice pipe operations nonblocking, but "
11305 "B<splice>()  may nevertheless block because the file descriptors that are "
11306 "spliced to/from may block (unless they have the B<O_NONBLOCK> flag set)."
11307 msgstr ""
11308 "入出力時に停止 (block) しない。 このフラグを指定すると、 splice によるパイプ"
11309 "操作を非停止モード (nonblocking) で 行おうとするが、その場合でも B<splice>"
11310 "()  は停止することもある。なぜなら、データのやり取りを行う ファイルディスクリ"
11311 "プタは (B<O_NONBLOCK> フラグをセットされていない場合) 停止する可能性があるか"
11312 "らである。"
11313
11314 #. type: TP
11315 #: build/C/man2/splice.2:107 build/C/man2/tee.2:73 build/C/man2/vmsplice.2:91
11316 #, no-wrap
11317 msgid "B<SPLICE_F_MORE>"
11318 msgstr "B<SPLICE_F_MORE>"
11319
11320 #. type: Plain text
11321 #: build/C/man2/splice.2:121
11322 msgid ""
11323 "More data will be coming in a subsequent splice.  This is a helpful hint "
11324 "when the I<fd_out> refers to a socket (see also the description of "
11325 "B<MSG_MORE> in B<send>(2), and the description of B<TCP_CORK> in B<tcp>(7))"
11326 msgstr ""
11327 "この後の splice でさらに転送されるデータがあることを示す。 このフラグは "
11328 "I<fd_out> がソケットを参照している場合に有用なヒントとなる (B<send>(2)  の "
11329 "B<MSG_MORE> や B<tcp>(7)  の B<TCP_CORK> の説明も参照)。"
11330
11331 #. type: TP
11332 #: build/C/man2/splice.2:121 build/C/man2/tee.2:79 build/C/man2/vmsplice.2:97
11333 #, no-wrap
11334 msgid "B<SPLICE_F_GIFT>"
11335 msgstr "B<SPLICE_F_GIFT>"
11336
11337 #. type: Plain text
11338 #: build/C/man2/splice.2:127
11339 msgid "Unused for B<splice>(); see B<vmsplice>(2)."
11340 msgstr "B<splice>()  では使用しない。 B<vmsplice>(2)  参照。"
11341
11342 #. type: Plain text
11343 #: build/C/man2/splice.2:136
11344 msgid ""
11345 "Upon successful completion, B<splice>()  returns the number of bytes spliced "
11346 "to or from the pipe.  A return value of 0 means that there was no data to "
11347 "transfer, and it would not make sense to block, because there are no writers "
11348 "connected to the write end of the pipe referred to by I<fd_in>."
11349 msgstr ""
11350 "成功して完了すると、 B<splice>()  はパイプから出し入れしたバイト数を返す。 返"
11351 "り値 0 はデータの転送が行わなかったことを示す。 この場合、処理を停止 (block) "
11352 "しても無意味である。 なぜなら、 I<fd_in> が参照するパイプの書き込み側に接続さ"
11353 "れている者がいないからである。"
11354
11355 #. type: Plain text
11356 #: build/C/man2/splice.2:142
11357 msgid ""
11358 "On error, B<splice>()  returns -1 and I<errno> is set to indicate the error."
11359 msgstr ""
11360 "エラーの場合、 B<splice>()  は -1 を返し、 I<errno> にエラーを示す値を設定す"
11361 "る。"
11362
11363 #. type: Plain text
11364 #: build/C/man2/splice.2:147
11365 msgid ""
11366 "One or both file descriptors are not valid, or do not have proper read-write "
11367 "mode."
11368 msgstr ""
11369 "ファイルディスクリプタの一方または両方が有効ではない、 もしくは適切な read-"
11370 "write モードではない。"
11371
11372 #.  The append-mode error is given since 2.6.27; in earlier kernels,
11373 #.  splice() in append mode was broken
11374 #. type: Plain text
11375 #: build/C/man2/splice.2:155
11376 #, fuzzy
11377 #| msgid ""
11378 #| "Target file system doesn't support splicing; target file is opened in "
11379 #| "append mode; neither of the descriptors refers to a pipe; or offset given "
11380 #| "for nonseekable device."
11381 msgid ""
11382 "Target filesystem doesn't support splicing; target file is opened in append "
11383 "mode; neither of the descriptors refers to a pipe; or offset given for "
11384 "nonseekable device."
11385 msgstr ""
11386 "対象のファイルシステムが splice に対応していない、 または対象のファイルが追記"
11387 "モードでオープンされている、 またはディスクリプタのどちらもパイプを参照してい"
11388 "ない、 または seek できないデバイスに対してオフセットが指定された。"
11389
11390 #. type: Plain text
11391 #: build/C/man2/splice.2:158 build/C/man2/tee.2:114
11392 #: build/C/man2/vmsplice.2:138
11393 msgid "Out of memory."
11394 msgstr "メモリ不足。"
11395
11396 #. type: TP
11397 #: build/C/man2/splice.2:158
11398 #, no-wrap
11399 msgid "B<ESPIPE>"
11400 msgstr "B<ESPIPE>"
11401
11402 #. type: Plain text
11403 #: build/C/man2/splice.2:165
11404 msgid ""
11405 "Either I<off_in> or I<off_out> was not NULL, but the corresponding file "
11406 "descriptor refers to a pipe."
11407 msgstr ""
11408 "I<off_in> か I<off_out> のいずれかが NULL ではないが、対応するファイルディス"
11409 "クリプタが パイプを参照している。"
11410
11411 #. type: Plain text
11412 #: build/C/man2/splice.2:170
11413 msgid ""
11414 "The B<splice>()  system call first appeared in Linux 2.6.17; library support "
11415 "was added to glibc in version 2.5."
11416 msgstr ""
11417 "B<splice>() システムコールは Linux 2.6.17 で初めて登場した。\n"
11418 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
11419
11420 #. type: Plain text
11421 #: build/C/man2/splice.2:182
11422 msgid ""
11423 "The three system calls B<splice>(), B<vmsplice>(2), and B<tee>(2), provide "
11424 "user-space programs with full control over an arbitrary kernel buffer, "
11425 "implemented within the kernel using the same type of buffer that is used for "
11426 "a pipe.  In overview, these system calls perform the following tasks:"
11427 msgstr ""
11428 "3 つのシステムコール (B<splice>(), B<vmsplice>(2), B<tee>(2))  を使うと、ユー"
11429 "ザ空間プログラムは任意のカーネルバッファに対する 完全な制御ができる。カーネル"
11430 "バッファは、パイプに使用されているのと 同種のバッファを使ってカーネル内に実装"
11431 "されている。 大まかにいうと、これらのシステムコールは以下の仕事を行う:"
11432
11433 #. type: TP
11434 #: build/C/man2/splice.2:182
11435 #, no-wrap
11436 msgid "B<splice>()"
11437 msgstr "B<splice>()"
11438
11439 #. type: Plain text
11440 #: build/C/man2/splice.2:186
11441 msgid ""
11442 "moves data from the buffer to an arbitrary file descriptor, or vice versa, "
11443 "or from one buffer to another."
11444 msgstr ""
11445 "バッファから任意のファイルディスクリプタや、その逆方向、 もしくはあるバッファ"
11446 "から別のバッファへの、データ移動を行う。"
11447
11448 #. type: TP
11449 #: build/C/man2/splice.2:186
11450 #, no-wrap
11451 msgid "B<tee>(2)"
11452 msgstr "B<tee>(2)"
11453
11454 #. type: Plain text
11455 #: build/C/man2/splice.2:189
11456 msgid "\"copies\" the data from one buffer to another."
11457 msgstr "あるバッファから別のバッファへのデータ「コピー」を行う。"
11458
11459 #. type: TP
11460 #: build/C/man2/splice.2:189
11461 #, no-wrap
11462 msgid "B<vmsplice>(2)"
11463 msgstr "B<vmsplice>(2)"
11464
11465 #. type: Plain text
11466 #: build/C/man2/splice.2:192
11467 msgid "\"copies\" data from user space into the buffer."
11468 msgstr "ユーザ空間からバッファへのデータ「コピー」を行う。"
11469
11470 #.  Linus: Now, imagine using the above in a media server, for example.
11471 #.  Let's say that a year or two has passed, so that the video drivers
11472 #.  have been updated to be able to do the splice thing, and what can
11473 #.  you do? You can:
11474 #.  - splice from the (mpeg or whatever - let's just assume that the video
11475 #.    input is either digital or does the encoding on its own - like they
11476 #.    pretty much all do) video input into a pipe (remember: no copies - the
11477 #.    video input will just DMA directly into memory, and splice will just
11478 #.    set up the pages in the pipe buffer)
11479 #.  - tee that pipe to split it up
11480 #.  - splice one end to a file (ie "save the compressed stream to disk")
11481 #.  - splice the other end to a real-time video decoder window for your
11482 #.    real-time viewing pleasure.
11483 #.  Linus: Now, the advantage of splice()/tee() is that you can
11484 #.  do zero-copy movement of data, and unlike sendfile() you can
11485 #.  do it on _arbitrary_ data (and, as shown by "tee()", it's more
11486 #.  than just sending the data to somebody else: you can duplicate
11487 #.  the data and choose to forward it to two or more different
11488 #.  users - for things like logging etc.).
11489 #. type: Plain text
11490 #: build/C/man2/splice.2:223
11491 msgid ""
11492 "Though we talk of copying, actual copies are generally avoided.  The kernel "
11493 "does this by implementing a pipe buffer as a set of reference-counted "
11494 "pointers to pages of kernel memory.  The kernel creates \"copies\" of pages "
11495 "in a buffer by creating new pointers (for the output buffer) referring to "
11496 "the pages, and increasing the reference counts for the pages: only pointers "
11497 "are copied, not the pages of the buffer."
11498 msgstr ""
11499 "ここではコピーの話をしているが、実際のコピーは一般的に回避される。 カーネル"
11500 "は、パイプ・バッファをカーネルメモリのページへのポインタ集合として 実装し、"
11501 "ページへの参照回数を管理することで、これを実現している。 カーネルは、対象とな"
11502 "るページを参照する (出力バッファ用の) ポインタを 新規に作成することでバッファ"
11503 "内のページの「コピー」を作成し、 そのページの参照回数を増やす。つまり、ポイン"
11504 "タだけがコピーされ、 バッファのページはコピーされない。"
11505
11506 #. type: Plain text
11507 #: build/C/man2/splice.2:226
11508 msgid "See B<tee>(2)."
11509 msgstr "B<tee>(2)  参照。"
11510
11511 #. type: Plain text
11512 #: build/C/man2/splice.2:230
11513 msgid "B<sendfile>(2), B<tee>(2), B<vmsplice>(2)"
11514 msgstr "B<sendfile>(2), B<tee>(2), B<vmsplice>(2)"
11515
11516 #. type: TH
11517 #: build/C/man2/tee.2:26
11518 #, no-wrap
11519 msgid "TEE"
11520 msgstr "TEE"
11521
11522 #. type: Plain text
11523 #: build/C/man2/tee.2:29
11524 msgid "tee - duplicating pipe content"
11525 msgstr "tee - パイプの中身を複製する"
11526
11527 #. type: Plain text
11528 #: build/C/man2/tee.2:36
11529 #, no-wrap
11530 msgid "B<ssize_t tee(int >I<fd_in>B<, int >I<fd_out>B<, size_t >I<len>B<, unsigned int >I<flags>B<);>\n"
11531 msgstr "B<ssize_t tee(int >I<fd_in>B<, int >I<fd_out>B<, size_t >I<len>B<, unsigned int >I<flags>B<);>\n"
11532
11533 #.  Example programs http://brick.kernel.dk/snaps
11534 #.  add a "tee(in, out1, out2)" system call that duplicates the pages
11535 #.  (again, incrementing their reference count, not copying the data) from
11536 #.  one pipe to two other pipes.
11537 #. type: Plain text
11538 #: build/C/man2/tee.2:56
11539 msgid ""
11540 "B<tee>()  duplicates up to I<len> bytes of data from the pipe referred to by "
11541 "the file descriptor I<fd_in> to the pipe referred to by the file descriptor "
11542 "I<fd_out>.  It does not consume the data that is duplicated from I<fd_in>; "
11543 "therefore, that data can be copied by a subsequent B<splice>(2)."
11544 msgstr ""
11545 "B<tee>()  は、ファイルディスクリプタ I<fd_in> が参照するパイプからファイル"
11546 "ディスクリプタ I<fd_out> が参照するパイプへ最大 I<len> バイトのデータを複製す"
11547 "る。 この操作では、複製されるデータは I<fd_in> からは消費されない。したがっ"
11548 "て、これらのデータをこの後の B<splice>(2)  でコピーすることができる。"
11549
11550 #. type: Plain text
11551 #: build/C/man2/tee.2:62
11552 msgid ""
11553 "I<flags> is a series of modifier flags, which share the name space with "
11554 "B<splice>(2)  and B<vmsplice>(2):"
11555 msgstr ""
11556 "I<flags> は一連の修飾フラグであり、 B<splice>(2)  や B<vmsplice>(2)  と共通の"
11557 "名前である。"
11558
11559 #. type: Plain text
11560 #: build/C/man2/tee.2:68
11561 msgid "Currently has no effect for B<tee>(); see B<splice>(2)."
11562 msgstr "現在のところ B<tee>()  では何の効果もない。 B<splice>(2)  参照。"
11563
11564 #.  Not used for vmsplice
11565 #.  May be in the future -- therefore EAGAIN
11566 #. type: Plain text
11567 #: build/C/man2/tee.2:73 build/C/man2/vmsplice.2:91
11568 msgid "Do not block on I/O; see B<splice>(2)  for further details."
11569 msgstr "入出力で停止 (block) しない。詳細は B<splice>(2)  参照。"
11570
11571 #. type: Plain text
11572 #: build/C/man2/tee.2:79
11573 msgid ""
11574 "Currently has no effect for B<tee>(), but may be implemented in the future; "
11575 "see B<splice>(2)."
11576 msgstr ""
11577 "現在のところ B<tee>()  では何の効果もないが、将来的には実装される可能性があ"
11578 "る。 B<splice>(2)  参照。"
11579
11580 #. type: Plain text
11581 #: build/C/man2/tee.2:85
11582 msgid "Unused for B<tee>(); see B<vmsplice>(2)."
11583 msgstr "B<tee>()  では未使用。 B<vmsplice>(2)  参照。"
11584
11585 #. type: Plain text
11586 #: build/C/man2/tee.2:94
11587 msgid ""
11588 "Upon successful completion, B<tee>()  returns the number of bytes that were "
11589 "duplicated between the input and output.  A return value of 0 means that "
11590 "there was no data to transfer, and it would not make sense to block, because "
11591 "there are no writers connected to the write end of the pipe referred to by "
11592 "I<fd_in>."
11593 msgstr ""
11594 "成功して完了すると、 B<tee>()  は入出力間で複製されたバイト数を返す。 返り値 "
11595 "0 はデータの転送が行われなかったことを示す。 この場合、処理を停止 (block) し"
11596 "ても無意味である。 なぜなら、 I<fd_in> が参照するパイプの書き込み側に接続され"
11597 "ている者がいないからである。"
11598
11599 #. type: Plain text
11600 #: build/C/man2/tee.2:100
11601 msgid ""
11602 "On error, B<tee>()  returns -1 and I<errno> is set to indicate the error."
11603 msgstr ""
11604 "エラーの場合、 B<tee>()  は -1 を返し、 I<errno> にエラーを示す値を設定する。"
11605
11606 #. type: Plain text
11607 #: build/C/man2/tee.2:111
11608 msgid ""
11609 "I<fd_in> or I<fd_out> does not refer to a pipe; or I<fd_in> and I<fd_out> "
11610 "refer to the same pipe."
11611 msgstr ""
11612 "I<fd_in> と I<fd_out> のどちらかがパイプを参照していない。もしくは I<fd_in> "
11613 "と I<fd_out> が同じパイプを参照している。"
11614
11615 #. type: Plain text
11616 #: build/C/man2/tee.2:119
11617 msgid ""
11618 "The B<tee>()  system call first appeared in Linux 2.6.17; library support "
11619 "was added to glibc in version 2.5."
11620 msgstr ""
11621 "B<tee>() システムコールは Linux 2.6.17 で初めて登場した。\n"
11622 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
11623
11624 #. type: Plain text
11625 #: build/C/man2/tee.2:130
11626 msgid ""
11627 "Conceptually, B<tee>()  copies the data between the two pipes.  In reality "
11628 "no real data copying takes place though: under the covers, B<tee>()  assigns "
11629 "data in the output by merely grabbing a reference to the input."
11630 msgstr ""
11631 "概念としては、 B<tee>()  は二つのパイプ間でデータのコピーを行う。 しかし、実"
11632 "際には実データのコピーは行われない。 内部では、 B<tee>()  は入力側に対する参"
11633 "照だけを作成することで出力側にデータを 追加する。"
11634
11635 #. type: Plain text
11636 #: build/C/man2/tee.2:136
11637 msgid ""
11638 "The following example implements a basic B<tee>(1)  program using the B<tee>"
11639 "()  system call."
11640 msgstr ""
11641 "以下の例は、 B<tee>()  システムコールを使って、 基本的な B<tee>(1)  プログラ"
11642 "ムを実装したものである。"
11643
11644 #. type: Plain text
11645 #: build/C/man2/tee.2:145
11646 #, no-wrap
11647 msgid ""
11648 "#define _GNU_SOURCE\n"
11649 "#include E<lt>fcntl.hE<gt>\n"
11650 "#include E<lt>stdio.hE<gt>\n"
11651 "#include E<lt>stdlib.hE<gt>\n"
11652 "#include E<lt>unistd.hE<gt>\n"
11653 "#include E<lt>errno.hE<gt>\n"
11654 "#include E<lt>limits.hE<gt>\n"
11655 msgstr ""
11656 "#define _GNU_SOURCE\n"
11657 "#include E<lt>fcntl.hE<gt>\n"
11658 "#include E<lt>stdio.hE<gt>\n"
11659 "#include E<lt>stdlib.hE<gt>\n"
11660 "#include E<lt>unistd.hE<gt>\n"
11661 "#include E<lt>errno.hE<gt>\n"
11662 "#include E<lt>limits.hE<gt>\n"
11663
11664 #. type: Plain text
11665 #: build/C/man2/tee.2:151
11666 #, no-wrap
11667 msgid ""
11668 "int\n"
11669 "main(int argc, char *argv[])\n"
11670 "{\n"
11671 "    int fd;\n"
11672 "    int len, slen;\n"
11673 msgstr ""
11674 "int\n"
11675 "main(int argc, char *argv[])\n"
11676 "{\n"
11677 "    int fd;\n"
11678 "    int len, slen;\n"
11679
11680 #. type: Plain text
11681 #: build/C/man2/tee.2:156
11682 #, no-wrap
11683 msgid ""
11684 "    if (argc != 2) {\n"
11685 "        fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
11686 "        exit(EXIT_FAILURE);\n"
11687 "    }\n"
11688 msgstr ""
11689 "    if (argc != 2) {\n"
11690 "        fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
11691 "        exit(EXIT_FAILURE);\n"
11692 "    }\n"
11693
11694 #. type: Plain text
11695 #: build/C/man2/tee.2:162
11696 #, no-wrap
11697 msgid ""
11698 "    fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);\n"
11699 "    if (fd == -1) {\n"
11700 "        perror(\"open\");\n"
11701 "        exit(EXIT_FAILURE);\n"
11702 "    }\n"
11703 msgstr ""
11704 "    fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);\n"
11705 "    if (fd == -1) {\n"
11706 "        perror(\"open\");\n"
11707 "        exit(EXIT_FAILURE);\n"
11708 "    }\n"
11709
11710 #. type: Plain text
11711 #: build/C/man2/tee.2:169
11712 #, no-wrap
11713 msgid ""
11714 "    do {\n"
11715 "        /*\n"
11716 "         * tee stdin to stdout.\n"
11717 "         */\n"
11718 "        len = tee(STDIN_FILENO, STDOUT_FILENO,\n"
11719 "                  INT_MAX, SPLICE_F_NONBLOCK);\n"
11720 msgstr ""
11721 "    do {\n"
11722 "        /*\n"
11723 "         * tee stdin to stdout.\n"
11724 "         */\n"
11725 "        len = tee(STDIN_FILENO, STDOUT_FILENO,\n"
11726 "                  INT_MAX, SPLICE_F_NONBLOCK);\n"
11727
11728 #. type: Plain text
11729 #: build/C/man2/tee.2:178
11730 #, no-wrap
11731 msgid ""
11732 "        if (len E<lt> 0) {\n"
11733 "            if (errno == EAGAIN)\n"
11734 "                continue;\n"
11735 "            perror(\"tee\");\n"
11736 "            exit(EXIT_FAILURE);\n"
11737 "        } else\n"
11738 "            if (len == 0)\n"
11739 "                break;\n"
11740 msgstr ""
11741 "        if (len E<lt> 0) {\n"
11742 "            if (errno == EAGAIN)\n"
11743 "                continue;\n"
11744 "            perror(\"tee\");\n"
11745 "            exit(EXIT_FAILURE);\n"
11746 "        } else\n"
11747 "            if (len == 0)\n"
11748 "                break;\n"
11749
11750 #. type: Plain text
11751 #: build/C/man2/tee.2:192
11752 #, no-wrap
11753 msgid ""
11754 "        /*\n"
11755 "         * Consume stdin by splicing it to a file.\n"
11756 "         */\n"
11757 "        while (len E<gt> 0) {\n"
11758 "            slen = splice(STDIN_FILENO, NULL, fd, NULL,\n"
11759 "                          len, SPLICE_F_MOVE);\n"
11760 "            if (slen E<lt> 0) {\n"
11761 "                perror(\"splice\");\n"
11762 "                break;\n"
11763 "            }\n"
11764 "            len -= slen;\n"
11765 "        }\n"
11766 "    } while (1);\n"
11767 msgstr ""
11768 "        /*\n"
11769 "         * Consume stdin by splicing it to a file.\n"
11770 "         */\n"
11771 "        while (len E<gt> 0) {\n"
11772 "            slen = splice(STDIN_FILENO, NULL, fd, NULL,\n"
11773 "                          len, SPLICE_F_MOVE);\n"
11774 "            if (slen E<lt> 0) {\n"
11775 "                perror(\"splice\");\n"
11776 "                break;\n"
11777 "            }\n"
11778 "            len -= slen;\n"
11779 "        }\n"
11780 "    } while (1);\n"
11781
11782 #. type: Plain text
11783 #: build/C/man2/tee.2:196
11784 #, no-wrap
11785 msgid ""
11786 "    close(fd);\n"
11787 "    exit(EXIT_SUCCESS);\n"
11788 "}\n"
11789 msgstr ""
11790 "    close(fd);\n"
11791 "    exit(EXIT_SUCCESS);\n"
11792 "}\n"
11793
11794 #. type: Plain text
11795 #: build/C/man2/tee.2:200
11796 msgid "B<splice>(2), B<vmsplice>(2)"
11797 msgstr "B<splice>(2), B<vmsplice>(2)"
11798
11799 #. type: TH
11800 #: build/C/man2/vm86.2:26
11801 #, no-wrap
11802 msgid "VM86"
11803 msgstr "VM86"
11804
11805 #. type: TH
11806 #: build/C/man2/vm86.2:26
11807 #, no-wrap
11808 msgid "2009-02-20"
11809 msgstr "2009-02-20"
11810
11811 #. type: Plain text
11812 #: build/C/man2/vm86.2:29
11813 msgid "vm86old, vm86 - enter virtual 8086 mode"
11814 msgstr "vm86old, vm86 - 仮想 8086 モードへ移行する"
11815
11816 #. type: Plain text
11817 #: build/C/man2/vm86.2:31
11818 msgid "B<#include E<lt>sys/vm86.hE<gt>>"
11819 msgstr "B<#include E<lt>sys/vm86.hE<gt>>"
11820
11821 #. type: Plain text
11822 #: build/C/man2/vm86.2:33
11823 msgid "B<int vm86old(struct vm86_struct *>I<info>B<);>"
11824 msgstr "B<int vm86old(struct vm86_struct *>I<info>B<);>"
11825
11826 #. type: Plain text
11827 #: build/C/man2/vm86.2:35
11828 msgid "B<int vm86(unsigned long >I<fn>B<, struct vm86plus_struct *>I<v86>B<);>"
11829 msgstr ""
11830 "B<int vm86(unsigned long >I<fn>B<, struct vm86plus_struct *>I<v86>B<);>"
11831
11832 #. type: Plain text
11833 #: build/C/man2/vm86.2:48
11834 msgid ""
11835 "The system call B<vm86>()  was introduced in Linux 0.97p2.  In Linux 2.1.15 "
11836 "and 2.0.28 it was renamed to B<vm86old>(), and a new B<vm86>()  was "
11837 "introduced.  The definition of I<struct vm86_struct> was changed in 1.1.8 "
11838 "and 1.1.9."
11839 msgstr ""
11840 "B<vm86>()  システムコールは Linux 0.97p2 で導入された。 これは Linux 2.1.15 "
11841 "と 2.0.28 で B<vm86old>()  に名前が変更され、 新しい B<vm86>()  が導入され"
11842 "た。 I<struct vm86_struct> の定義は 1.1.8 と 1.1.9 で変更された。"
11843
11844 #. type: Plain text
11845 #: build/C/man2/vm86.2:52
11846 msgid ""
11847 "These calls cause the process to enter VM86 mode (virtual-8086 in Intel "
11848 "literature), and are used by B<dosemu>."
11849 msgstr ""
11850 "これらのコールによってプロセスは VM86 モード (Intel の文書では仮想 8086 モー"
11851 "ド) へと移行する。 これらのコールは B<dosemu> で使用される。"
11852
11853 #. type: Plain text
11854 #: build/C/man2/vm86.2:54
11855 msgid "VM86 mode is an emulation of real mode within a protected mode task."
11856 msgstr ""
11857 "VM86 モードはプロテクトモードタスクにおける リアルモードのエミュレーションで"
11858 "ある。"
11859
11860 #. type: Plain text
11861 #: build/C/man2/vm86.2:64
11862 msgid ""
11863 "This return value is specific to i386 and indicates a problem with getting "
11864 "user-space data."
11865 msgstr ""
11866 "この返り値は i386 固有のものであり、 ユーザー空間のデータを取得する際に問題が"
11867 "あったことを示す。"
11868
11869 #. type: Plain text
11870 #: build/C/man2/vm86.2:68
11871 msgid ""
11872 "This return value indicates the call is not implemented on the present "
11873 "architecture."
11874 msgstr ""
11875 "この返り値は、このコールが現在のアーキテクチャで実装されていないことを示す。"
11876
11877 #. type: Plain text
11878 #: build/C/man2/vm86.2:73
11879 msgid ""
11880 "Saved kernel stack exists.  (This is a kernel sanity check; the saved stack "
11881 "should exist only within vm86 mode itself.)"
11882 msgstr ""
11883 "保存されたカーネルスタックが既に存在している。(これはカーネルが通常の 状態で"
11884 "あるかをチェックしている。保存されたスタックは vm86 モードで しか存在しな"
11885 "い。)"
11886
11887 #. type: Plain text
11888 #: build/C/man2/vm86.2:76
11889 msgid ""
11890 "This call is specific to Linux on 32-bit Intel processors, and should not be "
11891 "used in programs intended to be portable."
11892 msgstr ""
11893 "この関数は 32 ビット Intel プロセッサ上の Linux 特有の関数であり、 移植を意図"
11894 "したプログラムでは使用すべきでない。"
11895
11896 #. type: TH
11897 #: build/C/man2/vmsplice.2:26
11898 #, no-wrap
11899 msgid "VMSPLICE"
11900 msgstr "VMSPLICE"
11901
11902 #. type: Plain text
11903 #: build/C/man2/vmsplice.2:29
11904 msgid "vmsplice - splice user pages into a pipe"
11905 msgstr "vmsplice - ユーザ・ページをパイプに継ぎ合わせる"
11906
11907 #. type: Plain text
11908 #: build/C/man2/vmsplice.2:34
11909 #, no-wrap
11910 msgid ""
11911 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
11912 "B<#include E<lt>fcntl.hE<gt>>\n"
11913 "B<#include E<lt>sys/uio.hE<gt>>\n"
11914 msgstr ""
11915 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
11916 "B<#include E<lt>fcntl.hE<gt>>\n"
11917 "B<#include E<lt>sys/uio.hE<gt>>\n"
11918
11919 #. type: Plain text
11920 #: build/C/man2/vmsplice.2:37
11921 #, no-wrap
11922 msgid ""
11923 "B<ssize_t vmsplice(int >I<fd>B<, const struct iovec *>I<iov>B<,>\n"
11924 "B<                 unsigned long >I<nr_segs>B<, unsigned int >I<flags>B<);>\n"
11925 msgstr ""
11926 "B<ssize_t vmsplice(int >I<fd>B<, const struct iovec *>I<iov>B<,>\n"
11927 "B<                 unsigned long >I<nr_segs>B<, unsigned int >I<flags>B<);>\n"
11928
11929 #.  Linus: vmsplice() system call to basically do a "write to
11930 #.  the buffer", but using the reference counting and VM traversal
11931 #.  to actually fill the buffer. This means that the user needs to
11932 #.  be careful not to reuse the user-space buffer it spliced into
11933 #.  the kernel-space one (contrast this to "write()", which copies
11934 #.  the actual data, and you can thus reuse the buffer immediately
11935 #.  after a successful write), but that is often easy to do.
11936 #. type: Plain text
11937 #: build/C/man2/vmsplice.2:57
11938 msgid ""
11939 "The B<vmsplice>()  system call maps I<nr_segs> ranges of user memory "
11940 "described by I<iov> into a pipe.  The file descriptor I<fd> must refer to a "
11941 "pipe."
11942 msgstr ""
11943 "B<vmsplice>()  システムコールは、 I<iov> で指定されたユーザ・メモリの "
11944 "I<nr_segs> の範囲をパイプにマッピングする。 I<fd> はパイプを参照していなけれ"
11945 "ばならない。"
11946
11947 #. type: Plain text
11948 #: build/C/man2/vmsplice.2:64
11949 msgid ""
11950 "The pointer I<iov> points to an array of I<iovec> structures as defined in "
11951 "I<E<lt>sys/uio.hE<gt>>:"
11952 msgstr ""
11953 "ポインタ I<iov> は I<iovec> 構造体の配列を指す。 I<iovec> 構造体は "
11954 "I<E<lt>sys/uio.hE<gt>> で以下のように定義されている:"
11955
11956 #. type: Plain text
11957 #: build/C/man2/vmsplice.2:71
11958 #, no-wrap
11959 msgid ""
11960 "struct iovec {\n"
11961 "    void  *iov_base;            /* Starting address */\n"
11962 "    size_t iov_len;             /* Number of bytes */\n"
11963 "};\n"
11964 msgstr ""
11965 "struct iovec {\n"
11966 "    void  *iov_base;            /* 開始アドレス */\n"
11967 "    size_t iov_len;             /* バイト数 */\n"
11968 "};\n"
11969
11970 #. type: Plain text
11971 #: build/C/man2/vmsplice.2:84
11972 msgid "Unused for B<vmsplice>(); see B<splice>(2)."
11973 msgstr "B<vmsplice>()  では未使用。 B<splice>(2)  参照。"
11974
11975 #. type: Plain text
11976 #: build/C/man2/vmsplice.2:97
11977 msgid ""
11978 "Currently has no effect for B<vmsplice>(), but may be implemented in the "
11979 "future; see B<splice>(2)."
11980 msgstr ""
11981 "現在のところ B<vmsplice>()  では何の効果もないが、将来的には実装される可能性"
11982 "がある。 B<splice>(2)  参照。"
11983
11984 #.  FIXME Explain the following line in a little more detail:
11985 #.  .... if we expect to later SPLICE_F_MOVE to the cache.
11986 #. type: Plain text
11987 #: build/C/man2/vmsplice.2:113
11988 msgid ""
11989 "The user pages are a gift to the kernel.  The application may not modify "
11990 "this memory ever, or page cache and on-disk data may differ.  Gifting pages "
11991 "to the kernel means that a subsequent B<splice>(2)  B<SPLICE_F_MOVE> can "
11992 "successfully move the pages; if this flag is not specified, then a "
11993 "subsequent B<splice>(2)  B<SPLICE_F_MOVE> must copy the pages.  Data must "
11994 "also be properly page aligned, both in memory and length."
11995 msgstr ""
11996 "ユーザ・ページがカーネルへ渡すもの (gift) であることを示す。 アプリケーション"
11997 "はこのメモリを絶対に変更してはならない。 さもなければ、ページキャッシュとディ"
11998 "スク上のデータは 一致しなくなるだろう。 ページをカーネルに渡すと、この次の "
11999 "B<splice>(2)  B<SPLICE_F_MOVE> でそのページの移動を行うことができる。 このフ"
12000 "ラグが指定されなかった場合、この次の B<splice>(2)  B<SPLICE_F_MOVE> でその"
12001 "ページのコピーを行わなければならない。 データはメモリ上でページ境界にあってい"
12002 "なければならず、 長さもページ境界の倍数でなければならない。"
12003
12004 #. type: Plain text
12005 #: build/C/man2/vmsplice.2:122
12006 msgid ""
12007 "Upon successful completion, B<vmsplice>()  returns the number of bytes "
12008 "transferred to the pipe.  On error, B<vmsplice>()  returns -1 and I<errno> "
12009 "is set to indicate the error."
12010 msgstr ""
12011 "成功して完了すると、 B<vmsplice>()  はパイプに転送したバイト数を返す。 エラー"
12012 "の場合、 B<vmplice>()  は -1 を返し、 I<errno> をエラーを示す値に設定する。"
12013
12014 #. type: Plain text
12015 #: build/C/man2/vmsplice.2:127
12016 msgid "I<fd> either not valid, or doesn't refer to a pipe."
12017 msgstr "I<fd> が有効でない、もしくはパイプを参照していない。"
12018
12019 #. type: Plain text
12020 #: build/C/man2/vmsplice.2:135
12021 msgid ""
12022 "I<nr_segs> is 0 or greater than B<IOV_MAX>; or memory not aligned if "
12023 "B<SPLICE_F_GIFT> set."
12024 msgstr ""
12025 "I<nr_segs> が 0 もしくは B<IOV_MAX> よりも大きい。または B<SPLICE_F_GIFT> が"
12026 "設定されたがメモリがページ境界にあっていない。"
12027
12028 #. type: Plain text
12029 #: build/C/man2/vmsplice.2:143
12030 msgid ""
12031 "The B<vmsplice>()  system call first appeared in Linux 2.6.17; library "
12032 "support was added to glibc in version 2.5."
12033 msgstr ""
12034 "B<vmsplice>() システムコールは Linux 2.6.17 で初めて登場した。\n"
12035 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
12036
12037 #. type: Plain text
12038 #: build/C/man2/vmsplice.2:154
12039 msgid ""
12040 "B<vmsplice>()  follows the other vectorized read/write type functions when "
12041 "it comes to limitations on number of segments being passed in.  This limit "
12042 "is B<IOV_MAX> as defined in I<E<lt>limits.hE<gt>>.  At the time of this "
12043 "writing, that limit is 1024."
12044 msgstr ""
12045 "指定されたセグメント数が上限に達した場合、 B<vmsplice>()  は他のベクトル形式"
12046 "の read/write を行う関数と同じ動作をする。 上限は B<IOV_MAX> であり、 "
12047 "I<E<lt>limits.hE<gt>> で定義されている。 このドキュメントを書いた時点での値"
12048 "は 1024 である。"
12049
12050 #. type: Plain text
12051 #: build/C/man2/vmsplice.2:157
12052 msgid "B<splice>(2), B<tee>(2)"
12053 msgstr "B<splice>(2), B<tee>(2)"
12054
12055 #~ msgid "2012-03-05"
12056 #~ msgstr "2012-03-05"
12057
12058 #~ msgid "2013-07-16"
12059 #~ msgstr "2013-07-16"
12060
12061 #~ msgid "2013-03-15"
12062 #~ msgstr "2013-03-15"
12063
12064 #~ msgid "B<futex>(7)"
12065 #~ msgstr "B<futex>(7)"
12066
12067 #, fuzzy
12068 #~| msgid "The I<subcmd> value is one of the following:"
12069 #~ msgid "The I<flags> argument takes one of the following values:"
12070 #~ msgstr "I<subcmd> の値は以下のいずれかである"
12071
12072 #~ msgid ""
12073 #~ "Depending on which operation was executed, the returned value for a "
12074 #~ "successful call can have differing meanings."
12075 #~ msgstr "どの操作が実行されたかによって、 成功時の返り値の意味が変わる。"
12076
12077 #~ msgid ""
12078 #~ "Returns 0 if the process was woken by a B<FUTEX_WAKE> call.  In case of "
12079 #~ "timeout, the operation fails with the error B<ETIMEDOUT>.  If the futex "
12080 #~ "was not equal to the expected value, the operation fails with the error "
12081 #~ "B<EWOULDBLOCK>.  Signals (see B<signal>(7))  or other spurious wakeups "
12082 #~ "cause B<FUTEX_WAIT> to fail with the error B<EINTR>."
12083 #~ msgstr ""
12084 #~ "プロセスが B<FUTEX_WAKE> の呼び出しで wake すると 0 を返す。 タイムアウト"
12085 #~ "の場合、操作はエラー B<ETIMEOUT> で失敗する。 futex が指定された値と等しく"
12086 #~ "ない場合、 エラー B<EWOULDBLOCK> で失敗する。 シグナルを受信するか "
12087 #~ "(B<signal>(7)  参照) 他の偽の wake があった場合には、エラー B<EINTR> で失"
12088 #~ "敗する。"
12089
12090 #~ msgid "An operation was not defined or error in page alignment."
12091 #~ msgstr ""
12092 #~ "操作が定義されていない。またはページ・アラインメントでエラーが発生した。"
12093
12094 #, fuzzy
12095 #~| msgid ""
12096 #~| "Indicates that this process is to be traced by its parent.  Any signal "
12097 #~| "(except B<SIGKILL>)  delivered to this process will cause it to stop and "
12098 #~| "its parent to be notified via B<wait>(2).  Also, all subsequent calls to "
12099 #~| "B<execve>(2)  by this process will cause a B<SIGTRAP> to be sent to it, "
12100 #~| "giving the parent a chance to gain control before the new program begins "
12101 #~| "execution.  A process probably shouldn't make this request if its parent "
12102 #~| "isn't expecting to trace it.  (I<pid>, I<addr>, and I<data> are ignored.)"
12103 #~ msgid ""
12104 #~ "Indicate that this process is to be traced by its parent.  Any signal "
12105 #~ "(except B<SIGKILL>)  delivered to this process will cause it to stop and "
12106 #~ "its parent to be notified via B<waitpid>(2).  In addition, all subsequent "
12107 #~ "calls to B<execve>(2)  by the traced process will cause a B<SIGTRAP> to "
12108 #~ "be sent to it, giving the parent a chance to gain control before the new "
12109 #~ "program begins execution.  A process probably shouldn't make this request "
12110 #~ "if its parent isn't expecting to trace it.  (I<pid>, I<addr>, and I<data> "
12111 #~ "are ignored.)"
12112 #~ msgstr ""
12113 #~ "このプロセスが親プロセスによってトレースされることを表す。 このプロセスに "
12114 #~ "(B<SIGKILL> 以外の) シグナルが配送されると、 プロセスは停止し、親プロセス"
12115 #~ "に B<wait>(2)  を通じて通知される。 また、これ以降はこのプロセスが "
12116 #~ "B<execve>(2)  を呼び出す度に B<SIGTRAP> が送信されるようになる。 これに"
12117 #~ "よって、親プロセスは 新しいプログラムが実行を開始する前に制御することがで"
12118 #~ "きる。 親プロセスが自プロセスをトレースするつもりがない場合には、 おそらく"
12119 #~ "このプロセスは本要求を行うべきではないだろう。 (I<pid>, I<addr>, I<data> "
12120 #~ "は無視される。)"
12121
12122 #~ msgid ""
12123 #~ "Stop the child at the next B<execve>(2)  call with I<SIGTRAP | "
12124 #~ "PTRACE_EVENT_EXEC\\ E<lt>E<lt>\\ 8>."
12125 #~ msgstr ""
12126 #~ "次の B<execve>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_EXEC\\ E<lt>E<lt>"
12127 #~ "\\ 8> で子プロセスの動作を停止させる。"
12128
12129 #~ msgid ""
12130 #~ "Stop the child at the completion of the next B<vfork>(2)  call with "
12131 #~ "I<SIGTRAP | PTRACE_EVENT_VFORK_DONE\\ E<lt>E<lt>\\ 8>."
12132 #~ msgstr ""
12133 #~ "次の B<vfork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_VFORK_DONE\\ "
12134 #~ "E<lt>E<lt>\\ 8> で子プロセスの動作を停止させる。"
12135
12136 #~ msgid ""
12137 #~ "Attaches to the process specified in I<pid>, making it a traced \"child\" "
12138 #~ "of the calling process; the behavior of the child is as if it had done a "
12139 #~ "B<PTRACE_TRACEME>.  The calling process actually becomes the parent of "
12140 #~ "the child process for most purposes (e.g., it will receive notification "
12141 #~ "of child events and appears in B<ps>(1)  output as the child's parent), "
12142 #~ "but a B<getppid>(2)  by the child will still return the PID of the "
12143 #~ "original parent.  The child is sent a B<SIGSTOP>, but will not "
12144 #~ "necessarily have stopped by the completion of this call; use B<wait>(2)  "
12145 #~ "to wait for the child to stop.  (I<addr> and I<data> are ignored.)"
12146 #~ msgstr ""
12147 #~ "I<pid> で指定されたプロセスに接続 (attach) し、それを呼び出し元のプロセス"
12148 #~ "の 子プロセスとしてトレースできるようにする。子プロセスは "
12149 #~ "B<PTRACE_TRACEME> したかのように振舞う。呼び出し元のプロセスはそのほとんど"
12150 #~ "の目的において、 その子プロセスの実際の親になる (例えば、子プロセスのイベ"
12151 #~ "ントの 通知を受けとったり、 B<ps>(1)  で親として表示されたりする)。しか"
12152 #~ "し、子プロセスで B<getppid>(2)  を実行した場合には元の親プロセスの PID が"
12153 #~ "返される。 子プロセスには B<SIGSTOP> が送られるが、この呼び出しが完了する"
12154 #~ "までに 必ずしも停止するとは限らない。子プロセスの停止を待つには B<wait>"
12155 #~ "(2)  を使用すること。(I<addr> と I<data> は無視される。)"
12156
12157 #~ msgid ""
12158 #~ "Tracing causes a few subtle differences in the semantics of traced "
12159 #~ "processes.  For example, if a process is attached to with "
12160 #~ "B<PTRACE_ATTACH>, its original parent can no longer receive notification "
12161 #~ "via B<wait>(2)  when it stops, and there is no way for the new parent to "
12162 #~ "effectively simulate this notification."
12163 #~ msgstr ""
12164 #~ "トレースすることによってトレースされるプロセスの動作に些細な違いが 起こる"
12165 #~ "ことがある。例えば、プロセスが B<PTRACE_ATTACH> によって接続された場合に"
12166 #~ "は、そのプロセスが停止した時でも本来の親は B<wait>(2)  を使って通知を受け"
12167 #~ "ることができず、新しい親が効率よく この通知を真似る方法もない。"
12168
12169 #~ msgid ""
12170 #~ "When the parent receives an event with B<PTRACE_EVENT_*> set, the child "
12171 #~ "is not in the normal signal delivery path.  This means the parent cannot "
12172 #~ "do B<ptrace>(PTRACE_CONT)  with a signal or B<ptrace>(PTRACE_KILL).  "
12173 #~ "B<kill>(2)  with a B<SIGKILL> signal can be used instead to kill the "
12174 #~ "child process after receiving one of these messages."
12175 #~ msgstr ""
12176 #~ "親プロセスが B<PTRACE_EVENT_*> がセットされたイベントを受信した場合、 子プ"
12177 #~ "ロセスは通常通りのシグナル配送が行われる状態にない。 つまり、親プロセス"
12178 #~ "が、 シグナルにより B<ptrace>(PTRACE_CONT)  を行ったり、 B<ptrace>"
12179 #~ "(PTRACE_KILL)  を行ったりできないということである。 こららのメッセージの受"
12180 #~ "信後は、子プロセスを終了 (kill) するのに、 シグナル B<SIGKILL> を指定して "
12181 #~ "B<kill>(2)  を行う方法を代わりに使用できる。"
12182
12183 #~ msgid ""
12184 #~ "The SunOS man page describes B<ptrace>()  as \"unique and arcane\", which "
12185 #~ "it is.  The proc-based debugging interface present in Solaris 2 "
12186 #~ "implements a superset of B<ptrace>()  functionality in a more powerful "
12187 #~ "and uniform way."
12188 #~ msgstr ""
12189 #~ "SunOS のマニュアル・ページには B<ptrace>()  は「独特で不可解」と記述されて"
12190 #~ "おり、まさしくそうである。 Solaris 2 では proc ベースの デバッグのインター"
12191 #~ "フェースとして B<ptrace>()  の上位互換関数が実装され、より強力で一貫性のあ"
12192 #~ "るものとなっている。"
12193
12194 #~ msgid ""
12195 #~ "The second argument I<special> is the block special device these quota "
12196 #~ "apply to.  It must be mounted."
12197 #~ msgstr ""
12198 #~ "二番目の引き数 I<special> は quota を適用するデバイスのブロック・スペシャ"
12199 #~ "ル・ファイルである。 そのデバイスはマウントされていなくてはならない。"
12200
12201 #~ msgid ""
12202 #~ "The third argument I<id> is the user or group ID these quota apply to "
12203 #~ "(when relevant)."
12204 #~ msgstr ""
12205 #~ "三番目の引き数 I<id> には、(必要な場合に) quota を適用するユーザーもしくは"
12206 #~ "グループの ID を指定する。"
12207
12208 #~ msgid ""
12209 #~ "The fourth argument I<addr> is the address of a data structure, depending "
12210 #~ "on the command."
12211 #~ msgstr ""
12212 #~ "四番目の引き数 I<addr> には、コマンドごとに異ったデータ構造体のアドレスを"
12213 #~ "指定する。"
12214
12215 #~ msgid ""
12216 #~ "Enable quota.  The I<addr> argument is the pathname of the file "
12217 #~ "containing the quota for the file system."
12218 #~ msgstr ""
12219 #~ "quota を有効にする。 I<addr> 引き数には、そのファイル・システムの quota が"
12220 #~ "記録されているファイルの パス名を指定する。"
12221
12222 #~ msgid "Disable quota."
12223 #~ msgstr "quota を無効にする。"
12224
12225 #~ msgid "Set limits and current usage; I<addr> is as before."
12226 #~ msgstr "制限値と現在の使用量を設定する: I<addr> は同上。"
12227
12228 #~ msgid "Set limits; I<addr> is as before."
12229 #~ msgstr "制限値を設定する; I<addr> は同上。"
12230
12231 #~ msgid "Set usage."
12232 #~ msgstr "使用量を設定する。"
12233
12234 #~ msgid "Sync disk copy of a file system's quota."
12235 #~ msgstr "ファイル・システムの quota ファイルをディスクと同期させる。"
12236
12237 #~ msgid "Get collected stats."
12238 #~ msgstr "収集された統計を取得する。"
12239
12240 #~ msgid ""
12241 #~ "On success, B<quotactl>()  returns 0.  On error, -1 is returned, and "
12242 #~ "I<errno> is set appropriately."
12243 #~ msgstr ""
12244 #~ "B<quotactl>()  は、成功時には 0 を返す。エラー時は、-1 を返すとともに、 "
12245 #~ "I<errno> が適切な値に設定される。"
12246
12247 #~ msgid "B<Q_QUOTAON> was asked, but quotas were enabled already."
12248 #~ msgstr "B<Q_QUOTAON> の要求がなされたが、quota(s) は既に有効になっている。"
12249
12250 #~ msgid "Bad I<addr> value."
12251 #~ msgstr "I<addr> の値に誤りがある。"
12252
12253 #~ msgid ""
12254 #~ "I<type> is not a known quota type.  Or, I<special> could not be found."
12255 #~ msgstr ""
12256 #~ "I<type> が既知の quota の形式ではない。もしくは、 I<special> デバイスが見"
12257 #~ "付からなかった。"
12258
12259 #~ msgid "Too many open files: cannot open quota file."
12260 #~ msgstr "ファイルをオープンしすぎている: quota ファイルをオープン出来ない。"
12261
12262 #~ msgid "I<special> cannot be found in the mount table."
12263 #~ msgstr "I<special> がマウント・テーブル内に見当たらない。"
12264
12265 #~ msgid "The kernel was compiled without quota support."
12266 #~ msgstr "quota を使用可にしてカーネルをコンパイルしていない。"
12267
12268 #~ msgid ""
12269 #~ "The process was not root (for the file system), and B<Q_GETQUOTA> was "
12270 #~ "asked for another I<id> than that of the process itself, or anything "
12271 #~ "other than B<Q_GETSTATS> or B<Q_SYNC> was asked."
12272 #~ msgstr ""
12273 #~ "プロセスが (そのファイル・システムの) root のものではなく、 かつプロセス自"
12274 #~ "身のものとは異なる I<id> に対して B<Q_GETQUOTA> 要求を行なった。 もしく"
12275 #~ "は、 B<Q_GETSTATS>, B<Q_SYNC> 以外の要求がなされた。"
12276
12277 #~ msgid ""
12278 #~ "B<Q_GETQUOTA> or B<Q_SETQUOTA> or B<Q_SETUSE> or B<Q_SETQLIM> was asked "
12279 #~ "for a file system that didn't have quota enabled."
12280 #~ msgstr ""
12281 #~ "quota が有効になっていないファイル・システムに対して B<Q_GETQUOTA>, "
12282 #~ "B<Q_SETQUOTA>, B<Q_SETUSE>, B<Q_SETQLIM> のいずれかの要求がなされた。"