OSDN Git Service

LDP: Update POT and ja.po to LDP v3.78-git-80a7408
[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: 2015-01-21 20:35+0900\n"
10 "PO-Revision-Date: 2015-01-11 04:22+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:46
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:46 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:47
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:49
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:70
122 #: build/C/man2/get_robust_list.2:45 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:66 build/C/man2/ptrace.2:56
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:216
208 #: build/C/man2/get_robust_list.2:78 build/C/man2/getunwind.2:81
209 #: build/C/man2/kexec_load.2:117 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:2526
212 #: build/C/man2/perfmonctl.2:190 build/C/man2/personality.2:62
213 #: build/C/man2/pivot_root.2:101 build/C/man2/process_vm_readv.2:225
214 #: build/C/man2/ptrace.2:1896 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:135 build/C/man2/tee.2:85 build/C/man2/vm86.2:54
217 #: build/C/man2/vmsplice.2:117
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:241
233 #: build/C/man2/get_robust_list.2:85 build/C/man2/getunwind.2:88
234 #: build/C/man2/kexec_load.2:124 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:2532 build/C/man2/personality.2:69
237 #: build/C/man2/pivot_root.2:105 build/C/man2/process_vm_readv.2:245
238 #: build/C/man2/ptrace.2:1911 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:150 build/C/man2/tee.2:100 build/C/man2/vm86.2:59
241 #: build/C/man2/vmsplice.2:126
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:256
248 #: build/C/man2/get_robust_list.2:112 build/C/man2/lookup_dcookie.2:51
249 #: build/C/man2/modify_ldt.2:109 build/C/man2/perf_event_open.2:2578
250 #: build/C/man2/process_vm_readv.2:267 build/C/man2/process_vm_readv.2:272
251 #: build/C/man2/ptrace.2:1915 build/C/man2/quotactl.2:428
252 #: build/C/man2/sendfile.2:125 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:268
268 #: build/C/man2/get_robust_list.2:89 build/C/man2/kexec_load.2:129
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:2583
271 #: build/C/man2/personality.2:70 build/C/man2/pivot_root.2:114
272 #: build/C/man2/process_vm_readv.2:246 build/C/man2/process_vm_readv.2:257
273 #: build/C/man2/process_vm_readv.2:261 build/C/man2/ptrace.2:1926
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:161
276 #: build/C/man2/tee.2:107 build/C/man2/vmsplice.2:137
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:99
288 #: build/C/man2/kexec_load.2:136 build/C/man2/lookup_dcookie.2:65
289 #: build/C/man2/pciconfig_read.2:105 build/C/man2/perf_event_open.2:2650
290 #: build/C/man2/pivot_root.2:120 build/C/man2/process_vm_readv.2:283
291 #: build/C/man2/ptrace.2:1936 build/C/man2/quotactl.2:456
292 #: build/C/man2/vm86.2:68
293 #, no-wrap
294 msgid "B<EPERM>"
295 msgstr "B<EPERM>"
296
297 #.  .SH AUTHOR
298 #.  Man page written by Andi Kleen.
299 #. type: Plain text
300 #: build/C/man2/arch_prctl.2:103
301 msgid "I<addr> is outside the process address space."
302 msgstr "I<addr> がプロセスのアドレス空間の外にある。"
303
304 #. type: SH
305 #: build/C/man2/arch_prctl.2:103 build/C/man2/futex.2:303
306 #: build/C/man2/getunwind.2:96 build/C/man2/kexec_load.2:145
307 #: build/C/man2/lookup_dcookie.2:78 build/C/man2/modify_ldt.2:130
308 #: build/C/man2/nfsservctl.2:58 build/C/man2/outb.2:87
309 #: build/C/man2/pciconfig_read.2:112 build/C/man2/perf_event_open.2:2671
310 #: build/C/man2/perfmonctl.2:199 build/C/man2/personality.2:73
311 #: build/C/man2/pivot_root.2:128 build/C/man2/process_vm_readv.2:295
312 #: build/C/man2/ptrace.2:1954 build/C/man2/sendfile.2:148
313 #: build/C/man2/set_tid_address.2:97 build/C/man2/splice.2:184
314 #: build/C/man2/tee.2:125 build/C/man2/vm86.2:73 build/C/man2/vmsplice.2:153
315 #, no-wrap
316 msgid "CONFORMING TO"
317 msgstr "準拠"
318
319 #. type: Plain text
320 #: build/C/man2/arch_prctl.2:107
321 msgid ""
322 "B<arch_prctl>()  is a Linux/x86-64 extension and should not be used in "
323 "programs intended to be portable."
324 msgstr ""
325 "B<arch_prctl>()  は Linux/x86-64 拡張であり、移植性を意図したプログラムでは使"
326 "うべきでない。"
327
328 #. type: SH
329 #: build/C/man2/arch_prctl.2:107 build/C/man2/futex.2:305
330 #: build/C/man2/get_robust_list.2:118 build/C/man2/getunwind.2:99
331 #: build/C/man2/kexec_load.2:147 build/C/man2/lookup_dcookie.2:81
332 #: build/C/man2/modify_ldt.2:133 build/C/man2/perf_event_open.2:2676
333 #: build/C/man2/perfmonctl.2:202 build/C/man2/pivot_root.2:131
334 #: build/C/man2/process_vm_readv.2:297 build/C/man2/ptrace.2:1956
335 #: build/C/man2/sendfile.2:155 build/C/man2/splice.2:186
336 #: build/C/man2/tee.2:127 build/C/man2/vmsplice.2:155
337 #, no-wrap
338 msgid "NOTES"
339 msgstr "注意"
340
341 #. type: Plain text
342 #: build/C/man2/arch_prctl.2:110
343 msgid ""
344 "B<arch_prctl>()  is supported only on Linux/x86-64 for 64-bit programs "
345 "currently."
346 msgstr ""
347 "B<arch_prctl>()  は現在のところ Linux/x86-64 上の 64 ビットプログラムでのみサ"
348 "ポートされている。"
349
350 #. type: Plain text
351 #: build/C/man2/arch_prctl.2:112
352 msgid "The 64-bit base changes when a new 32-bit segment selector is loaded."
353 msgstr ""
354 "新しい 32 ビットセグメントセレクタがロードされた場合、 64 ビットベースは変更"
355 "される。"
356
357 #. type: Plain text
358 #: build/C/man2/arch_prctl.2:115
359 msgid "B<ARCH_SET_GS> is disabled in some kernels."
360 msgstr "B<ARCH_SET_GS> が無効にされているカーネルもある。"
361
362 #. type: Plain text
363 #: build/C/man2/arch_prctl.2:130
364 msgid ""
365 "Context switches for 64-bit segment bases are rather expensive.  It may be a "
366 "faster alternative to set a 32-bit base using a segment selector by setting "
367 "up an LDT with B<modify_ldt>(2)  or using the B<set_thread_area>(2)  system "
368 "call in kernel 2.5 or later.  B<arch_prctl>()  is needed only when you want "
369 "to set bases that are larger than 4GB.  Memory in the first 2GB of address "
370 "space can be allocated by using B<mmap>(2)  with the B<MAP_32BIT> flag."
371 msgstr ""
372 "64 ビットセグメントベースのコンテキストスイッチは、やや高価である。 LDT を "
373 "B<modify_ldt>(2)  で設定してセグメントセレクタを使うか、 (カーネル 2.5 以降"
374 "の)  B<set_thread_area>(2)  システムコールを使うことにより、 32 ビットベース"
375 "を設定するという高速な代替手段もある。 4GB より大きなベースを設定したい場合に"
376 "のみ、 B<arch_prctl>()  が必要である。 アドレス空間の最初の 2GB にあるメモリ"
377 "は、 B<mmap>(2)  に B<MAP_32BIT> フラグを指定して割り当てることができる。"
378
379 #. type: Plain text
380 #: build/C/man2/arch_prctl.2:135
381 msgid ""
382 "As of version 2.7, glibc provides no prototype for B<arch_prctl>().  You "
383 "have to declare it yourself for now.  This may be fixed in future glibc "
384 "versions."
385 msgstr ""
386 "バージョン 2.7 時点では、glibc には B<arch_prctl>()  のプロトタイプがない。 "
387 "今のところユーザは自分自身で宣言する必要がある。 これは将来の glibc のバー"
388 "ジョンで修正されるかもしれない。"
389
390 #. type: Plain text
391 #: build/C/man2/arch_prctl.2:138
392 msgid "I<FS> may be already used by the threading library."
393 msgstr "I<FS> はスレッドライブラリで既に使われているかもしれない。"
394
395 #. type: SH
396 #: build/C/man2/arch_prctl.2:138 build/C/man2/futex.2:319
397 #: build/C/man2/get_robust_list.2:127 build/C/man2/getunwind.2:111
398 #: build/C/man2/kexec_load.2:162 build/C/man2/modify_ldt.2:136
399 #: build/C/man2/outb.2:96 build/C/man2/pciconfig_read.2:114
400 #: build/C/man2/perf_event_open.2:2807 build/C/man2/perfmonctl.2:205
401 #: build/C/man2/pivot_root.2:143 build/C/man2/process_vm_readv.2:347
402 #: build/C/man2/ptrace.2:2122 build/C/man2/quotactl.2:507
403 #: build/C/man2/sendfile.2:197 build/C/man2/set_tid_address.2:99
404 #: build/C/man2/splice.2:240 build/C/man2/tee.2:214
405 #: build/C/man2/vmsplice.2:164
406 #, no-wrap
407 msgid "SEE ALSO"
408 msgstr "関連項目"
409
410 #. type: Plain text
411 #: build/C/man2/arch_prctl.2:143
412 msgid "B<mmap>(2), B<modify_ldt>(2), B<prctl>(2), B<set_thread_area>(2)"
413 msgstr "B<mmap>(2), B<modify_ldt>(2), B<prctl>(2), B<set_thread_area>(2)"
414
415 #. type: Plain text
416 #: build/C/man2/arch_prctl.2:144
417 msgid "AMD X86-64 Programmer's manual"
418 msgstr "AMD X86-64 Programmer's manual"
419
420 #. type: TH
421 #: build/C/man2/futex.2:53
422 #, no-wrap
423 msgid "FUTEX"
424 msgstr "FUTEX"
425
426 #. type: TH
427 #: build/C/man2/futex.2:53
428 #, no-wrap
429 msgid "2014-05-21"
430 msgstr "2014-05-21"
431
432 #. type: Plain text
433 #: build/C/man2/futex.2:56
434 msgid "futex - fast user-space locking"
435 msgstr "futex - 高速ユーザ空間ロック"
436
437 #. type: Plain text
438 #: build/C/man2/futex.2:61
439 #, no-wrap
440 msgid ""
441 "B<#include E<lt>linux/futex.hE<gt>>\n"
442 "B<#include E<lt>sys/time.hE<gt>>\n"
443 msgstr ""
444 "B<#include E<lt>linux/futex.hE<gt>>\n"
445 "B<#include E<lt>sys/time.hE<gt>>\n"
446
447 #. type: Plain text
448 #: build/C/man2/futex.2:64
449 #, no-wrap
450 msgid "B<int futex(int *>I<uaddr>B<, int >I<op>B<, int >I<val>B<, const struct timespec *>I<timeout>B<,>\n"
451 msgstr "B<int futex(int *>I<uaddr>B<, int >I<op>B<, int >I<val>B<, const struct timespec *>I<timeout>B<,>\n"
452
453 #.  int *? void *? u32 *?
454 #. type: Plain text
455 #: build/C/man2/futex.2:67
456 #, no-wrap
457 msgid "B<          int *>I<uaddr2>B<, int >I<val3>B<);>\n"
458 msgstr "B<          int *>I<uaddr2>B<, int >I<val3>B<);>\n"
459
460 #. type: Plain text
461 #: build/C/man2/futex.2:70 build/C/man2/getunwind.2:40
462 #: build/C/man2/kexec_load.2:39 build/C/man2/modify_ldt.2:36
463 #: build/C/man2/perf_event_open.2:42 build/C/man2/perfmonctl.2:39
464 #: build/C/man2/pivot_root.2:18
465 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
466 msgstr ""
467 "I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
468 "を参照。"
469
470 #. type: Plain text
471 #: build/C/man2/futex.2:86
472 msgid ""
473 "The B<futex>()  system call provides a method for a program to wait for a "
474 "value at a given address to change, and a method to wake up anyone waiting "
475 "on a particular address (while the addresses for the same memory in separate "
476 "processes may not be equal, the kernel maps them internally so the same "
477 "memory mapped in different locations will correspond for B<futex>()  "
478 "calls).  This system call is typically used to implement the contended case "
479 "of a lock in shared memory, as described in B<futex>(7)."
480 msgstr ""
481 "B<futex>()  システムコールは、 指定したアドレスの値が変更されるのをプログラム"
482 "が待つ手段や 特定のアドレスに対して待機中のプロセスを wake (起床) させる手段"
483 "を提供する (プロセスが異なれば同じメモリに対するアドレスも同じではないかもし"
484 "れないが、 カーネルは異なる位置にマップされた同じメモリを B<futex>()  で使え"
485 "るよう内部でマップする)。 通常は、このシステムコールは B<futex>(7)  に書かれ"
486 "ているように、 共有メモリ中のロックが競合する場合の処理を実装するのに用いられ"
487 "る。"
488
489 #. type: Plain text
490 #: build/C/man2/futex.2:93
491 msgid ""
492 "When a B<futex>(7)  operation did not finish uncontended in user space, a "
493 "call needs to be made to the kernel to arbitrate.  Arbitration can either "
494 "mean putting the calling process to sleep or, conversely, waking a waiting "
495 "process."
496 msgstr ""
497 "B<futex>(7)  の操作がユーザ空間で競合なく完了しなかった場合、 カーネルに仲裁"
498 "させるためにシステムコールを呼ぶ必要がある。 仲裁というのは、呼び出しプロセス"
499 "を sleep (起床待ち) させたり、反対に 待ちプロセスを wake させたりすることを意"
500 "味する。"
501
502 #. type: Plain text
503 #: build/C/man2/futex.2:100
504 msgid ""
505 "Callers of this function are expected to adhere to the semantics as set out "
506 "in B<futex>(7).  As these semantics involve writing nonportable assembly "
507 "instructions, this in turn probably means that most users will in fact be "
508 "library authors and not general application developers."
509 msgstr ""
510 "この関数を呼び出すプロセスは B<futex>(7)  に記述されているセマンティクスに忠"
511 "実であることが要求される。 このセマンティクスには移植不可能なアセンブリ命令を"
512 "書くことが含まれる。 このことは言い換えると futex のユーザのほとんどは実際は"
513 "ライブラリの作者であり、 一般アプリケーションの開発者ではないということであ"
514 "る。"
515
516 #. type: Plain text
517 #: build/C/man2/futex.2:108
518 msgid ""
519 "The I<uaddr> argument needs to point to an aligned integer which stores the "
520 "counter.  The operation to execute is passed via the I<op> argument, along "
521 "with a value I<val>."
522 msgstr ""
523 "I<uaddr> 引き数は、カウンタを格納する、 アラインメントの揃った int 型変数を指"
524 "している必要がある。 実行する操作は I<op> 引き数を介して、値 I<val> とともに"
525 "渡される。"
526
527 #. type: Plain text
528 #: build/C/man2/futex.2:110
529 msgid "Five operations are currently defined:"
530 msgstr "現在のところ 5 つの操作が定義されている:"
531
532 #. type: TP
533 #: build/C/man2/futex.2:110 build/C/man2/futex.2:223
534 #, no-wrap
535 msgid "B<FUTEX_WAIT>"
536 msgstr "B<FUTEX_WAIT>"
537
538 #. type: Plain text
539 #: build/C/man2/futex.2:133
540 msgid ""
541 "This operation atomically verifies that the futex address I<uaddr> still "
542 "contains the value I<val>, and sleeps awaiting B<FUTEX_WAKE> on this futex "
543 "address.  If the I<timeout> argument is non-NULL, its contents specify the "
544 "duration of the wait.  (This interval will be rounded up to the system clock "
545 "granularity, and kernel scheduling delays mean that the blocking interval "
546 "may overrun by a small amount.)  If I<timeout> is NULL, the call blocks "
547 "indefinitely.  The arguments I<uaddr2> and I<val3> are ignored."
548 msgstr ""
549 "この操作は futex アドレス I<uaddr> に指定された値 I<val> がまだ格納されている"
550 "かどうかを不可分操作で検証し、 sleep 状態で この futex アドレスに対して "
551 "B<FUTEX_WAKE> が実行されるのを待つ。 I<timeout> 引き数が NULL でない場合、そ"
552 "の内容は待ち時間の最大値を表す (この停止時間はシステムクロックの粒度に切り上"
553 "げられ、 カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。 "
554 "NULL の場合、 呼び出しは無限に停止する。 引き数 I<uaddr2> と I<val3> は無視さ"
555 "れる。"
556
557 #. type: Plain text
558 #: build/C/man2/futex.2:141
559 msgid ""
560 "For B<futex>(7), this call is executed if decrementing the count gave a "
561 "negative value (indicating contention), and will sleep until another process "
562 "releases the futex and executes the B<FUTEX_WAKE> operation."
563 msgstr ""
564 "B<futex>(7)  に照らし合わせると、この呼び出しは カウントのデクリメントで負の"
565 "値 (競合を表す) になった場合に実行され、 別のプロセスがその futex を解放し "
566 "B<FUTEX_WAKE> の操作を実行するまで sleep する。"
567
568 #. type: TP
569 #: build/C/man2/futex.2:141 build/C/man2/futex.2:229
570 #, no-wrap
571 msgid "B<FUTEX_WAKE>"
572 msgstr "B<FUTEX_WAKE>"
573
574 #. type: Plain text
575 #: build/C/man2/futex.2:152
576 msgid ""
577 "This operation wakes at most I<val> processes waiting on this futex address "
578 "(i.e., inside B<FUTEX_WAIT>).  The arguments I<timeout>, I<uaddr2> and "
579 "I<val3> are ignored."
580 msgstr ""
581 "この操作では指定した futex アドレスに対して待ち状態の (すなわち "
582 "B<FUTEX_WAIT> 中の) 最大 I<val> 個のプロセスを wake させる。 引き数 "
583 "I<timeout>, I<uaddr2>, I<val3> は無視される。"
584
585 #. type: Plain text
586 #: build/C/man2/futex.2:158
587 msgid ""
588 "For B<futex>(7), this is executed if incrementing the count showed that "
589 "there were waiters, once the futex value has been set to 1 (indicating that "
590 "it is available)."
591 msgstr ""
592 "B<futex>(4) に照らし合わせると、 この操作は カウントのインクリメントで待ちプ"
593 "ロセスがあると判明し、 futex 値が 1 に設定された (利用可能であることを表す) "
594 "場合に実行される。"
595
596 #. type: TP
597 #: build/C/man2/futex.2:158
598 #, no-wrap
599 msgid "B<FUTEX_FD> (present up to and including Linux 2.6.25)"
600 msgstr "B<FUTEX_FD> (Linux 2.6.25 以前)"
601
602 #.  , suitable for .BR poll (2).
603 #. type: Plain text
604 #: build/C/man2/futex.2:174
605 msgid ""
606 "To support asynchronous wakeups, this operation associates a file descriptor "
607 "with a futex.  If another process executes a B<FUTEX_WAKE>, the process will "
608 "receive the signal number that was passed in I<val>.  The calling process "
609 "must close the returned file descriptor after use.  The arguments "
610 "I<timeout>, I<uaddr2> and I<val3> are ignored."
611 msgstr ""
612 "非同期の wake に対応するため、この操作はファイルディスクリプタを futex に 関"
613 "連づける。 別のプロセスが B<FUTEX_WAKE> を実行すると、プロセスは I<val> で渡"
614 "されたシグナル番号のシグナルを受信する。 呼び出しプロセスは使用後、返された"
615 "ファイルディスクリプタを クローズしなければならない。 引き数 I<timeout>, "
616 "I<uaddr2>, I<val3> は無視される。"
617
618 #. type: Plain text
619 #: build/C/man2/futex.2:179
620 msgid ""
621 "To prevent race conditions, the caller should test if the futex has been "
622 "upped after B<FUTEX_FD> returns."
623 msgstr ""
624 "競合状態を防止するため、呼び出しプロセスは B<FUTEX_FD> が返ったあと futex が "
625 "up されたかどうかを確認しなければならない。"
626
627 #. type: Plain text
628 #: build/C/man2/futex.2:183
629 msgid ""
630 "Because it was inherently racy, B<FUTEX_FD> has been removed from Linux "
631 "2.6.26 onward."
632 msgstr ""
633 "B<FUTEX_FD> はもともと競合が起きやすかったため、 Linux 2.6.26 以降で削除され"
634 "ている。"
635
636 #. type: TP
637 #: build/C/man2/futex.2:183
638 #, no-wrap
639 msgid "B<FUTEX_REQUEUE> (since Linux 2.5.70)"
640 msgstr "B<FUTEX_REQUEUE> (Linux 2.5.70 以降)"
641
642 #. type: Plain text
643 #: build/C/man2/futex.2:198
644 msgid ""
645 "This operation was introduced in order to avoid a \"thundering herd\" effect "
646 "when B<FUTEX_WAKE> is used and all processes woken up need to acquire "
647 "another futex.  This call wakes up I<val> processes, and requeues all other "
648 "waiters on the futex at address I<uaddr2>.  The arguments I<timeout> and "
649 "I<val3> are ignored."
650 msgstr ""
651 "この操作は、 B<FUTEX_WAKE> が使われていて、かつ wake されている全てのプロセス"
652 "が 他の futex を取得する必要がある場合に、 「獣の群れの暴走 (thundering "
653 "herd)」効果を避けるために導入された。 この呼び出しは I<val> 個のプロセスを "
654 "wake し、アドレス I<uaddr2> で futex を待っている他の全てのプロセスを再度"
655 "キューにいれる。 引き数 I<timeout> と I<val3> は無視される。"
656
657 #. type: TP
658 #: build/C/man2/futex.2:198
659 #, no-wrap
660 msgid "B<FUTEX_CMP_REQUEUE> (since Linux 2.6.7)"
661 msgstr "B<FUTEX_CMP_REQUEUE> (Linux 2.6.7 以降)"
662
663 #. type: Plain text
664 #: build/C/man2/futex.2:216
665 msgid ""
666 "There was a race in the intended use of B<FUTEX_REQUEUE>, so "
667 "B<FUTEX_CMP_REQUEUE> was introduced.  This is similar to B<FUTEX_REQUEUE>, "
668 "but first checks whether the location I<uaddr> still contains the value "
669 "I<val3>.  If not, the operation fails with the error B<EAGAIN>.  The "
670 "argument I<timeout> is ignored."
671 msgstr ""
672 "故意に B<FUTEX_REQUEUE> を使う場合に競合が起こるため、 B<FUTEX_CMP_REQUEUE> "
673 "が導入された。これは B<FUTEX_REQUEUE> と似ているが、場所 I<uaddr> に値 "
674 "I<val3> がまだ保持されているかを最初にチェックする。 保持されていない場合、操"
675 "作はエラー B<EAGAIN> で失敗する。引き数 I<timeout> は無視される。"
676
677 #. type: Plain text
678 #: build/C/man2/futex.2:223
679 msgid ""
680 "In the event of an error, all operations return -1, and set I<errno> to "
681 "indicate the error.  The return value on success depends on the operation, "
682 "as described in the following list:"
683 msgstr ""
684 "エラーの場合、全ての操作で -1 が返り、 I<errno> がエラーの内容を示す値に設定"
685 "される。成功時の返り値は操作によって異なり、以下のリストに書かれている通りで"
686 "ある。"
687
688 #. type: Plain text
689 #: build/C/man2/futex.2:229
690 msgid ""
691 "Returns 0 if the process was woken by a B<FUTEX_WAKE> call.  See ERRORS for "
692 "the various possible error returns."
693 msgstr ""
694 "そのプロセスが B<FUTEX_WAKE> により wake された場合 0 を返す。発生する可能性"
695 "があるエラーについては「エラー」の節を参照。"
696
697 #. type: Plain text
698 #: build/C/man2/futex.2:232 build/C/man2/futex.2:238 build/C/man2/futex.2:241
699 msgid "Returns the number of processes woken up."
700 msgstr "wake したプロセスの数を返す。"
701
702 #. type: TP
703 #: build/C/man2/futex.2:232
704 #, no-wrap
705 msgid "B<FUTEX_FD>"
706 msgstr "B<FUTEX_FD>"
707
708 #. type: Plain text
709 #: build/C/man2/futex.2:235
710 msgid "Returns the new file descriptor associated with the futex."
711 msgstr "futex に関連づけられた新たなファイルディスクリプタを返す。"
712
713 #. type: TP
714 #: build/C/man2/futex.2:235
715 #, no-wrap
716 msgid "B<FUTEX_REQUEUE>"
717 msgstr "B<FUTEX_REQUEUE>"
718
719 #. type: TP
720 #: build/C/man2/futex.2:238
721 #, no-wrap
722 msgid "B<FUTEX_CMP_REQUEUE>"
723 msgstr "B<FUTEX_CMP_REQUEUE>"
724
725 #. type: TP
726 #: build/C/man2/futex.2:242 build/C/man2/perf_event_open.2:2554
727 #: build/C/man2/quotactl.2:486
728 #, no-wrap
729 msgid "B<EACCES>"
730 msgstr "B<EACCES>"
731
732 #. type: Plain text
733 #: build/C/man2/futex.2:245
734 msgid "No read access to futex memory."
735 msgstr "futex メモリに読み込みアクセス権がなかった。"
736
737 #. type: TP
738 #: build/C/man2/futex.2:245 build/C/man2/sendfile.2:116
739 #: build/C/man2/splice.2:151 build/C/man2/tee.2:101
740 #: build/C/man2/vmsplice.2:127
741 #, no-wrap
742 msgid "B<EAGAIN>"
743 msgstr "B<EAGAIN>"
744
745 #. type: Plain text
746 #: build/C/man2/futex.2:256
747 msgid ""
748 "B<FUTEX_CMP_REQUEUE> detected that the value pointed to by I<uaddr> is not "
749 "equal to the expected value I<val3>.  (This probably indicates a race; use "
750 "the safe B<FUTEX_WAKE> now.)"
751 msgstr ""
752 "B<FUTEX_CMP_REQUEUE> で、I<uaddr> が指す値が期待値 I<val3> と異なる状況が検出"
753 "された。 (これは競合を示しているかもしれない。この場合は安全な B<FUTEX_WAKE> "
754 "を使うこと。)"
755
756 #. type: Plain text
757 #: build/C/man2/futex.2:261
758 msgid "Error retrieving I<timeout> information from user space."
759 msgstr "ユーザ空間から I<timeout> の情報を取得する際にエラーが発生した。"
760
761 #. type: TP
762 #: build/C/man2/futex.2:261
763 #, no-wrap
764 msgid "B<EINTR>"
765 msgstr "B<EINTR>"
766
767 #. type: Plain text
768 #: build/C/man2/futex.2:268
769 msgid ""
770 "A B<FUTEX_WAIT> operation was interrupted by a signal (see B<signal>(7))  or "
771 "a spurious wakeup."
772 msgstr ""
773 "B<FUTEX_WAIT> 操作がシグナル (B<signal>(7) 参照) もしくは偽の wakeup により中"
774 "断された。"
775
776 #. type: Plain text
777 #: build/C/man2/futex.2:271
778 msgid "Invalid argument."
779 msgstr "無効な引き数。"
780
781 #. type: TP
782 #: build/C/man2/futex.2:271
783 #, no-wrap
784 msgid "B<ENFILE>"
785 msgstr "B<ENFILE>"
786
787 #. type: Plain text
788 #: build/C/man2/futex.2:274
789 msgid "The system limit on the total number of open files has been reached."
790 msgstr "オープンされているファイルの総数がシステムの制限に達した。"
791
792 #. type: TP
793 #: build/C/man2/futex.2:274 build/C/man2/modify_ldt.2:126
794 #: build/C/man2/pciconfig_read.2:93 build/C/man2/perf_event_open.2:2636
795 #: build/C/man2/quotactl.2:447 build/C/man2/vm86.2:64
796 #, no-wrap
797 msgid "B<ENOSYS>"
798 msgstr "B<ENOSYS>"
799
800 #. type: Plain text
801 #: build/C/man2/futex.2:278
802 msgid "Invalid operation specified in I<op>."
803 msgstr "I<op> に無効な操作が指定された。"
804
805 #. type: TP
806 #: build/C/man2/futex.2:278
807 #, no-wrap
808 msgid "B<ETIMEDOUT>"
809 msgstr "B<ETIMEDOUT>"
810
811 #. type: Plain text
812 #: build/C/man2/futex.2:283
813 msgid "Timeout during the B<FUTEX_WAIT> operation."
814 msgstr "B<FUTEX_WAIT> 操作でタイムアウトが発生した。"
815
816 #. type: TP
817 #: build/C/man2/futex.2:283
818 #, no-wrap
819 msgid "B<EWOULDBLOCK>"
820 msgstr "B<EWOULDBLOCK>"
821
822 #. type: Plain text
823 #: build/C/man2/futex.2:293
824 msgid ""
825 "I<op> was B<FUTEX_WAIT> and the value pointed to by I<uaddr> was not equal "
826 "to the expected value I<val> at the time of the call."
827 msgstr ""
828 "I<op> が B<FUTEX_WAIT> で、その呼び出しにおいて I<uaddr> が指す値が期待値 "
829 "I<val> と異なっていた。"
830
831 #. type: SH
832 #: build/C/man2/futex.2:293 build/C/man2/get_robust_list.2:116
833 #: build/C/man2/getunwind.2:94 build/C/man2/kexec_load.2:141
834 #: build/C/man2/lookup_dcookie.2:73 build/C/man2/perfmonctl.2:196
835 #: build/C/man2/pivot_root.2:125 build/C/man2/process_vm_readv.2:292
836 #: build/C/man2/sendfile.2:142 build/C/man2/set_tid_address.2:94
837 #: build/C/man2/splice.2:179 build/C/man2/tee.2:120
838 #: build/C/man2/vmsplice.2:148
839 #, no-wrap
840 msgid "VERSIONS"
841 msgstr "バージョン"
842
843 #. type: Plain text
844 #: build/C/man2/futex.2:303
845 msgid ""
846 "Initial futex support was merged in Linux 2.5.7 but with different semantics "
847 "from what was described above.  A 4-argument system call with the semantics "
848 "described in this page was introduced in Linux 2.5.40.  In Linux 2.5.70, one "
849 "argument was added.  In Linux 2.6.7, a sixth argument was added\\(emmessy, "
850 "especially on the s390 architecture."
851 msgstr ""
852 "最初の futex 対応は Linux 2.5.7 で組み込まれたが、 上記のセマンティクスとは異"
853 "なる。 4 つの引き数のここに書かれているセマンティクスを持つ システムコール"
854 "は、Linux 2.5.40 で導入された。 Linux 2.5.70 では 1 つの引き数が追加された。 "
855 "Linux 2.6.7 では 6 番目の引き数が追加された。 これは汚く、s390 アーキテクチャ"
856 "上の特別のものである。"
857
858 #. type: Plain text
859 #: build/C/man2/futex.2:305 build/C/man2/kexec_load.2:147
860 #: build/C/man2/set_tid_address.2:99 build/C/man2/splice.2:186
861 #: build/C/man2/tee.2:127 build/C/man2/vmsplice.2:155
862 msgid "This system call is Linux-specific."
863 msgstr "このシステムコールは Linux 固有である。"
864
865 #.  .SH "AUTHORS"
866 #.  .PP
867 #.  Futexes were designed and worked on by
868 #.  Hubertus Franke (IBM Thomas J. Watson Research Center),
869 #.  Matthew Kirkwood, Ingo Molnar (Red Hat)
870 #.  and Rusty Russell (IBM Linux Technology Center).
871 #.  This page written by bert hubert.
872 #. type: Plain text
873 #: build/C/man2/futex.2:319
874 msgid ""
875 "To reiterate, bare futexes are not intended as an easy-to-use abstraction "
876 "for end-users.  (There is no wrapper function for this system call in "
877 "glibc.)  Implementors are expected to be assembly literate and to have read "
878 "the sources of the futex user-space library referenced below."
879 msgstr ""
880 "繰り返すが、裸の futex はエンドユーザが容易に使うことのできる概念として 意図"
881 "されたものではない (glibc にはこのシステムコールに対するラッパー関数はな"
882 "い)。 実装者は、アセンブリ言語に慣れており、以下に挙げる futex ユーザ空間ライ"
883 "ブラリの ソースを読み終えていることが要求される。"
884
885 #. type: Plain text
886 #: build/C/man2/futex.2:322
887 msgid "B<restart_syscall>(2), B<futex>(7)"
888 msgstr "B<restart_syscall>(2), B<futex>(7)"
889
890 #. type: Plain text
891 #: build/C/man2/futex.2:325
892 msgid ""
893 "I<Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux> (proceedings "
894 "of the Ottawa Linux Symposium 2002), online at"
895 msgstr ""
896 "I<Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux> (proceedings "
897 "of the Ottawa Linux Symposium 2002), online at"
898
899 #. type: Plain text
900 #: build/C/man2/futex.2:328
901 msgid ""
902 "E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> "
903 "E<.UE>"
904 msgstr ""
905 "E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> "
906 "E<.UE>"
907
908 #. type: Plain text
909 #: build/C/man2/futex.2:330
910 msgid "Futex example library, futex-*.tar.bz2 at"
911 msgstr "futex の使用例ライブラリ, futex-*.tar.bz2"
912
913 #. type: Plain text
914 #: build/C/man2/futex.2:332
915 msgid ""
916 "E<.UR ftp://ftp.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> E<."
917 "UE>"
918 msgstr ""
919 "E<.UR ftp://ftp.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> E<."
920 "UE>"
921
922 #. type: TH
923 #: build/C/man2/get_robust_list.2:29
924 #, no-wrap
925 msgid "GET_ROBUST_LIST"
926 msgstr "GET_ROBUST_LIST"
927
928 #. type: TH
929 #: build/C/man2/get_robust_list.2:29
930 #, no-wrap
931 msgid "2014-05-10"
932 msgstr "2014-05-10"
933
934 #. type: TH
935 #: build/C/man2/get_robust_list.2:29
936 #, no-wrap
937 msgid "Linux System Calls"
938 msgstr "Linux System Calls"
939
940 #. type: Plain text
941 #: build/C/man2/get_robust_list.2:32
942 msgid "get_robust_list, set_robust_list - get/set list of robust futexes"
943 msgstr ""
944
945 #. type: Plain text
946 #: build/C/man2/get_robust_list.2:37
947 #, no-wrap
948 msgid ""
949 "B<#include E<lt>linux/futex.hE<gt>>\n"
950 "B<#include E<lt>sys/types.hE<gt>>\n"
951 "B<#include E<lt>syscall.hE<gt>>\n"
952 msgstr ""
953 "B<#include E<lt>linux/futex.hE<gt>>\n"
954 "B<#include E<lt>sys/types.hE<gt>>\n"
955 "B<#include E<lt>syscall.hE<gt>>\n"
956
957 #. type: Plain text
958 #: build/C/man2/get_robust_list.2:41
959 #, no-wrap
960 msgid ""
961 "B<long get_robust_list(int >I<pid>B<, struct robust_list_head **>I<head_ptr>B<,>\n"
962 "B<                     size_t *>I<len_ptr>B<);>\n"
963 "B<long set_robust_list(struct robust_list_head *>I<head>B<, size_t >I<len>B<);>\n"
964 msgstr ""
965
966 #. type: Plain text
967 #: build/C/man2/get_robust_list.2:45
968 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
969 msgstr ""
970 "I<注意>: これらのシステムコールには glibc ラッパー関数は存在しない。 「注意」"
971 "の節を参照。"
972
973 #. type: Plain text
974 #: build/C/man2/get_robust_list.2:50
975 msgid ""
976 "The robust futex implementation needs to maintain per-thread lists of robust "
977 "futexes which are unlocked when the thread exits.  These lists are managed "
978 "in user space; the kernel is notified about only the location of the head of "
979 "the list."
980 msgstr ""
981
982 #. type: Plain text
983 #: build/C/man2/get_robust_list.2:66
984 msgid ""
985 "The B<get_robust_list>()  system call returns the head of the robust futex "
986 "list of the thread whose thread ID is specified in I<pid>.  If I<pid> is 0, "
987 "the head of the list for the calling thread is returned.  The list head is "
988 "stored in the location pointed to by I<head_ptr>.  The size of the object "
989 "pointed to by I<**head_ptr> is stored in I<len_ptr>."
990 msgstr ""
991
992 #. type: Plain text
993 #: build/C/man2/get_robust_list.2:78
994 msgid ""
995 "The B<set_robust_list>()  system call requests the kernel to record the head "
996 "of the list of robust futexes owned by the calling thread.  The I<head> "
997 "argument is the list head to record.  The I<len> argument should be "
998 "I<sizeof(*head)>."
999 msgstr ""
1000
1001 #. type: Plain text
1002 #: build/C/man2/get_robust_list.2:85
1003 msgid ""
1004 "The B<set_robust_list>()  and B<get_robust_list>()  system calls return zero "
1005 "when the operation is successful, an error code otherwise."
1006 msgstr ""
1007
1008 #. type: Plain text
1009 #: build/C/man2/get_robust_list.2:89
1010 msgid ""
1011 "The B<set_robust_list>()  system call can fail with the following error:"
1012 msgstr ""
1013
1014 #. type: Plain text
1015 #: build/C/man2/get_robust_list.2:95
1016 msgid ""
1017 "I<len> does not match the size of structure B<struct robust_list_head> "
1018 "expected by kernel."
1019 msgstr ""
1020
1021 #. type: Plain text
1022 #: build/C/man2/get_robust_list.2:99
1023 msgid ""
1024 "The B<get_robust_list>()  system call can fail with the following errors:"
1025 msgstr ""
1026
1027 #. type: Plain text
1028 #: build/C/man2/get_robust_list.2:107
1029 msgid ""
1030 "The calling process does not have permission to see the robust futex list of "
1031 "the thread with the thread ID I<pid>, and does not have the "
1032 "B<CAP_SYS_PTRACE> capability."
1033 msgstr ""
1034
1035 #. type: TP
1036 #: build/C/man2/get_robust_list.2:107 build/C/man2/perf_event_open.2:2663
1037 #: build/C/man2/process_vm_readv.2:287 build/C/man2/ptrace.2:1949
1038 #: build/C/man2/quotactl.2:461 build/C/man2/quotactl.2:504
1039 #, no-wrap
1040 msgid "B<ESRCH>"
1041 msgstr "B<ESRCH>"
1042
1043 #. type: Plain text
1044 #: build/C/man2/get_robust_list.2:112
1045 msgid "No thread with the thread ID I<pid> could be found."
1046 msgstr ""
1047
1048 #. type: Plain text
1049 #: build/C/man2/get_robust_list.2:116
1050 msgid ""
1051 "The head of the robust futex list can't be stored at the location I<head>."
1052 msgstr ""
1053
1054 #. type: Plain text
1055 #: build/C/man2/get_robust_list.2:118
1056 #, fuzzy
1057 #| msgid "The B<kexec_load>()  system call first appeared in Linux 2.6.13."
1058 msgid "These system calls were added in Linux 2.6.17."
1059 msgstr "B<kexec_load>() システムコールは Linux 2.6.13 で初めて登場した。"
1060
1061 #. type: Plain text
1062 #: build/C/man2/get_robust_list.2:123
1063 msgid ""
1064 "These system calls are not needed by normal applications.  No support for "
1065 "them is provided in glibc.  In the unlikely event that you want to call them "
1066 "directly, use B<syscall>(2)."
1067 msgstr ""
1068 "通常のアプリケーションでは、これらのシステムコールは必要ではない。 glibc によ"
1069 "るサポートは提供されていない。おそらくないと思うが、このシステムコールを直接"
1070 "呼び出したい場合は B<syscall>(2) を使うこと。"
1071
1072 #. type: Plain text
1073 #: build/C/man2/get_robust_list.2:127
1074 msgid ""
1075 "A thread can have only one robust futex list; therefore applications that "
1076 "wish to use this functionality should use the robust mutexes provided by "
1077 "glibc."
1078 msgstr ""
1079
1080 #.  .BR pthread_mutexattr_setrobust_np (3)
1081 #. type: Plain text
1082 #: build/C/man2/get_robust_list.2:130
1083 msgid "B<futex>(2)"
1084 msgstr "B<futex>(2)"
1085
1086 #. type: Plain text
1087 #: build/C/man2/get_robust_list.2:134
1088 msgid ""
1089 "I<Documentation/robust-futexes.txt> and I<Documentation/robust-futex-ABI."
1090 "txt> in the Linux kernel source tree"
1091 msgstr ""
1092
1093 #. type: TH
1094 #: build/C/man2/getunwind.2:27
1095 #, no-wrap
1096 msgid "GETUNWIND"
1097 msgstr ""
1098
1099 #. type: TH
1100 #: build/C/man2/getunwind.2:27
1101 #, no-wrap
1102 msgid "2014-09-21"
1103 msgstr "2014-09-21"
1104
1105 #. type: Plain text
1106 #: build/C/man2/getunwind.2:30
1107 msgid "getunwind - copy the unwind data to caller's buffer"
1108 msgstr ""
1109
1110 #. type: Plain text
1111 #: build/C/man2/getunwind.2:34
1112 #, no-wrap
1113 msgid ""
1114 "B<#include E<lt>syscall.hE<gt>>\n"
1115 "B<#include E<lt>linux/unwind.hE<gt>>\n"
1116 msgstr ""
1117 "B<#include E<lt>syscall.hE<gt>>\n"
1118 "B<#include E<lt>linux/unwind.hE<gt>>\n"
1119
1120 #. type: Plain text
1121 #: build/C/man2/getunwind.2:36
1122 #, no-wrap
1123 msgid "B<long getunwind(void >I<*buf>B<, size_t >I<buf_size>B<);>\n"
1124 msgstr ""
1125
1126 #. type: Plain text
1127 #: build/C/man2/getunwind.2:42
1128 msgid "I<Note: this function is obsolete.>"
1129 msgstr ""
1130
1131 #. type: Plain text
1132 #: build/C/man2/getunwind.2:52
1133 msgid ""
1134 "The IA-64-specific B<getunwind>()  system call copies the kernel's call "
1135 "frame unwind data into the buffer pointed to by I<buf> and returns the size "
1136 "of the unwind data; this data describes the gate page (kernel code that is "
1137 "mapped into user space)."
1138 msgstr ""
1139
1140 #. type: Plain text
1141 #: build/C/man2/getunwind.2:64
1142 msgid ""
1143 "The size of the buffer I<buf> is specified in I<buf_size>.  The data is "
1144 "copied only if I<buf_size> is greater than or equal to the size of the "
1145 "unwind data and I<buf> is not NULL; otherwise, no data is copied, and the "
1146 "call succeeds, returning the size that would be needed to store the unwind "
1147 "data."
1148 msgstr ""
1149
1150 #. type: Plain text
1151 #: build/C/man2/getunwind.2:68
1152 msgid ""
1153 "The first part of the unwind data contains an unwind table.  The rest "
1154 "contains the associated unwind information, in no particular order.  The "
1155 "unwind table contains entries of the following form:"
1156 msgstr ""
1157
1158 #. type: Plain text
1159 #: build/C/man2/getunwind.2:73
1160 #, no-wrap
1161 msgid ""
1162 "    u64 start;      (64-bit address of start of function)\n"
1163 "    u64 end;        (64-bit address of end of function)\n"
1164 "    u64 info;       (BUF-relative offset to unwind info)\n"
1165 msgstr ""
1166
1167 #. type: Plain text
1168 #: build/C/man2/getunwind.2:81
1169 msgid ""
1170 "An entry whose I<start> value is zero indicates the end of the table.  For "
1171 "more information about the format, see the I<IA-64 Software Conventions and "
1172 "Runtime Architecture> manual."
1173 msgstr ""
1174
1175 #. type: Plain text
1176 #: build/C/man2/getunwind.2:88
1177 msgid ""
1178 "On success, B<getunwind>()  returns the size of the unwind data.  On error, "
1179 "-1 is returned and I<errno> is set to indicate the error."
1180 msgstr ""
1181 "成功すると、 B<getunwind> は unwind されたデータのサイズを返す。 エラーの場"
1182 "合、 -1 が返り、 I<errno> にエラーを示す値が設定される。"
1183
1184 #. type: Plain text
1185 #: build/C/man2/getunwind.2:94
1186 msgid ""
1187 "B<getunwind>()  fails with the error B<EFAULT> if the unwind info can't be "
1188 "stored in the space specified by I<buf>."
1189 msgstr ""
1190
1191 #. type: Plain text
1192 #: build/C/man2/getunwind.2:96
1193 msgid "This system call is available since Linux 2.4."
1194 msgstr ""
1195
1196 #. type: Plain text
1197 #: build/C/man2/getunwind.2:99
1198 msgid ""
1199 "This system call is Linux-specific, and is available only on the IA-64 "
1200 "architecture."
1201 msgstr ""
1202
1203 #. type: Plain text
1204 #: build/C/man2/getunwind.2:107
1205 msgid ""
1206 "This system call has been deprecated.  The modern way to obtain the kernel's "
1207 "unwind data is via the gate DSO.  The address of the ELF header for this DSO "
1208 "is passed to user level via B<AT_SYSINFO_EHDR> (see B<getauxval>(3))."
1209 msgstr ""
1210
1211 #. type: Plain text
1212 #: build/C/man2/getunwind.2:111
1213 msgid ""
1214 "Glibc does not provide a wrapper for this system call; in the unlikely event "
1215 "that you want to call it, use B<syscall>(2)."
1216 msgstr ""
1217 "glibc はこのシステムコールに対するラッパー関数を提供していない。おそらくない"
1218 "と思うが、このシステムコールを呼び出したい場合は B<syscall>(2) を使うこと。"
1219
1220 #. type: Plain text
1221 #: build/C/man2/getunwind.2:112
1222 msgid "B<getauxval>(3)"
1223 msgstr "B<getauxval>(3)"
1224
1225 #. type: TH
1226 #: build/C/man2/kexec_load.2:26
1227 #, no-wrap
1228 msgid "KEXEC_LOAD"
1229 msgstr "KEXEC_LOAD"
1230
1231 #. type: TH
1232 #: build/C/man2/kexec_load.2:26 build/C/man2/process_vm_readv.2:29
1233 #: build/C/man2/ptrace.2:46
1234 #, no-wrap
1235 msgid "2014-08-19"
1236 msgstr "2014-08-19"
1237
1238 #. type: Plain text
1239 #: build/C/man2/kexec_load.2:29
1240 msgid "kexec_load - load a new kernel for later execution"
1241 msgstr "kexec_load - 新しいカーネルを後で実行するためにロードする"
1242
1243 #. type: Plain text
1244 #: build/C/man2/kexec_load.2:31
1245 msgid "B<#include E<lt>linux/kexec.hE<gt>>"
1246 msgstr "B<#include E<lt>linux/kexec.hE<gt>>"
1247
1248 #. type: Plain text
1249 #: build/C/man2/kexec_load.2:33
1250 msgid ""
1251 "B<long kexec_load(unsigned long >I<entry>B<, unsigned long >I<nr_segments>B<,"
1252 ">"
1253 msgstr ""
1254 "B<long kexec_load(unsigned long >I<entry>B<, unsigned long >I<nr_segments>B<,"
1255 ">"
1256
1257 #. type: Plain text
1258 #: build/C/man2/kexec_load.2:36
1259 msgid "B< struct kexec_segment *>I<segments>B<, unsigned long >I<flags>B<);>"
1260 msgstr "B< struct kexec_segment *>I<segments>B<, unsigned long >I<flags>B<);>"
1261
1262 #. type: Plain text
1263 #: build/C/man2/kexec_load.2:44
1264 msgid ""
1265 "The B<kexec_load>()  system call loads a new kernel that can be executed "
1266 "later by B<reboot>(2)."
1267 msgstr ""
1268 "B<kexec_load>() システムコールは、新しいカーネルをロードし、\n"
1269 "その後の B<reboot>(2) で実行できるようにする。"
1270
1271 #. type: Plain text
1272 #: build/C/man2/kexec_load.2:50
1273 msgid ""
1274 "The I<flags> argument is a bit mask that controls the operation of the "
1275 "call.  The following values can be specified in I<flags>:"
1276 msgstr ""
1277 "I<flags> 引き数は、システムコールの呼び出しの動作を制御するマスクビットであ"
1278 "る。 I<flags> には以下の値を指定できる。"
1279
1280 #. type: TP
1281 #: build/C/man2/kexec_load.2:50
1282 #, no-wrap
1283 msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
1284 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
1285
1286 #.  FIXME Explain in more detail how KEXEC_ON_CRASH is actually used
1287 #. type: Plain text
1288 #: build/C/man2/kexec_load.2:54
1289 msgid "Execute the new kernel automatically on a system crash."
1290 msgstr "システムのクラッシュ時に、新しいカーネルを自動的に実行する。"
1291
1292 #. type: TP
1293 #: build/C/man2/kexec_load.2:54
1294 #, no-wrap
1295 msgid "B<KEXEC_PRESERVE_CONTEXT> (since Linux 2.6.27)"
1296 msgstr "B<KEXEC_PRESERVE_CONTEXT> (Linux 2.6.27 以降)"
1297
1298 #. type: Plain text
1299 #: build/C/man2/kexec_load.2:64
1300 msgid ""
1301 "Preserve the system hardware and software states before executing the new "
1302 "kernel.  This could be used for system suspend.  This flag is available only "
1303 "if the kernel was configured with B<CONFIG_KEXEC_JUMP>, and is effective "
1304 "only if I<nr_segments> is greater than 0."
1305 msgstr ""
1306 "新しいカーネルを実行する前に、\n"
1307 "システムのハードウェアとソフトウェアの状態を保存する。\n"
1308 "システムの中断時 (suspend) などで使用できる。\n"
1309 "このフラグは、カーネルの設定で B<CONFIG_KEXEC_JUMP> が有効の場合のみ\n"
1310 "利用可能であり、 I<nr_segments> が 0 より大きい場合のみ効果がある。"
1311
1312 #. type: Plain text
1313 #: build/C/man2/kexec_load.2:85
1314 msgid ""
1315 "The high-order bits (corresponding to the mask 0xffff0000) of I<flags> "
1316 "contain the architecture of the to-be-executed kernel.  Specify (OR) the "
1317 "constant B<KEXEC_ARCH_DEFAULT> to use the current architecture, or one of "
1318 "the following architecture constants B<KEXEC_ARCH_386>, B<KEXEC_ARCH_68K>, "
1319 "B<KEXEC_ARCH_X86_64>, B<KEXEC_ARCH_PPC>, B<KEXEC_ARCH_PPC64>, "
1320 "B<KEXEC_ARCH_IA_64>, B<KEXEC_ARCH_ARM>, B<KEXEC_ARCH_S390>, "
1321 "B<KEXEC_ARCH_SH>, B<KEXEC_ARCH_MIPS>, and B<KEXEC_ARCH_MIPS_LE>.  The "
1322 "architecture must be executable on the CPU of the system."
1323 msgstr ""
1324 "I<flags> の上位ビット (マスク 0xffff0000 に対応) には、\n"
1325 "実行されるカーネルのアーキテクチャが入る。\n"
1326 "現在のアーキテクチャを使うことを意味する定数 B<KEXEC_ARCH_DEFAULT> か、\n"
1327 "アーキテクチャ定数 B<KEXEC_ARCH_386>, B<KEXEC_ARCH_68K>, "
1328 "B<KEXEC_ARCH_X86_64>,\n"
1329 "B<KEXEC_ARCH_PPC>, B<KEXEC_ARCH_PPC64>, B<KEXEC_ARCH_IA_64>,\n"
1330 "B<KEXEC_ARCH_ARM>, B<KEXEC_ARCH_S390>, B<KEXEC_ARCH_SH>,\n"
1331 "B<KEXEC_ARCH_MIPS>, B<KEXEC_ARCH_MIPS_LE> の\n"
1332 "いずれか一つを (OR で) 指定する。指定するアーキテクチャは、\n"
1333 "システムの CPU で実行可能なものでなければならない。"
1334
1335 #. type: Plain text
1336 #: build/C/man2/kexec_load.2:100
1337 msgid ""
1338 "The I<entry> argument is the physical entry address in the kernel image.  "
1339 "The I<nr_segments> argument is the number of segments pointed to by the "
1340 "I<segments> pointer; the kernel imposes an (arbitrary) limit of 16 on the "
1341 "number of segments.  The I<segments> argument is an array of "
1342 "I<kexec_segment> structures which define the kernel layout:"
1343 msgstr ""
1344 "I<entry> 引き数は、カーネルイメージの物理エントリーアドレスである。 "
1345 "I<nr_segments> 引き数は、 I<segments> ポインタが指すセグメントの数である。 な"
1346 "お、セグメント数には、カーネルにより 16 という (強制的な) 上限が課される。 "
1347 "I<segments> 引き数は I<kexec_segment> 構造体の配列で、 この構造体によりカーネ"
1348 "ルの配置が定義される。"
1349
1350 #. type: Plain text
1351 #: build/C/man2/kexec_load.2:109
1352 #, no-wrap
1353 msgid ""
1354 "struct kexec_segment {\n"
1355 "    void   *buf;        /* Buffer in user space */\n"
1356 "    size_t  bufsz;      /* Buffer length in user space */\n"
1357 "    void   *mem;        /* Physical address of kernel */\n"
1358 "    size_t  memsz;      /* Physical address length */\n"
1359 "};\n"
1360 msgstr ""
1361 "struct kexec_segment {\n"
1362 "    void   *buf;        /* Buffer in user space */\n"
1363 "    size_t  bufsz;      /* Buffer length in user space */\n"
1364 "    void   *mem;        /* Physical address of kernel */\n"
1365 "    size_t  memsz;      /* Physical address length */\n"
1366 "};\n"
1367
1368 #.  FIXME Explain the details of how the kernel image defined by segments
1369 #.  is copied from the calling process into previously reserved memory.
1370 #. type: Plain text
1371 #: build/C/man2/kexec_load.2:117
1372 msgid ""
1373 "The kernel image defined by I<segments> is copied from the calling process "
1374 "into previously reserved memory."
1375 msgstr ""
1376 "I<segments> で定義されたカーネルイメージは、\n"
1377 "呼び出したプロセスから予約済みメモリにコピーされる。"
1378
1379 #. type: Plain text
1380 #: build/C/man2/kexec_load.2:124
1381 msgid ""
1382 "On success, B<kexec_load>()  returns 0.  On error, -1 is returned and "
1383 "I<errno> is set to indicate the error."
1384 msgstr ""
1385 "成功すると、 B<kexec_load> は 0 を返す。\n"
1386 "エラーの場合、 -1 が返り、 I<errno> にエラーを示す値が設定される。"
1387
1388 #. type: TP
1389 #: build/C/man2/kexec_load.2:125 build/C/man2/pivot_root.2:110
1390 #: build/C/man2/ptrace.2:1912 build/C/man2/quotactl.2:495
1391 #, no-wrap
1392 msgid "B<EBUSY>"
1393 msgstr "B<EBUSY>"
1394
1395 #. type: Plain text
1396 #: build/C/man2/kexec_load.2:129
1397 msgid ""
1398 "Another crash kernel is already being loaded or a crash kernel is already in "
1399 "use."
1400 msgstr ""
1401 "別のクラッシュカーネルがすでにロードされているか、\n"
1402 "クラッシュカーネルがすでに使用されている。"
1403
1404 #.  KEXEC_SEGMENT_MAX == 16
1405 #. type: Plain text
1406 #: build/C/man2/kexec_load.2:136
1407 msgid "I<flags> is invalid; or I<nr_segments> is too large"
1408 msgstr "I<flags> が無効である。 I<nr_segments> が大きすぎる。"
1409
1410 #. type: Plain text
1411 #: build/C/man2/kexec_load.2:141
1412 msgid "The caller does not have the B<CAP_SYS_BOOT> capability."
1413 msgstr "呼び出し側が B<CAP_SYS_BOOT> ケーパビリティを持っていない。"
1414
1415 #. type: Plain text
1416 #: build/C/man2/kexec_load.2:145
1417 msgid "The B<kexec_load>()  system call first appeared in Linux 2.6.13."
1418 msgstr "B<kexec_load>() システムコールは Linux 2.6.13 で初めて登場した。"
1419
1420 #. type: Plain text
1421 #: build/C/man2/kexec_load.2:152
1422 msgid ""
1423 "Currently, there is no glibc support for B<kexec_load>().  Call it using "
1424 "B<syscall>(2)."
1425 msgstr ""
1426 "現在のところ、 B<kexec_load>() は glibc ではサポートされていない。\n"
1427 "B<syscall>(2) を使って呼び出すこと。"
1428
1429 #.  FIXME . Andi submitted a patch for this.
1430 #.  Check if it got accepted later.
1431 #. type: Plain text
1432 #: build/C/man2/kexec_load.2:159
1433 msgid ""
1434 "The required constants are in the Linux kernel source file I<linux/kexec.h>, "
1435 "which is not currently exported to glibc.  Therefore, these constants must "
1436 "be defined manually."
1437 msgstr ""
1438 "必要な定数は Linux カーネルのソースファイル I<linux/kexec.h> で定義されてい"
1439 "る\n"
1440 "が、現在のところ glibc には公開されていない。\n"
1441 "そのため、これらの定数は手動で定義しなければならない。"
1442
1443 #. type: Plain text
1444 #: build/C/man2/kexec_load.2:162
1445 msgid ""
1446 "This system call is available only if the kernel was configured with "
1447 "B<CONFIG_KEXEC>."
1448 msgstr ""
1449 "このシステムコールは、カーネルの設定で B<CONFIG_KEXEC> が有効になって\n"
1450 "いる場合にのみ利用できる。"
1451
1452 #. type: Plain text
1453 #: build/C/man2/kexec_load.2:164
1454 msgid "B<reboot>(2), B<syscall>(2)"
1455 msgstr "B<reboot>(2), B<syscall>(2)"
1456
1457 #. type: TH
1458 #: build/C/man2/lookup_dcookie.2:27
1459 #, no-wrap
1460 msgid "LOOKUP_DCOOKIE"
1461 msgstr "LOOKUP_DCOOKIE"
1462
1463 #. type: TH
1464 #: build/C/man2/lookup_dcookie.2:27
1465 #, no-wrap
1466 msgid "2004-06-17"
1467 msgstr "2004-06-17"
1468
1469 #. type: Plain text
1470 #: build/C/man2/lookup_dcookie.2:30
1471 msgid "lookup_dcookie - return a directory entry's path"
1472 msgstr "lookup_dcookie - ディレクトリ・エントリのパス名を返す"
1473
1474 #. type: Plain text
1475 #: build/C/man2/lookup_dcookie.2:32
1476 msgid ""
1477 "B<int lookup_dcookie(u64 >I<cookie>B<, char *>I<buffer>B<, size_t >I<len>B<);"
1478 ">"
1479 msgstr ""
1480 "B<int lookup_dcookie(u64 >I<cookie>B<, char *>I<buffer>B<, size_t >I<len>B<);"
1481 ">"
1482
1483 #. type: Plain text
1484 #: build/C/man2/lookup_dcookie.2:38
1485 msgid ""
1486 "Look up the full path of the directory entry specified by the value "
1487 "I<cookie>.  The cookie is an opaque identifier uniquely identifying a "
1488 "particular directory entry.  The buffer given is filled in with the full "
1489 "path of the directory entry."
1490 msgstr ""
1491 "I<cookie> 値で指定されたディレクトリ・エントリのフルパス名を検索する。 "
1492 "cookie は、個々のディレクトリ・エントリを区別する内部識別子 (opaque "
1493 "identifier) である。引き数で指定されたバッファに、ディレクトリ・エントリの フ"
1494 "ルパス名が格納される。"
1495
1496 #. type: Plain text
1497 #: build/C/man2/lookup_dcookie.2:43
1498 msgid ""
1499 "For B<lookup_dcookie>()  to return successfully, the kernel must still hold "
1500 "a cookie reference to the directory entry."
1501 msgstr ""
1502 "B<lookup_dcookie>()  が正常に値を返すためには、カーネルがディレクトリ・エント"
1503 "リへの cookie 参照を 保持していなければならない。"
1504
1505 #. type: Plain text
1506 #: build/C/man2/lookup_dcookie.2:50
1507 msgid ""
1508 "On success, B<lookup_dcookie>()  returns the length of the path string "
1509 "copied into the buffer.  On error, -1 is returned, and I<errno> is set "
1510 "appropriately."
1511 msgstr ""
1512 "成功した場合、 B<lookup_dcookie>()  はバッファにコピーしたパス文字列の長さを"
1513 "返す。 エラーの場合は -1 を返し、 I<errno> に適切な値を設定する。"
1514
1515 #. type: Plain text
1516 #: build/C/man2/lookup_dcookie.2:54
1517 msgid "The buffer was not valid."
1518 msgstr "バッファが有効でなかった。"
1519
1520 #. type: Plain text
1521 #: build/C/man2/lookup_dcookie.2:58
1522 msgid ""
1523 "The kernel has no registered cookie/directory entry mappings at the time of "
1524 "lookup, or the cookie does not refer to a valid directory entry."
1525 msgstr ""
1526 "検索が行われた時、cookie とディレクトリ・エントリのマッピングがカーネルに 登"
1527 "録されていなかったか、または cookie が有効なディレクトリ・エントリを 参照して"
1528 "いない。"
1529
1530 #. type: TP
1531 #: build/C/man2/lookup_dcookie.2:58
1532 #, no-wrap
1533 msgid "B<ENAMETOOLONG>"
1534 msgstr "B<ENAMETOOLONG>"
1535
1536 #. type: Plain text
1537 #: build/C/man2/lookup_dcookie.2:61
1538 msgid "The name could not fit in the buffer."
1539 msgstr "名前がバッファに入り切らなかった。"
1540
1541 #. type: TP
1542 #: build/C/man2/lookup_dcookie.2:61 build/C/man2/process_vm_readv.2:278
1543 #: build/C/man2/sendfile.2:138 build/C/man2/splice.2:169
1544 #: build/C/man2/tee.2:117 build/C/man2/vmsplice.2:145
1545 #, no-wrap
1546 msgid "B<ENOMEM>"
1547 msgstr "B<ENOMEM>"
1548
1549 #. type: Plain text
1550 #: build/C/man2/lookup_dcookie.2:65
1551 msgid ""
1552 "The kernel could not allocate memory for the temporary buffer holding the "
1553 "path."
1554 msgstr ""
1555 "カーネルが、パス名を保持する一時バッファ用のメモリを割り当てることが できな"
1556 "かった。"
1557
1558 #. type: Plain text
1559 #: build/C/man2/lookup_dcookie.2:70
1560 msgid ""
1561 "The process does not have the capability B<CAP_SYS_ADMIN> required to look "
1562 "up cookie values."
1563 msgstr ""
1564 "プロセスが cookie 値を検索するのに必要なケーパビリティ B<CAP_SYS_ADMIN> を"
1565 "持っていない。"
1566
1567 #. type: TP
1568 #: build/C/man2/lookup_dcookie.2:70 build/C/man2/quotactl.2:474
1569 #, no-wrap
1570 msgid "B<ERANGE>"
1571 msgstr "B<ERANGE>"
1572
1573 #. type: Plain text
1574 #: build/C/man2/lookup_dcookie.2:73
1575 msgid ""
1576 "The buffer was not large enough to hold the path of the directory entry."
1577 msgstr ""
1578 "バッファが、ディレクトリ・エントリのパス名を収容するのに 十分な大きさではな"
1579 "かった。"
1580
1581 #. type: Plain text
1582 #: build/C/man2/lookup_dcookie.2:78
1583 msgid ""
1584 "Available since Linux 2.5.43.  The B<ENAMETOOLONG> error return was added in "
1585 "2.5.70."
1586 msgstr ""
1587 "Linux 2.5.43 以降で利用できる。 エラー B<ENAMETOOLONG> を返す仕様は 2.5.70 で"
1588 "追加された。"
1589
1590 #. type: Plain text
1591 #: build/C/man2/lookup_dcookie.2:81
1592 msgid "B<lookup_dcookie>()  is Linux-specific."
1593 msgstr "B<lookup_dcookie>()  は Linux 独自の関数である。"
1594
1595 #. type: Plain text
1596 #: build/C/man2/lookup_dcookie.2:85
1597 msgid ""
1598 "B<lookup_dcookie>()  is a special-purpose system call, currently used only "
1599 "by the oprofile profiler.  It relies on a kernel driver to register cookies "
1600 "for directory entries."
1601 msgstr ""
1602 "B<lookup_dcookie>()  は特殊な用途に使われるシステムコールで、現在のところ "
1603 "oprofile profiler で 使われているだけである。"
1604
1605 #. type: Plain text
1606 #: build/C/man2/lookup_dcookie.2:87
1607 msgid ""
1608 "The path returned may be suffixed by the string \" (deleted)\" if the "
1609 "directory entry has been removed."
1610 msgstr ""
1611 "指定されたディレクトリ・エントリが削除されていた場合、返されるパス名の最後に "
1612 "\" (deleted)\" という文字列が付加されることがある。"
1613
1614 #. type: TH
1615 #: build/C/man2/modify_ldt.2:24
1616 #, no-wrap
1617 msgid "MODIFY_LDT"
1618 msgstr "MODIFY_LDT"
1619
1620 #. type: TH
1621 #: build/C/man2/modify_ldt.2:24 build/C/man2/pivot_root.2:10
1622 #, no-wrap
1623 msgid "2012-07-13"
1624 msgstr "2012-07-13"
1625
1626 #. type: Plain text
1627 #: build/C/man2/modify_ldt.2:27
1628 msgid "modify_ldt - get or set ldt"
1629 msgstr "modify_ldt - ldt を設定または取得する"
1630
1631 #. type: Plain text
1632 #: build/C/man2/modify_ldt.2:30
1633 #, no-wrap
1634 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1635 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1636
1637 #. type: Plain text
1638 #: build/C/man2/modify_ldt.2:32
1639 #, no-wrap
1640 msgid "B<int modify_ldt(int >I<func>B<, void *>I<ptr>B<, unsigned long >I<bytecount>B<);>\n"
1641 msgstr "B<int modify_ldt(int >I<func>B<, void *>I<ptr>B<, unsigned long >I<bytecount>B<);>\n"
1642
1643 #. type: Plain text
1644 #: build/C/man2/modify_ldt.2:41
1645 msgid ""
1646 "B<modify_ldt>()  reads or writes the local descriptor table (ldt) for a "
1647 "process.  The ldt is a per-process memory management table used by the i386 "
1648 "processor.  For more information on this table, see an Intel 386 processor "
1649 "handbook."
1650 msgstr ""
1651 "B<modify_ldt>()  はプロセスのローカル・ディスクリプタ・テーブル (local "
1652 "descriptor table; ldt)  を読み書きする。 ldt は i386 プロセッサで使用されるプ"
1653 "ロセスごとのメモリ管理テーブルである。 このテーブルに関してのより詳しい情報"
1654 "は Intel 386 processor handbook を 参照すること。"
1655
1656 #. type: Plain text
1657 #: build/C/man2/modify_ldt.2:51
1658 msgid ""
1659 "When I<func> is 0, B<modify_ldt>()  reads the ldt into the memory pointed to "
1660 "by I<ptr>.  The number of bytes read is the smaller of I<bytecount> and the "
1661 "actual size of the ldt."
1662 msgstr ""
1663 "I<func> が 0 ならば、 B<modify_ldt>()  は ldt を I<ptr> が指しているメモリに"
1664 "読み込む。 読み込むバイト数は実際の ldt のサイズか I<bytecount> より小さい方"
1665 "である。"
1666
1667 #.  FIXME Should this page say something about func == 2 and func == 0x11?
1668 #.  In Linux 2.4, func == 2 returned "the default ldt"
1669 #.  In Linux 2.6, func == 2 is a nop, returning a zeroed out structure.
1670 #.  Linux 2.4 and 2.6 implement an operation for func == 0x11
1671 #. type: Plain text
1672 #: build/C/man2/modify_ldt.2:69
1673 msgid ""
1674 "When I<func> is 1, B<modify_ldt>()  modifies one ldt entry.  I<ptr> points "
1675 "to a I<user_desc> structure and I<bytecount> must equal the size of this "
1676 "structure."
1677 msgstr ""
1678 "I<func> が 1 ならば、 B<modify_ldt>()  は ldt エントリの一つを変更する。 "
1679 "I<ptr> は I<user_desc> 構造体を指し、 I<bytecount> はこの構造体の大きさに等し"
1680 "くなければならない。"
1681
1682 #. type: Plain text
1683 #: build/C/man2/modify_ldt.2:73
1684 msgid "The I<user_desc> structure is defined in I<E<lt>asm/ldt.hE<gt>> as:"
1685 msgstr ""
1686 "I<user_desc> 構造体は I<E<lt>asm/ldt.hE<gt>> で以下のように定義されている:"
1687
1688 #. type: Plain text
1689 #: build/C/man2/modify_ldt.2:87
1690 #, no-wrap
1691 msgid ""
1692 "struct user_desc {\n"
1693 "    unsigned int  entry_number;\n"
1694 "    unsigned long base_addr;\n"
1695 "    unsigned int  limit;\n"
1696 "    unsigned int  seg_32bit:1;\n"
1697 "    unsigned int  contents:2;\n"
1698 "    unsigned int  read_exec_only:1;\n"
1699 "    unsigned int  limit_in_pages:1;\n"
1700 "    unsigned int  seg_not_present:1;\n"
1701 "    unsigned int  useable:1;\n"
1702 "};\n"
1703 msgstr ""
1704 "struct user_desc {\n"
1705 "    unsigned int  entry_number;\n"
1706 "    unsigned long base_addr;\n"
1707 "    unsigned int  limit;\n"
1708 "    unsigned int  seg_32bit:1;\n"
1709 "    unsigned int  contents:2;\n"
1710 "    unsigned int  read_exec_only:1;\n"
1711 "    unsigned int  limit_in_pages:1;\n"
1712 "    unsigned int  seg_not_present:1;\n"
1713 "    unsigned int  useable:1;\n"
1714 "};\n"
1715
1716 #.  .PP
1717 #.  The ldt is specific for the calling process. Any attempts to change
1718 #.  the ldt to include the address space of another process or the kernel
1719 #.  will result in a segmentation violation when trying to access the memory
1720 #.  outside of the process address space. The memory protection is enforced
1721 #.  at the paging layer.
1722 #. type: Plain text
1723 #: build/C/man2/modify_ldt.2:98
1724 msgid "In Linux 2.4 and earlier, this structure was named I<modify_ldt_ldt_s>."
1725 msgstr ""
1726 "Linux 2.4 以前では、この構造体は I<modify_ldt_ldt_s> という名前であった。"
1727
1728 #. type: Plain text
1729 #: build/C/man2/modify_ldt.2:108
1730 msgid ""
1731 "On success, B<modify_ldt>()  returns either the actual number of bytes read "
1732 "(for reading)  or 0 (for writing).  On failure, B<modify_ldt>()  returns -1 "
1733 "and sets I<errno> to indicate the error."
1734 msgstr ""
1735 "成功した場合は、 B<modify_ldt>()  は (読み込みの場合は) 実際に読み込んだバイ"
1736 "ト数、 または (書き込みの場合は) 0 を返す。 失敗した場合は B<modify_ldt>()  "
1737 "は -1 を返し、 I<errno> をエラーを示す値に設定する。"
1738
1739 #. type: Plain text
1740 #: build/C/man2/modify_ldt.2:113
1741 msgid "I<ptr> points outside the address space."
1742 msgstr "I<ptr> がアドレス空間の外を指している。"
1743
1744 #. type: Plain text
1745 #: build/C/man2/modify_ldt.2:126
1746 msgid ""
1747 "I<ptr> is 0, or I<func> is 1 and I<bytecount> is not equal to the size of "
1748 "the structure I<modify_ldt_ldt_s>, or I<func> is 1 and the new ldt entry has "
1749 "invalid values."
1750 msgstr ""
1751 "I<ptr> が 0 である、 または I<func> が 1 で I<bytecount> が "
1752 "I<modify_ldt_ldt_s> 構造体のサイズと等しくないか、 I<func> が 1 で新しい ldt "
1753 "エントリが無効な値である。"
1754
1755 #. type: Plain text
1756 #: build/C/man2/modify_ldt.2:130
1757 msgid "I<func> is neither 0 nor 1."
1758 msgstr "I<func> が 0 でも 1 でもない。"
1759
1760 #. type: Plain text
1761 #: build/C/man2/modify_ldt.2:133
1762 msgid ""
1763 "This call is Linux-specific and should not be used in programs intended to "
1764 "be portable."
1765 msgstr ""
1766 "このコールは Linux 特有であり、移植を意図したプログラムでは 使用してはいけな"
1767 "い。"
1768
1769 #. type: Plain text
1770 #: build/C/man2/modify_ldt.2:136 build/C/man2/perfmonctl.2:205
1771 #: build/C/man2/pivot_root.2:134
1772 msgid ""
1773 "Glibc does not provide a wrapper for this system call; call it using "
1774 "B<syscall>(2)."
1775 msgstr ""
1776 "glibc はこのシステムコールに対するラッパー関数を提供していない。 "
1777 "B<syscall>(2)  を使って呼び出すこと。"
1778
1779 #. type: Plain text
1780 #: build/C/man2/modify_ldt.2:137
1781 msgid "B<vm86>(2)"
1782 msgstr "B<vm86>(2)"
1783
1784 #. type: TH
1785 #: build/C/man2/nfsservctl.2:8
1786 #, no-wrap
1787 msgid "NFSSERVCTL"
1788 msgstr "NFSSERVCTL"
1789
1790 #. type: TH
1791 #: build/C/man2/nfsservctl.2:8
1792 #, no-wrap
1793 msgid "2013-09-17"
1794 msgstr "2013-09-17"
1795
1796 #. type: Plain text
1797 #: build/C/man2/nfsservctl.2:11
1798 msgid "nfsservctl - syscall interface to kernel nfs daemon"
1799 msgstr "nfsservctl - カーネル nfs デーモンのためのインターフェース"
1800
1801 #. type: Plain text
1802 #: build/C/man2/nfsservctl.2:14
1803 #, no-wrap
1804 msgid "B<#include E<lt>linux/nfsd/syscall.hE<gt>>\n"
1805 msgstr "B<#include E<lt>linux/nfsd/syscall.hE<gt>>\n"
1806
1807 #. type: Plain text
1808 #: build/C/man2/nfsservctl.2:17
1809 #, no-wrap
1810 msgid ""
1811 "B<long nfsservctl(int >I<cmd>B<, struct nfsctl_arg *>I<argp>B<,>\n"
1812 "B<                union nfsctl_res *>I<resp>B<);>\n"
1813 msgstr ""
1814 "B<long nfsservctl(int >I<cmd>B<, struct nfsctl_arg *>I<argp>B<,>\n"
1815 "B<                union nfsctl_res *>I<resp>B<);>\n"
1816
1817 #. type: Plain text
1818 #: build/C/man2/nfsservctl.2:21
1819 msgid "I<Note>: Since Linux 3.1, this system call no longer exists."
1820 msgstr "I<注意>: Linux 3.1 以降では、このシステムコールはもはや存在しない。"
1821
1822 #. type: Plain text
1823 #: build/C/man2/nfsservctl.2:35
1824 #, no-wrap
1825 msgid ""
1826 "/*\n"
1827 " * These are the commands understood by nfsctl().\n"
1828 " */\n"
1829 "#define NFSCTL_SVC          0    /* This is a server process. */\n"
1830 "#define NFSCTL_ADDCLIENT    1    /* Add an NFS client. */\n"
1831 "#define NFSCTL_DELCLIENT    2    /* Remove an NFS client. */\n"
1832 "#define NFSCTL_EXPORT       3    /* Export a filesystem. */\n"
1833 "#define NFSCTL_UNEXPORT     4    /* Unexport a filesystem. */\n"
1834 "#define NFSCTL_UGIDUPDATE   5    /* Update a client's UID/GID map\n"
1835 "                                    (only in Linux 2.4.x and earlier). */\n"
1836 "#define NFSCTL_GETFH        6    /* Get a file handle (used by mountd)\n"
1837 "                                    (only in Linux 2.4.x and earlier). */\n"
1838 msgstr ""
1839 "/*\n"
1840 " * nfsctl() によって理解されるコマンド\n"
1841 " */\n"
1842 "#define NFSCTL_SVC          0    /* サーバープロセス */\n"
1843 "#define NFSCTL_ADDCLIENT    1    /* NFS クライアントを追加 */\n"
1844 "#define NFSCTL_DELCLIENT    2    /* NFS クライアンドを削除 */\n"
1845 "#define NFSCTL_EXPORT       3    /* ファイルシステムのエクスポート */\n"
1846 "#define NFSCTL_UNEXPORT     4    /* ファイルシステムのアンエクスポート */\n"
1847 "#define NFSCTL_UGIDUPDATE   5    /* UID/GID マップの更新\n"
1848 "                                    (Linux 2.4.x とそれ以前のみ) */\n"
1849 "#define NFSCTL_GETFH        6    /* (mountd で使用される) fh の取得\n"
1850 "                                    (Linux 2.4.x とそれ以前のみ) */\n"
1851
1852 #. type: Plain text
1853 #: build/C/man2/nfsservctl.2:47
1854 #, no-wrap
1855 msgid ""
1856 "struct nfsctl_arg {\n"
1857 "    int                       ca_version;     /* safeguard */\n"
1858 "    union {\n"
1859 "        struct nfsctl_svc     u_svc;\n"
1860 "        struct nfsctl_client  u_client;\n"
1861 "        struct nfsctl_export  u_export;\n"
1862 "        struct nfsctl_uidmap  u_umap;\n"
1863 "        struct nfsctl_fhparm  u_getfh;\n"
1864 "        unsigned int          u_debug;\n"
1865 "    } u;\n"
1866 "}\n"
1867 msgstr ""
1868 "struct nfsctl_arg {\n"
1869 "    int                       ca_version;     /* safeguard */\n"
1870 "    union {\n"
1871 "        struct nfsctl_svc     u_svc;\n"
1872 "        struct nfsctl_client  u_client;\n"
1873 "        struct nfsctl_export  u_export;\n"
1874 "        struct nfsctl_uidmap  u_umap;\n"
1875 "        struct nfsctl_fhparm  u_getfh;\n"
1876 "        unsigned int          u_debug;\n"
1877 "    } u;\n"
1878 "}\n"
1879
1880 #. type: Plain text
1881 #: build/C/man2/nfsservctl.2:52
1882 #, no-wrap
1883 msgid ""
1884 "union nfsctl_res {\n"
1885 "        struct knfs_fh          cr_getfh;\n"
1886 "        unsigned int            cr_debug;\n"
1887 "};\n"
1888 msgstr ""
1889 "union nfsctl_res {\n"
1890 "        struct knfs_fh          cr_getfh;\n"
1891 "        unsigned int            cr_debug;\n"
1892 "};\n"
1893
1894 #. type: Plain text
1895 #: build/C/man2/nfsservctl.2:58 build/C/man2/pivot_root.2:105
1896 #: build/C/man2/vm86.2:59
1897 msgid ""
1898 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1899 "appropriately."
1900 msgstr ""
1901 "成功した場合は 0 が返される。エラーの場合は -1 が返され、 I<errno> が適切に設"
1902 "定される。"
1903
1904 #. type: Plain text
1905 #: build/C/man2/nfsservctl.2:59
1906 msgid "This call is Linux-specific."
1907 msgstr "このコールは Linux 特有である。"
1908
1909 #. type: TH
1910 #: build/C/man2/outb.2:26
1911 #, no-wrap
1912 msgid "OUTB"
1913 msgstr "OUTB"
1914
1915 #. type: TH
1916 #: build/C/man2/outb.2:26
1917 #, no-wrap
1918 msgid "2012-12-31"
1919 msgstr "2012-12-31"
1920
1921 #. type: Plain text
1922 #: build/C/man2/outb.2:31
1923 msgid ""
1924 "outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, "
1925 "outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - port I/O"
1926 msgstr ""
1927 "outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, "
1928 "outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ポート入出力"
1929
1930 #. type: Plain text
1931 #: build/C/man2/outb.2:34
1932 #, no-wrap
1933 msgid "B<#include E<lt>sys/io.hE<gt>>\n"
1934 msgstr "B<#include E<lt>sys/io.hE<gt>>\n"
1935
1936 #. type: Plain text
1937 #: build/C/man2/outb.2:41
1938 #, no-wrap
1939 msgid ""
1940 "B<unsigned char inb(unsigned short int >I<port>B<);>\n"
1941 "B<unsigned char inb_p(unsigned short int >I<port>B<);>\n"
1942 "B<unsigned short int inw(unsigned short int >I<port>B<);>\n"
1943 "B<unsigned short int inw_p(unsigned short int >I<port>B<);>\n"
1944 "B<unsigned int inl(unsigned short int >I<port>B<);>\n"
1945 "B<unsigned int inl_p(unsigned short int >I<port>B<);>\n"
1946 msgstr ""
1947 "B<unsigned char inb(unsigned short int >I<port>B<);>\n"
1948 "B<unsigned char inb_p(unsigned short int >I<port>B<);>\n"
1949 "B<unsigned short int inw(unsigned short int >I<port>B<);>\n"
1950 "B<unsigned short int inw_p(unsigned short int >I<port>B<);>\n"
1951 "B<unsigned int inl(unsigned short int >I<port>B<);>\n"
1952 "B<unsigned int inl_p(unsigned short int >I<port>B<);>\n"
1953
1954 #. type: Plain text
1955 #: build/C/man2/outb.2:48
1956 #, no-wrap
1957 msgid ""
1958 "B<void outb(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1959 "B<void outb_p(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1960 "B<void outw(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1961 "B<void outw_p(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1962 "B<void outl(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1963 "B<void outl_p(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1964 msgstr ""
1965 "B<void outb(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1966 "B<void outb_p(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1967 "B<void outw(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1968 "B<void outw_p(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1969 "B<void outl(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1970 "B<void outl_p(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1971
1972 #. type: Plain text
1973 #: build/C/man2/outb.2:61
1974 #, no-wrap
1975 msgid ""
1976 "B<void insb(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1977 "B<           unsigned long int >I<count>B<);>\n"
1978 "B<void insw(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1979 "B<           unsigned long int >I<count>B<);>\n"
1980 "B<void insl(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1981 "B<           unsigned long int >I<count>B<);>\n"
1982 "B<void outsb(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
1983 "B<           unsigned long int >I<count>B<);>\n"
1984 "B<void outsw(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
1985 "B<           unsigned long int >I<count>B<);>\n"
1986 "B<void outsl(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
1987 "B<           unsigned long int >I<count>B<);>\n"
1988 msgstr ""
1989 "B<void insb(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1990 "B<           unsigned long int >I<count>B<);>\n"
1991 "B<void insw(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1992 "B<           unsigned long int >I<count>B<);>\n"
1993 "B<void insl(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1994 "B<           unsigned long int >I<count>B<);>\n"
1995 "B<void outsb(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
1996 "B<           unsigned long int >I<count>B<);>\n"
1997 "B<void outsw(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
1998 "B<           unsigned long int >I<count>B<);>\n"
1999 "B<void outsl(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2000 "B<           unsigned long int >I<count>B<);>\n"
2001
2002 #. type: Plain text
2003 #: build/C/man2/outb.2:67
2004 msgid ""
2005 "This family of functions is used to do low-level port input and output.  The "
2006 "out* functions do port output, the in* functions do port input; the b-suffix "
2007 "functions are byte-width and the w-suffix functions word-width; the _p-"
2008 "suffix functions pause until the I/O completes."
2009 msgstr ""
2010 "この一連の関数はポートに対する低レベルの入出力に使用する。 out* 関数はポート"
2011 "出力、in* 関数はポート入力を行う。 語尾に b がついている関数はバイト単位、w "
2012 "がついている関数はワード単位である。 _p がついている関数は I/O が終了するまで"
2013 "待つ。"
2014
2015 #.  , given the following information
2016 #.  in addition to that given in
2017 #.  .BR outb (9).
2018 #. type: Plain text
2019 #: build/C/man2/outb.2:73
2020 msgid ""
2021 "They are primarily designed for internal kernel use, but can be used from "
2022 "user space."
2023 msgstr ""
2024 "これらの関数はもともとカーネル内部での使用を想定して設計されているが、 ユー"
2025 "ザー空間からでも使用できる。"
2026
2027 #. type: Plain text
2028 #: build/C/man2/outb.2:78
2029 msgid ""
2030 "You must compile with B<-O> or B<-O2> or similar.  The functions are defined "
2031 "as inline macros, and will not be substituted in without optimization "
2032 "enabled, causing unresolved references at link time."
2033 msgstr ""
2034 "B<-O> や B<-O2> などを指定してコンパイルしなければならない。 これらの関数はイ"
2035 "ンライン・マクロとして定義されており、 最適化を行わないと関数の展開が行われ"
2036 "ず、 リンクの時に「解決できない参照(unresolved reference)」が発生する。"
2037
2038 #. type: Plain text
2039 #: build/C/man2/outb.2:87
2040 msgid ""
2041 "You use B<ioperm>(2)  or alternatively B<iopl>(2)  to tell the kernel to "
2042 "allow the user space application to access the I/O ports in question.  "
2043 "Failure to do this will cause the application to receive a segmentation "
2044 "fault."
2045 msgstr ""
2046 "ユーザー空間のアプリケーションが I/O ポートにアクセスすることを カーネルに教"
2047 "えるために B<ioperm>(2)  もしくは B<iopl>(2)  を使用すること。これを忘れると"
2048 "アプリケーションはセグメンテーション違反 (segmentation fault) を受けとること"
2049 "になる。"
2050
2051 #. type: Plain text
2052 #: build/C/man2/outb.2:96
2053 msgid ""
2054 "B<outb>()  and friends are hardware-specific.  The I<value> argument is "
2055 "passed first and the I<port> argument is passed second, which is the "
2056 "opposite order from most DOS implementations."
2057 msgstr ""
2058 "B<outb>()  とその仲間はハードウェア特有である。 I<value> 引数が最初に渡さ"
2059 "れ、 I<port> 引数が二番目に渡される。 この順序はほとんどの DOS での実装とは逆"
2060 "である。"
2061
2062 #. type: Plain text
2063 #: build/C/man2/outb.2:98
2064 msgid "B<ioperm>(2), B<iopl>(2)"
2065 msgstr "B<ioperm>(2), B<iopl>(2)"
2066
2067 #. type: TH
2068 #: build/C/man2/pciconfig_read.2:8
2069 #, no-wrap
2070 msgid "PCICONFIG_READ"
2071 msgstr "PCICONFIG_READ"
2072
2073 #. type: TH
2074 #: build/C/man2/pciconfig_read.2:8
2075 #, no-wrap
2076 msgid "2003-07-14"
2077 msgstr "2003-07-14"
2078
2079 #. type: Plain text
2080 #: build/C/man2/pciconfig_read.2:11
2081 msgid ""
2082 "pciconfig_read, pciconfig_write, pciconfig_iobase - pci device information "
2083 "handling"
2084 msgstr ""
2085 "pciconfig_read, pciconfig_write, pciconfig_iobase - pci デバイス情報を扱う"
2086
2087 #. type: Plain text
2088 #: build/C/man2/pciconfig_read.2:14
2089 #, no-wrap
2090 msgid "B<#include E<lt>pci.hE<gt>>\n"
2091 msgstr "B<#include E<lt>pci.hE<gt>>\n"
2092
2093 #. type: Plain text
2094 #: build/C/man2/pciconfig_read.2:21
2095 #, no-wrap
2096 msgid ""
2097 "B<int pciconfig_read(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2098 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2099 "B<int pciconfig_write(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2100 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2101 "B<int pciconfig_iobase(long >I<which>B<, unsigned long >I<bus>B<,>\n"
2102 "B<          unsigned long >I<devfn>B<);>\n"
2103 msgstr ""
2104 "B<int pciconfig_read(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2105 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2106 "B<int pciconfig_write(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2107 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2108 "B<int pciconfig_iobase(long >I<which>B<, unsigned long >I<bus>B<,>\n"
2109 "B<          unsigned long >I<devfn>B<);>\n"
2110
2111 #. type: Plain text
2112 #: build/C/man2/pciconfig_read.2:27
2113 msgid ""
2114 "Most of the interaction with PCI devices is already handled by the kernel "
2115 "PCI layer, and thus these calls should not normally need to be accessed from "
2116 "user space."
2117 msgstr ""
2118 "PCI デバイスとのやり取り (interaction) は カーネル PCI レイヤですでに処理され"
2119 "ているので、 通常はこららの関数をユーザ空間からアクセスする必要はない。"
2120
2121 #. type: TP
2122 #: build/C/man2/pciconfig_read.2:27 build/C/man2/pciconfig_read.2:51
2123 #, no-wrap
2124 msgid "B<pciconfig_read>()"
2125 msgstr "B<pciconfig_read>()"
2126
2127 #. type: Plain text
2128 #: build/C/man2/pciconfig_read.2:36
2129 msgid "Reads to I<buf> from device I<dev> at offset I<off> value."
2130 msgstr "デバイス I<dev> のオフセット I<off> の値を I<buf> に読み込む。"
2131
2132 #. type: TP
2133 #: build/C/man2/pciconfig_read.2:36 build/C/man2/pciconfig_read.2:57
2134 #, no-wrap
2135 msgid "B<pciconfig_write>()"
2136 msgstr "B<pciconfig_write>()"
2137
2138 #. type: Plain text
2139 #: build/C/man2/pciconfig_read.2:45
2140 msgid "Writes from I<buf> to device I<dev> at offset I<off> value."
2141 msgstr "デバイス I<dev> のオフセット I<off> に I<buf> の値を書き込む。"
2142
2143 #. type: TP
2144 #: build/C/man2/pciconfig_read.2:45 build/C/man2/pciconfig_read.2:63
2145 #, no-wrap
2146 msgid "B<pciconfig_iobase>()"
2147 msgstr "B<pciconfig_iobase>()"
2148
2149 #. type: Plain text
2150 #: build/C/man2/pciconfig_read.2:50
2151 msgid ""
2152 "You pass it a bus/devfn pair and get a physical address for either the "
2153 "memory offset (for things like prep, this is 0xc0000000), the IO base for "
2154 "PIO cycles, or the ISA holes if any."
2155 msgstr ""
2156 "bus/devfn ペアをこの関数に渡し、 メモリオフセット (prep のようなものでは、こ"
2157 "の値は 0xc0000000 である) と PIO サイクルの IO ベースの物理アドレスを取得す"
2158 "る。 また、もしあるならば ISA hole の物理アドレスを取得する。"
2159
2160 #. type: Plain text
2161 #: build/C/man2/pciconfig_read.2:57 build/C/man2/pciconfig_read.2:63
2162 msgid ""
2163 "On success zero is returned.  On error, -1 is returned and I<errno> is set "
2164 "appropriately."
2165 msgstr ""
2166 "成功した場合、0 が返される。 エラーの場合、-1 が返され、 I<errno> が適切に設"
2167 "定される。"
2168
2169 #. type: Plain text
2170 #: build/C/man2/pciconfig_read.2:77
2171 msgid ""
2172 "Returns information on locations of various I/O regions in physical memory "
2173 "according to the I<which> value.  Values for I<which> are: "
2174 "B<IOBASE_BRIDGE_NUMBER>, B<IOBASE_MEMORY>, B<IOBASE_IO>, B<IOBASE_ISA_IO>, "
2175 "B<IOBASE_ISA_MEM>."
2176 msgstr ""
2177 "I<which> の値に基づいて、物理メモリ内の様々な I/O 領域の位置情報が返される。 "
2178 "I<which> の値は、 B<IOBASE_BRIDGE_NUMBER>, B<IOBASE_MEMORY>, B<IOBASE_IO>, "
2179 "B<IOBASE_ISA_IO>, B<IOBASE_ISA_MEM> である。"
2180
2181 #. type: Plain text
2182 #: build/C/man2/pciconfig_read.2:84
2183 msgid "I<len> value is invalid.  This does not apply to B<pciconfig_iobase>()."
2184 msgstr ""
2185 "I<len> の値が無効である。 このエラーは B<pciconfig_iobase>()  には適用されな"
2186 "い。"
2187
2188 #. type: TP
2189 #: build/C/man2/pciconfig_read.2:84 build/C/man2/ptrace.2:1929
2190 #: build/C/man2/sendfile.2:134
2191 #, no-wrap
2192 msgid "B<EIO>"
2193 msgstr "B<EIO>"
2194
2195 #. type: Plain text
2196 #: build/C/man2/pciconfig_read.2:87
2197 msgid "I/O error."
2198 msgstr "I/O エラー。"
2199
2200 #. type: TP
2201 #: build/C/man2/pciconfig_read.2:87 build/C/man2/perf_event_open.2:2615
2202 #, no-wrap
2203 msgid "B<ENODEV>"
2204 msgstr "B<ENODEV>"
2205
2206 #. type: Plain text
2207 #: build/C/man2/pciconfig_read.2:93
2208 msgid ""
2209 "For B<pciconfig_iobase>(), \"hose\" value is NULL.  For the other calls, "
2210 "could not find a slot."
2211 msgstr ""
2212 "B<pciconfig_iobase>()  の場合、でホース (hose) の値が NULL である。 他の呼び"
2213 "出しの場合、スロット (slot) が見つからない。"
2214
2215 #. type: Plain text
2216 #: build/C/man2/pciconfig_read.2:98
2217 msgid "The system has not implemented these calls (B<CONFIG_PCI> not defined)."
2218 msgstr ""
2219 "このシステムはこれらの呼び出しを実装していない。 (B<CONFIG_PCI> が定義されて"
2220 "いない)。"
2221
2222 #. type: TP
2223 #: build/C/man2/pciconfig_read.2:98 build/C/man2/perf_event_open.2:2643
2224 #, no-wrap
2225 msgid "B<EOPNOTSUPP>"
2226 msgstr "B<EOPNOTSUPP>"
2227
2228 #. type: Plain text
2229 #: build/C/man2/pciconfig_read.2:105
2230 msgid ""
2231 "This return value is valid only for B<pciconfig_iobase>().  It is returned "
2232 "if the value for I<which> is invalid."
2233 msgstr ""
2234 "この返り値は B<pciconfig_iobase>()  でのみ有効である。 このエラーは I<which> "
2235 "の値が無効であるときに返される。"
2236
2237 #. type: Plain text
2238 #: build/C/man2/pciconfig_read.2:112
2239 msgid ""
2240 "User does not have the B<CAP_SYS_ADMIN> capability.  This does not apply to "
2241 "B<pciconfig_iobase>()."
2242 msgstr ""
2243 "ユーザが B<CAP_SYS_ADMIN> 権限を持っていない。 このエラーは "
2244 "B<pciconfig_iobase>()  には適用されない。"
2245
2246 #. type: Plain text
2247 #: build/C/man2/pciconfig_read.2:114
2248 msgid "These calls are Linux-specific, available since Linux 2.0.26/2.1.11."
2249 msgstr ""
2250 "これらの呼び出しは Linux 特有のものであり、 Linux 2.0.26/2.1.11 から使用可能"
2251 "である。"
2252
2253 #. type: Plain text
2254 #: build/C/man2/pciconfig_read.2:115
2255 msgid "B<capabilities>(7)"
2256 msgstr "B<capabilities>(7)"
2257
2258 #. type: TH
2259 #: build/C/man2/perf_event_open.2:27
2260 #, no-wrap
2261 msgid "PERF_EVENT_OPEN"
2262 msgstr "PERF_EVENT_OPEN"
2263
2264 #. type: TH
2265 #: build/C/man2/perf_event_open.2:27
2266 #, no-wrap
2267 msgid "2015-01-10"
2268 msgstr "2015-01-10"
2269
2270 #. type: Plain text
2271 #: build/C/man2/perf_event_open.2:30
2272 msgid "perf_event_open - set up performance monitoring"
2273 msgstr ""
2274
2275 #. type: Plain text
2276 #: build/C/man2/perf_event_open.2:34
2277 #, no-wrap
2278 msgid ""
2279 "B<#include E<lt>linux/perf_event.hE<gt>>\n"
2280 "B<#include E<lt>linux/hw_breakpoint.hE<gt>>\n"
2281 msgstr ""
2282 "B<#include E<lt>linux/perf_event.hE<gt>>\n"
2283 "B<#include E<lt>linux/hw_breakpoint.hE<gt>>\n"
2284
2285 #. type: Plain text
2286 #: build/C/man2/perf_event_open.2:38
2287 #, no-wrap
2288 msgid ""
2289 "B<int perf_event_open(struct perf_event_attr *>I<attr>B<,>\n"
2290 "B<                    pid_t >I<pid>B<, int >I<cpu>B<, int >I<group_fd>B<,>\n"
2291 "B<                    unsigned long >I<flags>B<);>\n"
2292 msgstr ""
2293 "B<int perf_event_open(struct perf_event_attr *>I<attr>B<,>\n"
2294 "B<                    pid_t >I<pid>B<, int >I<cpu>B<, int >I<group_fd>B<,>\n"
2295 "B<                    unsigned long >I<flags>B<);>\n"
2296
2297 #. type: Plain text
2298 #: build/C/man2/perf_event_open.2:47
2299 msgid ""
2300 "Given a list of parameters, B<perf_event_open>()  returns a file descriptor, "
2301 "for use in subsequent system calls (B<read>(2), B<mmap>(2), B<prctl>(2), "
2302 "B<fcntl>(2), etc.)."
2303 msgstr ""
2304
2305 #. type: Plain text
2306 #: build/C/man2/perf_event_open.2:55
2307 msgid ""
2308 "A call to B<perf_event_open>()  creates a file descriptor that allows "
2309 "measuring performance information.  Each file descriptor corresponds to one "
2310 "event that is measured; these can be grouped together to measure multiple "
2311 "events simultaneously."
2312 msgstr ""
2313
2314 #. type: Plain text
2315 #: build/C/man2/perf_event_open.2:62
2316 msgid ""
2317 "Events can be enabled and disabled in two ways: via B<ioctl>(2)  and via "
2318 "B<prctl>(2).  When an event is disabled it does not count or generate "
2319 "overflows but does continue to exist and maintain its count value."
2320 msgstr ""
2321
2322 #. type: Plain text
2323 #: build/C/man2/perf_event_open.2:76
2324 msgid ""
2325 "Events come in two flavors: counting and sampled.  A I<counting> event is "
2326 "one that is used for counting the aggregate number of events that occur.  In "
2327 "general, counting event results are gathered with a B<read>(2)  call.  A "
2328 "I<sampling> event periodically writes measurements to a buffer that can then "
2329 "be accessed via B<mmap>(2)."
2330 msgstr ""
2331
2332 #. type: SS
2333 #: build/C/man2/perf_event_open.2:76
2334 #, no-wrap
2335 msgid "Arguments"
2336 msgstr ""
2337
2338 #. type: Plain text
2339 #: build/C/man2/perf_event_open.2:83
2340 msgid ""
2341 "The I<pid> and I<cpu> arguments allow specifying which process and CPU to "
2342 "monitor:"
2343 msgstr ""
2344
2345 #. type: TP
2346 #: build/C/man2/perf_event_open.2:83
2347 #, no-wrap
2348 msgid "B<pid == 0> and B<cpu == -1>"
2349 msgstr ""
2350
2351 #. type: Plain text
2352 #: build/C/man2/perf_event_open.2:86
2353 msgid "This measures the calling process/thread on any CPU."
2354 msgstr ""
2355
2356 #. type: TP
2357 #: build/C/man2/perf_event_open.2:86
2358 #, no-wrap
2359 msgid "B<pid == 0> and B<cpu E<gt>= 0>"
2360 msgstr ""
2361
2362 #. type: Plain text
2363 #: build/C/man2/perf_event_open.2:90
2364 msgid ""
2365 "This measures the calling process/thread only when running on the specified "
2366 "CPU."
2367 msgstr ""
2368
2369 #. type: TP
2370 #: build/C/man2/perf_event_open.2:90
2371 #, no-wrap
2372 msgid "B<pid E<gt> 0> and B<cpu == -1>"
2373 msgstr ""
2374
2375 #. type: Plain text
2376 #: build/C/man2/perf_event_open.2:93
2377 msgid "This measures the specified process/thread on any CPU."
2378 msgstr ""
2379
2380 #. type: TP
2381 #: build/C/man2/perf_event_open.2:93
2382 #, no-wrap
2383 msgid "B<pid E<gt> 0> and B<cpu E<gt>= 0>"
2384 msgstr ""
2385
2386 #. type: Plain text
2387 #: build/C/man2/perf_event_open.2:97
2388 msgid ""
2389 "This measures the specified process/thread only when running on the "
2390 "specified CPU."
2391 msgstr ""
2392
2393 #. type: TP
2394 #: build/C/man2/perf_event_open.2:97
2395 #, no-wrap
2396 msgid "B<pid == -1> and B<cpu E<gt>= 0>"
2397 msgstr ""
2398
2399 #. type: Plain text
2400 #: build/C/man2/perf_event_open.2:105
2401 msgid ""
2402 "This measures all processes/threads on the specified CPU.  This requires "
2403 "B<CAP_SYS_ADMIN> capability or a I</proc/sys/kernel/perf_event_paranoid> "
2404 "value of less than 1."
2405 msgstr ""
2406
2407 #. type: TP
2408 #: build/C/man2/perf_event_open.2:105
2409 #, no-wrap
2410 msgid "B<pid == -1> and B<cpu == -1>"
2411 msgstr ""
2412
2413 #. type: Plain text
2414 #: build/C/man2/perf_event_open.2:108
2415 msgid "This setting is invalid and will return an error."
2416 msgstr ""
2417
2418 #. type: Plain text
2419 #: build/C/man2/perf_event_open.2:130
2420 msgid ""
2421 "The I<group_fd> argument allows event groups to be created.  An event group "
2422 "has one event which is the group leader.  The leader is created first, with "
2423 "I<group_fd> = -1.  The rest of the group members are created with subsequent "
2424 "B<perf_event_open>()  calls with I<group_fd> being set to the file "
2425 "descriptor of the group leader.  (A single event on its own is created with "
2426 "I<group_fd> = -1 and is considered to be a group with only 1 member.)  An "
2427 "event group is scheduled onto the CPU as a unit: it will be put onto the CPU "
2428 "only if all of the events in the group can be put onto the CPU.  This means "
2429 "that the values of the member events can be meaningfully compared\\(emadded, "
2430 "divided (to get ratios), and so on\\(emwith each other, since they have "
2431 "counted events for the same set of executed instructions."
2432 msgstr ""
2433
2434 #. type: Plain text
2435 #: build/C/man2/perf_event_open.2:134
2436 msgid ""
2437 "The I<flags> argument is formed by ORing together zero or more of the "
2438 "following values:"
2439 msgstr ""
2440 "I<flags> 引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。"
2441
2442 #. type: TP
2443 #: build/C/man2/perf_event_open.2:134
2444 #, no-wrap
2445 msgid "B<PERF_FLAG_FD_CLOEXEC> (since Linux 3.14)."
2446 msgstr "B<PERF_FLAG_FD_CLOEXEC> (Linux 3.14 以降)."
2447
2448 #. type: Plain text
2449 #: build/C/man2/perf_event_open.2:150
2450 msgid ""
2451 "This flag enables the close-on-exec flag for the created event file "
2452 "descriptor, so that the file descriptor is automatically closed on "
2453 "B<execve>(2).  Setting the close-on-exec flags at creation time, rather than "
2454 "later with B<fcntl>(2), avoids potential race conditions where the calling "
2455 "thread invokes B<perf_event_open>()  and B<fcntl>(2)  at the same time as "
2456 "another thread calls B<fork>(2)  then B<execve>(2)."
2457 msgstr ""
2458
2459 #. type: TP
2460 #: build/C/man2/perf_event_open.2:150
2461 #, no-wrap
2462 msgid "B<PERF_FLAG_FD_NO_GROUP>"
2463 msgstr "B<PERF_FLAG_FD_NO_GROUP>"
2464
2465 #. type: Plain text
2466 #: build/C/man2/perf_event_open.2:158
2467 msgid ""
2468 "This flag tells the event to ignore the I<group_fd> parameter except for the "
2469 "purpose of setting up output redirection using the B<PERF_FLAG_FD_OUTPUT> "
2470 "flag."
2471 msgstr ""
2472
2473 #. type: TP
2474 #: build/C/man2/perf_event_open.2:158
2475 #, fuzzy, no-wrap
2476 #| msgid "B<PERF_FLAG_PID_CGROUP> (since Linux 2.6.39)."
2477 msgid "B<PERF_FLAG_FD_OUTPUT> (broken since Linux 2.6.35)."
2478 msgstr "B<PERF_FLAG_PID_CGROUP> (Linux 2.6.39 以降)."
2479
2480 #. type: Plain text
2481 #: build/C/man2/perf_event_open.2:163
2482 msgid ""
2483 "This flag re-routes the event's sampled output to instead be included in the "
2484 "mmap buffer of the event specified by I<group_fd>."
2485 msgstr ""
2486
2487 #. type: TP
2488 #: build/C/man2/perf_event_open.2:163
2489 #, no-wrap
2490 msgid "B<PERF_FLAG_PID_CGROUP> (since Linux 2.6.39)."
2491 msgstr "B<PERF_FLAG_PID_CGROUP> (Linux 2.6.39 以降)."
2492
2493 #. type: Plain text
2494 #: build/C/man2/perf_event_open.2:186
2495 msgid ""
2496 "This flag activates per-container system-wide monitoring.  A container is an "
2497 "abstraction that isolates a set of resources for finer-grained control "
2498 "(CPUs, memory, etc.).  In this mode, the event is measured only if the "
2499 "thread running on the monitored CPU belongs to the designated container "
2500 "(cgroup).  The cgroup is identified by passing a file descriptor opened on "
2501 "its directory in the cgroupfs filesystem.  For instance, if the cgroup to "
2502 "monitor is called I<test>, then a file descriptor opened on I</dev/cgroup/"
2503 "test> (assuming cgroupfs is mounted on I</dev/cgroup>)  must be passed as "
2504 "the I<pid> parameter.  cgroup monitoring is available only for system-wide "
2505 "events and may therefore require extra permissions."
2506 msgstr ""
2507
2508 #. type: Plain text
2509 #: build/C/man2/perf_event_open.2:191
2510 msgid ""
2511 "The I<perf_event_attr> structure provides detailed configuration information "
2512 "for the event being created."
2513 msgstr ""
2514
2515 #. type: Plain text
2516 #: build/C/man2/perf_event_open.2:198
2517 #, no-wrap
2518 msgid ""
2519 "struct perf_event_attr {\n"
2520 "    __u32 type;         /* Type of event */\n"
2521 "    __u32 size;         /* Size of attribute structure */\n"
2522 "    __u64 config;       /* Type-specific configuration */\n"
2523 msgstr ""
2524 "struct perf_event_attr {\n"
2525 "    __u32 type;         /* Type of event */\n"
2526 "    __u32 size;         /* Size of attribute structure */\n"
2527 "    __u64 config;       /* Type-specific configuration */\n"
2528
2529 #. type: Plain text
2530 #: build/C/man2/perf_event_open.2:203
2531 #, no-wrap
2532 msgid ""
2533 "    union {\n"
2534 "        __u64 sample_period;    /* Period of sampling */\n"
2535 "        __u64 sample_freq;      /* Frequency of sampling */\n"
2536 "    };\n"
2537 msgstr ""
2538 "    union {\n"
2539 "        __u64 sample_period;    /* Period of sampling */\n"
2540 "        __u64 sample_freq;      /* Frequency of sampling */\n"
2541 "    };\n"
2542
2543 #. type: Plain text
2544 #: build/C/man2/perf_event_open.2:206
2545 #, no-wrap
2546 msgid ""
2547 "    __u64 sample_type;  /* Specifies values included in sample */\n"
2548 "    __u64 read_format;  /* Specifies values returned in read */\n"
2549 msgstr ""
2550 "    __u64 sample_type;  /* Specifies values included in sample */\n"
2551 "    __u64 read_format;  /* Specifies values returned in read */\n"
2552
2553 #. type: Plain text
2554 #: build/C/man2/perf_event_open.2:234
2555 #, no-wrap
2556 msgid ""
2557 "    __u64 disabled       : 1,   /* off by default */\n"
2558 "          inherit        : 1,   /* children inherit it */\n"
2559 "          pinned         : 1,   /* must always be on PMU */\n"
2560 "          exclusive      : 1,   /* only group on PMU */\n"
2561 "          exclude_user   : 1,   /* don't count user */\n"
2562 "          exclude_kernel : 1,   /* don't count kernel */\n"
2563 "          exclude_hv     : 1,   /* don't count hypervisor */\n"
2564 "          exclude_idle   : 1,   /* don't count when idle */\n"
2565 "          mmap           : 1,   /* include mmap data */\n"
2566 "          comm           : 1,   /* include comm data */\n"
2567 "          freq           : 1,   /* use freq, not period */\n"
2568 "          inherit_stat   : 1,   /* per task counts */\n"
2569 "          enable_on_exec : 1,   /* next exec enables */\n"
2570 "          task           : 1,   /* trace fork/exit */\n"
2571 "          watermark      : 1,   /* wakeup_watermark */\n"
2572 "          precise_ip     : 2,   /* skid constraint */\n"
2573 "          mmap_data      : 1,   /* non-exec mmap data */\n"
2574 "          sample_id_all  : 1,   /* sample_type all events */\n"
2575 "          exclude_host   : 1,   /* don't count in host */\n"
2576 "          exclude_guest  : 1,   /* don't count in guest */\n"
2577 "          exclude_callchain_kernel : 1,\n"
2578 "                                /* exclude kernel callchains */\n"
2579 "          exclude_callchain_user   : 1,\n"
2580 "                                /* exclude user callchains */\n"
2581 "          mmap2          :  1,  /* include mmap with inode data */\n"
2582 "          comm_exec      :  1,  /* flag comm events that are due to exec */\n"
2583 "          __reserved_1   : 39;\n"
2584 msgstr ""
2585 "    __u64 disabled       : 1,   /* off by default */\n"
2586 "          inherit        : 1,   /* children inherit it */\n"
2587 "          pinned         : 1,   /* must always be on PMU */\n"
2588 "          exclusive      : 1,   /* only group on PMU */\n"
2589 "          exclude_user   : 1,   /* don't count user */\n"
2590 "          exclude_kernel : 1,   /* don't count kernel */\n"
2591 "          exclude_hv     : 1,   /* don't count hypervisor */\n"
2592 "          exclude_idle   : 1,   /* don't count when idle */\n"
2593 "          mmap           : 1,   /* include mmap data */\n"
2594 "          comm           : 1,   /* include comm data */\n"
2595 "          freq           : 1,   /* use freq, not period */\n"
2596 "          inherit_stat   : 1,   /* per task counts */\n"
2597 "          enable_on_exec : 1,   /* next exec enables */\n"
2598 "          task           : 1,   /* trace fork/exit */\n"
2599 "          watermark      : 1,   /* wakeup_watermark */\n"
2600 "          precise_ip     : 2,   /* skid constraint */\n"
2601 "          mmap_data      : 1,   /* non-exec mmap data */\n"
2602 "          sample_id_all  : 1,   /* sample_type all events */\n"
2603 "          exclude_host   : 1,   /* don't count in host */\n"
2604 "          exclude_guest  : 1,   /* don't count in guest */\n"
2605 "          exclude_callchain_kernel : 1,\n"
2606 "                                /* exclude kernel callchains */\n"
2607 "          exclude_callchain_user   : 1,\n"
2608 "                                /* exclude user callchains */\n"
2609 "          mmap2          :  1,  /* include mmap with inode data */\n"
2610 "          comm_exec      :  1,  /* flag comm events that are due to exec */\n"
2611 "          __reserved_1   : 39;\n"
2612
2613 #. type: Plain text
2614 #: build/C/man2/perf_event_open.2:239
2615 #, no-wrap
2616 msgid ""
2617 "    union {\n"
2618 "        __u32 wakeup_events;    /* wakeup every n events */\n"
2619 "        __u32 wakeup_watermark; /* bytes before wakeup */\n"
2620 "    };\n"
2621 msgstr ""
2622 "    union {\n"
2623 "        __u32 wakeup_events;    /* wakeup every n events */\n"
2624 "        __u32 wakeup_watermark; /* bytes before wakeup */\n"
2625 "    };\n"
2626
2627 #. type: Plain text
2628 #: build/C/man2/perf_event_open.2:241
2629 #, no-wrap
2630 msgid "    __u32     bp_type;          /* breakpoint type */\n"
2631 msgstr "    __u32     bp_type;          /* breakpoint type */\n"
2632
2633 #. type: Plain text
2634 #: build/C/man2/perf_event_open.2:246
2635 #, no-wrap
2636 msgid ""
2637 "    union {\n"
2638 "        __u64 bp_addr;          /* breakpoint address */\n"
2639 "        __u64 config1;          /* extension of config */\n"
2640 "    };\n"
2641 msgstr ""
2642 "    union {\n"
2643 "        __u64 bp_addr;          /* breakpoint address */\n"
2644 "        __u64 config1;          /* extension of config */\n"
2645 "    };\n"
2646
2647 #. type: Plain text
2648 #: build/C/man2/perf_event_open.2:256
2649 #, no-wrap
2650 msgid ""
2651 "    union {\n"
2652 "        __u64 bp_len;           /* breakpoint length */\n"
2653 "        __u64 config2;          /* extension of config1 */\n"
2654 "    };\n"
2655 "    __u64 branch_sample_type;   /* enum perf_branch_sample_type */\n"
2656 "    __u64 sample_regs_user;     /* user regs to dump on samples */\n"
2657 "    __u32 sample_stack_user;    /* size of stack to dump on\n"
2658 "                                   samples */\n"
2659 "    __u32 __reserved_2;         /* Align to u64 */\n"
2660 msgstr ""
2661 "    union {\n"
2662 "        __u64 bp_len;           /* breakpoint length */\n"
2663 "        __u64 config2;          /* extension of config1 */\n"
2664 "    };\n"
2665 "    __u64 branch_sample_type;   /* enum perf_branch_sample_type */\n"
2666 "    __u64 sample_regs_user;     /* user regs to dump on samples */\n"
2667 "    __u32 sample_stack_user;    /* size of stack to dump on\n"
2668 "                                   samples */\n"
2669 "    __u32 __reserved_2;         /* Align to u64 */\n"
2670
2671 #. type: Plain text
2672 #: build/C/man2/perf_event_open.2:258
2673 #, no-wrap
2674 msgid "};\n"
2675 msgstr "};\n"
2676
2677 #. type: Plain text
2678 #: build/C/man2/perf_event_open.2:264
2679 msgid ""
2680 "The fields of the I<perf_event_attr> structure are described in more detail "
2681 "below:"
2682 msgstr ""
2683
2684 #. type: TP
2685 #: build/C/man2/perf_event_open.2:264 build/C/man2/perf_event_open.2:1604
2686 #, no-wrap
2687 msgid "I<type>"
2688 msgstr "I<type>"
2689
2690 #. type: Plain text
2691 #: build/C/man2/perf_event_open.2:268
2692 msgid ""
2693 "This field specifies the overall event type.  It has one of the following "
2694 "values:"
2695 msgstr ""
2696
2697 #. type: TP
2698 #: build/C/man2/perf_event_open.2:269
2699 #, no-wrap
2700 msgid "B<PERF_TYPE_HARDWARE>"
2701 msgstr "B<PERF_TYPE_HARDWARE>"
2702
2703 #. type: Plain text
2704 #: build/C/man2/perf_event_open.2:276
2705 msgid ""
2706 "This indicates one of the \"generalized\" hardware events provided by the "
2707 "kernel.  See the I<config> field definition for more details."
2708 msgstr ""
2709
2710 #. type: TP
2711 #: build/C/man2/perf_event_open.2:276
2712 #, no-wrap
2713 msgid "B<PERF_TYPE_SOFTWARE>"
2714 msgstr "B<PERF_TYPE_SOFTWARE>"
2715
2716 #. type: Plain text
2717 #: build/C/man2/perf_event_open.2:280
2718 msgid ""
2719 "This indicates one of the software-defined events provided by the kernel "
2720 "(even if no hardware support is available)."
2721 msgstr ""
2722
2723 #. type: TP
2724 #: build/C/man2/perf_event_open.2:280
2725 #, no-wrap
2726 msgid "B<PERF_TYPE_TRACEPOINT>"
2727 msgstr "B<PERF_TYPE_TRACEPOINT>"
2728
2729 #. type: Plain text
2730 #: build/C/man2/perf_event_open.2:284
2731 msgid ""
2732 "This indicates a tracepoint provided by the kernel tracepoint infrastructure."
2733 msgstr ""
2734
2735 #. type: TP
2736 #: build/C/man2/perf_event_open.2:284
2737 #, no-wrap
2738 msgid "B<PERF_TYPE_HW_CACHE>"
2739 msgstr "B<PERF_TYPE_HW_CACHE>"
2740
2741 #. type: Plain text
2742 #: build/C/man2/perf_event_open.2:290
2743 msgid ""
2744 "This indicates a hardware cache event.  This has a special encoding, "
2745 "described in the I<config> field definition."
2746 msgstr ""
2747
2748 #. type: TP
2749 #: build/C/man2/perf_event_open.2:290
2750 #, no-wrap
2751 msgid "B<PERF_TYPE_RAW>"
2752 msgstr "B<PERF_TYPE_RAW>"
2753
2754 #. type: Plain text
2755 #: build/C/man2/perf_event_open.2:294
2756 msgid ""
2757 "This indicates a \"raw\" implementation-specific event in the I<config> "
2758 "field."
2759 msgstr ""
2760
2761 #. type: TP
2762 #: build/C/man2/perf_event_open.2:294
2763 #, no-wrap
2764 msgid "B<PERF_TYPE_BREAKPOINT> (since Linux 2.6.33)"
2765 msgstr "B<PERF_TYPE_BREAKPOINT> (Linux 2.6.33 以降)"
2766
2767 #. type: Plain text
2768 #: build/C/man2/perf_event_open.2:299
2769 msgid ""
2770 "This indicates a hardware breakpoint as provided by the CPU.  Breakpoints "
2771 "can be read/write accesses to an address as well as execution of an "
2772 "instruction address."
2773 msgstr ""
2774
2775 #. type: TP
2776 #: build/C/man2/perf_event_open.2:299
2777 #, no-wrap
2778 msgid "dynamic PMU"
2779 msgstr ""
2780
2781 #. type: Plain text
2782 #: build/C/man2/perf_event_open.2:318
2783 msgid ""
2784 "Since Linux 2.6.39, B<perf_event_open>()  can support multiple PMUs.  To "
2785 "enable this, a value exported by the kernel can be used in the I<type> field "
2786 "to indicate which PMU to use.  The value to use can be found in the sysfs "
2787 "filesystem: there is a subdirectory per PMU instance under I</sys/bus/"
2788 "event_source/devices>.  In each subdirectory there is a I<type> file whose "
2789 "content is an integer that can be used in the I<type> field.  For instance, "
2790 "I</sys/bus/event_source/devices/cpu/type> contains the value for the core "
2791 "CPU PMU, which is usually 4."
2792 msgstr ""
2793
2794 #. type: TP
2795 #: build/C/man2/perf_event_open.2:319 build/C/man2/perf_event_open.2:1541
2796 #, no-wrap
2797 msgid "I<size>"
2798 msgstr "I<size>"
2799
2800 #. type: Plain text
2801 #: build/C/man2/perf_event_open.2:328
2802 msgid ""
2803 "The size of the I<perf_event_attr> structure for forward/backward "
2804 "compatibility.  Set this using I<sizeof(struct perf_event_attr)> to allow "
2805 "the kernel to see the struct size at the time of compilation."
2806 msgstr ""
2807
2808 #. type: Plain text
2809 #: build/C/man2/perf_event_open.2:343
2810 msgid ""
2811 "The related define B<PERF_ATTR_SIZE_VER0> is set to 64; this was the size of "
2812 "the first published struct.  B<PERF_ATTR_SIZE_VER1> is 72, corresponding to "
2813 "the addition of breakpoints in Linux 2.6.33.  B<PERF_ATTR_SIZE_VER2> is 80 "
2814 "corresponding to the addition of branch sampling in Linux 3.4.  "
2815 "B<PERF_ATTR_SIZE_VER3> is 96 corresponding to the addition of "
2816 "I<sample_regs_user> and I<sample_stack_user> in Linux 3.7."
2817 msgstr ""
2818
2819 #. type: TP
2820 #: build/C/man2/perf_event_open.2:343
2821 #, no-wrap
2822 msgid "I<config>"
2823 msgstr "I<config>"
2824
2825 #. type: Plain text
2826 #: build/C/man2/perf_event_open.2:354
2827 msgid ""
2828 "This specifies which event you want, in conjunction with the I<type> field.  "
2829 "The I<config1> and I<config2> fields are also taken into account in cases "
2830 "where 64 bits is not enough to fully specify the event.  The encoding of "
2831 "these fields are event dependent."
2832 msgstr ""
2833
2834 #. type: Plain text
2835 #: build/C/man2/perf_event_open.2:360
2836 msgid ""
2837 "The most significant bit (bit 63) of I<config> signifies CPU-specific (raw) "
2838 "counter configuration data; if the most significant bit is unset, the next 7 "
2839 "bits are an event type and the rest of the bits are the event identifier."
2840 msgstr ""
2841
2842 #. type: Plain text
2843 #: build/C/man2/perf_event_open.2:371
2844 msgid ""
2845 "There are various ways to set the I<config> field that are dependent on the "
2846 "value of the previously described I<type> field.  What follows are various "
2847 "possible settings for I<config> separated out by I<type>."
2848 msgstr ""
2849
2850 #. type: Plain text
2851 #: build/C/man2/perf_event_open.2:381
2852 msgid ""
2853 "If I<type> is B<PERF_TYPE_HARDWARE>, we are measuring one of the generalized "
2854 "hardware CPU events.  Not all of these are available on all platforms.  Set "
2855 "I<config> to one of the following:"
2856 msgstr ""
2857
2858 #. type: TP
2859 #: build/C/man2/perf_event_open.2:382
2860 #, no-wrap
2861 msgid "B<PERF_COUNT_HW_CPU_CYCLES>"
2862 msgstr "B<PERF_COUNT_HW_CPU_CYCLES>"
2863
2864 #. type: Plain text
2865 #: build/C/man2/perf_event_open.2:386
2866 msgid "Total cycles.  Be wary of what happens during CPU frequency scaling."
2867 msgstr ""
2868
2869 #. type: TP
2870 #: build/C/man2/perf_event_open.2:386
2871 #, no-wrap
2872 msgid "B<PERF_COUNT_HW_INSTRUCTIONS>"
2873 msgstr "B<PERF_COUNT_HW_INSTRUCTIONS>"
2874
2875 #. type: Plain text
2876 #: build/C/man2/perf_event_open.2:391
2877 msgid ""
2878 "Retired instructions.  Be careful, these can be affected by various issues, "
2879 "most notably hardware interrupt counts."
2880 msgstr ""
2881
2882 #. type: TP
2883 #: build/C/man2/perf_event_open.2:391
2884 #, no-wrap
2885 msgid "B<PERF_COUNT_HW_CACHE_REFERENCES>"
2886 msgstr "B<PERF_COUNT_HW_CACHE_REFERENCES>"
2887
2888 #. type: Plain text
2889 #: build/C/man2/perf_event_open.2:398
2890 msgid ""
2891 "Cache accesses.  Usually this indicates Last Level Cache accesses but this "
2892 "may vary depending on your CPU.  This may include prefetches and coherency "
2893 "messages; again this depends on the design of your CPU."
2894 msgstr ""
2895
2896 #. type: TP
2897 #: build/C/man2/perf_event_open.2:398
2898 #, no-wrap
2899 msgid "B<PERF_COUNT_HW_CACHE_MISSES>"
2900 msgstr "B<PERF_COUNT_HW_CACHE_MISSES>"
2901
2902 #. type: Plain text
2903 #: build/C/man2/perf_event_open.2:405
2904 msgid ""
2905 "Cache misses.  Usually this indicates Last Level Cache misses; this is "
2906 "intended to be used in conjunction with the "
2907 "B<PERF_COUNT_HW_CACHE_REFERENCES> event to calculate cache miss rates."
2908 msgstr ""
2909
2910 #. type: TP
2911 #: build/C/man2/perf_event_open.2:405
2912 #, no-wrap
2913 msgid "B<PERF_COUNT_HW_BRANCH_INSTRUCTIONS>"
2914 msgstr "B<PERF_COUNT_HW_BRANCH_INSTRUCTIONS>"
2915
2916 #. type: Plain text
2917 #: build/C/man2/perf_event_open.2:410
2918 msgid ""
2919 "Retired branch instructions.  Prior to Linux 2.6.34, this used the wrong "
2920 "event on AMD processors."
2921 msgstr ""
2922
2923 #. type: TP
2924 #: build/C/man2/perf_event_open.2:410
2925 #, no-wrap
2926 msgid "B<PERF_COUNT_HW_BRANCH_MISSES>"
2927 msgstr "B<PERF_COUNT_HW_BRANCH_MISSES>"
2928
2929 #. type: Plain text
2930 #: build/C/man2/perf_event_open.2:413
2931 msgid "Mispredicted branch instructions."
2932 msgstr ""
2933
2934 #. type: TP
2935 #: build/C/man2/perf_event_open.2:413
2936 #, no-wrap
2937 msgid "B<PERF_COUNT_HW_BUS_CYCLES>"
2938 msgstr "B<PERF_COUNT_HW_BUS_CYCLES>"
2939
2940 #. type: Plain text
2941 #: build/C/man2/perf_event_open.2:416
2942 msgid "Bus cycles, which can be different from total cycles."
2943 msgstr ""
2944
2945 #. type: TP
2946 #: build/C/man2/perf_event_open.2:416
2947 #, no-wrap
2948 msgid "B<PERF_COUNT_HW_STALLED_CYCLES_FRONTEND> (since Linux 3.0)"
2949 msgstr "B<PERF_COUNT_HW_STALLED_CYCLES_FRONTEND> (Linux 3.0 以降)"
2950
2951 #. type: Plain text
2952 #: build/C/man2/perf_event_open.2:419
2953 msgid "Stalled cycles during issue."
2954 msgstr ""
2955
2956 #. type: TP
2957 #: build/C/man2/perf_event_open.2:419
2958 #, no-wrap
2959 msgid "B<PERF_COUNT_HW_STALLED_CYCLES_BACKEND> (since Linux 3.0)"
2960 msgstr "B<PERF_COUNT_HW_STALLED_CYCLES_BACKEND> (Linux 3.0 以降)"
2961
2962 #. type: Plain text
2963 #: build/C/man2/perf_event_open.2:422
2964 msgid "Stalled cycles during retirement."
2965 msgstr ""
2966
2967 #. type: TP
2968 #: build/C/man2/perf_event_open.2:422
2969 #, no-wrap
2970 msgid "B<PERF_COUNT_HW_REF_CPU_CYCLES> (since Linux 3.3)"
2971 msgstr "B<PERF_COUNT_HW_REF_CPU_CYCLES> (Linux 3.3 以降)"
2972
2973 #. type: Plain text
2974 #: build/C/man2/perf_event_open.2:425
2975 msgid "Total cycles; not affected by CPU frequency scaling."
2976 msgstr ""
2977
2978 #. type: Plain text
2979 #: build/C/man2/perf_event_open.2:435
2980 msgid ""
2981 "If I<type> is B<PERF_TYPE_SOFTWARE>, we are measuring software events "
2982 "provided by the kernel.  Set I<config> to one of the following:"
2983 msgstr ""
2984
2985 #. type: TP
2986 #: build/C/man2/perf_event_open.2:436
2987 #, no-wrap
2988 msgid "B<PERF_COUNT_SW_CPU_CLOCK>"
2989 msgstr "B<PERF_COUNT_SW_CPU_CLOCK>"
2990
2991 #. type: Plain text
2992 #: build/C/man2/perf_event_open.2:439
2993 msgid "This reports the CPU clock, a high-resolution per-CPU timer."
2994 msgstr ""
2995
2996 #. type: TP
2997 #: build/C/man2/perf_event_open.2:439
2998 #, no-wrap
2999 msgid "B<PERF_COUNT_SW_TASK_CLOCK>"
3000 msgstr "B<PERF_COUNT_SW_TASK_CLOCK>"
3001
3002 #. type: Plain text
3003 #: build/C/man2/perf_event_open.2:442
3004 msgid "This reports a clock count specific to the task that is running."
3005 msgstr ""
3006
3007 #. type: TP
3008 #: build/C/man2/perf_event_open.2:442
3009 #, no-wrap
3010 msgid "B<PERF_COUNT_SW_PAGE_FAULTS>"
3011 msgstr "B<PERF_COUNT_SW_PAGE_FAULTS>"
3012
3013 #. type: Plain text
3014 #: build/C/man2/perf_event_open.2:445
3015 msgid "This reports the number of page faults."
3016 msgstr ""
3017
3018 #. type: TP
3019 #: build/C/man2/perf_event_open.2:445
3020 #, no-wrap
3021 msgid "B<PERF_COUNT_SW_CONTEXT_SWITCHES>"
3022 msgstr "B<PERF_COUNT_SW_CONTEXT_SWITCHES>"
3023
3024 #. type: Plain text
3025 #: build/C/man2/perf_event_open.2:450
3026 msgid ""
3027 "This counts context switches.  Until Linux 2.6.34, these were all reported "
3028 "as user-space events, after that they are reported as happening in the "
3029 "kernel."
3030 msgstr ""
3031
3032 #. type: TP
3033 #: build/C/man2/perf_event_open.2:450
3034 #, no-wrap
3035 msgid "B<PERF_COUNT_SW_CPU_MIGRATIONS>"
3036 msgstr "B<PERF_COUNT_SW_CPU_MIGRATIONS>"
3037
3038 #. type: Plain text
3039 #: build/C/man2/perf_event_open.2:454
3040 msgid "This reports the number of times the process has migrated to a new CPU."
3041 msgstr ""
3042
3043 #. type: TP
3044 #: build/C/man2/perf_event_open.2:454
3045 #, no-wrap
3046 msgid "B<PERF_COUNT_SW_PAGE_FAULTS_MIN>"
3047 msgstr "B<PERF_COUNT_SW_PAGE_FAULTS_MIN>"
3048
3049 #. type: Plain text
3050 #: build/C/man2/perf_event_open.2:458
3051 msgid ""
3052 "This counts the number of minor page faults.  These did not require disk I/O "
3053 "to handle."
3054 msgstr ""
3055
3056 #. type: TP
3057 #: build/C/man2/perf_event_open.2:458
3058 #, no-wrap
3059 msgid "B<PERF_COUNT_SW_PAGE_FAULTS_MAJ>"
3060 msgstr "B<PERF_COUNT_SW_PAGE_FAULTS_MAJ>"
3061
3062 #. type: Plain text
3063 #: build/C/man2/perf_event_open.2:462
3064 msgid ""
3065 "This counts the number of major page faults.  These required disk I/O to "
3066 "handle."
3067 msgstr ""
3068
3069 #. type: TP
3070 #: build/C/man2/perf_event_open.2:462
3071 #, no-wrap
3072 msgid "B<PERF_COUNT_SW_ALIGNMENT_FAULTS> (since Linux 2.6.33)"
3073 msgstr "B<PERF_COUNT_SW_ALIGNMENT_FAULTS> (Linux 2.6.33 以降)"
3074
3075 #. type: Plain text
3076 #: build/C/man2/perf_event_open.2:468
3077 msgid ""
3078 "This counts the number of alignment faults.  These happen when unaligned "
3079 "memory accesses happen; the kernel can handle these but it reduces "
3080 "performance.  This happens only on some architectures (never on x86)."
3081 msgstr ""
3082
3083 #. type: TP
3084 #: build/C/man2/perf_event_open.2:468
3085 #, no-wrap
3086 msgid "B<PERF_COUNT_SW_EMULATION_FAULTS> (since Linux 2.6.33)"
3087 msgstr "B<PERF_COUNT_SW_EMULATION_FAULTS> (Linux 2.6.33 以降)"
3088
3089 #. type: Plain text
3090 #: build/C/man2/perf_event_open.2:474
3091 msgid ""
3092 "This counts the number of emulation faults.  The kernel sometimes traps on "
3093 "unimplemented instructions and emulates them for user space.  This can "
3094 "negatively impact performance."
3095 msgstr ""
3096
3097 #. type: TP
3098 #: build/C/man2/perf_event_open.2:474
3099 #, no-wrap
3100 msgid "B<PERF_COUNT_SW_DUMMY> (since Linux 3.12)"
3101 msgstr "B<PERF_COUNT_SW_DUMMY> (Linux 3.12 以降)"
3102
3103 #. type: Plain text
3104 #: build/C/man2/perf_event_open.2:481
3105 msgid ""
3106 "This is a placeholder event that counts nothing.  Informational sample "
3107 "record types such as mmap or comm must be associated with an active event.  "
3108 "This dummy event allows gathering such records without requiring a counting "
3109 "event."
3110 msgstr ""
3111
3112 #. type: Plain text
3113 #: build/C/man2/perf_event_open.2:494
3114 msgid ""
3115 "If I<type> is B<PERF_TYPE_TRACEPOINT>, then we are measuring kernel "
3116 "tracepoints.  The value to use in I<config> can be obtained from under "
3117 "debugfs I<tracing/events/*/*/id> if ftrace is enabled in the kernel."
3118 msgstr ""
3119
3120 #. type: Plain text
3121 #: build/C/man2/perf_event_open.2:505
3122 msgid ""
3123 "If I<type> is B<PERF_TYPE_HW_CACHE>, then we are measuring a hardware CPU "
3124 "cache event.  To calculate the appropriate I<config> value use the following "
3125 "equation:"
3126 msgstr ""
3127
3128 #. type: Plain text
3129 #: build/C/man2/perf_event_open.2:510
3130 #, no-wrap
3131 msgid ""
3132 "    (perf_hw_cache_id) | (perf_hw_cache_op_id E<lt>E<lt> 8) |\n"
3133 "    (perf_hw_cache_op_result_id E<lt>E<lt> 16)\n"
3134 msgstr ""
3135 "    (perf_hw_cache_id) | (perf_hw_cache_op_id E<lt>E<lt> 8) |\n"
3136 "    (perf_hw_cache_op_result_id E<lt>E<lt> 16)\n"
3137
3138 #. type: Plain text
3139 #: build/C/man2/perf_event_open.2:515
3140 msgid "where I<perf_hw_cache_id> is one of:"
3141 msgstr ""
3142
3143 #. type: TP
3144 #: build/C/man2/perf_event_open.2:516
3145 #, no-wrap
3146 msgid "B<PERF_COUNT_HW_CACHE_L1D>"
3147 msgstr "B<PERF_COUNT_HW_CACHE_L1D>"
3148
3149 #. type: Plain text
3150 #: build/C/man2/perf_event_open.2:519
3151 msgid "for measuring Level 1 Data Cache"
3152 msgstr ""
3153
3154 #. type: TP
3155 #: build/C/man2/perf_event_open.2:519
3156 #, no-wrap
3157 msgid "B<PERF_COUNT_HW_CACHE_L1I>"
3158 msgstr "B<PERF_COUNT_HW_CACHE_L1I>"
3159
3160 #. type: Plain text
3161 #: build/C/man2/perf_event_open.2:522
3162 msgid "for measuring Level 1 Instruction Cache"
3163 msgstr ""
3164
3165 #. type: TP
3166 #: build/C/man2/perf_event_open.2:522
3167 #, no-wrap
3168 msgid "B<PERF_COUNT_HW_CACHE_LL>"
3169 msgstr "B<PERF_COUNT_HW_CACHE_LL>"
3170
3171 #. type: Plain text
3172 #: build/C/man2/perf_event_open.2:525
3173 msgid "for measuring Last-Level Cache"
3174 msgstr ""
3175
3176 #. type: TP
3177 #: build/C/man2/perf_event_open.2:525
3178 #, no-wrap
3179 msgid "B<PERF_COUNT_HW_CACHE_DTLB>"
3180 msgstr "B<PERF_COUNT_HW_CACHE_DTLB>"
3181
3182 #. type: Plain text
3183 #: build/C/man2/perf_event_open.2:528
3184 msgid "for measuring the Data TLB"
3185 msgstr ""
3186
3187 #. type: TP
3188 #: build/C/man2/perf_event_open.2:528
3189 #, no-wrap
3190 msgid "B<PERF_COUNT_HW_CACHE_ITLB>"
3191 msgstr "B<PERF_COUNT_HW_CACHE_ITLB>"
3192
3193 #. type: Plain text
3194 #: build/C/man2/perf_event_open.2:531
3195 msgid "for measuring the Instruction TLB"
3196 msgstr ""
3197
3198 #. type: TP
3199 #: build/C/man2/perf_event_open.2:531
3200 #, no-wrap
3201 msgid "B<PERF_COUNT_HW_CACHE_BPU>"
3202 msgstr "B<PERF_COUNT_HW_CACHE_BPU>"
3203
3204 #. type: Plain text
3205 #: build/C/man2/perf_event_open.2:534
3206 msgid "for measuring the branch prediction unit"
3207 msgstr ""
3208
3209 #. type: TP
3210 #: build/C/man2/perf_event_open.2:534
3211 #, no-wrap
3212 msgid "B<PERF_COUNT_HW_CACHE_NODE> (since Linux 3.0)"
3213 msgstr "B<PERF_COUNT_HW_CACHE_NODE> (Linux 3.0 以降)"
3214
3215 #. type: Plain text
3216 #: build/C/man2/perf_event_open.2:537
3217 msgid "for measuring local memory accesses"
3218 msgstr ""
3219
3220 #. type: Plain text
3221 #: build/C/man2/perf_event_open.2:542
3222 msgid "and I<perf_hw_cache_op_id> is one of"
3223 msgstr ""
3224
3225 #. type: TP
3226 #: build/C/man2/perf_event_open.2:543
3227 #, no-wrap
3228 msgid "B<PERF_COUNT_HW_CACHE_OP_READ>"
3229 msgstr "B<PERF_COUNT_HW_CACHE_OP_READ>"
3230
3231 #. type: Plain text
3232 #: build/C/man2/perf_event_open.2:546
3233 msgid "for read accesses"
3234 msgstr ""
3235
3236 #. type: TP
3237 #: build/C/man2/perf_event_open.2:546
3238 #, no-wrap
3239 msgid "B<PERF_COUNT_HW_CACHE_OP_WRITE>"
3240 msgstr "B<PERF_COUNT_HW_CACHE_OP_WRITE>"
3241
3242 #. type: Plain text
3243 #: build/C/man2/perf_event_open.2:549
3244 msgid "for write accesses"
3245 msgstr ""
3246
3247 #. type: TP
3248 #: build/C/man2/perf_event_open.2:549
3249 #, no-wrap
3250 msgid "B<PERF_COUNT_HW_CACHE_OP_PREFETCH>"
3251 msgstr "B<PERF_COUNT_HW_CACHE_OP_PREFETCH>"
3252
3253 #. type: Plain text
3254 #: build/C/man2/perf_event_open.2:552
3255 msgid "for prefetch accesses"
3256 msgstr ""
3257
3258 #. type: Plain text
3259 #: build/C/man2/perf_event_open.2:557
3260 msgid "and I<perf_hw_cache_op_result_id> is one of"
3261 msgstr ""
3262
3263 #. type: TP
3264 #: build/C/man2/perf_event_open.2:558
3265 #, no-wrap
3266 msgid "B<PERF_COUNT_HW_CACHE_RESULT_ACCESS>"
3267 msgstr "B<PERF_COUNT_HW_CACHE_RESULT_ACCESS>"
3268
3269 #. type: Plain text
3270 #: build/C/man2/perf_event_open.2:561
3271 msgid "to measure accesses"
3272 msgstr ""
3273
3274 #. type: TP
3275 #: build/C/man2/perf_event_open.2:561
3276 #, no-wrap
3277 msgid "B<PERF_COUNT_HW_CACHE_RESULT_MISS>"
3278 msgstr "B<PERF_COUNT_HW_CACHE_RESULT_MISS>"
3279
3280 #. type: Plain text
3281 #: build/C/man2/perf_event_open.2:564
3282 msgid "to measure misses"
3283 msgstr ""
3284
3285 #. type: Plain text
3286 #: build/C/man2/perf_event_open.2:582
3287 msgid ""
3288 "If I<type> is B<PERF_TYPE_RAW>, then a custom \"raw\" I<config> value is "
3289 "needed.  Most CPUs support events that are not covered by the \"generalized"
3290 "\" events.  These are implementation defined; see your CPU manual (for "
3291 "example the Intel Volume 3B documentation or the AMD BIOS and Kernel "
3292 "Developer Guide).  The libpfm4 library can be used to translate from the "
3293 "name in the architectural manuals to the raw hex value B<perf_event_open>()  "
3294 "expects in this field."
3295 msgstr ""
3296
3297 #. type: Plain text
3298 #: build/C/man2/perf_event_open.2:591
3299 msgid ""
3300 "If I<type> is B<PERF_TYPE_BREAKPOINT>, then leave I<config> set to zero.  "
3301 "Its parameters are set in other places."
3302 msgstr ""
3303
3304 #. type: TP
3305 #: build/C/man2/perf_event_open.2:592
3306 #, no-wrap
3307 msgid "I<sample_period>, I<sample_freq>"
3308 msgstr "I<sample_period>, I<sample_freq>"
3309
3310 #. type: Plain text
3311 #: build/C/man2/perf_event_open.2:604
3312 msgid ""
3313 "A \"sampling\" counter is one that generates an interrupt every N events, "
3314 "where N is given by I<sample_period>.  A sampling counter has "
3315 "I<sample_period> E<gt> 0.  When an overflow interrupt occurs, requested data "
3316 "is recorded in the mmap buffer.  The I<sample_type> field controls what data "
3317 "is recorded on each interrupt."
3318 msgstr ""
3319
3320 #. type: Plain text
3321 #: build/C/man2/perf_event_open.2:614
3322 msgid ""
3323 "I<sample_freq> can be used if you wish to use frequency rather than period.  "
3324 "In this case, you set the I<freq> flag.  The kernel will adjust the sampling "
3325 "period to try and achieve the desired rate.  The rate of adjustment is a "
3326 "timer tick."
3327 msgstr ""
3328
3329 #. type: TP
3330 #: build/C/man2/perf_event_open.2:614
3331 #, no-wrap
3332 msgid "I<sample_type>"
3333 msgstr "I<sample_type>"
3334
3335 #. type: Plain text
3336 #: build/C/man2/perf_event_open.2:626
3337 msgid ""
3338 "The various bits in this field specify which values to include in the "
3339 "sample.  They will be recorded in a ring-buffer, which is available to user "
3340 "space using B<mmap>(2).  The order in which the values are saved in the "
3341 "sample are documented in the MMAP Layout subsection below; it is not the "
3342 "I<enum perf_event_sample_format> order."
3343 msgstr ""
3344
3345 #. type: TP
3346 #: build/C/man2/perf_event_open.2:627
3347 #, no-wrap
3348 msgid "B<PERF_SAMPLE_IP>"
3349 msgstr "B<PERF_SAMPLE_IP>"
3350
3351 #. type: Plain text
3352 #: build/C/man2/perf_event_open.2:630
3353 msgid "Records instruction pointer."
3354 msgstr ""
3355
3356 #. type: TP
3357 #: build/C/man2/perf_event_open.2:630
3358 #, no-wrap
3359 msgid "B<PERF_SAMPLE_TID>"
3360 msgstr "B<PERF_SAMPLE_TID>"
3361
3362 #. type: Plain text
3363 #: build/C/man2/perf_event_open.2:633
3364 msgid "Records the process and thread IDs."
3365 msgstr ""
3366
3367 #. type: TP
3368 #: build/C/man2/perf_event_open.2:633
3369 #, no-wrap
3370 msgid "B<PERF_SAMPLE_TIME>"
3371 msgstr "B<PERF_SAMPLE_TIME>"
3372
3373 #. type: Plain text
3374 #: build/C/man2/perf_event_open.2:636
3375 msgid "Records a timestamp."
3376 msgstr ""
3377
3378 #. type: TP
3379 #: build/C/man2/perf_event_open.2:636
3380 #, no-wrap
3381 msgid "B<PERF_SAMPLE_ADDR>"
3382 msgstr "B<PERF_SAMPLE_ADDR>"
3383
3384 #. type: Plain text
3385 #: build/C/man2/perf_event_open.2:639
3386 msgid "Records an address, if applicable."
3387 msgstr ""
3388
3389 #. type: TP
3390 #: build/C/man2/perf_event_open.2:639
3391 #, no-wrap
3392 msgid "B<PERF_SAMPLE_READ>"
3393 msgstr "B<PERF_SAMPLE_READ>"
3394
3395 #. type: Plain text
3396 #: build/C/man2/perf_event_open.2:642
3397 msgid ""
3398 "Record counter values for all events in a group, not just the group leader."
3399 msgstr ""
3400
3401 #. type: TP
3402 #: build/C/man2/perf_event_open.2:642
3403 #, no-wrap
3404 msgid "B<PERF_SAMPLE_CALLCHAIN>"
3405 msgstr "B<PERF_SAMPLE_CALLCHAIN>"
3406
3407 #. type: Plain text
3408 #: build/C/man2/perf_event_open.2:645
3409 msgid "Records the callchain (stack backtrace)."
3410 msgstr ""
3411
3412 #. type: TP
3413 #: build/C/man2/perf_event_open.2:645
3414 #, no-wrap
3415 msgid "B<PERF_SAMPLE_ID>"
3416 msgstr "B<PERF_SAMPLE_ID>"
3417
3418 #. type: Plain text
3419 #: build/C/man2/perf_event_open.2:648
3420 msgid "Records a unique ID for the opened event's group leader."
3421 msgstr ""
3422
3423 #. type: TP
3424 #: build/C/man2/perf_event_open.2:648
3425 #, no-wrap
3426 msgid "B<PERF_SAMPLE_CPU>"
3427 msgstr "B<PERF_SAMPLE_CPU>"
3428
3429 #. type: Plain text
3430 #: build/C/man2/perf_event_open.2:651
3431 msgid "Records CPU number."
3432 msgstr ""
3433
3434 #. type: TP
3435 #: build/C/man2/perf_event_open.2:651
3436 #, no-wrap
3437 msgid "B<PERF_SAMPLE_PERIOD>"
3438 msgstr "B<PERF_SAMPLE_PERIOD>"
3439
3440 #. type: Plain text
3441 #: build/C/man2/perf_event_open.2:654
3442 msgid "Records the current sampling period."
3443 msgstr ""
3444
3445 #. type: TP
3446 #: build/C/man2/perf_event_open.2:654
3447 #, no-wrap
3448 msgid "B<PERF_SAMPLE_STREAM_ID>"
3449 msgstr "B<PERF_SAMPLE_STREAM_ID>"
3450
3451 #. type: Plain text
3452 #: build/C/man2/perf_event_open.2:662
3453 msgid ""
3454 "Records a unique ID for the opened event.  Unlike B<PERF_SAMPLE_ID> the "
3455 "actual ID is returned, not the group leader.  This ID is the same as the one "
3456 "returned by B<PERF_FORMAT_ID>."
3457 msgstr ""
3458
3459 #. type: TP
3460 #: build/C/man2/perf_event_open.2:662
3461 #, no-wrap
3462 msgid "B<PERF_SAMPLE_RAW>"
3463 msgstr "B<PERF_SAMPLE_RAW>"
3464
3465 #. type: Plain text
3466 #: build/C/man2/perf_event_open.2:666
3467 msgid ""
3468 "Records additional data, if applicable.  Usually returned by tracepoint "
3469 "events."
3470 msgstr ""
3471
3472 #. type: TP
3473 #: build/C/man2/perf_event_open.2:666
3474 #, no-wrap
3475 msgid "B<PERF_SAMPLE_BRANCH_STACK> (since Linux 3.4)"
3476 msgstr "B<PERF_SAMPLE_BRANCH_STACK> (Linux 3.4 以降)"
3477
3478 #. type: Plain text
3479 #: build/C/man2/perf_event_open.2:671
3480 msgid ""
3481 "This provides a record of recent branches, as provided by CPU branch "
3482 "sampling hardware (such as Intel Last Branch Record).  Not all hardware "
3483 "supports this feature."
3484 msgstr ""
3485
3486 #. type: Plain text
3487 #: build/C/man2/perf_event_open.2:675
3488 msgid ""
3489 "See the I<branch_sample_type> field for how to filter which branches are "
3490 "reported."
3491 msgstr ""
3492
3493 #. type: TP
3494 #: build/C/man2/perf_event_open.2:675
3495 #, no-wrap
3496 msgid "B<PERF_SAMPLE_REGS_USER> (since Linux 3.7)"
3497 msgstr "B<PERF_SAMPLE_REGS_USER> (Linux 3.7 以降)"
3498
3499 #. type: Plain text
3500 #: build/C/man2/perf_event_open.2:679
3501 msgid ""
3502 "Records the current user-level CPU register state (the values in the process "
3503 "before the kernel was called)."
3504 msgstr ""
3505
3506 #. type: TP
3507 #: build/C/man2/perf_event_open.2:679
3508 #, no-wrap
3509 msgid "B<PERF_SAMPLE_STACK_USER> (since Linux 3.7)"
3510 msgstr "B<PERF_SAMPLE_STACK_USER> (Linux 3.7 以降)"
3511
3512 #. type: Plain text
3513 #: build/C/man2/perf_event_open.2:682
3514 msgid "Records the user level stack, allowing stack unwinding."
3515 msgstr ""
3516
3517 #. type: TP
3518 #: build/C/man2/perf_event_open.2:682
3519 #, no-wrap
3520 msgid "B<PERF_SAMPLE_WEIGHT> (since Linux 3.10)"
3521 msgstr "B<PERF_SAMPLE_WEIGHT> (Linux 3.10 以降)"
3522
3523 #. type: Plain text
3524 #: build/C/man2/perf_event_open.2:688
3525 msgid ""
3526 "Records a hardware provided weight value that expresses how costly the "
3527 "sampled event was.  This allows the hardware to highlight expensive events "
3528 "in a profile."
3529 msgstr ""
3530
3531 #. type: TP
3532 #: build/C/man2/perf_event_open.2:688
3533 #, no-wrap
3534 msgid "B<PERF_SAMPLE_DATA_SRC> (since Linux 3.10)"
3535 msgstr "B<PERF_SAMPLE_DATA_SRC> (Linux 3.10 以降)"
3536
3537 #. type: Plain text
3538 #: build/C/man2/perf_event_open.2:694
3539 msgid ""
3540 "Records the data source: where in the memory hierarchy the data associated "
3541 "with the sampled instruction came from.  This is only available if the "
3542 "underlying hardware supports this feature."
3543 msgstr ""
3544
3545 #. type: TP
3546 #: build/C/man2/perf_event_open.2:694
3547 #, no-wrap
3548 msgid "B<PERF_SAMPLE_IDENTIFIER> (since Linux 3.12)"
3549 msgstr "B<PERF_SAMPLE_IDENTIFIER> (Linux 3.12 以降)"
3550
3551 #. type: Plain text
3552 #: build/C/man2/perf_event_open.2:701
3553 msgid ""
3554 "Places the B<SAMPLE_ID> value in a fixed position in the record, either at "
3555 "the beginning (for sample events) or at the end (if a non-sample event)."
3556 msgstr ""
3557
3558 #. type: Plain text
3559 #: build/C/man2/perf_event_open.2:713
3560 msgid ""
3561 "This was necessary because a sample stream may have records from various "
3562 "different event sources with different I<sample_type> settings.  Parsing the "
3563 "event stream properly was not possible because the format of the record was "
3564 "needed to find B<SAMPLE_ID>, but the format could not be found without "
3565 "knowing what event the sample belonged to (causing a circular dependency)."
3566 msgstr ""
3567
3568 #. type: Plain text
3569 #: build/C/man2/perf_event_open.2:723
3570 msgid ""
3571 "This new B<PERF_SAMPLE_IDENTIFIER> setting makes the event stream always "
3572 "parsable by putting B<SAMPLE_ID> in a fixed location, even though it means "
3573 "having duplicate B<SAMPLE_ID> values in records."
3574 msgstr ""
3575
3576 #. type: TP
3577 #: build/C/man2/perf_event_open.2:723
3578 #, no-wrap
3579 msgid "B<PERF_SAMPLE_TRANSACTION> (Since Linux 3.13)"
3580 msgstr "B<PERF_SAMPLE_TRANSACTION> (Linux 3.13 以降)"
3581
3582 #. type: Plain text
3583 #: build/C/man2/perf_event_open.2:727
3584 msgid ""
3585 "Records reasons for transactional memory abort events (for example, from "
3586 "Intel TSX transactional memory support)."
3587 msgstr ""
3588
3589 #. type: Plain text
3590 #: build/C/man2/perf_event_open.2:735
3591 msgid ""
3592 "The I<precise_ip> setting must be greater than 0 and a transactional memory "
3593 "abort event must be measured or no values will be recorded.  Also note that "
3594 "some perf_event measurements, such as sampled cycle counting, may cause "
3595 "extraneous aborts (by causing an interrupt during a transaction)."
3596 msgstr ""
3597
3598 #. type: TP
3599 #: build/C/man2/perf_event_open.2:736
3600 #, no-wrap
3601 msgid "I<read_format>"
3602 msgstr "I<read_format>"
3603
3604 #. type: Plain text
3605 #: build/C/man2/perf_event_open.2:743
3606 msgid ""
3607 "This field specifies the format of the data returned by B<read>(2)  on a "
3608 "B<perf_event_open>()  file descriptor."
3609 msgstr ""
3610
3611 #. type: TP
3612 #: build/C/man2/perf_event_open.2:744
3613 #, no-wrap
3614 msgid "B<PERF_FORMAT_TOTAL_TIME_ENABLED>"
3615 msgstr "B<PERF_FORMAT_TOTAL_TIME_ENABLED>"
3616
3617 #. type: Plain text
3618 #: build/C/man2/perf_event_open.2:751
3619 msgid ""
3620 "Adds the 64-bit I<time_enabled> field.  This can be used to calculate "
3621 "estimated totals if the PMU is overcommitted and multiplexing is happening."
3622 msgstr ""
3623
3624 #. type: TP
3625 #: build/C/man2/perf_event_open.2:751
3626 #, no-wrap
3627 msgid "B<PERF_FORMAT_TOTAL_TIME_RUNNING>"
3628 msgstr "B<PERF_FORMAT_TOTAL_TIME_RUNNING>"
3629
3630 #. type: Plain text
3631 #: build/C/man2/perf_event_open.2:758
3632 msgid ""
3633 "Adds the 64-bit I<time_running> field.  This can be used to calculate "
3634 "estimated totals if the PMU is overcommitted and multiplexing is happening."
3635 msgstr ""
3636
3637 #. type: TP
3638 #: build/C/man2/perf_event_open.2:758
3639 #, no-wrap
3640 msgid "B<PERF_FORMAT_ID>"
3641 msgstr "B<PERF_FORMAT_ID>"
3642
3643 #. type: Plain text
3644 #: build/C/man2/perf_event_open.2:761
3645 msgid "Adds a 64-bit unique value that corresponds to the event group."
3646 msgstr ""
3647
3648 #. type: TP
3649 #: build/C/man2/perf_event_open.2:761
3650 #, no-wrap
3651 msgid "B<PERF_FORMAT_GROUP>"
3652 msgstr "B<PERF_FORMAT_GROUP>"
3653
3654 #. type: Plain text
3655 #: build/C/man2/perf_event_open.2:764
3656 msgid "Allows all counter values in an event group to be read with one read."
3657 msgstr ""
3658
3659 #. type: TP
3660 #: build/C/man2/perf_event_open.2:765
3661 #, no-wrap
3662 msgid "I<disabled>"
3663 msgstr "I<disabled>"
3664
3665 #. type: Plain text
3666 #: build/C/man2/perf_event_open.2:775
3667 msgid ""
3668 "The I<disabled> bit specifies whether the counter starts out disabled or "
3669 "enabled.  If disabled, the event can later be enabled by B<ioctl>(2), "
3670 "B<prctl>(2), or I<enable_on_exec>."
3671 msgstr ""
3672
3673 #. type: Plain text
3674 #: build/C/man2/perf_event_open.2:786
3675 msgid ""
3676 "When creating an event group, typically the group leader is initialized with "
3677 "I<disabled> set to 1 and any child events are initialized with I<disabled> "
3678 "set to 0.  Despite I<disabled> being 0, the child events will not start "
3679 "until the group leader is enabled."
3680 msgstr ""
3681
3682 #. type: TP
3683 #: build/C/man2/perf_event_open.2:786
3684 #, no-wrap
3685 msgid "I<inherit>"
3686 msgstr "I<inherit>"
3687
3688 #. type: Plain text
3689 #: build/C/man2/perf_event_open.2:795
3690 msgid ""
3691 "The I<inherit> bit specifies that this counter should count events of child "
3692 "tasks as well as the task specified.  This applies only to new children, not "
3693 "to any existing children at the time the counter is created (nor to any new "
3694 "children of existing children)."
3695 msgstr ""
3696
3697 #. type: Plain text
3698 #: build/C/man2/perf_event_open.2:800
3699 msgid ""
3700 "Inherit does not work for some combinations of I<read_format>s, such as "
3701 "B<PERF_FORMAT_GROUP>."
3702 msgstr ""
3703
3704 #. type: TP
3705 #: build/C/man2/perf_event_open.2:800
3706 #, no-wrap
3707 msgid "I<pinned>"
3708 msgstr "I<pinned>"
3709
3710 #. type: Plain text
3711 #: build/C/man2/perf_event_open.2:813
3712 msgid ""
3713 "The I<pinned> bit specifies that the counter should always be on the CPU if "
3714 "at all possible.  It applies only to hardware counters and only to group "
3715 "leaders.  If a pinned counter cannot be put onto the CPU (e.g., because "
3716 "there are not enough hardware counters or because of a conflict with some "
3717 "other event), then the counter goes into an 'error' state, where reads "
3718 "return end-of-file (i.e., B<read>(2)  returns 0) until the counter is "
3719 "subsequently enabled or disabled."
3720 msgstr ""
3721
3722 #. type: TP
3723 #: build/C/man2/perf_event_open.2:813
3724 #, no-wrap
3725 msgid "I<exclusive>"
3726 msgstr "I<exclusive>"
3727
3728 #. type: Plain text
3729 #: build/C/man2/perf_event_open.2:822
3730 msgid ""
3731 "The I<exclusive> bit specifies that when this counter's group is on the CPU, "
3732 "it should be the only group using the CPU's counters.  In the future this "
3733 "may allow monitoring programs to support PMU features that need to run alone "
3734 "so that they do not disrupt other hardware counters."
3735 msgstr ""
3736
3737 #. type: Plain text
3738 #: build/C/man2/perf_event_open.2:829
3739 msgid ""
3740 "Note that many unexpected situations may prevent events with the "
3741 "I<exclusive> bit set from ever running.  This includes any users running a "
3742 "system-wide measurement as well as any kernel use of the performance "
3743 "counters (including the commonly enabled NMI Watchdog Timer interface)."
3744 msgstr ""
3745
3746 #. type: TP
3747 #: build/C/man2/perf_event_open.2:829
3748 #, no-wrap
3749 msgid "I<exclude_user>"
3750 msgstr "I<exclude_user>"
3751
3752 #. type: Plain text
3753 #: build/C/man2/perf_event_open.2:832
3754 msgid ""
3755 "If this bit is set, the count excludes events that happen in user space."
3756 msgstr ""
3757
3758 #. type: TP
3759 #: build/C/man2/perf_event_open.2:832
3760 #, no-wrap
3761 msgid "I<exclude_kernel>"
3762 msgstr "I<exclude_kernel>"
3763
3764 #. type: Plain text
3765 #: build/C/man2/perf_event_open.2:835
3766 msgid ""
3767 "If this bit is set, the count excludes events that happen in kernel-space."
3768 msgstr ""
3769
3770 #. type: TP
3771 #: build/C/man2/perf_event_open.2:835
3772 #, no-wrap
3773 msgid "I<exclude_hv>"
3774 msgstr "I<exclude_hv>"
3775
3776 #. type: Plain text
3777 #: build/C/man2/perf_event_open.2:843
3778 msgid ""
3779 "If this bit is set, the count excludes events that happen in the "
3780 "hypervisor.  This is mainly for PMUs that have built-in support for handling "
3781 "this (such as POWER).  Extra support is needed for handling hypervisor "
3782 "measurements on most machines."
3783 msgstr ""
3784
3785 #. type: TP
3786 #: build/C/man2/perf_event_open.2:843
3787 #, no-wrap
3788 msgid "I<exclude_idle>"
3789 msgstr "I<exclude_idle>"
3790
3791 #. type: Plain text
3792 #: build/C/man2/perf_event_open.2:846
3793 msgid "If set, don't count when the CPU is idle."
3794 msgstr ""
3795
3796 #. type: TP
3797 #: build/C/man2/perf_event_open.2:846
3798 #, no-wrap
3799 msgid "I<mmap>"
3800 msgstr "I<mmap>"
3801
3802 #. type: Plain text
3803 #: build/C/man2/perf_event_open.2:860
3804 msgid ""
3805 "The I<mmap> bit enables generation of B<PERF_RECORD_MMAP> samples for every "
3806 "B<mmap>(2)  call that has B<PROT_EXEC> set.  This allows tools to notice new "
3807 "executable code being mapped into a program (dynamic shared libraries for "
3808 "example)  so that addresses can be mapped back to the original code."
3809 msgstr ""
3810
3811 #. type: TP
3812 #: build/C/man2/perf_event_open.2:860 build/C/man2/perf_event_open.2:1696
3813 #, no-wrap
3814 msgid "I<comm>"
3815 msgstr "I<comm>"
3816
3817 #. type: Plain text
3818 #: build/C/man2/perf_event_open.2:878
3819 msgid ""
3820 "The I<comm> bit enables tracking of process command name as modified by the "
3821 "B<exec>(2)  and B<prctl>(PR_SET_NAME)  system calls as well as writing to I</"
3822 "proc/self/comm>.  If the I<comm_exec> flag is also successfully set "
3823 "(possible since Linux 3.16), then the misc flag "
3824 "B<PERF_RECORD_MISC_COMM_EXEC> can be used to differentiate the B<exec>(2)  "
3825 "case from the others."
3826 msgstr ""
3827
3828 #. type: TP
3829 #: build/C/man2/perf_event_open.2:878
3830 #, no-wrap
3831 msgid "I<freq>"
3832 msgstr "I<freq>"
3833
3834 #. type: Plain text
3835 #: build/C/man2/perf_event_open.2:885
3836 msgid ""
3837 "If this bit is set, then I<sample_frequency> not I<sample_period> is used "
3838 "when setting up the sampling interval."
3839 msgstr ""
3840
3841 #. type: TP
3842 #: build/C/man2/perf_event_open.2:885
3843 #, no-wrap
3844 msgid "I<inherit_stat>"
3845 msgstr "I<inherit_stat>"
3846
3847 #. type: Plain text
3848 #: build/C/man2/perf_event_open.2:892
3849 msgid ""
3850 "This bit enables saving of event counts on context switch for inherited "
3851 "tasks.  This is meaningful only if the I<inherit> field is set."
3852 msgstr ""
3853
3854 #. type: TP
3855 #: build/C/man2/perf_event_open.2:892
3856 #, no-wrap
3857 msgid "I<enable_on_exec>"
3858 msgstr "I<enable_on_exec>"
3859
3860 #. type: Plain text
3861 #: build/C/man2/perf_event_open.2:897
3862 msgid ""
3863 "If this bit is set, a counter is automatically enabled after a call to "
3864 "B<exec>(2)."
3865 msgstr ""
3866
3867 #. type: TP
3868 #: build/C/man2/perf_event_open.2:897
3869 #, no-wrap
3870 msgid "I<task>"
3871 msgstr "I<task>"
3872
3873 #. type: Plain text
3874 #: build/C/man2/perf_event_open.2:901
3875 msgid ""
3876 "If this bit is set, then fork/exit notifications are included in the ring "
3877 "buffer."
3878 msgstr ""
3879
3880 #. type: TP
3881 #: build/C/man2/perf_event_open.2:901
3882 #, no-wrap
3883 msgid "I<watermark>"
3884 msgstr "I<watermark>"
3885
3886 #. type: Plain text
3887 #: build/C/man2/perf_event_open.2:909
3888 msgid ""
3889 "If set, have a sampling interrupt happen when we cross the "
3890 "I<wakeup_watermark> boundary.  Otherwise, interrupts happen after "
3891 "I<wakeup_events> samples."
3892 msgstr ""
3893
3894 #. type: TP
3895 #: build/C/man2/perf_event_open.2:909
3896 #, no-wrap
3897 msgid "I<precise_ip> (since Linux 2.6.35)"
3898 msgstr "I<precise_ip> (Linux 2.6.35 以降)"
3899
3900 #. type: Plain text
3901 #: build/C/man2/perf_event_open.2:919
3902 msgid ""
3903 "This controls the amount of skid.  Skid is how many instructions execute "
3904 "between an event of interest happening and the kernel being able to stop and "
3905 "record the event.  Smaller skid is better and allows more accurate reporting "
3906 "of which events correspond to which instructions, but hardware is often "
3907 "limited with how small this can be."
3908 msgstr ""
3909
3910 #. type: Plain text
3911 #: build/C/man2/perf_event_open.2:921
3912 msgid "The values of this are the following:"
3913 msgstr ""
3914
3915 #. type: TP
3916 #: build/C/man2/perf_event_open.2:922
3917 #, no-wrap
3918 msgid "0 -"
3919 msgstr "0 -"
3920
3921 #. type: Plain text
3922 #: build/C/man2/perf_event_open.2:926
3923 msgid "B<SAMPLE_IP> can have arbitrary skid."
3924 msgstr ""
3925
3926 #. type: TP
3927 #: build/C/man2/perf_event_open.2:926
3928 #, no-wrap
3929 msgid "1 -"
3930 msgstr "1 -"
3931
3932 #. type: Plain text
3933 #: build/C/man2/perf_event_open.2:930
3934 msgid "B<SAMPLE_IP> must have constant skid."
3935 msgstr ""
3936
3937 #. type: TP
3938 #: build/C/man2/perf_event_open.2:930
3939 #, no-wrap
3940 msgid "2 -"
3941 msgstr "2 -"
3942
3943 #. type: Plain text
3944 #: build/C/man2/perf_event_open.2:934
3945 msgid "B<SAMPLE_IP> requested to have 0 skid."
3946 msgstr ""
3947
3948 #. type: TP
3949 #: build/C/man2/perf_event_open.2:934
3950 #, no-wrap
3951 msgid "3 -"
3952 msgstr "3 -"
3953
3954 #. type: Plain text
3955 #: build/C/man2/perf_event_open.2:940
3956 msgid "B<SAMPLE_IP> must have 0 skid.  See also B<PERF_RECORD_MISC_EXACT_IP>."
3957 msgstr ""
3958
3959 #. type: TP
3960 #: build/C/man2/perf_event_open.2:941
3961 #, no-wrap
3962 msgid "I<mmap_data> (since Linux 2.6.36)"
3963 msgstr "I<mmap_data> (Linux 2.6.36 以降)"
3964
3965 #. type: Plain text
3966 #: build/C/man2/perf_event_open.2:953
3967 msgid ""
3968 "The counterpart of the I<mmap> field.  This enables generation of "
3969 "B<PERF_RECORD_MMAP> samples for B<mmap>(2)  calls that do not have "
3970 "B<PROT_EXEC> set (for example data and SysV shared memory)."
3971 msgstr ""
3972
3973 #. type: TP
3974 #: build/C/man2/perf_event_open.2:953
3975 #, no-wrap
3976 msgid "I<sample_id_all> (since Linux 2.6.38)"
3977 msgstr "I<sample_id_all> (Linux 2.6.38 以降)"
3978
3979 #. type: Plain text
3980 #: build/C/man2/perf_event_open.2:961
3981 msgid ""
3982 "If set, then TID, TIME, ID, STREAM_ID, and CPU can additionally be included "
3983 "in non-B<PERF_RECORD_SAMPLE>s if the corresponding I<sample_type> is "
3984 "selected."
3985 msgstr ""
3986
3987 #. type: Plain text
3988 #: build/C/man2/perf_event_open.2:969
3989 msgid ""
3990 "If B<PERF_SAMPLE_IDENTIFIER> is specified, then an additional ID value is "
3991 "included as the last value to ease parsing the record stream.  This may lead "
3992 "to the I<id> value appearing twice."
3993 msgstr ""
3994
3995 #. type: Plain text
3996 #: build/C/man2/perf_event_open.2:971
3997 msgid "The layout is described by this pseudo-structure:"
3998 msgstr ""
3999
4000 #. type: Plain text
4001 #: build/C/man2/perf_event_open.2:981
4002 #, no-wrap
4003 msgid ""
4004 "struct sample_id {\n"
4005 "    { u32 pid, tid; } /* if PERF_SAMPLE_TID set        */\n"
4006 "    { u64 time;     } /* if PERF_SAMPLE_TIME set       */\n"
4007 "    { u64 id;       } /* if PERF_SAMPLE_ID set         */\n"
4008 "    { u64 stream_id;} /* if PERF_SAMPLE_STREAM_ID set  */\n"
4009 "    { u32 cpu, res; } /* if PERF_SAMPLE_CPU set        */\n"
4010 "    { u64 id;       } /* if PERF_SAMPLE_IDENTIFIER set */\n"
4011 "};\n"
4012 msgstr ""
4013 "struct sample_id {\n"
4014 "    { u32 pid, tid; } /* if PERF_SAMPLE_TID set        */\n"
4015 "    { u64 time;     } /* if PERF_SAMPLE_TIME set       */\n"
4016 "    { u64 id;       } /* if PERF_SAMPLE_ID set         */\n"
4017 "    { u64 stream_id;} /* if PERF_SAMPLE_STREAM_ID set  */\n"
4018 "    { u32 cpu, res; } /* if PERF_SAMPLE_CPU set        */\n"
4019 "    { u64 id;       } /* if PERF_SAMPLE_IDENTIFIER set */\n"
4020 "};\n"
4021
4022 #. type: TP
4023 #: build/C/man2/perf_event_open.2:982
4024 #, no-wrap
4025 msgid "I<exclude_host> (since Linux 3.2)"
4026 msgstr "I<exclude_host> (Linux 3.2 以降)"
4027
4028 #. type: Plain text
4029 #: build/C/man2/perf_event_open.2:985
4030 msgid "Do not measure time spent in VM host."
4031 msgstr ""
4032
4033 #. type: TP
4034 #: build/C/man2/perf_event_open.2:985
4035 #, no-wrap
4036 msgid "I<exclude_guest> (since Linux 3.2)"
4037 msgstr "I<exclude_guest> (Linux 3.2 以降)"
4038
4039 #. type: Plain text
4040 #: build/C/man2/perf_event_open.2:988
4041 msgid "Do not measure time spent in VM guest."
4042 msgstr ""
4043
4044 #. type: TP
4045 #: build/C/man2/perf_event_open.2:988
4046 #, no-wrap
4047 msgid "I<exclude_callchain_kernel> (since Linux 3.7)"
4048 msgstr "I<exclude_callchain_kernel> (Linux 3.7 以降)"
4049
4050 #. type: Plain text
4051 #: build/C/man2/perf_event_open.2:991
4052 msgid "Do not include kernel callchains."
4053 msgstr ""
4054
4055 #. type: TP
4056 #: build/C/man2/perf_event_open.2:991
4057 #, no-wrap
4058 msgid "I<exclude_callchain_user> (since Linux 3.7)"
4059 msgstr "I<exclude_callchain_user> (Linux 3.7 以降)"
4060
4061 #. type: Plain text
4062 #: build/C/man2/perf_event_open.2:994
4063 msgid "Do not include user callchains."
4064 msgstr ""
4065
4066 #. type: TP
4067 #: build/C/man2/perf_event_open.2:994
4068 #, no-wrap
4069 msgid "I<mmap2> (since Linux 3.16)"
4070 msgstr "I<mmap2> (Linux 3.16 以降)"
4071
4072 #. type: Plain text
4073 #: build/C/man2/perf_event_open.2:1001
4074 msgid ""
4075 "Generate an extended executable mmap record that contains enough additional "
4076 "information to uniquely identify shared mappings.  The I<mmap> flag must "
4077 "also be set for this to work."
4078 msgstr ""
4079
4080 #. type: TP
4081 #: build/C/man2/perf_event_open.2:1001
4082 #, no-wrap
4083 msgid "I<comm_exec> (since Linux 3.16)"
4084 msgstr "I<comm_exec> (Linux 3.16 以降)"
4085
4086 #. type: Plain text
4087 #: build/C/man2/perf_event_open.2:1016
4088 msgid ""
4089 "This is purely a feature-detection flag, it does not change kernel "
4090 "behavior.  If this flag can successfully be set, then, when I<comm> is "
4091 "enabled, the B<PERF_RECORD_MISC_COMM_EXEC> flag will be set in the I<misc> "
4092 "field of a comm record header if the rename event being reported was caused "
4093 "by a call to B<exec>(2).  This allows tools to distinguish between the "
4094 "various types of process renaming."
4095 msgstr ""
4096
4097 #. type: TP
4098 #: build/C/man2/perf_event_open.2:1016
4099 #, no-wrap
4100 msgid "I<wakeup_events>, I<wakeup_watermark>"
4101 msgstr "I<wakeup_events>, I<wakeup_watermark>"
4102
4103 #. type: Plain text
4104 #: build/C/man2/perf_event_open.2:1026
4105 msgid ""
4106 "This union sets how many samples (I<wakeup_events>)  or bytes "
4107 "(I<wakeup_watermark>)  happen before an overflow signal happens.  Which one "
4108 "is used is selected by the I<watermark> bit flag."
4109 msgstr ""
4110
4111 #. type: Plain text
4112 #: build/C/man2/perf_event_open.2:1036
4113 msgid ""
4114 "I<wakeup_events> only counts B<PERF_RECORD_SAMPLE> record types.  To receive "
4115 "a signal for every incoming B<PERF_RECORD> type set I<wakeup_watermark> to 1."
4116 msgstr ""
4117
4118 #. type: TP
4119 #: build/C/man2/perf_event_open.2:1036
4120 #, no-wrap
4121 msgid "I<bp_type> (since Linux 2.6.33)"
4122 msgstr "I<bp_type> (Linux 2.6.33 以降)"
4123
4124 #. type: Plain text
4125 #: build/C/man2/perf_event_open.2:1040
4126 msgid "This chooses the breakpoint type.  It is one of:"
4127 msgstr ""
4128
4129 #. type: TP
4130 #: build/C/man2/perf_event_open.2:1041
4131 #, no-wrap
4132 msgid "B<HW_BREAKPOINT_EMPTY>"
4133 msgstr "B<HW_BREAKPOINT_EMPTY>"
4134
4135 #. type: Plain text
4136 #: build/C/man2/perf_event_open.2:1044
4137 msgid "No breakpoint."
4138 msgstr ""
4139
4140 #. type: TP
4141 #: build/C/man2/perf_event_open.2:1044
4142 #, no-wrap
4143 msgid "B<HW_BREAKPOINT_R>"
4144 msgstr "B<HW_BREAKPOINT_R>"
4145
4146 #. type: Plain text
4147 #: build/C/man2/perf_event_open.2:1047
4148 msgid "Count when we read the memory location."
4149 msgstr ""
4150
4151 #. type: TP
4152 #: build/C/man2/perf_event_open.2:1047
4153 #, no-wrap
4154 msgid "B<HW_BREAKPOINT_W>"
4155 msgstr "B<HW_BREAKPOINT_W>"
4156
4157 #. type: Plain text
4158 #: build/C/man2/perf_event_open.2:1050
4159 msgid "Count when we write the memory location."
4160 msgstr ""
4161
4162 #. type: TP
4163 #: build/C/man2/perf_event_open.2:1050
4164 #, no-wrap
4165 msgid "B<HW_BREAKPOINT_RW>"
4166 msgstr "B<HW_BREAKPOINT_RW>"
4167
4168 #. type: Plain text
4169 #: build/C/man2/perf_event_open.2:1053
4170 msgid "Count when we read or write the memory location."
4171 msgstr ""
4172
4173 #. type: TP
4174 #: build/C/man2/perf_event_open.2:1053
4175 #, no-wrap
4176 msgid "B<HW_BREAKPOINT_X>"
4177 msgstr "B<HW_BREAKPOINT_X>"
4178
4179 #. type: Plain text
4180 #: build/C/man2/perf_event_open.2:1056
4181 msgid "Count when we execute code at the memory location."
4182 msgstr ""
4183
4184 #. type: Plain text
4185 #: build/C/man2/perf_event_open.2:1065
4186 msgid ""
4187 "The values can be combined via a bitwise or, but the combination of "
4188 "B<HW_BREAKPOINT_R> or B<HW_BREAKPOINT_W> with B<HW_BREAKPOINT_X> is not "
4189 "allowed."
4190 msgstr ""
4191
4192 #. type: TP
4193 #: build/C/man2/perf_event_open.2:1066
4194 #, no-wrap
4195 msgid "I<bp_addr> (since Linux 2.6.33)"
4196 msgstr "I<bp_addr> (Linux 2.6.33 以降)"
4197
4198 #. type: Plain text
4199 #: build/C/man2/perf_event_open.2:1073
4200 msgid ""
4201 "I<bp_addr> address of the breakpoint.  For execution breakpoints this is the "
4202 "memory address of the instruction of interest; for read and write "
4203 "breakpoints it is the memory address of the memory location of interest."
4204 msgstr ""
4205
4206 #. type: TP
4207 #: build/C/man2/perf_event_open.2:1073
4208 #, no-wrap
4209 msgid "I<config1> (since Linux 2.6.39)"
4210 msgstr "I<config1> (Linux 2.6.39 以降)"
4211
4212 #. type: Plain text
4213 #: build/C/man2/perf_event_open.2:1080
4214 msgid ""
4215 "I<config1> is used for setting events that need an extra register or "
4216 "otherwise do not fit in the regular config field.  Raw OFFCORE_EVENTS on "
4217 "Nehalem/Westmere/SandyBridge use this field on 3.3 and later kernels."
4218 msgstr ""
4219
4220 #. type: TP
4221 #: build/C/man2/perf_event_open.2:1080
4222 #, no-wrap
4223 msgid "I<bp_len> (since Linux 2.6.33)"
4224 msgstr "I<bp_len> (Linux 2.6.33 以降)"
4225
4226 #. type: Plain text
4227 #: build/C/man2/perf_event_open.2:1094
4228 msgid ""
4229 "I<bp_len> is the length of the breakpoint being measured if I<type> is "
4230 "B<PERF_TYPE_BREAKPOINT>.  Options are B<HW_BREAKPOINT_LEN_1>, "
4231 "B<HW_BREAKPOINT_LEN_2>, B<HW_BREAKPOINT_LEN_4>, B<HW_BREAKPOINT_LEN_8>.  For "
4232 "an execution breakpoint, set this to I<sizeof(long)>."
4233 msgstr ""
4234
4235 #. type: TP
4236 #: build/C/man2/perf_event_open.2:1094
4237 #, no-wrap
4238 msgid "I<config2> (since Linux 2.6.39)"
4239 msgstr "I<config2> (Linux 2.6.39 以降)"
4240
4241 #. type: Plain text
4242 #: build/C/man2/perf_event_open.2:1101
4243 msgid "I<config2> is a further extension of the I<config1> field."
4244 msgstr ""
4245
4246 #. type: TP
4247 #: build/C/man2/perf_event_open.2:1101
4248 #, no-wrap
4249 msgid "I<branch_sample_type> (since Linux 3.4)"
4250 msgstr "I<branch_sample_type> (Linux 3.4 以降)"
4251
4252 #. type: Plain text
4253 #: build/C/man2/perf_event_open.2:1107
4254 msgid ""
4255 "If B<PERF_SAMPLE_BRANCH_STACK> is enabled, then this specifies what branches "
4256 "to include in the branch record."
4257 msgstr ""
4258
4259 #. type: Plain text
4260 #: build/C/man2/perf_event_open.2:1113
4261 msgid ""
4262 "The first part of the value is the privilege level, which is a combination "
4263 "of one of the following values.  If the user does not set privilege level "
4264 "explicitly, the kernel will use the event's privilege level.  Event and "
4265 "branch privilege levels do not have to match."
4266 msgstr ""
4267
4268 #. type: TP
4269 #: build/C/man2/perf_event_open.2:1114
4270 #, no-wrap
4271 msgid "B<PERF_SAMPLE_BRANCH_USER>"
4272 msgstr ""
4273
4274 #. type: Plain text
4275 #: build/C/man2/perf_event_open.2:1117
4276 msgid "Branch target is in user space."
4277 msgstr ""
4278
4279 #. type: TP
4280 #: build/C/man2/perf_event_open.2:1117
4281 #, no-wrap
4282 msgid "B<PERF_SAMPLE_BRANCH_KERNEL>"
4283 msgstr ""
4284
4285 #. type: Plain text
4286 #: build/C/man2/perf_event_open.2:1120
4287 msgid "Branch target is in kernel space."
4288 msgstr ""
4289
4290 #. type: TP
4291 #: build/C/man2/perf_event_open.2:1120
4292 #, no-wrap
4293 msgid "B<PERF_SAMPLE_BRANCH_HV>"
4294 msgstr ""
4295
4296 #. type: Plain text
4297 #: build/C/man2/perf_event_open.2:1123
4298 msgid "Branch target is in hypervisor."
4299 msgstr ""
4300
4301 #. type: TP
4302 #: build/C/man2/perf_event_open.2:1123
4303 #, no-wrap
4304 msgid "B<PERF_SAMPLE_BRANCH_PLM_ALL>"
4305 msgstr ""
4306
4307 #. type: Plain text
4308 #: build/C/man2/perf_event_open.2:1126
4309 msgid "A convenience value that is the three preceding values ORed together."
4310 msgstr ""
4311
4312 #. type: Plain text
4313 #: build/C/man2/perf_event_open.2:1130
4314 msgid ""
4315 "In addition to the privilege value, at least one or more of the following "
4316 "bits must be set."
4317 msgstr ""
4318
4319 #. type: TP
4320 #: build/C/man2/perf_event_open.2:1131
4321 #, no-wrap
4322 msgid "B<PERF_SAMPLE_BRANCH_ANY>"
4323 msgstr ""
4324
4325 #. type: Plain text
4326 #: build/C/man2/perf_event_open.2:1134
4327 msgid "Any branch type."
4328 msgstr ""
4329
4330 #. type: TP
4331 #: build/C/man2/perf_event_open.2:1134
4332 #, no-wrap
4333 msgid "B<PERF_SAMPLE_BRANCH_ANY_CALL>"
4334 msgstr ""
4335
4336 #. type: Plain text
4337 #: build/C/man2/perf_event_open.2:1137
4338 msgid "Any call branch."
4339 msgstr ""
4340
4341 #. type: TP
4342 #: build/C/man2/perf_event_open.2:1137
4343 #, no-wrap
4344 msgid "B<PERF_SAMPLE_BRANCH_ANY_RETURN>"
4345 msgstr ""
4346
4347 #. type: Plain text
4348 #: build/C/man2/perf_event_open.2:1140
4349 msgid "Any return branch."
4350 msgstr ""
4351
4352 #. type: TP
4353 #: build/C/man2/perf_event_open.2:1140
4354 #, no-wrap
4355 msgid "B<PERF_SAMPLE_BRANCH_IND_CALL>"
4356 msgstr ""
4357
4358 #. type: Plain text
4359 #: build/C/man2/perf_event_open.2:1143
4360 msgid "Indirect calls."
4361 msgstr ""
4362
4363 #. type: TP
4364 #: build/C/man2/perf_event_open.2:1143
4365 #, no-wrap
4366 msgid "B<PERF_SAMPLE_BRANCH_COND> (since Linux 3.16)"
4367 msgstr "B<PERF_SAMPLE_BRANCH_COND> (Linux 3.16 以降)"
4368
4369 #. type: Plain text
4370 #: build/C/man2/perf_event_open.2:1146
4371 msgid "Conditional branches."
4372 msgstr ""
4373
4374 #. type: TP
4375 #: build/C/man2/perf_event_open.2:1146
4376 #, no-wrap
4377 msgid "B<PERF_SAMPLE_BRANCH_ABORT_TX> (since Linux 3.11)"
4378 msgstr "B<PERF_SAMPLE_BRANCH_ABORT_TX> (Linux 3.11 以降)"
4379
4380 #. type: Plain text
4381 #: build/C/man2/perf_event_open.2:1149
4382 msgid "Transactional memory aborts."
4383 msgstr ""
4384
4385 #. type: TP
4386 #: build/C/man2/perf_event_open.2:1149
4387 #, no-wrap
4388 msgid "B<PERF_SAMPLE_BRANCH_IN_TX> (since Linux 3.11)"
4389 msgstr "B<PERF_SAMPLE_BRANCH_IN_TX> (Linux 3.11 以降)"
4390
4391 #. type: Plain text
4392 #: build/C/man2/perf_event_open.2:1152
4393 msgid "Branch in transactional memory transaction."
4394 msgstr ""
4395
4396 #. type: TP
4397 #: build/C/man2/perf_event_open.2:1152
4398 #, no-wrap
4399 msgid "B<PERF_SAMPLE_BRANCH_NO_TX> (since Linux 3.11)"
4400 msgstr "B<PERF_SAMPLE_BRANCH_NO_TX> (Linux 3.11 以降)"
4401
4402 #. type: Plain text
4403 #: build/C/man2/perf_event_open.2:1155
4404 msgid "Branch not in transactional memory transaction."
4405 msgstr ""
4406
4407 #. type: TP
4408 #: build/C/man2/perf_event_open.2:1157
4409 #, no-wrap
4410 msgid "I<sample_regs_user> (since Linux 3.7)"
4411 msgstr "I<sample_regs_user> (Linux 3.7 以降)"
4412
4413 #. type: Plain text
4414 #: build/C/man2/perf_event_open.2:1163
4415 msgid ""
4416 "This bit mask defines the set of user CPU registers to dump on samples.  The "
4417 "layout of the register mask is architecture-specific and described in the "
4418 "kernel header I<arch/ARCH/include/uapi/asm/perf_regs.h>."
4419 msgstr ""
4420
4421 #. type: TP
4422 #: build/C/man2/perf_event_open.2:1163
4423 #, no-wrap
4424 msgid "I<sample_stack_user> (since Linux 3.7)"
4425 msgstr "I<sample_stack_user> (Linux 3.7 以降)"
4426
4427 #. type: Plain text
4428 #: build/C/man2/perf_event_open.2:1168
4429 msgid ""
4430 "This defines the size of the user stack to dump if B<PERF_SAMPLE_STACK_USER> "
4431 "is specified."
4432 msgstr ""
4433
4434 #. type: SS
4435 #: build/C/man2/perf_event_open.2:1168
4436 #, no-wrap
4437 msgid "Reading results"
4438 msgstr ""
4439
4440 #. type: Plain text
4441 #: build/C/man2/perf_event_open.2:1178
4442 msgid ""
4443 "Once a B<perf_event_open>()  file descriptor has been opened, the values of "
4444 "the events can be read from the file descriptor.  The values that are there "
4445 "are specified by the I<read_format> field in the I<attr> structure at open "
4446 "time."
4447 msgstr ""
4448
4449 #. type: Plain text
4450 #: build/C/man2/perf_event_open.2:1183
4451 msgid ""
4452 "If you attempt to read into a buffer that is not big enough to hold the data "
4453 "B<ENOSPC> is returned"
4454 msgstr ""
4455
4456 #. type: Plain text
4457 #: build/C/man2/perf_event_open.2:1185
4458 msgid "Here is the layout of the data returned by a read:"
4459 msgstr ""
4460
4461 #. type: IP
4462 #: build/C/man2/perf_event_open.2:1185 build/C/man2/perf_event_open.2:1203
4463 #: build/C/man2/ptrace.2:1735 build/C/man2/ptrace.2:1745
4464 #: build/C/man2/ptrace.2:1753 build/C/man2/ptrace.2:1759
4465 #: build/C/man2/ptrace.2:1888 build/C/man2/splice.2:55
4466 #: build/C/man2/splice.2:61 build/C/man2/splice.2:70
4467 #, no-wrap
4468 msgid "*"
4469 msgstr "*"
4470
4471 #. type: Plain text
4472 #: build/C/man2/perf_event_open.2:1189
4473 msgid ""
4474 "If B<PERF_FORMAT_GROUP> was specified to allow reading all events in a group "
4475 "at once:"
4476 msgstr ""
4477
4478 #. type: Plain text
4479 #: build/C/man2/perf_event_open.2:1201
4480 #, no-wrap
4481 msgid ""
4482 "struct read_format {\n"
4483 "    u64 nr;            /* The number of events */\n"
4484 "    u64 time_enabled;  /* if PERF_FORMAT_TOTAL_TIME_ENABLED */\n"
4485 "    u64 time_running;  /* if PERF_FORMAT_TOTAL_TIME_RUNNING */\n"
4486 "    struct {\n"
4487 "        u64 value;     /* The value of the event */\n"
4488 "        u64 id;        /* if PERF_FORMAT_ID */\n"
4489 "    } values[nr];\n"
4490 "};\n"
4491 msgstr ""
4492
4493 #. type: Plain text
4494 #: build/C/man2/perf_event_open.2:1209
4495 msgid "If B<PERF_FORMAT_GROUP> was I<not> specified:"
4496 msgstr ""
4497
4498 #. type: Plain text
4499 #: build/C/man2/perf_event_open.2:1218
4500 #, no-wrap
4501 msgid ""
4502 "struct read_format {\n"
4503 "    u64 value;         /* The value of the event */\n"
4504 "    u64 time_enabled;  /* if PERF_FORMAT_TOTAL_TIME_ENABLED */\n"
4505 "    u64 time_running;  /* if PERF_FORMAT_TOTAL_TIME_RUNNING */\n"
4506 "    u64 id;            /* if PERF_FORMAT_ID */\n"
4507 "};\n"
4508 msgstr ""
4509
4510 #. type: Plain text
4511 #: build/C/man2/perf_event_open.2:1222
4512 msgid "The values read are as follows:"
4513 msgstr ""
4514
4515 #. type: TP
4516 #: build/C/man2/perf_event_open.2:1222
4517 #, no-wrap
4518 msgid "I<nr>"
4519 msgstr ""
4520
4521 #. type: Plain text
4522 #: build/C/man2/perf_event_open.2:1228
4523 msgid ""
4524 "The number of events in this file descriptor.  Only available if "
4525 "B<PERF_FORMAT_GROUP> was specified."
4526 msgstr ""
4527
4528 #. type: TP
4529 #: build/C/man2/perf_event_open.2:1228
4530 #, no-wrap
4531 msgid "I<time_enabled>, I<time_running>"
4532 msgstr ""
4533
4534 #. type: Plain text
4535 #: build/C/man2/perf_event_open.2:1240
4536 msgid ""
4537 "Total time the event was enabled and running.  Normally these are the same.  "
4538 "If more events are started, then available counter slots on the PMU, then "
4539 "multiplexing happens and events run only part of the time.  In that case, "
4540 "the I<time_enabled> and I<time running> values can be used to scale an "
4541 "estimated value for the count."
4542 msgstr ""
4543
4544 #. type: TP
4545 #: build/C/man2/perf_event_open.2:1240
4546 #, no-wrap
4547 msgid "I<value>"
4548 msgstr ""
4549
4550 #. type: Plain text
4551 #: build/C/man2/perf_event_open.2:1243
4552 msgid "An unsigned 64-bit value containing the counter result."
4553 msgstr ""
4554
4555 #. type: TP
4556 #: build/C/man2/perf_event_open.2:1243 build/C/man2/perf_event_open.2:1667
4557 #: build/C/man2/perf_event_open.2:1833
4558 #, no-wrap
4559 msgid "I<id>"
4560 msgstr ""
4561
4562 #. type: Plain text
4563 #: build/C/man2/perf_event_open.2:1249
4564 msgid ""
4565 "A globally unique value for this particular event, only there if "
4566 "B<PERF_FORMAT_ID> was specified in I<read_format>."
4567 msgstr ""
4568
4569 #. type: SS
4570 #: build/C/man2/perf_event_open.2:1249
4571 #, no-wrap
4572 msgid "MMAP layout"
4573 msgstr ""
4574
4575 #. type: Plain text
4576 #: build/C/man2/perf_event_open.2:1259
4577 msgid ""
4578 "When using B<perf_event_open>()  in sampled mode, asynchronous events (like "
4579 "counter overflow or B<PROT_EXEC> mmap tracking)  are logged into a ring-"
4580 "buffer.  This ring-buffer is created and accessed through B<mmap>(2)."
4581 msgstr ""
4582
4583 #. type: Plain text
4584 #: build/C/man2/perf_event_open.2:1265
4585 msgid ""
4586 "The mmap size should be 1+2^n pages, where the first page is a metadata page "
4587 "(I<struct perf_event_mmap_page>)  that contains various bits of information "
4588 "such as where the ring-buffer head is."
4589 msgstr ""
4590
4591 #. type: Plain text
4592 #: build/C/man2/perf_event_open.2:1268
4593 msgid ""
4594 "Before kernel 2.6.39, there is a bug that means you must allocate a mmap "
4595 "ring buffer when sampling even if you do not plan to access it."
4596 msgstr ""
4597
4598 #. type: Plain text
4599 #: build/C/man2/perf_event_open.2:1270
4600 msgid "The structure of the first metadata mmap page is as follows:"
4601 msgstr ""
4602
4603 #. type: Plain text
4604 #: build/C/man2/perf_event_open.2:1299
4605 #, no-wrap
4606 msgid ""
4607 "struct perf_event_mmap_page {\n"
4608 "    __u32 version;        /* version number of this structure */\n"
4609 "    __u32 compat_version; /* lowest version this is compat with */\n"
4610 "    __u32 lock;           /* seqlock for synchronization */\n"
4611 "    __u32 index;          /* hardware counter identifier */\n"
4612 "    __s64 offset;         /* add to hardware counter value */\n"
4613 "    __u64 time_enabled;   /* time event active */\n"
4614 "    __u64 time_running;   /* time event on CPU */\n"
4615 "    union {\n"
4616 "        __u64   capabilities;\n"
4617 "        struct {\n"
4618 "            __u64 cap_usr_time / cap_usr_rdpmc / cap_bit0 : 1,\n"
4619 "                  cap_bit0_is_deprecated : 1,\n"
4620 "                  cap_user_rdpmc         : 1,\n"
4621 "                  cap_user_time          : 1,\n"
4622 "                  cap_user_time_zero     : 1,\n"
4623 "        };\n"
4624 "    };\n"
4625 "    __u16 pmc_width;\n"
4626 "    __u16 time_shift;\n"
4627 "    __u32 time_mult;\n"
4628 "    __u64 time_offset;\n"
4629 "    __u64 __reserved[120];   /* Pad to 1k */\n"
4630 "    __u64 data_head;         /* head in the data section */\n"
4631 "    __u64 data_tail;         /* user-space written tail */\n"
4632 "}\n"
4633 msgstr ""
4634
4635 #. type: Plain text
4636 #: build/C/man2/perf_event_open.2:1305
4637 msgid ""
4638 "The following list describes the fields in the I<perf_event_mmap_page> "
4639 "structure in more detail:"
4640 msgstr ""
4641
4642 #. type: TP
4643 #: build/C/man2/perf_event_open.2:1305
4644 #, no-wrap
4645 msgid "I<version>"
4646 msgstr ""
4647
4648 #. type: Plain text
4649 #: build/C/man2/perf_event_open.2:1308
4650 msgid "Version number of this structure."
4651 msgstr ""
4652
4653 #. type: TP
4654 #: build/C/man2/perf_event_open.2:1308
4655 #, no-wrap
4656 msgid "I<compat_version>"
4657 msgstr ""
4658
4659 #. type: Plain text
4660 #: build/C/man2/perf_event_open.2:1311
4661 msgid "The lowest version this is compatible with."
4662 msgstr ""
4663
4664 #. type: TP
4665 #: build/C/man2/perf_event_open.2:1311
4666 #, no-wrap
4667 msgid "I<lock>"
4668 msgstr ""
4669
4670 #. type: Plain text
4671 #: build/C/man2/perf_event_open.2:1314
4672 msgid "A seqlock for synchronization."
4673 msgstr ""
4674
4675 #. type: TP
4676 #: build/C/man2/perf_event_open.2:1314
4677 #, no-wrap
4678 msgid "I<index>"
4679 msgstr ""
4680
4681 #. type: Plain text
4682 #: build/C/man2/perf_event_open.2:1317
4683 msgid "A unique hardware counter identifier."
4684 msgstr ""
4685
4686 #. type: TP
4687 #: build/C/man2/perf_event_open.2:1317
4688 #, no-wrap
4689 msgid "I<offset>"
4690 msgstr ""
4691
4692 #. type: Plain text
4693 #: build/C/man2/perf_event_open.2:1322
4694 msgid ""
4695 "When using rdpmc for reads this offset value must be added to the one "
4696 "returned by rdpmc to get the current total event count."
4697 msgstr ""
4698
4699 #. type: TP
4700 #: build/C/man2/perf_event_open.2:1322
4701 #, no-wrap
4702 msgid "I<time_enabled>"
4703 msgstr ""
4704
4705 #. type: Plain text
4706 #: build/C/man2/perf_event_open.2:1325
4707 msgid "Time the event was active."
4708 msgstr ""
4709
4710 #. type: TP
4711 #: build/C/man2/perf_event_open.2:1325
4712 #, no-wrap
4713 msgid "I<time_running>"
4714 msgstr ""
4715
4716 #. type: Plain text
4717 #: build/C/man2/perf_event_open.2:1328
4718 msgid "Time the event was running."
4719 msgstr ""
4720
4721 #. type: TP
4722 #: build/C/man2/perf_event_open.2:1328
4723 #, no-wrap
4724 msgid "I<cap_usr_time> / I<cap_usr_rdpmc> / I<cap_bit0> (since Linux 3.4)"
4725 msgstr ""
4726
4727 #. type: Plain text
4728 #: build/C/man2/perf_event_open.2:1341
4729 msgid ""
4730 "There was a bug in the definition of I<cap_usr_time> and I<cap_usr_rdpmc> "
4731 "from Linux 3.4 until Linux 3.11.  Both bits were defined to point to the "
4732 "same location, so it was impossible to know if I<cap_usr_time> or "
4733 "I<cap_usr_rdpmc> were actually set."
4734 msgstr ""
4735
4736 #. type: Plain text
4737 #: build/C/man2/perf_event_open.2:1349
4738 msgid ""
4739 "Starting with 3.12 these are renamed to I<cap_bit0> and you should use the "
4740 "new I<cap_user_time> and I<cap_user_rdpmc> fields instead."
4741 msgstr ""
4742
4743 #. type: TP
4744 #: build/C/man2/perf_event_open.2:1350
4745 #, no-wrap
4746 msgid "I<cap_bit0_is_deprecated> (since Linux 3.12)"
4747 msgstr "I<cap_bit0_is_deprecated> (Linux 3.12 以降)"
4748
4749 #. type: Plain text
4750 #: build/C/man2/perf_event_open.2:1358
4751 msgid ""
4752 "If set, this bit indicates that the kernel supports the properly separated "
4753 "I<cap_user_time> and I<cap_user_rdpmc> bits."
4754 msgstr ""
4755
4756 #. type: Plain text
4757 #: build/C/man2/perf_event_open.2:1365
4758 msgid ""
4759 "If not-set, it indicates an older kernel where I<cap_usr_time> and "
4760 "I<cap_usr_rdpmc> map to the same bit and thus both features should be used "
4761 "with caution."
4762 msgstr ""
4763
4764 #. type: TP
4765 #: build/C/man2/perf_event_open.2:1366
4766 #, no-wrap
4767 msgid "I<cap_user_rdpmc> (since Linux 3.12)"
4768 msgstr "I<cap_user_rdpmc> (Linux 3.12 以降)"
4769
4770 #. type: Plain text
4771 #: build/C/man2/perf_event_open.2:1371
4772 msgid ""
4773 "If the hardware supports user-space read of performance counters without "
4774 "syscall (this is the \"rdpmc\" instruction on x86), then the following code "
4775 "can be used to do a read:"
4776 msgstr ""
4777
4778 #. type: Plain text
4779 #: build/C/man2/perf_event_open.2:1377
4780 #, no-wrap
4781 msgid ""
4782 "u32 seq, time_mult, time_shift, idx, width;\n"
4783 "u64 count, enabled, running;\n"
4784 "u64 cyc, time_offset;\n"
4785 msgstr ""
4786 "u32 seq, time_mult, time_shift, idx, width;\n"
4787 "u64 count, enabled, running;\n"
4788 "u64 cyc, time_offset;\n"
4789
4790 #. type: Plain text
4791 #: build/C/man2/perf_event_open.2:1383
4792 #, no-wrap
4793 msgid ""
4794 "do {\n"
4795 "    seq = pc-E<gt>lock;\n"
4796 "    barrier();\n"
4797 "    enabled = pc-E<gt>time_enabled;\n"
4798 "    running = pc-E<gt>time_running;\n"
4799 msgstr ""
4800 "do {\n"
4801 "    seq = pc-E<gt>lock;\n"
4802 "    barrier();\n"
4803 "    enabled = pc-E<gt>time_enabled;\n"
4804 "    running = pc-E<gt>time_running;\n"
4805
4806 #. type: Plain text
4807 #: build/C/man2/perf_event_open.2:1390
4808 #, no-wrap
4809 msgid ""
4810 "    if (pc-E<gt>cap_usr_time && enabled != running) {\n"
4811 "        cyc = rdtsc();\n"
4812 "        time_offset = pc-E<gt>time_offset;\n"
4813 "        time_mult   = pc-E<gt>time_mult;\n"
4814 "        time_shift  = pc-E<gt>time_shift;\n"
4815 "    }\n"
4816 msgstr ""
4817 "    if (pc-E<gt>cap_usr_time && enabled != running) {\n"
4818 "        cyc = rdtsc();\n"
4819 "        time_offset = pc-E<gt>time_offset;\n"
4820 "        time_mult   = pc-E<gt>time_mult;\n"
4821 "        time_shift  = pc-E<gt>time_shift;\n"
4822 "    }\n"
4823
4824 #. type: Plain text
4825 #: build/C/man2/perf_event_open.2:1393
4826 #, no-wrap
4827 msgid ""
4828 "    idx = pc-E<gt>index;\n"
4829 "    count = pc-E<gt>offset;\n"
4830 msgstr ""
4831 "    idx = pc-E<gt>index;\n"
4832 "    count = pc-E<gt>offset;\n"
4833
4834 #. type: Plain text
4835 #: build/C/man2/perf_event_open.2:1398
4836 #, no-wrap
4837 msgid ""
4838 "    if (pc-E<gt>cap_usr_rdpmc && idx) {\n"
4839 "        width = pc-E<gt>pmc_width;\n"
4840 "        count += rdpmc(idx - 1);\n"
4841 "    }\n"
4842 msgstr ""
4843 "    if (pc-E<gt>cap_usr_rdpmc && idx) {\n"
4844 "        width = pc-E<gt>pmc_width;\n"
4845 "        count += rdpmc(idx - 1);\n"
4846 "    }\n"
4847
4848 #. type: Plain text
4849 #: build/C/man2/perf_event_open.2:1401
4850 #, no-wrap
4851 msgid ""
4852 "    barrier();\n"
4853 "} while (pc-E<gt>lock != seq);\n"
4854 msgstr ""
4855 "    barrier();\n"
4856 "} while (pc-E<gt>lock != seq);\n"
4857
4858 #. type: TP
4859 #: build/C/man2/perf_event_open.2:1403
4860 #, fuzzy, no-wrap
4861 #| msgid "I<cap_user_time  (since Linux 3.12)>"
4862 msgid "I<cap_user_time> (since Linux 3.12)"
4863 msgstr "I<cap_user_time  (Linux 3.12 以降)>"
4864
4865 #. type: Plain text
4866 #: build/C/man2/perf_event_open.2:1407
4867 msgid ""
4868 "This bit indicates the hardware has a constant, nonstop timestamp counter "
4869 "(TSC on x86)."
4870 msgstr ""
4871
4872 #. type: TP
4873 #: build/C/man2/perf_event_open.2:1407
4874 #, no-wrap
4875 msgid "I<cap_user_time_zero> (since Linux 3.12)"
4876 msgstr "I<cap_user_time_zero> (Linux 3.12 以降)"
4877
4878 #. type: Plain text
4879 #: build/C/man2/perf_event_open.2:1413
4880 msgid ""
4881 "Indicates the presence of I<time_zero> which allows mapping timestamp values "
4882 "to the hardware clock."
4883 msgstr ""
4884
4885 #. type: TP
4886 #: build/C/man2/perf_event_open.2:1413
4887 #, no-wrap
4888 msgid "I<pmc_width>"
4889 msgstr "I<pmc_width>"
4890
4891 #. type: Plain text
4892 #: build/C/man2/perf_event_open.2:1420
4893 msgid ""
4894 "If I<cap_usr_rdpmc>, this field provides the bit-width of the value read "
4895 "using the rdpmc or equivalent instruction.  This can be used to sign extend "
4896 "the result like:"
4897 msgstr ""
4898
4899 #. type: Plain text
4900 #: build/C/man2/perf_event_open.2:1426
4901 #, no-wrap
4902 msgid ""
4903 "pmc E<lt>E<lt>= 64 - pmc_width;\n"
4904 "pmc E<gt>E<gt>= 64 - pmc_width; // signed shift right\n"
4905 "count += pmc;\n"
4906 msgstr ""
4907 "pmc E<lt>E<lt>= 64 - pmc_width;\n"
4908 "pmc E<gt>E<gt>= 64 - pmc_width; // signed shift right\n"
4909 "count += pmc;\n"
4910
4911 #. type: TP
4912 #: build/C/man2/perf_event_open.2:1428
4913 #, no-wrap
4914 msgid "I<time_shift>, I<time_mult>, I<time_offset>"
4915 msgstr "I<time_shift>, I<time_mult>, I<time_offset>"
4916
4917 #. type: Plain text
4918 #: build/C/man2/perf_event_open.2:1435
4919 msgid ""
4920 "If I<cap_usr_time>, these fields can be used to compute the time delta since "
4921 "time_enabled (in nanoseconds) using rdtsc or similar."
4922 msgstr ""
4923
4924 #. type: Plain text
4925 #: build/C/man2/perf_event_open.2:1443
4926 #, no-wrap
4927 msgid ""
4928 "    u64 quot, rem;\n"
4929 "    u64 delta;\n"
4930 "    quot = (cyc E<gt>E<gt> time_shift);\n"
4931 "    rem = cyc & ((1 E<lt>E<lt> time_shift) - 1);\n"
4932 "    delta = time_offset + quot * time_mult +\n"
4933 "            ((rem * time_mult) E<gt>E<gt> time_shift);\n"
4934 msgstr ""
4935 "    u64 quot, rem;\n"
4936 "    u64 delta;\n"
4937 "    quot = (cyc E<gt>E<gt> time_shift);\n"
4938 "    rem = cyc & ((1 E<lt>E<lt> time_shift) - 1);\n"
4939 "    delta = time_offset + quot * time_mult +\n"
4940 "            ((rem * time_mult) E<gt>E<gt> time_shift);\n"
4941
4942 #. type: Plain text
4943 #: build/C/man2/perf_event_open.2:1455
4944 msgid ""
4945 "Where I<time_offset>, I<time_mult>, I<time_shift>, and I<cyc> are read in "
4946 "the seqcount loop described above.  This delta can then be added to enabled "
4947 "and possible running (if idx), improving the scaling:"
4948 msgstr ""
4949
4950 #. type: Plain text
4951 #: build/C/man2/perf_event_open.2:1463
4952 #, no-wrap
4953 msgid ""
4954 "    enabled += delta;\n"
4955 "    if (idx)\n"
4956 "        running += delta;\n"
4957 "    quot = count / running;\n"
4958 "    rem  = count % running;\n"
4959 "    count = quot * enabled + (rem * enabled) / running;\n"
4960 msgstr ""
4961 "    enabled += delta;\n"
4962 "    if (idx)\n"
4963 "        running += delta;\n"
4964 "    quot = count / running;\n"
4965 "    rem  = count % running;\n"
4966 "    count = quot * enabled + (rem * enabled) / running;\n"
4967
4968 #. type: TP
4969 #: build/C/man2/perf_event_open.2:1464
4970 #, no-wrap
4971 msgid "I<time_zero> (since Linux 3.12)"
4972 msgstr "I<time_zero> (Linux 3.12 以降)"
4973
4974 #. type: Plain text
4975 #: build/C/man2/perf_event_open.2:1472
4976 msgid ""
4977 "If I<cap_usr_time_zero> is set, then the hardware clock (the TSC timestamp "
4978 "counter on x86)  can be calculated from the I<time_zero>, I<time_mult>, and "
4979 "I<time_shift> values:"
4980 msgstr ""
4981
4982 #. type: Plain text
4983 #: build/C/man2/perf_event_open.2:1478
4984 #, no-wrap
4985 msgid ""
4986 "    time = timestamp - time_zero;\n"
4987 "    quot = time / time_mult;\n"
4988 "    rem  = time % time_mult;\n"
4989 "    cyc = (quot E<lt>E<lt> time_shift) + (rem E<lt>E<lt> time_shift) / time_mult;\n"
4990 msgstr ""
4991 "    time = timestamp - time_zero;\n"
4992 "    quot = time / time_mult;\n"
4993 "    rem  = time % time_mult;\n"
4994 "    cyc = (quot E<lt>E<lt> time_shift) + (rem E<lt>E<lt> time_shift) / time_mult;\n"
4995
4996 #. type: Plain text
4997 #: build/C/man2/perf_event_open.2:1481
4998 msgid "And vice versa:"
4999 msgstr ""
5000
5001 #. type: Plain text
5002 #: build/C/man2/perf_event_open.2:1487
5003 #, no-wrap
5004 msgid ""
5005 "    quot = cyc E<gt>E<gt> time_shift;\n"
5006 "    rem  = cyc & ((1 E<lt>E<lt> time_shift) - 1);\n"
5007 "    timestamp = time_zero + quot * time_mult +\n"
5008 "        ((rem * time_mult) E<gt>E<gt> time_shift);\n"
5009 msgstr ""
5010 "    quot = cyc E<gt>E<gt> time_shift;\n"
5011 "    rem  = cyc & ((1 E<lt>E<lt> time_shift) - 1);\n"
5012 "    timestamp = time_zero + quot * time_mult +\n"
5013 "        ((rem * time_mult) E<gt>E<gt> time_shift);\n"
5014
5015 #. type: TP
5016 #: build/C/man2/perf_event_open.2:1488
5017 #, no-wrap
5018 msgid "I<data_head>"
5019 msgstr "I<data_head>"
5020
5021 #. type: Plain text
5022 #: build/C/man2/perf_event_open.2:1494
5023 msgid ""
5024 "This points to the head of the data section.  The value continuously "
5025 "increases, it does not wrap.  The value needs to be manually wrapped by the "
5026 "size of the mmap buffer before accessing the samples."
5027 msgstr ""
5028
5029 #. type: Plain text
5030 #: build/C/man2/perf_event_open.2:1499
5031 msgid ""
5032 "On SMP-capable platforms, after reading the I<data_head> value, user space "
5033 "should issue an rmb()."
5034 msgstr ""
5035
5036 #. type: TP
5037 #: build/C/man2/perf_event_open.2:1499
5038 #, no-wrap
5039 msgid "I<data_tail>"
5040 msgstr "I<data_tail>"
5041
5042 #. type: Plain text
5043 #: build/C/man2/perf_event_open.2:1507
5044 msgid ""
5045 "When the mapping is B<PROT_WRITE>, the I<data_tail> value should be written "
5046 "by user space to reflect the last read data.  In this case, the kernel will "
5047 "not overwrite unread data."
5048 msgstr ""
5049
5050 #. type: Plain text
5051 #: build/C/man2/perf_event_open.2:1509
5052 msgid "The following 2^n ring-buffer pages have the layout described below."
5053 msgstr ""
5054
5055 #. type: Plain text
5056 #: build/C/man2/perf_event_open.2:1523
5057 msgid ""
5058 "If I<perf_event_attr.sample_id_all> is set, then all event types will have "
5059 "the sample_type selected fields related to where/when (identity)  an event "
5060 "took place (TID, TIME, ID, CPU, STREAM_ID) described in "
5061 "B<PERF_RECORD_SAMPLE> below, it will be stashed just after the "
5062 "I<perf_event_header> and the fields already present for the existing fields, "
5063 "that is, at the end of the payload.  That way a newer perf.data file will be "
5064 "supported by older perf tools, with these new optional fields being ignored."
5065 msgstr ""
5066
5067 #. type: Plain text
5068 #: build/C/man2/perf_event_open.2:1525
5069 msgid "The mmap values start with a header:"
5070 msgstr ""
5071
5072 #. type: Plain text
5073 #: build/C/man2/perf_event_open.2:1533
5074 #, no-wrap
5075 msgid ""
5076 "struct perf_event_header {\n"
5077 "    __u32   type;\n"
5078 "    __u16   misc;\n"
5079 "    __u16   size;\n"
5080 "};\n"
5081 msgstr ""
5082 "struct perf_event_header {\n"
5083 "    __u32   type;\n"
5084 "    __u16   misc;\n"
5085 "    __u16   size;\n"
5086 "};\n"
5087
5088 #. type: Plain text
5089 #: build/C/man2/perf_event_open.2:1541
5090 msgid ""
5091 "Below, we describe the I<perf_event_header> fields in more detail.  For ease "
5092 "of reading, the fields with shorter descriptions are presented first."
5093 msgstr ""
5094
5095 #. type: Plain text
5096 #: build/C/man2/perf_event_open.2:1544
5097 msgid "This indicates the size of the record."
5098 msgstr ""
5099
5100 #. type: TP
5101 #: build/C/man2/perf_event_open.2:1544
5102 #, no-wrap
5103 msgid "I<misc>"
5104 msgstr "I<misc>"
5105
5106 #. type: Plain text
5107 #: build/C/man2/perf_event_open.2:1549
5108 msgid "The I<misc> field contains additional information about the sample."
5109 msgstr ""
5110
5111 #. type: Plain text
5112 #: build/C/man2/perf_event_open.2:1554
5113 msgid ""
5114 "The CPU mode can be determined from this value by masking with "
5115 "B<PERF_RECORD_MISC_CPUMODE_MASK> and looking for one of the following (note "
5116 "these are not bit masks, only one can be set at a time):"
5117 msgstr ""
5118
5119 #. type: TP
5120 #: build/C/man2/perf_event_open.2:1555
5121 #, no-wrap
5122 msgid "B<PERF_RECORD_MISC_CPUMODE_UNKNOWN>"
5123 msgstr "B<PERF_RECORD_MISC_CPUMODE_UNKNOWN>"
5124
5125 #. type: Plain text
5126 #: build/C/man2/perf_event_open.2:1558
5127 msgid "Unknown CPU mode."
5128 msgstr ""
5129
5130 #. type: TP
5131 #: build/C/man2/perf_event_open.2:1558
5132 #, no-wrap
5133 msgid "B<PERF_RECORD_MISC_KERNEL>"
5134 msgstr "B<PERF_RECORD_MISC_KERNEL>"
5135
5136 #. type: Plain text
5137 #: build/C/man2/perf_event_open.2:1561
5138 msgid "Sample happened in the kernel."
5139 msgstr ""
5140
5141 #. type: TP
5142 #: build/C/man2/perf_event_open.2:1561
5143 #, no-wrap
5144 msgid "B<PERF_RECORD_MISC_USER>"
5145 msgstr "B<PERF_RECORD_MISC_USER>"
5146
5147 #. type: Plain text
5148 #: build/C/man2/perf_event_open.2:1564
5149 msgid "Sample happened in user code."
5150 msgstr ""
5151
5152 #. type: TP
5153 #: build/C/man2/perf_event_open.2:1564
5154 #, no-wrap
5155 msgid "B<PERF_RECORD_MISC_HYPERVISOR>"
5156 msgstr "B<PERF_RECORD_MISC_HYPERVISOR>"
5157
5158 #. type: Plain text
5159 #: build/C/man2/perf_event_open.2:1567
5160 msgid "Sample happened in the hypervisor."
5161 msgstr ""
5162
5163 #. type: TP
5164 #: build/C/man2/perf_event_open.2:1567
5165 #, no-wrap
5166 msgid "B<PERF_RECORD_MISC_GUEST_KERNEL>"
5167 msgstr "B<PERF_RECORD_MISC_GUEST_KERNEL>"
5168
5169 #. type: Plain text
5170 #: build/C/man2/perf_event_open.2:1570
5171 msgid "Sample happened in the guest kernel."
5172 msgstr ""
5173
5174 #. type: TP
5175 #: build/C/man2/perf_event_open.2:1570
5176 #, no-wrap
5177 msgid "B<PERF_RECORD_MISC_GUEST_USER>"
5178 msgstr "B<PERF_RECORD_MISC_GUEST_USER>"
5179
5180 #. type: Plain text
5181 #: build/C/man2/perf_event_open.2:1573
5182 msgid "Sample happened in guest user code."
5183 msgstr ""
5184
5185 #. type: Plain text
5186 #: build/C/man2/perf_event_open.2:1577
5187 msgid "In addition, one of the following bits can be set:"
5188 msgstr ""
5189
5190 #. type: TP
5191 #: build/C/man2/perf_event_open.2:1577
5192 #, no-wrap
5193 msgid "B<PERF_RECORD_MISC_MMAP_DATA>"
5194 msgstr "B<PERF_RECORD_MISC_MMAP_DATA>"
5195
5196 #. type: Plain text
5197 #: build/C/man2/perf_event_open.2:1581
5198 msgid ""
5199 "This is set when the mapping is not executable; otherwise the mapping is "
5200 "executable."
5201 msgstr ""
5202
5203 #. type: TP
5204 #: build/C/man2/perf_event_open.2:1581
5205 #, no-wrap
5206 msgid "B<PERF_RECORD_MISC_COMM_EXEC>"
5207 msgstr "B<PERF_RECORD_MISC_COMM_EXEC>"
5208
5209 #. type: Plain text
5210 #: build/C/man2/perf_event_open.2:1592
5211 msgid ""
5212 "This is set for a B<PERF_RECORD_COMM> record on kernels more recent than "
5213 "Linux 3.16 if a process name change was caused by an B<exec>(2)  system "
5214 "call.  It is an alias for B<PERF_RECORD_MISC_MMAP_DATA> since the two values "
5215 "would not be set in the same record."
5216 msgstr ""
5217
5218 #. type: TP
5219 #: build/C/man2/perf_event_open.2:1592
5220 #, no-wrap
5221 msgid "B<PERF_RECORD_MISC_EXACT_IP>"
5222 msgstr "B<PERF_RECORD_MISC_EXACT_IP>"
5223
5224 #. type: Plain text
5225 #: build/C/man2/perf_event_open.2:1600
5226 msgid ""
5227 "This indicates that the content of B<PERF_SAMPLE_IP> points to the actual "
5228 "instruction that triggered the event.  See also I<perf_event_attr."
5229 "precise_ip>."
5230 msgstr ""
5231
5232 #. type: TP
5233 #: build/C/man2/perf_event_open.2:1600
5234 #, no-wrap
5235 msgid "B<PERF_RECORD_MISC_EXT_RESERVED>"
5236 msgstr "B<PERF_RECORD_MISC_EXT_RESERVED>"
5237
5238 #. type: Plain text
5239 #: build/C/man2/perf_event_open.2:1603
5240 msgid "This indicates there is extended data available (currently not used)."
5241 msgstr ""
5242
5243 #. type: Plain text
5244 #: build/C/man2/perf_event_open.2:1613
5245 msgid ""
5246 "The I<type> value is one of the below.  The values in the corresponding "
5247 "record (that follows the header)  depend on the I<type> selected as shown."
5248 msgstr ""
5249
5250 #. type: TP
5251 #: build/C/man2/perf_event_open.2:1615
5252 #, no-wrap
5253 msgid "B<PERF_RECORD_MMAP>"
5254 msgstr "B<PERF_RECORD_MMAP>"
5255
5256 #. type: Plain text
5257 #: build/C/man2/perf_event_open.2:1622
5258 msgid ""
5259 "The MMAP events record the B<PROT_EXEC> mappings so that we can correlate "
5260 "user-space IPs to code.  They have the following structure:"
5261 msgstr ""
5262
5263 #. type: Plain text
5264 #: build/C/man2/perf_event_open.2:1633
5265 #, no-wrap
5266 msgid ""
5267 "struct {\n"
5268 "    struct perf_event_header header;\n"
5269 "    u32    pid, tid;\n"
5270 "    u64    addr;\n"
5271 "    u64    len;\n"
5272 "    u64    pgoff;\n"
5273 "    char   filename[];\n"
5274 "};\n"
5275 msgstr ""
5276 "struct {\n"
5277 "    struct perf_event_header header;\n"
5278 "    u32    pid, tid;\n"
5279 "    u64    addr;\n"
5280 "    u64    len;\n"
5281 "    u64    pgoff;\n"
5282 "    char   filename[];\n"
5283 "};\n"
5284
5285 #. type: TP
5286 #: build/C/man2/perf_event_open.2:1636 build/C/man2/perf_event_open.2:1690
5287 #: build/C/man2/perf_event_open.2:2209
5288 #, no-wrap
5289 msgid "I<pid>"
5290 msgstr "I<pid>"
5291
5292 #. type: Plain text
5293 #: build/C/man2/perf_event_open.2:1639 build/C/man2/perf_event_open.2:1693
5294 #: build/C/man2/perf_event_open.2:2212
5295 msgid "is the process ID."
5296 msgstr ""
5297
5298 #. type: TP
5299 #: build/C/man2/perf_event_open.2:1639 build/C/man2/perf_event_open.2:1693
5300 #: build/C/man2/perf_event_open.2:2212
5301 #, no-wrap
5302 msgid "I<tid>"
5303 msgstr "I<tid>"
5304
5305 #. type: Plain text
5306 #: build/C/man2/perf_event_open.2:1642 build/C/man2/perf_event_open.2:1696
5307 #: build/C/man2/perf_event_open.2:2215
5308 msgid "is the thread ID."
5309 msgstr ""
5310
5311 #. type: TP
5312 #: build/C/man2/perf_event_open.2:1642 build/C/man2/perf_event_open.2:1826
5313 #: build/C/man2/perf_event_open.2:2215
5314 #, no-wrap
5315 msgid "I<addr>"
5316 msgstr "I<addr>"
5317
5318 #. type: Plain text
5319 #: build/C/man2/perf_event_open.2:1651
5320 msgid ""
5321 "is the address of the allocated memory.  I<len> is the length of the "
5322 "allocated memory.  I<pgoff> is the page offset of the allocated memory.  "
5323 "I<filename> is a string describing the backing of the allocated memory."
5324 msgstr ""
5325
5326 #. type: TP
5327 #: build/C/man2/perf_event_open.2:1652
5328 #, no-wrap
5329 msgid "B<PERF_RECORD_LOST>"
5330 msgstr "B<PERF_RECORD_LOST>"
5331
5332 #. type: Plain text
5333 #: build/C/man2/perf_event_open.2:1655
5334 msgid "This record indicates when events are lost."
5335 msgstr ""
5336
5337 #. type: Plain text
5338 #: build/C/man2/perf_event_open.2:1664
5339 #, no-wrap
5340 msgid ""
5341 "struct {\n"
5342 "    struct perf_event_header header;\n"
5343 "    u64 id;\n"
5344 "    u64 lost;\n"
5345 "    struct sample_id sample_id;\n"
5346 "};\n"
5347 msgstr ""
5348 "struct {\n"
5349 "    struct perf_event_header header;\n"
5350 "    u64 id;\n"
5351 "    u64 lost;\n"
5352 "    struct sample_id sample_id;\n"
5353 "};\n"
5354
5355 #. type: Plain text
5356 #: build/C/man2/perf_event_open.2:1670
5357 msgid "is the unique event ID for the samples that were lost."
5358 msgstr ""
5359
5360 #. type: TP
5361 #: build/C/man2/perf_event_open.2:1670
5362 #, no-wrap
5363 msgid "I<lost>"
5364 msgstr "I<lost>"
5365
5366 #. type: Plain text
5367 #: build/C/man2/perf_event_open.2:1673
5368 msgid "is the number of events that were lost."
5369 msgstr ""
5370
5371 #. type: TP
5372 #: build/C/man2/perf_event_open.2:1674
5373 #, no-wrap
5374 msgid "B<PERF_RECORD_COMM>"
5375 msgstr "B<PERF_RECORD_COMM>"
5376
5377 #. type: Plain text
5378 #: build/C/man2/perf_event_open.2:1677
5379 msgid "This record indicates a change in the process name."
5380 msgstr ""
5381
5382 #. type: Plain text
5383 #: build/C/man2/perf_event_open.2:1687
5384 #, no-wrap
5385 msgid ""
5386 "struct {\n"
5387 "    struct perf_event_header header;\n"
5388 "    u32 pid;\n"
5389 "    u32 tid;\n"
5390 "    char comm[];\n"
5391 "    struct sample_id sample_id;\n"
5392 "};\n"
5393 msgstr ""
5394 "struct {\n"
5395 "    struct perf_event_header header;\n"
5396 "    u32 pid;\n"
5397 "    u32 tid;\n"
5398 "    char comm[];\n"
5399 "    struct sample_id sample_id;\n"
5400 "};\n"
5401
5402 #. type: Plain text
5403 #: build/C/man2/perf_event_open.2:1699
5404 msgid "is a string containing the new name of the process."
5405 msgstr ""
5406
5407 #. type: TP
5408 #: build/C/man2/perf_event_open.2:1700
5409 #, no-wrap
5410 msgid "B<PERF_RECORD_EXIT>"
5411 msgstr "B<PERF_RECORD_EXIT>"
5412
5413 #. type: Plain text
5414 #: build/C/man2/perf_event_open.2:1703
5415 msgid "This record indicates a process exit event."
5416 msgstr ""
5417
5418 #. type: Plain text
5419 #: build/C/man2/perf_event_open.2:1713 build/C/man2/perf_event_open.2:1743
5420 #, no-wrap
5421 msgid ""
5422 "struct {\n"
5423 "    struct perf_event_header header;\n"
5424 "    u32 pid, ppid;\n"
5425 "    u32 tid, ptid;\n"
5426 "    u64 time;\n"
5427 "    struct sample_id sample_id;\n"
5428 "};\n"
5429 msgstr ""
5430 "struct {\n"
5431 "    struct perf_event_header header;\n"
5432 "    u32 pid, ppid;\n"
5433 "    u32 tid, ptid;\n"
5434 "    u64 time;\n"
5435 "    struct sample_id sample_id;\n"
5436 "};\n"
5437
5438 #. type: TP
5439 #: build/C/man2/perf_event_open.2:1715
5440 #, no-wrap
5441 msgid "B<PERF_RECORD_THROTTLE>, B<PERF_RECORD_UNTHROTTLE>"
5442 msgstr "B<PERF_RECORD_THROTTLE>, B<PERF_RECORD_UNTHROTTLE>"
5443
5444 #. type: Plain text
5445 #: build/C/man2/perf_event_open.2:1718
5446 msgid "This record indicates a throttle/unthrottle event."
5447 msgstr ""
5448
5449 #. type: Plain text
5450 #: build/C/man2/perf_event_open.2:1728
5451 #, no-wrap
5452 msgid ""
5453 "struct {\n"
5454 "    struct perf_event_header header;\n"
5455 "    u64 time;\n"
5456 "    u64 id;\n"
5457 "    u64 stream_id;\n"
5458 "    struct sample_id sample_id;\n"
5459 "};\n"
5460 msgstr ""
5461 "struct {\n"
5462 "    struct perf_event_header header;\n"
5463 "    u64 time;\n"
5464 "    u64 id;\n"
5465 "    u64 stream_id;\n"
5466 "    struct sample_id sample_id;\n"
5467 "};\n"
5468
5469 #. type: TP
5470 #: build/C/man2/perf_event_open.2:1730
5471 #, no-wrap
5472 msgid "B<PERF_RECORD_FORK>"
5473 msgstr "B<PERF_RECORD_FORK>"
5474
5475 #. type: Plain text
5476 #: build/C/man2/perf_event_open.2:1733
5477 msgid "This record indicates a fork event."
5478 msgstr ""
5479
5480 #. type: TP
5481 #: build/C/man2/perf_event_open.2:1745
5482 #, no-wrap
5483 msgid "B<PERF_RECORD_READ>"
5484 msgstr "B<PERF_RECORD_READ>"
5485
5486 #. type: Plain text
5487 #: build/C/man2/perf_event_open.2:1748
5488 msgid "This record indicates a read event."
5489 msgstr ""
5490
5491 #. type: Plain text
5492 #: build/C/man2/perf_event_open.2:1757
5493 #, no-wrap
5494 msgid ""
5495 "struct {\n"
5496 "    struct perf_event_header header;\n"
5497 "    u32 pid, tid;\n"
5498 "    struct read_format values;\n"
5499 "    struct sample_id sample_id;\n"
5500 "};\n"
5501 msgstr ""
5502 "struct {\n"
5503 "    struct perf_event_header header;\n"
5504 "    u32 pid, tid;\n"
5505 "    struct read_format values;\n"
5506 "    struct sample_id sample_id;\n"
5507 "};\n"
5508
5509 #. type: TP
5510 #: build/C/man2/perf_event_open.2:1759
5511 #, no-wrap
5512 msgid "B<PERF_RECORD_SAMPLE>"
5513 msgstr "B<PERF_RECORD_SAMPLE>"
5514
5515 #. type: Plain text
5516 #: build/C/man2/perf_event_open.2:1762
5517 msgid "This record indicates a sample."
5518 msgstr ""
5519
5520 #. type: Plain text
5521 #: build/C/man2/perf_event_open.2:1794
5522 #, no-wrap
5523 msgid ""
5524 "struct {\n"
5525 "    struct perf_event_header header;\n"
5526 "    u64   sample_id;  /* if PERF_SAMPLE_IDENTIFIER */\n"
5527 "    u64   ip;         /* if PERF_SAMPLE_IP */\n"
5528 "    u32   pid, tid;   /* if PERF_SAMPLE_TID */\n"
5529 "    u64   time;       /* if PERF_SAMPLE_TIME */\n"
5530 "    u64   addr;       /* if PERF_SAMPLE_ADDR */\n"
5531 "    u64   id;         /* if PERF_SAMPLE_ID */\n"
5532 "    u64   stream_id;  /* if PERF_SAMPLE_STREAM_ID */\n"
5533 "    u32   cpu, res;   /* if PERF_SAMPLE_CPU */\n"
5534 "    u64   period;     /* if PERF_SAMPLE_PERIOD */\n"
5535 "    struct read_format v; /* if PERF_SAMPLE_READ */\n"
5536 "    u64   nr;         /* if PERF_SAMPLE_CALLCHAIN */\n"
5537 "    u64   ips[nr];    /* if PERF_SAMPLE_CALLCHAIN */\n"
5538 "    u32   size;       /* if PERF_SAMPLE_RAW */\n"
5539 "    char  data[size]; /* if PERF_SAMPLE_RAW */\n"
5540 "    u64   bnr;        /* if PERF_SAMPLE_BRANCH_STACK */\n"
5541 "    struct perf_branch_entry lbr[bnr];\n"
5542 "                      /* if PERF_SAMPLE_BRANCH_STACK */\n"
5543 "    u64   abi;        /* if PERF_SAMPLE_REGS_USER */\n"
5544 "    u64   regs[weight(mask)];\n"
5545 "                      /* if PERF_SAMPLE_REGS_USER */\n"
5546 "    u64   size;       /* if PERF_SAMPLE_STACK_USER */\n"
5547 "    char  data[size]; /* if PERF_SAMPLE_STACK_USER */\n"
5548 "    u64   dyn_size;   /* if PERF_SAMPLE_STACK_USER */\n"
5549 "    u64   weight;     /* if PERF_SAMPLE_WEIGHT */\n"
5550 "    u64   data_src;   /* if PERF_SAMPLE_DATA_SRC */\n"
5551 "    u64   transaction;/* if PERF_SAMPLE_TRANSACTION */\n"
5552 "};\n"
5553 msgstr ""
5554 "struct {\n"
5555 "    struct perf_event_header header;\n"
5556 "    u64   sample_id;  /* if PERF_SAMPLE_IDENTIFIER */\n"
5557 "    u64   ip;         /* if PERF_SAMPLE_IP */\n"
5558 "    u32   pid, tid;   /* if PERF_SAMPLE_TID */\n"
5559 "    u64   time;       /* if PERF_SAMPLE_TIME */\n"
5560 "    u64   addr;       /* if PERF_SAMPLE_ADDR */\n"
5561 "    u64   id;         /* if PERF_SAMPLE_ID */\n"
5562 "    u64   stream_id;  /* if PERF_SAMPLE_STREAM_ID */\n"
5563 "    u32   cpu, res;   /* if PERF_SAMPLE_CPU */\n"
5564 "    u64   period;     /* if PERF_SAMPLE_PERIOD */\n"
5565 "    struct read_format v; /* if PERF_SAMPLE_READ */\n"
5566 "    u64   nr;         /* if PERF_SAMPLE_CALLCHAIN */\n"
5567 "    u64   ips[nr];    /* if PERF_SAMPLE_CALLCHAIN */\n"
5568 "    u32   size;       /* if PERF_SAMPLE_RAW */\n"
5569 "    char  data[size]; /* if PERF_SAMPLE_RAW */\n"
5570 "    u64   bnr;        /* if PERF_SAMPLE_BRANCH_STACK */\n"
5571 "    struct perf_branch_entry lbr[bnr];\n"
5572 "                      /* if PERF_SAMPLE_BRANCH_STACK */\n"
5573 "    u64   abi;        /* if PERF_SAMPLE_REGS_USER */\n"
5574 "    u64   regs[weight(mask)];\n"
5575 "                      /* if PERF_SAMPLE_REGS_USER */\n"
5576 "    u64   size;       /* if PERF_SAMPLE_STACK_USER */\n"
5577 "    char  data[size]; /* if PERF_SAMPLE_STACK_USER */\n"
5578 "    u64   dyn_size;   /* if PERF_SAMPLE_STACK_USER */\n"
5579 "    u64   weight;     /* if PERF_SAMPLE_WEIGHT */\n"
5580 "    u64   data_src;   /* if PERF_SAMPLE_DATA_SRC */\n"
5581 "    u64   transaction;/* if PERF_SAMPLE_TRANSACTION */\n"
5582 "};\n"
5583
5584 #. type: TP
5585 #: build/C/man2/perf_event_open.2:1796
5586 #, no-wrap
5587 msgid "I<sample_id>"
5588 msgstr "I<sample_id>"
5589
5590 #. type: Plain text
5591 #: build/C/man2/perf_event_open.2:1806
5592 msgid ""
5593 "If B<PERF_SAMPLE_IDENTIFIER> is enabled, a 64-bit unique ID is included.  "
5594 "This is a duplication of the B<PERF_SAMPLE_ID> I<id> value, but included at "
5595 "the beginning of the sample so parsers can easily obtain the value."
5596 msgstr ""
5597
5598 #. type: TP
5599 #: build/C/man2/perf_event_open.2:1806
5600 #, no-wrap
5601 msgid "I<ip>"
5602 msgstr "I<ip>"
5603
5604 #. type: Plain text
5605 #: build/C/man2/perf_event_open.2:1812
5606 msgid ""
5607 "If B<PERF_SAMPLE_IP> is enabled, then a 64-bit instruction pointer value is "
5608 "included."
5609 msgstr ""
5610
5611 #. type: TP
5612 #: build/C/man2/perf_event_open.2:1812
5613 #, no-wrap
5614 msgid "I<pid>, I<tid>"
5615 msgstr "I<pid>, I<tid>"
5616
5617 #. type: Plain text
5618 #: build/C/man2/perf_event_open.2:1818
5619 msgid ""
5620 "If B<PERF_SAMPLE_TID> is enabled, then a 32-bit process ID and 32-bit thread "
5621 "ID are included."
5622 msgstr ""
5623
5624 #. type: TP
5625 #: build/C/man2/perf_event_open.2:1818
5626 #, no-wrap
5627 msgid "I<time>"
5628 msgstr "I<time>"
5629
5630 #. type: Plain text
5631 #: build/C/man2/perf_event_open.2:1826
5632 msgid ""
5633 "If B<PERF_SAMPLE_TIME> is enabled, then a 64-bit timestamp is included.  "
5634 "This is obtained via local_clock() which is a hardware timestamp if "
5635 "available and the jiffies value if not."
5636 msgstr ""
5637
5638 #. type: Plain text
5639 #: build/C/man2/perf_event_open.2:1833
5640 msgid ""
5641 "If B<PERF_SAMPLE_ADDR> is enabled, then a 64-bit address is included.  This "
5642 "is usually the address of a tracepoint, breakpoint, or software event; "
5643 "otherwise the value is 0."
5644 msgstr ""
5645
5646 #. type: Plain text
5647 #: build/C/man2/perf_event_open.2:1841
5648 msgid ""
5649 "If B<PERF_SAMPLE_ID> is enabled, a 64-bit unique ID is included.  If the "
5650 "event is a member of an event group, the group leader ID is returned.  This "
5651 "ID is the same as the one returned by B<PERF_FORMAT_ID>."
5652 msgstr ""
5653
5654 #. type: TP
5655 #: build/C/man2/perf_event_open.2:1841
5656 #, no-wrap
5657 msgid "I<stream_id>"
5658 msgstr "I<stream_id>"
5659
5660 #. type: Plain text
5661 #: build/C/man2/perf_event_open.2:1851
5662 msgid ""
5663 "If B<PERF_SAMPLE_STREAM_ID> is enabled, a 64-bit unique ID is included.  "
5664 "Unlike B<PERF_SAMPLE_ID> the actual ID is returned, not the group leader.  "
5665 "This ID is the same as the one returned by B<PERF_FORMAT_ID>."
5666 msgstr ""
5667
5668 #. type: TP
5669 #: build/C/man2/perf_event_open.2:1851
5670 #, no-wrap
5671 msgid "I<cpu>, I<res>"
5672 msgstr "I<cpu>, I<res>"
5673
5674 #. type: Plain text
5675 #: build/C/man2/perf_event_open.2:1858
5676 msgid ""
5677 "If B<PERF_SAMPLE_CPU> is enabled, this is a 32-bit value indicating which "
5678 "CPU was being used, in addition to a reserved (unused)  32-bit value."
5679 msgstr ""
5680
5681 #. type: TP
5682 #: build/C/man2/perf_event_open.2:1858
5683 #, no-wrap
5684 msgid "I<period>"
5685 msgstr "I<period>"
5686
5687 #. type: Plain text
5688 #: build/C/man2/perf_event_open.2:1864
5689 msgid ""
5690 "If B<PERF_SAMPLE_PERIOD> is enabled, a 64-bit value indicating the current "
5691 "sampling period is written."
5692 msgstr ""
5693
5694 #. type: TP
5695 #: build/C/man2/perf_event_open.2:1864
5696 #, no-wrap
5697 msgid "I<v>"
5698 msgstr "I<v>"
5699
5700 #. type: Plain text
5701 #: build/C/man2/perf_event_open.2:1875
5702 msgid ""
5703 "If B<PERF_SAMPLE_READ> is enabled, a structure of type read_format is "
5704 "included which has values for all events in the event group.  The values "
5705 "included depend on the I<read_format> value used at B<perf_event_open>()  "
5706 "time."
5707 msgstr ""
5708
5709 #. type: TP
5710 #: build/C/man2/perf_event_open.2:1875
5711 #, no-wrap
5712 msgid "I<nr>, I<ips[nr]>"
5713 msgstr "I<nr>, I<ips[nr]>"
5714
5715 #. type: Plain text
5716 #: build/C/man2/perf_event_open.2:1883
5717 msgid ""
5718 "If B<PERF_SAMPLE_CALLCHAIN> is enabled, then a 64-bit number is included "
5719 "which indicates how many following 64-bit instruction pointers will follow.  "
5720 "This is the current callchain."
5721 msgstr ""
5722
5723 #. type: TP
5724 #: build/C/man2/perf_event_open.2:1883
5725 #, no-wrap
5726 msgid "I<size>, I<data[size]>"
5727 msgstr "I<size>, I<data[size]>"
5728
5729 #. type: Plain text
5730 #: build/C/man2/perf_event_open.2:1890
5731 msgid ""
5732 "If B<PERF_SAMPLE_RAW> is enabled, then a 32-bit value indicating size is "
5733 "included followed by an array of 8-bit values of length size.  The values "
5734 "are padded with 0 to have 64-bit alignment."
5735 msgstr ""
5736
5737 #. type: Plain text
5738 #: build/C/man2/perf_event_open.2:1895
5739 msgid ""
5740 "This RAW record data is opaque with respect to the ABI.  The ABI doesn't "
5741 "make any promises with respect to the stability of its content, it may vary "
5742 "depending on event, hardware, and kernel version."
5743 msgstr ""
5744
5745 #. type: TP
5746 #: build/C/man2/perf_event_open.2:1895
5747 #, no-wrap
5748 msgid "I<bnr>, I<lbr[bnr]>"
5749 msgstr "I<bnr>, I<lbr[bnr]>"
5750
5751 #. type: Plain text
5752 #: build/C/man2/perf_event_open.2:1904
5753 msgid ""
5754 "If B<PERF_SAMPLE_BRANCH_STACK> is enabled, then a 64-bit value indicating "
5755 "the number of records is included, followed by I<bnr> I<perf_branch_entry> "
5756 "structures which each include the fields:"
5757 msgstr ""
5758
5759 #. type: TP
5760 #: build/C/man2/perf_event_open.2:1905
5761 #, no-wrap
5762 msgid "I<from>"
5763 msgstr "I<from>"
5764
5765 #. type: Plain text
5766 #: build/C/man2/perf_event_open.2:1908
5767 msgid "This indicates the source instruction (may not be a branch)."
5768 msgstr ""
5769
5770 #. type: TP
5771 #: build/C/man2/perf_event_open.2:1908
5772 #, no-wrap
5773 msgid "I<to>"
5774 msgstr "I<to>"
5775
5776 #. type: Plain text
5777 #: build/C/man2/perf_event_open.2:1911
5778 msgid "The branch target."
5779 msgstr ""
5780
5781 #. type: TP
5782 #: build/C/man2/perf_event_open.2:1911
5783 #, no-wrap
5784 msgid "I<mispred>"
5785 msgstr "I<mispred>"
5786
5787 #. type: Plain text
5788 #: build/C/man2/perf_event_open.2:1914
5789 msgid "The branch target was mispredicted."
5790 msgstr ""
5791
5792 #. type: TP
5793 #: build/C/man2/perf_event_open.2:1914
5794 #, no-wrap
5795 msgid "I<predicted>"
5796 msgstr "I<predicted>"
5797
5798 #. type: Plain text
5799 #: build/C/man2/perf_event_open.2:1917
5800 msgid "The branch target was predicted."
5801 msgstr ""
5802
5803 #. type: TP
5804 #: build/C/man2/perf_event_open.2:1917
5805 #, no-wrap
5806 msgid "I<in_tx> (since Linux 3.11)"
5807 msgstr "I<in_tx> (Linux 3.11 以降)"
5808
5809 #. type: Plain text
5810 #: build/C/man2/perf_event_open.2:1920
5811 msgid "The branch was in a transactional memory transaction."
5812 msgstr ""
5813
5814 #. type: TP
5815 #: build/C/man2/perf_event_open.2:1920
5816 #, no-wrap
5817 msgid "I<abort> (since Linux 3.11)"
5818 msgstr "I<abort> (Linux 3.11 以降)"
5819
5820 #. type: Plain text
5821 #: build/C/man2/perf_event_open.2:1923
5822 msgid "The branch was in an aborted transactional memory transaction."
5823 msgstr ""
5824
5825 #. type: Plain text
5826 #: build/C/man2/perf_event_open.2:1927
5827 msgid ""
5828 "The entries are from most to least recent, so the first entry has the most "
5829 "recent branch."
5830 msgstr ""
5831
5832 #. type: Plain text
5833 #: build/C/man2/perf_event_open.2:1934
5834 msgid ""
5835 "Support for I<mispred> and I<predicted> is optional; if not supported, both "
5836 "values will be 0."
5837 msgstr ""
5838
5839 #. type: Plain text
5840 #: build/C/man2/perf_event_open.2:1938
5841 msgid ""
5842 "The type of branches recorded is specified by the I<branch_sample_type> "
5843 "field."
5844 msgstr ""
5845
5846 #. type: TP
5847 #: build/C/man2/perf_event_open.2:1940
5848 #, no-wrap
5849 msgid "I<abi>, I<regs[weight(mask)]>"
5850 msgstr "I<abi>, I<regs[weight(mask)]>"
5851
5852 #. type: Plain text
5853 #: build/C/man2/perf_event_open.2:1945
5854 msgid ""
5855 "If B<PERF_SAMPLE_REGS_USER> is enabled, then the user CPU registers are "
5856 "recorded."
5857 msgstr ""
5858
5859 #. type: Plain text
5860 #: build/C/man2/perf_event_open.2:1951
5861 msgid ""
5862 "The I<abi> field is one of B<PERF_SAMPLE_REGS_ABI_NONE>, "
5863 "B<PERF_SAMPLE_REGS_ABI_32> or B<PERF_SAMPLE_REGS_ABI_64>."
5864 msgstr ""
5865
5866 #. type: Plain text
5867 #: build/C/man2/perf_event_open.2:1961
5868 msgid ""
5869 "The I<regs> field is an array of the CPU registers that were specified by "
5870 "the I<sample_regs_user> attr field.  The number of values is the number of "
5871 "bits set in the I<sample_regs_user> bit mask."
5872 msgstr ""
5873
5874 #. type: TP
5875 #: build/C/man2/perf_event_open.2:1961
5876 #, no-wrap
5877 msgid "I<size>, I<data[size]>, I<dyn_size>"
5878 msgstr "I<size>, I<data[size]>, I<dyn_size>"
5879
5880 #. type: Plain text
5881 #: build/C/man2/perf_event_open.2:1977
5882 msgid ""
5883 "If B<PERF_SAMPLE_STACK_USER> is enabled, then the user stack is recorded.  "
5884 "This can be used to generate stack backtraces.  I<size> is the size "
5885 "requested by the user in I<sample_stack_user> or else the maximum record "
5886 "size.  I<data> is the stack data (a raw dump of the memory pointed to by the "
5887 "stack pointer at the time of sampling).  I<dyn_size> is the amount of data "
5888 "actually dumped (can be less than I<size>)."
5889 msgstr ""
5890
5891 #. type: TP
5892 #: build/C/man2/perf_event_open.2:1977
5893 #, no-wrap
5894 msgid "I<weight>"
5895 msgstr "I<weight>"
5896
5897 #. type: Plain text
5898 #: build/C/man2/perf_event_open.2:1985
5899 msgid ""
5900 "If B<PERF_SAMPLE_WEIGHT> is enabled, then a 64-bit value provided by the "
5901 "hardware is recorded that indicates how costly the event was.  This allows "
5902 "expensive events to stand out more clearly in profiles."
5903 msgstr ""
5904
5905 #. type: TP
5906 #: build/C/man2/perf_event_open.2:1985
5907 #, no-wrap
5908 msgid "I<data_src>"
5909 msgstr "I<data_src>"
5910
5911 #. type: Plain text
5912 #: build/C/man2/perf_event_open.2:1991
5913 msgid ""
5914 "If B<PERF_SAMPLE_DATA_SRC> is enabled, then a 64-bit value is recorded that "
5915 "is made up of the following fields:"
5916 msgstr ""
5917
5918 #. type: TP
5919 #: build/C/man2/perf_event_open.2:1992
5920 #, no-wrap
5921 msgid "I<mem_op>"
5922 msgstr "I<mem_op>"
5923
5924 #. type: Plain text
5925 #: build/C/man2/perf_event_open.2:1995
5926 msgid "Type of opcode, a bitwise combination of:"
5927 msgstr ""
5928
5929 #. type: TP
5930 #: build/C/man2/perf_event_open.2:1998
5931 #, no-wrap
5932 msgid "B<PERF_MEM_OP_NA>"
5933 msgstr "B<PERF_MEM_OP_NA>"
5934
5935 #. type: Plain text
5936 #: build/C/man2/perf_event_open.2:2001 build/C/man2/perf_event_open.2:2026
5937 #: build/C/man2/perf_event_open.2:2077 build/C/man2/perf_event_open.2:2101
5938 #: build/C/man2/perf_event_open.2:2117
5939 msgid "Not available"
5940 msgstr ""
5941
5942 #. type: TP
5943 #: build/C/man2/perf_event_open.2:2001
5944 #, no-wrap
5945 msgid "B<PERF_MEM_OP_LOAD>"
5946 msgstr "B<PERF_MEM_OP_LOAD>"
5947
5948 #. type: Plain text
5949 #: build/C/man2/perf_event_open.2:2004
5950 msgid "Load instruction"
5951 msgstr ""
5952
5953 #. type: TP
5954 #: build/C/man2/perf_event_open.2:2004
5955 #, no-wrap
5956 msgid "B<PERF_MEM_OP_STORE>"
5957 msgstr "B<PERF_MEM_OP_STORE>"
5958
5959 #. type: Plain text
5960 #: build/C/man2/perf_event_open.2:2007
5961 msgid "Store instruction"
5962 msgstr ""
5963
5964 #. type: TP
5965 #: build/C/man2/perf_event_open.2:2007
5966 #, no-wrap
5967 msgid "B<PERF_MEM_OP_PFETCH>"
5968 msgstr "B<PERF_MEM_OP_PFETCH>"
5969
5970 #. type: Plain text
5971 #: build/C/man2/perf_event_open.2:2010
5972 msgid "Prefetch"
5973 msgstr ""
5974
5975 #. type: TP
5976 #: build/C/man2/perf_event_open.2:2010
5977 #, no-wrap
5978 msgid "B<PERF_MEM_OP_EXEC>"
5979 msgstr "B<PERF_MEM_OP_EXEC>"
5980
5981 #. type: Plain text
5982 #: build/C/man2/perf_event_open.2:2013
5983 msgid "Executable code"
5984 msgstr ""
5985
5986 #. type: TP
5987 #: build/C/man2/perf_event_open.2:2015
5988 #, no-wrap
5989 msgid "I<mem_lvl>"
5990 msgstr "I<mem_lvl>"
5991
5992 #. type: Plain text
5993 #: build/C/man2/perf_event_open.2:2020
5994 msgid ""
5995 "Memory hierarchy level hit or miss, a bitwise combination of the following, "
5996 "shifted left by B<PERF_MEM_LVL_SHIFT>:"
5997 msgstr ""
5998
5999 #. type: TP
6000 #: build/C/man2/perf_event_open.2:2023
6001 #, no-wrap
6002 msgid "B<PERF_MEM_LVL_NA>"
6003 msgstr "B<PERF_MEM_LVL_NA>"
6004
6005 #. type: TP
6006 #: build/C/man2/perf_event_open.2:2026
6007 #, no-wrap
6008 msgid "B<PERF_MEM_LVL_HIT>"
6009 msgstr "B<PERF_MEM_LVL_HIT>"
6010
6011 #. type: Plain text
6012 #: build/C/man2/perf_event_open.2:2029 build/C/man2/perf_event_open.2:2120
6013 msgid "Hit"
6014 msgstr ""
6015
6016 #. type: TP
6017 #: build/C/man2/perf_event_open.2:2029
6018 #, no-wrap
6019 msgid "B<PERF_MEM_LVL_MISS>"
6020 msgstr "B<PERF_MEM_LVL_MISS>"
6021
6022 #. type: Plain text
6023 #: build/C/man2/perf_event_open.2:2032 build/C/man2/perf_event_open.2:2123
6024 msgid "Miss"
6025 msgstr ""
6026
6027 #. type: TP
6028 #: build/C/man2/perf_event_open.2:2032
6029 #, no-wrap
6030 msgid "B<PERF_MEM_LVL_L1>"
6031 msgstr "B<PERF_MEM_LVL_L1>"
6032
6033 #. type: Plain text
6034 #: build/C/man2/perf_event_open.2:2035
6035 msgid "Level 1 cache"
6036 msgstr ""
6037
6038 #. type: TP
6039 #: build/C/man2/perf_event_open.2:2035
6040 #, no-wrap
6041 msgid "B<PERF_MEM_LVL_LFB>"
6042 msgstr "B<PERF_MEM_LVL_LFB>"
6043
6044 #. type: Plain text
6045 #: build/C/man2/perf_event_open.2:2038
6046 msgid "Line fill buffer"
6047 msgstr ""
6048
6049 #. type: TP
6050 #: build/C/man2/perf_event_open.2:2038
6051 #, no-wrap
6052 msgid "B<PERF_MEM_LVL_L2>"
6053 msgstr "B<PERF_MEM_LVL_L2>"
6054
6055 #. type: Plain text
6056 #: build/C/man2/perf_event_open.2:2041
6057 msgid "Level 2 cache"
6058 msgstr ""
6059
6060 #. type: TP
6061 #: build/C/man2/perf_event_open.2:2041
6062 #, no-wrap
6063 msgid "B<PERF_MEM_LVL_L3>"
6064 msgstr "B<PERF_MEM_LVL_L3>"
6065
6066 #. type: Plain text
6067 #: build/C/man2/perf_event_open.2:2044
6068 msgid "Level 3 cache"
6069 msgstr ""
6070
6071 #. type: TP
6072 #: build/C/man2/perf_event_open.2:2044
6073 #, no-wrap
6074 msgid "B<PERF_MEM_LVL_LOC_RAM>"
6075 msgstr "B<PERF_MEM_LVL_LOC_RAM>"
6076
6077 #. type: Plain text
6078 #: build/C/man2/perf_event_open.2:2047
6079 msgid "Local DRAM"
6080 msgstr ""
6081
6082 #. type: TP
6083 #: build/C/man2/perf_event_open.2:2047
6084 #, no-wrap
6085 msgid "B<PERF_MEM_LVL_REM_RAM1>"
6086 msgstr "B<PERF_MEM_LVL_REM_RAM1>"
6087
6088 #. type: Plain text
6089 #: build/C/man2/perf_event_open.2:2050
6090 msgid "Remote DRAM 1 hop"
6091 msgstr ""
6092
6093 #. type: TP
6094 #: build/C/man2/perf_event_open.2:2050
6095 #, no-wrap
6096 msgid "B<PERF_MEM_LVL_REM_RAM2>"
6097 msgstr "B<PERF_MEM_LVL_REM_RAM2>"
6098
6099 #. type: Plain text
6100 #: build/C/man2/perf_event_open.2:2053
6101 msgid "Remote DRAM 2 hops"
6102 msgstr ""
6103
6104 #. type: TP
6105 #: build/C/man2/perf_event_open.2:2053
6106 #, no-wrap
6107 msgid "B<PERF_MEM_LVL_REM_CCE1>"
6108 msgstr "B<PERF_MEM_LVL_REM_CCE1>"
6109
6110 #. type: Plain text
6111 #: build/C/man2/perf_event_open.2:2056
6112 msgid "Remote cache 1 hop"
6113 msgstr ""
6114
6115 #. type: TP
6116 #: build/C/man2/perf_event_open.2:2056
6117 #, no-wrap
6118 msgid "B<PERF_MEM_LVL_REM_CCE2>"
6119 msgstr "B<PERF_MEM_LVL_REM_CCE2>"
6120
6121 #. type: Plain text
6122 #: build/C/man2/perf_event_open.2:2059
6123 msgid "Remote cache 2 hops"
6124 msgstr ""
6125
6126 #. type: TP
6127 #: build/C/man2/perf_event_open.2:2059
6128 #, no-wrap
6129 msgid "B<PERF_MEM_LVL_IO>"
6130 msgstr "B<PERF_MEM_LVL_IO>"
6131
6132 #. type: Plain text
6133 #: build/C/man2/perf_event_open.2:2062
6134 msgid "I/O memory"
6135 msgstr ""
6136
6137 #. type: TP
6138 #: build/C/man2/perf_event_open.2:2062
6139 #, no-wrap
6140 msgid "B<PERF_MEM_LVL_UNC>"
6141 msgstr "B<PERF_MEM_LVL_UNC>"
6142
6143 #. type: Plain text
6144 #: build/C/man2/perf_event_open.2:2065
6145 msgid "Uncached memory"
6146 msgstr ""
6147
6148 #. type: TP
6149 #: build/C/man2/perf_event_open.2:2067
6150 #, no-wrap
6151 msgid "I<mem_snoop>"
6152 msgstr "I<mem_snoop>"
6153
6154 #. type: Plain text
6155 #: build/C/man2/perf_event_open.2:2071
6156 msgid ""
6157 "Snoop mode, a bitwise combination of the following, shifted left by "
6158 "B<PERF_MEM_SNOOP_SHIFT>:"
6159 msgstr ""
6160
6161 #. type: TP
6162 #: build/C/man2/perf_event_open.2:2074
6163 #, no-wrap
6164 msgid "B<PERF_MEM_SNOOP_NA>"
6165 msgstr "B<PERF_MEM_SNOOP_NA>"
6166
6167 #. type: TP
6168 #: build/C/man2/perf_event_open.2:2077
6169 #, no-wrap
6170 msgid "B<PERF_MEM_SNOOP_NONE>"
6171 msgstr "B<PERF_MEM_SNOOP_NONE>"
6172
6173 #. type: Plain text
6174 #: build/C/man2/perf_event_open.2:2080
6175 msgid "No snoop"
6176 msgstr ""
6177
6178 #. type: TP
6179 #: build/C/man2/perf_event_open.2:2080
6180 #, no-wrap
6181 msgid "B<PERF_MEM_SNOOP_HIT>"
6182 msgstr "B<PERF_MEM_SNOOP_HIT>"
6183
6184 #. type: Plain text
6185 #: build/C/man2/perf_event_open.2:2083
6186 msgid "Snoop hit"
6187 msgstr ""
6188
6189 #. type: TP
6190 #: build/C/man2/perf_event_open.2:2083
6191 #, no-wrap
6192 msgid "B<PERF_MEM_SNOOP_MISS>"
6193 msgstr "B<PERF_MEM_SNOOP_MISS>"
6194
6195 #. type: Plain text
6196 #: build/C/man2/perf_event_open.2:2086
6197 msgid "Snoop miss"
6198 msgstr ""
6199
6200 #. type: TP
6201 #: build/C/man2/perf_event_open.2:2086
6202 #, no-wrap
6203 msgid "B<PERF_MEM_SNOOP_HITM>"
6204 msgstr "B<PERF_MEM_SNOOP_HITM>"
6205
6206 #. type: Plain text
6207 #: build/C/man2/perf_event_open.2:2089
6208 msgid "Snoop hit modified"
6209 msgstr ""
6210
6211 #. type: TP
6212 #: build/C/man2/perf_event_open.2:2091
6213 #, no-wrap
6214 msgid "I<mem_lock>"
6215 msgstr "I<mem_lock>"
6216
6217 #. type: Plain text
6218 #: build/C/man2/perf_event_open.2:2095
6219 msgid ""
6220 "Lock instruction, a bitwise combination of the following, shifted left by "
6221 "B<PERF_MEM_LOCK_SHIFT>:"
6222 msgstr ""
6223
6224 #. type: TP
6225 #: build/C/man2/perf_event_open.2:2098
6226 #, no-wrap
6227 msgid "B<PERF_MEM_LOCK_NA>"
6228 msgstr "B<PERF_MEM_LOCK_NA>"
6229
6230 #. type: TP
6231 #: build/C/man2/perf_event_open.2:2101
6232 #, no-wrap
6233 msgid "B<PERF_MEM_LOCK_LOCKED>"
6234 msgstr "B<PERF_MEM_LOCK_LOCKED>"
6235
6236 #. type: Plain text
6237 #: build/C/man2/perf_event_open.2:2104
6238 msgid "Locked transaction"
6239 msgstr ""
6240
6241 #. type: TP
6242 #: build/C/man2/perf_event_open.2:2106
6243 #, no-wrap
6244 msgid "I<mem_dtlb>"
6245 msgstr "I<mem_dtlb>"
6246
6247 #. type: Plain text
6248 #: build/C/man2/perf_event_open.2:2111
6249 msgid ""
6250 "TLB access hit or miss, a bitwise combination of the following, shifted left "
6251 "by B<PERF_MEM_TLB_SHIFT>:"
6252 msgstr ""
6253
6254 #. type: TP
6255 #: build/C/man2/perf_event_open.2:2114
6256 #, no-wrap
6257 msgid "B<PERF_MEM_TLB_NA>"
6258 msgstr "B<PERF_MEM_TLB_NA>"
6259
6260 #. type: TP
6261 #: build/C/man2/perf_event_open.2:2117
6262 #, no-wrap
6263 msgid "B<PERF_MEM_TLB_HIT>"
6264 msgstr "B<PERF_MEM_TLB_HIT>"
6265
6266 #. type: TP
6267 #: build/C/man2/perf_event_open.2:2120
6268 #, no-wrap
6269 msgid "B<PERF_MEM_TLB_MISS>"
6270 msgstr "B<PERF_MEM_TLB_MISS>"
6271
6272 #. type: TP
6273 #: build/C/man2/perf_event_open.2:2123
6274 #, no-wrap
6275 msgid "B<PERF_MEM_TLB_L1>"
6276 msgstr "B<PERF_MEM_TLB_L1>"
6277
6278 #. type: Plain text
6279 #: build/C/man2/perf_event_open.2:2126
6280 msgid "Level 1 TLB"
6281 msgstr ""
6282
6283 #. type: TP
6284 #: build/C/man2/perf_event_open.2:2126
6285 #, no-wrap
6286 msgid "B<PERF_MEM_TLB_L2>"
6287 msgstr "B<PERF_MEM_TLB_L2>"
6288
6289 #. type: Plain text
6290 #: build/C/man2/perf_event_open.2:2129
6291 msgid "Level 2 TLB"
6292 msgstr ""
6293
6294 #. type: TP
6295 #: build/C/man2/perf_event_open.2:2129
6296 #, no-wrap
6297 msgid "B<PERF_MEM_TLB_WK>"
6298 msgstr "B<PERF_MEM_TLB_WK>"
6299
6300 #. type: Plain text
6301 #: build/C/man2/perf_event_open.2:2132
6302 msgid "Hardware walker"
6303 msgstr ""
6304
6305 #. type: TP
6306 #: build/C/man2/perf_event_open.2:2132
6307 #, no-wrap
6308 msgid "B<PERF_MEM_TLB_OS>"
6309 msgstr "B<PERF_MEM_TLB_OS>"
6310
6311 #. type: Plain text
6312 #: build/C/man2/perf_event_open.2:2135
6313 msgid "OS fault handler"
6314 msgstr ""
6315
6316 #. type: TP
6317 #: build/C/man2/perf_event_open.2:2138
6318 #, no-wrap
6319 msgid "I<transaction>"
6320 msgstr "I<transaction>"
6321
6322 #. type: Plain text
6323 #: build/C/man2/perf_event_open.2:2144
6324 msgid ""
6325 "If the B<PERF_SAMPLE_TRANSACTION> flag is set, then a 64-bit field is "
6326 "recorded describing the sources of any transactional memory aborts."
6327 msgstr ""
6328
6329 #. type: Plain text
6330 #: build/C/man2/perf_event_open.2:2146
6331 msgid "The field is a bitwise combination of the following values:"
6332 msgstr ""
6333
6334 #. type: TP
6335 #: build/C/man2/perf_event_open.2:2147
6336 #, no-wrap
6337 msgid "B<PERF_TXN_ELISION>"
6338 msgstr "B<PERF_TXN_ELISION>"
6339
6340 #. type: Plain text
6341 #: build/C/man2/perf_event_open.2:2150
6342 msgid "Abort from an elision type transaction (Intel-CPU-specific)."
6343 msgstr ""
6344
6345 #. type: TP
6346 #: build/C/man2/perf_event_open.2:2150
6347 #, no-wrap
6348 msgid "B<PERF_TXN_TRANSACTION>"
6349 msgstr "B<PERF_TXN_TRANSACTION>"
6350
6351 #. type: Plain text
6352 #: build/C/man2/perf_event_open.2:2153
6353 msgid "Abort from a generic transaction."
6354 msgstr ""
6355
6356 #. type: TP
6357 #: build/C/man2/perf_event_open.2:2153
6358 #, no-wrap
6359 msgid "B<PERF_TXN_SYNC>"
6360 msgstr "B<PERF_TXN_SYNC>"
6361
6362 #. type: Plain text
6363 #: build/C/man2/perf_event_open.2:2156
6364 msgid "Synchronous abort (related to the reported instruction)."
6365 msgstr ""
6366
6367 #. type: TP
6368 #: build/C/man2/perf_event_open.2:2156
6369 #, no-wrap
6370 msgid "B<PERF_TXN_ASYNC>"
6371 msgstr "B<PERF_TXN_ASYNC>"
6372
6373 #. type: Plain text
6374 #: build/C/man2/perf_event_open.2:2159
6375 msgid "Asynchronous abort (not related to the reported instruction)."
6376 msgstr ""
6377
6378 #. type: TP
6379 #: build/C/man2/perf_event_open.2:2159
6380 #, no-wrap
6381 msgid "B<PERF_TXN_RETRY>"
6382 msgstr "B<PERF_TXN_RETRY>"
6383
6384 #. type: Plain text
6385 #: build/C/man2/perf_event_open.2:2162
6386 msgid "Retryable abort (retrying the transaction may have succeeded)."
6387 msgstr ""
6388
6389 #. type: TP
6390 #: build/C/man2/perf_event_open.2:2162
6391 #, no-wrap
6392 msgid "B<PERF_TXN_CONFLICT>"
6393 msgstr "B<PERF_TXN_CONFLICT>"
6394
6395 #. type: Plain text
6396 #: build/C/man2/perf_event_open.2:2165
6397 msgid "Abort due to memory conflicts with other threads."
6398 msgstr ""
6399
6400 #. type: TP
6401 #: build/C/man2/perf_event_open.2:2165
6402 #, no-wrap
6403 msgid "B<PERF_TXN_CAPACITY_WRITE>"
6404 msgstr ""
6405
6406 #. type: Plain text
6407 #: build/C/man2/perf_event_open.2:2168
6408 msgid "Abort due to write capacity overflow."
6409 msgstr ""
6410
6411 #. type: TP
6412 #: build/C/man2/perf_event_open.2:2168
6413 #, no-wrap
6414 msgid "B<PERF_TXN_CAPACITY_READ>"
6415 msgstr ""
6416
6417 #. type: Plain text
6418 #: build/C/man2/perf_event_open.2:2171
6419 msgid "Abort due to read capacity overflow."
6420 msgstr ""
6421
6422 #. type: Plain text
6423 #: build/C/man2/perf_event_open.2:2178
6424 msgid ""
6425 "In addition, a user-specified abort code can be obtained from the high 32 "
6426 "bits of the field by shifting right by B<PERF_TXN_ABORT_SHIFT> and masking "
6427 "with B<PERF_TXN_ABORT_MASK>."
6428 msgstr ""
6429
6430 #. type: TP
6431 #: build/C/man2/perf_event_open.2:2179
6432 #, no-wrap
6433 msgid "B<PERF_RECORD_MMAP2>"
6434 msgstr "B<PERF_RECORD_MMAP2>"
6435
6436 #. type: Plain text
6437 #: build/C/man2/perf_event_open.2:2188
6438 msgid ""
6439 "This record includes extended information on B<mmap>(2)  calls returning "
6440 "executable mappings.  The format is similar to that of the "
6441 "B<PERF_RECORD_MMAP> record, but includes extra values that allow uniquely "
6442 "identifying shared mappings."
6443 msgstr ""
6444
6445 #. type: Plain text
6446 #: build/C/man2/perf_event_open.2:2207
6447 #, no-wrap
6448 msgid ""
6449 "struct {\n"
6450 "    struct perf_event_header header;\n"
6451 "    u32 pid;\n"
6452 "    u32 tid;\n"
6453 "    u64 addr;\n"
6454 "    u64 len;\n"
6455 "    u64 pgoff;\n"
6456 "    u32 maj;\n"
6457 "    u32 min;\n"
6458 "    u64 ino;\n"
6459 "    u64 ino_generation;\n"
6460 "    u32 prot;\n"
6461 "    u32 flags;\n"
6462 "    char filename[];\n"
6463 "    struct sample_id sample_id;\n"
6464 "};\n"
6465 msgstr ""
6466 "struct {\n"
6467 "    struct perf_event_header header;\n"
6468 "    u32 pid;\n"
6469 "    u32 tid;\n"
6470 "    u64 addr;\n"
6471 "    u64 len;\n"
6472 "    u64 pgoff;\n"
6473 "    u32 maj;\n"
6474 "    u32 min;\n"
6475 "    u64 ino;\n"
6476 "    u64 ino_generation;\n"
6477 "    u32 prot;\n"
6478 "    u32 flags;\n"
6479 "    char filename[];\n"
6480 "    struct sample_id sample_id;\n"
6481 "};\n"
6482
6483 #. type: Plain text
6484 #: build/C/man2/perf_event_open.2:2218
6485 msgid "is the address of the allocated memory."
6486 msgstr ""
6487
6488 #. type: TP
6489 #: build/C/man2/perf_event_open.2:2218
6490 #, no-wrap
6491 msgid "I<len>"
6492 msgstr "I<len>"
6493
6494 #. type: Plain text
6495 #: build/C/man2/perf_event_open.2:2221
6496 msgid "is the length of the allocated memory."
6497 msgstr ""
6498
6499 #. type: TP
6500 #: build/C/man2/perf_event_open.2:2221
6501 #, no-wrap
6502 msgid "I<pgoff>"
6503 msgstr "I<pgoff>"
6504
6505 #. type: Plain text
6506 #: build/C/man2/perf_event_open.2:2224
6507 msgid "is the page offset of the allocated memory."
6508 msgstr ""
6509
6510 #. type: TP
6511 #: build/C/man2/perf_event_open.2:2224
6512 #, no-wrap
6513 msgid "I<maj>"
6514 msgstr "I<maj>"
6515
6516 #. type: Plain text
6517 #: build/C/man2/perf_event_open.2:2227
6518 msgid "is the major ID of the underlying device."
6519 msgstr ""
6520
6521 #. type: TP
6522 #: build/C/man2/perf_event_open.2:2227
6523 #, no-wrap
6524 msgid "I<min>"
6525 msgstr "I<min>"
6526
6527 #. type: Plain text
6528 #: build/C/man2/perf_event_open.2:2230
6529 msgid "is the minor ID of the underlying device."
6530 msgstr ""
6531
6532 #. type: TP
6533 #: build/C/man2/perf_event_open.2:2230
6534 #, no-wrap
6535 msgid "I<ino>"
6536 msgstr "I<ino>"
6537
6538 #. type: Plain text
6539 #: build/C/man2/perf_event_open.2:2233
6540 msgid "is the inode number."
6541 msgstr ""
6542
6543 #. type: TP
6544 #: build/C/man2/perf_event_open.2:2233
6545 #, no-wrap
6546 msgid "I<ino_generation>"
6547 msgstr "I<ino_generation>"
6548
6549 #. type: Plain text
6550 #: build/C/man2/perf_event_open.2:2236
6551 msgid "is the inode generation."
6552 msgstr ""
6553
6554 #. type: TP
6555 #: build/C/man2/perf_event_open.2:2236
6556 #, no-wrap
6557 msgid "I<prot>"
6558 msgstr "I<prot>"
6559
6560 #. type: Plain text
6561 #: build/C/man2/perf_event_open.2:2239
6562 msgid "is the protection information."
6563 msgstr ""
6564
6565 #. type: TP
6566 #: build/C/man2/perf_event_open.2:2239
6567 #, no-wrap
6568 msgid "I<flags>"
6569 msgstr "I<flags>"
6570
6571 #. type: Plain text
6572 #: build/C/man2/perf_event_open.2:2242
6573 msgid "is the flags information."
6574 msgstr ""
6575
6576 #. type: TP
6577 #: build/C/man2/perf_event_open.2:2242
6578 #, no-wrap
6579 msgid "I<filename>"
6580 msgstr "I<filename>"
6581
6582 #. type: Plain text
6583 #: build/C/man2/perf_event_open.2:2245
6584 msgid "is a string describing the backing of the allocated memory."
6585 msgstr ""
6586
6587 #. type: SS
6588 #: build/C/man2/perf_event_open.2:2247
6589 #, no-wrap
6590 msgid "Signal overflow"
6591 msgstr ""
6592
6593 #.  FIXME .
6594 #.  The following sentence doesn't seem to make sense.
6595 #.  These system calls do not set up signal handlers.
6596 #. type: Plain text
6597 #: build/C/man2/perf_event_open.2:2259
6598 msgid ""
6599 "Events can be set to deliver a signal when a threshold is crossed.  The "
6600 "signal handler is set up using the B<poll>(2), B<select>(2), B<epoll>(2)  "
6601 "and B<fcntl>(2), system calls."
6602 msgstr ""
6603
6604 #. type: Plain text
6605 #: build/C/man2/perf_event_open.2:2263
6606 msgid ""
6607 "To generate signals, sampling must be enabled (I<sample_period> must have a "
6608 "nonzero value)."
6609 msgstr ""
6610
6611 #. type: Plain text
6612 #: build/C/man2/perf_event_open.2:2265
6613 msgid "There are two ways to generate signals."
6614 msgstr ""
6615
6616 #. type: Plain text
6617 #: build/C/man2/perf_event_open.2:2275
6618 msgid ""
6619 "The first is to set a I<wakeup_events> or I<wakeup_watermark> value that "
6620 "will generate a signal if a certain number of samples or bytes have been "
6621 "written to the mmap ring buffer.  In this case, a signal of type B<POLL_IN> "
6622 "is sent."
6623 msgstr ""
6624
6625 #. type: Plain text
6626 #: build/C/man2/perf_event_open.2:2287
6627 msgid ""
6628 "The other way is by use of the B<PERF_EVENT_IOC_REFRESH> ioctl.  This ioctl "
6629 "adds to a counter that decrements each time the event overflows.  When "
6630 "nonzero, a B<POLL_IN> signal is sent on overflow, but once the value reaches "
6631 "0, a signal is sent of type B<POLL_HUP> and the underlying event is disabled."
6632 msgstr ""
6633
6634 #.  FIXME . Find out when this was introduced
6635 #. type: Plain text
6636 #: build/C/man2/perf_event_open.2:2293
6637 msgid ""
6638 "Note: on newer kernels (since at least as early as Linux 3.2), a signal is "
6639 "provided for every overflow, even if I<wakeup_events> is not set."
6640 msgstr ""
6641
6642 #. type: SS
6643 #: build/C/man2/perf_event_open.2:2293
6644 #, no-wrap
6645 msgid "rdpmc instruction"
6646 msgstr ""
6647
6648 #. type: Plain text
6649 #: build/C/man2/perf_event_open.2:2300
6650 msgid ""
6651 "Starting with Linux 3.4 on x86, you can use the I<rdpmc> instruction to get "
6652 "low-latency reads without having to enter the kernel.  Note that using "
6653 "I<rdpmc> is not necessarily faster than other methods for reading event "
6654 "values."
6655 msgstr ""
6656
6657 #. type: Plain text
6658 #: build/C/man2/perf_event_open.2:2305
6659 msgid ""
6660 "Support for this can be detected with the I<cap_usr_rdpmc> field in the mmap "
6661 "page; documentation on how to calculate event values can be found in that "
6662 "section."
6663 msgstr ""
6664
6665 #. type: SS
6666 #: build/C/man2/perf_event_open.2:2305
6667 #, no-wrap
6668 msgid "perf_event ioctl calls"
6669 msgstr ""
6670
6671 #. type: Plain text
6672 #: build/C/man2/perf_event_open.2:2310
6673 msgid "Various ioctls act on B<perf_event_open>()  file descriptors:"
6674 msgstr ""
6675
6676 #. type: TP
6677 #: build/C/man2/perf_event_open.2:2310
6678 #, no-wrap
6679 msgid "B<PERF_EVENT_IOC_ENABLE>"
6680 msgstr "B<PERF_EVENT_IOC_ENABLE>"
6681
6682 #. type: Plain text
6683 #: build/C/man2/perf_event_open.2:2314
6684 msgid ""
6685 "This enables the individual event or event group specified by the file "
6686 "descriptor argument."
6687 msgstr ""
6688
6689 #. type: Plain text
6690 #: build/C/man2/perf_event_open.2:2320
6691 msgid ""
6692 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
6693 "events in a group are enabled, even if the event specified is not the group "
6694 "leader (but see BUGS)."
6695 msgstr ""
6696
6697 #. type: TP
6698 #: build/C/man2/perf_event_open.2:2320
6699 #, no-wrap
6700 msgid "B<PERF_EVENT_IOC_DISABLE>"
6701 msgstr "B<PERF_EVENT_IOC_DISABLE>"
6702
6703 #. type: Plain text
6704 #: build/C/man2/perf_event_open.2:2324
6705 msgid ""
6706 "This disables the individual counter or event group specified by the file "
6707 "descriptor argument."
6708 msgstr ""
6709
6710 #. type: Plain text
6711 #: build/C/man2/perf_event_open.2:2331
6712 msgid ""
6713 "Enabling or disabling the leader of a group enables or disables the entire "
6714 "group; that is, while the group leader is disabled, none of the counters in "
6715 "the group will count.  Enabling or disabling a member of a group other than "
6716 "the leader affects only that counter; disabling a non-leader stops that "
6717 "counter from counting but doesn't affect any other counter."
6718 msgstr ""
6719
6720 #. type: Plain text
6721 #: build/C/man2/perf_event_open.2:2337
6722 msgid ""
6723 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
6724 "events in a group are disabled, even if the event specified is not the group "
6725 "leader (but see BUGS)."
6726 msgstr ""
6727
6728 #. type: TP
6729 #: build/C/man2/perf_event_open.2:2337
6730 #, no-wrap
6731 msgid "B<PERF_EVENT_IOC_REFRESH>"
6732 msgstr "B<PERF_EVENT_IOC_REFRESH>"
6733
6734 #. type: Plain text
6735 #: build/C/man2/perf_event_open.2:2351
6736 msgid ""
6737 "Non-inherited overflow counters can use this to enable a counter for a "
6738 "number of overflows specified by the argument, after which it is disabled.  "
6739 "Subsequent calls of this ioctl add the argument value to the current count.  "
6740 "A signal with B<POLL_IN> set will happen on each overflow until the count "
6741 "reaches 0; when that happens a signal with POLL_HUP set is sent and the "
6742 "event is disabled.  Using an argument of 0 is considered undefined behavior."
6743 msgstr ""
6744
6745 #. type: TP
6746 #: build/C/man2/perf_event_open.2:2351
6747 #, no-wrap
6748 msgid "B<PERF_EVENT_IOC_RESET>"
6749 msgstr "B<PERF_EVENT_IOC_RESET>"
6750
6751 #. type: Plain text
6752 #: build/C/man2/perf_event_open.2:2361
6753 msgid ""
6754 "Reset the event count specified by the file descriptor argument to zero.  "
6755 "This resets only the counts; there is no way to reset the multiplexing "
6756 "I<time_enabled> or I<time_running> values."
6757 msgstr ""
6758
6759 #. type: Plain text
6760 #: build/C/man2/perf_event_open.2:2367
6761 msgid ""
6762 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
6763 "events in a group are reset, even if the event specified is not the group "
6764 "leader (but see BUGS)."
6765 msgstr ""
6766
6767 #. type: TP
6768 #: build/C/man2/perf_event_open.2:2367
6769 #, no-wrap
6770 msgid "B<PERF_EVENT_IOC_PERIOD>"
6771 msgstr "B<PERF_EVENT_IOC_PERIOD>"
6772
6773 #. type: Plain text
6774 #: build/C/man2/perf_event_open.2:2370
6775 msgid "This updates the overflow period for the event."
6776 msgstr ""
6777
6778 #. type: Plain text
6779 #: build/C/man2/perf_event_open.2:2375
6780 msgid ""
6781 "Since Linux 3.7 (on ARM) and Linux 3.14 (all other architectures), the new "
6782 "period takes effect immediately.  On older kernels, the new period did not "
6783 "take effect until after the next overflow."
6784 msgstr ""
6785
6786 #. type: Plain text
6787 #: build/C/man2/perf_event_open.2:2378
6788 msgid ""
6789 "The argument is a pointer to a 64-bit value containing the desired new "
6790 "period."
6791 msgstr ""
6792
6793 #. type: Plain text
6794 #: build/C/man2/perf_event_open.2:2381
6795 msgid ""
6796 "Prior to Linux 2.6.36 this ioctl always failed due to a bug in the kernel."
6797 msgstr ""
6798
6799 #. type: TP
6800 #: build/C/man2/perf_event_open.2:2382
6801 #, no-wrap
6802 msgid "B<PERF_EVENT_IOC_SET_OUTPUT>"
6803 msgstr ""
6804
6805 #. type: Plain text
6806 #: build/C/man2/perf_event_open.2:2387
6807 msgid ""
6808 "This tells the kernel to report event notifications to the specified file "
6809 "descriptor rather than the default one.  The file descriptors must all be on "
6810 "the same CPU."
6811 msgstr ""
6812
6813 #. type: Plain text
6814 #: build/C/man2/perf_event_open.2:2390
6815 msgid ""
6816 "The argument specifies the desired file descriptor, or -1 if output should "
6817 "be ignored."
6818 msgstr ""
6819
6820 #. type: TP
6821 #: build/C/man2/perf_event_open.2:2390
6822 #, no-wrap
6823 msgid "B<PERF_EVENT_IOC_SET_FILTER> (since Linux 2.6.33)"
6824 msgstr "B<PERF_EVENT_IOC_SET_FILTER> (Linux 2.6.33 以降)"
6825
6826 #. type: Plain text
6827 #: build/C/man2/perf_event_open.2:2393
6828 msgid "This adds an ftrace filter to this event."
6829 msgstr ""
6830
6831 #. type: Plain text
6832 #: build/C/man2/perf_event_open.2:2395
6833 msgid "The argument is a pointer to the desired ftrace filter."
6834 msgstr ""
6835
6836 #. type: TP
6837 #: build/C/man2/perf_event_open.2:2395
6838 #, no-wrap
6839 msgid "B<PERF_EVENT_IOC_ID> (since Linux 3.12)"
6840 msgstr "B<PERF_EVENT_IOC_ID> (Linux 3.12 以降)"
6841
6842 #. type: Plain text
6843 #: build/C/man2/perf_event_open.2:2398
6844 msgid "This returns the event ID value for the given event file descriptor."
6845 msgstr ""
6846
6847 #. type: Plain text
6848 #: build/C/man2/perf_event_open.2:2401
6849 msgid ""
6850 "The argument is a pointer to a 64-bit unsigned integer to hold the result."
6851 msgstr ""
6852
6853 #. type: SS
6854 #: build/C/man2/perf_event_open.2:2401
6855 #, no-wrap
6856 msgid "Using prctl"
6857 msgstr ""
6858
6859 #. type: Plain text
6860 #: build/C/man2/perf_event_open.2:2414
6861 msgid ""
6862 "A process can enable or disable all the event groups that are attached to it "
6863 "using the B<prctl>(2)  B<PR_TASK_PERF_EVENTS_ENABLE> and "
6864 "B<PR_TASK_PERF_EVENTS_DISABLE> operations.  This applies to all counters on "
6865 "the calling process, whether created by this process or by another, and does "
6866 "not affect any counters that this process has created on other processes.  "
6867 "It enables or disables only the group leaders, not any other members in the "
6868 "groups."
6869 msgstr ""
6870
6871 #. type: SS
6872 #: build/C/man2/perf_event_open.2:2414
6873 #, no-wrap
6874 msgid "perf_event related configuration files"
6875 msgstr ""
6876
6877 #. type: Plain text
6878 #: build/C/man2/perf_event_open.2:2417
6879 msgid "Files in I</proc/sys/kernel/>"
6880 msgstr ""
6881
6882 #. type: TP
6883 #: build/C/man2/perf_event_open.2:2418
6884 #, no-wrap
6885 msgid "I</proc/sys/kernel/perf_event_paranoid>"
6886 msgstr ""
6887
6888 #. type: Plain text
6889 #: build/C/man2/perf_event_open.2:2424
6890 msgid ""
6891 "The I<perf_event_paranoid> file can be set to restrict access to the "
6892 "performance counters."
6893 msgstr ""
6894
6895 #. type: IP
6896 #: build/C/man2/perf_event_open.2:2425
6897 #, no-wrap
6898 msgid "2"
6899 msgstr ""
6900
6901 #. type: Plain text
6902 #: build/C/man2/perf_event_open.2:2427
6903 msgid "only allow user-space measurements."
6904 msgstr ""
6905
6906 #. type: IP
6907 #: build/C/man2/perf_event_open.2:2427
6908 #, no-wrap
6909 msgid "1"
6910 msgstr ""
6911
6912 #. type: Plain text
6913 #: build/C/man2/perf_event_open.2:2429
6914 msgid "allow both kernel and user measurements (default)."
6915 msgstr ""
6916
6917 #. type: IP
6918 #: build/C/man2/perf_event_open.2:2429
6919 #, no-wrap
6920 msgid "0"
6921 msgstr ""
6922
6923 #. type: Plain text
6924 #: build/C/man2/perf_event_open.2:2431
6925 msgid "allow access to CPU-specific data but not raw tracepoint samples."
6926 msgstr ""
6927
6928 #. type: IP
6929 #: build/C/man2/perf_event_open.2:2431
6930 #, no-wrap
6931 msgid "-1"
6932 msgstr "-1"
6933
6934 #. type: Plain text
6935 #: build/C/man2/perf_event_open.2:2433
6936 msgid "no restrictions."
6937 msgstr ""
6938
6939 #. type: Plain text
6940 #: build/C/man2/perf_event_open.2:2439
6941 msgid ""
6942 "The existence of the I<perf_event_paranoid> file is the official method for "
6943 "determining if a kernel supports B<perf_event_open>()."
6944 msgstr ""
6945
6946 #. type: TP
6947 #: build/C/man2/perf_event_open.2:2439
6948 #, no-wrap
6949 msgid "I</proc/sys/kernel/perf_event_max_sample_rate>"
6950 msgstr ""
6951
6952 #. type: Plain text
6953 #: build/C/man2/perf_event_open.2:2448
6954 msgid ""
6955 "This sets the maximum sample rate.  Setting this too high can allow users to "
6956 "sample at a rate that impacts overall machine performance and potentially "
6957 "lock up the machine.  The default value is 100000 (samples per second)."
6958 msgstr ""
6959
6960 #. type: TP
6961 #: build/C/man2/perf_event_open.2:2448
6962 #, no-wrap
6963 msgid "I</proc/sys/kernel/perf_event_mlock_kb>"
6964 msgstr ""
6965
6966 #. type: Plain text
6967 #: build/C/man2/perf_event_open.2:2454
6968 msgid ""
6969 "Maximum number of pages an unprivileged user can B<mlock>(2).  The default "
6970 "is 516 (kB)."
6971 msgstr ""
6972
6973 #. type: Plain text
6974 #: build/C/man2/perf_event_open.2:2458
6975 msgid "Files in I</sys/bus/event_source/devices/>"
6976 msgstr ""
6977
6978 #. type: Plain text
6979 #: build/C/man2/perf_event_open.2:2464
6980 msgid ""
6981 "Since Linux 2.6.34, the kernel supports having multiple PMUs available for "
6982 "monitoring.  Information on how to program these PMUs can be found under I</"
6983 "sys/bus/event_source/devices/>.  Each subdirectory corresponds to a "
6984 "different PMU."
6985 msgstr ""
6986
6987 #. type: TP
6988 #: build/C/man2/perf_event_open.2:2464
6989 #, no-wrap
6990 msgid "I</sys/bus/event_source/devices/*/type> (since Linux 2.6.38)"
6991 msgstr "I</sys/bus/event_source/devices/*/type> (Linux 2.6.38 以降)"
6992
6993 #. type: Plain text
6994 #: build/C/man2/perf_event_open.2:2471
6995 msgid ""
6996 "This contains an integer that can be used in the I<type> field of "
6997 "I<perf_event_attr> to indicate that you wish to use this PMU."
6998 msgstr ""
6999
7000 #. type: TP
7001 #: build/C/man2/perf_event_open.2:2471
7002 #, no-wrap
7003 msgid "I</sys/bus/event_source/devices/*/rdpmc> (since Linux 3.4)"
7004 msgstr "I</sys/bus/event_source/devices/*/rdpmc> (Linux 3.4 以降)"
7005
7006 #. type: Plain text
7007 #: build/C/man2/perf_event_open.2:2476
7008 msgid ""
7009 "If this file is 1, then direct user-space access to the performance counter "
7010 "registers is allowed via the rdpmc instruction.  This can be disabled by "
7011 "echoing 0 to the file."
7012 msgstr ""
7013
7014 #. type: TP
7015 #: build/C/man2/perf_event_open.2:2476
7016 #, no-wrap
7017 msgid "I</sys/bus/event_source/devices/*/format/> (since Linux 3.4)"
7018 msgstr "I</sys/bus/event_source/devices/*/format/> (Linux 3.4 以降)"
7019
7020 #. type: Plain text
7021 #: build/C/man2/perf_event_open.2:2484
7022 msgid ""
7023 "This subdirectory contains information on the architecture-specific "
7024 "subfields available for programming the various I<config> fields in the "
7025 "I<perf_event_attr> struct."
7026 msgstr ""
7027
7028 #. type: Plain text
7029 #: build/C/man2/perf_event_open.2:2495
7030 msgid ""
7031 "The content of each file is the name of the config field, followed by a "
7032 "colon, followed by a series of integer bit ranges separated by commas.  For "
7033 "example, the file I<event> may contain the value I<config1:1,6-10,44> which "
7034 "indicates that event is an attribute that occupies bits 1,6-10, and 44 of "
7035 "I<perf_event_attr::config1>."
7036 msgstr ""
7037
7038 #. type: TP
7039 #: build/C/man2/perf_event_open.2:2495
7040 #, no-wrap
7041 msgid "I</sys/bus/event_source/devices/*/events/> (since Linux 3.4)"
7042 msgstr "I</sys/bus/event_source/devices/*/events/> (Linux 3.4 以降)"
7043
7044 #. type: Plain text
7045 #: build/C/man2/perf_event_open.2:2504
7046 msgid ""
7047 "This subdirectory contains files with predefined events.  The contents are "
7048 "strings describing the event settings expressed in terms of the fields found "
7049 "in the previously mentioned I<./format/> directory.  These are not "
7050 "necessarily complete lists of all events supported by a PMU, but usually a "
7051 "subset of events deemed useful or interesting."
7052 msgstr ""
7053
7054 #. type: Plain text
7055 #: build/C/man2/perf_event_open.2:2512
7056 msgid ""
7057 "The content of each file is a list of attribute names separated by commas.  "
7058 "Each entry has an optional value (either hex or decimal).  If no value is "
7059 "specified, then it is assumed to be a single-bit field with a value of 1.  "
7060 "An example entry may look like this: I<event=0x2,inv,ldlat=3>."
7061 msgstr ""
7062
7063 #. type: TP
7064 #: build/C/man2/perf_event_open.2:2512
7065 #, no-wrap
7066 msgid "I</sys/bus/event_source/devices/*/uevent>"
7067 msgstr "I</sys/bus/event_source/devices/*/uevent>"
7068
7069 #. type: Plain text
7070 #: build/C/man2/perf_event_open.2:2516
7071 msgid ""
7072 "This file is the standard kernel device interface for injecting hotplug "
7073 "events."
7074 msgstr ""
7075
7076 #. type: TP
7077 #: build/C/man2/perf_event_open.2:2516
7078 #, no-wrap
7079 msgid "I</sys/bus/event_source/devices/*/cpumask> (since Linux 3.7)"
7080 msgstr "I</sys/bus/event_source/devices/*/cpumask> (Linux 3.7 以降)"
7081
7082 #. type: Plain text
7083 #: build/C/man2/perf_event_open.2:2525
7084 msgid ""
7085 "The I<cpumask> file contains a comma-separated list of integers that "
7086 "indicate a representative CPU number for each socket (package)  on the "
7087 "motherboard.  This is needed when setting up uncore or northbridge events, "
7088 "as those PMUs present socket-wide events."
7089 msgstr ""
7090
7091 #. type: Plain text
7092 #: build/C/man2/perf_event_open.2:2532
7093 msgid ""
7094 "B<perf_event_open>()  returns the new file descriptor, or -1 if an error "
7095 "occurred (in which case, I<errno> is set appropriately)."
7096 msgstr ""
7097
7098 #. type: Plain text
7099 #: build/C/man2/perf_event_open.2:2537
7100 msgid ""
7101 "The errors returned by B<perf_event_open>()  can be inconsistent, and may "
7102 "vary across processor architectures and performance monitoring units."
7103 msgstr ""
7104
7105 #. type: TP
7106 #: build/C/man2/perf_event_open.2:2537
7107 #, no-wrap
7108 msgid "B<E2BIG>"
7109 msgstr "B<E2BIG>"
7110
7111 #. type: Plain text
7112 #: build/C/man2/perf_event_open.2:2554
7113 msgid ""
7114 "Returned if the I<perf_event_attr> I<size> value is too small (smaller than "
7115 "B<PERF_ATTR_SIZE_VER0>), too big (larger than the page size), or larger than "
7116 "the kernel supports and the extra bytes are not zero.  When B<E2BIG> is "
7117 "returned, the I<perf_event_attr> I<size> field is overwritten by the kernel "
7118 "to be the size of the structure it was expecting."
7119 msgstr ""
7120
7121 #. type: Plain text
7122 #: build/C/man2/perf_event_open.2:2568
7123 msgid ""
7124 "Returned when the requested event requires B<CAP_SYS_ADMIN> permissions (or "
7125 "a more permissive perf_event paranoid setting).  Some common cases where an "
7126 "unprivileged process may encounter this error: attaching to a process owned "
7127 "by a different user; monitoring all processes on a given CPU (i.e., "
7128 "specifying the I<pid> argument as -1); and not setting I<exclude_kernel> "
7129 "when the paranoid setting requires it."
7130 msgstr ""
7131
7132 #. type: TP
7133 #: build/C/man2/perf_event_open.2:2568 build/C/man2/sendfile.2:121
7134 #: build/C/man2/splice.2:157 build/C/man2/vmsplice.2:133
7135 #, no-wrap
7136 msgid "B<EBADF>"
7137 msgstr "B<EBADF>"
7138
7139 #. type: Plain text
7140 #: build/C/man2/perf_event_open.2:2578
7141 msgid ""
7142 "Returned if the I<group_fd> file descriptor is not valid, or, if "
7143 "B<PERF_FLAG_PID_CGROUP> is set, the cgroup file descriptor in I<pid> is not "
7144 "valid."
7145 msgstr ""
7146
7147 #. type: Plain text
7148 #: build/C/man2/perf_event_open.2:2583
7149 msgid "Returned if the I<attr> pointer points at an invalid memory address."
7150 msgstr ""
7151
7152 #. type: Plain text
7153 #: build/C/man2/perf_event_open.2:2609
7154 msgid ""
7155 "Returned if the specified event is invalid.  There are many possible reasons "
7156 "for this.  A not-exhaustive list: I<sample_freq> is higher than the maximum "
7157 "setting; the I<cpu> to monitor does not exist; I<read_format> is out of "
7158 "range; I<sample_type> is out of range; the I<flags> value is out of range; "
7159 "I<exclusive> or I<pinned> set and the event is not a group leader; the event "
7160 "I<config> values are out of range or set reserved bits; the generic event "
7161 "selected is not supported; or there is not enough room to add the selected "
7162 "event."
7163 msgstr ""
7164
7165 #. type: TP
7166 #: build/C/man2/perf_event_open.2:2609
7167 #, no-wrap
7168 msgid "B<EMFILE>"
7169 msgstr "B<EMFILE>"
7170
7171 #. type: Plain text
7172 #: build/C/man2/perf_event_open.2:2615
7173 msgid ""
7174 "Each opened event uses one file descriptor.  If a large number of events are "
7175 "opened the per-user file descriptor limit (often 1024) will be hit and no "
7176 "more events can be created."
7177 msgstr ""
7178
7179 #. type: Plain text
7180 #: build/C/man2/perf_event_open.2:2619
7181 msgid ""
7182 "Returned when the event involves a feature not supported by the current CPU."
7183 msgstr ""
7184
7185 #. type: TP
7186 #: build/C/man2/perf_event_open.2:2619 build/C/man2/quotactl.2:440
7187 #, no-wrap
7188 msgid "B<ENOENT>"
7189 msgstr "B<ENOENT>"
7190
7191 #. type: Plain text
7192 #: build/C/man2/perf_event_open.2:2626
7193 msgid ""
7194 "Returned if the I<type> setting is not valid.  This error is also returned "
7195 "for some unsupported generic events."
7196 msgstr ""
7197
7198 #. type: TP
7199 #: build/C/man2/perf_event_open.2:2626
7200 #, no-wrap
7201 msgid "B<ENOSPC>"
7202 msgstr "B<ENOSPC>"
7203
7204 #. type: Plain text
7205 #: build/C/man2/perf_event_open.2:2636
7206 msgid ""
7207 "Prior to Linux 3.3, if there was not enough room for the event, B<ENOSPC> "
7208 "was returned.  In Linux 3.3, this was changed to B<EINVAL>.  B<ENOSPC> is "
7209 "still returned if you try to add more breakpoint events than supported by "
7210 "the hardware."
7211 msgstr ""
7212
7213 #. type: Plain text
7214 #: build/C/man2/perf_event_open.2:2643
7215 msgid ""
7216 "Returned if B<PERF_SAMPLE_STACK_USER> is set in I<sample_type> and it is not "
7217 "supported by hardware."
7218 msgstr ""
7219
7220 #. type: Plain text
7221 #: build/C/man2/perf_event_open.2:2650
7222 msgid ""
7223 "Returned if an event requiring a specific hardware feature is requested but "
7224 "there is no hardware support.  This includes requesting low-skid events if "
7225 "not supported, branch tracing if it is not available, sampling if no PMU "
7226 "interrupt is available, and branch stacks for software events."
7227 msgstr ""
7228
7229 #. type: Plain text
7230 #: build/C/man2/perf_event_open.2:2655
7231 msgid ""
7232 "Returned on many (but not all) architectures when an unsupported "
7233 "I<exclude_hv>, I<exclude_idle>, I<exclude_user>, or I<exclude_kernel> "
7234 "setting is specified."
7235 msgstr ""
7236
7237 #. type: Plain text
7238 #: build/C/man2/perf_event_open.2:2663
7239 msgid ""
7240 "It can also happen, as with B<EACCES>, when the requested event requires "
7241 "B<CAP_SYS_ADMIN> permissions (or a more permissive perf_event paranoid "
7242 "setting).  This includes setting a breakpoint on a kernel address, and "
7243 "(since Linux 3.13) setting a kernel function-trace tracepoint."
7244 msgstr ""
7245
7246 #. type: Plain text
7247 #: build/C/man2/perf_event_open.2:2666
7248 msgid "Returned if attempting to attach to a process that does not exist."
7249 msgstr ""
7250
7251 #. type: SH
7252 #: build/C/man2/perf_event_open.2:2666
7253 #, no-wrap
7254 msgid "VERSION"
7255 msgstr "バージョン"
7256
7257 #. type: Plain text
7258 #: build/C/man2/perf_event_open.2:2671
7259 msgid ""
7260 "B<perf_event_open>()  was introduced in Linux 2.6.31 but was called "
7261 "B<perf_counter_open>().  It was renamed in Linux 2.6.32."
7262 msgstr ""
7263
7264 #. type: Plain text
7265 #: build/C/man2/perf_event_open.2:2676
7266 msgid ""
7267 "This B<perf_event_open>()  system call Linux- specific and should not be "
7268 "used in programs intended to be portable."
7269 msgstr ""
7270 "B<perf_event_open>() システムコールは Linux 固有であり、 移植を意図したプログ"
7271 "ラムで使用すべきではない。"
7272
7273 #. type: Plain text
7274 #: build/C/man2/perf_event_open.2:2680
7275 msgid ""
7276 "Glibc does not provide a wrapper for this system call; call it using "
7277 "B<syscall>(2).  See the example below."
7278 msgstr ""
7279 "glibc はこのシステムコールに対するラッパー関数を提供していない。 "
7280 "B<syscall>(2)  を使って呼び出すこと。 以下の例を参照。"
7281
7282 #. type: Plain text
7283 #: build/C/man2/perf_event_open.2:2686
7284 msgid ""
7285 "The official way of knowing if B<perf_event_open>()  support is enabled is "
7286 "checking for the existence of the file I</proc/sys/kernel/"
7287 "perf_event_paranoid>."
7288 msgstr ""
7289
7290 #. type: SH
7291 #: build/C/man2/perf_event_open.2:2686 build/C/man2/pivot_root.2:134
7292 #: build/C/man2/ptrace.2:2006
7293 #, no-wrap
7294 msgid "BUGS"
7295 msgstr "バグ"
7296
7297 #. type: Plain text
7298 #: build/C/man2/perf_event_open.2:2693
7299 msgid ""
7300 "The B<F_SETOWN_EX> option to B<fcntl>(2)  is needed to properly get overflow "
7301 "signals in threads.  This was introduced in Linux 2.6.32."
7302 msgstr ""
7303
7304 #. type: Plain text
7305 #: build/C/man2/perf_event_open.2:2701
7306 msgid ""
7307 "Prior to Linux 2.6.33 (at least for x86), the kernel did not check if events "
7308 "could be scheduled together until read time.  The same happens on all known "
7309 "kernels if the NMI watchdog is enabled.  This means to see if a given set of "
7310 "events works you have to B<perf_event_open>(), start, then read before you "
7311 "know for sure you can get valid measurements."
7312 msgstr ""
7313
7314 #. type: Plain text
7315 #: build/C/man2/perf_event_open.2:2705
7316 msgid ""
7317 "Prior to Linux 2.6.34, event constraints were not enforced by the kernel.  "
7318 "In that case, some events would silently return \"0\" if the kernel "
7319 "scheduled them in an improper counter slot."
7320 msgstr ""
7321
7322 #. type: Plain text
7323 #: build/C/man2/perf_event_open.2:2708
7324 msgid ""
7325 "Prior to Linux 2.6.34, there was a bug when multiplexing where the wrong "
7326 "results could be returned."
7327 msgstr ""
7328
7329 #. type: Plain text
7330 #: build/C/man2/perf_event_open.2:2711
7331 msgid ""
7332 "Kernels from Linux 2.6.35 to Linux 2.6.39 can quickly crash the kernel if "
7333 "\"inherit\" is enabled and many threads are started."
7334 msgstr ""
7335
7336 #. type: Plain text
7337 #: build/C/man2/perf_event_open.2:2715
7338 msgid ""
7339 "Prior to Linux 2.6.35, B<PERF_FORMAT_GROUP> did not work with attached "
7340 "processes."
7341 msgstr ""
7342
7343 #. type: Plain text
7344 #: build/C/man2/perf_event_open.2:2720
7345 msgid ""
7346 "In older Linux 2.6 versions, refreshing an event group leader refreshed all "
7347 "siblings, and refreshing with a parameter of 0 enabled infinite refresh.  "
7348 "This behavior is unsupported and should not be relied on."
7349 msgstr ""
7350
7351 #. type: Plain text
7352 #: build/C/man2/perf_event_open.2:2726
7353 msgid ""
7354 "There is a bug in the kernel code between Linux 2.6.36 and Linux 3.0 that "
7355 "ignores the \"watermark\" field and acts as if a wakeup_event was chosen if "
7356 "the union has a nonzero value in it."
7357 msgstr ""
7358
7359 #. type: Plain text
7360 #: build/C/man2/perf_event_open.2:2732
7361 msgid ""
7362 "From Linux 2.6.31 to Linux 3.4, the B<PERF_IOC_FLAG_GROUP> ioctl argument "
7363 "was broken and would repeatedly operate on the event specified rather than "
7364 "iterating across all sibling events in a group."
7365 msgstr ""
7366
7367 #. type: Plain text
7368 #: build/C/man2/perf_event_open.2:2743
7369 msgid ""
7370 "From Linux 3.4 to Linux 3.11, the mmap I<cap_usr_rdpmc> and I<cap_usr_time> "
7371 "bits mapped to the same location.  Code should migrate to the new "
7372 "I<cap_user_rdpmc> and I<cap_user_time> fields instead."
7373 msgstr ""
7374
7375 #. type: Plain text
7376 #: build/C/man2/perf_event_open.2:2748
7377 msgid ""
7378 "Always double-check your results! Various generalized events have had wrong "
7379 "values.  For example, retired branches measured the wrong thing on AMD "
7380 "machines until Linux 2.6.35."
7381 msgstr ""
7382
7383 #. type: SH
7384 #: build/C/man2/perf_event_open.2:2748 build/C/man2/process_vm_readv.2:311
7385 #: build/C/man2/splice.2:237 build/C/man2/tee.2:136
7386 #, no-wrap
7387 msgid "EXAMPLE"
7388 msgstr "例"
7389
7390 #. type: Plain text
7391 #: build/C/man2/perf_event_open.2:2752
7392 msgid ""
7393 "The following is a short example that measures the total instruction count "
7394 "of a call to B<printf>(3)."
7395 msgstr ""
7396
7397 #. type: Plain text
7398 #: build/C/man2/perf_event_open.2:2761
7399 #, no-wrap
7400 msgid ""
7401 "#include E<lt>stdlib.hE<gt>\n"
7402 "#include E<lt>stdio.hE<gt>\n"
7403 "#include E<lt>unistd.hE<gt>\n"
7404 "#include E<lt>string.hE<gt>\n"
7405 "#include E<lt>sys/ioctl.hE<gt>\n"
7406 "#include E<lt>linux/perf_event.hE<gt>\n"
7407 "#include E<lt>asm/unistd.hE<gt>\n"
7408 msgstr ""
7409 "#include E<lt>stdlib.hE<gt>\n"
7410 "#include E<lt>stdio.hE<gt>\n"
7411 "#include E<lt>unistd.hE<gt>\n"
7412 "#include E<lt>string.hE<gt>\n"
7413 "#include E<lt>sys/ioctl.hE<gt>\n"
7414 "#include E<lt>linux/perf_event.hE<gt>\n"
7415 "#include E<lt>asm/unistd.hE<gt>\n"
7416
7417 #. type: Plain text
7418 #: build/C/man2/perf_event_open.2:2767
7419 #, no-wrap
7420 msgid ""
7421 "static long\n"
7422 "perf_event_open(struct perf_event_attr *hw_event, pid_t pid,\n"
7423 "                int cpu, int group_fd, unsigned long flags)\n"
7424 "{\n"
7425 "    int ret;\n"
7426 msgstr ""
7427 "static long\n"
7428 "perf_event_open(struct perf_event_attr *hw_event, pid_t pid,\n"
7429 "                int cpu, int group_fd, unsigned long flags)\n"
7430 "{\n"
7431 "    int ret;\n"
7432
7433 #. type: Plain text
7434 #: build/C/man2/perf_event_open.2:2772
7435 #, no-wrap
7436 msgid ""
7437 "    ret = syscall(__NR_perf_event_open, hw_event, pid, cpu,\n"
7438 "                   group_fd, flags);\n"
7439 "    return ret;\n"
7440 "}\n"
7441 msgstr ""
7442 "    ret = syscall(__NR_perf_event_open, hw_event, pid, cpu,\n"
7443 "                   group_fd, flags);\n"
7444 "    return ret;\n"
7445 "}\n"
7446
7447 #. type: Plain text
7448 #: build/C/man2/perf_event_open.2:2779
7449 #, no-wrap
7450 msgid ""
7451 "int\n"
7452 "main(int argc, char **argv)\n"
7453 "{\n"
7454 "    struct perf_event_attr pe;\n"
7455 "    long long count;\n"
7456 "    int fd;\n"
7457 msgstr ""
7458 "int\n"
7459 "main(int argc, char **argv)\n"
7460 "{\n"
7461 "    struct perf_event_attr pe;\n"
7462 "    long long count;\n"
7463 "    int fd;\n"
7464
7465 #. type: Plain text
7466 #: build/C/man2/perf_event_open.2:2787
7467 #, no-wrap
7468 msgid ""
7469 "    memset(&pe, 0, sizeof(struct perf_event_attr));\n"
7470 "    pe.type = PERF_TYPE_HARDWARE;\n"
7471 "    pe.size = sizeof(struct perf_event_attr);\n"
7472 "    pe.config = PERF_COUNT_HW_INSTRUCTIONS;\n"
7473 "    pe.disabled = 1;\n"
7474 "    pe.exclude_kernel = 1;\n"
7475 "    pe.exclude_hv = 1;\n"
7476 msgstr ""
7477 "    memset(&pe, 0, sizeof(struct perf_event_attr));\n"
7478 "    pe.type = PERF_TYPE_HARDWARE;\n"
7479 "    pe.size = sizeof(struct perf_event_attr);\n"
7480 "    pe.config = PERF_COUNT_HW_INSTRUCTIONS;\n"
7481 "    pe.disabled = 1;\n"
7482 "    pe.exclude_kernel = 1;\n"
7483 "    pe.exclude_hv = 1;\n"
7484
7485 #. type: Plain text
7486 #: build/C/man2/perf_event_open.2:2793
7487 #, no-wrap
7488 msgid ""
7489 "    fd = perf_event_open(&pe, 0, -1, -1, 0);\n"
7490 "    if (fd == -1) {\n"
7491 "       fprintf(stderr, \"Error opening leader %llx\\en\", pe.config);\n"
7492 "       exit(EXIT_FAILURE);\n"
7493 "    }\n"
7494 msgstr ""
7495 "    fd = perf_event_open(&pe, 0, -1, -1, 0);\n"
7496 "    if (fd == -1) {\n"
7497 "       fprintf(stderr, \"Error opening leader %llx\\en\", pe.config);\n"
7498 "       exit(EXIT_FAILURE);\n"
7499 "    }\n"
7500
7501 #. type: Plain text
7502 #: build/C/man2/perf_event_open.2:2796
7503 #, no-wrap
7504 msgid ""
7505 "    ioctl(fd, PERF_EVENT_IOC_RESET, 0);\n"
7506 "    ioctl(fd, PERF_EVENT_IOC_ENABLE, 0);\n"
7507 msgstr ""
7508 "    ioctl(fd, PERF_EVENT_IOC_RESET, 0);\n"
7509 "    ioctl(fd, PERF_EVENT_IOC_ENABLE, 0);\n"
7510
7511 #. type: Plain text
7512 #: build/C/man2/perf_event_open.2:2798
7513 #, no-wrap
7514 msgid "    printf(\"Measuring instruction count for this printf\\en\");\n"
7515 msgstr "    printf(\"Measuring instruction count for this printf\\en\");\n"
7516
7517 #. type: Plain text
7518 #: build/C/man2/perf_event_open.2:2801
7519 #, no-wrap
7520 msgid ""
7521 "    ioctl(fd, PERF_EVENT_IOC_DISABLE, 0);\n"
7522 "    read(fd, &count, sizeof(long long));\n"
7523 msgstr ""
7524 "    ioctl(fd, PERF_EVENT_IOC_DISABLE, 0);\n"
7525 "    read(fd, &count, sizeof(long long));\n"
7526
7527 #. type: Plain text
7528 #: build/C/man2/perf_event_open.2:2803
7529 #, no-wrap
7530 msgid "    printf(\"Used %lld instructions\\en\", count);\n"
7531 msgstr "    printf(\"Used %lld instructions\\en\", count);\n"
7532
7533 #. type: Plain text
7534 #: build/C/man2/perf_event_open.2:2806
7535 #, no-wrap
7536 msgid ""
7537 "    close(fd);\n"
7538 "}\n"
7539 msgstr ""
7540 "    close(fd);\n"
7541 "}\n"
7542
7543 #. type: Plain text
7544 #: build/C/man2/perf_event_open.2:2812
7545 msgid "B<fcntl>(2), B<mmap>(2), B<open>(2), B<prctl>(2), B<read>(2)"
7546 msgstr "B<fcntl>(2), B<mmap>(2), B<open>(2), B<prctl>(2), B<read>(2)"
7547
7548 #. type: TH
7549 #: build/C/man2/perfmonctl.2:27
7550 #, no-wrap
7551 msgid "PERFMONCTL"
7552 msgstr "PERFMONCTL"
7553
7554 #. type: TH
7555 #: build/C/man2/perfmonctl.2:27
7556 #, no-wrap
7557 msgid "2013-02-13"
7558 msgstr "2013-02-13"
7559
7560 #. type: Plain text
7561 #: build/C/man2/perfmonctl.2:30
7562 msgid "perfmonctl - interface to IA-64 performance monitoring unit"
7563 msgstr ""
7564
7565 #. type: Plain text
7566 #: build/C/man2/perfmonctl.2:34
7567 #, no-wrap
7568 msgid ""
7569 "B<#include E<lt>syscall.hE<gt>>\n"
7570 "B<#include E<lt>perfmon.hE<gt>>\n"
7571 msgstr ""
7572 "B<#include E<lt>syscall.hE<gt>>\n"
7573 "B<#include E<lt>perfmon.hE<gt>>\n"
7574
7575 #. type: Plain text
7576 #: build/C/man2/perfmonctl.2:36
7577 #, no-wrap
7578 msgid "B<long perfmonctl(int >I<fd>B<, int >I<cmd>B<, void *>I<arg>B<, int >I<narg>B<);>\n"
7579 msgstr "B<long perfmonctl(int >I<fd>B<, int >I<cmd>B<, void *>I<arg>B<, int >I<narg>B<);>\n"
7580
7581 #. type: Plain text
7582 #: build/C/man2/perfmonctl.2:47
7583 msgid ""
7584 "The IA-64-specific B<perfmonctl>()  system call provides an interface to the "
7585 "PMU (performance monitoring unit).  The PMU consists of PMD (performance "
7586 "monitoring data) registers and PMC (performance monitoring control) "
7587 "registers, which gather hardware statistics."
7588 msgstr ""
7589
7590 #. type: Plain text
7591 #: build/C/man2/perfmonctl.2:57
7592 msgid ""
7593 "B<perfmonctl>()  applies the operation I<cmd> to the input arguments "
7594 "specified by I<arg>.  The number of arguments is defined by I<narg>.  The "
7595 "I<fd> argument specifies the perfmon context to operate on."
7596 msgstr ""
7597
7598 #. type: Plain text
7599 #: build/C/man2/perfmonctl.2:61
7600 msgid "Supported values for I<cmd> are:"
7601 msgstr ""
7602
7603 #. type: TP
7604 #: build/C/man2/perfmonctl.2:61
7605 #, no-wrap
7606 msgid "B<PFM_CREATE_CONTEXT>"
7607 msgstr "B<PFM_CREATE_CONTEXT>"
7608
7609 #. type: Plain text
7610 #: build/C/man2/perfmonctl.2:65
7611 #, no-wrap
7612 msgid "B<perfmonctl(int >I<fd>B<, PFM_CREATE_CONTEXT, pfarg_context_t *>I<ctxt>B<, 1);>\n"
7613 msgstr ""
7614
7615 #. type: Plain text
7616 #: build/C/man2/perfmonctl.2:67
7617 msgid "Set up a context."
7618 msgstr ""
7619
7620 #. type: Plain text
7621 #: build/C/man2/perfmonctl.2:74
7622 msgid ""
7623 "The I<fd> parameter is ignored.  A new perfmon context is created as "
7624 "specified in I<ctxt> and its file descriptor is returned in I<ctxt-"
7625 "E<gt>ctx_fd>."
7626 msgstr ""
7627
7628 #. type: Plain text
7629 #: build/C/man2/perfmonctl.2:86
7630 msgid ""
7631 "The file descriptor can be used in subsequent calls to B<perfmonctl>()  and "
7632 "can be used to read event notifications (type I<pfm_msg_t>)  using "
7633 "B<read>(2).  The file descriptor is pollable using B<select>(2), B<poll>(2), "
7634 "and B<epoll>(7)."
7635 msgstr ""
7636
7637 #. type: Plain text
7638 #: build/C/man2/perfmonctl.2:90
7639 msgid ""
7640 "The context can be destroyed by calling B<close>(2)  on the file descriptor."
7641 msgstr ""
7642
7643 #. type: TP
7644 #: build/C/man2/perfmonctl.2:90
7645 #, no-wrap
7646 msgid "B<PFM_WRITE_PMCS>"
7647 msgstr "B<PFM_WRITE_PMCS>"
7648
7649 #. type: Plain text
7650 #: build/C/man2/perfmonctl.2:95
7651 #, no-wrap
7652 msgid "B<perfmonctl(int >I<fd>B<, PFM_WRITE_PMCS, pfarg_reg_t *>I<pmcs>B<, n);>\n"
7653 msgstr "B<perfmonctl(int >I<fd>B<, PFM_WRITE_PMCS, pfarg_reg_t *>I<pmcs>B<, n);>\n"
7654
7655 #. type: Plain text
7656 #: build/C/man2/perfmonctl.2:97
7657 msgid "Set PMC registers."
7658 msgstr ""
7659
7660 #. type: TP
7661 #: build/C/man2/perfmonctl.2:97
7662 #, no-wrap
7663 msgid "B<PFM_WRITE_PMDS>"
7664 msgstr "B<PFM_WRITE_PMDS>"
7665
7666 #. type: Plain text
7667 #: build/C/man2/perfmonctl.2:101
7668 #, no-wrap
7669 msgid "B<perfmonctl(int >I<fd>B<, PFM_WRITE_PMDS, pfarg_reg_t *>I<pmds>B<, n);>\n"
7670 msgstr "B<perfmonctl(int >I<fd>B<, PFM_WRITE_PMDS, pfarg_reg_t *>I<pmds>B<, n);>\n"
7671
7672 #.  pfm_write_pmds()
7673 #. type: Plain text
7674 #: build/C/man2/perfmonctl.2:104
7675 msgid "Set PMD registers."
7676 msgstr ""
7677
7678 #. type: TP
7679 #: build/C/man2/perfmonctl.2:104
7680 #, no-wrap
7681 msgid "B<PFM_READ_PMDS>"
7682 msgstr "B<PFM_READ_PMDS>"
7683
7684 #. type: Plain text
7685 #: build/C/man2/perfmonctl.2:109
7686 #, no-wrap
7687 msgid "B<perfmonctl(int >I<fd>B<, PFM_READ_PMDS, pfarg_reg_t *>I<pmds>B<, n);>\n"
7688 msgstr "B<perfmonctl(int >I<fd>B<, PFM_READ_PMDS, pfarg_reg_t *>I<pmds>B<, n);>\n"
7689
7690 #. type: Plain text
7691 #: build/C/man2/perfmonctl.2:111
7692 msgid "Read PMD registers."
7693 msgstr ""
7694
7695 #. type: TP
7696 #: build/C/man2/perfmonctl.2:111
7697 #, no-wrap
7698 msgid "B<PFM_START>"
7699 msgstr "B<PFM_START>"
7700
7701 #.  .BI  "perfmonctl(int " fd ", PFM_START, arg, 1);
7702 #. type: Plain text
7703 #: build/C/man2/perfmonctl.2:117
7704 #, no-wrap
7705 msgid "B<perfmonctl(int >I<fd>B<, PFM_START, NULL, 0);>\n"
7706 msgstr "B<perfmonctl(int >I<fd>B<, PFM_START, NULL, 0);>\n"
7707
7708 #. type: Plain text
7709 #: build/C/man2/perfmonctl.2:119
7710 msgid "Start monitoring."
7711 msgstr ""
7712
7713 #. type: TP
7714 #: build/C/man2/perfmonctl.2:119
7715 #, no-wrap
7716 msgid "B<PFM_STOP>"
7717 msgstr "B<PFM_STOP>"
7718
7719 #. type: Plain text
7720 #: build/C/man2/perfmonctl.2:124
7721 #, no-wrap
7722 msgid "B<perfmonctl(int >I<fd>B<, PFM_STOP, NULL, 0);>\n"
7723 msgstr "B<perfmonctl(int >I<fd>B<, PFM_STOP, NULL, 0);>\n"
7724
7725 #. type: Plain text
7726 #: build/C/man2/perfmonctl.2:126
7727 msgid "Stop monitoring."
7728 msgstr ""
7729
7730 #. type: TP
7731 #: build/C/man2/perfmonctl.2:126
7732 #, no-wrap
7733 msgid "B<PFM_LOAD_CONTEXT>"
7734 msgstr "B<PFM_LOAD_CONTEXT>"
7735
7736 #. type: Plain text
7737 #: build/C/man2/perfmonctl.2:131
7738 #, no-wrap
7739 msgid "B<perfmonctl(int >I<fd>B<, PFM_LOAD_CONTEXT, pfarg_load_t *>I<largs>B<, 1);>\n"
7740 msgstr "B<perfmonctl(int >I<fd>B<, PFM_LOAD_CONTEXT, pfarg_load_t *>I<largs>B<, 1);>\n"
7741
7742 #. type: Plain text
7743 #: build/C/man2/perfmonctl.2:133
7744 msgid "Attach the context to a thread."
7745 msgstr ""
7746
7747 #. type: TP
7748 #: build/C/man2/perfmonctl.2:133
7749 #, no-wrap
7750 msgid "B<PFM_UNLOAD_CONTEXT>"
7751 msgstr "B<PFM_UNLOAD_CONTEXT>"
7752
7753 #. type: Plain text
7754 #: build/C/man2/perfmonctl.2:138
7755 #, no-wrap
7756 msgid "B<perfmonctl(int >I<fd>B<, PFM_UNLOAD_CONTEXT, NULL, 0);>\n"
7757 msgstr "B<perfmonctl(int >I<fd>B<, PFM_UNLOAD_CONTEXT, NULL, 0);>\n"
7758
7759 #. type: Plain text
7760 #: build/C/man2/perfmonctl.2:140
7761 msgid "Detach the context from a thread."
7762 msgstr ""
7763
7764 #. type: TP
7765 #: build/C/man2/perfmonctl.2:140
7766 #, no-wrap
7767 msgid "B<PFM_RESTART>"
7768 msgstr "B<PFM_RESTART>"
7769
7770 #. type: Plain text
7771 #: build/C/man2/perfmonctl.2:145
7772 #, no-wrap
7773 msgid "B<perfmonctl(int >I<fd>B<, PFM_RESTART, NULL, 0);>\n"
7774 msgstr "B<perfmonctl(int >I<fd>B<, PFM_RESTART, NULL, 0);>\n"
7775
7776 #. type: Plain text
7777 #: build/C/man2/perfmonctl.2:147
7778 msgid "Restart monitoring after receiving an overflow notification."
7779 msgstr ""
7780
7781 #. type: TP
7782 #: build/C/man2/perfmonctl.2:147
7783 #, no-wrap
7784 msgid "B<PFM_GET_FEATURES>"
7785 msgstr "B<PFM_GET_FEATURES>"
7786
7787 #. type: Plain text
7788 #: build/C/man2/perfmonctl.2:152
7789 #, no-wrap
7790 msgid "B<perfmonctl(int >I<fd>B<, PFM_GET_FEARURES, pfarg_features_t *>I<arg>B<, 1);>\n"
7791 msgstr "B<perfmonctl(int >I<fd>B<, PFM_GET_FEARURES, pfarg_features_t *>I<arg>B<, 1);>\n"
7792
7793 #. type: TP
7794 #: build/C/man2/perfmonctl.2:153
7795 #, no-wrap
7796 msgid "B<PFM_DEBUG>"
7797 msgstr "B<PFM_DEBUG>"
7798
7799 #. type: Plain text
7800 #: build/C/man2/perfmonctl.2:158
7801 #, no-wrap
7802 msgid "B<perfmonctl(int >I<fd>B<, PFM_DEBUG, >I<val>B<, 0);>\n"
7803 msgstr "B<perfmonctl(int >I<fd>B<, PFM_DEBUG, >I<val>B<, 0);>\n"
7804
7805 #. type: Plain text
7806 #: build/C/man2/perfmonctl.2:162
7807 msgid "If I<val> is nonzero, enable debugging mode, otherwise disable."
7808 msgstr ""
7809
7810 #. type: TP
7811 #: build/C/man2/perfmonctl.2:162
7812 #, no-wrap
7813 msgid "B<PFM_GET_PMC_RESET_VAL>"
7814 msgstr "B<PFM_GET_PMC_RESET_VAL>"
7815
7816 #. type: Plain text
7817 #: build/C/man2/perfmonctl.2:167
7818 #, no-wrap
7819 msgid "B<perfmonctl(int >I<fd>B<, PFM_GET_PMC_RESET_VAL, pfarg_reg_t * >I<req>B<, n);>\n"
7820 msgstr "B<perfmonctl(int >I<fd>B<, PFM_GET_PMC_RESET_VAL, pfarg_reg_t * >I<req>B<, n);>\n"
7821
7822 #
7823 #
7824 #
7825 #.  .TP
7826 #.  .B PFM_CREATE_EVTSETS
7827 #.  create or modify event sets
7828 #.  .nf
7829 #.  .BI  "perfmonctl(int " fd ", PFM_CREATE_EVTSETS, pfarg_setdesc_t *desc , n);
7830 #.  .fi
7831 #.  .TP
7832 #.  .B PFM_DELETE_EVTSETS
7833 #.  delete event sets
7834 #.  .nf
7835 #.  .BI  "perfmonctl(int " fd ", PFM_DELETE_EVTSET, pfarg_setdesc_t *desc , n);
7836 #.  .fi
7837 #.  .TP
7838 #.  .B PFM_GETINFO_EVTSETS
7839 #.  get information about event sets
7840 #.  .nf
7841 #.  .BI  "perfmonctl(int " fd ", PFM_GETINFO_EVTSETS, pfarg_setinfo_t *info, n);
7842 #.  .fi
7843 #. type: Plain text
7844 #: build/C/man2/perfmonctl.2:190
7845 msgid "Reset PMC registers to default values."
7846 msgstr ""
7847
7848 #. type: Plain text
7849 #: build/C/man2/perfmonctl.2:196
7850 msgid ""
7851 "B<perfmonctl>()  returns zero when the operation is successful.  On error, "
7852 "-1 is returned and I<errno> is set to indicate the cause of the error."
7853 msgstr ""
7854
7855 #. type: Plain text
7856 #: build/C/man2/perfmonctl.2:199
7857 msgid "B<perfmonctl>()  is available since Linux 2.4."
7858 msgstr ""
7859
7860 #. type: Plain text
7861 #: build/C/man2/perfmonctl.2:202
7862 msgid ""
7863 "B<perfmonctl>()  is Linux-specific and is available only on the IA-64 "
7864 "architecture."
7865 msgstr ""
7866
7867 #. type: Plain text
7868 #: build/C/man2/perfmonctl.2:207
7869 msgid "B<gprof>(1)"
7870 msgstr "B<gprof>(1)"
7871
7872 #. type: Plain text
7873 #: build/C/man2/perfmonctl.2:208
7874 msgid "The perfmon2 interface specification"
7875 msgstr ""
7876
7877 #. type: TH
7878 #: build/C/man2/personality.2:32
7879 #, no-wrap
7880 msgid "PERSONALITY"
7881 msgstr "PERSONALITY"
7882
7883 #. type: TH
7884 #: build/C/man2/personality.2:32
7885 #, no-wrap
7886 msgid "2014-04-15"
7887 msgstr "2014-04-15"
7888
7889 #. type: Plain text
7890 #: build/C/man2/personality.2:35
7891 msgid "personality - set the process execution domain"
7892 msgstr "personality - プロセスを実行するドメインを設定する"
7893
7894 #. type: Plain text
7895 #: build/C/man2/personality.2:37
7896 msgid "B<#include E<lt>sys/personality.hE<gt>>"
7897 msgstr "B<#include E<lt>sys/personality.hE<gt>>"
7898
7899 #. type: Plain text
7900 #: build/C/man2/personality.2:39
7901 msgid "B<int personality(unsigned long >I<persona>B<);>"
7902 msgstr "B<int personality(unsigned long >I<persona>B<);>"
7903
7904 #. type: Plain text
7905 #: build/C/man2/personality.2:47
7906 msgid ""
7907 "Linux supports different execution domains, or personalities, for each "
7908 "process.  Among other things, execution domains tell Linux how to map signal "
7909 "numbers into signal actions.  The execution domain system allows Linux to "
7910 "provide limited support for binaries compiled under other UNIX-like "
7911 "operating systems."
7912 msgstr ""
7913 "Linux は、プロセス毎の異なる実行ドメイン、すなわち パーソナリティ "
7914 "(personality) をサポートしている。 実行ドメインは Linux にシグナル番号にどの"
7915 "シグナルを割り付けるかを 教えたりする。また、実行ドメイン・システムにより、 "
7916 "Linux は、 他の UNIX 風のオペレーティングシステムでコンパイルされたバイナリに"
7917 "対する限定的なサポートを提供している。"
7918
7919 #. type: Plain text
7920 #: build/C/man2/personality.2:59
7921 msgid ""
7922 "If I<persona> is not 0xffffffff, then B<personality>()  sets the caller's "
7923 "execution domain to the value specified by I<persona>.  Specifying "
7924 "I<persona> as 0xffffffff provides a way of retrieving the current persona "
7925 "without changing it."
7926 msgstr ""
7927 "I<persona> が 0xffffffff 以外の場合、 B<personality>() は呼び出し元の実行ドメ"
7928 "インを I<persona> で指定された値に設定する。 I<persona> に 0xffffffff を指定"
7929 "すると、変更を行わず、現在の persona 値を取得できる。"
7930
7931 #. type: Plain text
7932 #: build/C/man2/personality.2:62
7933 msgid ""
7934 "A list of the available execution domains can be found in I<E<lt>sys/"
7935 "personality.hE<gt>>."
7936 msgstr ""
7937 "利用可能な実行ドメインのリストは I<E<lt>sys/personality.hE<gt>> にある。"
7938
7939 #. type: Plain text
7940 #: build/C/man2/personality.2:69
7941 msgid ""
7942 "On success, the previous I<persona> is returned.  On error, -1 is returned, "
7943 "and I<errno> is set appropriately."
7944 msgstr ""
7945 "成功した場合、以前の I<persona> が返される。エラーの場合は、-1 が返され、 "
7946 "I<errno> が適切に設定される。"
7947
7948 #. type: Plain text
7949 #: build/C/man2/personality.2:73
7950 msgid "The kernel was unable to change the personality."
7951 msgstr "カーネルがパーソナリティを変更できなかった。"
7952
7953 #. type: Plain text
7954 #: build/C/man2/personality.2:76
7955 msgid ""
7956 "B<personality>()  is Linux-specific and should not be used in programs "
7957 "intended to be portable."
7958 msgstr ""
7959 "B<personality>()  は Linux 固有であり、移植を意図したプログラムで使用すべきで"
7960 "はない。"
7961
7962 #. type: TH
7963 #: build/C/man2/pivot_root.2:10
7964 #, no-wrap
7965 msgid "PIVOT_ROOT"
7966 msgstr "PIVOT_ROOT"
7967
7968 #. type: Plain text
7969 #: build/C/man2/pivot_root.2:13
7970 msgid "pivot_root - change the root filesystem"
7971 msgstr "pivot_root - root ファイルシステムを変更する"
7972
7973 #. type: Plain text
7974 #: build/C/man2/pivot_root.2:15
7975 msgid ""
7976 "B<int pivot_root(const char *>I<new_root>B<, const char *>I<put_old>B<);>"
7977 msgstr ""
7978 "B<int pivot_root(const char *>I<new_root>B<, const char *>I<put_old>B<);>"
7979
7980 #.  The
7981 #.  .B CAP_SYS_ADMIN
7982 #.  capability is required.
7983 #. type: Plain text
7984 #: build/C/man2/pivot_root.2:27
7985 msgid ""
7986 "B<pivot_root>()  moves the root filesystem of the calling process to the "
7987 "directory I<put_old> and makes I<new_root> the new root filesystem of the "
7988 "calling process."
7989 msgstr ""
7990 "B<pivot_root>()  は呼び出し元のプロセスの root ファイルシステムを I<put_old> "
7991 "ディレクトリに移動し、 I<new_root> を呼び出し元のプロセスの新しい root ファイ"
7992 "ルシステムにする。"
7993
7994 #. type: Plain text
7995 #: build/C/man2/pivot_root.2:34
7996 msgid ""
7997 "The typical use of B<pivot_root>()  is during system startup, when the "
7998 "system mounts a temporary root filesystem (e.g., an B<initrd>), then mounts "
7999 "the real root filesystem, and eventually turns the latter into the current "
8000 "root of all relevant processes or threads."
8001 msgstr ""
8002 "B<pivot_root>()  の典型的な利用法は、システムの起動中にシステムが一時的な "
8003 "root ファイルシステム (例えば B<initrd>)  をマウントし、これに続いて本当の "
8004 "root ファイルシステムをマウントし、 後者を必要な全てのプロセス・スレッドの カ"
8005 "レント root に変更するような場合である。"
8006
8007 #. type: Plain text
8008 #: build/C/man2/pivot_root.2:46
8009 msgid ""
8010 "B<pivot_root>()  may or may not change the current root and the current "
8011 "working directory of any processes or threads which use the old root "
8012 "directory.  The caller of B<pivot_root>()  must ensure that processes with "
8013 "root or current working directory at the old root operate correctly in "
8014 "either case.  An easy way to ensure this is to change their root and current "
8015 "working directory to I<new_root> before invoking B<pivot_root>()."
8016 msgstr ""
8017 "古い root ディレクトリを使っていた全てのプロセスやスレッドの カレント root と"
8018 "カレントワーキングディレクトリを、 B<pivot_root>()  が変更するかどうかはわか"
8019 "らない。 B<pivot_root>()  の呼びだしプロセスは、古い root やカレントワーキン"
8020 "グディレクトリを使っていた プロセスが、いずれの場合でも正しく動作することを保"
8021 "証しなければならない。 これを簡単に行うには、それらのプロセスの root と カレ"
8022 "ントワーキングディレクトリを B<pivot_root>()  を呼び出す前に I<new_root> に変"
8023 "更しておくことである。"
8024
8025 #. type: Plain text
8026 #: build/C/man2/pivot_root.2:64
8027 msgid ""
8028 "The paragraph above is intentionally vague because the implementation of "
8029 "B<pivot_root>()  may change in the future.  At the time of writing, "
8030 "B<pivot_root>()  changes root and current working directory of each process "
8031 "or thread to I<new_root> if they point to the old root directory.  This is "
8032 "necessary in order to prevent kernel threads from keeping the old root "
8033 "directory busy with their root and current working directory, even if they "
8034 "never access the filesystem in any way.  In the future, there may be a "
8035 "mechanism for kernel threads to explicitly relinquish any access to the "
8036 "filesystem, such that this fairly intrusive mechanism can be removed from "
8037 "B<pivot_root>()."
8038 msgstr ""
8039 "上記の段落は、将来 B<pivot_root>()  が変更されるかも知れないことを鑑みて、わ"
8040 "ざと曖昧に書いてある。 本ページを記述している時点では、 B<pivot_root>()  は古"
8041 "い root ディレクトリを用いている全てのプロセス・スレッドの root と カレント"
8042 "ワーキングディレクトリを I<new_root> に変更する。これはカーネルのスレッドが古"
8043 "い root ディレクトリを busy 状態にしないために必要である。これらのスレッドが "
8044 "古いディレクトリを root やカレントワーキングディレクトリとしていると、 ファイ"
8045 "ルシステムに一切アクセスしない場合でも 古い root が busy になってしまうからで"
8046 "ある。 将来は、カーネルスレッドがあらゆるファイルシステムへのアクセスを 明示"
8047 "的に放棄するメカニズムができ、このでしゃばりな機能は B<pivot_root>()  から削"
8048 "除されるかもしれない。"
8049
8050 #. type: Plain text
8051 #: build/C/man2/pivot_root.2:72
8052 msgid ""
8053 "Note that this also applies to the calling process: B<pivot_root>()  may or "
8054 "may not affect its current working directory.  It is therefore recommended "
8055 "to call B<chdir(\"/\")> immediately after B<pivot_root>()."
8056 msgstr ""
8057 "これは呼び出し元のプロセスについても当てはまることに注意。 B<pivot_root>()  "
8058 "がカレントプロセスのカレントワーキングディレクトリに影響するかどうかは 分から"
8059 "ない。したがって B<pivot_root>()  の直後に B<chdir(\"/\")> を呼び出すとよい。"
8060
8061 #. type: Plain text
8062 #: build/C/man2/pivot_root.2:74
8063 msgid "The following restrictions apply to I<new_root> and I<put_old>:"
8064 msgstr "I<new_root> および I<put_old> には以下の制限がある:"
8065
8066 #. type: IP
8067 #: build/C/man2/pivot_root.2:74 build/C/man2/pivot_root.2:76
8068 #: build/C/man2/pivot_root.2:79 build/C/man2/pivot_root.2:83
8069 #, no-wrap
8070 msgid "-"
8071 msgstr "-"
8072
8073 #. type: Plain text
8074 #: build/C/man2/pivot_root.2:76
8075 msgid "They must be directories."
8076 msgstr "ディレクトリでなければならない。"
8077
8078 #. type: Plain text
8079 #: build/C/man2/pivot_root.2:79
8080 msgid ""
8081 "I<new_root> and I<put_old> must not be on the same filesystem as the current "
8082 "root."
8083 msgstr ""
8084 "I<new_root> と I<put_old> は現在の root と同じファイルシステムにあってはなら"
8085 "ない。"
8086
8087 #. type: Plain text
8088 #: build/C/man2/pivot_root.2:83
8089 msgid ""
8090 "I<put_old> must be underneath I<new_root>, that is, adding a nonzero number "
8091 "of I</..> to the string pointed to by I<put_old> must yield the same "
8092 "directory as I<new_root>."
8093 msgstr ""
8094 "I<put_old> は I<new_root> 以下になければならない。すなわち I<put_old> を差す"
8095 "文字列に 1 個以上の I<../> を付けることによって I<new_root> と同じディレクト"
8096 "リが得られなければならない。"
8097
8098 #. type: Plain text
8099 #: build/C/man2/pivot_root.2:85
8100 msgid "No other filesystem may be mounted on I<put_old>."
8101 msgstr "他のファイルシステムが I<put_old> にマウントされていてはならない。"
8102
8103 #. type: Plain text
8104 #: build/C/man2/pivot_root.2:89
8105 msgid "See also B<pivot_root>(8)  for additional usage examples."
8106 msgstr "利用例については B<pivot_root>(8)  を参照のこと。"
8107
8108 #. type: Plain text
8109 #: build/C/man2/pivot_root.2:96
8110 msgid ""
8111 "If the current root is not a mount point (e.g., after B<chroot>(2)  or "
8112 "B<pivot_root>(), see also below), not the old root directory, but the mount "
8113 "point of that filesystem is mounted on I<put_old>."
8114 msgstr ""
8115 "現在の root がマウントポイントではない (B<chroot>(2)  や B<pivot_root>()  の"
8116 "後など。以下も参照) 場合、 古い root ディレクトリではなく、 そのファイルシス"
8117 "テムのマウントポイントが I<put_old> にマウントされる。"
8118
8119 #. type: Plain text
8120 #: build/C/man2/pivot_root.2:101
8121 msgid ""
8122 "I<new_root> does not have to be a mount point.  In this case, I</proc/"
8123 "mounts> will show the mount point of the filesystem containing I<new_root> "
8124 "as root (I</>)."
8125 msgstr ""
8126 "I<new_root> はマウントポイントでなくてもよい。 この場合 I</proc/mounts> は、 "
8127 "I<new_root> を root (I</>)  とするファイルシステムのマウントポイントを表示す"
8128 "る。"
8129
8130 #. type: Plain text
8131 #: build/C/man2/pivot_root.2:110
8132 msgid ""
8133 "B<pivot_root>()  may return (in I<errno>) any of the errors returned by "
8134 "B<stat>(2).  Additionally, it may return:"
8135 msgstr ""
8136 "B<pivot_root>()  は B<stat>(2)  の返すあらゆるエラーを (I<errno> に) 返す可能"
8137 "性がある。さらに以下を返すことがある:"
8138
8139 #. type: Plain text
8140 #: build/C/man2/pivot_root.2:114
8141 msgid ""
8142 "I<new_root> or I<put_old> are on the current root filesystem, or a "
8143 "filesystem is already mounted on I<put_old>."
8144 msgstr ""
8145 "I<new_root> または I<put_old> が、現在の root ファイルシステム上にあるか、既"
8146 "に I<put_old> になんらかのファイルシステムがマウントされている。"
8147
8148 #. type: Plain text
8149 #: build/C/man2/pivot_root.2:117
8150 msgid "I<put_old> is not underneath I<new_root>."
8151 msgstr "I<put_old> が I<new_root> の下層にない。"
8152
8153 #. type: TP
8154 #: build/C/man2/pivot_root.2:117
8155 #, no-wrap
8156 msgid "B<ENOTDIR>"
8157 msgstr "B<ENOTDIR>"
8158
8159 #. type: Plain text
8160 #: build/C/man2/pivot_root.2:120
8161 msgid "I<new_root> or I<put_old> is not a directory."
8162 msgstr "I<new_root> または I<put_old> がディレクトリでない。"
8163
8164 #. type: Plain text
8165 #: build/C/man2/pivot_root.2:125
8166 msgid "The calling process does not have the B<CAP_SYS_ADMIN> capability."
8167 msgstr "呼び出し元のプロセスが B<CAP_SYS_ADMIN> ケーパビリティを持っていない。"
8168
8169 #. type: Plain text
8170 #: build/C/man2/pivot_root.2:128
8171 msgid "B<pivot_root>()  was introduced in Linux 2.3.41."
8172 msgstr "B<pivot_root>()  は Linux 2.3.41 で導入された。"
8173
8174 #. type: Plain text
8175 #: build/C/man2/pivot_root.2:131
8176 msgid "B<pivot_root>()  is Linux-specific and hence is not portable."
8177 msgstr "B<pivot_root>()  は Linux に固有のものなので、移植性はない。"
8178
8179 #. type: Plain text
8180 #: build/C/man2/pivot_root.2:138
8181 msgid ""
8182 "B<pivot_root>()  should not have to change root and current working "
8183 "directory of all other processes in the system."
8184 msgstr ""
8185 "B<pivot_root>()  はシステムの他のプロセス全ての root と カレントワーキング"
8186 "ディレクトリとを変更しなくてもよいはずである。"
8187
8188 #. type: Plain text
8189 #: build/C/man2/pivot_root.2:143
8190 msgid ""
8191 "Some of the more obscure uses of B<pivot_root>()  may quickly lead to "
8192 "insanity."
8193 msgstr ""
8194 "B<pivot_root>()  の使い方がもうちょっと曖昧になると、 あっという間にわけのわ"
8195 "からない状態になってしまうだろう"
8196
8197 #. type: Plain text
8198 #: build/C/man2/pivot_root.2:148
8199 msgid "B<chdir>(2), B<chroot>(2), B<stat>(2), B<initrd>(4), B<pivot_root>(8)"
8200 msgstr "B<chdir>(2), B<chroot>(2), B<stat>(2), B<initrd>(4), B<pivot_root>(8)"
8201
8202 #. type: TH
8203 #: build/C/man2/process_vm_readv.2:29
8204 #, no-wrap
8205 msgid "PROCESS_VM_READV"
8206 msgstr "PROCESS_VM_READV"
8207
8208 #. type: Plain text
8209 #: build/C/man2/process_vm_readv.2:32
8210 msgid ""
8211 "process_vm_readv, process_vm_writev - transfer data between process address "
8212 "spaces"
8213 msgstr ""
8214 "process_vm_readv, process_vm_writev - プロセスのアドレス空間間でデータを転送"
8215 "する"
8216
8217 #. type: Plain text
8218 #: build/C/man2/process_vm_readv.2:35
8219 #, no-wrap
8220 msgid "B<#include E<lt>sys/uio.hE<gt>>\n"
8221 msgstr "B<#include E<lt>sys/uio.hE<gt>>\n"
8222
8223 #. type: Plain text
8224 #: build/C/man2/process_vm_readv.2:42
8225 #, no-wrap
8226 msgid ""
8227 "B<ssize_t process_vm_readv(pid_t >I<pid>B<,>\n"
8228 "B<                         const struct iovec *>I<local_iov>B<,>\n"
8229 "B<                         unsigned long >I<liovcnt>B<,>\n"
8230 "B<                         const struct iovec *>I<remote_iov>B<,>\n"
8231 "B<                         unsigned long >I<riovcnt>B<,>\n"
8232 "B<                         unsigned long >I<flags>B<);>\n"
8233 msgstr ""
8234 "B<ssize_t process_vm_readv(pid_t >I<pid>B<,>\n"
8235 "B<                         const struct iovec *>I<local_iov>B<,>\n"
8236 "B<                         unsigned long >I<liovcnt>B<,>\n"
8237 "B<                         const struct iovec *>I<remote_iov>B<,>\n"
8238 "B<                         unsigned long >I<riovcnt>B<,>\n"
8239 "B<                         unsigned long >I<flags>B<);>\n"
8240
8241 #. type: Plain text
8242 #: build/C/man2/process_vm_readv.2:49
8243 #, no-wrap
8244 msgid ""
8245 "B<ssize_t process_vm_writev(pid_t >I<pid>B<,>\n"
8246 "B<                          const struct iovec *>I<local_iov>B<,>\n"
8247 "B<                          unsigned long >I<liovcnt>B<,>\n"
8248 "B<                          const struct iovec *>I<remote_iov>B<,>\n"
8249 "B<                          unsigned long >I<riovcnt>B<,>\n"
8250 "B<                          unsigned long >I<flags>B<);>\n"
8251 msgstr ""
8252 "B<ssize_t process_vm_writev(pid_t >I<pid>B<,>\n"
8253 "B<                          const struct iovec *>I<local_iov>B<,>\n"
8254 "B<                          unsigned long >I<liovcnt>B<,>\n"
8255 "B<                          const struct iovec *>I<remote_iov>B<,>\n"
8256 "B<                          unsigned long >I<riovcnt>B<,>\n"
8257 "B<                          unsigned long >I<flags>B<);>\n"
8258
8259 #. type: Plain text
8260 #: build/C/man2/process_vm_readv.2:54
8261 msgid ""
8262 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
8263 msgstr ""
8264
8265 #. type: Plain text
8266 #: build/C/man2/process_vm_readv.2:58
8267 msgid "B<process_vm_readv>(), B<process_vm_writev>():"
8268 msgstr "B<process_vm_readv>(), B<process_vm_writev>():"
8269
8270 #. type: Plain text
8271 #: build/C/man2/process_vm_readv.2:62
8272 msgid "B<_GNU_SOURCE>"
8273 msgstr "B<_GNU_SOURCE>"
8274
8275 #. type: Plain text
8276 #: build/C/man2/process_vm_readv.2:73
8277 msgid ""
8278 "These system calls transfer data between the address space of the calling "
8279 "process (\"the local process\") and the process identified by I<pid> (\"the "
8280 "remote process\").  The data moves directly between the address spaces of "
8281 "the two processes, without passing through kernel space."
8282 msgstr ""
8283
8284 #. type: Plain text
8285 #: build/C/man2/process_vm_readv.2:98
8286 msgid ""
8287 "The B<process_vm_readv>()  system call transfers data from the remote "
8288 "process to the local process.  The data to be transferred is identified by "
8289 "I<remote_iov> and I<riovcnt>: I<remote_iov> is a pointer to an array "
8290 "describing address ranges in the process I<pid>, and I<riovcnt> specifies "
8291 "the number of elements in I<remote_iov>.  The data is transferred to the "
8292 "locations specified by I<local_iov> and I<liovcnt>: I<local_iov> is a "
8293 "pointer to an array describing address ranges in the calling process, and "
8294 "I<liovcnt> specifies the number of elements in I<local_iov>."
8295 msgstr ""
8296
8297 #. type: Plain text
8298 #: build/C/man2/process_vm_readv.2:112
8299 msgid ""
8300 "The B<process_vm_writev>()  system call is the converse of "
8301 "B<process_vm_readv>()\\(emit transfers data from the local process to the "
8302 "remote process.  Other than the direction of the transfer, the arguments "
8303 "I<liovcnt>, I<local_iov>, I<riovcnt>, and I<remote_iov> have the same "
8304 "meaning as for B<process_vm_readv>()."
8305 msgstr ""
8306
8307 #. type: Plain text
8308 #: build/C/man2/process_vm_readv.2:122
8309 msgid ""
8310 "The I<local_iov> and I<remote_iov> arguments point to an array of I<iovec> "
8311 "structures, defined in I<E<lt>sys/uio.hE<gt>> as:"
8312 msgstr ""
8313 "引き数 I<local_iov> と I<remote_iov> は I<iovec> 構造体の配列へのポイン\n"
8314 "タである。 I<iovec> 構造体は I<E<lt>sys/uio.hE<gt>> で以下のように定義\n"
8315 "されている:"
8316
8317 #. type: Plain text
8318 #: build/C/man2/process_vm_readv.2:129
8319 #, no-wrap
8320 msgid ""
8321 "struct iovec {\n"
8322 "    void  *iov_base;    /* Starting address */\n"
8323 "    size_t iov_len;     /* Number of bytes to transfer */\n"
8324 "};\n"
8325 msgstr ""
8326 "struct iovec {\n"
8327 "    void  *iov_base;    /* Starting address */\n"
8328 "    size_t iov_len;     /* Number of bytes to transfer */\n"
8329 "};\n"
8330
8331 #. type: Plain text
8332 #: build/C/man2/process_vm_readv.2:145
8333 msgid ""
8334 "Buffers are processed in array order.  This means that "
8335 "B<process_vm_readv>()  completely fills I<local_iov[0]> before proceeding to "
8336 "I<local_iov[1]>, and so on.  Likewise, I<remote_iov[0]> is completely read "
8337 "before proceeding to I<remote_iov[1]>, and so on."
8338 msgstr ""
8339 "バッファは配列の順序で処理される。これは、 B<process_vm_readv>() が\n"
8340 "I<local_iov>[0] が完全に一杯になるまでデータを詰めてから、\n"
8341 "I<local_iov>[1] に進むといったことを意味する。同様に、\n"
8342 "I<remote_iov>[0] を完全に読み出してから I<remote_iov>[1] に進み、\n"
8343 "以降も同様である。"
8344
8345 #. type: Plain text
8346 #: build/C/man2/process_vm_readv.2:156
8347 msgid ""
8348 "Similarly, B<process_vm_writev>()  writes out the entire contents of "
8349 "I<local_iov[0]> before proceeding to I<local_iov[1]>, and it completely "
8350 "fills I<remote_iov[0]> before proceeding to I<remote_iov[1]>."
8351 msgstr ""
8352
8353 #. type: Plain text
8354 #: build/C/man2/process_vm_readv.2:164
8355 msgid ""
8356 "The lengths of I<remote_iov[i].iov_len> and I<local_iov[i].iov_len> do not "
8357 "have to be the same.  Thus, it is possible to split a single local buffer "
8358 "into multiple remote buffers, or vice versa."
8359 msgstr ""
8360
8361 #. type: Plain text
8362 #: build/C/man2/process_vm_readv.2:168
8363 msgid "The I<flags> argument is currently unused and must be set to 0."
8364 msgstr "I<flags> 引き数は現在使用されておらず、 0 を設定しなければならない。"
8365
8366 #.  In time, glibc might provide a wrapper that works around this limit,
8367 #.  as is done for readv()/writev()
8368 #. type: Plain text
8369 #: build/C/man2/process_vm_readv.2:181
8370 msgid ""
8371 "The values specified in the I<liovcnt> and I<riovcnt> arguments must be less "
8372 "than or equal to B<IOV_MAX> (defined in I<E<lt>limits.hE<gt>> or accessible "
8373 "via the call I<sysconf(_SC_IOV_MAX)>)."
8374 msgstr ""
8375
8376 #. type: Plain text
8377 #: build/C/man2/process_vm_readv.2:191
8378 msgid ""
8379 "The count arguments and I<local_iov> are checked before doing any "
8380 "transfers.  If the counts are too big, or I<local_iov> is invalid, or the "
8381 "addresses refer to regions that are inaccessible to the local process, none "
8382 "of the vectors will be processed and an error will be returned immediately."
8383 msgstr ""
8384
8385 #. type: Plain text
8386 #: build/C/man2/process_vm_readv.2:211
8387 msgid ""
8388 "Note, however, that these system calls do not check the memory regions in "
8389 "the remote process until just before doing the read/write.  Consequently, a "
8390 "partial read/write (see RETURN VALUE)  may result if one of the "
8391 "I<remote_iov> elements points to an invalid memory region in the remote "
8392 "process.  No further reads/writes will be attempted beyond that point.  Keep "
8393 "this in mind when attempting to read data of unknown length (such as C "
8394 "strings that are null-terminated) from a remote process, by avoiding "
8395 "spanning memory pages (typically 4KiB) in a single remote I<iovec> element.  "
8396 "(Instead, split the remote read into two I<remote_iov> elements and have "
8397 "them merge back into a single write I<local_iov> entry.  The first read "
8398 "entry goes up to the page boundary, while the second starts on the next page "
8399 "boundary.)"
8400 msgstr ""
8401
8402 #. type: Plain text
8403 #: build/C/man2/process_vm_readv.2:225
8404 msgid ""
8405 "In order to read from or write to another process, either the caller must "
8406 "have the capability B<CAP_SYS_PTRACE>, or the real user ID, effective user "
8407 "ID, and saved set-user-ID of the remote process must match the real user ID "
8408 "of the caller I<and> the real group ID, effective group ID, and saved set-"
8409 "group-ID of the remote process must match the real group ID of the caller.  "
8410 "(The permission required is exactly the same as that required to perform a "
8411 "B<ptrace>(2)  B<PTRACE_ATTACH> on the remote process.)"
8412 msgstr ""
8413
8414 #. type: Plain text
8415 #: build/C/man2/process_vm_readv.2:241
8416 msgid ""
8417 "On success, B<process_vm_readv>()  returns the number of bytes read and "
8418 "B<process_vm_writev>()  returns the number of bytes written.  This return "
8419 "value may be less than the total number of requested bytes, if a partial "
8420 "read/write occurred.  (Partial transfers apply at the granularity of "
8421 "I<iovec> elements.  These system calls won't perform a partial transfer that "
8422 "splits a single I<iovec> element.)  The caller should check the return value "
8423 "to determine whether a partial read/write occurred."
8424 msgstr ""
8425
8426 #. type: Plain text
8427 #: build/C/man2/process_vm_readv.2:245
8428 msgid "On error, -1 is returned and I<errno> is set appropriately."
8429 msgstr "エラーの場合は -1 が返され、 I<errno> が適切に設定される。"
8430
8431 #. type: Plain text
8432 #: build/C/man2/process_vm_readv.2:257
8433 msgid ""
8434 "The sum of the I<iov_len> values of either I<local_iov> or I<remote_iov> "
8435 "overflows a I<ssize_t> value."
8436 msgstr ""
8437
8438 #. type: Plain text
8439 #: build/C/man2/process_vm_readv.2:261
8440 msgid "I<flags> is not 0."
8441 msgstr "I<flags> が 0 でない。"
8442
8443 #. type: Plain text
8444 #: build/C/man2/process_vm_readv.2:267
8445 msgid "I<liovcnt> or I<riovcnt> is too large."
8446 msgstr "I<liovcnt> か I<riovcnt> が大きすぎる。"
8447
8448 #. type: Plain text
8449 #: build/C/man2/process_vm_readv.2:272
8450 msgid ""
8451 "The memory described by I<local_iov> is outside the caller's accessible "
8452 "address space."
8453 msgstr ""
8454 "I<local_iov> が示すメモリが呼び出し側がアクセス可能な\n"
8455 "アドレス空間の外にある。"
8456
8457 #. type: Plain text
8458 #: build/C/man2/process_vm_readv.2:278
8459 msgid ""
8460 "The memory described by I<remote_iov> is outside the accessible address "
8461 "space of the process I<pid>."
8462 msgstr ""
8463
8464 #. type: Plain text
8465 #: build/C/man2/process_vm_readv.2:283
8466 msgid ""
8467 "Could not allocate memory for internal copies of the I<iovec> structures."
8468 msgstr ""
8469
8470 #. type: Plain text
8471 #: build/C/man2/process_vm_readv.2:287
8472 msgid ""
8473 "The caller does not have permission to access the address space of the "
8474 "process I<pid>."
8475 msgstr ""
8476 "呼び出し側がプロセス I<pid> のアドレス空間に対するアクセス許可を\n"
8477 "持っていない。"
8478
8479 #. type: Plain text
8480 #: build/C/man2/process_vm_readv.2:292
8481 msgid "No process with ID I<pid> exists."
8482 msgstr "ID が I<pid> のプロセスが存在しない。"
8483
8484 #. type: Plain text
8485 #: build/C/man2/process_vm_readv.2:295
8486 msgid ""
8487 "These system calls were added in Linux 3.2.  Support is provided in glibc "
8488 "since version 2.15."
8489 msgstr ""
8490 "これらのシステムコールは Linux 3.2 で追加された。ライブラリによる\n"
8491 "サポートは glibc バージョン 2.15 以降で提供されている。"
8492
8493 #. type: Plain text
8494 #: build/C/man2/process_vm_readv.2:297
8495 msgid "These system calls are nonstandard Linux extensions."
8496 msgstr "これらのシステムコールは非標準で Linux による拡張である。"
8497
8498 #. type: Plain text
8499 #: build/C/man2/process_vm_readv.2:303
8500 msgid ""
8501 "The data transfers performed by B<process_vm_readv>()  and "
8502 "B<process_vm_writev>()  are not guaranteed to be atomic in any way."
8503 msgstr ""
8504
8505 #.  Original user is MPI, http://www.mcs.anl.gov/research/projects/mpi/
8506 #.  See also some benchmarks at http://lwn.net/Articles/405284/
8507 #.  and http://marc.info/?l=linux-mm&m=130105930902915&w=2
8508 #. type: Plain text
8509 #: build/C/man2/process_vm_readv.2:311
8510 msgid ""
8511 "These system calls were designed to permit fast message passing by allowing "
8512 "messages to be exchanged with a single copy operation (rather than the "
8513 "double copy that would be required when using, for example, shared memory or "
8514 "pipes)."
8515 msgstr ""
8516
8517 #. type: Plain text
8518 #: build/C/man2/process_vm_readv.2:319
8519 msgid ""
8520 "The following code sample demonstrates the use of B<process_vm_readv>().  It "
8521 "reads 20 bytes at the address 0x10000 from the process with PID 10 and "
8522 "writes the first 10 bytes into I<buf1> and the second 10 bytes into I<buf2>."
8523 msgstr ""
8524
8525 #. type: Plain text
8526 #: build/C/man2/process_vm_readv.2:322
8527 #, no-wrap
8528 msgid "#include E<lt>sys/uio.hE<gt>\n"
8529 msgstr "#include E<lt>sys/uio.hE<gt>\n"
8530
8531 #. type: Plain text
8532 #: build/C/man2/process_vm_readv.2:332
8533 #, no-wrap
8534 msgid ""
8535 "int\n"
8536 "main(void)\n"
8537 "{\n"
8538 "    struct iovec local[2];\n"
8539 "    struct iovec remote[1];\n"
8540 "    char buf1[10];\n"
8541 "    char buf2[10];\n"
8542 "    ssize_t nread;\n"
8543 "    pid_t pid = 10;             /* PID of remote process */\n"
8544 msgstr ""
8545 "int\n"
8546 "main(void)\n"
8547 "{\n"
8548 "    struct iovec local[2];\n"
8549 "    struct iovec remote[1];\n"
8550 "    char buf1[10];\n"
8551 "    char buf2[10];\n"
8552 "    ssize_t nread;\n"
8553 "    pid_t pid = 10;             /* PID of remote process */\n"
8554
8555 #. type: Plain text
8556 #: build/C/man2/process_vm_readv.2:339
8557 #, no-wrap
8558 msgid ""
8559 "    local[0].iov_base = buf1;\n"
8560 "    local[0].iov_len = 10;\n"
8561 "    local[1].iov_base = buf2;\n"
8562 "    local[1].iov_len = 10;\n"
8563 "    remote[0].iov_base = (void *) 0x10000;\n"
8564 "    remote[0].iov_len = 20;\n"
8565 msgstr ""
8566 "    local[0].iov_base = buf1;\n"
8567 "    local[0].iov_len = 10;\n"
8568 "    local[1].iov_base = buf2;\n"
8569 "    local[1].iov_len = 10;\n"
8570 "    remote[0].iov_base = (void *) 0x10000;\n"
8571 "    remote[0].iov_len = 20;\n"
8572
8573 #. type: Plain text
8574 #: build/C/man2/process_vm_readv.2:346
8575 #, no-wrap
8576 msgid ""
8577 "    nread = process_vm_readv(pid, local, 2, remote, 1, 0);\n"
8578 "    if (nread != 20)\n"
8579 "        return 1;\n"
8580 "    else\n"
8581 "        return 0;\n"
8582 "}\n"
8583 msgstr ""
8584 "    nread = process_vm_readv(pid, local, 2, remote, 1, 0);\n"
8585 "    if (nread != 20)\n"
8586 "        return 1;\n"
8587 "    else\n"
8588 "        return 0;\n"
8589 "}\n"
8590
8591 #. type: Plain text
8592 #: build/C/man2/process_vm_readv.2:349
8593 msgid "B<readv>(2), B<writev>(2)"
8594 msgstr "B<readv>(2), B<writev>(2)"
8595
8596 #. type: TH
8597 #: build/C/man2/ptrace.2:46
8598 #, no-wrap
8599 msgid "PTRACE"
8600 msgstr "PTRACE"
8601
8602 #. type: Plain text
8603 #: build/C/man2/ptrace.2:49
8604 msgid "ptrace - process trace"
8605 msgstr "ptrace - プロセスのトレース"
8606
8607 #. type: Plain text
8608 #: build/C/man2/ptrace.2:52
8609 #, no-wrap
8610 msgid "B<#include E<lt>sys/ptrace.hE<gt>>\n"
8611 msgstr "B<#include E<lt>sys/ptrace.hE<gt>>\n"
8612
8613 #. type: Plain text
8614 #: build/C/man2/ptrace.2:55
8615 #, no-wrap
8616 msgid ""
8617 "B<long ptrace(enum __ptrace_request >I<request>B<, pid_t >I<pid>B<, >\n"
8618 "B<            void *>I<addr>B<, void *>I<data>B<);>\n"
8619 msgstr ""
8620 "B<long ptrace(enum __ptrace_request >I<request>B<, pid_t >I<pid>B<, >\n"
8621 "B<            void *>I<addr>B<, void *>I<data>B<);>\n"
8622
8623 #. type: Plain text
8624 #: build/C/man2/ptrace.2:64
8625 #, fuzzy
8626 #| msgid ""
8627 #| "The B<ptrace>()  system call provides a means by which a parent process "
8628 #| "may observe and control the execution of another process, and examine and "
8629 #| "change its core image and registers.  It is primarily used to implement "
8630 #| "breakpoint debugging and system call tracing."
8631 msgid ""
8632 "The B<ptrace>()  system call provides a means by which one process (the "
8633 "\"tracer\")  may observe and control the execution of another process (the "
8634 "\"tracee\"), and examine and change the tracee's memory and registers.  It "
8635 "is primarily used to implement breakpoint debugging and system call tracing."
8636 msgstr ""
8637 "B<ptrace>()  システムコールは、親プロセスが、別のプロセスの実行の監視/制御を "
8638 "行ったり、コアイメージ (core image) やレジスタの調査/変更を 行ったりする手段"
8639 "を提供する。 B<ptrace>()  は、主にブレークポイントによるデバッグやシステム"
8640 "コールのトレースを 実装するのに用いられる。"
8641
8642 #. type: Plain text
8643 #: build/C/man2/ptrace.2:75
8644 msgid ""
8645 "A tracee first needs to be attached to the tracer.  Attachment and "
8646 "subsequent commands are per thread: in a multithreaded process, every thread "
8647 "can be individually attached to a (potentially different) tracer, or left "
8648 "not attached and thus not debugged.  Therefore, \"tracee\" always means "
8649 "\"(one) thread\", never \"a (possibly multithreaded) process\".  Ptrace "
8650 "commands are always sent to a specific tracee using a call of the form"
8651 msgstr ""
8652
8653 #. type: Plain text
8654 #: build/C/man2/ptrace.2:77
8655 #, no-wrap
8656 msgid "    ptrace(PTRACE_foo, pid, ...)\n"
8657 msgstr "    ptrace(PTRACE_foo, pid, ...)\n"
8658
8659 #. type: Plain text
8660 #: build/C/man2/ptrace.2:81
8661 msgid "where I<pid> is the thread ID of the corresponding Linux thread."
8662 msgstr "ここで I<pid> は対応する Linux スレッドのスレッド ID である。"
8663
8664 #. type: Plain text
8665 #: build/C/man2/ptrace.2:87
8666 msgid ""
8667 "(Note that in this page, a \"multithreaded process\" means a thread group "
8668 "consisting of threads created using the B<clone>(2)  B<CLONE_THREAD> flag.)"
8669 msgstr ""
8670
8671 #. type: Plain text
8672 #: build/C/man2/ptrace.2:98
8673 #, fuzzy
8674 #| msgid ""
8675 #| "The parent can initiate a trace by calling B<fork>(2)  and having the "
8676 #| "resulting child do a B<PTRACE_TRACEME>, followed (typically) by an "
8677 #| "B<exec>(3).  Alternatively, the parent may commence trace of an existing "
8678 #| "process using B<PTRACE_ATTACH>."
8679 msgid ""
8680 "A process can initiate a trace by calling B<fork>(2)  and having the "
8681 "resulting child do a B<PTRACE_TRACEME>, followed (typically) by an "
8682 "B<execve>(2).  Alternatively, one process may commence tracing another "
8683 "process using B<PTRACE_ATTACH> or B<PTRACE_SEIZE>."
8684 msgstr ""
8685 "トレースを開始するには、まず親プロセスで B<fork>(2)  を呼び出す。生成された子"
8686 "プロセスで B<PTRACE_TRACEME> を行い、続いて (典型的には)  B<exec>(3)  を行な"
8687 "う。 別の方法としては、 親プロセスが既存のプロセスに対して B<PTRACE_ATTACH> "
8688 "を使用し、トレースを開始する。"
8689
8690 #. type: Plain text
8691 #: build/C/man2/ptrace.2:115
8692 #, fuzzy
8693 #| msgid ""
8694 #| "While being traced, the child will stop each time a signal is delivered, "
8695 #| "even if the signal is being ignored.  (The exception is B<SIGKILL>, which "
8696 #| "has its usual effect.)  The parent will be notified at its next "
8697 #| "B<wait>(2)  and may inspect and modify the child process while it is "
8698 #| "stopped.  The parent then causes the child to continue, optionally "
8699 #| "ignoring the delivered signal (or even delivering a different signal "
8700 #| "instead)."
8701 msgid ""
8702 "While being traced, the tracee will stop each time a signal is delivered, "
8703 "even if the signal is being ignored.  (An exception is B<SIGKILL>, which has "
8704 "its usual effect.)  The tracer will be notified at its next call to "
8705 "B<waitpid>(2)  (or one of the related \"wait\" system calls); that call will "
8706 "return a I<status> value containing information that indicates the cause of "
8707 "the stop in the tracee.  While the tracee is stopped, the tracer can use "
8708 "various ptrace requests to inspect and modify the tracee.  The tracer then "
8709 "causes the tracee to continue, optionally ignoring the delivered signal (or "
8710 "even delivering a different signal instead)."
8711 msgstr ""
8712 "トレースの実行中、子プロセスはシグナルが配送されるたびに、 たとえそのシグナル"
8713 "が無視すべきものであっても停止する (B<SIGKILL> は例外で、通常どおりの効果をも"
8714 "たらす)。 親プロセスには次の B<wait>(2)  で通知され、停止している間に子プロセ"
8715 "スを調べたり修正したりすることができる。 そして親プロセスは子プロセスの実行を"
8716 "再開させるが、配送された シグナルを無視することもできる (あるいは代わりに別の"
8717 "シグナルを 配送することもできる) 。"
8718
8719 #. type: Plain text
8720 #: build/C/man2/ptrace.2:125
8721 msgid ""
8722 "If the B<PTRACE_O_TRACEEXEC> option is not in effect, all successful calls "
8723 "to B<execve>(2)  by the traced process will cause it to be sent a B<SIGTRAP> "
8724 "signal, giving the parent a chance to gain control before the new program "
8725 "begins execution."
8726 msgstr ""
8727
8728 #. type: Plain text
8729 #: build/C/man2/ptrace.2:129
8730 #, fuzzy
8731 #| msgid ""
8732 #| "When the parent is finished tracing, it can terminate the child with "
8733 #| "B<PTRACE_KILL> or cause it to continue executing in a normal, untraced "
8734 #| "mode via B<PTRACE_DETACH>."
8735 msgid ""
8736 "When the tracer is finished tracing, it can cause the tracee to continue "
8737 "executing in a normal, untraced mode via B<PTRACE_DETACH>."
8738 msgstr ""
8739 "親プロセスがトレースを終了する際には、 B<PTRACE_KILL> を使用して子プロセスを"
8740 "終了させることもできるし、 B<PTRACE_DETACH> を用いて通常のトレースなしのモー"
8741 "ドにして、 実行を継続させることもできる。"
8742
8743 #. type: Plain text
8744 #: build/C/man2/ptrace.2:133
8745 msgid "The value of I<request> determines the action to be performed:"
8746 msgstr "I<request> の値がこのシステムコールの動作を決定する:"
8747
8748 #. type: TP
8749 #: build/C/man2/ptrace.2:133
8750 #, no-wrap
8751 msgid "B<PTRACE_TRACEME>"
8752 msgstr "B<PTRACE_TRACEME>"
8753
8754 #. type: Plain text
8755 #: build/C/man2/ptrace.2:143
8756 msgid ""
8757 "Indicate that this process is to be traced by its parent.  A process "
8758 "probably shouldn't make this request if its parent isn't expecting to trace "
8759 "it.  (I<pid>, I<addr>, and I<data> are ignored.)"
8760 msgstr ""
8761 "このプロセスが親プロセスによってトレースされることを表す。親プロセスが自プロ"
8762 "セスをトレースするつもりがない場合には、 おそらくこのプロセスは本要求を行うべ"
8763 "きではないだろう。 (I<pid>, I<addr>, I<data> は無視される。)"
8764
8765 #. type: Plain text
8766 #: build/C/man2/ptrace.2:158
8767 #, fuzzy
8768 #| msgid ""
8769 #| "The above request is used only by the child process; the rest are used "
8770 #| "only by the parent.  In the following requests, I<pid> specifies the "
8771 #| "child process to be acted on.  For requests other than B<PTRACE_KILL>, "
8772 #| "the child process must be stopped."
8773 msgid ""
8774 "The B<PTRACE_TRACEME> request is used only by the tracee; the remaining "
8775 "requests are used only by the tracer.  In the following requests, I<pid> "
8776 "specifies the thread ID of the tracee to be acted on.  For requests other "
8777 "than B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, B<PTRACE_INTERRUPT>, and "
8778 "B<PTRACE_KILL>, the tracee must be stopped."
8779 msgstr ""
8780 "上記の要求は子プロセスだけが行なうものである。 残りは親プロセスだけが行なうも"
8781 "のである。 以下の要求では、I<pid> で操作の対象となる 子プロセスを指定する。 "
8782 "B<PTRACE_KILL> を除き、要求を行なうためには 子プロセスは停止していなければな"
8783 "らない。"
8784
8785 #. type: TP
8786 #: build/C/man2/ptrace.2:158
8787 #, no-wrap
8788 msgid "B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>"
8789 msgstr "B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>"
8790
8791 #. type: Plain text
8792 #: build/C/man2/ptrace.2:169
8793 #, fuzzy
8794 #| msgid ""
8795 #| "Reads a word at the location I<addr> in the child's memory, returning the "
8796 #| "word as the result of the B<ptrace>()  call.  Linux does not have "
8797 #| "separate text and data address spaces, so the two requests are currently "
8798 #| "equivalent.  (The argument I<data> is ignored.)"
8799 msgid ""
8800 "Read a word at the address I<addr> in the tracee's memory, returning the "
8801 "word as the result of the B<ptrace>()  call.  Linux does not have separate "
8802 "text and data address spaces, so these two requests are currently "
8803 "equivalent.  (I<data> is ignored; but see NOTES.)"
8804 msgstr ""
8805 "子プロセスのメモリの I<addr> の位置から 1 ワードを読み出す。読み出したワード"
8806 "は B<ptrace>()  の返り値として返される。 Linux ではテキスト (text) とデータ "
8807 "(data) で 同じアドレス空間を使用するため、この 2 つの要求は現在のところ 同じ"
8808 "ものである。 (引き数 I<data> は無視される。)"
8809
8810 #. type: TP
8811 #: build/C/man2/ptrace.2:169
8812 #, no-wrap
8813 msgid "B<PTRACE_PEEKUSER>"
8814 msgstr "B<PTRACE_PEEKUSER>"
8815
8816 #.  PTRACE_PEEKUSR in kernel source, but glibc uses PTRACE_PEEKUSER,
8817 #.  and that is the name that seems common on other systems.
8818 #. type: Plain text
8819 #: build/C/man2/ptrace.2:187
8820 #, fuzzy
8821 #| msgid ""
8822 #| "Reads a word at offset I<addr> in the child's USER area, which holds the "
8823 #| "registers and other information about the process (see I<E<lt>sys/user."
8824 #| "hE<gt>>).  The word is returned as the result of the B<ptrace>()  call.  "
8825 #| "Typically the offset must be word-aligned, though this might vary by "
8826 #| "architecture.  See NOTES.  (I<data> is ignored.)"
8827 msgid ""
8828 "Read a word at offset I<addr> in the tracee's USER area, which holds the "
8829 "registers and other information about the process (see I<E<lt>sys/user."
8830 "hE<gt>>).  The word is returned as the result of the B<ptrace>()  call.  "
8831 "Typically, the offset must be word-aligned, though this might vary by "
8832 "architecture.  See NOTES.  (I<data> is ignored; but see NOTES.)"
8833 msgstr ""
8834 "子プロセスの USER 領域のオフセット I<addr> の位置から 1 ワードを読み込む。"
8835 "USER 領域にはそのプロセスの レジスタ (registers) などの情報が保持されている "
8836 "(I<E<lt>sys/user.hE<gt>> を参照)。読み込んだワードは B<ptrace>()  コールの結"
8837 "果として返される。 たいていはオフセットはワード境界になければならないが、 "
8838 "アーキテクチャによってはその必要はない。 「注意」の節を参照。 (I<data> は無視"
8839 "される。 )"
8840
8841 #. type: TP
8842 #: build/C/man2/ptrace.2:187
8843 #, no-wrap
8844 msgid "B<PTRACE_POKETEXT>, B<PTRACE_POKEDATA>"
8845 msgstr "B<PTRACE_POKETEXT>, B<PTRACE_POKEDATA>"
8846
8847 #. type: Plain text
8848 #: build/C/man2/ptrace.2:199
8849 #, fuzzy
8850 #| msgid ""
8851 #| "Copies the word I<data> to location I<addr> in the child's memory.  As "
8852 #| "above, the two requests are currently equivalent."
8853 msgid ""
8854 "Copy the word I<data> to the address I<addr> in the tracee's memory.  As for "
8855 "B<PTRACE_PEEKTEXT> and B<PTRACE_PEEKDATA>, these two requests are currently "
8856 "equivalent."
8857 msgstr ""
8858 "ワード I<data> を子プロセスのメモリの I<addr> の位置へコピーする。上と同様"
8859 "に、現在のところ二つの 要求は同じものである。"
8860
8861 #. type: TP
8862 #: build/C/man2/ptrace.2:199
8863 #, no-wrap
8864 msgid "B<PTRACE_POKEUSER>"
8865 msgstr "B<PTRACE_POKEUSER>"
8866
8867 #.  PTRACE_POKEUSR in kernel source, but glibc uses PTRACE_POKEUSER,
8868 #.  and that is the name that seems common on other systems.
8869 #.  FIXME In the preceding sentence, which modifications are disallowed,
8870 #.  and when they are disallowed, how does user space discover that fact?
8871 #. type: Plain text
8872 #: build/C/man2/ptrace.2:215
8873 #, fuzzy
8874 #| msgid ""
8875 #| "Copies the word I<data> to offset I<addr> in the child's USER area.  As "
8876 #| "above, the offset must typically be word-aligned.  In order to maintain "
8877 #| "the integrity of the kernel, some modifications to the USER area are "
8878 #| "disallowed."
8879 msgid ""
8880 "Copy the word I<data> to offset I<addr> in the tracee's USER area.  As for "
8881 "B<PTRACE_PEEKUSER>, the offset must typically be word-aligned.  In order to "
8882 "maintain the integrity of the kernel, some modifications to the USER area "
8883 "are disallowed."
8884 msgstr ""
8885 "ワード I<data> を子プロセスの USER 領域のオフセット I<addr> の位置にコピーす"
8886 "る。 上と同様に、通常、オフセットはワード境界になければならない。 カーネルの"
8887 "完全性 (integrity) を維持するため、 変更内容によっては USER 領域の変更は禁止"
8888 "されている。"
8889
8890 #. type: TP
8891 #: build/C/man2/ptrace.2:215
8892 #, no-wrap
8893 msgid "B<PTRACE_GETREGS>, B<PTRACE_GETFPREGS>"
8894 msgstr "B<PTRACE_GETREGS>, B<PTRACE_GETFPREGS>"
8895
8896 #. type: Plain text
8897 #: build/C/man2/ptrace.2:238
8898 #, fuzzy
8899 #| msgid ""
8900 #| "Copies the child's general purpose or floating-point registers, "
8901 #| "respectively, to location I<data> in the parent.  See I<E<lt>sys/user."
8902 #| "hE<gt>> for information on the format of this data.  (I<addr> is ignored.)"
8903 msgid ""
8904 "Copy the tracee's general-purpose or floating-point registers, respectively, "
8905 "to the address I<data> in the tracer.  See I<E<lt>sys/user.hE<gt>> for "
8906 "information on the format of this data.  (I<addr> is ignored.)  Note that "
8907 "SPARC systems have the meaning of I<data> and I<addr> reversed; that is, "
8908 "I<data> is ignored and the registers are copied to the address I<addr>.  "
8909 "B<PTRACE_GETREGS> and B<PTRACE_GETFPREGS> are not present on all "
8910 "architectures."
8911 msgstr ""
8912 "それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタを親プロセスの I<data> "
8913 "の位置にコピーする。この data の書式に関しては I<E<lt>sys/user.hE<gt>> を参照"
8914 "すること。(I<addr> は無視される。)"
8915
8916 #. type: TP
8917 #: build/C/man2/ptrace.2:238
8918 #, no-wrap
8919 msgid "B<PTRACE_GETREGSET> (since Linux 2.6.34)"
8920 msgstr " B<PTRACE_GETREGSET> (since Linux 2.6.34)"
8921
8922 #. type: Plain text
8923 #: build/C/man2/ptrace.2:259
8924 msgid ""
8925 "Read the tracee's registers.  I<addr> specifies, in an architecture-"
8926 "dependent way, the type of registers to be read.  B<NT_PRSTATUS> (with "
8927 "numerical value 1)  usually results in reading of general-purpose "
8928 "registers.  If the CPU has, for example, floating-point and/or vector "
8929 "registers, they can be retrieved by setting I<addr> to the corresponding "
8930 "B<NT_foo> constant.  I<data> points to a B<struct iovec>, which describes "
8931 "the destination buffer's location and length.  On return, the kernel "
8932 "modifies B<iov.len> to indicate the actual number of bytes returned."
8933 msgstr ""
8934
8935 #. type: TP
8936 #: build/C/man2/ptrace.2:259
8937 #, no-wrap
8938 msgid "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
8939 msgstr "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
8940
8941 #.  FIXME . In the preceding sentence, which modifications are disallowed,
8942 #.  and when they are disallowed, how does user space discover that fact?
8943 #. type: Plain text
8944 #: build/C/man2/ptrace.2:284
8945 #, fuzzy
8946 #| msgid ""
8947 #| "Copies the child's general purpose or floating-point registers, "
8948 #| "respectively, from location I<data> in the parent.  As for "
8949 #| "B<PTRACE_POKEUSER>, some general purpose register modifications may be "
8950 #| "disallowed.  (I<addr> is ignored.)"
8951 msgid ""
8952 "Modify the tracee's general-purpose or floating-point registers, "
8953 "respectively, from the address I<data> in the tracer.  As for "
8954 "B<PTRACE_POKEUSER>, some general-purpose register modifications may be "
8955 "disallowed.  (I<addr> is ignored.)  Note that SPARC systems have the meaning "
8956 "of I<data> and I<addr> reversed; that is, I<data> is ignored and the "
8957 "registers are copied from the address I<addr>.  B<PTRACE_SETREGS> and "
8958 "B<PTRACE_SETFPREGS> are not present on all architectures."
8959 msgstr ""
8960 "それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタに 親プロセスの "
8961 "I<date> の位置からコピーする。 B<PTRACE_POKEUSER> と同様に、汎用レジスタに"
8962 "よっては 変更が禁止されている場合がある。 (I<addr> は無視される。)"
8963
8964 #. type: TP
8965 #: build/C/man2/ptrace.2:284
8966 #, no-wrap
8967 msgid "B<PTRACE_SETREGSET> (since Linux 2.6.34)"
8968 msgstr " B<PTRACE_SETREGSET> (since Linux 2.6.34)"
8969
8970 #. type: Plain text
8971 #: build/C/man2/ptrace.2:293
8972 msgid ""
8973 "Modify the tracee's registers.  The meaning of I<addr> and I<data> is "
8974 "analogous to B<PTRACE_GETREGSET>."
8975 msgstr ""
8976
8977 #. type: TP
8978 #: build/C/man2/ptrace.2:293
8979 #, no-wrap
8980 msgid "B<PTRACE_GETSIGINFO> (since Linux 2.3.99-pre6)"
8981 msgstr "B<PTRACE_GETSIGINFO> (Linux 2.3.99-pre6 以降)"
8982
8983 #. type: Plain text
8984 #: build/C/man2/ptrace.2:305
8985 #, fuzzy
8986 #| msgid ""
8987 #| "Retrieve information about the signal that caused the stop.  Copies a "
8988 #| "I<siginfo_t> structure (see B<sigaction>(2))  from the child to location "
8989 #| "I<data> in the parent.  (I<addr> is ignored.)"
8990 msgid ""
8991 "Retrieve information about the signal that caused the stop.  Copy a "
8992 "I<siginfo_t> structure (see B<sigaction>(2))  from the tracee to the address "
8993 "I<data> in the tracer.  (I<addr> is ignored.)"
8994 msgstr ""
8995 "停止の原因となったシグナルに関する情報を取得する。 I<siginfo_t> 構造体 "
8996 "(B<sigaction>(2)  参照) を子プロセスから親プロセスの I<data> の位置にコピーす"
8997 "る。 (I<addr> は無視される。)"
8998
8999 #. type: TP
9000 #: build/C/man2/ptrace.2:305
9001 #, no-wrap
9002 msgid "B<PTRACE_SETSIGINFO> (since Linux 2.3.99-pre6)"
9003 msgstr "B<PTRACE_SETSIGINFO> (Linux 2.3.99-pre6 以降)"
9004
9005 #. type: Plain text
9006 #: build/C/man2/ptrace.2:321
9007 #, fuzzy
9008 #| msgid ""
9009 #| "Set signal information.  Copies a I<siginfo_t> structure from location "
9010 #| "I<data> in the parent to the child.  This will only affect signals that "
9011 #| "would normally be delivered to the child and were caught by the tracer.  "
9012 #| "It may be difficult to tell these normal signals from synthetic signals "
9013 #| "generated by B<ptrace>()  itself.  (I<addr> is ignored.)"
9014 msgid ""
9015 "Set signal information: copy a I<siginfo_t> structure from the address "
9016 "I<data> in the tracer to the tracee.  This will affect only signals that "
9017 "would normally be delivered to the tracee and were caught by the tracer.  It "
9018 "may be difficult to tell these normal signals from synthetic signals "
9019 "generated by B<ptrace>()  itself.  (I<addr> is ignored.)"
9020 msgstr ""
9021 "シグナル情報を設定する。 I<siginfo_t> 構造体を親プロセスのデータ I<data> の位"
9022 "置から 子プロセスにコピーする。 この処理を行うことができるのは、子プロセスに"
9023 "通常は配送されるはずで トレーサに捕捉されたシグナルについてだけである。 これ"
9024 "らの通常のシグナルと B<ptrace>()  自身が発生するシグナルを見分けるのは難しい"
9025 "かもしれない。 (I<addr> は無視される。)"
9026
9027 #. type: TP
9028 #: build/C/man2/ptrace.2:321
9029 #, no-wrap
9030 msgid "B<PTRACE_PEEKSIGINFO> (since Linux 3.10)"
9031 msgstr "B<PTRACE_PEEKSIGINFO> (Linux 3.10 以降)"
9032
9033 #.  commit 84c751bd4aebbaae995fe32279d3dba48327bad4
9034 #. type: Plain text
9035 #: build/C/man2/ptrace.2:347
9036 msgid ""
9037 "Retrieve I<siginfo_t> structures without removing signals from a queue.  "
9038 "I<addr> points to a I<ptrace_peeksiginfo_args> structure that specifies the "
9039 "ordinal position from which copying of signals should start, and the number "
9040 "of signals to copy.  I<siginfo_t> structures are copied into the buffer "
9041 "pointed to by I<data>.  The return value contains the number of copied "
9042 "signals (zero indicates that there is no signal corresponding to the "
9043 "specified ordinal position).  Within the returned I<siginfo> structures, the "
9044 "I<si_code> field includes information (B<__SI_CHLD>, B<__SI_FAULT>, etc.) "
9045 "that are not otherwise exposed to user space."
9046 msgstr ""
9047
9048 #. type: Plain text
9049 #: build/C/man2/ptrace.2:356
9050 #, no-wrap
9051 msgid ""
9052 "struct ptrace_peeksiginfo_args {\n"
9053 "    u64 off;    /* Ordinal position in queue at which\n"
9054 "                   to start copying signals */\n"
9055 "    u32 flags;  /* PTRACE_PEEKSIGINFO_SHARED or 0 */\n"
9056 "    s32 nr;     /* Number of signals to copy */\n"
9057 "};\n"
9058 msgstr ""
9059
9060 #. type: Plain text
9061 #: build/C/man2/ptrace.2:363
9062 msgid ""
9063 "Currently, there is only one flag, B<PTRACE_PEEKSIGINFO_SHARED>, for dumping "
9064 "signals from the process-wide signal queue.  If this flag is not set, "
9065 "signals are read from the per-thread queue of the specified thread."
9066 msgstr ""
9067
9068 #. type: TP
9069 #: build/C/man2/ptrace.2:365
9070 #, no-wrap
9071 msgid "B<PTRACE_GETSIGMASK> (since Linux 3.11)"
9072 msgstr "B<PTRACE_GETSIGMASK> (Linux 3.11 以降)"
9073
9074 #.  commit 29000caecbe87b6b66f144f72111f0d02fbbf0c1
9075 #. type: Plain text
9076 #: build/C/man2/ptrace.2:380
9077 msgid ""
9078 "Place a copy of the mask of blocked signals (see B<sigprocmask>(2))  in the "
9079 "buffer pointed to by I<data>, which should be a pointer to a buffer of type "
9080 "I<sigset_t>.  The I<addr> argument contains the size of the buffer pointed "
9081 "to by I<data> (i.e., I<sizeof(sigset_t)>)."
9082 msgstr ""
9083
9084 #. type: TP
9085 #: build/C/man2/ptrace.2:380
9086 #, no-wrap
9087 msgid "B<PTRACE_SETSIGMASK> (since Linux 3.11)"
9088 msgstr "B<PTRACE_SETSIGMASK> (Linux 3.11 以降)"
9089
9090 #. type: Plain text
9091 #: build/C/man2/ptrace.2:394
9092 msgid ""
9093 "Change the mask of blocked signals (see B<sigprocmask>(2))  to the value "
9094 "specified in the buffer pointed to by I<data>, which should be a pointer to "
9095 "a buffer of type I<sigset_t>.  The I<addr> argument contains the size of the "
9096 "buffer pointed to by I<data> (i.e., I<sizeof(sigset_t)>)."
9097 msgstr ""
9098
9099 #. type: TP
9100 #: build/C/man2/ptrace.2:394
9101 #, no-wrap
9102 msgid "B<PTRACE_SETOPTIONS> (since Linux 2.4.6; see BUGS for caveats)"
9103 msgstr "B<PTRACE_SETOPTIONS> (Linux 2.4.6 以降; バグの章にある警告も参照)"
9104
9105 #. type: Plain text
9106 #: build/C/man2/ptrace.2:403
9107 msgid ""
9108 "Set ptrace options from I<data>.  (I<addr> is ignored.)  I<data> is "
9109 "interpreted as a bit mask of options, which are specified by the following "
9110 "flags:"
9111 msgstr ""
9112 "I<data> に基づいて ptrace のオプションを設定する (I<addr> は無視される)。 "
9113 "I<data> はオプションのビットマスクとして解釈され、 オプションには以下のフラグ"
9114 "を指定できる:"
9115
9116 #. type: TP
9117 #: build/C/man2/ptrace.2:404
9118 #, no-wrap
9119 msgid "B<PTRACE_O_EXITKILL> (since Linux 3.8)"
9120 msgstr " B<PTRACE_O_EXITKILL> (since Linux 3.8)"
9121
9122 #.  commit 992fb6e170639b0849bace8e49bf31bd37c4123
9123 #. type: Plain text
9124 #: build/C/man2/ptrace.2:412
9125 msgid ""
9126 "If a tracer sets this flag, a B<SIGKILL> signal will be sent to every tracee "
9127 "if the tracer exits.  This option is useful for ptrace jailers that want to "
9128 "ensure that tracees can never escape the tracer's control."
9129 msgstr ""
9130
9131 #. type: TP
9132 #: build/C/man2/ptrace.2:412
9133 #, no-wrap
9134 msgid "B<PTRACE_O_TRACECLONE> (since Linux 2.5.46)"
9135 msgstr "B<PTRACE_O_TRACECLONE> (Linux 2.5.46 以降)"
9136
9137 #. type: Plain text
9138 #: build/C/man2/ptrace.2:429
9139 #, fuzzy
9140 #| msgid ""
9141 #| "Stop the child at the next B<fork>(2)  call with I<SIGTRAP | "
9142 #| "PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
9143 #| "newly forked process, which will start with a B<SIGSTOP>.  The PID for "
9144 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
9145 msgid ""
9146 "Stop the tracee at the next B<clone>(2)  and automatically start tracing the "
9147 "newly cloned process, which will start with a B<SIGSTOP>, or "
9148 "B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used.  A B<waitpid>(2)  by the "
9149 "tracer will return a I<status> value such that"
9150 msgstr ""
9151 "次の B<fork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ "
9152 "8> で 子プロセスの動作を停止させ、 新たに fork されたプロセスのトレースを自動"
9153 "的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
9154 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
9155
9156 #. type: Plain text
9157 #: build/C/man2/ptrace.2:432
9158 #, no-wrap
9159 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_CLONEE<lt>E<lt>8))\n"
9160 msgstr "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_CLONEE<lt>E<lt>8))\n"
9161
9162 #. type: Plain text
9163 #: build/C/man2/ptrace.2:436 build/C/man2/ptrace.2:522
9164 #: build/C/man2/ptrace.2:555
9165 msgid "The PID of the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
9166 msgstr "新規のプロセスの PID は B<PTRACE_GETEVENTMSG> で取得できる。"
9167
9168 #. type: Plain text
9169 #: build/C/man2/ptrace.2:457
9170 #, fuzzy
9171 #| msgid ""
9172 #| "Stop the child at the next B<clone>(2)  call with I<SIGTRAP | "
9173 #| "PTRACE_EVENT_CLONE\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
9174 #| "newly cloned process, which will start with a B<SIGSTOP>.  The PID for "
9175 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>.  This option "
9176 #| "may not catch B<clone>(2)  calls in all cases.  If the child calls "
9177 #| "B<clone>(2)  with the B<CLONE_VFORK> flag, B<PTRACE_EVENT_VFORK> will be "
9178 #| "delivered instead if B<PTRACE_O_TRACEVFORK> is set; otherwise if the "
9179 #| "child calls B<clone>(2)  with the exit signal set to B<SIGCHLD>, "
9180 #| "B<PTRACE_EVENT_FORK> will be delivered if B<PTRACE_O_TRACEFORK> is set."
9181 msgid ""
9182 "This option may not catch B<clone>(2)  calls in all cases.  If the tracee "
9183 "calls B<clone>(2)  with the B<CLONE_VFORK> flag, B<PTRACE_EVENT_VFORK> will "
9184 "be delivered instead if B<PTRACE_O_TRACEVFORK> is set; otherwise if the "
9185 "tracee calls B<clone>(2)  with the exit signal set to B<SIGCHLD>, "
9186 "B<PTRACE_EVENT_FORK> will be delivered if B<PTRACE_O_TRACEFORK> is set."
9187 msgstr ""
9188 "次の B<clone>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_CLONE\\ E<lt>E<lt> "
9189 "\\8> で 子プロセスの動作を停止させ、 新たに clone で作成されたプロセスのト"
9190 "レースを自動的に開始し、 B<SIGSTOP> でプロセスの実行を開始する。 新しいプロセ"
9191 "スの PID は B<PTRACE_GETEVENTMSG> で取得できる。 このオプションで全ての "
9192 "B<clone>(2)  コールを捕まえられるわけではない。 子プロセスが B<CLONE_VFORK> "
9193 "フラグ付きで B<clone>(2)  を呼び出した場合、 B<PTRACE_O_TRACEVFORK> が設定さ"
9194 "れていれば代わりに B<PTRACE_EVENT_VFORK> が配送される。 また、子プロセスが終"
9195 "了シグナルを B<SIGCHLD> に設定して B<clone>(2)  を呼び出した場合は、 "
9196 "B<PTRACE_O_TRACEFORK> が設定されていれば B<PTRACE_EVENT_FORK> が配送される。"
9197
9198 #. type: TP
9199 #: build/C/man2/ptrace.2:457
9200 #, no-wrap
9201 msgid "B<PTRACE_O_TRACEEXEC> (since Linux 2.5.46)"
9202 msgstr "B<PTRACE_O_TRACEEXEC> (Linux 2.5.46 以降)"
9203
9204 #. type: Plain text
9205 #: build/C/man2/ptrace.2:466
9206 msgid ""
9207 "Stop the tracee at the next B<execve>(2).  A B<waitpid>(2)  by the tracer "
9208 "will return a I<status> value such that"
9209 msgstr ""
9210
9211 #. type: Plain text
9212 #: build/C/man2/ptrace.2:469
9213 #, no-wrap
9214 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXECE<lt>E<lt>8))\n"
9215 msgstr "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXECE<lt>E<lt>8))\n"
9216
9217 #. type: Plain text
9218 #: build/C/man2/ptrace.2:475
9219 msgid ""
9220 "If the execing thread is not a thread group leader, the thread ID is reset "
9221 "to thread group leader's ID before this stop.  Since Linux 3.0, the former "
9222 "thread ID can be retrieved with B<PTRACE_GETEVENTMSG>."
9223 msgstr ""
9224
9225 #. type: TP
9226 #: build/C/man2/ptrace.2:475
9227 #, no-wrap
9228 msgid "B<PTRACE_O_TRACEEXIT> (since Linux 2.5.60)"
9229 msgstr "B<PTRACE_O_TRACEEXIT> (Linux 2.5.60 以降)"
9230
9231 #. type: Plain text
9232 #: build/C/man2/ptrace.2:483
9233 msgid ""
9234 "Stop the tracee at exit.  A B<waitpid>(2)  by the tracer will return a "
9235 "I<status> value such that"
9236 msgstr ""
9237
9238 #. type: Plain text
9239 #: build/C/man2/ptrace.2:486
9240 #, no-wrap
9241 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXITE<lt>E<lt>8))\n"
9242 msgstr "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXITE<lt>E<lt>8))\n"
9243
9244 #. type: Plain text
9245 #: build/C/man2/ptrace.2:490
9246 msgid "The tracee's exit status can be retrieved with B<PTRACE_GETEVENTMSG>."
9247 msgstr ""
9248
9249 #. type: Plain text
9250 #: build/C/man2/ptrace.2:498
9251 #, fuzzy
9252 #| msgid ""
9253 #| "Stop the child at exit with I<SIGTRAP | PTRACE_EVENT_EXIT\\ E<lt>E<lt>\\ "
9254 #| "8>.  The child's exit status can be retrieved with "
9255 #| "B<PTRACE_GETEVENTMSG>.  This stop will be done early during process exit "
9256 #| "when registers are still available, allowing the tracer to see where the "
9257 #| "exit occurred, whereas the normal exit notification is done after the "
9258 #| "process is finished exiting.  Even though context is available, the "
9259 #| "tracer cannot prevent the exit from happening at this point."
9260 msgid ""
9261 "The tracee is stopped early during process exit, when registers are still "
9262 "available, allowing the tracer to see where the exit occurred, whereas the "
9263 "normal exit notification is done after the process is finished exiting.  "
9264 "Even though context is available, the tracer cannot prevent the exit from "
9265 "happening at this point."
9266 msgstr ""
9267 "終了 (exit) 時に I<SIGTRAP | PTRACE_EVENT_EXIT\\ E<lt>E<lt>\\ 8> で子プロセス"
9268 "の動作を停止させる。子プロセスの終了ステータスは B<PTRACE_GETEVENTMSG> で取得"
9269 "できる。 この停止はレジスタがまだ参照可能であるプロセス終了処理の初期に行わ"
9270 "れ、 トレーサはどこで終了が発生したかを知ることができる。 通常の終了通知 "
9271 "(exit notification) はプロセスの終了処理が完了した後に 行われる。コンテキスト"
9272 "を参照することはできるにも関わらず、 トレーサはこの時点から終了を止めることは"
9273 "できない。"
9274
9275 #. type: TP
9276 #: build/C/man2/ptrace.2:498
9277 #, no-wrap
9278 msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
9279 msgstr "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
9280
9281 #. type: Plain text
9282 #: build/C/man2/ptrace.2:515
9283 #, fuzzy
9284 #| msgid ""
9285 #| "Stop the child at the next B<fork>(2)  call with I<SIGTRAP | "
9286 #| "PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
9287 #| "newly forked process, which will start with a B<SIGSTOP>.  The PID for "
9288 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
9289 msgid ""
9290 "Stop the tracee at the next B<fork>(2)  and automatically start tracing the "
9291 "newly forked process, which will start with a B<SIGSTOP>, or "
9292 "B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used.  A B<waitpid>(2)  by the "
9293 "tracer will return a I<status> value such that"
9294 msgstr ""
9295 "次の B<fork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ "
9296 "8> で 子プロセスの動作を停止させ、 新たに fork されたプロセスのトレースを自動"
9297 "的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
9298 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
9299
9300 #. type: Plain text
9301 #: build/C/man2/ptrace.2:518
9302 #, no-wrap
9303 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_FORKE<lt>E<lt>8))\n"
9304 msgstr "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_FORKE<lt>E<lt>8))\n"
9305
9306 #. type: TP
9307 #: build/C/man2/ptrace.2:522
9308 #, no-wrap
9309 msgid "B<PTRACE_O_TRACESYSGOOD> (since Linux 2.4.6)"
9310 msgstr "B<PTRACE_O_TRACESYSGOOD> (Linux 2.4.6 以降)"
9311
9312 #. type: Plain text
9313 #: build/C/man2/ptrace.2:531
9314 #, fuzzy
9315 #| msgid ""
9316 #| "When delivering syscall traps, set bit 7 in the signal number (i.e., "
9317 #| "deliver I<SIGTRAP | 0x80>).  This makes it easy for the tracer to tell "
9318 #| "the difference between normal traps and those caused by a syscall.  "
9319 #| "(B<PTRACE_O_TRACESYSGOOD> may not work on all architectures.)"
9320 msgid ""
9321 "When delivering system call traps, set bit 7 in the signal number (i.e., "
9322 "deliver I<SIGTRAP|0x80>).  This makes it easy for the tracer to distinguish "
9323 "normal traps from those caused by a system call.  (B<PTRACE_O_TRACESYSGOOD> "
9324 "may not work on all architectures.)"
9325 msgstr ""
9326 "システムコールのトラップが配送されたときに、シグナル番号のビット 7 を設定す"
9327 "る (すなわち、I<SIGTRAP | 0x80> を配送する)。 これにより、トレーサが通常のト"
9328 "ラップとシステムコールによるトラップを 区別しやすくなる。 "
9329 "(B<PTRACE_O_TRACESYSGOOD> はどのアーキテクチャでも動作しない可能性がある。)"
9330
9331 #. type: TP
9332 #: build/C/man2/ptrace.2:531
9333 #, no-wrap
9334 msgid "B<PTRACE_O_TRACEVFORK> (since Linux 2.5.46)"
9335 msgstr "B<PTRACE_O_TRACEVFORK> (Linux 2.5.46 以降)"
9336
9337 #. type: Plain text
9338 #: build/C/man2/ptrace.2:548
9339 #, fuzzy
9340 #| msgid ""
9341 #| "Stop the child at the next B<vfork>(2)  call with I<SIGTRAP | "
9342 #| "PTRACE_EVENT_VFORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
9343 #| "newly vforked process, which will start with a B<SIGSTOP>.  The PID for "
9344 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
9345 msgid ""
9346 "Stop the tracee at the next B<vfork>(2)  and automatically start tracing the "
9347 "newly vforked process, which will start with a B<SIGSTOP>, or "
9348 "B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used.  A B<waitpid>(2)  by the "
9349 "tracer will return a I<status> value such that"
9350 msgstr ""
9351 "次の B<vfork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_VFORK\\ E<lt>E<lt>\\ "
9352 "8> で 子プロセスの動作を停止させ、 新たに vfork されたプロセスのトレースを自"
9353 "動的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
9354 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
9355
9356 #. type: Plain text
9357 #: build/C/man2/ptrace.2:551
9358 #, no-wrap
9359 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORKE<lt>E<lt>8))\n"
9360 msgstr "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORKE<lt>E<lt>8))\n"
9361
9362 #. type: TP
9363 #: build/C/man2/ptrace.2:555
9364 #, no-wrap
9365 msgid "B<PTRACE_O_TRACEVFORKDONE> (since Linux 2.5.60)"
9366 msgstr "B<PTRACE_O_TRACEVFORKDONE> (Linux 2.5.60 以降)"
9367
9368 #. type: Plain text
9369 #: build/C/man2/ptrace.2:564
9370 msgid ""
9371 "Stop the tracee at the completion of the next B<vfork>(2).  A B<waitpid>(2)  "
9372 "by the tracer will return a I<status> value such that"
9373 msgstr ""
9374
9375 #. type: Plain text
9376 #: build/C/man2/ptrace.2:567
9377 #, no-wrap
9378 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORK_DONEE<lt>E<lt>8))\n"
9379 msgstr ""
9380
9381 #. type: Plain text
9382 #: build/C/man2/ptrace.2:571
9383 msgid ""
9384 "The PID of the new process can (since Linux 2.6.18) be retrieved with "
9385 "B<PTRACE_GETEVENTMSG>."
9386 msgstr ""
9387
9388 #. type: TP
9389 #: build/C/man2/ptrace.2:571
9390 #, fuzzy, no-wrap
9391 #| msgid "B<PTRACE_O_TRACEEXEC> (since Linux 2.5.46)"
9392 msgid "B<PTRACE_O_TRACESECCOMP> (since Linux 3.5)"
9393 msgstr "B<PTRACE_O_TRACEEXEC> (Linux 2.5.46 以降)"
9394
9395 #. type: Plain text
9396 #: build/C/man2/ptrace.2:582
9397 #, fuzzy
9398 #| msgid ""
9399 #| "Stop the child at the next B<fork>(2)  call with I<SIGTRAP | "
9400 #| "PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
9401 #| "newly forked process, which will start with a B<SIGSTOP>.  The PID for "
9402 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
9403 msgid ""
9404 "Stop the tracee when a B<seccomp>(2)  B<SECCOMP_RET_TRACE> rule is "
9405 "triggered.  A B<waitpid>(2)  by the tracer will return a I<status> value "
9406 "such that"
9407 msgstr ""
9408 "次の B<fork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ "
9409 "8> で 子プロセスの動作を停止させ、 新たに fork されたプロセスのトレースを自動"
9410 "的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
9411 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
9412
9413 #. type: Plain text
9414 #: build/C/man2/ptrace.2:585
9415 #, fuzzy, no-wrap
9416 #| msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXECE<lt>E<lt>8))\n"
9417 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_SECCOMPE<lt>E<lt>8))\n"
9418 msgstr "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXECE<lt>E<lt>8))\n"
9419
9420 #. type: Plain text
9421 #: build/C/man2/ptrace.2:595
9422 msgid ""
9423 "While this triggers a B<PTRACE_EVENT> stop, it is similar to a syscall-enter-"
9424 "stop, in that the tracee has not yet entered the syscall that seccomp "
9425 "triggered on.  The seccomp event message data (from the B<SECCOMP_RET_DATA> "
9426 "portion of the seccomp filter rule) can be retrieved with "
9427 "B<PTRACE_GETEVENTMSG>."
9428 msgstr ""
9429
9430 #. type: TP
9431 #: build/C/man2/ptrace.2:596
9432 #, no-wrap
9433 msgid "B<PTRACE_GETEVENTMSG> (since Linux 2.5.46)"
9434 msgstr "B<PTRACE_GETEVENTMSG> (Linux 2.5.46 以降)"
9435
9436 #. type: Plain text
9437 #: build/C/man2/ptrace.2:623
9438 #, fuzzy
9439 #| msgid ""
9440 #| "Retrieve a message (as an I<unsigned long>)  about the ptrace event that "
9441 #| "just happened, placing it in the location I<data> in the parent.  For "
9442 #| "B<PTRACE_EVENT_EXIT> this is the child's exit status.  For "
9443 #| "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK> and B<PTRACE_EVENT_CLONE> "
9444 #| "this is the PID of the new process.  Since Linux 2.6.18, the PID of the "
9445 #| "new process is also available for B<PTRACE_EVENT_VFORK_DONE>.  (I<addr> "
9446 #| "is ignored.)"
9447 msgid ""
9448 "Retrieve a message (as an I<unsigned long>)  about the ptrace event that "
9449 "just happened, placing it at the address I<data> in the tracer.  For "
9450 "B<PTRACE_EVENT_EXIT>, this is the tracee's exit status.  For "
9451 "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK>, B<PTRACE_EVENT_VFORK_DONE>, and "
9452 "B<PTRACE_EVENT_CLONE>, this is the PID of the new process.  For "
9453 "B<PTRACE_EVENT_SECCOMP>, this is the B<seccomp>(2)  filter's "
9454 "B<SECCOMP_RET_DATA> associated with the triggered rule.  (I<addr> is "
9455 "ignored.)"
9456 msgstr ""
9457 "発生したばかりの ptrace イベントに関するメッセージを (I<unsigned long> 型で) "
9458 "取得する。 取得したメッセージは親プロセスの I<data> の位置に格納される。 得ら"
9459 "れる内容は、 B<PTRACE_EVENT_EXIT> の場合は子プロセスの終了ステータスであり、 "
9460 "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK>, B<PTRACE_EVENT_CLONE> の場合は新"
9461 "しいプロセスの PID である。 Linux 2.6.18 以降では、新しいプロセスの PID は "
9462 "B<PTRACE_EVENT_VFORK_DONE> で入手できる。 (I<addr> は無視される。)"
9463
9464 #. type: TP
9465 #: build/C/man2/ptrace.2:623
9466 #, no-wrap
9467 msgid "B<PTRACE_CONT>"
9468 msgstr "B<PTRACE_CONT>"
9469
9470 #. type: Plain text
9471 #: build/C/man2/ptrace.2:635
9472 #, fuzzy
9473 #| msgid ""
9474 #| "Restarts the stopped child process.  If I<data> is nonzero and not "
9475 #| "B<SIGSTOP>, it is interpreted as a signal to be delivered to the child; "
9476 #| "otherwise, no signal is delivered.  Thus, for example, the parent can "
9477 #| "control whether a signal sent to the child is delivered or not.  (I<addr> "
9478 #| "is ignored.)"
9479 msgid ""
9480 "Restart the stopped tracee process.  If I<data> is nonzero, it is "
9481 "interpreted as the number of a signal to be delivered to the tracee; "
9482 "otherwise, no signal is delivered.  Thus, for example, the tracer can "
9483 "control whether a signal sent to the tracee is delivered or not.  (I<addr> "
9484 "is ignored.)"
9485 msgstr ""
9486 "停止した子プロセスの実行を再開させる。 I<data> がゼロでなく、 B<SIGSTOP> でも"
9487 "なければ、 子プロセスに配送されるシグナルと解釈される。 ゼロや B<SIGSTOP> の"
9488 "場合はシグナルは配送されない。 これを使うと、例えば、親プロセスは 子プロセス"
9489 "に送られたシグナルを実際に配送するかどうかを 制御することができる。(I<addr> "
9490 "は無視される。)"
9491
9492 #. type: TP
9493 #: build/C/man2/ptrace.2:635
9494 #, no-wrap
9495 msgid "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
9496 msgstr "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
9497
9498 #. type: Plain text
9499 #: build/C/man2/ptrace.2:659
9500 #, fuzzy
9501 #| msgid ""
9502 #| "Restarts the stopped child as for B<PTRACE_CONT>, but arranges for the "
9503 #| "child to be stopped at the next entry to or exit from a system call, or "
9504 #| "after execution of a single instruction, respectively.  (The child will "
9505 #| "also, as usual, be stopped upon receipt of a signal.)  From the parent's "
9506 #| "perspective, the child will appear to have been stopped by receipt of a "
9507 #| "B<SIGTRAP>.  So, for B<PTRACE_SYSCALL>, for example, the idea is to "
9508 #| "inspect the arguments to the system call at the first stop, then do "
9509 #| "another B<PTRACE_SYSCALL> and inspect the return value of the system call "
9510 #| "at the second stop.  The I<data> argument is treated as for "
9511 #| "B<PTRACE_CONT>.  (I<addr> is ignored.)"
9512 msgid ""
9513 "Restart the stopped tracee as for B<PTRACE_CONT>, but arrange for the tracee "
9514 "to be stopped at the next entry to or exit from a system call, or after "
9515 "execution of a single instruction, respectively.  (The tracee will also, as "
9516 "usual, be stopped upon receipt of a signal.)  From the tracer's perspective, "
9517 "the tracee will appear to have been stopped by receipt of a B<SIGTRAP>.  So, "
9518 "for B<PTRACE_SYSCALL>, for example, the idea is to inspect the arguments to "
9519 "the system call at the first stop, then do another B<PTRACE_SYSCALL> and "
9520 "inspect the return value of the system call at the second stop.  The I<data> "
9521 "argument is treated as for B<PTRACE_CONT>.  (I<addr> is ignored.)"
9522 msgstr ""
9523 "B<PTRACE_CONT> と同様に停止した子プロセスを再開する。ただし、 "
9524 "B<PTRACE_SYSCALL> の場合は子プロセスが 次にシステムコールに入るかシステムコー"
9525 "ルから抜けるかする時に、 B<PTRACE_SINGLESTEP> の場合は 1 命令 (instruction) "
9526 "実行した後に停止させる (通常どおり、子プロセスはシグナルを受け取った場合にも"
9527 "停止する)。 親プロセスから見ると、子プロセスは B<SIGTRAP> を受信して停止した"
9528 "ように見える。そのため、例えば B<PTRACE_SYSCALL> を使うと、1回目の停止で引き"
9529 "数を調べて B<PTRACE_SYSCALL> を実行し、 2回目の停止でシステムコールの返り値を"
9530 "調べる、 というようなことができる。 引き数 I<data> は B<PTRACE_CONT> の場合と"
9531 "同じ様に解釈される。 (I<addr> は無視される。)"
9532
9533 #. type: TP
9534 #: build/C/man2/ptrace.2:659
9535 #, no-wrap
9536 msgid "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (since Linux 2.6.14)"
9537 msgstr "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (Linux 2.6.14 以降)"
9538
9539 #.  As at 3.7
9540 #. type: Plain text
9541 #: build/C/man2/ptrace.2:680
9542 #, fuzzy
9543 #| msgid ""
9544 #| "For B<PTRACE_SYSEMU>, continue and stop on entry to the next syscall, "
9545 #| "which will not be executed.  For B<PTRACE_SYSEMU_SINGLESTEP>, do the same "
9546 #| "but also singlestep if not a syscall.  This call is used by programs like "
9547 #| "User Mode Linux that want to emulate all the child's system calls.  The "
9548 #| "I<data> argument is treated as for B<PTRACE_CONT>.  (I<addr> is ignored; "
9549 #| "not supported on all architectures.)"
9550 msgid ""
9551 "For B<PTRACE_SYSEMU>, continue and stop on entry to the next system call, "
9552 "which will not be executed.  For B<PTRACE_SYSEMU_SINGLESTEP>, do the same "
9553 "but also singlestep if not a system call.  This call is used by programs "
9554 "like User Mode Linux that want to emulate all the tracee's system calls.  "
9555 "The I<data> argument is treated as for B<PTRACE_CONT>.  The I<addr> argument "
9556 "is ignored.  These requests are currently supported only on x86."
9557 msgstr ""
9558 "B<PTRACE_SYSEMU> は、実行を再開し、次のシステムコールに入る時に停止させる。 "
9559 "システムコールは実行されない。 B<PTRACE_SYSEMU_SINGLESTEP> も同様だが、システ"
9560 "ムコールでない場合には 1 命令 (singlestep) だけ実行した時点でも停止させる。 "
9561 "このコールは User Mode Linux のように子プロセスのシステムコールを全て エミュ"
9562 "レートしようとするプログラムで使用される。 引き数 I<data> は B<PTRACE_CONT> "
9563 "の場合と同じ様に解釈される。 (I<addr> は無視される。 全てのアーキテクチャでサ"
9564 "ポートされているわけではない。)"
9565
9566 #. type: TP
9567 #: build/C/man2/ptrace.2:680
9568 #, no-wrap
9569 msgid "B<PTRACE_LISTEN> (since Linux 3.4)"
9570 msgstr " B<PTRACE_LISTEN> (since Linux 3.4)"
9571
9572 #. type: Plain text
9573 #: build/C/man2/ptrace.2:691
9574 msgid ""
9575 "Restart the stopped tracee, but prevent it from executing.  The resulting "
9576 "state of the tracee is similar to a process which has been stopped by a "
9577 "B<SIGSTOP> (or other stopping signal).  See the \"group-stop\" subsection "
9578 "for additional information.  B<PTRACE_LISTEN> works only on tracees attached "
9579 "by B<PTRACE_SEIZE>."
9580 msgstr ""
9581
9582 #. type: TP
9583 #: build/C/man2/ptrace.2:691
9584 #, no-wrap
9585 msgid "B<PTRACE_KILL>"
9586 msgstr "B<PTRACE_KILL>"
9587
9588 #. type: Plain text
9589 #: build/C/man2/ptrace.2:700
9590 #, fuzzy
9591 #| msgid ""
9592 #| "Sends the child a B<SIGKILL> to terminate it.  (I<addr> and I<data> are "
9593 #| "ignored.)"
9594 msgid ""
9595 "Send the tracee a B<SIGKILL> to terminate it.  (I<addr> and I<data> are "
9596 "ignored.)"
9597 msgstr ""
9598 "子プロセスに B<SIGKILL> を送り終了させる。(I<addr> と I<data> は無視される。)"
9599
9600 #.  [Note from Denys Vlasenko:
9601 #.      deprecation suggested by Oleg Nesterov. He prefers to deprecate it
9602 #.      instead of describing (and needing to support) PTRACE_KILL's quirks.]
9603 #. type: Plain text
9604 #: build/C/man2/ptrace.2:719
9605 msgid ""
9606 "I<This operation is deprecated; do not use it!> Instead, send a B<SIGKILL> "
9607 "directly using B<kill>(2)  or B<tgkill>(2).  The problem with B<PTRACE_KILL> "
9608 "is that it requires the tracee to be in signal-delivery-stop, otherwise it "
9609 "may not work (i.e., may complete successfully but won't kill the tracee).  "
9610 "By contrast, sending a B<SIGKILL> directly has no such limitation."
9611 msgstr ""
9612
9613 #. type: TP
9614 #: build/C/man2/ptrace.2:719
9615 #, no-wrap
9616 msgid "B<PTRACE_INTERRUPT> (since Linux 3.4)"
9617 msgstr " B<PTRACE_INTERRUPT> (since Linux 3.4)"
9618
9619 #. type: Plain text
9620 #: build/C/man2/ptrace.2:747
9621 msgid ""
9622 "Stop a tracee.  If the tracee is running or sleeping in kernel space and "
9623 "B<PTRACE_SYSCALL> is in effect, the system call is interrupted and syscall-"
9624 "exit-stop is reported.  (The interrupted system call is restarted when the "
9625 "tracee is restarted.)  If the tracee was already stopped by a signal and "
9626 "B<PTRACE_LISTEN> was sent to it, the tracee stops with B<PTRACE_EVENT_STOP> "
9627 "and I<WSTOPSIG(status)> returns the stop signal.  If any other ptrace-stop "
9628 "is generated at the same time (for example, if a signal is sent to the "
9629 "tracee), this ptrace-stop happens.  If none of the above applies (for "
9630 "example, if the tracee is running in user space), it stops with "
9631 "B<PTRACE_EVENT_STOP> with I<WSTOPSIG(status)> == B<SIGTRAP>.  "
9632 "B<PTRACE_INTERRUPT> only works on tracees attached by B<PTRACE_SEIZE>."
9633 msgstr ""
9634
9635 #. type: TP
9636 #: build/C/man2/ptrace.2:747
9637 #, no-wrap
9638 msgid "B<PTRACE_ATTACH>"
9639 msgstr "B<PTRACE_ATTACH>"
9640
9641 #.  No longer true (removed by Denys Vlasenko, 2011, who remarks:
9642 #.         "I think it isn't true in non-ancient 2.4 and in 2.6/3.x.
9643 #.          Basically, it's not true for any Linux in practical use.
9644 #.  ; the behavior of the tracee is as if it had done a
9645 #.  .BR PTRACE_TRACEME .
9646 #.  The calling process actually becomes the parent of the tracee
9647 #.  process for most purposes (e.g., it will receive
9648 #.  notification of tracee events and appears in
9649 #.  .BR ps (1)
9650 #.  output as the tracee's parent), but a
9651 #.  .BR getppid (2)
9652 #.  by the tracee will still return the PID of the original parent.
9653 #. type: Plain text
9654 #: build/C/man2/ptrace.2:775
9655 msgid ""
9656 "Attach to the process specified in I<pid>, making it a tracee of the calling "
9657 "process.  The tracee is sent a B<SIGSTOP>, but will not necessarily have "
9658 "stopped by the completion of this call; use B<waitpid>(2)  to wait for the "
9659 "tracee to stop.  See the \"Attaching and detaching\" subsection for "
9660 "additional information.  (I<addr> and I<data> are ignored.)"
9661 msgstr ""
9662
9663 #. type: TP
9664 #: build/C/man2/ptrace.2:775
9665 #, no-wrap
9666 msgid "B<PTRACE_SEIZE> (since Linux 3.4)"
9667 msgstr " B<PTRACE_SEIZE> (since Linux 3.4)"
9668
9669 #. type: Plain text
9670 #: build/C/man2/ptrace.2:795
9671 msgid ""
9672 "Attach to the process specified in I<pid>, making it a tracee of the calling "
9673 "process.  Unlike B<PTRACE_ATTACH>, B<PTRACE_SEIZE> does not stop the "
9674 "process.  Only a B<PTRACE_SEIZE>d process can accept B<PTRACE_INTERRUPT> and "
9675 "B<PTRACE_LISTEN> commands.  I<addr> must be zero.  I<data> contains a bit "
9676 "mask of ptrace options to activate immediately."
9677 msgstr ""
9678
9679 #. type: TP
9680 #: build/C/man2/ptrace.2:795
9681 #, no-wrap
9682 msgid "B<PTRACE_DETACH>"
9683 msgstr "B<PTRACE_DETACH>"
9684
9685 #. type: Plain text
9686 #: build/C/man2/ptrace.2:804
9687 #, fuzzy
9688 #| msgid ""
9689 #| "Restarts the stopped child as for B<PTRACE_CONT>, but first detaches from "
9690 #| "the process, undoing the reparenting effect of B<PTRACE_ATTACH>, and the "
9691 #| "effects of B<PTRACE_TRACEME>.  Although perhaps not intended, under Linux "
9692 #| "a traced child can be detached in this way regardless of which method was "
9693 #| "used to initiate tracing.  (I<addr> is ignored.)"
9694 msgid ""
9695 "Restart the stopped tracee as for B<PTRACE_CONT>, but first detach from it.  "
9696 "Under Linux, a tracee can be detached in this way regardless of which method "
9697 "was used to initiate tracing.  (I<addr> is ignored.)"
9698 msgstr ""
9699 "B<PTRACE_CONT> と同様に停止した子プロセスを再開する。ただし まずそのプロセス"
9700 "からの分離 (detach) を行い、 B<PTRACE_ATTACH> での親の切り換えによる効果と "
9701 "B<PTRACE_TRACEME> の効果を取り消す。意図したものではないだろうが、 Linux で"
9702 "は、トレースされている子プロセスはどのような方法でトレースを 開始されたとして"
9703 "も、この方法で分離 (detach) することができる。 (I<addr> は無視される。)"
9704
9705 #. type: SS
9706 #: build/C/man2/ptrace.2:804
9707 #, no-wrap
9708 msgid "Death under ptrace"
9709 msgstr ""
9710
9711 #. type: Plain text
9712 #: build/C/man2/ptrace.2:813
9713 msgid ""
9714 "When a (possibly multithreaded) process receives a killing signal (one whose "
9715 "disposition is set to B<SIG_DFL> and whose default action is to kill the "
9716 "process), all threads exit.  Tracees report their death to their tracer(s).  "
9717 "Notification of this event is delivered via B<waitpid>(2)."
9718 msgstr ""
9719
9720 #. type: Plain text
9721 #: build/C/man2/ptrace.2:822
9722 msgid ""
9723 "Note that the killing signal will first cause signal-delivery-stop (on one "
9724 "tracee only), and only after it is injected by the tracer (or after it was "
9725 "dispatched to a thread which isn't traced), will death from the signal "
9726 "happen on I<all> tracees within a multithreaded process.  (The term \"signal-"
9727 "delivery-stop\" is explained below.)"
9728 msgstr ""
9729
9730 #. type: Plain text
9731 #: build/C/man2/ptrace.2:834
9732 msgid ""
9733 "B<SIGKILL> does not generate signal-delivery-stop and therefore the tracer "
9734 "can't suppress it.  B<SIGKILL> kills even within system calls (syscall-exit-"
9735 "stop is not generated prior to death by B<SIGKILL>).  The net effect is that "
9736 "B<SIGKILL> always kills the process (all its threads), even if some threads "
9737 "of the process are ptraced."
9738 msgstr ""
9739
9740 #. type: Plain text
9741 #: build/C/man2/ptrace.2:839
9742 msgid ""
9743 "When the tracee calls B<_exit>(2), it reports its death to its tracer.  "
9744 "Other threads are not affected."
9745 msgstr ""
9746
9747 #. type: Plain text
9748 #: build/C/man2/ptrace.2:843
9749 msgid ""
9750 "When any thread executes B<exit_group>(2), every tracee in its thread group "
9751 "reports its death to its tracer."
9752 msgstr ""
9753
9754 #. type: Plain text
9755 #: build/C/man2/ptrace.2:857
9756 msgid ""
9757 "If the B<PTRACE_O_TRACEEXIT> option is on, B<PTRACE_EVENT_EXIT> will happen "
9758 "before actual death.  This applies to exits via B<exit>(2), "
9759 "B<exit_group>(2), and signal deaths (except B<SIGKILL>), and when threads "
9760 "are torn down on B<execve>(2)  in a multithreaded process."
9761 msgstr ""
9762
9763 #. type: Plain text
9764 #: build/C/man2/ptrace.2:882
9765 msgid ""
9766 "The tracer cannot assume that the ptrace-stopped tracee exists.  There are "
9767 "many scenarios when the tracee may die while stopped (such as B<SIGKILL>).  "
9768 "Therefore, the tracer must be prepared to handle an B<ESRCH> error on any "
9769 "ptrace operation.  Unfortunately, the same error is returned if the tracee "
9770 "exists but is not ptrace-stopped (for commands which require a stopped "
9771 "tracee), or if it is not traced by the process which issued the ptrace "
9772 "call.  The tracer needs to keep track of the stopped/running state of the "
9773 "tracee, and interpret B<ESRCH> as \"tracee died unexpectedly\" only if it "
9774 "knows that the tracee has been observed to enter ptrace-stop.  Note that "
9775 "there is no guarantee that I<waitpid(WNOHANG)> will reliably report the "
9776 "tracee's death status if a ptrace operation returned B<ESRCH>.  "
9777 "I<waitpid(WNOHANG)> may return 0 instead.  In other words, the tracee may be "
9778 "\"not yet fully dead\", but already refusing ptrace requests."
9779 msgstr ""
9780
9781 #. type: Plain text
9782 #: build/C/man2/ptrace.2:896
9783 msgid ""
9784 "The tracer can't assume that the tracee I<always> ends its life by reporting "
9785 "I<WIFEXITED(status)> or I<WIFSIGNALED(status)>; there are cases where this "
9786 "does not occur.  For example, if a thread other than thread group leader "
9787 "does an B<execve>(2), it disappears; its PID will never be seen again, and "
9788 "any subsequent ptrace stops will be reported under the thread group leader's "
9789 "PID."
9790 msgstr ""
9791
9792 #. type: SS
9793 #: build/C/man2/ptrace.2:896
9794 #, no-wrap
9795 msgid "Stopped states"
9796 msgstr ""
9797
9798 #. type: Plain text
9799 #: build/C/man2/ptrace.2:918
9800 msgid ""
9801 "A tracee can be in two states: running or stopped.  For the purposes of "
9802 "ptrace, a tracee which is blocked in a system call (such as B<read>(2), "
9803 "B<pause>(2), etc.)  is nevertheless considered to be running, even if the "
9804 "tracee is blocked for a long time.  The state of the tracee after "
9805 "B<PTRACE_LISTEN> is somewhat of a gray area: it is not in any ptrace-stop "
9806 "(ptrace commands won't work on it, and it will deliver B<waitpid>(2)  "
9807 "notifications), but it also may be considered \"stopped\" because it is not "
9808 "executing instructions (is not scheduled), and if it was in group-stop "
9809 "before B<PTRACE_LISTEN>, it will not respond to signals until B<SIGCONT> is "
9810 "received."
9811 msgstr ""
9812
9813 #. type: Plain text
9814 #: build/C/man2/ptrace.2:922
9815 msgid ""
9816 "There are many kinds of states when the tracee is stopped, and in ptrace "
9817 "discussions they are often conflated.  Therefore, it is important to use "
9818 "precise terms."
9819 msgstr ""
9820
9821 #. type: Plain text
9822 #: build/C/man2/ptrace.2:933
9823 msgid ""
9824 "In this manual page, any stopped state in which the tracee is ready to "
9825 "accept ptrace commands from the tracer is called I<ptrace-stop>.  Ptrace-"
9826 "stops can be further subdivided into I<signal-delivery-stop>, I<group-stop>, "
9827 "I<syscall-stop>, and so on.  These stopped states are described in detail "
9828 "below."
9829 msgstr ""
9830
9831 #. type: Plain text
9832 #: build/C/man2/ptrace.2:938
9833 msgid ""
9834 "When the running tracee enters ptrace-stop, it notifies its tracer using "
9835 "B<waitpid>(2)  (or one of the other \"wait\" system calls).  Most of this "
9836 "manual page assumes that the tracer waits with:"
9837 msgstr ""
9838
9839 #. type: Plain text
9840 #: build/C/man2/ptrace.2:940
9841 #, no-wrap
9842 msgid "    pid = waitpid(pid_or_minus_1, &status, __WALL);\n"
9843 msgstr ""
9844
9845 #.  Denys Vlasenko:
9846 #.      Do we require __WALL usage, or will just using 0 be ok? (With 0,
9847 #.      I am not 100% sure there aren't ugly corner cases.) Are the
9848 #.      rules different if user wants to use waitid? Will waitid require
9849 #.      WEXITED?
9850 #. type: Plain text
9851 #: build/C/man2/ptrace.2:952
9852 msgid ""
9853 "Ptrace-stopped tracees are reported as returns with I<pid> greater than 0 "
9854 "and I<WIFSTOPPED(status)> true."
9855 msgstr ""
9856
9857 #. type: Plain text
9858 #: build/C/man2/ptrace.2:960
9859 msgid ""
9860 "The B<__WALL> flag does not include the B<WSTOPPED> and B<WEXITED> flags, "
9861 "but implies their functionality."
9862 msgstr ""
9863
9864 #. type: Plain text
9865 #: build/C/man2/ptrace.2:967
9866 msgid ""
9867 "Setting the B<WCONTINUED> flag when calling B<waitpid>(2)  is not "
9868 "recommended: the \"continued\" state is per-process and consuming it can "
9869 "confuse the real parent of the tracee."
9870 msgstr ""
9871
9872 #. type: Plain text
9873 #: build/C/man2/ptrace.2:975
9874 msgid ""
9875 "Use of the B<WNOHANG> flag may cause B<waitpid>(2)  to return 0 (\"no wait "
9876 "results available yet\")  even if the tracer knows there should be a "
9877 "notification.  Example:"
9878 msgstr ""
9879
9880 #. type: Plain text
9881 #: build/C/man2/ptrace.2:984
9882 #, no-wrap
9883 msgid ""
9884 "    errno = 0;\n"
9885 "    ptrace(PTRACE_CONT, pid, 0L, 0L);\n"
9886 "    if (errno == ESRCH) {\n"
9887 "        /* tracee is dead */\n"
9888 "        r = waitpid(tracee, &status, __WALL | WNOHANG);\n"
9889 "        /* r can still be 0 here! */\n"
9890 "    }\n"
9891 msgstr ""
9892
9893 #. type: Plain text
9894 #: build/C/man2/ptrace.2:1007
9895 msgid ""
9896 "The following kinds of ptrace-stops exist: signal-delivery-stops, group-"
9897 "stops, B<PTRACE_EVENT> stops, syscall-stops.  They all are reported by "
9898 "B<waitpid>(2)  with I<WIFSTOPPED(status)> true.  They may be differentiated "
9899 "by examining the value I<statusE<gt>E<gt>8>, and if there is ambiguity in "
9900 "that value, by querying B<PTRACE_GETSIGINFO>.  (Note: the "
9901 "I<WSTOPSIG(status)> macro can't be used to perform this examination, because "
9902 "it returns the value I<(statusE<gt>E<gt>8)\\ &\\ 0xff>.)"
9903 msgstr ""
9904
9905 #. type: SS
9906 #: build/C/man2/ptrace.2:1007
9907 #, no-wrap
9908 msgid "Signal-delivery-stop"
9909 msgstr ""
9910
9911 #. type: Plain text
9912 #: build/C/man2/ptrace.2:1027
9913 msgid ""
9914 "When a (possibly multithreaded) process receives any signal except "
9915 "B<SIGKILL>, the kernel selects an arbitrary thread which handles the "
9916 "signal.  (If the signal is generated with B<tgkill>(2), the target thread "
9917 "can be explicitly selected by the caller.)  If the selected thread is "
9918 "traced, it enters signal-delivery-stop.  At this point, the signal is not "
9919 "yet delivered to the process, and can be suppressed by the tracer.  If the "
9920 "tracer doesn't suppress the signal, it passes the signal to the tracee in "
9921 "the next ptrace restart request.  This second step of signal delivery is "
9922 "called I<signal injection> in this manual page.  Note that if the signal is "
9923 "blocked, signal-delivery-stop doesn't happen until the signal is unblocked, "
9924 "with the usual exception that B<SIGSTOP> can't be blocked."
9925 msgstr ""
9926
9927 #. type: Plain text
9928 #: build/C/man2/ptrace.2:1041
9929 msgid ""
9930 "Signal-delivery-stop is observed by the tracer as B<waitpid>(2)  returning "
9931 "with I<WIFSTOPPED(status)> true, with the signal returned by "
9932 "I<WSTOPSIG(status)>.  If the signal is B<SIGTRAP>, this may be a different "
9933 "kind of ptrace-stop; see the \"Syscall-stops\" and \"execve\" sections below "
9934 "for details.  If I<WSTOPSIG(status)> returns a stopping signal, this may be "
9935 "a group-stop; see below."
9936 msgstr ""
9937
9938 #. type: SS
9939 #: build/C/man2/ptrace.2:1041
9940 #, no-wrap
9941 msgid "Signal injection and suppression"
9942 msgstr ""
9943
9944 #. type: Plain text
9945 #: build/C/man2/ptrace.2:1044
9946 msgid ""
9947 "After signal-delivery-stop is observed by the tracer, the tracer should "
9948 "restart the tracee with the call"
9949 msgstr ""
9950
9951 #. type: Plain text
9952 #: build/C/man2/ptrace.2:1046
9953 #, no-wrap
9954 msgid "    ptrace(PTRACE_restart, pid, 0, sig)\n"
9955 msgstr ""
9956
9957 #. type: Plain text
9958 #: build/C/man2/ptrace.2:1059
9959 msgid ""
9960 "where B<PTRACE_restart> is one of the restarting ptrace requests.  If I<sig> "
9961 "is 0, then a signal is not delivered.  Otherwise, the signal I<sig> is "
9962 "delivered.  This operation is called I<signal injection> in this manual "
9963 "page, to distinguish it from signal-delivery-stop."
9964 msgstr ""
9965
9966 #. type: Plain text
9967 #: build/C/man2/ptrace.2:1065
9968 msgid ""
9969 "The I<sig> value may be different from the I<WSTOPSIG(status)> value: the "
9970 "tracer can cause a different signal to be injected."
9971 msgstr ""
9972
9973 #. type: Plain text
9974 #: build/C/man2/ptrace.2:1081
9975 msgid ""
9976 "Note that a suppressed signal still causes system calls to return "
9977 "prematurely.  In this case, system calls will be restarted: the tracer will "
9978 "observe the tracee to reexecute the interrupted system call (or "
9979 "B<restart_syscall>(2)  system call for a few system calls which use a "
9980 "different mechanism for restarting) if the tracer uses B<PTRACE_SYSCALL>.  "
9981 "Even system calls (such as B<poll>(2))  which are not restartable after "
9982 "signal are restarted after signal is suppressed; however, kernel bugs exist "
9983 "which cause some system calls to fail with B<EINTR> even though no "
9984 "observable signal is injected to the tracee."
9985 msgstr ""
9986
9987 #. type: Plain text
9988 #: build/C/man2/ptrace.2:1092
9989 msgid ""
9990 "Restarting ptrace commands issued in ptrace-stops other than signal-delivery-"
9991 "stop are not guaranteed to inject a signal, even if I<sig> is nonzero.  No "
9992 "error is reported; a nonzero I<sig> may simply be ignored.  Ptrace users "
9993 "should not try to \"create a new signal\" this way: use B<tgkill>(2)  "
9994 "instead."
9995 msgstr ""
9996
9997 #. type: Plain text
9998 #: build/C/man2/ptrace.2:1099
9999 msgid ""
10000 "The fact that signal injection requests may be ignored when restarting the "
10001 "tracee after ptrace stops that are not signal-delivery-stops is a cause of "
10002 "confusion among ptrace users.  One typical scenario is that the tracer "
10003 "observes group-stop, mistakes it for signal-delivery-stop, restarts the "
10004 "tracee with"
10005 msgstr ""
10006
10007 #. type: Plain text
10008 #: build/C/man2/ptrace.2:1101
10009 #, no-wrap
10010 msgid "    ptrace(PTRACE_restart, pid, 0, stopsig)\n"
10011 msgstr ""
10012
10013 #. type: Plain text
10014 #: build/C/man2/ptrace.2:1107
10015 msgid ""
10016 "with the intention of injecting I<stopsig>, but I<stopsig> gets ignored and "
10017 "the tracee continues to run."
10018 msgstr ""
10019
10020 #. type: Plain text
10021 #: build/C/man2/ptrace.2:1127
10022 msgid ""
10023 "The B<SIGCONT> signal has a side effect of waking up (all threads of)  a "
10024 "group-stopped process.  This side effect happens before signal-delivery-"
10025 "stop.  The tracer can't suppress this side effect (it can only suppress "
10026 "signal injection, which only causes the B<SIGCONT> handler to not be "
10027 "executed in the tracee, if such a handler is installed).  In fact, waking up "
10028 "from group-stop may be followed by signal-delivery-stop for signal(s)  "
10029 "I<other than> B<SIGCONT>, if they were pending when B<SIGCONT> was "
10030 "delivered.  In other words, B<SIGCONT> may be not the first signal observed "
10031 "by the tracee after it was sent."
10032 msgstr ""
10033
10034 #. type: Plain text
10035 #: build/C/man2/ptrace.2:1131
10036 msgid ""
10037 "Stopping signals cause (all threads of) a process to enter group-stop.  This "
10038 "side effect happens after signal injection, and therefore can be suppressed "
10039 "by the tracer."
10040 msgstr ""
10041
10042 #
10043 #.  In the Linux 2.4 sources, in arch/i386/kernel/signal.c::do_signal(),
10044 #.  there is:
10045 #.              /* The debugger continued.  Ignore SIGSTOP.  */
10046 #.              if (signr == SIGSTOP)
10047 #.                      continue;
10048 #. type: Plain text
10049 #: build/C/man2/ptrace.2:1141
10050 msgid "In Linux 2.4 and earlier, the B<SIGSTOP> signal can't be injected."
10051 msgstr ""
10052
10053 #. type: Plain text
10054 #: build/C/man2/ptrace.2:1158
10055 msgid ""
10056 "B<PTRACE_GETSIGINFO> can be used to retrieve a I<siginfo_t> structure which "
10057 "corresponds to the delivered signal.  B<PTRACE_SETSIGINFO> may be used to "
10058 "modify it.  If B<PTRACE_SETSIGINFO> has been used to alter I<siginfo_t>, the "
10059 "I<si_signo> field and the I<sig> parameter in the restarting command must "
10060 "match, otherwise the result is undefined."
10061 msgstr ""
10062
10063 #. type: SS
10064 #: build/C/man2/ptrace.2:1158
10065 #, no-wrap
10066 msgid "Group-stop"
10067 msgstr ""
10068
10069 #. type: Plain text
10070 #: build/C/man2/ptrace.2:1170
10071 msgid ""
10072 "When a (possibly multithreaded) process receives a stopping signal, all "
10073 "threads stop.  If some threads are traced, they enter a group-stop.  Note "
10074 "that the stopping signal will first cause signal-delivery-stop (on one "
10075 "tracee only), and only after it is injected by the tracer (or after it was "
10076 "dispatched to a thread which isn't traced), will group-stop be initiated on "
10077 "I<all> tracees within the multithreaded process.  As usual, every tracee "
10078 "reports its group-stop separately to the corresponding tracer."
10079 msgstr ""
10080
10081 #. type: Plain text
10082 #: build/C/man2/ptrace.2:1179
10083 msgid ""
10084 "Group-stop is observed by the tracer as B<waitpid>(2)  returning with "
10085 "I<WIFSTOPPED(status)> true, with the stopping signal available via "
10086 "I<WSTOPSIG(status)>.  The same result is returned by some other classes of "
10087 "ptrace-stops, therefore the recommended practice is to perform the call"
10088 msgstr ""
10089
10090 #. type: Plain text
10091 #: build/C/man2/ptrace.2:1181
10092 #, no-wrap
10093 msgid "    ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo)\n"
10094 msgstr ""
10095
10096 #. type: Plain text
10097 #: build/C/man2/ptrace.2:1202
10098 msgid ""
10099 "The call can be avoided if the signal is not B<SIGSTOP>, B<SIGTSTP>, "
10100 "B<SIGTTIN>, or B<SIGTTOU>; only these four signals are stopping signals.  If "
10101 "the tracer sees something else, it can't be a group-stop.  Otherwise, the "
10102 "tracer needs to call B<PTRACE_GETSIGINFO>.  If B<PTRACE_GETSIGINFO> fails "
10103 "with B<EINVAL>, then it is definitely a group-stop.  (Other failure codes "
10104 "are possible, such as B<ESRCH> (\"no such process\") if a B<SIGKILL> killed "
10105 "the tracee.)"
10106 msgstr ""
10107
10108 #. type: Plain text
10109 #: build/C/man2/ptrace.2:1212
10110 msgid ""
10111 "If tracee was attached using B<PTRACE_SEIZE>, group-stop is indicated by "
10112 "B<PTRACE_EVENT_STOP>: I<statusE<gt>E<gt>16 == PTRACE_EVENT_STOP>.  This "
10113 "allows detection of group-stops without requiring an extra "
10114 "B<PTRACE_GETSIGINFO> call."
10115 msgstr ""
10116
10117 #. type: Plain text
10118 #: build/C/man2/ptrace.2:1221
10119 msgid ""
10120 "As of Linux 2.6.38, after the tracer sees the tracee ptrace-stop and until "
10121 "it restarts or kills it, the tracee will not run, and will not send "
10122 "notifications (except B<SIGKILL> death) to the tracer, even if the tracer "
10123 "enters into another B<waitpid>(2)  call."
10124 msgstr ""
10125
10126 #. type: Plain text
10127 #: build/C/man2/ptrace.2:1235
10128 msgid ""
10129 "The kernel behavior described in the previous paragraph causes a problem "
10130 "with transparent handling of stopping signals.  If the tracer restarts the "
10131 "tracee after group-stop, the stopping signal is effectively ignored\\(emthe "
10132 "tracee doesn't remain stopped, it runs.  If the tracer doesn't restart the "
10133 "tracee before entering into the next B<waitpid>(2), future B<SIGCONT> "
10134 "signals will not be reported to the tracer; this would cause the B<SIGCONT> "
10135 "signals to have no effect on the tracee."
10136 msgstr ""
10137
10138 #. type: Plain text
10139 #: build/C/man2/ptrace.2:1246
10140 msgid ""
10141 "Since Linux 3.4, there is a method to overcome this problem: instead of "
10142 "B<PTRACE_CONT>, a B<PTRACE_LISTEN> command can be used to restart a tracee "
10143 "in a way where it does not execute, but waits for a new event which it can "
10144 "report via B<waitpid>(2)  (such as when it is restarted by a B<SIGCONT>)."
10145 msgstr ""
10146
10147 #. type: SS
10148 #: build/C/man2/ptrace.2:1246
10149 #, no-wrap
10150 msgid "PTRACE_EVENT stops"
10151 msgstr ""
10152
10153 #. type: Plain text
10154 #: build/C/man2/ptrace.2:1252
10155 msgid ""
10156 "If the tracer sets B<PTRACE_O_TRACE_*> options, the tracee will enter ptrace-"
10157 "stops called B<PTRACE_EVENT> stops."
10158 msgstr ""
10159
10160 #. type: Plain text
10161 #: build/C/man2/ptrace.2:1266
10162 msgid ""
10163 "B<PTRACE_EVENT> stops are observed by the tracer as B<waitpid>(2)  returning "
10164 "with I<WIFSTOPPED(status)>, and I<WSTOPSIG(status)> returns B<SIGTRAP>.  An "
10165 "additional bit is set in the higher byte of the status word: the value "
10166 "I<statusE<gt>E<gt>8> will be"
10167 msgstr ""
10168
10169 #. type: Plain text
10170 #: build/C/man2/ptrace.2:1268
10171 #, no-wrap
10172 msgid "    (SIGTRAP | PTRACE_EVENT_foo E<lt>E<lt> 8).\n"
10173 msgstr ""
10174
10175 #. type: Plain text
10176 #: build/C/man2/ptrace.2:1270
10177 msgid "The following events exist:"
10178 msgstr ""
10179
10180 #. type: TP
10181 #: build/C/man2/ptrace.2:1270
10182 #, no-wrap
10183 msgid "B<PTRACE_EVENT_VFORK>"
10184 msgstr "B<PTRACE_EVENT_VFORK>"
10185
10186 #. type: Plain text
10187 #: build/C/man2/ptrace.2:1283
10188 msgid ""
10189 "Stop before return from B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> "
10190 "flag.  When the tracee is continued after this stop, it will wait for child "
10191 "to exit/exec before continuing its execution (in other words, the usual "
10192 "behavior on B<vfork>(2))."
10193 msgstr ""
10194
10195 #. type: TP
10196 #: build/C/man2/ptrace.2:1283
10197 #, no-wrap
10198 msgid "B<PTRACE_EVENT_FORK>"
10199 msgstr "B<PTRACE_EVENT_FORK>"
10200
10201 #. type: Plain text
10202 #: build/C/man2/ptrace.2:1291
10203 msgid ""
10204 "Stop before return from B<fork>(2)  or B<clone>(2)  with the exit signal set "
10205 "to B<SIGCHLD>."
10206 msgstr ""
10207
10208 #. type: TP
10209 #: build/C/man2/ptrace.2:1291
10210 #, no-wrap
10211 msgid "B<PTRACE_EVENT_CLONE>"
10212 msgstr "B<PTRACE_EVENT_CLONE>"
10213
10214 #. type: Plain text
10215 #: build/C/man2/ptrace.2:1295
10216 msgid "Stop before return from B<clone>(2)."
10217 msgstr ""
10218
10219 #. type: TP
10220 #: build/C/man2/ptrace.2:1295
10221 #, no-wrap
10222 msgid "B<PTRACE_EVENT_VFORK_DONE>"
10223 msgstr "B<PTRACE_EVENT_VFORK_DONE>"
10224
10225 #. type: Plain text
10226 #: build/C/man2/ptrace.2:1305
10227 msgid ""
10228 "Stop before return from B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> "
10229 "flag, but after the child unblocked this tracee by exiting or execing."
10230 msgstr ""
10231
10232 #. type: Plain text
10233 #: build/C/man2/ptrace.2:1311
10234 msgid ""
10235 "For all four stops described above, the stop occurs in the parent (i.e., the "
10236 "tracee), not in the newly created thread.  B<PTRACE_GETEVENTMSG> can be used "
10237 "to retrieve the new thread's ID."
10238 msgstr ""
10239
10240 #. type: TP
10241 #: build/C/man2/ptrace.2:1311
10242 #, no-wrap
10243 msgid "B<PTRACE_EVENT_EXEC>"
10244 msgstr "B<PTRACE_EVENT_EXEC>"
10245
10246 #. type: Plain text
10247 #: build/C/man2/ptrace.2:1318
10248 msgid ""
10249 "Stop before return from B<execve>(2).  Since Linux 3.0, "
10250 "B<PTRACE_GETEVENTMSG> returns the former thread ID."
10251 msgstr ""
10252
10253 #. type: TP
10254 #: build/C/man2/ptrace.2:1318
10255 #, no-wrap
10256 msgid "B<PTRACE_EVENT_EXIT>"
10257 msgstr "B<PTRACE_EVENT_EXIT>"
10258
10259 #. type: Plain text
10260 #: build/C/man2/ptrace.2:1334
10261 msgid ""
10262 "Stop before exit (including death from B<exit_group>(2)), signal death, or "
10263 "exit caused by B<execve>(2)  in a multithreaded process.  "
10264 "B<PTRACE_GETEVENTMSG> returns the exit status.  Registers can be examined "
10265 "(unlike when \"real\" exit happens).  The tracee is still alive; it needs to "
10266 "be B<PTRACE_CONT>ed or B<PTRACE_DETACH>ed to finish exiting."
10267 msgstr ""
10268
10269 #. type: TP
10270 #: build/C/man2/ptrace.2:1334
10271 #, no-wrap
10272 msgid "B<PTRACE_EVENT_STOP>"
10273 msgstr "B<PTRACE_EVENT_STOP>"
10274
10275 #. type: Plain text
10276 #: build/C/man2/ptrace.2:1346
10277 msgid ""
10278 "Stop induced by B<PTRACE_INTERRUPT> command, or group-stop, or initial "
10279 "ptrace-stop when a new child is attached (only if attached using "
10280 "B<PTRACE_SEIZE>), or B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used."
10281 msgstr ""
10282
10283 #. type: TP
10284 #: build/C/man2/ptrace.2:1346
10285 #, fuzzy, no-wrap
10286 #| msgid "B<PTRACE_EVENT_STOP>"
10287 msgid "B<PTRACE_EVENT_SECCOMP>"
10288 msgstr "B<PTRACE_EVENT_STOP>"
10289
10290 #. type: Plain text
10291 #: build/C/man2/ptrace.2:1357
10292 msgid ""
10293 "Stop triggered by a B<seccomp>(2)  rule on tracee syscall entry when "
10294 "B<PTRACE_O_TRACESECCOMP> has been set by the tracer.  The seccomp event "
10295 "message data (from the B<SECCOMP_RET_DATA> portion of the seccomp filter "
10296 "rule) can be retrieved with B<PTRACE_GETEVENTMSG>."
10297 msgstr ""
10298
10299 #. type: Plain text
10300 #: build/C/man2/ptrace.2:1369
10301 msgid ""
10302 "B<PTRACE_GETSIGINFO> on B<PTRACE_EVENT> stops returns B<SIGTRAP> in "
10303 "I<si_signo>, with I<si_code> set to I<(eventE<lt>E<lt>8)\\ |\\ SIGTRAP>."
10304 msgstr ""
10305
10306 #. type: SS
10307 #: build/C/man2/ptrace.2:1369
10308 #, no-wrap
10309 msgid "Syscall-stops"
10310 msgstr ""
10311
10312 #. type: Plain text
10313 #: build/C/man2/ptrace.2:1382
10314 msgid ""
10315 "If the tracee was restarted by B<PTRACE_SYSCALL>, the tracee enters syscall-"
10316 "enter-stop just prior to entering any system call.  If the tracer restarts "
10317 "the tracee with B<PTRACE_SYSCALL>, the tracee enters syscall-exit-stop when "
10318 "the system call is finished, or if it is interrupted by a signal.  (That is, "
10319 "signal-delivery-stop never happens between syscall-enter-stop and syscall-"
10320 "exit-stop; it happens I<after> syscall-exit-stop.)"
10321 msgstr ""
10322
10323 #. type: Plain text
10324 #: build/C/man2/ptrace.2:1396
10325 msgid ""
10326 "Other possibilities are that the tracee may stop in a B<PTRACE_EVENT> stop, "
10327 "exit (if it entered B<_exit>(2)  or B<exit_group>(2)), be killed by "
10328 "B<SIGKILL>, or die silently (if it is a thread group leader, the "
10329 "B<execve>(2)  happened in another thread, and that thread is not traced by "
10330 "the same tracer; this situation is discussed later)."
10331 msgstr ""
10332
10333 #. type: Plain text
10334 #: build/C/man2/ptrace.2:1411
10335 msgid ""
10336 "Syscall-enter-stop and syscall-exit-stop are observed by the tracer as "
10337 "B<waitpid>(2)  returning with I<WIFSTOPPED(status)> true, and "
10338 "I<WSTOPSIG(status)> giving B<SIGTRAP>.  If the B<PTRACE_O_TRACESYSGOOD> "
10339 "option was set by the tracer, then I<WSTOPSIG(status)> will give the value "
10340 "I<(SIGTRAP\\ |\\ 0x80)>."
10341 msgstr ""
10342
10343 #. type: Plain text
10344 #: build/C/man2/ptrace.2:1417
10345 msgid ""
10346 "Syscall-stops can be distinguished from signal-delivery-stop with B<SIGTRAP> "
10347 "by querying B<PTRACE_GETSIGINFO> for the following cases:"
10348 msgstr ""
10349
10350 #. type: TP
10351 #: build/C/man2/ptrace.2:1417
10352 #, no-wrap
10353 msgid "I<si_code> E<lt>= 0"
10354 msgstr ""
10355
10356 #. type: Plain text
10357 #: build/C/man2/ptrace.2:1429
10358 msgid ""
10359 "B<SIGTRAP> was delivered as a result of a user-space action, for example, a "
10360 "system call (B<tgkill>(2), B<kill>(2), B<sigqueue>(3), etc.), expiration of "
10361 "a POSIX timer, change of state on a POSIX message queue, or completion of an "
10362 "asynchronous I/O request."
10363 msgstr ""
10364
10365 #. type: TP
10366 #: build/C/man2/ptrace.2:1429
10367 #, no-wrap
10368 msgid "I<si_code> == SI_KERNEL (0x80)"
10369 msgstr ""
10370
10371 #. type: Plain text
10372 #: build/C/man2/ptrace.2:1433
10373 msgid "B<SIGTRAP> was sent by the kernel."
10374 msgstr ""
10375
10376 #. type: TP
10377 #: build/C/man2/ptrace.2:1433
10378 #, no-wrap
10379 msgid "I<si_code> == SIGTRAP or I<si_code> == (SIGTRAP|0x80)"
10380 msgstr ""
10381
10382 #. type: Plain text
10383 #: build/C/man2/ptrace.2:1436
10384 msgid "This is a syscall-stop."
10385 msgstr ""
10386
10387 #. type: Plain text
10388 #: build/C/man2/ptrace.2:1441
10389 msgid ""
10390 "However, syscall-stops happen very often (twice per system call), and "
10391 "performing B<PTRACE_GETSIGINFO> for every syscall-stop may be somewhat "
10392 "expensive."
10393 msgstr ""
10394
10395 #. type: Plain text
10396 #: build/C/man2/ptrace.2:1464
10397 msgid ""
10398 "Some architectures allow the cases to be distinguished by examining "
10399 "registers.  For example, on x86, I<rax> == -B<ENOSYS> in syscall-enter-"
10400 "stop.  Since B<SIGTRAP> (like any other signal) always happens I<after> "
10401 "syscall-exit-stop, and at this point I<rax> almost never contains -"
10402 "B<ENOSYS>, the B<SIGTRAP> looks like \"syscall-stop which is not syscall-"
10403 "enter-stop\"; in other words, it looks like a \"stray syscall-exit-stop\" "
10404 "and can be detected this way.  But such detection is fragile and is best "
10405 "avoided."
10406 msgstr ""
10407
10408 #. type: Plain text
10409 #: build/C/man2/ptrace.2:1470
10410 msgid ""
10411 "Using the B<PTRACE_O_TRACESYSGOOD> option is the recommended method to "
10412 "distinguish syscall-stops from other kinds of ptrace-stops, since it is "
10413 "reliable and does not incur a performance penalty."
10414 msgstr ""
10415
10416 #. type: Plain text
10417 #: build/C/man2/ptrace.2:1481
10418 msgid ""
10419 "Syscall-enter-stop and syscall-exit-stop are indistinguishable from each "
10420 "other by the tracer.  The tracer needs to keep track of the sequence of "
10421 "ptrace-stops in order to not misinterpret syscall-enter-stop as syscall-exit-"
10422 "stop or vice versa.  The rule is that syscall-enter-stop is always followed "
10423 "by syscall-exit-stop, B<PTRACE_EVENT> stop or the tracee's death; no other "
10424 "kinds of ptrace-stop can occur in between."
10425 msgstr ""
10426
10427 #. type: Plain text
10428 #: build/C/man2/ptrace.2:1486
10429 msgid ""
10430 "If after syscall-enter-stop, the tracer uses a restarting command other than "
10431 "B<PTRACE_SYSCALL>, syscall-exit-stop is not generated."
10432 msgstr ""
10433
10434 #. type: Plain text
10435 #: build/C/man2/ptrace.2:1498
10436 msgid ""
10437 "B<PTRACE_GETSIGINFO> on syscall-stops returns B<SIGTRAP> in I<si_signo>, "
10438 "with I<si_code> set to B<SIGTRAP> or I<(SIGTRAP|0x80)>."
10439 msgstr ""
10440
10441 #. type: SS
10442 #: build/C/man2/ptrace.2:1498
10443 #, no-wrap
10444 msgid "PTRACE_SINGLESTEP, PTRACE_SYSEMU, PTRACE_SYSEMU_SINGLESTEP stops"
10445 msgstr ""
10446
10447 #
10448 #.  FIXME .
10449 #.  document stops occurring with PTRACE_SINGLESTEP, PTRACE_SYSEMU,
10450 #.  PTRACE_SYSEMU_SINGLESTEP
10451 #. type: Plain text
10452 #: build/C/man2/ptrace.2:1504
10453 msgid "[Details of these kinds of stops are yet to be documented.]"
10454 msgstr ""
10455
10456 #. type: SS
10457 #: build/C/man2/ptrace.2:1504
10458 #, no-wrap
10459 msgid "Informational and restarting ptrace commands"
10460 msgstr ""
10461
10462 #. type: Plain text
10463 #: build/C/man2/ptrace.2:1514
10464 msgid ""
10465 "Most ptrace commands (all except B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, "
10466 "B<PTRACE_TRACEME>, B<PTRACE_INTERRUPT>, and B<PTRACE_KILL>)  require the "
10467 "tracee to be in a ptrace-stop, otherwise they fail with B<ESRCH>."
10468 msgstr ""
10469
10470 #. type: Plain text
10471 #: build/C/man2/ptrace.2:1519
10472 msgid ""
10473 "When the tracee is in ptrace-stop, the tracer can read and write data to the "
10474 "tracee using informational commands.  These commands leave the tracee in "
10475 "ptrace-stopped state:"
10476 msgstr ""
10477
10478 #. type: Plain text
10479 #: build/C/man2/ptrace.2:1531
10480 #, no-wrap
10481 msgid ""
10482 "    ptrace(PTRACE_PEEKTEXT/PEEKDATA/PEEKUSER, pid, addr, 0);\n"
10483 "    ptrace(PTRACE_POKETEXT/POKEDATA/POKEUSER, pid, addr, long_val);\n"
10484 "    ptrace(PTRACE_GETREGS/GETFPREGS, pid, 0, &struct);\n"
10485 "    ptrace(PTRACE_SETREGS/SETFPREGS, pid, 0, &struct);\n"
10486 "    ptrace(PTRACE_GETREGSET, pid, NT_foo, &iov);\n"
10487 "    ptrace(PTRACE_SETREGSET, pid, NT_foo, &iov);\n"
10488 "    ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo);\n"
10489 "    ptrace(PTRACE_SETSIGINFO, pid, 0, &siginfo);\n"
10490 "    ptrace(PTRACE_GETEVENTMSG, pid, 0, &long_var);\n"
10491 "    ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
10492 msgstr ""
10493
10494 #. type: Plain text
10495 #: build/C/man2/ptrace.2:1543
10496 msgid ""
10497 "Note that some errors are not reported.  For example, setting signal "
10498 "information (I<siginfo>)  may have no effect in some ptrace-stops, yet the "
10499 "call may succeed (return 0 and not set I<errno>); querying "
10500 "B<PTRACE_GETEVENTMSG> may succeed and return some random value if current "
10501 "ptrace-stop is not documented as returning a meaningful event message."
10502 msgstr ""
10503
10504 #. type: Plain text
10505 #: build/C/man2/ptrace.2:1545
10506 msgid "The call"
10507 msgstr ""
10508
10509 #. type: Plain text
10510 #: build/C/man2/ptrace.2:1547
10511 #, no-wrap
10512 msgid "    ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
10513 msgstr ""
10514
10515 #. type: Plain text
10516 #: build/C/man2/ptrace.2:1556
10517 msgid ""
10518 "affects one tracee.  The tracee's current flags are replaced.  Flags are "
10519 "inherited by new tracees created and \"auto-attached\" via active "
10520 "B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, or B<PTRACE_O_TRACECLONE> "
10521 "options."
10522 msgstr ""
10523
10524 #. type: Plain text
10525 #: build/C/man2/ptrace.2:1559
10526 msgid ""
10527 "Another group of commands makes the ptrace-stopped tracee run.  They have "
10528 "the form:"
10529 msgstr ""
10530
10531 #. type: Plain text
10532 #: build/C/man2/ptrace.2:1561
10533 #, no-wrap
10534 msgid "    ptrace(cmd, pid, 0, sig);\n"
10535 msgstr ""
10536
10537 #. type: Plain text
10538 #: build/C/man2/ptrace.2:1582
10539 msgid ""
10540 "where I<cmd> is B<PTRACE_CONT>, B<PTRACE_LISTEN>, B<PTRACE_DETACH>, "
10541 "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>, B<PTRACE_SYSEMU>, or "
10542 "B<PTRACE_SYSEMU_SINGLESTEP>.  If the tracee is in signal-delivery-stop, "
10543 "I<sig> is the signal to be injected (if it is nonzero).  Otherwise, I<sig> "
10544 "may be ignored.  (When restarting a tracee from a ptrace-stop other than "
10545 "signal-delivery-stop, recommended practice is to always pass 0 in I<sig>.)"
10546 msgstr ""
10547
10548 #. type: SS
10549 #: build/C/man2/ptrace.2:1582
10550 #, no-wrap
10551 msgid "Attaching and detaching"
10552 msgstr ""
10553
10554 #. type: Plain text
10555 #: build/C/man2/ptrace.2:1584
10556 msgid "A thread can be attached to the tracer using the call"
10557 msgstr ""
10558
10559 #. type: Plain text
10560 #: build/C/man2/ptrace.2:1586
10561 #, no-wrap
10562 msgid "    ptrace(PTRACE_ATTACH, pid, 0, 0);\n"
10563 msgstr ""
10564
10565 #. type: Plain text
10566 #: build/C/man2/ptrace.2:1588 build/C/man2/ptrace.2:2090
10567 msgid "or"
10568 msgstr ""
10569
10570 #. type: Plain text
10571 #: build/C/man2/ptrace.2:1590
10572 #, no-wrap
10573 msgid "    ptrace(PTRACE_SEIZE, pid, 0, PTRACE_O_flags);\n"
10574 msgstr ""
10575
10576 #
10577 #.  FIXME . Describe how to attach to a thread which is already group-stopped.
10578 #. type: Plain text
10579 #: build/C/man2/ptrace.2:1614
10580 msgid ""
10581 "B<PTRACE_ATTACH> sends B<SIGSTOP> to this thread.  If the tracer wants this "
10582 "B<SIGSTOP> to have no effect, it needs to suppress it.  Note that if other "
10583 "signals are concurrently sent to this thread during attach, the tracer may "
10584 "see the tracee enter signal-delivery-stop with other signal(s) first! The "
10585 "usual practice is to reinject these signals until B<SIGSTOP> is seen, then "
10586 "suppress B<SIGSTOP> injection.  The design bug here is that a ptrace attach "
10587 "and a concurrently delivered B<SIGSTOP> may race and the concurrent "
10588 "B<SIGSTOP> may be lost."
10589 msgstr ""
10590
10591 #. type: Plain text
10592 #: build/C/man2/ptrace.2:1621
10593 msgid ""
10594 "Since attaching sends B<SIGSTOP> and the tracer usually suppresses it, this "
10595 "may cause a stray B<EINTR> return from the currently executing system call "
10596 "in the tracee, as described in the \"Signal injection and suppression\" "
10597 "section."
10598 msgstr ""
10599
10600 #. type: Plain text
10601 #: build/C/man2/ptrace.2:1633
10602 msgid ""
10603 "Since Linux 3.4, B<PTRACE_SEIZE> can be used instead of B<PTRACE_ATTACH>.  "
10604 "B<PTRACE_SEIZE> does not stop the attached process.  If you need to stop it "
10605 "after attach (or at any other time) without sending it any signals, use "
10606 "B<PTRACE_INTERRUPT> command."
10607 msgstr ""
10608
10609 #. type: Plain text
10610 #: build/C/man2/ptrace.2:1635
10611 msgid "The request"
10612 msgstr ""
10613
10614 #. type: Plain text
10615 #: build/C/man2/ptrace.2:1637
10616 #, no-wrap
10617 msgid "    ptrace(PTRACE_TRACEME, 0, 0, 0);\n"
10618 msgstr ""
10619
10620 #. type: Plain text
10621 #: build/C/man2/ptrace.2:1643
10622 msgid ""
10623 "turns the calling thread into a tracee.  The thread continues to run "
10624 "(doesn't enter ptrace-stop).  A common practice is to follow the "
10625 "B<PTRACE_TRACEME> with"
10626 msgstr ""
10627
10628 #. type: Plain text
10629 #: build/C/man2/ptrace.2:1645
10630 #, no-wrap
10631 msgid "    raise(SIGSTOP);\n"
10632 msgstr ""
10633
10634 #. type: Plain text
10635 #: build/C/man2/ptrace.2:1648
10636 msgid ""
10637 "and allow the parent (which is our tracer now) to observe our signal-"
10638 "delivery-stop."
10639 msgstr ""
10640
10641 #. type: Plain text
10642 #: build/C/man2/ptrace.2:1672
10643 msgid ""
10644 "If the B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, or "
10645 "B<PTRACE_O_TRACECLONE> options are in effect, then children created by, "
10646 "respectively, B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> flag, "
10647 "B<fork>(2)  or B<clone>(2)  with the exit signal set to B<SIGCHLD>, and "
10648 "other kinds of B<clone>(2), are automatically attached to the same tracer "
10649 "which traced their parent.  B<SIGSTOP> is delivered to the children, causing "
10650 "them to enter signal-delivery-stop after they exit the system call which "
10651 "created them."
10652 msgstr ""
10653
10654 #. type: Plain text
10655 #: build/C/man2/ptrace.2:1674
10656 msgid "Detaching of the tracee is performed by:"
10657 msgstr ""
10658
10659 #. type: Plain text
10660 #: build/C/man2/ptrace.2:1676
10661 #, no-wrap
10662 msgid "    ptrace(PTRACE_DETACH, pid, 0, sig);\n"
10663 msgstr ""
10664
10665 #. type: Plain text
10666 #: build/C/man2/ptrace.2:1684
10667 msgid ""
10668 "B<PTRACE_DETACH> is a restarting operation; therefore it requires the tracee "
10669 "to be in ptrace-stop.  If the tracee is in signal-delivery-stop, a signal "
10670 "can be injected.  Otherwise, the I<sig> parameter may be silently ignored."
10671 msgstr ""
10672
10673 #.  FIXME . Describe how to detach from a group-stopped tracee so that it
10674 #.         doesn't run, but continues to wait for SIGCONT.
10675 #. type: Plain text
10676 #: build/C/man2/ptrace.2:1708
10677 msgid ""
10678 "If the tracee is running when the tracer wants to detach it, the usual "
10679 "solution is to send B<SIGSTOP> (using B<tgkill>(2), to make sure it goes to "
10680 "the correct thread), wait for the tracee to stop in signal-delivery-stop for "
10681 "B<SIGSTOP> and then detach it (suppressing B<SIGSTOP> injection).  A design "
10682 "bug is that this can race with concurrent B<SIGSTOP>s.  Another complication "
10683 "is that the tracee may enter other ptrace-stops and needs to be restarted "
10684 "and waited for again, until B<SIGSTOP> is seen.  Yet another complication is "
10685 "to be sure that the tracee is not already ptrace-stopped, because no signal "
10686 "delivery happens while it is\\(emnot even B<SIGSTOP>."
10687 msgstr ""
10688
10689 #. type: Plain text
10690 #: build/C/man2/ptrace.2:1716
10691 msgid ""
10692 "If the tracer dies, all tracees are automatically detached and restarted, "
10693 "unless they were in group-stop.  Handling of restart from group-stop is "
10694 "currently buggy, but the \"as planned\" behavior is to leave tracee stopped "
10695 "and waiting for B<SIGCONT>.  If the tracee is restarted from signal-delivery-"
10696 "stop, the pending signal is injected."
10697 msgstr ""
10698
10699 #. type: SS
10700 #: build/C/man2/ptrace.2:1716
10701 #, no-wrap
10702 msgid "execve(2) under ptrace"
10703 msgstr ""
10704
10705 #
10706 #.  clone(2) CLONE_THREAD says:
10707 #.      If  any  of the threads in a thread group performs an execve(2),
10708 #.      then all threads other than the thread group leader are terminated,
10709 #.      and the new program is executed in the thread group leader.
10710 #.  In kernel 3.1 sources, see fs/exec.c::de_thread()
10711 #. type: Plain text
10712 #: build/C/man2/ptrace.2:1735
10713 msgid ""
10714 "When one thread in a multithreaded process calls B<execve>(2), the kernel "
10715 "destroys all other threads in the process, and resets the thread ID of the "
10716 "execing thread to the thread group ID (process ID).  (Or, to put things "
10717 "another way, when a multithreaded process does an B<execve>(2), at "
10718 "completion of the call, it appears as though the B<execve>(2)  occurred in "
10719 "the thread group leader, regardless of which thread did the B<execve>(2).)  "
10720 "This resetting of the thread ID looks very confusing to tracers:"
10721 msgstr ""
10722
10723 #. type: Plain text
10724 #: build/C/man2/ptrace.2:1745
10725 msgid ""
10726 "All other threads stop in B<PTRACE_EVENT_EXIT> stop, if the "
10727 "B<PTRACE_O_TRACEEXIT> option was turned on.  Then all other threads except "
10728 "the thread group leader report death as if they exited via B<_exit>(2)  with "
10729 "exit code 0."
10730 msgstr ""
10731
10732 #. type: Plain text
10733 #: build/C/man2/ptrace.2:1753
10734 msgid ""
10735 "The execing tracee changes its thread ID while it is in the B<execve>(2).  "
10736 "(Remember, under ptrace, the \"pid\" returned from B<waitpid>(2), or fed "
10737 "into ptrace calls, is the tracee's thread ID.)  That is, the tracee's thread "
10738 "ID is reset to be the same as its process ID, which is the same as the "
10739 "thread group leader's thread ID."
10740 msgstr ""
10741
10742 #. type: Plain text
10743 #: build/C/man2/ptrace.2:1759
10744 msgid ""
10745 "Then a B<PTRACE_EVENT_EXEC> stop happens, if the B<PTRACE_O_TRACEEXEC> "
10746 "option was turned on."
10747 msgstr ""
10748
10749 #. type: Plain text
10750 #: build/C/man2/ptrace.2:1780
10751 msgid ""
10752 "If the thread group leader has reported its B<PTRACE_EVENT_EXIT> stop by "
10753 "this time, it appears to the tracer that the dead thread leader \"reappears "
10754 "from nowhere\".  (Note: the thread group leader does not report death via "
10755 "I<WIFEXITED(status)> until there is at least one other live thread.  This "
10756 "eliminates the possibility that the tracer will see it dying and then "
10757 "reappearing.)  If the thread group leader was still alive, for the tracer "
10758 "this may look as if thread group leader returns from a different system call "
10759 "than it entered, or even \"returned from a system call even though it was "
10760 "not in any system call\".  If the thread group leader was not traced (or was "
10761 "traced by a different tracer), then during B<execve>(2)  it will appear as "
10762 "if it has become a tracee of the tracer of the execing tracee."
10763 msgstr ""
10764
10765 #. type: Plain text
10766 #: build/C/man2/ptrace.2:1783
10767 msgid ""
10768 "All of the above effects are the artifacts of the thread ID change in the "
10769 "tracee."
10770 msgstr ""
10771
10772 #. type: Plain text
10773 #: build/C/man2/ptrace.2:1803
10774 msgid ""
10775 "The B<PTRACE_O_TRACEEXEC> option is the recommended tool for dealing with "
10776 "this situation.  First, it enables B<PTRACE_EVENT_EXEC> stop, which occurs "
10777 "before B<execve>(2)  returns.  In this stop, the tracer can use "
10778 "B<PTRACE_GETEVENTMSG> to retrieve the tracee's former thread ID.  (This "
10779 "feature was introduced in Linux 3.0).  Second, the B<PTRACE_O_TRACEEXEC> "
10780 "option disables legacy B<SIGTRAP> generation on B<execve>(2)."
10781 msgstr ""
10782
10783 #. type: Plain text
10784 #: build/C/man2/ptrace.2:1809
10785 msgid ""
10786 "When the tracer receives B<PTRACE_EVENT_EXEC> stop notification, it is "
10787 "guaranteed that except this tracee and the thread group leader, no other "
10788 "threads from the process are alive."
10789 msgstr ""
10790
10791 #. type: Plain text
10792 #: build/C/man2/ptrace.2:1817
10793 msgid ""
10794 "On receiving the B<PTRACE_EVENT_EXEC> stop notification, the tracer should "
10795 "clean up all its internal data structures describing the threads of this "
10796 "process, and retain only one data structure\\(emone which describes the "
10797 "single still running tracee, with"
10798 msgstr ""
10799
10800 #. type: Plain text
10801 #: build/C/man2/ptrace.2:1819
10802 #, no-wrap
10803 msgid "    thread ID == thread group ID == process ID.\n"
10804 msgstr ""
10805
10806 #. type: Plain text
10807 #: build/C/man2/ptrace.2:1823
10808 msgid "Example: two threads call B<execve>(2)  at the same time:"
10809 msgstr ""
10810
10811 #. type: Plain text
10812 #: build/C/man2/ptrace.2:1834
10813 #, no-wrap
10814 msgid ""
10815 "*** we get syscall-enter-stop in thread 1: **\n"
10816 "PID1 execve(\"/bin/foo\", \"foo\" E<lt>unfinished ...E<gt>\n"
10817 "*** we issue PTRACE_SYSCALL for thread 1 **\n"
10818 "*** we get syscall-enter-stop in thread 2: **\n"
10819 "PID2 execve(\"/bin/bar\", \"bar\" E<lt>unfinished ...E<gt>\n"
10820 "*** we issue PTRACE_SYSCALL for thread 2 **\n"
10821 "*** we get PTRACE_EVENT_EXEC for PID0, we issue PTRACE_SYSCALL **\n"
10822 "*** we get syscall-exit-stop for PID0: **\n"
10823 "PID0 E<lt>... execve resumedE<gt> )             = 0\n"
10824 msgstr ""
10825
10826 #. type: Plain text
10827 #: build/C/man2/ptrace.2:1857
10828 msgid ""
10829 "If the B<PTRACE_O_TRACEEXEC> option is I<not> in effect for the execing "
10830 "tracee, the kernel delivers an extra B<SIGTRAP> to the tracee after "
10831 "B<execve>(2)  returns.  This is an ordinary signal (similar to one which can "
10832 "be generated by I<kill -TRAP>), not a special kind of ptrace-stop.  "
10833 "Employing B<PTRACE_GETSIGINFO> for this signal returns I<si_code> set to 0 "
10834 "(I<SI_USER>).  This signal may be blocked by signal mask, and thus may be "
10835 "delivered (much) later."
10836 msgstr ""
10837
10838 #. type: Plain text
10839 #: build/C/man2/ptrace.2:1876
10840 msgid ""
10841 "Usually, the tracer (for example, B<strace>(1))  would not want to show this "
10842 "extra post-execve B<SIGTRAP> signal to the user, and would suppress its "
10843 "delivery to the tracee (if B<SIGTRAP> is set to B<SIG_DFL>, it is a killing "
10844 "signal).  However, determining I<which> B<SIGTRAP> to suppress is not easy.  "
10845 "Setting the B<PTRACE_O_TRACEEXEC> option and thus suppressing this extra "
10846 "B<SIGTRAP> is the recommended approach."
10847 msgstr ""
10848
10849 #. type: SS
10850 #: build/C/man2/ptrace.2:1876
10851 #, no-wrap
10852 msgid "Real parent"
10853 msgstr ""
10854
10855 #. type: Plain text
10856 #: build/C/man2/ptrace.2:1883
10857 msgid ""
10858 "The ptrace API (ab)uses the standard UNIX parent/child signaling over "
10859 "B<waitpid>(2).  This used to cause the real parent of the process to stop "
10860 "receiving several kinds of B<waitpid>(2)  notifications when the child "
10861 "process is traced by some other process."
10862 msgstr ""
10863
10864 #. type: Plain text
10865 #: build/C/man2/ptrace.2:1886
10866 msgid ""
10867 "Many of these bugs have been fixed, but as of Linux 2.6.38 several still "
10868 "exist; see BUGS below."
10869 msgstr ""
10870
10871 #. type: Plain text
10872 #: build/C/man2/ptrace.2:1888
10873 msgid "As of Linux 2.6.38, the following is believed to work correctly:"
10874 msgstr ""
10875
10876 #. type: Plain text
10877 #: build/C/man2/ptrace.2:1896
10878 msgid ""
10879 "exit/death by signal is reported first to the tracer, then, when the tracer "
10880 "consumes the B<waitpid>(2)  result, to the real parent (to the real parent "
10881 "only when the whole multithreaded process exits).  If the tracer and the "
10882 "real parent are the same process, the report is sent only once."
10883 msgstr ""
10884
10885 #. type: Plain text
10886 #: build/C/man2/ptrace.2:1901
10887 msgid ""
10888 "On success, the B<PTRACE_PEEK*> requests return the requested data (but see "
10889 "NOTES), while other requests return zero."
10890 msgstr ""
10891
10892 #. type: Plain text
10893 #: build/C/man2/ptrace.2:1911
10894 #, fuzzy
10895 #| msgid ""
10896 #| "On success, B<PTRACE_PEEK*> requests return the requested data, while "
10897 #| "other requests return zero.  On error, all requests return -1, and "
10898 #| "I<errno> is set appropriately.  Since the value returned by a successful "
10899 #| "B<PTRACE_PEEK*> request may be -1, the caller must check I<errno> after "
10900 #| "such requests to determine whether or not an error occurred."
10901 msgid ""
10902 "On error, all requests return -1, and I<errno> is set appropriately.  Since "
10903 "the value returned by a successful B<PTRACE_PEEK*> request may be -1, the "
10904 "caller must clear I<errno> before the call, and then check it afterward to "
10905 "determine whether or not an error occurred."
10906 msgstr ""
10907 "成功すると、 B<PTRACE_PEEK*> の場合は要求したデータを返し、 それ以外の場合は "
10908 "0 を返す。 エラーの場合は -1 を返し、 I<errno> が適切に設定される。 "
10909 "B<PTRACE_PEEK*> が成功して返す値も -1 になることがあるため、 そのような要求"
10910 "の場合には、呼び出し元は I<errno> を調べ、エラーか発生したのかどうかを判断し"
10911 "なければならない。"
10912
10913 #. type: Plain text
10914 #: build/C/man2/ptrace.2:1915
10915 msgid ""
10916 "(i386 only) There was an error with allocating or freeing a debug register."
10917 msgstr "(i386 のみ) デバッグレジスタの確保または解放でエラーが発生した。"
10918
10919 #. type: Plain text
10920 #: build/C/man2/ptrace.2:1926
10921 #, fuzzy
10922 #| msgid ""
10923 #| "There was an attempt to read from or write to an invalid area in the "
10924 #| "parent's or child's memory, probably because the area wasn't mapped or "
10925 #| "accessible.  Unfortunately, under Linux, different variations of this "
10926 #| "fault will return B<EIO> or B<EFAULT> more or less arbitrarily."
10927 msgid ""
10928 "There was an attempt to read from or write to an invalid area in the "
10929 "tracer's or the tracee's memory, probably because the area wasn't mapped or "
10930 "accessible.  Unfortunately, under Linux, different variations of this fault "
10931 "will return B<EIO> or B<EFAULT> more or less arbitrarily."
10932 msgstr ""
10933 "親プロセスまたは子プロセスのメモリの不正な領域に読み書きしようとした。 おそら"
10934 "くその領域がマッピングされていないか、 その領域へのアクセスが許されていないか"
10935 "である。 不運なことに、Linux ではこのようなエラーの場合、多かれ少なかれ 恣意"
10936 "的に B<EIO> を返したり B<EFAULT> を返したりすることがある。"
10937
10938 #. type: Plain text
10939 #: build/C/man2/ptrace.2:1929
10940 msgid "An attempt was made to set an invalid option."
10941 msgstr "不正なオプションを設定しようとした。"
10942
10943 #. type: Plain text
10944 #: build/C/man2/ptrace.2:1936
10945 #, fuzzy
10946 #| msgid ""
10947 #| "I<request> is invalid, or an attempt was made to read from or write to an "
10948 #| "invalid area in the parent's or child's memory, or there was a word-"
10949 #| "alignment violation, or an invalid signal was specified during a restart "
10950 #| "request."
10951 msgid ""
10952 "I<request> is invalid, or an attempt was made to read from or write to an "
10953 "invalid area in the tracer's or the tracee's memory, or there was a word-"
10954 "alignment violation, or an invalid signal was specified during a restart "
10955 "request."
10956 msgstr ""
10957 "I<request> が不正である。 または、親プロセスまたは子プロセスのメモリの 不正な"
10958 "領域に読み書きしようとした。 または、ワード境界違反があった。 または、実行再"
10959 "開の要求で不正なシグナルを指定した。"
10960
10961 #. type: Plain text
10962 #: build/C/man2/ptrace.2:1949
10963 #, fuzzy
10964 #| msgid ""
10965 #| "The specified process cannot be traced.  This could be because the parent "
10966 #| "has insufficient privileges (the required capability is "
10967 #| "B<CAP_SYS_PTRACE>); unprivileged processes cannot trace processes that "
10968 #| "they cannot send signals to or those running set-user-ID/set-group-ID "
10969 #| "programs, for obvious reasons.  Alternatively, the process may already be "
10970 #| "being traced, or be B<init>(8)  (PID 1)."
10971 msgid ""
10972 "The specified process cannot be traced.  This could be because the tracer "
10973 "has insufficient privileges (the required capability is B<CAP_SYS_PTRACE>); "
10974 "unprivileged processes cannot trace processes that they cannot send signals "
10975 "to or those running set-user-ID/set-group-ID programs, for obvious reasons.  "
10976 "Alternatively, the process may already be being traced, or (on kernels "
10977 "before 2.6.26) be B<init>(1)  (PID 1)."
10978 msgstr ""
10979 "指定したプロセスをトレースすることができない。これは親プロセスが 必要な権限 "
10980 "(必要なケーパビリティは B<CAP_SYS_PTRACE>)  を持っていないことが原因の場合が"
10981 "ある。 分かりやすい理由を挙げるなら、 非特権プロセスはシグナルを送ることがで"
10982 "きないプロセスをトレースできないし、 set-user-ID/set-group-ID プログラムを実"
10983 "行しているプロセスはトレースできない。 または、プロセスはすでにトレース中であ"
10984 "る、 または B<init>(8)  プロセス (PID が 1) である。"
10985
10986 #. type: Plain text
10987 #: build/C/man2/ptrace.2:1954
10988 #, fuzzy
10989 #| msgid ""
10990 #| "The specified process does not exist, or is not currently being traced by "
10991 #| "the caller, or is not stopped (for requests that require that)."
10992 msgid ""
10993 "The specified process does not exist, or is not currently being traced by "
10994 "the caller, or is not stopped (for requests that require a stopped tracee)."
10995 msgstr ""
10996 "指定したプロセスが存在しない。 または、指定したプロセスは呼び出したプロセス"
10997 "が 現在トレース中の子プロセスではない。 または、指定したプロセスが停止してい"
10998 "ない (停止していることが必要な要求の場合)。"
10999
11000 #. type: Plain text
11001 #: build/C/man2/ptrace.2:1956
11002 msgid "SVr4, 4.3BSD."
11003 msgstr "SVr4, 4.3BSD."
11004
11005 #. type: Plain text
11006 #: build/C/man2/ptrace.2:1971
11007 #, fuzzy
11008 #| msgid ""
11009 #| "Although arguments to B<ptrace>()  are interpreted according to the "
11010 #| "prototype given, glibc currently declares B<ptrace>()  as a variadic "
11011 #| "function with only the I<request> argument fixed.  This means that "
11012 #| "unneeded trailing arguments may be omitted, though doing so makes use of "
11013 #| "undocumented B<gcc>(1)  behavior."
11014 msgid ""
11015 "Although arguments to B<ptrace>()  are interpreted according to the "
11016 "prototype given, glibc currently declares B<ptrace>()  as a variadic "
11017 "function with only the I<request> argument fixed.  It is recommended to "
11018 "always supply four arguments, even if the requested operation does not use "
11019 "them, setting unused/ignored arguments to I<0L> or I<(void\\ *)\\ 0>."
11020 msgstr ""
11021 "B<ptrace>()  の引き数は上のようなプロトタイプに基づいて解釈されるが、 glibc "
11022 "では、現在のところ B<ptrace>()  は I<request> 引き数だけが固定の可変長引き数"
11023 "関数として 宣言されている。 これは必要なければ残りの引き数は省略可能であるこ"
11024 "とを意味するが、 それは B<gcc>(1)  の明文化されていない動作を利用していること"
11025 "になる。"
11026
11027 #.  See commit 00cd5c37afd5f431ac186dd131705048c0a11fdb
11028 #. type: Plain text
11029 #: build/C/man2/ptrace.2:1976
11030 msgid ""
11031 "In Linux kernels before 2.6.26, B<init>(1), the process with PID 1, may not "
11032 "be traced."
11033 msgstr ""
11034 "バージョン 2.6.26 より前の Linux カーネルでは、 B<init>(1) すなわち PID が 1 "
11035 "のプロセスはトレースすることができない。"
11036
11037 #.  See http://lkml.org/lkml/2008/5/8/375
11038 #. type: Plain text
11039 #: build/C/man2/ptrace.2:1983
11040 msgid ""
11041 "The layout of the contents of memory and the USER area are quite operating-"
11042 "system- and architecture-specific.  The offset supplied, and the data "
11043 "returned, might not entirely match with the definition of I<struct user>."
11044 msgstr ""
11045 "メモリや USER 領域の内容や配置はオペレーティングシステムごと、アーキテクチャ"
11046 "ごとに 非常に依存する。 オフセットが指定された場合、返されるデータは "
11047 "I<struct user> の定義と完全に一致しないこともありえる。"
11048
11049 #. type: Plain text
11050 #: build/C/man2/ptrace.2:1986
11051 msgid ""
11052 "The size of a \"word\" is determined by the operating-system variant (e.g., "
11053 "for 32-bit Linux it is 32 bits)."
11054 msgstr ""
11055 "「ワード (word) 」の大きさはオペレーティングシステムによって決まる。 (例え"
11056 "ば、32 ビットの Linux では 32 ビットである、など。)"
11057
11058 #. type: Plain text
11059 #: build/C/man2/ptrace.2:1994
11060 msgid ""
11061 "This page documents the way the B<ptrace>()  call works currently in Linux.  "
11062 "Its behavior differs significantly on other flavors of UNIX.  In any case, "
11063 "use of B<ptrace>()  is highly specific to the operating system and "
11064 "architecture."
11065 msgstr ""
11066 "このマニュアルは現在の Linux における B<ptrace>()  コールの動作について記述し"
11067 "ている。他の UNIX では その動作は著しく異なる。 いかなる場合も B<ptrace>()  "
11068 "を使うとオペレーションシステムやアーキテクチャに非常に依存したものになる。"
11069
11070 #. type: SS
11071 #: build/C/man2/ptrace.2:1994
11072 #, no-wrap
11073 msgid "C library/kernel ABI differences"
11074 msgstr "C ライブラリとカーネル ABI の違い"
11075
11076 #. type: Plain text
11077 #: build/C/man2/ptrace.2:2006
11078 msgid ""
11079 "At the system call level, the B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>, and "
11080 "B<PTRACE_PEEKUSER> requests have a different API: they store the result at "
11081 "the address specified by the I<data> parameter, and the return value is the "
11082 "error flag.  The glibc wrapper function provides the API given in "
11083 "DESCRIPTION above, with the result being returned via the function return "
11084 "value."
11085 msgstr ""
11086
11087 #. type: Plain text
11088 #: build/C/man2/ptrace.2:2017
11089 msgid ""
11090 "On hosts with 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared with a "
11091 "different value than the one for 2.4.  This leads to applications compiled "
11092 "with 2.6 kernel headers failing when run on 2.4 kernels.  This can be worked "
11093 "around by redefining B<PTRACE_SETOPTIONS> to B<PTRACE_OLDSETOPTIONS>, if "
11094 "that is defined."
11095 msgstr ""
11096 "カーネル 2.6 のヘッダがインストールされたホストでは、 B<PTRACE_SETOPTIONS> は"
11097 "カーネル 2.4 のヘッダとは異なる値で宣言される。 このため、カーネル 2.6 のヘッ"
11098 "ダでコンパイルされたアプリケーションは カーネル 2.4 では正しく動作しない。 こ"
11099 "の問題は、 B<PTRACE_SETOPTIONS> が定義されていた際は、 B<PTRACE_SETOPTIONS> "
11100 "を B<PTRACE_OLDSETOPTIONS> に定義し直すことで対処できる。"
11101
11102 #. type: Plain text
11103 #: build/C/man2/ptrace.2:2020
11104 msgid ""
11105 "Group-stop notifications are sent to the tracer, but not to real parent.  "
11106 "Last confirmed on 2.6.38.6."
11107 msgstr ""
11108
11109 #.  Note from Denys Vlasenko:
11110 #.      Here "exits" means any kind of death - _exit, exit_group,
11111 #.      signal death. Signal death and exit_group cases are trivial,
11112 #.      though: since signal death and exit_group kill all other threads
11113 #.      too, "until all other threads exit" thing happens rather soon
11114 #.      in these cases. Therefore, only _exit presents observably
11115 #.      puzzling behavior to ptrace users: thread leader _exit's,
11116 #.      but WIFEXITED isn't reported! We are trying to explain here
11117 #.      why it is so.
11118 #.   FIXME . need to test/verify this scenario
11119 #. type: Plain text
11120 #: build/C/man2/ptrace.2:2051
11121 msgid ""
11122 "If a thread group leader is traced and exits by calling B<_exit>(2), a "
11123 "B<PTRACE_EVENT_EXIT> stop will happen for it (if requested), but the "
11124 "subsequent B<WIFEXITED> notification will not be delivered until all other "
11125 "threads exit.  As explained above, if one of other threads calls "
11126 "B<execve>(2), the death of the thread group leader will I<never> be "
11127 "reported.  If the execed thread is not traced by this tracer, the tracer "
11128 "will never know that B<execve>(2)  happened.  One possible workaround is to "
11129 "B<PTRACE_DETACH> the thread group leader instead of restarting it in this "
11130 "case.  Last confirmed on 2.6.38.6."
11131 msgstr ""
11132
11133 #. type: Plain text
11134 #: build/C/man2/ptrace.2:2061
11135 msgid ""
11136 "A B<SIGKILL> signal may still cause a B<PTRACE_EVENT_EXIT> stop before "
11137 "actual signal death.  This may be changed in the future; B<SIGKILL> is meant "
11138 "to always immediately kill tasks even under ptrace.  Last confirmed on "
11139 "2.6.38.6."
11140 msgstr ""
11141
11142 #. type: Plain text
11143 #: build/C/man2/ptrace.2:2079
11144 msgid ""
11145 "Some system calls return with B<EINTR> if a signal was sent to a tracee, but "
11146 "delivery was suppressed by the tracer.  (This is very typical operation: it "
11147 "is usually done by debuggers on every attach, in order to not introduce a "
11148 "bogus B<SIGSTOP>).  As of Linux 3.2.9, the following system calls are "
11149 "affected (this list is likely incomplete): B<epoll_wait>(2), and B<read>(2)  "
11150 "from an B<inotify>(7)  file descriptor.  The usual symptom of this bug is "
11151 "that when you attach to a quiescent process with the command"
11152 msgstr ""
11153
11154 #. type: Plain text
11155 #: build/C/man2/ptrace.2:2081
11156 #, no-wrap
11157 msgid "    strace -p E<lt>process-IDE<gt>\n"
11158 msgstr ""
11159
11160 #. type: Plain text
11161 #: build/C/man2/ptrace.2:2084
11162 msgid "then, instead of the usual and expected one-line output such as"
11163 msgstr ""
11164
11165 #. type: Plain text
11166 #: build/C/man2/ptrace.2:2087
11167 #, no-wrap
11168 msgid "    restart_syscall(E<lt>... resuming interrupted call ...E<gt>_\n"
11169 msgstr ""
11170
11171 #. type: Plain text
11172 #: build/C/man2/ptrace.2:2093
11173 #, no-wrap
11174 msgid "    select(6, [5], NULL, [5], NULL_\n"
11175 msgstr ""
11176
11177 #. type: Plain text
11178 #: build/C/man2/ptrace.2:2097
11179 msgid ""
11180 "('_' denotes the cursor position), you observe more than one line.  For "
11181 "example:"
11182 msgstr ""
11183
11184 #. type: Plain text
11185 #: build/C/man2/ptrace.2:2101
11186 #, no-wrap
11187 msgid ""
11188 "    clock_gettime(CLOCK_MONOTONIC, {15370, 690928118}) = 0\n"
11189 "    epoll_wait(4,_\n"
11190 msgstr ""
11191
11192 #. type: Plain text
11193 #: build/C/man2/ptrace.2:2122
11194 msgid ""
11195 "What is not visible here is that the process was blocked in "
11196 "B<epoll_wait>(2)  before B<strace>(1)  has attached to it.  Attaching caused "
11197 "B<epoll_wait>(2)  to return to user space with the error B<EINTR>.  In this "
11198 "particular case, the program reacted to B<EINTR> by checking the current "
11199 "time, and then executing B<epoll_wait>(2)  again.  (Programs which do not "
11200 "expect such \"stray\" B<EINTR> errors may behave in an unintended way upon "
11201 "an B<strace>(1)  attach.)"
11202 msgstr ""
11203
11204 #. type: Plain text
11205 #: build/C/man2/ptrace.2:2136
11206 #, fuzzy
11207 #| msgid ""
11208 #| "B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2), "
11209 #| "B<gettid>(2), B<sigaction>(2), B<tgkill>(2), B<vfork>(2), B<waitpid>(2), "
11210 #| "B<exec>(3), B<capabilities>(7), B<signal>(7)"
11211 msgid ""
11212 "B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2), "
11213 "B<gettid>(2), B<seccomp>(2), B<sigaction>(2), B<tgkill>(2), B<vfork>(2), "
11214 "B<waitpid>(2), B<exec>(3), B<capabilities>(7), B<signal>(7)"
11215 msgstr ""
11216 "B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2),\n"
11217 "B<gettid>(2), B<sigaction>(2), B<tgkill>(2), B<vfork>(2),\n"
11218 "B<waitpid>(2), B<exec>(3), B<capabilities>(7), B<signal>(7)"
11219
11220 #. type: TH
11221 #: build/C/man2/quotactl.2:27
11222 #, no-wrap
11223 msgid "QUOTACTL"
11224 msgstr "QUOTACTL"
11225
11226 #. type: TH
11227 #: build/C/man2/quotactl.2:27
11228 #, no-wrap
11229 msgid "2010-06-16"
11230 msgstr "2010-06-16"
11231
11232 #. type: Plain text
11233 #: build/C/man2/quotactl.2:30
11234 msgid "quotactl - manipulate disk quotas"
11235 msgstr "quotactl - ディスク quota を操作する"
11236
11237 #. type: Plain text
11238 #: build/C/man2/quotactl.2:34
11239 #, no-wrap
11240 msgid ""
11241 "B<#include E<lt>sys/quota.hE<gt>>\n"
11242 "B<#include E<lt>xfs/xqm.hE<gt>>\n"
11243 msgstr ""
11244 "B<#include E<lt>sys/quota.hE<gt>>\n"
11245 "B<#include E<lt>xfs/xqm.hE<gt>>\n"
11246
11247 #. type: Plain text
11248 #: build/C/man2/quotactl.2:37
11249 #, no-wrap
11250 msgid "B<int quotactl(int >I<cmd>B<, const char *>I<special>B<, int >I<id>B<, caddr_t >I<addr>B<);>\n"
11251 msgstr "B<int quotactl(int >I<cmd>B<, const char *>I<special>B<, int >I<id>B<, caddr_t >I<addr>B<);>\n"
11252
11253 #. type: Plain text
11254 #: build/C/man2/quotactl.2:49
11255 #, fuzzy
11256 #| msgid ""
11257 #| "The quota system defines for each user and/or group a soft limit and a "
11258 #| "hard limit bounding the amount of disk space that can be used on a given "
11259 #| "file system.  The hard limit cannot be crossed.  The soft limit can be "
11260 #| "crossed, but warnings will ensue.  Moreover, the user cannot be above the "
11261 #| "soft limit for more than one week (by default)  at a time: after this "
11262 #| "week the soft limit counts as hard limit."
11263 msgid ""
11264 "The quota system can be used to set per-user and per-group limits on the "
11265 "amount of disk space used on a filesystem.  For each user and/or group, a "
11266 "soft limit and a hard limit can be set for each filesystem.  The hard limit "
11267 "can't be exceeded.  The soft limit can be exceeded, but warnings will "
11268 "ensue.  Moreover, the user can't exceed the soft limit for more than one "
11269 "week (by default) at a time; after this time, the soft limit counts as a "
11270 "hard limit."
11271 msgstr ""
11272 "quota システムは、各々のユーザ及び/またはグループに対して、 ソフト・リミット"
11273 "及びハード・リミットを定める。これはあるファイル・システムで 使用する事が出来"
11274 "るディスク容量を制限する。 ハード・リミットは超過することは出来ない。 ソフ"
11275 "ト・リミットは超過する事が出来るが、警告が発せられる。 更に、(デフォルトで"
11276 "は) 一週間以上ソフト・リミットを超過したままに しておく事はできない: 一週間経"
11277 "過した後はハード・リミットを超過したと みなされる。"
11278
11279 #. type: Plain text
11280 #: build/C/man2/quotactl.2:74
11281 #, fuzzy
11282 #| msgid ""
11283 #| "The B<quotactl>()  system call manipulates these quota.  Its first "
11284 #| "argument is of the form B<QCMD(>I<subcmd>B<,>I<type>B<)> where I<type> is "
11285 #| "either B<USRQUOTA> or B<GRPQUOTA> (for user quota and group quota, "
11286 #| "respectively), and I<subcmd> is described below."
11287 msgid ""
11288 "The B<quotactl>()  call manipulates disk quotas.  The I<cmd> argument "
11289 "indicates a command to be applied to the user or group ID specified in "
11290 "I<id>.  To initialize the I<cmd> argument, use the I<QCMD(subcmd, type)> "
11291 "macro.  The I<type> value is either B<USRQUOTA>, for user quotas, or "
11292 "B<GRPQUOTA>, for group quotas.  The I<subcmd> value is described below."
11293 msgstr ""
11294 "B<quotactl>()  システムコールはこれらの quota に対する操作を行なう。 最初の引"
11295 "き数は B<QCMD(>I<subcmd>B<,>I<type>B<)> という形式である。 I<type> には、ユー"
11296 "ザー quota については B<USRQUOTA> を、グループ quota については B<GRPQUOTA> "
11297 "を指定する。 I<subcmd> は以下で説明する。"
11298
11299 #. type: Plain text
11300 #: build/C/man2/quotactl.2:79
11301 msgid ""
11302 "The I<special> argument is a pointer to a null-terminated string containing "
11303 "the pathname of the (mounted) block special device for the filesystem being "
11304 "manipulated."
11305 msgstr ""
11306
11307 #. type: Plain text
11308 #: build/C/man2/quotactl.2:87
11309 msgid ""
11310 "The I<addr> argument is the address of an optional, command-specific, data "
11311 "structure that is copied in or out of the system.  The interpretation of "
11312 "I<addr> is given with each command below."
11313 msgstr ""
11314
11315 #. type: Plain text
11316 #: build/C/man2/quotactl.2:91
11317 msgid "The I<subcmd> value is one of the following:"
11318 msgstr "I<subcmd> の値は以下のいずれかである"
11319
11320 #. type: TP
11321 #: build/C/man2/quotactl.2:91
11322 #, no-wrap
11323 msgid "B<Q_QUOTAON>"
11324 msgstr "B<Q_QUOTAON>"
11325
11326 #. type: Plain text
11327 #: build/C/man2/quotactl.2:98
11328 msgid ""
11329 "Turn on quotas for a filesystem.  The I<id> argument is the identification "
11330 "number of the quota format to be used.  Currently, there are three supported "
11331 "quota formats:"
11332 msgstr ""
11333
11334 #. type: TP
11335 #: build/C/man2/quotactl.2:99
11336 #, no-wrap
11337 msgid "B<QFMT_VFS_OLD>"
11338 msgstr ""
11339
11340 #. type: Plain text
11341 #: build/C/man2/quotactl.2:102
11342 msgid "The original quota format."
11343 msgstr ""
11344
11345 #. type: TP
11346 #: build/C/man2/quotactl.2:102
11347 #, no-wrap
11348 msgid "B<QFMT_VFS_V0>"
11349 msgstr ""
11350
11351 #. type: Plain text
11352 #: build/C/man2/quotactl.2:106
11353 msgid ""
11354 "The standard VFS v0 quota format, which can handle 32-bit UIDs and GIDs and "
11355 "quota limits up to 2^42 bytes and 2^32 inodes."
11356 msgstr ""
11357
11358 #. type: TP
11359 #: build/C/man2/quotactl.2:106
11360 #, no-wrap
11361 msgid "B<QFMT_VFS_V1>"
11362 msgstr ""
11363
11364 #. type: Plain text
11365 #: build/C/man2/quotactl.2:110
11366 msgid ""
11367 "A quota format that can handle 32-bit UIDs and GIDs and quota limits of 2^64 "
11368 "bytes and 2^64 inodes."
11369 msgstr ""
11370
11371 #. type: Plain text
11372 #: build/C/man2/quotactl.2:121
11373 msgid ""
11374 "The I<addr> argument points to the pathname of a file containing the quotas "
11375 "for the filesystem.  The quota file must exist; it is normally created with "
11376 "the B<quotacheck>(8)  program.  This operation requires privilege "
11377 "(B<CAP_SYS_ADMIN>)."
11378 msgstr ""
11379
11380 #. type: TP
11381 #: build/C/man2/quotactl.2:121
11382 #, no-wrap
11383 msgid "B<Q_QUOTAOFF>"
11384 msgstr "B<Q_QUOTAOFF>"
11385
11386 #. type: Plain text
11387 #: build/C/man2/quotactl.2:131
11388 msgid ""
11389 "Turn off quotas for a filesystem.  The I<addr> and I<id> arguments are "
11390 "ignored.  This operation requires privilege (B<CAP_SYS_ADMIN>)."
11391 msgstr ""
11392
11393 #. type: TP
11394 #: build/C/man2/quotactl.2:131
11395 #, no-wrap
11396 msgid "B<Q_GETQUOTA>"
11397 msgstr "B<Q_GETQUOTA>"
11398
11399 #. type: Plain text
11400 #: build/C/man2/quotactl.2:142
11401 #, fuzzy
11402 #| msgid ""
11403 #| "Get limits and current usage of disk space.  The I<addr> argument is a "
11404 #| "pointer to a dqblk structure (defined in I<E<lt>sys/quota.hE<gt>>)."
11405 msgid ""
11406 "Get disk quota limits and current usage for user or group I<id>.  The "
11407 "I<addr> argument is a pointer to a I<dqblk> structure defined in I<E<lt>sys/"
11408 "quota.hE<gt>> as follows:"
11409 msgstr ""
11410 "ディスク使用量の制限値と現在の使用量を得る。 I<addr> 引き数は (I<E<lt>sys/"
11411 "quota.hE<gt>> で定義された) dqblk 構造体を指すポインタである。"
11412
11413 #. type: Plain text
11414 #: build/C/man2/quotactl.2:147 build/C/man2/quotactl.2:234
11415 #, no-wrap
11416 msgid ""
11417 "/* uint64_t is an unsigned 64-bit integer;\n"
11418 "   uint32_t is an unsigned 32-bit integer */\n"
11419 msgstr ""
11420
11421 #. type: Plain text
11422 #: build/C/man2/quotactl.2:167
11423 #, no-wrap
11424 msgid ""
11425 "struct dqblk {          /* Definition since Linux 2.4.22 */\n"
11426 "    uint64_t dqb_bhardlimit;   /* absolute limit on disk\n"
11427 "                                  quota blocks alloc */\n"
11428 "    uint64_t dqb_bsoftlimit;   /* preferred limit on\n"
11429 "                                  disk quota blocks */\n"
11430 "    uint64_t dqb_curspace;     /* current quota block\n"
11431 "                                  count */\n"
11432 "    uint64_t dqb_ihardlimit;   /* maximum number of\n"
11433 "                                  allocated inodes */\n"
11434 "    uint64_t dqb_isoftlimit;   /* preferred inode limit */\n"
11435 "    uint64_t dqb_curinodes;    /* current number of\n"
11436 "                                  allocated inodes */\n"
11437 "    uint64_t dqb_btime;        /* time limit for excessive\n"
11438 "                                  disk use */\n"
11439 "    uint64_t dqb_itime;        /* time limit for excessive\n"
11440 "                                  files */\n"
11441 "    uint32_t dqb_valid;        /* bit mask of QIF_*\n"
11442 "                                  constants */\n"
11443 "};\n"
11444 msgstr ""
11445
11446 #. type: Plain text
11447 #: build/C/man2/quotactl.2:170
11448 #, no-wrap
11449 msgid ""
11450 "/* Flags in dqb_valid that indicate which fields in\n"
11451 "   dqblk structure are valid. */\n"
11452 msgstr ""
11453
11454 #. type: Plain text
11455 #: build/C/man2/quotactl.2:181
11456 #, no-wrap
11457 msgid ""
11458 "#define QIF_BLIMITS   1\n"
11459 "#define QIF_SPACE     2\n"
11460 "#define QIF_ILIMITS   4\n"
11461 "#define QIF_INODES    8\n"
11462 "#define QIF_BTIME     16\n"
11463 "#define QIF_ITIME     32\n"
11464 "#define QIF_LIMITS    (QIF_BLIMITS | QIF_ILIMITS)\n"
11465 "#define QIF_USAGE     (QIF_SPACE | QIF_INODES)\n"
11466 "#define QIF_TIMES     (QIF_BTIME | QIF_ITIME)\n"
11467 "#define QIF_ALL       (QIF_LIMITS | QIF_USAGE | QIF_TIMES)\n"
11468 msgstr ""
11469
11470 #. type: Plain text
11471 #: build/C/man2/quotactl.2:198
11472 msgid ""
11473 "The I<dqb_valid> field is a bit mask that is set to indicate the entries in "
11474 "the I<dqblk> structure that are valid.  Currently, the kernel fills in all "
11475 "entries of the I<dqblk> structure and marks them as valid in the "
11476 "I<dqb_valid> field.  Unprivileged users may retrieve only their own quotas; "
11477 "a privileged user (B<CAP_SYS_ADMIN>)  can retrieve the quotas of any user."
11478 msgstr ""
11479
11480 #. type: TP
11481 #: build/C/man2/quotactl.2:198
11482 #, no-wrap
11483 msgid "B<Q_SETQUOTA>"
11484 msgstr "B<Q_SETQUOTA>"
11485
11486 #. type: Plain text
11487 #: build/C/man2/quotactl.2:218
11488 msgid ""
11489 "Set quota information for user or group I<id>, using the information "
11490 "supplied in the I<dqblk> structure pointed to by I<addr>.  The I<dqb_valid> "
11491 "field of the I<dqblk> structure indicates which entries in the structure "
11492 "have been set by the caller.  This operation supersedes the B<Q_SETQLIM> and "
11493 "B<Q_SETUSE> operations in the previous quota interfaces.  This operation "
11494 "requires privilege (B<CAP_SYS_ADMIN>)."
11495 msgstr ""
11496
11497 #. type: TP
11498 #: build/C/man2/quotactl.2:218
11499 #, no-wrap
11500 msgid "B<Q_GETINFO>"
11501 msgstr "B<Q_GETINFO>"
11502
11503 #. type: Plain text
11504 #: build/C/man2/quotactl.2:229
11505 #, fuzzy
11506 #| msgid ""
11507 #| "Get limits and current usage of disk space.  The I<addr> argument is a "
11508 #| "pointer to a dqblk structure (defined in I<E<lt>sys/quota.hE<gt>>)."
11509 msgid ""
11510 "Get information (like grace times) about quotafile.  The I<addr> argument "
11511 "should be a pointer to a I<dqinfo> structure.  This structure is defined in "
11512 "I<E<lt>sys/quota.hE<gt>> as follows:"
11513 msgstr ""
11514 "ディスク使用量の制限値と現在の使用量を得る。 I<addr> 引き数は (I<E<lt>sys/"
11515 "quota.hE<gt>> で定義された) dqblk 構造体を指すポインタである。"
11516
11517 #. type: Plain text
11518 #: build/C/man2/quotactl.2:238
11519 #, no-wrap
11520 msgid ""
11521 "struct dqinfo {         /* Defined since kernel 2.4.22 */\n"
11522 "    uint64_t dqi_bgrace;    /* Time before block soft limit\n"
11523 "                               becomes hard limit */\n"
11524 msgstr ""
11525 "struct dqinfo {         /* Defined since kernel 2.4.22 */\n"
11526 "    uint64_t dqi_bgrace;    /* Time before block soft limit\n"
11527 "                               becomes hard limit */\n"
11528
11529 #. type: Plain text
11530 #: build/C/man2/quotactl.2:245
11531 #, no-wrap
11532 msgid ""
11533 "    uint64_t dqi_igrace;    /* Time before inode soft limit\n"
11534 "                               becomes hard limit */\n"
11535 "    uint32_t dqi_flags;     /* Flags for quotafile\n"
11536 "                               (DQF_*) */\n"
11537 "    uint32_t dqi_valid;\n"
11538 "};\n"
11539 msgstr ""
11540 "    uint64_t dqi_igrace;    /* Time before inode soft limit\n"
11541 "                               becomes hard limit */\n"
11542 "    uint32_t dqi_flags;     /* Flags for quotafile\n"
11543 "                               (DQF_*) */\n"
11544 "    uint32_t dqi_valid;\n"
11545 "};\n"
11546
11547 #. type: Plain text
11548 #: build/C/man2/quotactl.2:247
11549 #, no-wrap
11550 msgid "/* Bits for dqi_flags */\n"
11551 msgstr "/* Bits for dqi_flags */\n"
11552
11553 #. type: Plain text
11554 #: build/C/man2/quotactl.2:249
11555 #, no-wrap
11556 msgid "/* Quota format QFMT_VFS_OLD */\n"
11557 msgstr "/* Quota format QFMT_VFS_OLD */\n"
11558
11559 #. type: Plain text
11560 #: build/C/man2/quotactl.2:251
11561 #, no-wrap
11562 msgid "#define V1_DQF_RSQUASH\t1   /* Root squash enabled */\n"
11563 msgstr "#define V1_DQF_RSQUASH\t1   /* Root squash enabled */\n"
11564
11565 #. type: Plain text
11566 #: build/C/man2/quotactl.2:253
11567 #, no-wrap
11568 msgid "/* Other quota formats have no dqi_flags bits defined */\n"
11569 msgstr "/* Other quota formats have no dqi_flags bits defined */\n"
11570
11571 #. type: Plain text
11572 #: build/C/man2/quotactl.2:256
11573 #, no-wrap
11574 msgid ""
11575 "/* Flags in dqi_valid that indicate which fields in\n"
11576 "   dqinfo structure are valid. */\n"
11577 msgstr ""
11578 "/* Flags in dqi_valid that indicate which fields in\n"
11579 "   dqinfo structure are valid. */\n"
11580
11581 #. type: Plain text
11582 #: build/C/man2/quotactl.2:261
11583 #, no-wrap
11584 msgid ""
11585 "# define IIF_BGRACE\t1\n"
11586 "# define IIF_IGRACE\t2\n"
11587 "# define IIF_FLAGS\t4\n"
11588 "# define IIF_ALL        (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)\n"
11589 msgstr ""
11590 "# define IIF_BGRACE\t1\n"
11591 "# define IIF_IGRACE\t2\n"
11592 "# define IIF_FLAGS\t4\n"
11593 "# define IIF_ALL        (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)\n"
11594
11595 #. type: Plain text
11596 #: build/C/man2/quotactl.2:277
11597 msgid ""
11598 "The I<dqi_valid> field in the I<dqinfo> structure indicates the entries in "
11599 "the structure that are valid.  Currently, the kernel fills in all entries of "
11600 "the I<dqinfo> structure and marks them all as valid in the I<dqi_valid> "
11601 "field.  The I<id> argument is ignored."
11602 msgstr ""
11603
11604 #. type: TP
11605 #: build/C/man2/quotactl.2:277
11606 #, no-wrap
11607 msgid "B<Q_SETINFO>"
11608 msgstr "B<Q_SETINFO>"
11609
11610 #. type: Plain text
11611 #: build/C/man2/quotactl.2:301
11612 msgid ""
11613 "Set information about quotafile.  The I<addr> argument should be a pointer "
11614 "to a I<dqinfo> structure.  The I<dqi_valid> field of the I<dqinfo> structure "
11615 "indicates the entries in the structure that have been set by the caller.  "
11616 "This operation supersedes the B<Q_SETGRACE> and B<Q_SETFLAGS> operations in "
11617 "the previous quota interfaces.  The I<id> argument is ignored.  This "
11618 "operation requires privilege (B<CAP_SYS_ADMIN>)."
11619 msgstr ""
11620
11621 #. type: TP
11622 #: build/C/man2/quotactl.2:301
11623 #, no-wrap
11624 msgid "B<Q_GETFMT>"
11625 msgstr "B<Q_GETFMT>"
11626
11627 #. type: Plain text
11628 #: build/C/man2/quotactl.2:308
11629 msgid ""
11630 "Get quota format used on the specified filesystem.  The I<addr> argument "
11631 "should be a pointer to a 4-byte buffer where the format number will be "
11632 "stored."
11633 msgstr ""
11634
11635 #. type: TP
11636 #: build/C/man2/quotactl.2:308
11637 #, no-wrap
11638 msgid "B<Q_SYNC>"
11639 msgstr "B<Q_SYNC>"
11640
11641 #. type: Plain text
11642 #: build/C/man2/quotactl.2:319
11643 msgid ""
11644 "Update the on-disk copy of quota usages for a filesystem.  If I<special> is "
11645 "NULL, then all filesystems with active quotas are sync'ed.  The I<addr> and "
11646 "I<id> arguments are ignored."
11647 msgstr ""
11648
11649 #. type: TP
11650 #: build/C/man2/quotactl.2:319
11651 #, no-wrap
11652 msgid "B<Q_GETSTATS>"
11653 msgstr "B<Q_GETSTATS>"
11654
11655 #.  Q_GETSTATS was removed in kernel 2.4.22.
11656 #. type: Plain text
11657 #: build/C/man2/quotactl.2:339
11658 msgid ""
11659 "Get statistics and other generic information about the quota subsystem.  The "
11660 "I<addr> argument should be a pointer to a I<dqstats> structure in which data "
11661 "should be stored.  This structure is defined in I<E<lt>sys/quota.hE<gt>>.  "
11662 "The I<special> and I<id> arguments are ignored.  This operation is obsolete "
11663 "and not supported by recent kernels.  Files in I</proc/sys/fs/quota/> carry "
11664 "the information instead."
11665 msgstr ""
11666
11667 #. type: Plain text
11668 #: build/C/man2/quotactl.2:342
11669 msgid ""
11670 "For XFS filesystems making use of the XFS Quota Manager (XQM), the above "
11671 "commands are bypassed and the following commands are used:"
11672 msgstr ""
11673
11674 #. type: TP
11675 #: build/C/man2/quotactl.2:342
11676 #, no-wrap
11677 msgid "B<Q_XQUOTAON>"
11678 msgstr "B<Q_XQUOTAON>"
11679
11680 #. type: Plain text
11681 #: build/C/man2/quotactl.2:363
11682 msgid ""
11683 "Turn on quotas for an XFS filesystem.  XFS provides the ability to turn on/"
11684 "off quota limit enforcement with quota accounting.  Therefore, XFS expects "
11685 "I<addr> to be a pointer to an I<unsigned int> that contains either the flags "
11686 "B<XFS_QUOTA_UDQ_ACCT> and/or B<XFS_QUOTA_UDQ_ENFD> (for user quota), or "
11687 "B<XFS_QUOTA_GDQ_ACCT> and/or B<XFS_QUOTA_GDQ_ENFD> (for group quota), as "
11688 "defined in I<E<lt>xfs/xqm.hE<gt>>.  This operation requires privilege "
11689 "(B<CAP_SYS_ADMIN>)."
11690 msgstr ""
11691
11692 #. type: TP
11693 #: build/C/man2/quotactl.2:363
11694 #, no-wrap
11695 msgid "B<Q_XQUOTAOFF>"
11696 msgstr "B<Q_XQUOTAOFF>"
11697
11698 #. type: Plain text
11699 #: build/C/man2/quotactl.2:374
11700 msgid ""
11701 "Turn off quotas for an XFS filesystem.  As with B<Q_QUOTAON>, XFS "
11702 "filesystems expect a pointer to an I<unsigned int> that specifies whether "
11703 "quota accounting and/or limit enforcement need to be turned off.  This "
11704 "operation requires privilege (B<CAP_SYS_ADMIN>)."
11705 msgstr ""
11706
11707 #. type: TP
11708 #: build/C/man2/quotactl.2:374
11709 #, no-wrap
11710 msgid "B<Q_XGETQUOTA>"
11711 msgstr "B<Q_XGETQUOTA>"
11712
11713 #. type: Plain text
11714 #: build/C/man2/quotactl.2:388
11715 msgid ""
11716 "Get disk quota limits and current usage for user I<id>.  The I<addr> "
11717 "argument is a pointer to an I<fs_disk_quota> structure (defined in "
11718 "I<E<lt>xfs/xqm.hE<gt>>).  Unprivileged users may retrieve only their own "
11719 "quotas; a privileged user (B<CAP_SYS_ADMIN>)  may retrieve the quotas of any "
11720 "user."
11721 msgstr ""
11722
11723 #. type: TP
11724 #: build/C/man2/quotactl.2:388
11725 #, no-wrap
11726 msgid "B<Q_XSETQLIM>"
11727 msgstr "B<Q_XSETQLIM>"
11728
11729 #. type: Plain text
11730 #: build/C/man2/quotactl.2:400
11731 msgid ""
11732 "Set disk quota limits for user I<id>.  The I<addr> argument is a pointer to "
11733 "an I<fs_disk_quota> structure (defined in I<E<lt>xfs/xqm.hE<gt>>).  This "
11734 "operation requires privilege (B<CAP_SYS_ADMIN>)."
11735 msgstr ""
11736
11737 #. type: TP
11738 #: build/C/man2/quotactl.2:400
11739 #, no-wrap
11740 msgid "B<Q_XGETQSTAT>"
11741 msgstr "B<Q_XGETQSTAT>"
11742
11743 #. type: Plain text
11744 #: build/C/man2/quotactl.2:408
11745 msgid ""
11746 "Returns an I<fs_quota_stat> structure containing XFS filesystem-specific "
11747 "quota information.  This is useful for finding out how much space is used to "
11748 "store quota information, and also to get quotaon/off status of a given local "
11749 "XFS filesystem."
11750 msgstr ""
11751
11752 #. type: TP
11753 #: build/C/man2/quotactl.2:408
11754 #, no-wrap
11755 msgid "B<Q_XQUOTARM>"
11756 msgstr "B<Q_XQUOTARM>"
11757
11758 #. type: Plain text
11759 #: build/C/man2/quotactl.2:412
11760 msgid ""
11761 "Free the disk space taken by disk quotas.  Quotas must have already been "
11762 "turned off."
11763 msgstr ""
11764
11765 #. type: Plain text
11766 #: build/C/man2/quotactl.2:419
11767 msgid ""
11768 "There is no command equivalent to B<Q_SYNC> for XFS since B<sync>(1)  writes "
11769 "quota information to disk (in addition to the other filesystem metadata that "
11770 "it writes out)."
11771 msgstr ""
11772
11773 #. type: Plain text
11774 #: build/C/man2/quotactl.2:427
11775 msgid ""
11776 "On success, B<quotactl>()  returns 0; on error -1 is returned, and I<errno> "
11777 "is set to indicate the error."
11778 msgstr ""
11779 "成功すると、 B<quotactl>()  は 0 を返す。\n"
11780 "エラーの場合、-1 を返し、 I<errno> をエラーを示す値に設定する。"
11781
11782 #. type: Plain text
11783 #: build/C/man2/quotactl.2:434
11784 msgid "I<addr> or I<special> is invalid."
11785 msgstr ""
11786
11787 #. type: Plain text
11788 #: build/C/man2/quotactl.2:440
11789 msgid "I<cmd> or I<type> is invalid."
11790 msgstr ""
11791
11792 #. type: Plain text
11793 #: build/C/man2/quotactl.2:447
11794 msgid "The file specified by I<special> or I<addr> does not exist."
11795 msgstr ""
11796
11797 #. type: Plain text
11798 #: build/C/man2/quotactl.2:452
11799 msgid "The kernel has not been compiled with the B<CONFIG_QUOTA> option."
11800 msgstr ""
11801
11802 #. type: TP
11803 #: build/C/man2/quotactl.2:452
11804 #, no-wrap
11805 msgid "B<ENOTBLK>"
11806 msgstr "B<ENOTBLK>"
11807
11808 #. type: Plain text
11809 #: build/C/man2/quotactl.2:456
11810 msgid "I<special> is not a block device."
11811 msgstr "I<special> がブロックデバイスではない。"
11812
11813 #. type: Plain text
11814 #: build/C/man2/quotactl.2:461
11815 msgid ""
11816 "The caller lacked the required privilege (B<CAP_SYS_ADMIN>)  for the "
11817 "specified operation."
11818 msgstr ""
11819
11820 #. type: Plain text
11821 #: build/C/man2/quotactl.2:465
11822 msgid ""
11823 "No disk quota is found for the indicated user.  Quotas have not been turned "
11824 "on for this filesystem."
11825 msgstr ""
11826
11827 #. type: Plain text
11828 #: build/C/man2/quotactl.2:474
11829 msgid "If I<cmd> is B<Q_SETQUOTA>, B<quotactl>()  may also set I<errno> to:"
11830 msgstr ""
11831
11832 #. type: Plain text
11833 #: build/C/man2/quotactl.2:477
11834 msgid "Specified limits are out of range allowed by quota format."
11835 msgstr ""
11836
11837 #. type: Plain text
11838 #: build/C/man2/quotactl.2:486
11839 msgid "If I<cmd> is B<Q_QUOTAON>, B<quotactl>()  may also set I<errno> to:"
11840 msgstr ""
11841
11842 #. type: Plain text
11843 #: build/C/man2/quotactl.2:495
11844 msgid ""
11845 "The quota file pointed to by I<addr> exists, but is not a regular file; or, "
11846 "the quota file pointed to by I<addr> exists, but is not on the filesystem "
11847 "pointed to by I<special>."
11848 msgstr ""
11849
11850 #. type: Plain text
11851 #: build/C/man2/quotactl.2:501
11852 msgid ""
11853 "B<Q_QUOTAON> attempted, but another B<Q_QUOTAON> had already been performed."
11854 msgstr ""
11855
11856 #. type: Plain text
11857 #: build/C/man2/quotactl.2:504
11858 msgid "The quota file is corrupted."
11859 msgstr "quota ファイルが壊れている。"
11860
11861 #. type: Plain text
11862 #: build/C/man2/quotactl.2:507
11863 msgid "Specified quota format was not found."
11864 msgstr ""
11865
11866 #. type: Plain text
11867 #: build/C/man2/quotactl.2:511
11868 msgid "B<quota>(1), B<getrlimit>(2), B<quotacheck>(8), B<quotaon>(8)"
11869 msgstr "B<quota>(1), B<getrlimit>(2), B<quotacheck>(8), B<quotaon>(8)"
11870
11871 #. type: TH
11872 #: build/C/man2/sendfile.2:19
11873 #, no-wrap
11874 msgid "SENDFILE"
11875 msgstr "SENDFILE"
11876
11877 #. type: TH
11878 #: build/C/man2/sendfile.2:19
11879 #, no-wrap
11880 msgid "2011-09-14"
11881 msgstr "2011-09-14"
11882
11883 #. type: Plain text
11884 #: build/C/man2/sendfile.2:22
11885 msgid "sendfile - transfer data between file descriptors"
11886 msgstr "sendfile - ファイル・ディスクリプタ間でデータを転送する"
11887
11888 #. type: Plain text
11889 #: build/C/man2/sendfile.2:24
11890 msgid "B<#include E<lt>sys/sendfile.hE<gt>>"
11891 msgstr "B<#include E<lt>sys/sendfile.hE<gt>>"
11892
11893 #.  The below is too ugly. Comments about glibc versions belong
11894 #.  in the notes, not in the header.
11895 #.  .B #include <features.h>
11896 #.  .br
11897 #.  .B #if (__GLIBC__==2 && __GLIBC_MINOR__>=1) || __GLIBC__>2
11898 #.  .br
11899 #.  .B #include <sys/sendfile.h>
11900 #.  .br
11901 #.  #else
11902 #.  .br
11903 #.  .B #include <sys/types.h>
11904 #.  .br
11905 #.  .B /* No system prototype before glibc 2.1. */
11906 #.  .br
11907 #.  .BI "ssize_t sendfile(int" " out_fd" ", int" " in_fd" ", off_t *" #.                        offset ", size_t" " count" )
11908 #.  .br
11909 #.  .B #endif
11910 #. type: Plain text
11911 #: build/C/man2/sendfile.2:47
11912 msgid ""
11913 "B<ssize_t sendfile(int>I< out_fd>B<, int>I< in_fd>B<, off_t *>I<offset>B<, "
11914 "size_t>I< count>B<);>"
11915 msgstr ""
11916 "B<ssize_t sendfile(int>I< out_fd>B<, int>I< in_fd>B<, off_t *>I<offset>B<, "
11917 "size_t>I< count>B<);>"
11918
11919 #. type: Plain text
11920 #: build/C/man2/sendfile.2:57
11921 msgid ""
11922 "B<sendfile>()  copies data between one file descriptor and another.  Because "
11923 "this copying is done within the kernel, B<sendfile>()  is more efficient "
11924 "than the combination of B<read>(2)  and B<write>(2), which would require "
11925 "transferring data to and from user space."
11926 msgstr ""
11927 "B<sendfile>()  は、あるファイル・ディスクリプタから別の ファイル・ディスクリ"
11928 "プタへのデータのコピーを行う。 このコピーはカーネル内で行われるので、 "
11929 "B<sendfile>()  は、 B<read>(2)  と B<write>(2)  を組み合わせるよりも効率がよ"
11930 "い。 B<read>(2)  や B<write>(2)  ではユーザ空間との間でデータの転送が必要とな"
11931 "るからである。"
11932
11933 #. type: Plain text
11934 #: build/C/man2/sendfile.2:62
11935 msgid ""
11936 "I<in_fd> should be a file descriptor opened for reading and I<out_fd> should "
11937 "be a descriptor opened for writing."
11938 msgstr ""
11939 "I<in_fd> は読み込みのためにオープンされたファイル・ディスクリプタ、 "
11940 "I<out_fd> は書き込みのためにオープンされたディスクリプタでなければならない。"
11941
11942 #. type: Plain text
11943 #: build/C/man2/sendfile.2:83
11944 msgid ""
11945 "If I<offset> is not NULL, then it points to a variable holding the file "
11946 "offset from which B<sendfile>()  will start reading data from I<in_fd>.  "
11947 "When B<sendfile>()  returns, this variable will be set to the offset of the "
11948 "byte following the last byte that was read.  If I<offset> is not NULL, then "
11949 "B<sendfile>()  does not modify the current file offset of I<in_fd>; "
11950 "otherwise the current file offset is adjusted to reflect the number of bytes "
11951 "read from I<in_fd>."
11952 msgstr ""
11953 "I<offset> が NULL でない場合、 I<offset> は B<sendfile>()  が I<in_fd> のどこ"
11954 "からデータを読み始めるかを示すファイル・オフセットを保持する変数への ポインタ"
11955 "である。 B<sendfile>()  は復帰する時、この変数に最後に読み込んだバイトの 次の"
11956 "バイトのオフセットを書き込む。 I<offset> が NULL でない場合、 B<sendfile>()  "
11957 "は I<in_fd> のファイル・オフセットの現在値を変更しない。 NULL の場合は、ファ"
11958 "イル・オフセットの現在値を I<in_fd> から読み込んだバイト数を反映した位置に調"
11959 "整する。"
11960
11961 #. type: Plain text
11962 #: build/C/man2/sendfile.2:90
11963 msgid ""
11964 "If I<offset> is NULL, then data will be read from I<in_fd> starting at the "
11965 "current file offset, and the file offset will be updated by the call."
11966 msgstr ""
11967 "I<offset> が NULL の場合、データは I<in_fd> の現在のファイル・オフセットから"
11968 "読み出され、 ファイル・オフセットはこの呼び出しで更新される。"
11969
11970 #. type: Plain text
11971 #: build/C/man2/sendfile.2:93
11972 msgid "I<count> is the number of bytes to copy between the file descriptors."
11973 msgstr "I<count> は、ファイル・ディスクリプタ間でコピーするバイト数である。"
11974
11975 #. type: Plain text
11976 #: build/C/man2/sendfile.2:100
11977 msgid ""
11978 "The I<in_fd> argument must correspond to a file which supports B<mmap>(2)-"
11979 "like operations (i.e., it cannot be a socket)."
11980 msgstr ""
11981 "I<in_fd> 引き数は B<mmap>(2) 風の操作ができるファイルを指していなければなら"
11982 "な\n"
11983 "い (ソケットを指定することはできない)。"
11984
11985 #. type: Plain text
11986 #: build/C/man2/sendfile.2:108
11987 msgid ""
11988 "In Linux kernels before 2.6.33, I<out_fd> must refer to a socket.  Since "
11989 "Linux 2.6.33 it can be any file.  If it is a regular file, then "
11990 "B<sendfile>()  changes the file offset appropriately."
11991 msgstr ""
11992 "2.6.33 より前の Linux カーネルでは I<out_fd> はソケットを参照していなければ"
11993 "な\n"
11994 "らない。Linux 2.6.33 以降では、任意のファイルを参照することができる。\n"
11995 "通常のファイルの場合には B<sendfile>() はファイルオフセットを適切に変更する。"
11996
11997 #. type: Plain text
11998 #: build/C/man2/sendfile.2:115
11999 msgid ""
12000 "If the transfer was successful, the number of bytes written to I<out_fd> is "
12001 "returned.  On error, -1 is returned, and I<errno> is set appropriately."
12002 msgstr ""
12003 "転送に成功した場合、 I<out_fd> に書き込まれたバイト数を返す。エラーの場"
12004 "合、-1 を返し、 I<errno> に適切な値を設定する。"
12005
12006 #. type: Plain text
12007 #: build/C/man2/sendfile.2:121
12008 msgid ""
12009 "Nonblocking I/O has been selected using B<O_NONBLOCK> and the write would "
12010 "block."
12011 msgstr ""
12012 "B<O_NONBLOCK> を用いて非ブロック I/O が選択されたが、書き込みがブロックされ"
12013 "た。"
12014
12015 #. type: Plain text
12016 #: build/C/man2/sendfile.2:125
12017 msgid ""
12018 "The input file was not opened for reading or the output file was not opened "
12019 "for writing."
12020 msgstr ""
12021 "入力ファイルが読み込みのためにオープンされていないか、 出力ファイルが書き込み"
12022 "のためにオープンされていない。"
12023
12024 #. type: Plain text
12025 #: build/C/man2/sendfile.2:128
12026 msgid "Bad address."
12027 msgstr "アドレスがおかしい。"
12028
12029 #. type: Plain text
12030 #: build/C/man2/sendfile.2:134
12031 msgid ""
12032 "Descriptor is not valid or locked, or an B<mmap>(2)-like operation is not "
12033 "available for I<in_fd>."
12034 msgstr ""
12035 "ディスクリプタが有効でないか、ロックされている。もしくは B<mmap>(2)  風の操作"
12036 "が I<in_fd> では利用できない。"
12037
12038 #. type: Plain text
12039 #: build/C/man2/sendfile.2:138
12040 msgid "Unspecified error while reading from I<in_fd>."
12041 msgstr "I<in_fd> から読み込んでいるうちに予期しないエラーが起こった。"
12042
12043 #. type: Plain text
12044 #: build/C/man2/sendfile.2:142
12045 msgid "Insufficient memory to read from I<in_fd>."
12046 msgstr "I<in_fd> から読み込むための十分なメモリがない。"
12047
12048 #. type: Plain text
12049 #: build/C/man2/sendfile.2:148
12050 msgid ""
12051 "B<sendfile>()  is a new feature in Linux 2.2.  The include file I<E<lt>sys/"
12052 "sendfile.hE<gt>> is present since glibc 2.1."
12053 msgstr ""
12054 "B<sendfile> は Linux 2.2 の新しい機能である。 インクルードファイル "
12055 "I<E<lt>sys/sendfile.hE<gt>> は glibc 2.1 から存在している。"
12056
12057 #. type: Plain text
12058 #: build/C/man2/sendfile.2:150
12059 msgid "Not specified in POSIX.1-2001, or other standards."
12060 msgstr "POSIX.1-2001 や他の標準では規定されていない。"
12061
12062 #. type: Plain text
12063 #: build/C/man2/sendfile.2:155
12064 msgid ""
12065 "Other UNIX systems implement B<sendfile>()  with different semantics and "
12066 "prototypes.  It should not be used in portable programs."
12067 msgstr ""
12068 "他の UNIX システムでは、異なった方式やプロトタイプで B<sendfile>()  を実装し"
12069 "ている。移植性を考慮したプログラムでは使用すべきではない。"
12070
12071 #. type: Plain text
12072 #: build/C/man2/sendfile.2:165
12073 msgid ""
12074 "If you plan to use B<sendfile>()  for sending files to a TCP socket, but "
12075 "need to send some header data in front of the file contents, you will find "
12076 "it useful to employ the B<TCP_CORK> option, described in B<tcp>(7), to "
12077 "minimize the number of packets and to tune performance."
12078 msgstr ""
12079 "B<sendfile>()  を使って TCP ソケットにファイルを送ろうとしていて、 ファイルの"
12080 "内容の前にヘッダ・データを付け加える必要がある場合は、 パケット数を最小にして"
12081 "性能を上げるために B<tcp>(7)  に記述されている B<TCP_CORK> オプションを使うと"
12082 "いいだろう。"
12083
12084 #. type: Plain text
12085 #: build/C/man2/sendfile.2:171
12086 msgid ""
12087 "In Linux 2.4 and earlier, I<out_fd> could also refer to a regular file, and "
12088 "B<sendfile>()  changed the current offset of that file."
12089 msgstr ""
12090 "Linux 2.4 とそれ以前のバージョンでも、 I<out_fd> は通常のファイルを参照で"
12091 "き、\n"
12092 "B<sendfile>() はそのファイルのオフセットの現在値を変更していた。"
12093
12094 #. type: Plain text
12095 #: build/C/man2/sendfile.2:183
12096 msgid ""
12097 "The original Linux B<sendfile>()  system call was not designed to handle "
12098 "large file offsets.  Consequently, Linux 2.4 added B<sendfile64>(), with a "
12099 "wider type for the I<offset> argument.  The glibc B<sendfile>()  wrapper "
12100 "function transparently deals with the kernel differences."
12101 msgstr ""
12102 "元々の Linux B<sendfile>() システムコールは大きなファイルオフセットを\n"
12103 "扱えるように設計されていなかった。その結果、Linux 2.4 で、\n"
12104 "ビット幅の大きな I<offset> 引き数を持った B<sendfile64>() が追加された。\n"
12105 "glibc の B<sendfile>() のラッパー関数はカーネルによるこの違いを吸収している。"
12106
12107 #. type: Plain text
12108 #: build/C/man2/sendfile.2:192
12109 msgid ""
12110 "Applications may wish to fall back to B<read>(2)/B<write>(2)  in the case "
12111 "where B<sendfile>()  fails with B<EINVAL> or B<ENOSYS>."
12112 msgstr ""
12113 "B<sendfile>()  が B<EINVAL> や B<ENOSYS> で失敗するような場合は、 アプリケー"
12114 "ションは B<read>(2)/B<write>(2)  に戻すことを考えてもよいかもしれない。"
12115
12116 #. type: Plain text
12117 #: build/C/man2/sendfile.2:197
12118 msgid ""
12119 "The Linux-specific B<splice>(2)  call supports transferring data between "
12120 "arbitrary files (e.g., a pair of sockets)."
12121 msgstr ""
12122 "Linux 固有の B<splice>(2) システムコールは、任意のファイル間 (例えば、\n"
12123 "ソケット同士) でのデータ転送をサポートしている。"
12124
12125 #. type: Plain text
12126 #: build/C/man2/sendfile.2:202
12127 msgid "B<mmap>(2), B<open>(2), B<socket>(2), B<splice>(2)"
12128 msgstr "B<mmap>(2), B<open>(2), B<socket>(2), B<splice>(2)"
12129
12130 #. type: TH
12131 #: build/C/man2/set_tid_address.2:25
12132 #, no-wrap
12133 msgid "SET_TID_ADDRESS"
12134 msgstr "SET_TID_ADDRESS"
12135
12136 #. type: TH
12137 #: build/C/man2/set_tid_address.2:25
12138 #, no-wrap
12139 msgid "2014-07-08"
12140 msgstr "2014-07-08"
12141
12142 #. type: Plain text
12143 #: build/C/man2/set_tid_address.2:28
12144 msgid "set_tid_address - set pointer to thread ID"
12145 msgstr "set_tid_address - スレッド ID へのポインタを設定する"
12146
12147 #. type: Plain text
12148 #: build/C/man2/set_tid_address.2:31
12149 #, no-wrap
12150 msgid "B<#include E<lt>linux/unistd.hE<gt>>\n"
12151 msgstr "B<#include E<lt>linux/unistd.hE<gt>>\n"
12152
12153 #. type: Plain text
12154 #: build/C/man2/set_tid_address.2:33
12155 #, no-wrap
12156 msgid "B<long set_tid_address(int *>I<tidptr>B<);>\n"
12157 msgstr "B<long set_tid_address(int *>I<tidptr>B<);>\n"
12158
12159 #. type: Plain text
12160 #: build/C/man2/set_tid_address.2:40
12161 msgid ""
12162 "For each thread, the kernel maintains two attributes (addresses) called "
12163 "I<set_child_tid> and I<clear_child_tid>.  These two attributes contain the "
12164 "value NULL by default."
12165 msgstr ""
12166 "各スレッドについて、カーネルは I<set_child_tid> と I<clear_child_tid> という "
12167 "2 つの属性を保持する。この 2 つの属性はデフォルトでは NULL である。"
12168
12169 #. type: TP
12170 #: build/C/man2/set_tid_address.2:40
12171 #, no-wrap
12172 msgid "I<set_child_tid>"
12173 msgstr "I<set_child_tid>"
12174
12175 #. type: Plain text
12176 #: build/C/man2/set_tid_address.2:51
12177 msgid ""
12178 "If a thread is started using B<clone>(2)  with the B<CLONE_CHILD_SETTID> "
12179 "flag, I<set_child_tid> is set to the value passed in the I<ctid> argument of "
12180 "that system call."
12181 msgstr ""
12182 "スレッドが B<CLONE_CHILD_SETTID> フラグを指定した B<clone>(2)  によって開始さ"
12183 "れた場合、 I<set_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引き数"
12184 "で渡された値に設定される。"
12185
12186 #. type: Plain text
12187 #: build/C/man2/set_tid_address.2:56
12188 msgid ""
12189 "When I<set_child_tid> is set, the very first thing the new thread does is to "
12190 "write its thread ID at this address."
12191 msgstr ""
12192 "I<set_child_tid> が設定された場合、一番最初に新しいスレッドが行うことは、 こ"
12193 "のアドレスに自身のスレッド ID を書き込むことである。"
12194
12195 #. type: TP
12196 #: build/C/man2/set_tid_address.2:56
12197 #, no-wrap
12198 msgid "I<clear_child_tid>"
12199 msgstr "I<clear_child_tid>"
12200
12201 #. type: Plain text
12202 #: build/C/man2/set_tid_address.2:67
12203 msgid ""
12204 "If a thread is started using B<clone>(2)  with the B<CLONE_CHILD_CLEARTID> "
12205 "flag, I<clear_child_tid> is set to the value passed in the I<ctid> argument "
12206 "of that system call."
12207 msgstr ""
12208 "スレッドが B<CLONE_CHILD_CLEARTID> フラグを指定した B<clone>(2) によって開始"
12209 "された場合、 I<clear_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引"
12210 "き数で渡された値に設定される。"
12211
12212 #. type: Plain text
12213 #: build/C/man2/set_tid_address.2:74
12214 msgid ""
12215 "The system call B<set_tid_address>()  sets the I<clear_child_tid> value for "
12216 "the calling thread to I<tidptr>."
12217 msgstr ""
12218 "システムコール B<set_tid_address>()  は呼び出し元スレッドの "
12219 "I<clear_child_tid> の値を I<tidptr> に設定する。"
12220
12221 #. type: Plain text
12222 #: build/C/man2/set_tid_address.2:82
12223 msgid ""
12224 "When a thread whose I<clear_child_tid> is not NULL terminates, then, if the "
12225 "thread is sharing memory with other threads, then 0 is written at the "
12226 "address specified in I<clear_child_tid> and the kernel performs the "
12227 "following operation:"
12228 msgstr ""
12229 "I<clear_child_tid> が NULL でないスレッドが終了すると、そのスレッドが他のス"
12230 "レッドとメモリを共有していれば、 I<clear_child_tid> で指定されたアドレスに 0 "
12231 "が書き込まれ、カーネルは以下の処理を実行する。"
12232
12233 #. type: Plain text
12234 #: build/C/man2/set_tid_address.2:84
12235 #, no-wrap
12236 msgid "    futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);\n"
12237 msgstr "    futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);\n"
12238
12239 #. type: Plain text
12240 #: build/C/man2/set_tid_address.2:88
12241 msgid ""
12242 "The effect of this operation is to wake a single thread that is performing a "
12243 "futex wait on the memory location.  Errors from the futex wake operation are "
12244 "ignored."
12245 msgstr ""
12246 "この処理の結果、このメモリアドレスに対する futex wait を実行しているスレッド"
12247 "を一つ起こす (wake)。 futex wake 操作でのエラーは無視される。"
12248
12249 #. type: Plain text
12250 #: build/C/man2/set_tid_address.2:91
12251 msgid "B<set_tid_address>()  always returns the caller's thread ID."
12252 msgstr "B<set_tid_address>()  は常に呼び出し元のスレッド ID を返す。"
12253
12254 #. type: Plain text
12255 #: build/C/man2/set_tid_address.2:94
12256 msgid "B<set_tid_address>()  always succeeds."
12257 msgstr "B<set_tid_address>()  は常に成功する。"
12258
12259 #. type: Plain text
12260 #: build/C/man2/set_tid_address.2:97
12261 msgid ""
12262 "This call is present since Linux 2.5.48.  Details as given here are valid "
12263 "since Linux 2.5.49."
12264 msgstr ""
12265 "この呼び出しは Linux 2.5.48 以降で存在する。 ここで書かれた詳細は Linux "
12266 "2.5.49 以降で有効である。"
12267
12268 #. type: Plain text
12269 #: build/C/man2/set_tid_address.2:102
12270 msgid "B<clone>(2), B<futex>(2), B<gettid>(2)"
12271 msgstr "B<clone>(2), B<futex>(2), B<gettid>(2)"
12272
12273 #. type: TH
12274 #: build/C/man2/splice.2:26
12275 #, no-wrap
12276 msgid "SPLICE"
12277 msgstr "SPLICE"
12278
12279 #. type: TH
12280 #: build/C/man2/splice.2:26 build/C/man2/tee.2:26
12281 #, no-wrap
12282 msgid "2014-12-31"
12283 msgstr "2014-12-31"
12284
12285 #. type: Plain text
12286 #: build/C/man2/splice.2:29
12287 msgid "splice - splice data to/from a pipe"
12288 msgstr "splice - パイプとの間でデータを継ぎ合わせる"
12289
12290 #. type: Plain text
12291 #: build/C/man2/splice.2:33 build/C/man2/tee.2:33
12292 #, no-wrap
12293 msgid ""
12294 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
12295 "B<#include E<lt>fcntl.hE<gt>>\n"
12296 msgstr ""
12297 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
12298 "B<#include E<lt>fcntl.hE<gt>>\n"
12299
12300 #.  Return type was long before glibc 2.7
12301 #. type: Plain text
12302 #: build/C/man2/splice.2:38
12303 #, no-wrap
12304 msgid ""
12305 "B<ssize_t splice(int >I<fd_in>B<, loff_t *>I<off_in>B<, int >I<fd_out>B<,>\n"
12306 "B<               loff_t *>I<off_out>B<, size_t >I<len>B<, unsigned int >I<flags>B<);>\n"
12307 msgstr ""
12308 "B<ssize_t splice(int >I<fd_in>B<, loff_t *>I<off_in>B<, int >I<fd_out>B<,>\n"
12309 "B<               loff_t *>I<off_out>B<, size_t >I<len>B<, unsigned int >I<flags>B<);>\n"
12310
12311 #. type: Plain text
12312 #: build/C/man2/splice.2:50
12313 msgid ""
12314 "B<splice>()  moves data between two file descriptors without copying between "
12315 "kernel address space and user address space.  It transfers up to I<len> "
12316 "bytes of data from the file descriptor I<fd_in> to the file descriptor "
12317 "I<fd_out>, where one of the descriptors must refer to a pipe."
12318 msgstr ""
12319 "B<splice>()  は、カーネルアドレス空間とユーザアドレス空間との間のコピーを伴わ"
12320 "ずに、 2 つのファイルディスクリプタ間でデータの移動を行う。 ファイルディスク"
12321 "リプタ I<fd_in> からファイルディスクリプタ I<fd_out> へ最大 I<len> バイトを転"
12322 "送する。 2 つのファイルディスクリプタのうち一つは パイプを参照していなければ"
12323 "ならない。"
12324
12325 #. type: Plain text
12326 #: build/C/man2/splice.2:55
12327 msgid "The following semantics apply for I<fd_in> and I<off_in>:"
12328 msgstr "I<fd_in> と I<off_in> には以下のルールが適用される。"
12329
12330 #. type: Plain text
12331 #: build/C/man2/splice.2:61
12332 msgid "If I<fd_in> refers to a pipe, then I<off_in> must be NULL."
12333 msgstr ""
12334 "I<fd_in> がパイプを参照している場合、 I<off_in> は NULL でなければならない。"
12335
12336 #. type: Plain text
12337 #: build/C/man2/splice.2:70
12338 msgid ""
12339 "If I<fd_in> does not refer to a pipe and I<off_in> is NULL, then bytes are "
12340 "read from I<fd_in> starting from the current file offset, and the current "
12341 "file offset is adjusted appropriately."
12342 msgstr ""
12343 "I<fd_in> がパイプを参照しておらず、かつ I<off_in> が NULL の場合、 バイトは "
12344 "I<fd_in> の現在のファイルオフセットから読み出され、 現在のファイルオフセット"
12345 "は適切に調整される。"
12346
12347 #. type: Plain text
12348 #: build/C/man2/splice.2:83
12349 msgid ""
12350 "If I<fd_in> does not refer to a pipe and I<off_in> is not NULL, then "
12351 "I<off_in> must point to a buffer which specifies the starting offset from "
12352 "which bytes will be read from I<fd_in>; in this case, the current file "
12353 "offset of I<fd_in> is not changed."
12354 msgstr ""
12355 "I<fd_in> がパイプを参照しておらず、 I<off_in> が NULL でない場合、 I<off_in> "
12356 "は I<fd_in> からのデータ読み出しを開始する先頭オフセットを格納したバッファ へ"
12357 "のポインタでなければならない。この場合、 I<fd_in> の現在のファイルオフセット"
12358 "は変更されない。"
12359
12360 #. type: Plain text
12361 #: build/C/man2/splice.2:88
12362 msgid "Analogous statements apply for I<fd_out> and I<off_out>."
12363 msgstr "I<fd_out> と I<off_out> に関しても同様である。"
12364
12365 #. type: Plain text
12366 #: build/C/man2/splice.2:93 build/C/man2/vmsplice.2:78
12367 msgid ""
12368 "The I<flags> argument is a bit mask that is composed by ORing together zero "
12369 "or more of the following values:"
12370 msgstr ""
12371 "I<flags> 引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。"
12372
12373 #. type: TP
12374 #: build/C/man2/splice.2:93 build/C/man2/tee.2:62 build/C/man2/vmsplice.2:78
12375 #, no-wrap
12376 msgid "B<SPLICE_F_MOVE>"
12377 msgstr "B<SPLICE_F_MOVE>"
12378
12379 #. type: Plain text
12380 #: build/C/man2/splice.2:106
12381 msgid ""
12382 "Attempt to move pages instead of copying.  This is only a hint to the "
12383 "kernel: pages may still be copied if the kernel cannot move the pages from "
12384 "the pipe, or if the pipe buffers don't refer to full pages.  The initial "
12385 "implementation of this flag was buggy: therefore starting in Linux 2.6.21 it "
12386 "is a no-op (but is still permitted in a B<splice>()  call); in the future, a "
12387 "correct implementation may be restored."
12388 msgstr ""
12389 "ページのコピーでなく移動を試みる。 これはカーネルに対するヒントでしかない。 "
12390 "つまり、カーネルがパイプからページを移動できない場合や、 パイプバッファがペー"
12391 "ジ全部を参照していない場合は、 ページのコピーが行われることもある。 このフラ"
12392 "グの最初の実装にはバグがあった。そのため、 Linux 2.6.21 以降ではこのフラグの"
12393 "操作はできないようになっている (ただし、 B<splice>()  コールでこのフラグを指"
12394 "定することは今も認められている)。 将来、正しい実装が行われることだろう。"
12395
12396 #. type: TP
12397 #: build/C/man2/splice.2:106 build/C/man2/tee.2:68 build/C/man2/vmsplice.2:84
12398 #, no-wrap
12399 msgid "B<SPLICE_F_NONBLOCK>"
12400 msgstr "B<SPLICE_F_NONBLOCK>"
12401
12402 #. type: Plain text
12403 #: build/C/man2/splice.2:115
12404 msgid ""
12405 "Do not block on I/O.  This makes the splice pipe operations nonblocking, but "
12406 "B<splice>()  may nevertheless block because the file descriptors that are "
12407 "spliced to/from may block (unless they have the B<O_NONBLOCK> flag set)."
12408 msgstr ""
12409 "入出力時に停止 (block) しない。 このフラグを指定すると、 splice によるパイプ"
12410 "操作を非停止モード (nonblocking) で 行おうとするが、その場合でも "
12411 "B<splice>()  は停止することもある。なぜなら、データのやり取りを行う ファイル"
12412 "ディスクリプタは (B<O_NONBLOCK> フラグをセットされていない場合) 停止する可能"
12413 "性があるからである。"
12414
12415 #. type: TP
12416 #: build/C/man2/splice.2:115 build/C/man2/tee.2:73 build/C/man2/vmsplice.2:91
12417 #, no-wrap
12418 msgid "B<SPLICE_F_MORE>"
12419 msgstr "B<SPLICE_F_MORE>"
12420
12421 #. type: Plain text
12422 #: build/C/man2/splice.2:129
12423 msgid ""
12424 "More data will be coming in a subsequent splice.  This is a helpful hint "
12425 "when the I<fd_out> refers to a socket (see also the description of "
12426 "B<MSG_MORE> in B<send>(2), and the description of B<TCP_CORK> in B<tcp>(7))"
12427 msgstr ""
12428 "この後の splice でさらに転送されるデータがあることを示す。 このフラグは "
12429 "I<fd_out> がソケットを参照している場合に有用なヒントとなる (B<send>(2)  の "
12430 "B<MSG_MORE> や B<tcp>(7)  の B<TCP_CORK> の説明も参照)。"
12431
12432 #. type: TP
12433 #: build/C/man2/splice.2:129 build/C/man2/tee.2:79 build/C/man2/vmsplice.2:97
12434 #, no-wrap
12435 msgid "B<SPLICE_F_GIFT>"
12436 msgstr "B<SPLICE_F_GIFT>"
12437
12438 #. type: Plain text
12439 #: build/C/man2/splice.2:135
12440 msgid "Unused for B<splice>(); see B<vmsplice>(2)."
12441 msgstr "B<splice>()  では使用しない。 B<vmsplice>(2)  参照。"
12442
12443 #. type: Plain text
12444 #: build/C/man2/splice.2:144
12445 msgid ""
12446 "Upon successful completion, B<splice>()  returns the number of bytes spliced "
12447 "to or from the pipe.  A return value of 0 means that there was no data to "
12448 "transfer, and it would not make sense to block, because there are no writers "
12449 "connected to the write end of the pipe referred to by I<fd_in>."
12450 msgstr ""
12451 "成功して完了すると、 B<splice>()  はパイプから出し入れしたバイト数を返す。 返"
12452 "り値 0 はデータの転送が行わなかったことを示す。 この場合、処理を停止 (block) "
12453 "しても無意味である。 なぜなら、 I<fd_in> が参照するパイプの書き込み側に接続さ"
12454 "れている者がいないからである。"
12455
12456 #. type: Plain text
12457 #: build/C/man2/splice.2:150
12458 msgid ""
12459 "On error, B<splice>()  returns -1 and I<errno> is set to indicate the error."
12460 msgstr ""
12461 "エラーの場合、 B<splice>()  は -1 を返し、 I<errno> にエラーを示す値を設定す"
12462 "る。"
12463
12464 #. type: Plain text
12465 #: build/C/man2/splice.2:157 build/C/man2/tee.2:107
12466 #: build/C/man2/vmsplice.2:133
12467 msgid ""
12468 "B<SPLICE_F_NONBLOCK> was specified in I<flags>, and the operation would "
12469 "block."
12470 msgstr ""
12471 "B<SPLICE_F_NONBLOCK> が I<flags> に指定されていて、かつ操作が停止するような状"
12472 "態であった。"
12473
12474 #. type: Plain text
12475 #: build/C/man2/splice.2:161
12476 msgid ""
12477 "One or both file descriptors are not valid, or do not have proper read-write "
12478 "mode."
12479 msgstr ""
12480 "ファイルディスクリプタの一方または両方が有効ではない、 もしくは適切な read-"
12481 "write モードではない。"
12482
12483 #.  The append-mode error is given since 2.6.27; in earlier kernels,
12484 #.  splice() in append mode was broken
12485 #. type: Plain text
12486 #: build/C/man2/splice.2:169
12487 msgid ""
12488 "Target filesystem doesn't support splicing; target file is opened in append "
12489 "mode; neither of the descriptors refers to a pipe; or offset given for "
12490 "nonseekable device."
12491 msgstr ""
12492 "対象のファイルシステムが splice に対応していない、 または対象のファイルが追記"
12493 "モードでオープンされている、 またはディスクリプタのどちらもパイプを参照してい"
12494 "ない、 または seek できないデバイスに対してオフセットが指定された。"
12495
12496 #. type: Plain text
12497 #: build/C/man2/splice.2:172 build/C/man2/tee.2:120
12498 #: build/C/man2/vmsplice.2:148
12499 msgid "Out of memory."
12500 msgstr "メモリ不足。"
12501
12502 #. type: TP
12503 #: build/C/man2/splice.2:172
12504 #, no-wrap
12505 msgid "B<ESPIPE>"
12506 msgstr "B<ESPIPE>"
12507
12508 #. type: Plain text
12509 #: build/C/man2/splice.2:179
12510 msgid ""
12511 "Either I<off_in> or I<off_out> was not NULL, but the corresponding file "
12512 "descriptor refers to a pipe."
12513 msgstr ""
12514 "I<off_in> か I<off_out> のいずれかが NULL ではないが、対応するファイルディス"
12515 "クリプタが パイプを参照している。"
12516
12517 #. type: Plain text
12518 #: build/C/man2/splice.2:184
12519 msgid ""
12520 "The B<splice>()  system call first appeared in Linux 2.6.17; library support "
12521 "was added to glibc in version 2.5."
12522 msgstr ""
12523 "B<splice>() システムコールは Linux 2.6.17 で初めて登場した。\n"
12524 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
12525
12526 #. type: Plain text
12527 #: build/C/man2/splice.2:196
12528 msgid ""
12529 "The three system calls B<splice>(), B<vmsplice>(2), and B<tee>(2), provide "
12530 "user-space programs with full control over an arbitrary kernel buffer, "
12531 "implemented within the kernel using the same type of buffer that is used for "
12532 "a pipe.  In overview, these system calls perform the following tasks:"
12533 msgstr ""
12534 "3 つのシステムコール (B<splice>(), B<vmsplice>(2), B<tee>(2))  を使うと、ユー"
12535 "ザ空間プログラムは任意のカーネルバッファに対する 完全な制御ができる。カーネル"
12536 "バッファは、パイプに使用されているのと 同種のバッファを使ってカーネル内に実装"
12537 "されている。 大まかにいうと、これらのシステムコールは以下の仕事を行う:"
12538
12539 #. type: TP
12540 #: build/C/man2/splice.2:196
12541 #, no-wrap
12542 msgid "B<splice>()"
12543 msgstr "B<splice>()"
12544
12545 #. type: Plain text
12546 #: build/C/man2/splice.2:200
12547 msgid ""
12548 "moves data from the buffer to an arbitrary file descriptor, or vice versa, "
12549 "or from one buffer to another."
12550 msgstr ""
12551 "バッファから任意のファイルディスクリプタや、その逆方向、 もしくはあるバッファ"
12552 "から別のバッファへの、データ移動を行う。"
12553
12554 #. type: TP
12555 #: build/C/man2/splice.2:200
12556 #, no-wrap
12557 msgid "B<tee>(2)"
12558 msgstr "B<tee>(2)"
12559
12560 #. type: Plain text
12561 #: build/C/man2/splice.2:203
12562 msgid "\"copies\" the data from one buffer to another."
12563 msgstr "あるバッファから別のバッファへのデータ「コピー」を行う。"
12564
12565 #. type: TP
12566 #: build/C/man2/splice.2:203
12567 #, no-wrap
12568 msgid "B<vmsplice>(2)"
12569 msgstr "B<vmsplice>(2)"
12570
12571 #. type: Plain text
12572 #: build/C/man2/splice.2:206
12573 msgid "\"copies\" data from user space into the buffer."
12574 msgstr "ユーザ空間からバッファへのデータ「コピー」を行う。"
12575
12576 #.  Linus: Now, imagine using the above in a media server, for example.
12577 #.  Let's say that a year or two has passed, so that the video drivers
12578 #.  have been updated to be able to do the splice thing, and what can
12579 #.  you do? You can:
12580 #.  - splice from the (mpeg or whatever - let's just assume that the video
12581 #.    input is either digital or does the encoding on its own - like they
12582 #.    pretty much all do) video input into a pipe (remember: no copies - the
12583 #.    video input will just DMA directly into memory, and splice will just
12584 #.    set up the pages in the pipe buffer)
12585 #.  - tee that pipe to split it up
12586 #.  - splice one end to a file (ie "save the compressed stream to disk")
12587 #.  - splice the other end to a real-time video decoder window for your
12588 #.    real-time viewing pleasure.
12589 #.  Linus: Now, the advantage of splice()/tee() is that you can
12590 #.  do zero-copy movement of data, and unlike sendfile() you can
12591 #.  do it on _arbitrary_ data (and, as shown by "tee()", it's more
12592 #.  than just sending the data to somebody else: you can duplicate
12593 #.  the data and choose to forward it to two or more different
12594 #.  users - for things like logging etc.).
12595 #. type: Plain text
12596 #: build/C/man2/splice.2:237
12597 msgid ""
12598 "Though we talk of copying, actual copies are generally avoided.  The kernel "
12599 "does this by implementing a pipe buffer as a set of reference-counted "
12600 "pointers to pages of kernel memory.  The kernel creates \"copies\" of pages "
12601 "in a buffer by creating new pointers (for the output buffer) referring to "
12602 "the pages, and increasing the reference counts for the pages: only pointers "
12603 "are copied, not the pages of the buffer."
12604 msgstr ""
12605 "ここではコピーの話をしているが、実際のコピーは一般的に回避される。 カーネル"
12606 "は、パイプ・バッファをカーネルメモリのページへのポインタ集合として 実装し、"
12607 "ページへの参照回数を管理することで、これを実現している。 カーネルは、対象とな"
12608 "るページを参照する (出力バッファ用の) ポインタを 新規に作成することでバッファ"
12609 "内のページの「コピー」を作成し、 そのページの参照回数を増やす。つまり、ポイン"
12610 "タだけがコピーされ、 バッファのページはコピーされない。"
12611
12612 #. type: Plain text
12613 #: build/C/man2/splice.2:240
12614 msgid "See B<tee>(2)."
12615 msgstr "B<tee>(2)  参照。"
12616
12617 #. type: Plain text
12618 #: build/C/man2/splice.2:243
12619 msgid "B<sendfile>(2), B<tee>(2), B<vmsplice>(2)"
12620 msgstr "B<sendfile>(2), B<tee>(2), B<vmsplice>(2)"
12621
12622 #. type: TH
12623 #: build/C/man2/tee.2:26
12624 #, no-wrap
12625 msgid "TEE"
12626 msgstr "TEE"
12627
12628 #. type: Plain text
12629 #: build/C/man2/tee.2:29
12630 msgid "tee - duplicating pipe content"
12631 msgstr "tee - パイプの中身を複製する"
12632
12633 #. type: Plain text
12634 #: build/C/man2/tee.2:36
12635 #, no-wrap
12636 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"
12637 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"
12638
12639 #.  Example programs http://brick.kernel.dk/snaps
12640 #.  add a "tee(in, out1, out2)" system call that duplicates the pages
12641 #.  (again, incrementing their reference count, not copying the data) from
12642 #.  one pipe to two other pipes.
12643 #. type: Plain text
12644 #: build/C/man2/tee.2:56
12645 msgid ""
12646 "B<tee>()  duplicates up to I<len> bytes of data from the pipe referred to by "
12647 "the file descriptor I<fd_in> to the pipe referred to by the file descriptor "
12648 "I<fd_out>.  It does not consume the data that is duplicated from I<fd_in>; "
12649 "therefore, that data can be copied by a subsequent B<splice>(2)."
12650 msgstr ""
12651 "B<tee>()  は、ファイルディスクリプタ I<fd_in> が参照するパイプからファイル"
12652 "ディスクリプタ I<fd_out> が参照するパイプへ最大 I<len> バイトのデータを複製す"
12653 "る。 この操作では、複製されるデータは I<fd_in> からは消費されない。したがっ"
12654 "て、これらのデータをこの後の B<splice>(2)  でコピーすることができる。"
12655
12656 #. type: Plain text
12657 #: build/C/man2/tee.2:62
12658 msgid ""
12659 "I<flags> is a series of modifier flags, which share the name space with "
12660 "B<splice>(2)  and B<vmsplice>(2):"
12661 msgstr ""
12662 "I<flags> は一連の修飾フラグであり、 B<splice>(2)  や B<vmsplice>(2)  と共通の"
12663 "名前である。"
12664
12665 #. type: Plain text
12666 #: build/C/man2/tee.2:68
12667 msgid "Currently has no effect for B<tee>(); see B<splice>(2)."
12668 msgstr "現在のところ B<tee>()  では何の効果もない。 B<splice>(2)  参照。"
12669
12670 #.  Not used for vmsplice
12671 #.  May be in the future -- therefore EAGAIN
12672 #. type: Plain text
12673 #: build/C/man2/tee.2:73 build/C/man2/vmsplice.2:91
12674 msgid "Do not block on I/O; see B<splice>(2)  for further details."
12675 msgstr "入出力で停止 (block) しない。詳細は B<splice>(2)  参照。"
12676
12677 #. type: Plain text
12678 #: build/C/man2/tee.2:79
12679 msgid ""
12680 "Currently has no effect for B<tee>(), but may be implemented in the future; "
12681 "see B<splice>(2)."
12682 msgstr ""
12683 "現在のところ B<tee>()  では何の効果もないが、将来的には実装される可能性があ"
12684 "る。 B<splice>(2)  参照。"
12685
12686 #. type: Plain text
12687 #: build/C/man2/tee.2:85
12688 msgid "Unused for B<tee>(); see B<vmsplice>(2)."
12689 msgstr "B<tee>()  では未使用。 B<vmsplice>(2)  参照。"
12690
12691 #. type: Plain text
12692 #: build/C/man2/tee.2:94
12693 msgid ""
12694 "Upon successful completion, B<tee>()  returns the number of bytes that were "
12695 "duplicated between the input and output.  A return value of 0 means that "
12696 "there was no data to transfer, and it would not make sense to block, because "
12697 "there are no writers connected to the write end of the pipe referred to by "
12698 "I<fd_in>."
12699 msgstr ""
12700 "成功して完了すると、 B<tee>()  は入出力間で複製されたバイト数を返す。 返り値 "
12701 "0 はデータの転送が行われなかったことを示す。 この場合、処理を停止 (block) し"
12702 "ても無意味である。 なぜなら、 I<fd_in> が参照するパイプの書き込み側に接続され"
12703 "ている者がいないからである。"
12704
12705 #. type: Plain text
12706 #: build/C/man2/tee.2:100
12707 msgid ""
12708 "On error, B<tee>()  returns -1 and I<errno> is set to indicate the error."
12709 msgstr ""
12710 "エラーの場合、 B<tee>()  は -1 を返し、 I<errno> にエラーを示す値を設定する。"
12711
12712 #. type: Plain text
12713 #: build/C/man2/tee.2:117
12714 msgid ""
12715 "I<fd_in> or I<fd_out> does not refer to a pipe; or I<fd_in> and I<fd_out> "
12716 "refer to the same pipe."
12717 msgstr ""
12718 "I<fd_in> と I<fd_out> のどちらかがパイプを参照していない。もしくは I<fd_in> "
12719 "と I<fd_out> が同じパイプを参照している。"
12720
12721 #. type: Plain text
12722 #: build/C/man2/tee.2:125
12723 msgid ""
12724 "The B<tee>()  system call first appeared in Linux 2.6.17; library support "
12725 "was added to glibc in version 2.5."
12726 msgstr ""
12727 "B<tee>() システムコールは Linux 2.6.17 で初めて登場した。\n"
12728 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
12729
12730 #. type: Plain text
12731 #: build/C/man2/tee.2:136
12732 msgid ""
12733 "Conceptually, B<tee>()  copies the data between the two pipes.  In reality "
12734 "no real data copying takes place though: under the covers, B<tee>()  assigns "
12735 "data in the output by merely grabbing a reference to the input."
12736 msgstr ""
12737 "概念としては、 B<tee>()  は二つのパイプ間でデータのコピーを行う。 しかし、実"
12738 "際には実データのコピーは行われない。 内部では、 B<tee>()  は入力側に対する参"
12739 "照だけを作成することで出力側にデータを 追加する。"
12740
12741 #. type: Plain text
12742 #: build/C/man2/tee.2:143
12743 msgid ""
12744 "The example below implements a basic B<tee>(1)  program using the B<tee>()  "
12745 "system call.  Here is an example of its use:"
12746 msgstr ""
12747 "以下の例は、 B<tee>()  システムコールを使って、 基本的な B<tee>(1)  プログラ"
12748 "ムを実装したものである。 以下は利用例である。"
12749
12750 #. type: Plain text
12751 #: build/C/man2/tee.2:150
12752 #, no-wrap
12753 msgid ""
12754 "$ B<date |./a.out out.log | cat>\n"
12755 "Tue Oct 28 10:06:00 CET 2014\n"
12756 "$ B<cat out.log>\n"
12757 "Tue Oct 28 10:06:00 CET 2014\n"
12758 msgstr ""
12759 "$ B<date |./a.out out.log | cat>\n"
12760 "Tue Oct 28 10:06:00 CET 2014\n"
12761 "$ B<cat out.log>\n"
12762 "Tue Oct 28 10:06:00 CET 2014\n"
12763
12764 #. type: SS
12765 #: build/C/man2/tee.2:152
12766 #, no-wrap
12767 msgid "Program source"
12768 msgstr "プログラムのソース"
12769
12770 #. type: Plain text
12771 #: build/C/man2/tee.2:162
12772 #, no-wrap
12773 msgid ""
12774 "#define _GNU_SOURCE\n"
12775 "#include E<lt>fcntl.hE<gt>\n"
12776 "#include E<lt>stdio.hE<gt>\n"
12777 "#include E<lt>stdlib.hE<gt>\n"
12778 "#include E<lt>unistd.hE<gt>\n"
12779 "#include E<lt>errno.hE<gt>\n"
12780 "#include E<lt>limits.hE<gt>\n"
12781 msgstr ""
12782 "#define _GNU_SOURCE\n"
12783 "#include E<lt>fcntl.hE<gt>\n"
12784 "#include E<lt>stdio.hE<gt>\n"
12785 "#include E<lt>stdlib.hE<gt>\n"
12786 "#include E<lt>unistd.hE<gt>\n"
12787 "#include E<lt>errno.hE<gt>\n"
12788 "#include E<lt>limits.hE<gt>\n"
12789
12790 #. type: Plain text
12791 #: build/C/man2/tee.2:168
12792 #, no-wrap
12793 msgid ""
12794 "int\n"
12795 "main(int argc, char *argv[])\n"
12796 "{\n"
12797 "    int fd;\n"
12798 "    int len, slen;\n"
12799 msgstr ""
12800 "int\n"
12801 "main(int argc, char *argv[])\n"
12802 "{\n"
12803 "    int fd;\n"
12804 "    int len, slen;\n"
12805
12806 #. type: Plain text
12807 #: build/C/man2/tee.2:173
12808 #, no-wrap
12809 msgid ""
12810 "    if (argc != 2) {\n"
12811 "        fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
12812 "        exit(EXIT_FAILURE);\n"
12813 "    }\n"
12814 msgstr ""
12815 "    if (argc != 2) {\n"
12816 "        fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
12817 "        exit(EXIT_FAILURE);\n"
12818 "    }\n"
12819
12820 #. type: Plain text
12821 #: build/C/man2/tee.2:179
12822 #, no-wrap
12823 msgid ""
12824 "    fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);\n"
12825 "    if (fd == -1) {\n"
12826 "        perror(\"open\");\n"
12827 "        exit(EXIT_FAILURE);\n"
12828 "    }\n"
12829 msgstr ""
12830 "    fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);\n"
12831 "    if (fd == -1) {\n"
12832 "        perror(\"open\");\n"
12833 "        exit(EXIT_FAILURE);\n"
12834 "    }\n"
12835
12836 #. type: Plain text
12837 #: build/C/man2/tee.2:186
12838 #, no-wrap
12839 msgid ""
12840 "    do {\n"
12841 "        /*\n"
12842 "         * tee stdin to stdout.\n"
12843 "         */\n"
12844 "        len = tee(STDIN_FILENO, STDOUT_FILENO,\n"
12845 "                  INT_MAX, SPLICE_F_NONBLOCK);\n"
12846 msgstr ""
12847 "    do {\n"
12848 "        /*\n"
12849 "         * tee stdin to stdout.\n"
12850 "         */\n"
12851 "        len = tee(STDIN_FILENO, STDOUT_FILENO,\n"
12852 "                  INT_MAX, SPLICE_F_NONBLOCK);\n"
12853
12854 #. type: Plain text
12855 #: build/C/man2/tee.2:195
12856 #, no-wrap
12857 msgid ""
12858 "        if (len E<lt> 0) {\n"
12859 "            if (errno == EAGAIN)\n"
12860 "                continue;\n"
12861 "            perror(\"tee\");\n"
12862 "            exit(EXIT_FAILURE);\n"
12863 "        } else\n"
12864 "            if (len == 0)\n"
12865 "                break;\n"
12866 msgstr ""
12867 "        if (len E<lt> 0) {\n"
12868 "            if (errno == EAGAIN)\n"
12869 "                continue;\n"
12870 "            perror(\"tee\");\n"
12871 "            exit(EXIT_FAILURE);\n"
12872 "        } else\n"
12873 "            if (len == 0)\n"
12874 "                break;\n"
12875
12876 #. type: Plain text
12877 #: build/C/man2/tee.2:209
12878 #, no-wrap
12879 msgid ""
12880 "        /*\n"
12881 "         * Consume stdin by splicing it to a file.\n"
12882 "         */\n"
12883 "        while (len E<gt> 0) {\n"
12884 "            slen = splice(STDIN_FILENO, NULL, fd, NULL,\n"
12885 "                          len, SPLICE_F_MOVE);\n"
12886 "            if (slen E<lt> 0) {\n"
12887 "                perror(\"splice\");\n"
12888 "                break;\n"
12889 "            }\n"
12890 "            len -= slen;\n"
12891 "        }\n"
12892 "    } while (1);\n"
12893 msgstr ""
12894 "        /*\n"
12895 "         * Consume stdin by splicing it to a file.\n"
12896 "         */\n"
12897 "        while (len E<gt> 0) {\n"
12898 "            slen = splice(STDIN_FILENO, NULL, fd, NULL,\n"
12899 "                          len, SPLICE_F_MOVE);\n"
12900 "            if (slen E<lt> 0) {\n"
12901 "                perror(\"splice\");\n"
12902 "                break;\n"
12903 "            }\n"
12904 "            len -= slen;\n"
12905 "        }\n"
12906 "    } while (1);\n"
12907
12908 #. type: Plain text
12909 #: build/C/man2/tee.2:213
12910 #, no-wrap
12911 msgid ""
12912 "    close(fd);\n"
12913 "    exit(EXIT_SUCCESS);\n"
12914 "}\n"
12915 msgstr ""
12916 "    close(fd);\n"
12917 "    exit(EXIT_SUCCESS);\n"
12918 "}\n"
12919
12920 #. type: Plain text
12921 #: build/C/man2/tee.2:216
12922 msgid "B<splice>(2), B<vmsplice>(2)"
12923 msgstr "B<splice>(2), B<vmsplice>(2)"
12924
12925 #. type: TH
12926 #: build/C/man2/vm86.2:26
12927 #, no-wrap
12928 msgid "VM86"
12929 msgstr "VM86"
12930
12931 #. type: TH
12932 #: build/C/man2/vm86.2:26
12933 #, no-wrap
12934 msgid "2009-02-20"
12935 msgstr "2009-02-20"
12936
12937 #. type: Plain text
12938 #: build/C/man2/vm86.2:29
12939 msgid "vm86old, vm86 - enter virtual 8086 mode"
12940 msgstr "vm86old, vm86 - 仮想 8086 モードへ移行する"
12941
12942 #. type: Plain text
12943 #: build/C/man2/vm86.2:31
12944 msgid "B<#include E<lt>sys/vm86.hE<gt>>"
12945 msgstr "B<#include E<lt>sys/vm86.hE<gt>>"
12946
12947 #. type: Plain text
12948 #: build/C/man2/vm86.2:33
12949 msgid "B<int vm86old(struct vm86_struct *>I<info>B<);>"
12950 msgstr "B<int vm86old(struct vm86_struct *>I<info>B<);>"
12951
12952 #. type: Plain text
12953 #: build/C/man2/vm86.2:35
12954 msgid "B<int vm86(unsigned long >I<fn>B<, struct vm86plus_struct *>I<v86>B<);>"
12955 msgstr ""
12956 "B<int vm86(unsigned long >I<fn>B<, struct vm86plus_struct *>I<v86>B<);>"
12957
12958 #. type: Plain text
12959 #: build/C/man2/vm86.2:48
12960 msgid ""
12961 "The system call B<vm86>()  was introduced in Linux 0.97p2.  In Linux 2.1.15 "
12962 "and 2.0.28, it was renamed to B<vm86old>(), and a new B<vm86>()  was "
12963 "introduced.  The definition of I<struct vm86_struct> was changed in 1.1.8 "
12964 "and 1.1.9."
12965 msgstr ""
12966 "B<vm86>()  システムコールは Linux 0.97p2 で導入された。 これは Linux 2.1.15 "
12967 "と 2.0.28 で B<vm86old>()  に名前が変更され、 新しい B<vm86>()  が導入され"
12968 "た。 I<struct vm86_struct> の定義は 1.1.8 と 1.1.9 で変更された。"
12969
12970 #. type: Plain text
12971 #: build/C/man2/vm86.2:52
12972 msgid ""
12973 "These calls cause the process to enter VM86 mode (virtual-8086 in Intel "
12974 "literature), and are used by B<dosemu>."
12975 msgstr ""
12976 "これらのコールによってプロセスは VM86 モード (Intel の文書では仮想 8086 モー"
12977 "ド) へと移行する。 これらのコールは B<dosemu> で使用される。"
12978
12979 #. type: Plain text
12980 #: build/C/man2/vm86.2:54
12981 msgid "VM86 mode is an emulation of real mode within a protected mode task."
12982 msgstr ""
12983 "VM86 モードはプロテクトモードタスクにおける リアルモードのエミュレーションで"
12984 "ある。"
12985
12986 #. type: Plain text
12987 #: build/C/man2/vm86.2:64
12988 msgid ""
12989 "This return value is specific to i386 and indicates a problem with getting "
12990 "user-space data."
12991 msgstr ""
12992 "この返り値は i386 固有のものであり、 ユーザー空間のデータを取得する際に問題が"
12993 "あったことを示す。"
12994
12995 #. type: Plain text
12996 #: build/C/man2/vm86.2:68
12997 msgid ""
12998 "This return value indicates the call is not implemented on the present "
12999 "architecture."
13000 msgstr ""
13001 "この返り値は、このコールが現在のアーキテクチャで実装されていないことを示す。"
13002
13003 #. type: Plain text
13004 #: build/C/man2/vm86.2:73
13005 msgid ""
13006 "Saved kernel stack exists.  (This is a kernel sanity check; the saved stack "
13007 "should exist only within vm86 mode itself.)"
13008 msgstr ""
13009 "保存されたカーネルスタックが既に存在している。(これはカーネルが通常の 状態で"
13010 "あるかをチェックしている。保存されたスタックは vm86 モードで しか存在しな"
13011 "い。)"
13012
13013 #. type: Plain text
13014 #: build/C/man2/vm86.2:75
13015 msgid ""
13016 "This call is specific to Linux on 32-bit Intel processors, and should not be "
13017 "used in programs intended to be portable."
13018 msgstr ""
13019 "この関数は 32 ビット Intel プロセッサ上の Linux 特有の関数であり、 移植を意図"
13020 "したプログラムでは使用すべきでない。"
13021
13022 #. type: TH
13023 #: build/C/man2/vmsplice.2:26
13024 #, no-wrap
13025 msgid "VMSPLICE"
13026 msgstr "VMSPLICE"
13027
13028 #. type: TH
13029 #: build/C/man2/vmsplice.2:26
13030 #, no-wrap
13031 msgid "2014-10-02"
13032 msgstr "2014-10-02"
13033
13034 #. type: Plain text
13035 #: build/C/man2/vmsplice.2:29
13036 msgid "vmsplice - splice user pages into a pipe"
13037 msgstr "vmsplice - ユーザ・ページをパイプに継ぎ合わせる"
13038
13039 #. type: Plain text
13040 #: build/C/man2/vmsplice.2:34
13041 #, no-wrap
13042 msgid ""
13043 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
13044 "B<#include E<lt>fcntl.hE<gt>>\n"
13045 "B<#include E<lt>sys/uio.hE<gt>>\n"
13046 msgstr ""
13047 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
13048 "B<#include E<lt>fcntl.hE<gt>>\n"
13049 "B<#include E<lt>sys/uio.hE<gt>>\n"
13050
13051 #. type: Plain text
13052 #: build/C/man2/vmsplice.2:37
13053 #, no-wrap
13054 msgid ""
13055 "B<ssize_t vmsplice(int >I<fd>B<, const struct iovec *>I<iov>B<,>\n"
13056 "B<                 unsigned long >I<nr_segs>B<, unsigned int >I<flags>B<);>\n"
13057 msgstr ""
13058 "B<ssize_t vmsplice(int >I<fd>B<, const struct iovec *>I<iov>B<,>\n"
13059 "B<                 unsigned long >I<nr_segs>B<, unsigned int >I<flags>B<);>\n"
13060
13061 #.  Linus: vmsplice() system call to basically do a "write to
13062 #.  the buffer", but using the reference counting and VM traversal
13063 #.  to actually fill the buffer. This means that the user needs to
13064 #.  be careful not to reuse the user-space buffer it spliced into
13065 #.  the kernel-space one (contrast this to "write()", which copies
13066 #.  the actual data, and you can thus reuse the buffer immediately
13067 #.  after a successful write), but that is often easy to do.
13068 #. type: Plain text
13069 #: build/C/man2/vmsplice.2:57
13070 msgid ""
13071 "The B<vmsplice>()  system call maps I<nr_segs> ranges of user memory "
13072 "described by I<iov> into a pipe.  The file descriptor I<fd> must refer to a "
13073 "pipe."
13074 msgstr ""
13075 "B<vmsplice>()  システムコールは、 I<iov> で指定されたユーザ・メモリの "
13076 "I<nr_segs> の範囲をパイプにマッピングする。 I<fd> はパイプを参照していなけれ"
13077 "ばならない。"
13078
13079 #. type: Plain text
13080 #: build/C/man2/vmsplice.2:64
13081 msgid ""
13082 "The pointer I<iov> points to an array of I<iovec> structures as defined in "
13083 "I<E<lt>sys/uio.hE<gt>>:"
13084 msgstr ""
13085 "ポインタ I<iov> は I<iovec> 構造体の配列を指す。 I<iovec> 構造体は "
13086 "I<E<lt>sys/uio.hE<gt>> で以下のように定義されている:"
13087
13088 #. type: Plain text
13089 #: build/C/man2/vmsplice.2:71
13090 #, no-wrap
13091 msgid ""
13092 "struct iovec {\n"
13093 "    void  *iov_base;            /* Starting address */\n"
13094 "    size_t iov_len;             /* Number of bytes */\n"
13095 "};\n"
13096 msgstr ""
13097 "struct iovec {\n"
13098 "    void  *iov_base;            /* 開始アドレス */\n"
13099 "    size_t iov_len;             /* バイト数 */\n"
13100 "};\n"
13101
13102 #. type: Plain text
13103 #: build/C/man2/vmsplice.2:84
13104 msgid "Unused for B<vmsplice>(); see B<splice>(2)."
13105 msgstr "B<vmsplice>()  では未使用。 B<splice>(2)  参照。"
13106
13107 #. type: Plain text
13108 #: build/C/man2/vmsplice.2:97
13109 msgid ""
13110 "Currently has no effect for B<vmsplice>(), but may be implemented in the "
13111 "future; see B<splice>(2)."
13112 msgstr ""
13113 "現在のところ B<vmsplice>()  では何の効果もないが、将来的には実装される可能性"
13114 "がある。 B<splice>(2)  参照。"
13115
13116 #.  FIXME . Explain the following line in a little more detail:
13117 #.  FIXME
13118 #.      It looks like the page-alignment requirement went away with
13119 #.      commit bd1a68b59c8e3bce45fb76632c64e1e063c3962d
13120 #.  .... if we expect to later SPLICE_F_MOVE to the cache.
13121 #. type: Plain text
13122 #: build/C/man2/vmsplice.2:117
13123 msgid ""
13124 "The user pages are a gift to the kernel.  The application may not modify "
13125 "this memory ever, or page cache and on-disk data may differ.  Gifting pages "
13126 "to the kernel means that a subsequent B<splice>(2)  B<SPLICE_F_MOVE> can "
13127 "successfully move the pages; if this flag is not specified, then a "
13128 "subsequent B<splice>(2)  B<SPLICE_F_MOVE> must copy the pages.  Data must "
13129 "also be properly page aligned, both in memory and length."
13130 msgstr ""
13131 "ユーザ・ページがカーネルへ渡すもの (gift) であることを示す。 アプリケーション"
13132 "はこのメモリを絶対に変更してはならない。 さもなければ、ページキャッシュとディ"
13133 "スク上のデータは 一致しなくなるだろう。 ページをカーネルに渡すと、この次の "
13134 "B<splice>(2)  B<SPLICE_F_MOVE> でそのページの移動を行うことができる。 このフ"
13135 "ラグが指定されなかった場合、この次の B<splice>(2)  B<SPLICE_F_MOVE> でその"
13136 "ページのコピーを行わなければならない。 データはメモリ上でページ境界にあってい"
13137 "なければならず、 長さもページ境界の倍数でなければならない。"
13138
13139 #. type: Plain text
13140 #: build/C/man2/vmsplice.2:126
13141 msgid ""
13142 "Upon successful completion, B<vmsplice>()  returns the number of bytes "
13143 "transferred to the pipe.  On error, B<vmsplice>()  returns -1 and I<errno> "
13144 "is set to indicate the error."
13145 msgstr ""
13146 "成功して完了すると、 B<vmsplice>()  はパイプに転送したバイト数を返す。 エラー"
13147 "の場合、 B<vmplice>()  は -1 を返し、 I<errno> をエラーを示す値に設定する。"
13148
13149 #. type: Plain text
13150 #: build/C/man2/vmsplice.2:137
13151 msgid "I<fd> either not valid, or doesn't refer to a pipe."
13152 msgstr "I<fd> が有効でない、もしくはパイプを参照していない。"
13153
13154 #. type: Plain text
13155 #: build/C/man2/vmsplice.2:145
13156 msgid ""
13157 "I<nr_segs> is greater than B<IOV_MAX>; or memory not aligned if "
13158 "B<SPLICE_F_GIFT> set."
13159 msgstr ""
13160 "I<nr_segs> が B<IOV_MAX> よりも大きい。または B<SPLICE_F_GIFT> が設定されたが"
13161 "メモリがページ境界にあっていない。"
13162
13163 #. type: Plain text
13164 #: build/C/man2/vmsplice.2:153
13165 msgid ""
13166 "The B<vmsplice>()  system call first appeared in Linux 2.6.17; library "
13167 "support was added to glibc in version 2.5."
13168 msgstr ""
13169 "B<vmsplice>() システムコールは Linux 2.6.17 で初めて登場した。\n"
13170 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
13171
13172 #. type: Plain text
13173 #: build/C/man2/vmsplice.2:164
13174 msgid ""
13175 "B<vmsplice>()  follows the other vectorized read/write type functions when "
13176 "it comes to limitations on number of segments being passed in.  This limit "
13177 "is B<IOV_MAX> as defined in I<E<lt>limits.hE<gt>>.  At the time of this "
13178 "writing, that limit is 1024."
13179 msgstr ""
13180 "指定されたセグメント数が上限に達した場合、 B<vmsplice>()  は他のベクトル形式"
13181 "の read/write を行う関数と同じ動作をする。 上限は B<IOV_MAX> であり、 "
13182 "I<E<lt>limits.hE<gt>> で定義されている。 このドキュメントを書いた時点での値"
13183 "は 1024 である。"
13184
13185 #. type: Plain text
13186 #: build/C/man2/vmsplice.2:166
13187 msgid "B<splice>(2), B<tee>(2)"
13188 msgstr "B<splice>(2), B<tee>(2)"
13189
13190 #~ msgid "COLOPHON"
13191 #~ msgstr "この文書について"
13192
13193 #~ msgid ""
13194 #~ "This page is part of release 3.77 of the Linux I<man-pages> project.  A "
13195 #~ "description of the project, information about reporting bugs, and the "
13196 #~ "latest version of this page, can be found at \\%http://www.kernel.org/doc/"
13197 #~ "man-pages/."
13198 #~ msgstr ""
13199 #~ "この man ページは Linux I<man-pages> プロジェクトのリリース 3.77 の一部\n"
13200 #~ "である。プロジェクトの説明とバグ報告に関する情報は\n"
13201 #~ "http://www.kernel.org/doc/man-pages/ に書かれている。"
13202
13203 #~ msgid ""
13204 #~ "These system calls were added in Linux 2.6.17.  No library support is "
13205 #~ "provided; use B<syscall>(2)."
13206 #~ msgstr ""
13207 #~ "これらのシステムコールは Linux 2.6.17 で追加された。ライブラリによる\n"
13208 #~ "サポートは提供されていない。 B<syscall>(2) を使うこと。"
13209
13210 #~ msgid "B<PERF_FLAG_FD_OUTPUT>"
13211 #~ msgstr "B<PERF_FLAG_FD_OUTPUT>"
13212
13213 #~ msgid "2014-04-17"
13214 #~ msgstr "2014-04-17"
13215
13216 #~ msgid "2014-05-05"
13217 #~ msgstr "2014-05-05"
13218
13219 #~ msgid "2014-02-20"
13220 #~ msgstr "2014-02-20"
13221
13222 #~ msgid "2012-07-19"
13223 #~ msgstr "2012-07-19"
13224
13225 #~ msgid "2012-05-04"
13226 #~ msgstr "2012-05-04"
13227
13228 #~ msgid "2013-12-12"
13229 #~ msgstr "2013-12-12"
13230
13231 #~ msgid "2012-04-25"
13232 #~ msgstr "2012-04-25"
13233
13234 #~ msgid ""
13235 #~ "This function will return the current B<personality>()  when I<persona> "
13236 #~ "equals 0xffffffff.  Otherwise, it will make the execution domain "
13237 #~ "referenced by I<persona> the new execution domain of the calling process."
13238 #~ msgstr ""
13239 #~ "B<personality ()> 関数は、 I<persona> が 0xffffffff の場合は現在の B<パー"
13240 #~ "ソナリティ> を返す。 それ以外の場合、 I<persona> により参照される実行ドメ"
13241 #~ "インを、 呼び出し元のプロセスの新しい実行ドメインとする。"
13242
13243 #~ msgid ""
13244 #~ "Depending on which operation was executed, the returned value for a "
13245 #~ "successful call can have differing meanings."
13246 #~ msgstr "どの操作が実行されたかによって、 成功時の返り値の意味が変わる。"
13247
13248 #~ msgid ""
13249 #~ "Returns 0 if the process was woken by a B<FUTEX_WAKE> call.  In case of "
13250 #~ "timeout, the operation fails with the error B<ETIMEDOUT>.  If the futex "
13251 #~ "was not equal to the expected value, the operation fails with the error "
13252 #~ "B<EWOULDBLOCK>.  Signals (see B<signal>(7))  or other spurious wakeups "
13253 #~ "cause B<FUTEX_WAIT> to fail with the error B<EINTR>."
13254 #~ msgstr ""
13255 #~ "プロセスが B<FUTEX_WAKE> の呼び出しで wake すると 0 を返す。 タイムアウト"
13256 #~ "の場合、操作はエラー B<ETIMEOUT> で失敗する。 futex が指定された値と等しく"
13257 #~ "ない場合、 エラー B<EWOULDBLOCK> で失敗する。 シグナルを受信するか "
13258 #~ "(B<signal>(7)  参照) 他の偽の wake があった場合には、エラー B<EINTR> で失"
13259 #~ "敗する。"
13260
13261 #~ msgid "An operation was not defined or error in page alignment."
13262 #~ msgstr ""
13263 #~ "操作が定義されていない。またはページ・アラインメントでエラーが発生した。"
13264
13265 #~ msgid ""
13266 #~ "Stop the child at the next B<execve>(2)  call with I<SIGTRAP | "
13267 #~ "PTRACE_EVENT_EXEC\\ E<lt>E<lt>\\ 8>."
13268 #~ msgstr ""
13269 #~ "次の B<execve>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_EXEC\\ E<lt>E<lt>"
13270 #~ "\\ 8> で子プロセスの動作を停止させる。"
13271
13272 #~ msgid ""
13273 #~ "Stop the child at the completion of the next B<vfork>(2)  call with "
13274 #~ "I<SIGTRAP | PTRACE_EVENT_VFORK_DONE\\ E<lt>E<lt>\\ 8>."
13275 #~ msgstr ""
13276 #~ "次の B<vfork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_VFORK_DONE\\ "
13277 #~ "E<lt>E<lt>\\ 8> で子プロセスの動作を停止させる。"
13278
13279 #~ msgid ""
13280 #~ "Attaches to the process specified in I<pid>, making it a traced \"child\" "
13281 #~ "of the calling process; the behavior of the child is as if it had done a "
13282 #~ "B<PTRACE_TRACEME>.  The calling process actually becomes the parent of "
13283 #~ "the child process for most purposes (e.g., it will receive notification "
13284 #~ "of child events and appears in B<ps>(1)  output as the child's parent), "
13285 #~ "but a B<getppid>(2)  by the child will still return the PID of the "
13286 #~ "original parent.  The child is sent a B<SIGSTOP>, but will not "
13287 #~ "necessarily have stopped by the completion of this call; use B<wait>(2)  "
13288 #~ "to wait for the child to stop.  (I<addr> and I<data> are ignored.)"
13289 #~ msgstr ""
13290 #~ "I<pid> で指定されたプロセスに接続 (attach) し、それを呼び出し元のプロセス"
13291 #~ "の 子プロセスとしてトレースできるようにする。子プロセスは "
13292 #~ "B<PTRACE_TRACEME> したかのように振舞う。呼び出し元のプロセスはそのほとんど"
13293 #~ "の目的において、 その子プロセスの実際の親になる (例えば、子プロセスのイベ"
13294 #~ "ントの 通知を受けとったり、 B<ps>(1)  で親として表示されたりする)。しか"
13295 #~ "し、子プロセスで B<getppid>(2)  を実行した場合には元の親プロセスの PID が"
13296 #~ "返される。 子プロセスには B<SIGSTOP> が送られるが、この呼び出しが完了する"
13297 #~ "までに 必ずしも停止するとは限らない。子プロセスの停止を待つには "
13298 #~ "B<wait>(2)  を使用すること。(I<addr> と I<data> は無視される。)"
13299
13300 #~ msgid ""
13301 #~ "Tracing causes a few subtle differences in the semantics of traced "
13302 #~ "processes.  For example, if a process is attached to with "
13303 #~ "B<PTRACE_ATTACH>, its original parent can no longer receive notification "
13304 #~ "via B<wait>(2)  when it stops, and there is no way for the new parent to "
13305 #~ "effectively simulate this notification."
13306 #~ msgstr ""
13307 #~ "トレースすることによってトレースされるプロセスの動作に些細な違いが 起こる"
13308 #~ "ことがある。例えば、プロセスが B<PTRACE_ATTACH> によって接続された場合に"
13309 #~ "は、そのプロセスが停止した時でも本来の親は B<wait>(2)  を使って通知を受け"
13310 #~ "ることができず、新しい親が効率よく この通知を真似る方法もない。"
13311
13312 #~ msgid ""
13313 #~ "When the parent receives an event with B<PTRACE_EVENT_*> set, the child "
13314 #~ "is not in the normal signal delivery path.  This means the parent cannot "
13315 #~ "do B<ptrace>(PTRACE_CONT)  with a signal or B<ptrace>(PTRACE_KILL).  "
13316 #~ "B<kill>(2)  with a B<SIGKILL> signal can be used instead to kill the "
13317 #~ "child process after receiving one of these messages."
13318 #~ msgstr ""
13319 #~ "親プロセスが B<PTRACE_EVENT_*> がセットされたイベントを受信した場合、 子プ"
13320 #~ "ロセスは通常通りのシグナル配送が行われる状態にない。 つまり、親プロセス"
13321 #~ "が、 シグナルにより B<ptrace>(PTRACE_CONT)  を行ったり、 "
13322 #~ "B<ptrace>(PTRACE_KILL)  を行ったりできないということである。 こららのメッ"
13323 #~ "セージの受信後は、子プロセスを終了 (kill) するのに、 シグナル B<SIGKILL> "
13324 #~ "を指定して B<kill>(2)  を行う方法を代わりに使用できる。"
13325
13326 #~ msgid ""
13327 #~ "The SunOS man page describes B<ptrace>()  as \"unique and arcane\", which "
13328 #~ "it is.  The proc-based debugging interface present in Solaris 2 "
13329 #~ "implements a superset of B<ptrace>()  functionality in a more powerful "
13330 #~ "and uniform way."
13331 #~ msgstr ""
13332 #~ "SunOS のマニュアル・ページには B<ptrace>()  は「独特で不可解」と記述されて"
13333 #~ "おり、まさしくそうである。 Solaris 2 では proc ベースの デバッグのインター"
13334 #~ "フェースとして B<ptrace>()  の上位互換関数が実装され、より強力で一貫性のあ"
13335 #~ "るものとなっている。"
13336
13337 #~ msgid ""
13338 #~ "The second argument I<special> is the block special device these quota "
13339 #~ "apply to.  It must be mounted."
13340 #~ msgstr ""
13341 #~ "二番目の引き数 I<special> は quota を適用するデバイスのブロック・スペシャ"
13342 #~ "ル・ファイルである。 そのデバイスはマウントされていなくてはならない。"
13343
13344 #~ msgid ""
13345 #~ "The third argument I<id> is the user or group ID these quota apply to "
13346 #~ "(when relevant)."
13347 #~ msgstr ""
13348 #~ "三番目の引き数 I<id> には、(必要な場合に) quota を適用するユーザーもしくは"
13349 #~ "グループの ID を指定する。"
13350
13351 #~ msgid ""
13352 #~ "The fourth argument I<addr> is the address of a data structure, depending "
13353 #~ "on the command."
13354 #~ msgstr ""
13355 #~ "四番目の引き数 I<addr> には、コマンドごとに異ったデータ構造体のアドレスを"
13356 #~ "指定する。"
13357
13358 #~ msgid ""
13359 #~ "Enable quota.  The I<addr> argument is the pathname of the file "
13360 #~ "containing the quota for the file system."
13361 #~ msgstr ""
13362 #~ "quota を有効にする。 I<addr> 引き数には、そのファイル・システムの quota が"
13363 #~ "記録されているファイルの パス名を指定する。"
13364
13365 #~ msgid "Disable quota."
13366 #~ msgstr "quota を無効にする。"
13367
13368 #~ msgid "Set limits and current usage; I<addr> is as before."
13369 #~ msgstr "制限値と現在の使用量を設定する: I<addr> は同上。"
13370
13371 #~ msgid "Set limits; I<addr> is as before."
13372 #~ msgstr "制限値を設定する; I<addr> は同上。"
13373
13374 #~ msgid "Set usage."
13375 #~ msgstr "使用量を設定する。"
13376
13377 #~ msgid "Sync disk copy of a file system's quota."
13378 #~ msgstr "ファイル・システムの quota ファイルをディスクと同期させる。"
13379
13380 #~ msgid "Get collected stats."
13381 #~ msgstr "収集された統計を取得する。"
13382
13383 #~ msgid ""
13384 #~ "On success, B<quotactl>()  returns 0.  On error, -1 is returned, and "
13385 #~ "I<errno> is set appropriately."
13386 #~ msgstr ""
13387 #~ "B<quotactl>()  は、成功時には 0 を返す。エラー時は、-1 を返すとともに、 "
13388 #~ "I<errno> が適切な値に設定される。"
13389
13390 #~ msgid "B<Q_QUOTAON> was asked, but quotas were enabled already."
13391 #~ msgstr "B<Q_QUOTAON> の要求がなされたが、quota(s) は既に有効になっている。"
13392
13393 #~ msgid "Bad I<addr> value."
13394 #~ msgstr "I<addr> の値に誤りがある。"
13395
13396 #~ msgid ""
13397 #~ "I<type> is not a known quota type.  Or, I<special> could not be found."
13398 #~ msgstr ""
13399 #~ "I<type> が既知の quota の形式ではない。もしくは、 I<special> デバイスが見"
13400 #~ "付からなかった。"
13401
13402 #~ msgid "Too many open files: cannot open quota file."
13403 #~ msgstr "ファイルをオープンしすぎている: quota ファイルをオープン出来ない。"
13404
13405 #~ msgid "I<special> cannot be found in the mount table."
13406 #~ msgstr "I<special> がマウント・テーブル内に見当たらない。"
13407
13408 #~ msgid "The kernel was compiled without quota support."
13409 #~ msgstr "quota を使用可にしてカーネルをコンパイルしていない。"
13410
13411 #~ msgid ""
13412 #~ "The process was not root (for the file system), and B<Q_GETQUOTA> was "
13413 #~ "asked for another I<id> than that of the process itself, or anything "
13414 #~ "other than B<Q_GETSTATS> or B<Q_SYNC> was asked."
13415 #~ msgstr ""
13416 #~ "プロセスが (そのファイル・システムの) root のものではなく、 かつプロセス自"
13417 #~ "身のものとは異なる I<id> に対して B<Q_GETQUOTA> 要求を行なった。 もしく"
13418 #~ "は、 B<Q_GETSTATS>, B<Q_SYNC> 以外の要求がなされた。"
13419
13420 #~ msgid ""
13421 #~ "B<Q_GETQUOTA> or B<Q_SETQUOTA> or B<Q_SETUSE> or B<Q_SETQLIM> was asked "
13422 #~ "for a file system that didn't have quota enabled."
13423 #~ msgstr ""
13424 #~ "quota が有効になっていないファイル・システムに対して B<Q_GETQUOTA>, "
13425 #~ "B<Q_SETQUOTA>, B<Q_SETUSE>, B<Q_SETQLIM> のいずれかの要求がなされた。"