OSDN Git Service

dc0c154eb751df3ac001cc850f543bcc5b820c50
[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: 2014-04-13 10:26+0900\n"
10 "PO-Revision-Date: 2014-04-13 10:36+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man2/arch_prctl.2:25
20 #, no-wrap
21 msgid "ARCH_PRCTL"
22 msgstr "ARCH_PRCTL"
23
24 #. type: TH
25 #: build/C/man2/arch_prctl.2:25
26 #, no-wrap
27 msgid "2007-12-26"
28 msgstr "2007-12-26"
29
30 #. type: TH
31 #: build/C/man2/arch_prctl.2:25 build/C/man2/futex.2:53
32 #: build/C/man2/get_robust_list.2:29 build/C/man2/getunwind.2:27
33 #: build/C/man2/kexec_load.2:26 build/C/man2/lookup_dcookie.2:27
34 #: build/C/man2/modify_ldt.2:24 build/C/man2/nfsservctl.2:8
35 #: build/C/man2/outb.2:26 build/C/man2/pciconfig_read.2:8
36 #: build/C/man2/perf_event_open.2:27 build/C/man2/perfmonctl.2:27
37 #: build/C/man2/personality.2:32 build/C/man2/pivot_root.2:10
38 #: build/C/man2/process_vm_readv.2:29 build/C/man2/ptrace.2:44
39 #: build/C/man2/quotactl.2:27 build/C/man2/sendfile.2:19
40 #: build/C/man2/set_tid_address.2:25 build/C/man2/splice.2:26
41 #: build/C/man2/tee.2:26 build/C/man2/vm86.2:26 build/C/man2/vmsplice.2:26
42 #, no-wrap
43 msgid "Linux"
44 msgstr "Linux"
45
46 #. type: TH
47 #: build/C/man2/arch_prctl.2:25 build/C/man2/futex.2:53
48 #: build/C/man2/getunwind.2:27 build/C/man2/kexec_load.2:26
49 #: build/C/man2/lookup_dcookie.2:27 build/C/man2/modify_ldt.2:24
50 #: build/C/man2/nfsservctl.2:8 build/C/man2/outb.2:26
51 #: build/C/man2/pciconfig_read.2:8 build/C/man2/perf_event_open.2:27
52 #: build/C/man2/perfmonctl.2:27 build/C/man2/personality.2:32
53 #: build/C/man2/pivot_root.2:10 build/C/man2/process_vm_readv.2:29
54 #: build/C/man2/ptrace.2:44 build/C/man2/quotactl.2:27
55 #: build/C/man2/sendfile.2:19 build/C/man2/set_tid_address.2:25
56 #: build/C/man2/splice.2:26 build/C/man2/tee.2:26 build/C/man2/vm86.2:26
57 #: build/C/man2/vmsplice.2:26
58 #, no-wrap
59 msgid "Linux Programmer's Manual"
60 msgstr "Linux Programmer's Manual"
61
62 #. type: SH
63 #: build/C/man2/arch_prctl.2:26 build/C/man2/futex.2:54
64 #: build/C/man2/get_robust_list.2:30 build/C/man2/getunwind.2:28
65 #: build/C/man2/kexec_load.2:27 build/C/man2/lookup_dcookie.2:28
66 #: build/C/man2/modify_ldt.2:25 build/C/man2/nfsservctl.2:9
67 #: build/C/man2/outb.2:27 build/C/man2/pciconfig_read.2:9
68 #: build/C/man2/perf_event_open.2:28 build/C/man2/perfmonctl.2:28
69 #: build/C/man2/personality.2:33 build/C/man2/pivot_root.2:11
70 #: build/C/man2/process_vm_readv.2:30 build/C/man2/ptrace.2:45
71 #: build/C/man2/quotactl.2:28 build/C/man2/sendfile.2:20
72 #: build/C/man2/set_tid_address.2:26 build/C/man2/splice.2:27
73 #: build/C/man2/tee.2:27 build/C/man2/vm86.2:27 build/C/man2/vmsplice.2:27
74 #, no-wrap
75 msgid "NAME"
76 msgstr "名前"
77
78 #. type: Plain text
79 #: build/C/man2/arch_prctl.2:28
80 msgid "arch_prctl - set architecture-specific thread state"
81 msgstr "arch_prctl - アーキテクチャ固有のスレッド状態を設定する"
82
83 #. type: SH
84 #: build/C/man2/arch_prctl.2:28 build/C/man2/futex.2:56
85 #: build/C/man2/get_robust_list.2:32 build/C/man2/getunwind.2:30
86 #: build/C/man2/kexec_load.2:29 build/C/man2/lookup_dcookie.2:30
87 #: build/C/man2/modify_ldt.2:27 build/C/man2/nfsservctl.2:11
88 #: build/C/man2/outb.2:31 build/C/man2/pciconfig_read.2:11
89 #: build/C/man2/perf_event_open.2:30 build/C/man2/perfmonctl.2:30
90 #: build/C/man2/personality.2:35 build/C/man2/pivot_root.2:13
91 #: build/C/man2/process_vm_readv.2:32 build/C/man2/ptrace.2:47
92 #: build/C/man2/quotactl.2:30 build/C/man2/sendfile.2:22
93 #: build/C/man2/set_tid_address.2:28 build/C/man2/splice.2:29
94 #: build/C/man2/tee.2:29 build/C/man2/vm86.2:29 build/C/man2/vmsplice.2:29
95 #, no-wrap
96 msgid "SYNOPSIS"
97 msgstr "書式"
98
99 #. type: Plain text
100 #: build/C/man2/arch_prctl.2:31
101 #, no-wrap
102 msgid "B<#include E<lt>asm/prctl.hE<gt>>\n"
103 msgstr "B<#include E<lt>asm/prctl.hE<gt>>\n"
104
105 #. type: Plain text
106 #: build/C/man2/arch_prctl.2:33
107 #, no-wrap
108 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
109 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
110
111 #. type: Plain text
112 #: build/C/man2/arch_prctl.2:36
113 #, no-wrap
114 msgid ""
115 "B<int arch_prctl(int >I<code>B<, unsigned long >I<addr>B<);>\n"
116 "B<int arch_prctl(int >I<code>B<, unsigned long *>I<addr>B<);>\n"
117 msgstr "B<int arch_prctl(int >I<code>B<, unsigned long *>I<addr>B<);>\n"
118
119 #.  Return type was long before glibc 2.7
120 #. type: SH
121 #: build/C/man2/arch_prctl.2:37 build/C/man2/futex.2:68
122 #: build/C/man2/get_robust_list.2:44 build/C/man2/getunwind.2:40
123 #: build/C/man2/kexec_load.2:39 build/C/man2/lookup_dcookie.2:32
124 #: build/C/man2/modify_ldt.2:36 build/C/man2/nfsservctl.2:18
125 #: build/C/man2/outb.2:62 build/C/man2/pciconfig_read.2:22
126 #: build/C/man2/perf_event_open.2:42 build/C/man2/perfmonctl.2:39
127 #: build/C/man2/personality.2:39 build/C/man2/pivot_root.2:18
128 #: build/C/man2/process_vm_readv.2:50 build/C/man2/ptrace.2:54
129 #: build/C/man2/quotactl.2:38 build/C/man2/sendfile.2:47
130 #: build/C/man2/set_tid_address.2:34 build/C/man2/splice.2:39
131 #: build/C/man2/tee.2:38 build/C/man2/vm86.2:35 build/C/man2/vmsplice.2:39
132 #, no-wrap
133 msgid "DESCRIPTION"
134 msgstr "説明"
135
136 #. type: Plain text
137 #: build/C/man2/arch_prctl.2:52
138 msgid ""
139 "The B<arch_prctl>()  function sets architecture-specific process or thread "
140 "state.  I<code> selects a subfunction and passes argument I<addr> to it; "
141 "I<addr> is interpreted as either an I<unsigned long> for the \"set\" "
142 "operations, or as an I<unsigned long\\ *>, for the \"get\" operations."
143 msgstr ""
144 "B<arch_prctl>()  関数はアーキテクチャ固有のプロセス状態またはスレッド状態を設"
145 "定する。 I<code> は副機能を選択し、引き数 I<addr> を副機能に渡す。 I<addr> "
146 "は、\"set\" 操作では I<unsigned long> として、\"get\" 操作では I<unsigned "
147 "long\\ *> として解釈される。"
148
149 #. type: Plain text
150 #: build/C/man2/arch_prctl.2:54
151 msgid "Subfunctions for x86-64 are:"
152 msgstr "x86-64 の副機能は以下の通り:"
153
154 #. type: TP
155 #: build/C/man2/arch_prctl.2:54
156 #, no-wrap
157 msgid "B<ARCH_SET_FS>"
158 msgstr "B<ARCH_SET_FS>"
159
160 #. type: Plain text
161 #: build/C/man2/arch_prctl.2:60
162 msgid "Set the 64-bit base for the I<FS> register to I<addr>."
163 msgstr "I<FS> レジスタの 64 ビットベースを I<addr> に設定する。"
164
165 #. type: TP
166 #: build/C/man2/arch_prctl.2:60
167 #, no-wrap
168 msgid "B<ARCH_GET_FS>"
169 msgstr "B<ARCH_GET_FS>"
170
171 #. type: Plain text
172 #: build/C/man2/arch_prctl.2:68
173 msgid ""
174 "Return the 64-bit base value for the I<FS> register of the current thread in "
175 "the I<unsigned long> pointed to by I<addr>."
176 msgstr ""
177 "現在のスレッドの I<FS> レジスタの 64 ビットベース値を、 I<addr> が指す "
178 "I<unsigned long> の領域に格納する。"
179
180 #. type: TP
181 #: build/C/man2/arch_prctl.2:68
182 #, no-wrap
183 msgid "B<ARCH_SET_GS>"
184 msgstr "B<ARCH_SET_GS>"
185
186 #. type: Plain text
187 #: build/C/man2/arch_prctl.2:74
188 msgid "Set the 64-bit base for the I<GS> register to I<addr>."
189 msgstr "I<GS> レジスタの 64 ビットベースを I<addr> に設定する。"
190
191 #. type: TP
192 #: build/C/man2/arch_prctl.2:74
193 #, no-wrap
194 msgid "B<ARCH_GET_GS>"
195 msgstr "B<ARCH_GET_GS>"
196
197 #. type: Plain text
198 #: build/C/man2/arch_prctl.2:82
199 msgid ""
200 "Return the 64-bit base value for the I<GS> register of the current thread in "
201 "the I<unsigned long> pointed to by I<addr>."
202 msgstr ""
203 "現在のスレッドの I<GS> レジスタの 64 ビットベース値を、 I<addr> が指す "
204 "I<unsigned long> の領域に格納する。"
205
206 #. type: SH
207 #: build/C/man2/arch_prctl.2:82 build/C/man2/futex.2:214
208 #: build/C/man2/get_robust_list.2:77 build/C/man2/getunwind.2:81
209 #: build/C/man2/kexec_load.2:114 build/C/man2/lookup_dcookie.2:43
210 #: build/C/man2/modify_ldt.2:98 build/C/man2/nfsservctl.2:53
211 #: build/C/man2/pciconfig_read.2:50 build/C/man2/perf_event_open.2:2342
212 #: build/C/man2/perfmonctl.2:190 build/C/man2/personality.2:57
213 #: build/C/man2/pivot_root.2:101 build/C/man2/process_vm_readv.2:209
214 #: build/C/man2/ptrace.2:1853 build/C/man2/quotactl.2:419
215 #: build/C/man2/sendfile.2:108 build/C/man2/set_tid_address.2:88
216 #: build/C/man2/splice.2:127 build/C/man2/tee.2:85 build/C/man2/vm86.2:54
217 #: build/C/man2/vmsplice.2:113
218 #, no-wrap
219 msgid "RETURN VALUE"
220 msgstr "返り値"
221
222 #. type: Plain text
223 #: build/C/man2/arch_prctl.2:88
224 msgid ""
225 "On success, B<arch_prctl>()  returns 0; on error, -1 is returned, and "
226 "I<errno> is set to indicate the error."
227 msgstr ""
228 "成功すると、 B<arch_prctl>()  は 0 を返す。エラーの場合、-1 を返し、 "
229 "I<errno> をエラーを示す値に設定する。"
230
231 #. type: SH
232 #: build/C/man2/arch_prctl.2:88 build/C/man2/futex.2:239
233 #: build/C/man2/get_robust_list.2:84 build/C/man2/getunwind.2:88
234 #: build/C/man2/kexec_load.2:121 build/C/man2/lookup_dcookie.2:50
235 #: build/C/man2/modify_ldt.2:108 build/C/man2/pciconfig_read.2:77
236 #: build/C/man2/perf_event_open.2:2348 build/C/man2/personality.2:64
237 #: build/C/man2/pivot_root.2:105 build/C/man2/process_vm_readv.2:229
238 #: build/C/man2/ptrace.2:1868 build/C/man2/quotactl.2:427
239 #: build/C/man2/sendfile.2:115 build/C/man2/set_tid_address.2:91
240 #: build/C/man2/splice.2:142 build/C/man2/tee.2:100 build/C/man2/vm86.2:59
241 #: build/C/man2/vmsplice.2:122
242 #, no-wrap
243 msgid "ERRORS"
244 msgstr "エラー"
245
246 #. type: TP
247 #: build/C/man2/arch_prctl.2:89 build/C/man2/futex.2:254
248 #: build/C/man2/get_robust_list.2:111 build/C/man2/lookup_dcookie.2:51
249 #: build/C/man2/modify_ldt.2:109 build/C/man2/process_vm_readv.2:251
250 #: build/C/man2/process_vm_readv.2:256 build/C/man2/ptrace.2:1872
251 #: build/C/man2/quotactl.2:428 build/C/man2/sendfile.2:125
252 #: build/C/man2/vm86.2:60
253 #, no-wrap
254 msgid "B<EFAULT>"
255 msgstr "B<EFAULT>"
256
257 #. type: Plain text
258 #: build/C/man2/arch_prctl.2:93
259 msgid ""
260 "I<addr> points to an unmapped address or is outside the process address "
261 "space."
262 msgstr ""
263 "I<addr> がアンマップされたアドレスを指しているか、プロセスのアドレス空間の外"
264 "にある。"
265
266 #. type: TP
267 #: build/C/man2/arch_prctl.2:93 build/C/man2/futex.2:266
268 #: build/C/man2/get_robust_list.2:88 build/C/man2/kexec_load.2:126
269 #: build/C/man2/lookup_dcookie.2:54 build/C/man2/modify_ldt.2:113
270 #: build/C/man2/pciconfig_read.2:78 build/C/man2/perf_event_open.2:2364
271 #: build/C/man2/personality.2:65 build/C/man2/pivot_root.2:114
272 #: build/C/man2/process_vm_readv.2:230 build/C/man2/process_vm_readv.2:241
273 #: build/C/man2/process_vm_readv.2:245 build/C/man2/ptrace.2:1883
274 #: build/C/man2/quotactl.2:434 build/C/man2/quotactl.2:501
275 #: build/C/man2/sendfile.2:128 build/C/man2/splice.2:147
276 #: build/C/man2/tee.2:101 build/C/man2/vmsplice.2:127
277 #, no-wrap
278 msgid "B<EINVAL>"
279 msgstr "B<EINVAL>"
280
281 #. type: Plain text
282 #: build/C/man2/arch_prctl.2:97
283 msgid "I<code> is not a valid subcommand."
284 msgstr "I<code> が有効なサブコマンドでない。"
285
286 #. type: TP
287 #: build/C/man2/arch_prctl.2:97 build/C/man2/get_robust_list.2:98
288 #: build/C/man2/kexec_load.2:133 build/C/man2/lookup_dcookie.2:65
289 #: build/C/man2/pciconfig_read.2:105 build/C/man2/pivot_root.2:120
290 #: build/C/man2/process_vm_readv.2:267 build/C/man2/ptrace.2:1893
291 #: build/C/man2/quotactl.2:456 build/C/man2/vm86.2:68
292 #, no-wrap
293 msgid "B<EPERM>"
294 msgstr "B<EPERM>"
295
296 #.  .SH AUTHOR
297 #.  Man page written by Andi Kleen.
298 #. type: Plain text
299 #: build/C/man2/arch_prctl.2:103
300 msgid "I<addr> is outside the process address space."
301 msgstr "I<addr> がプロセスのアドレス空間の外にある。"
302
303 #. type: SH
304 #: build/C/man2/arch_prctl.2:103 build/C/man2/futex.2:301
305 #: build/C/man2/getunwind.2:96 build/C/man2/kexec_load.2:142
306 #: build/C/man2/lookup_dcookie.2:78 build/C/man2/modify_ldt.2:130
307 #: build/C/man2/nfsservctl.2:58 build/C/man2/outb.2:87
308 #: build/C/man2/pciconfig_read.2:112 build/C/man2/perf_event_open.2:2382
309 #: build/C/man2/perfmonctl.2:199 build/C/man2/personality.2:68
310 #: build/C/man2/pivot_root.2:128 build/C/man2/process_vm_readv.2:279
311 #: build/C/man2/ptrace.2:1911 build/C/man2/sendfile.2:148
312 #: build/C/man2/set_tid_address.2:97 build/C/man2/splice.2:170
313 #: build/C/man2/tee.2:119 build/C/man2/vm86.2:73 build/C/man2/vmsplice.2:143
314 #, no-wrap
315 msgid "CONFORMING TO"
316 msgstr "準拠"
317
318 #. type: Plain text
319 #: build/C/man2/arch_prctl.2:107
320 msgid ""
321 "B<arch_prctl>()  is a Linux/x86-64 extension and should not be used in "
322 "programs intended to be portable."
323 msgstr ""
324 "B<arch_prctl>()  は Linux/x86-64 拡張であり、移植性を意図したプログラムでは使"
325 "うべきでない。"
326
327 #. type: SH
328 #: build/C/man2/arch_prctl.2:107 build/C/man2/futex.2:303
329 #: build/C/man2/get_robust_list.2:119 build/C/man2/getunwind.2:99
330 #: build/C/man2/kexec_load.2:144 build/C/man2/lookup_dcookie.2:81
331 #: build/C/man2/modify_ldt.2:133 build/C/man2/perf_event_open.2:2387
332 #: build/C/man2/perfmonctl.2:202 build/C/man2/pivot_root.2:131
333 #: build/C/man2/process_vm_readv.2:281 build/C/man2/ptrace.2:1913
334 #: build/C/man2/sendfile.2:155 build/C/man2/splice.2:172
335 #: build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145
336 #, no-wrap
337 msgid "NOTES"
338 msgstr "注意"
339
340 #. type: Plain text
341 #: build/C/man2/arch_prctl.2:110
342 msgid ""
343 "B<arch_prctl>()  is supported only on Linux/x86-64 for 64-bit programs "
344 "currently."
345 msgstr ""
346 "B<arch_prctl>()  は現在のところ Linux/x86-64 上の 64 ビットプログラムでのみサ"
347 "ポートされている。"
348
349 #. type: Plain text
350 #: build/C/man2/arch_prctl.2:112
351 msgid "The 64-bit base changes when a new 32-bit segment selector is loaded."
352 msgstr ""
353 "新しい 32 ビットセグメントセレクタがロードされた場合、 64 ビットベースは変更"
354 "される。"
355
356 #. type: Plain text
357 #: build/C/man2/arch_prctl.2:115
358 msgid "B<ARCH_SET_GS> is disabled in some kernels."
359 msgstr "B<ARCH_SET_GS> が無効にされているカーネルもある。"
360
361 #. type: Plain text
362 #: build/C/man2/arch_prctl.2:130
363 msgid ""
364 "Context switches for 64-bit segment bases are rather expensive.  It may be a "
365 "faster alternative to set a 32-bit base using a segment selector by setting "
366 "up an LDT with B<modify_ldt>(2)  or using the B<set_thread_area>(2)  system "
367 "call in kernel 2.5 or later.  B<arch_prctl>()  is needed only when you want "
368 "to set bases that are larger than 4GB.  Memory in the first 2GB of address "
369 "space can be allocated by using B<mmap>(2)  with the B<MAP_32BIT> flag."
370 msgstr ""
371 "64 ビットセグメントベースのコンテキストスイッチは、やや高価である。 LDT を "
372 "B<modify_ldt>(2)  で設定してセグメントセレクタを使うか、 (カーネル 2.5 以降"
373 "の)  B<set_thread_area>(2)  システムコールを使うことにより、 32 ビットベース"
374 "を設定するという高速な代替手段もある。 4GB より大きなベースを設定したい場合に"
375 "のみ、 B<arch_prctl>()  が必要である。 アドレス空間の最初の 2GB にあるメモリ"
376 "は、 B<mmap>(2)  に B<MAP_32BIT> フラグを指定して割り当てることができる。"
377
378 #. type: Plain text
379 #: build/C/man2/arch_prctl.2:135
380 msgid ""
381 "As of version 2.7, glibc provides no prototype for B<arch_prctl>().  You "
382 "have to declare it yourself for now.  This may be fixed in future glibc "
383 "versions."
384 msgstr ""
385 "バージョン 2.7 時点では、glibc には B<arch_prctl>()  のプロトタイプがない。 "
386 "今のところユーザは自分自身で宣言する必要がある。 これは将来の glibc のバー"
387 "ジョンで修正されるかもしれない。"
388
389 #. type: Plain text
390 #: build/C/man2/arch_prctl.2:138
391 msgid "I<FS> may be already used by the threading library."
392 msgstr "I<FS> はスレッドライブラリで既に使われているかもしれない。"
393
394 #. type: SH
395 #: build/C/man2/arch_prctl.2:138 build/C/man2/futex.2:317
396 #: build/C/man2/get_robust_list.2:128 build/C/man2/getunwind.2:111
397 #: build/C/man2/kexec_load.2:159 build/C/man2/modify_ldt.2:136
398 #: build/C/man2/outb.2:96 build/C/man2/pciconfig_read.2:114
399 #: build/C/man2/perf_event_open.2:2518 build/C/man2/perfmonctl.2:205
400 #: build/C/man2/pivot_root.2:143 build/C/man2/process_vm_readv.2:331
401 #: build/C/man2/ptrace.2:2079 build/C/man2/quotactl.2:507
402 #: build/C/man2/sendfile.2:197 build/C/man2/set_tid_address.2:99
403 #: build/C/man2/splice.2:226 build/C/man2/tee.2:197
404 #: build/C/man2/vmsplice.2:154
405 #, no-wrap
406 msgid "SEE ALSO"
407 msgstr "関連項目"
408
409 #. type: Plain text
410 #: build/C/man2/arch_prctl.2:143
411 msgid "B<mmap>(2), B<modify_ldt>(2), B<prctl>(2), B<set_thread_area>(2)"
412 msgstr "B<mmap>(2), B<modify_ldt>(2), B<prctl>(2), B<set_thread_area>(2)"
413
414 #. type: Plain text
415 #: build/C/man2/arch_prctl.2:145
416 msgid "AMD X86-64 Programmer's manual"
417 msgstr "AMD X86-64 Programmer's manual"
418
419 #. type: SH
420 #: build/C/man2/arch_prctl.2:145 build/C/man2/futex.2:331
421 #: build/C/man2/get_robust_list.2:137 build/C/man2/getunwind.2:113
422 #: build/C/man2/kexec_load.2:162 build/C/man2/lookup_dcookie.2:88
423 #: build/C/man2/modify_ldt.2:138 build/C/man2/nfsservctl.2:60
424 #: build/C/man2/outb.2:99 build/C/man2/pciconfig_read.2:116
425 #: build/C/man2/perf_event_open.2:2524 build/C/man2/perfmonctl.2:209
426 #: build/C/man2/personality.2:72 build/C/man2/pivot_root.2:149
427 #: build/C/man2/process_vm_readv.2:334 build/C/man2/ptrace.2:2093
428 #: build/C/man2/quotactl.2:512 build/C/man2/sendfile.2:203
429 #: build/C/man2/set_tid_address.2:102 build/C/man2/splice.2:230
430 #: build/C/man2/tee.2:200 build/C/man2/vm86.2:76 build/C/man2/vmsplice.2:157
431 #, no-wrap
432 msgid "COLOPHON"
433 msgstr "この文書について"
434
435 #. type: Plain text
436 #: build/C/man2/arch_prctl.2:152 build/C/man2/futex.2:338
437 #: build/C/man2/get_robust_list.2:144 build/C/man2/getunwind.2:120
438 #: build/C/man2/kexec_load.2:169 build/C/man2/lookup_dcookie.2:95
439 #: build/C/man2/modify_ldt.2:145 build/C/man2/nfsservctl.2:67
440 #: build/C/man2/outb.2:106 build/C/man2/pciconfig_read.2:123
441 #: build/C/man2/perf_event_open.2:2531 build/C/man2/perfmonctl.2:216
442 #: build/C/man2/personality.2:79 build/C/man2/pivot_root.2:156
443 #: build/C/man2/process_vm_readv.2:341 build/C/man2/ptrace.2:2100
444 #: build/C/man2/quotactl.2:519 build/C/man2/sendfile.2:210
445 #: build/C/man2/set_tid_address.2:109 build/C/man2/splice.2:237
446 #: build/C/man2/tee.2:207 build/C/man2/vm86.2:83 build/C/man2/vmsplice.2:164
447 msgid ""
448 "This page is part of release 3.63 of the Linux I<man-pages> project.  A "
449 "description of the project, and information about reporting bugs, can be "
450 "found at \\%http://www.kernel.org/doc/man-pages/."
451 msgstr ""
452 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.63 の一部\n"
453 "である。プロジェクトの説明とバグ報告に関する情報は\n"
454 "http://www.kernel.org/doc/man-pages/ に書かれている。"
455
456 #. type: TH
457 #: build/C/man2/futex.2:53
458 #, no-wrap
459 msgid "FUTEX"
460 msgstr "FUTEX"
461
462 #. type: TH
463 #: build/C/man2/futex.2:53
464 #, fuzzy, no-wrap
465 #| msgid "2012-12-31"
466 msgid "2013-12-12"
467 msgstr "2012-12-31"
468
469 #. type: Plain text
470 #: build/C/man2/futex.2:56
471 msgid "futex - fast user-space locking"
472 msgstr "futex - 高速ユーザ空間ロック"
473
474 #. type: Plain text
475 #: build/C/man2/futex.2:61
476 #, no-wrap
477 msgid ""
478 "B<#include E<lt>linux/futex.hE<gt>>\n"
479 "B<#include E<lt>sys/time.hE<gt>>\n"
480 msgstr ""
481 "B<#include E<lt>linux/futex.hE<gt>>\n"
482 "B<#include E<lt>sys/time.hE<gt>>\n"
483
484 #. type: Plain text
485 #: build/C/man2/futex.2:64
486 #, no-wrap
487 msgid "B<int futex(int *>I<uaddr>B<, int >I<op>B<, int >I<val>B<, const struct timespec *>I<timeout>B<,>\n"
488 msgstr "B<int futex(int *>I<uaddr>B<, int >I<op>B<, int >I<val>B<, const struct timespec *>I<timeout>B<,>\n"
489
490 #.  int *? void *? u32 *?
491 #. type: Plain text
492 #: build/C/man2/futex.2:67
493 #, no-wrap
494 msgid "B<          int *>I<uaddr2>B<, int >I<val3>B<);>\n"
495 msgstr "B<          int *>I<uaddr2>B<, int >I<val3>B<);>\n"
496
497 #. type: Plain text
498 #: build/C/man2/futex.2:84
499 msgid ""
500 "The B<futex>()  system call provides a method for a program to wait for a "
501 "value at a given address to change, and a method to wake up anyone waiting "
502 "on a particular address (while the addresses for the same memory in separate "
503 "processes may not be equal, the kernel maps them internally so the same "
504 "memory mapped in different locations will correspond for B<futex>()  "
505 "calls).  This system call is typically used to implement the contended case "
506 "of a lock in shared memory, as described in B<futex>(7)."
507 msgstr ""
508 "B<futex>()  システムコールは、 指定したアドレスの値が変更されるのをプログラム"
509 "が待つ手段や 特定のアドレスに対して待機中のプロセスを wake (起床) させる手段"
510 "を提供する (プロセスが異なれば同じメモリに対するアドレスも同じではないかもし"
511 "れないが、 カーネルは異なる位置にマップされた同じメモリを B<futex>()  で使え"
512 "るよう内部でマップする)。 通常は、このシステムコールは B<futex>(7)  に書かれ"
513 "ているように、 共有メモリ中のロックが競合する場合の処理を実装するのに用いられ"
514 "る。"
515
516 #. type: Plain text
517 #: build/C/man2/futex.2:91
518 msgid ""
519 "When a B<futex>(7)  operation did not finish uncontended in user space, a "
520 "call needs to be made to the kernel to arbitrate.  Arbitration can either "
521 "mean putting the calling process to sleep or, conversely, waking a waiting "
522 "process."
523 msgstr ""
524 "B<futex>(7)  の操作がユーザ空間で競合なく完了しなかった場合、 カーネルに仲裁"
525 "させるためにシステムコールを呼ぶ必要がある。 仲裁というのは、呼び出しプロセス"
526 "を sleep (起床待ち) させたり、反対に 待ちプロセスを wake させたりすることを意"
527 "味する。"
528
529 #. type: Plain text
530 #: build/C/man2/futex.2:98
531 msgid ""
532 "Callers of this function are expected to adhere to the semantics as set out "
533 "in B<futex>(7).  As these semantics involve writing nonportable assembly "
534 "instructions, this in turn probably means that most users will in fact be "
535 "library authors and not general application developers."
536 msgstr ""
537 "この関数を呼び出すプロセスは B<futex>(7)  に記述されているセマンティクスに忠"
538 "実であることが要求される。 このセマンティクスには移植不可能なアセンブリ命令を"
539 "書くことが含まれる。 このことは言い換えると futex のユーザのほとんどは実際は"
540 "ライブラリの作者であり、 一般アプリケーションの開発者ではないということであ"
541 "る。"
542
543 #. type: Plain text
544 #: build/C/man2/futex.2:106
545 msgid ""
546 "The I<uaddr> argument needs to point to an aligned integer which stores the "
547 "counter.  The operation to execute is passed via the I<op> argument, along "
548 "with a value I<val>."
549 msgstr ""
550 "I<uaddr> 引き数は、カウンタを格納する、 アラインメントの揃った int 型変数を指"
551 "している必要がある。 実行する操作は I<op> 引き数を介して、値 I<val> とともに"
552 "渡される。"
553
554 #. type: Plain text
555 #: build/C/man2/futex.2:108
556 msgid "Five operations are currently defined:"
557 msgstr "現在のところ 5 つの操作が定義されている:"
558
559 #. type: TP
560 #: build/C/man2/futex.2:108 build/C/man2/futex.2:221
561 #, no-wrap
562 msgid "B<FUTEX_WAIT>"
563 msgstr "B<FUTEX_WAIT>"
564
565 #. type: Plain text
566 #: build/C/man2/futex.2:131
567 msgid ""
568 "This operation atomically verifies that the futex address I<uaddr> still "
569 "contains the value I<val>, and sleeps awaiting B<FUTEX_WAKE> on this futex "
570 "address.  If the I<timeout> argument is non-NULL, its contents specify the "
571 "duration of the wait.  (This interval will be rounded up to the system clock "
572 "granularity, and kernel scheduling delays mean that the blocking interval "
573 "may overrun by a small amount.)  If I<timeout> is NULL, the call blocks "
574 "indefinitely.  The arguments I<uaddr2> and I<val3> are ignored."
575 msgstr ""
576 "この操作は futex アドレス I<uaddr> に指定された値 I<val> がまだ格納されている"
577 "かどうかを不可分操作で検証し、 sleep 状態で この futex アドレスに対して "
578 "B<FUTEX_WAKE> が実行されるのを待つ。 I<timeout> 引き数が NULL でない場合、そ"
579 "の内容は待ち時間の最大値を表す (この停止時間はシステムクロックの粒度に切り上"
580 "げられ、 カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。 "
581 "NULL の場合、 呼び出しは無限に停止する。 引き数 I<uaddr2> と I<val3> は無視さ"
582 "れる。"
583
584 #. type: Plain text
585 #: build/C/man2/futex.2:139
586 msgid ""
587 "For B<futex>(7), this call is executed if decrementing the count gave a "
588 "negative value (indicating contention), and will sleep until another process "
589 "releases the futex and executes the B<FUTEX_WAKE> operation."
590 msgstr ""
591 "B<futex>(7)  に照らし合わせると、この呼び出しは カウントのデクリメントで負の"
592 "値 (競合を表す) になった場合に実行され、 別のプロセスがその futex を解放し "
593 "B<FUTEX_WAKE> の操作を実行するまで sleep する。"
594
595 #. type: TP
596 #: build/C/man2/futex.2:139 build/C/man2/futex.2:227
597 #, no-wrap
598 msgid "B<FUTEX_WAKE>"
599 msgstr "B<FUTEX_WAKE>"
600
601 #. type: Plain text
602 #: build/C/man2/futex.2:150
603 msgid ""
604 "This operation wakes at most I<val> processes waiting on this futex address "
605 "(i.e., inside B<FUTEX_WAIT>).  The arguments I<timeout>, I<uaddr2> and "
606 "I<val3> are ignored."
607 msgstr ""
608 "この操作では指定した futex アドレスに対して待ち状態の (すなわち "
609 "B<FUTEX_WAIT> 中の) 最大 I<val> 個のプロセスを wake させる。 引き数 "
610 "I<timeout>, I<uaddr2>, I<val3> は無視される。"
611
612 #. type: Plain text
613 #: build/C/man2/futex.2:156
614 msgid ""
615 "For B<futex>(7), this is executed if incrementing the count showed that "
616 "there were waiters, once the futex value has been set to 1 (indicating that "
617 "it is available)."
618 msgstr ""
619 "B<futex>(4) に照らし合わせると、 この操作は カウントのインクリメントで待ちプ"
620 "ロセスがあると判明し、 futex 値が 1 に設定された (利用可能であることを表す) "
621 "場合に実行される。"
622
623 #. type: TP
624 #: build/C/man2/futex.2:156
625 #, no-wrap
626 msgid "B<FUTEX_FD> (present up to and including Linux 2.6.25)"
627 msgstr "B<FUTEX_FD> (Linux 2.6.25 以前)"
628
629 #.  , suitable for .BR poll (2).
630 #. type: Plain text
631 #: build/C/man2/futex.2:172
632 msgid ""
633 "To support asynchronous wakeups, this operation associates a file descriptor "
634 "with a futex.  If another process executes a B<FUTEX_WAKE>, the process will "
635 "receive the signal number that was passed in I<val>.  The calling process "
636 "must close the returned file descriptor after use.  The arguments "
637 "I<timeout>, I<uaddr2> and I<val3> are ignored."
638 msgstr ""
639 "非同期の wake に対応するため、この操作はファイルディスクリプタを futex に 関"
640 "連づける。 別のプロセスが B<FUTEX_WAKE> を実行すると、プロセスは I<val> で渡"
641 "されたシグナル番号のシグナルを受信する。 呼び出しプロセスは使用後、返された"
642 "ファイルディスクリプタを クローズしなければならない。 引き数 I<timeout>, "
643 "I<uaddr2>, I<val3> は無視される。"
644
645 #. type: Plain text
646 #: build/C/man2/futex.2:177
647 msgid ""
648 "To prevent race conditions, the caller should test if the futex has been "
649 "upped after B<FUTEX_FD> returns."
650 msgstr ""
651 "競合状態を防止するため、呼び出しプロセスは B<FUTEX_FD> が返ったあと futex が "
652 "up されたかどうかを確認しなければならない。"
653
654 #. type: Plain text
655 #: build/C/man2/futex.2:181
656 msgid ""
657 "Because it was inherently racy, B<FUTEX_FD> has been removed from Linux "
658 "2.6.26 onward."
659 msgstr ""
660 "B<FUTEX_FD> はもともと競合が起きやすかったため、 Linux 2.6.26 以降で削除され"
661 "ている。"
662
663 #. type: TP
664 #: build/C/man2/futex.2:181
665 #, no-wrap
666 msgid "B<FUTEX_REQUEUE> (since Linux 2.5.70)"
667 msgstr "B<FUTEX_REQUEUE> (Linux 2.5.70 以降)"
668
669 #. type: Plain text
670 #: build/C/man2/futex.2:196
671 msgid ""
672 "This operation was introduced in order to avoid a \"thundering herd\" effect "
673 "when B<FUTEX_WAKE> is used and all processes woken up need to acquire "
674 "another futex.  This call wakes up I<val> processes, and requeues all other "
675 "waiters on the futex at address I<uaddr2>.  The arguments I<timeout> and "
676 "I<val3> are ignored."
677 msgstr ""
678 "この操作は、 B<FUTEX_WAKE> が使われていて、かつ wake されている全てのプロセス"
679 "が 他の futex を取得する必要がある場合に、 「獣の群れの暴走 (thundering "
680 "herd)」効果を避けるために導入された。 この呼び出しは I<val> 個のプロセスを "
681 "wake し、アドレス I<uaddr2> で futex を待っている他の全てのプロセスを再度"
682 "キューにいれる。 引き数 I<timeout> と I<val3> は無視される。"
683
684 #. type: TP
685 #: build/C/man2/futex.2:196
686 #, no-wrap
687 msgid "B<FUTEX_CMP_REQUEUE> (since Linux 2.6.7)"
688 msgstr "B<FUTEX_CMP_REQUEUE> (Linux 2.6.7 以降)"
689
690 #. type: Plain text
691 #: build/C/man2/futex.2:214
692 msgid ""
693 "There was a race in the intended use of B<FUTEX_REQUEUE>, so "
694 "B<FUTEX_CMP_REQUEUE> was introduced.  This is similar to B<FUTEX_REQUEUE>, "
695 "but first checks whether the location I<uaddr> still contains the value "
696 "I<val3>.  If not, the operation fails with the error B<EAGAIN>.  The "
697 "argument I<timeout> is ignored."
698 msgstr ""
699 "故意に B<FUTEX_REQUEUE> を使う場合に競合が起こるため、 B<FUTEX_CMP_REQUEUE> "
700 "が導入された。これは B<FUTEX_REQUEUE> と似ているが、場所 I<uaddr> に値 "
701 "I<val3> がまだ保持されているかを最初にチェックする。 保持されていない場合、操"
702 "作はエラー B<EAGAIN> で失敗する。引き数 I<timeout> は無視される。"
703
704 #. type: Plain text
705 #: build/C/man2/futex.2:221
706 msgid ""
707 "In the event of an error, all operations return -1, and set I<errno> to "
708 "indicate the error.  The return value on success depends on the operation, "
709 "as described in the following list:"
710 msgstr ""
711 "エラーの場合、全ての操作で -1 が返り、 I<errno> がエラーの内容を示す値に設定"
712 "される。成功時の返り値は操作によって異なり、以下のリストに書かれている通りで"
713 "ある。"
714
715 #. type: Plain text
716 #: build/C/man2/futex.2:227
717 msgid ""
718 "Returns 0 if the process was woken by a B<FUTEX_WAKE> call.  See ERRORS for "
719 "the various possible error returns."
720 msgstr ""
721 "そのプロセスが B<FUTEX_WAKE> により wake された場合 0 を返す。発生する可能性"
722 "があるエラーについては「エラー」の節を参照。"
723
724 #. type: Plain text
725 #: build/C/man2/futex.2:230 build/C/man2/futex.2:236 build/C/man2/futex.2:239
726 msgid "Returns the number of processes woken up."
727 msgstr "wake したプロセスの数を返す。"
728
729 #. type: TP
730 #: build/C/man2/futex.2:230
731 #, no-wrap
732 msgid "B<FUTEX_FD>"
733 msgstr "B<FUTEX_FD>"
734
735 #. type: Plain text
736 #: build/C/man2/futex.2:233
737 msgid "Returns the new file descriptor associated with the futex."
738 msgstr "futex に関連づけられた新たなファイルディスクリプタを返す。"
739
740 #. type: TP
741 #: build/C/man2/futex.2:233
742 #, no-wrap
743 msgid "B<FUTEX_REQUEUE>"
744 msgstr "B<FUTEX_REQUEUE>"
745
746 #. type: TP
747 #: build/C/man2/futex.2:236
748 #, no-wrap
749 msgid "B<FUTEX_CMP_REQUEUE>"
750 msgstr "B<FUTEX_CMP_REQUEUE>"
751
752 #. type: TP
753 #: build/C/man2/futex.2:240 build/C/man2/quotactl.2:486
754 #, no-wrap
755 msgid "B<EACCES>"
756 msgstr "B<EACCES>"
757
758 #. type: Plain text
759 #: build/C/man2/futex.2:243
760 msgid "No read access to futex memory."
761 msgstr "futex メモリに読み込みアクセス権がなかった。"
762
763 #. type: TP
764 #: build/C/man2/futex.2:243 build/C/man2/sendfile.2:116
765 #, no-wrap
766 msgid "B<EAGAIN>"
767 msgstr "B<EAGAIN>"
768
769 #. type: Plain text
770 #: build/C/man2/futex.2:254
771 msgid ""
772 "B<FUTEX_CMP_REQUEUE> detected that the value pointed to by I<uaddr> is not "
773 "equal to the expected value I<val3>.  (This probably indicates a race; use "
774 "the safe B<FUTEX_WAKE> now.)"
775 msgstr ""
776 "B<FUTEX_CMP_REQUEUE> で、I<uaddr> が指す値が期待値 I<val3> と異なる状況が検出"
777 "された。 (これは競合を示しているかもしれない。この場合は安全な B<FUTEX_WAKE> "
778 "を使うこと。)"
779
780 #. type: Plain text
781 #: build/C/man2/futex.2:259
782 msgid "Error retrieving I<timeout> information from user space."
783 msgstr "ユーザ空間から I<timeout> の情報を取得する際にエラーが発生した。"
784
785 #. type: TP
786 #: build/C/man2/futex.2:259
787 #, no-wrap
788 msgid "B<EINTR>"
789 msgstr "B<EINTR>"
790
791 #. type: Plain text
792 #: build/C/man2/futex.2:266
793 msgid ""
794 "A B<FUTEX_WAIT> operation was interrupted by a signal (see B<signal>(7))  or "
795 "a spurious wakeup."
796 msgstr ""
797 "B<FUTEX_WAIT> 操作がシグナル (B<signal>(7) 参照) もしくは偽の wakeup により中"
798 "断された。"
799
800 #. type: Plain text
801 #: build/C/man2/futex.2:269
802 msgid "Invalid argument."
803 msgstr "無効な引き数。"
804
805 #. type: TP
806 #: build/C/man2/futex.2:269
807 #, no-wrap
808 msgid "B<ENFILE>"
809 msgstr "B<ENFILE>"
810
811 #. type: Plain text
812 #: build/C/man2/futex.2:272
813 msgid "The system limit on the total number of open files has been reached."
814 msgstr "オープンされているファイルの総数がシステムの制限に達した。"
815
816 #. type: TP
817 #: build/C/man2/futex.2:272 build/C/man2/modify_ldt.2:126
818 #: build/C/man2/pciconfig_read.2:93 build/C/man2/quotactl.2:447
819 #: build/C/man2/vm86.2:64
820 #, no-wrap
821 msgid "B<ENOSYS>"
822 msgstr "B<ENOSYS>"
823
824 #. type: Plain text
825 #: build/C/man2/futex.2:276
826 msgid "Invalid operation specified in I<op>."
827 msgstr "I<op> に無効な操作が指定された。"
828
829 #. type: TP
830 #: build/C/man2/futex.2:276
831 #, no-wrap
832 msgid "B<ETIMEDOUT>"
833 msgstr "B<ETIMEDOUT>"
834
835 #. type: Plain text
836 #: build/C/man2/futex.2:281
837 msgid "Timeout during the B<FUTEX_WAIT> operation."
838 msgstr "B<FUTEX_WAIT> 操作でタイムアウトが発生した。"
839
840 #. type: TP
841 #: build/C/man2/futex.2:281
842 #, no-wrap
843 msgid "B<EWOULDBLOCK>"
844 msgstr "B<EWOULDBLOCK>"
845
846 #. type: Plain text
847 #: build/C/man2/futex.2:291
848 msgid ""
849 "I<op> was B<FUTEX_WAIT> and the value pointed to by I<uaddr> was not equal "
850 "to the expected value I<val> at the time of the call."
851 msgstr ""
852 "I<op> が B<FUTEX_WAIT> で、その呼び出しにおいて I<uaddr> が指す値が期待値 "
853 "I<val> と異なっていた。"
854
855 #. type: SH
856 #: build/C/man2/futex.2:291 build/C/man2/get_robust_list.2:115
857 #: build/C/man2/getunwind.2:94 build/C/man2/kexec_load.2:138
858 #: build/C/man2/lookup_dcookie.2:73 build/C/man2/perfmonctl.2:196
859 #: build/C/man2/pivot_root.2:125 build/C/man2/process_vm_readv.2:276
860 #: build/C/man2/sendfile.2:142 build/C/man2/set_tid_address.2:94
861 #: build/C/man2/splice.2:165 build/C/man2/tee.2:114
862 #: build/C/man2/vmsplice.2:138
863 #, no-wrap
864 msgid "VERSIONS"
865 msgstr "バージョン"
866
867 #. type: Plain text
868 #: build/C/man2/futex.2:301
869 msgid ""
870 "Initial futex support was merged in Linux 2.5.7 but with different semantics "
871 "from what was described above.  A 4-argument system call with the semantics "
872 "described in this page was introduced in Linux 2.5.40.  In Linux 2.5.70 one "
873 "argument was added.  In Linux 2.6.7 a sixth argument was added\\(emmessy, "
874 "especially on the s390 architecture."
875 msgstr ""
876 "最初の futex 対応は Linux 2.5.7 で組み込まれたが、 上記のセマンティクスとは異"
877 "なる。 4 つの引き数のここに書かれているセマンティクスを持つ システムコール"
878 "は、Linux 2.5.40 で導入された。 Linux 2.5.70 では 1 つの引き数が追加された。 "
879 "Linux 2.6.7 では 6 番目の引き数が追加された。 これは汚く、s390 アーキテクチャ"
880 "上の特別のものである。"
881
882 #. type: Plain text
883 #: build/C/man2/futex.2:303 build/C/man2/kexec_load.2:144
884 #: build/C/man2/set_tid_address.2:99 build/C/man2/splice.2:172
885 #: build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145
886 msgid "This system call is Linux-specific."
887 msgstr "このシステムコールは Linux 固有である。"
888
889 #.  .SH "AUTHORS"
890 #.  .PP
891 #.  Futexes were designed and worked on by
892 #.  Hubertus Franke (IBM Thomas J. Watson Research Center),
893 #.  Matthew Kirkwood, Ingo Molnar (Red Hat)
894 #.  and Rusty Russell (IBM Linux Technology Center).
895 #.  This page written by bert hubert.
896 #. type: Plain text
897 #: build/C/man2/futex.2:317
898 msgid ""
899 "To reiterate, bare futexes are not intended as an easy-to-use abstraction "
900 "for end-users.  (There is no wrapper function for this system call in "
901 "glibc.)  Implementors are expected to be assembly literate and to have read "
902 "the sources of the futex user-space library referenced below."
903 msgstr ""
904 "繰り返すが、裸の futex はエンドユーザが容易に使うことのできる概念として 意図"
905 "されたものではない (glibc にはこのシステムコールに対するラッパー関数はな"
906 "い)。 実装者は、アセンブリ言語に慣れており、以下に挙げる futex ユーザ空間ライ"
907 "ブラリの ソースを読み終えていることが要求される。"
908
909 #. type: Plain text
910 #: build/C/man2/futex.2:320
911 msgid "B<restart_syscall>(2), B<futex>(7)"
912 msgstr "B<restart_syscall>(2), B<futex>(7)"
913
914 #. type: Plain text
915 #: build/C/man2/futex.2:323
916 msgid ""
917 "I<Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux> (proceedings "
918 "of the Ottawa Linux Symposium 2002), online at"
919 msgstr ""
920 "I<Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux> (proceedings "
921 "of the Ottawa Linux Symposium 2002), online at"
922
923 #. type: Plain text
924 #: build/C/man2/futex.2:326
925 msgid ""
926 "E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> "
927 "E<.UE>"
928 msgstr ""
929 "E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> "
930 "E<.UE>"
931
932 #. type: Plain text
933 #: build/C/man2/futex.2:328
934 msgid "Futex example library, futex-*.tar.bz2 at"
935 msgstr "futex の使用例ライブラリ, futex-*.tar.bz2"
936
937 #. type: Plain text
938 #: build/C/man2/futex.2:331
939 #, fuzzy
940 #| msgid ""
941 #| "E<.UR ftp://ftp.nl.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/"
942 #| "rusty/> E<.UE>"
943 msgid ""
944 "E<.UR ftp://ftp.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> E<."
945 "UE>"
946 msgstr ""
947 "E<.UR ftp://ftp.nl.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> "
948 "E<.UE>"
949
950 #. type: TH
951 #: build/C/man2/get_robust_list.2:29
952 #, no-wrap
953 msgid "GET_ROBUST_LIST"
954 msgstr "GET_ROBUST_LIST"
955
956 #. type: TH
957 #: build/C/man2/get_robust_list.2:29 build/C/man2/kexec_load.2:26
958 #: build/C/man2/modify_ldt.2:24 build/C/man2/pivot_root.2:10
959 #, no-wrap
960 msgid "2012-07-13"
961 msgstr "2012-07-13"
962
963 #. type: TH
964 #: build/C/man2/get_robust_list.2:29
965 #, no-wrap
966 msgid "Linux System Calls"
967 msgstr ""
968
969 #. type: Plain text
970 #: build/C/man2/get_robust_list.2:32
971 msgid "get_robust_list, set_robust_list - get/set list of robust futexes"
972 msgstr ""
973
974 #. type: Plain text
975 #: build/C/man2/get_robust_list.2:36
976 #, no-wrap
977 msgid ""
978 "B<#include E<lt>linux/futex.hE<gt>>\n"
979 "B<#include E<lt>syscall.hE<gt>>\n"
980 msgstr ""
981 "B<#include E<lt>linux/futex.hE<gt>>\n"
982 "B<#include E<lt>syscall.hE<gt>>\n"
983
984 #. type: Plain text
985 #: build/C/man2/get_robust_list.2:40
986 #, no-wrap
987 msgid ""
988 "B<long get_robust_list(int >I<pid>B<, struct robust_list_head **>I<head_ptr>B<,>\n"
989 "B<                     size_t *>I<len_ptr>B<);>\n"
990 "B<long set_robust_list(struct robust_list_head *>I<head>B<, size_t >I<len>B<);>\n"
991 msgstr ""
992
993 #. type: Plain text
994 #: build/C/man2/get_robust_list.2:44
995 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
996 msgstr ""
997 "I<注意>: これらのシステムコールには glibc ラッパー関数は存在しない。 「注意」"
998 "の節を参照。"
999
1000 #. type: Plain text
1001 #: build/C/man2/get_robust_list.2:49
1002 msgid ""
1003 "The robust futex implementation needs to maintain per-thread lists of robust "
1004 "futexes which are unlocked when the thread exits.  These lists are managed "
1005 "in user space; the kernel is notified about only the location of the head of "
1006 "the list."
1007 msgstr ""
1008
1009 #. type: Plain text
1010 #: build/C/man2/get_robust_list.2:65
1011 msgid ""
1012 "The B<get_robust_list>()  system call returns the head of the robust futex "
1013 "list of the thread whose thread ID is specified in I<pid>.  If I<pid> is 0, "
1014 "the head of the list for the calling thread is returned.  The list head is "
1015 "stored in the location pointed to by I<head_ptr>.  The size of the object "
1016 "pointed to by I<**head_ptr> is stored in I<len_ptr>."
1017 msgstr ""
1018
1019 #. type: Plain text
1020 #: build/C/man2/get_robust_list.2:77
1021 msgid ""
1022 "The B<set_robust_list>()  system call requests the kernel to record the head "
1023 "of the list of robust futexes owned by the calling thread.  The I<head> "
1024 "argument is the list head to record.  The I<len> argument should be I<sizeof"
1025 "(*head)>."
1026 msgstr ""
1027
1028 #. type: Plain text
1029 #: build/C/man2/get_robust_list.2:84
1030 msgid ""
1031 "The B<set_robust_list>()  and B<get_robust_list>()  system calls return zero "
1032 "when the operation is successful, an error code otherwise."
1033 msgstr ""
1034
1035 #. type: Plain text
1036 #: build/C/man2/get_robust_list.2:88
1037 msgid ""
1038 "The B<set_robust_list>()  system call can fail with the following error:"
1039 msgstr ""
1040
1041 #. type: Plain text
1042 #: build/C/man2/get_robust_list.2:94
1043 msgid ""
1044 "I<len> does not match the size of structure B<struct robust_list_head> "
1045 "expected by kernel."
1046 msgstr ""
1047
1048 #. type: Plain text
1049 #: build/C/man2/get_robust_list.2:98
1050 msgid ""
1051 "The B<get_robust_list>()  system call can fail with the following errors:"
1052 msgstr ""
1053
1054 #. type: Plain text
1055 #: build/C/man2/get_robust_list.2:106
1056 msgid ""
1057 "The calling process does not have permission to see the robust futex list of "
1058 "the thread with the thread ID I<pid>, and does not have the "
1059 "B<CAP_SYS_PTRACE> capability."
1060 msgstr ""
1061
1062 #. type: TP
1063 #: build/C/man2/get_robust_list.2:106 build/C/man2/process_vm_readv.2:271
1064 #: build/C/man2/ptrace.2:1906 build/C/man2/quotactl.2:461
1065 #: build/C/man2/quotactl.2:504
1066 #, no-wrap
1067 msgid "B<ESRCH>"
1068 msgstr "B<ESRCH>"
1069
1070 #. type: Plain text
1071 #: build/C/man2/get_robust_list.2:111
1072 msgid "No thread with the thread ID I<pid> could be found."
1073 msgstr ""
1074
1075 #. type: Plain text
1076 #: build/C/man2/get_robust_list.2:115
1077 msgid ""
1078 "The head of the robust futex list can't be stored at the location I<head>."
1079 msgstr ""
1080
1081 #. type: Plain text
1082 #: build/C/man2/get_robust_list.2:119
1083 msgid ""
1084 "These system calls were added in Linux 2.6.17.  No library support is "
1085 "provided; use B<syscall>(2)."
1086 msgstr ""
1087 "これらのシステムコールは Linux 2.6.17 で追加された。ライブラリによる\n"
1088 "サポートは提供されていない。 B<syscall>(2) を使うこと。"
1089
1090 #. type: Plain text
1091 #: build/C/man2/get_robust_list.2:124
1092 msgid ""
1093 "These system calls are not needed by normal applications.  No support for "
1094 "them is provided in glibc.  In the unlikely event that you want to call them "
1095 "directly, use B<syscall>(2)."
1096 msgstr ""
1097 "通常のアプリケーションでは、これらのシステムコールは必要ではない。 glibc によ"
1098 "るサポートは提供されていない。おそらくないと思うが、このシステムコールを直接"
1099 "呼び出したい場合は B<syscall>(2) を使うこと。"
1100
1101 #. type: Plain text
1102 #: build/C/man2/get_robust_list.2:128
1103 msgid ""
1104 "A thread can have only one robust futex list; therefore applications that "
1105 "wish to use this functionality should use the robust mutexes provided by "
1106 "glibc."
1107 msgstr ""
1108
1109 #.  .BR pthread_mutexattr_setrobust_np (3)
1110 #. type: Plain text
1111 #: build/C/man2/get_robust_list.2:131
1112 msgid "B<futex>(2)"
1113 msgstr "B<futex>(2)"
1114
1115 #.  http://lwn.net/Articles/172149/
1116 #. type: Plain text
1117 #: build/C/man2/get_robust_list.2:137
1118 msgid ""
1119 "I<Documentation/robust-futexes.txt> and I<Documentation/robust-futex-ABI."
1120 "txt> in the Linux kernel source tree"
1121 msgstr ""
1122
1123 #. type: TH
1124 #: build/C/man2/getunwind.2:27
1125 #, no-wrap
1126 msgid "GETUNWIND"
1127 msgstr ""
1128
1129 #. type: TH
1130 #: build/C/man2/getunwind.2:27 build/C/man2/perfmonctl.2:27
1131 #, no-wrap
1132 msgid "2013-02-13"
1133 msgstr "2013-02-13"
1134
1135 #. type: Plain text
1136 #: build/C/man2/getunwind.2:30
1137 msgid "getunwind - copy the unwind data to caller's buffer"
1138 msgstr ""
1139
1140 #. type: Plain text
1141 #: build/C/man2/getunwind.2:34
1142 #, no-wrap
1143 msgid ""
1144 "B<#include E<lt>syscall.hE<gt>>\n"
1145 "B<#include E<lt>linux/unwind.hE<gt>>\n"
1146 msgstr ""
1147 "B<#include E<lt>syscall.hE<gt>>\n"
1148 "B<#include E<lt>linux/unwind.hE<gt>>\n"
1149
1150 #. type: Plain text
1151 #: build/C/man2/getunwind.2:36
1152 #, no-wrap
1153 msgid "B<long getunwind(void >I<*buf>B<, size_t >I<buf_size>B<);>\n"
1154 msgstr ""
1155
1156 #. type: Plain text
1157 #: build/C/man2/getunwind.2:40 build/C/man2/kexec_load.2:39
1158 #: build/C/man2/modify_ldt.2:36 build/C/man2/perf_event_open.2:42
1159 #: build/C/man2/perfmonctl.2:39 build/C/man2/pivot_root.2:18
1160 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
1161 msgstr ""
1162 "I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
1163 "を参照。"
1164
1165 #. type: Plain text
1166 #: build/C/man2/getunwind.2:42
1167 msgid "I<Note: this function is obsolete.>"
1168 msgstr ""
1169
1170 #. type: Plain text
1171 #: build/C/man2/getunwind.2:52
1172 msgid ""
1173 "The IA-64-specific B<getunwind>()  system call copies the kernel's call "
1174 "frame unwind data into the buffer pointed to by I<buf> and returns the size "
1175 "of the unwind data; this data describes the gate page (kernel code that is "
1176 "mapped into user space)."
1177 msgstr ""
1178
1179 #. type: Plain text
1180 #: build/C/man2/getunwind.2:64
1181 msgid ""
1182 "The size of the buffer I<buf> is specified in I<buf_size>.  The data is "
1183 "copied only if I<buf_size> is greater than or equal to the size of the "
1184 "unwind data and I<buf> is not NULL; otherwise, no data is copied, and the "
1185 "call succeeds, returning the size that would be needed to store the unwind "
1186 "data."
1187 msgstr ""
1188
1189 #. type: Plain text
1190 #: build/C/man2/getunwind.2:68
1191 msgid ""
1192 "The first part of the unwind data contains an unwind table.  The rest "
1193 "contains the associated unwind information, in no particular order.  The "
1194 "unwind table contains entries of the following form:"
1195 msgstr ""
1196
1197 #. type: Plain text
1198 #: build/C/man2/getunwind.2:73
1199 #, no-wrap
1200 msgid ""
1201 "    u64 start;      (64-bit address of start of function)\n"
1202 "    u64 end;        (64-bit address of end of function)\n"
1203 "    u64 info;       (BUF-relative offset to unwind info)\n"
1204 msgstr ""
1205
1206 #. type: Plain text
1207 #: build/C/man2/getunwind.2:81
1208 msgid ""
1209 "An entry whose I<start> value is zero indicates the end of the table.  For "
1210 "more information about the format, see the I<IA-64 Software Conventions and "
1211 "Runtime Architecture> manual."
1212 msgstr ""
1213
1214 #. type: Plain text
1215 #: build/C/man2/getunwind.2:88
1216 msgid ""
1217 "On success, B<getunwind>()  returns the size of unwind table.  On error, -1 "
1218 "is returned and I<errno> is set to indicate the error."
1219 msgstr ""
1220
1221 #. type: Plain text
1222 #: build/C/man2/getunwind.2:94
1223 msgid ""
1224 "B<getunwind>()  fails with the error B<EFAULT> if the unwind info can't be "
1225 "stored in the space specified by I<buf>."
1226 msgstr ""
1227
1228 #. type: Plain text
1229 #: build/C/man2/getunwind.2:96
1230 msgid "This system call is available since Linux 2.4."
1231 msgstr ""
1232
1233 #. type: Plain text
1234 #: build/C/man2/getunwind.2:99
1235 msgid ""
1236 "This system call is Linux-specific, and is available only on the IA-64 "
1237 "architecture."
1238 msgstr ""
1239
1240 #. type: Plain text
1241 #: build/C/man2/getunwind.2:107
1242 msgid ""
1243 "This system call has been deprecated.  The modern way to obtain the kernel's "
1244 "unwind data is via the gate DSO.  The address of the ELF header for this DSO "
1245 "is passed to user level via B<AT_SYSINFO_EHDR> (see B<getauxval>(3))."
1246 msgstr ""
1247
1248 #. type: Plain text
1249 #: build/C/man2/getunwind.2:111
1250 msgid ""
1251 "Glibc does not provide a wrapper for this system call; in the unlikely event "
1252 "that you want to call it, use B<syscall>(2)."
1253 msgstr ""
1254 "glibc はこのシステムコールに対するラッパー関数を提供していない。おそらくない"
1255 "と思うが、このシステムコールを呼び出したい場合は B<syscall>(2) を使うこと。"
1256
1257 #. type: Plain text
1258 #: build/C/man2/getunwind.2:113
1259 msgid "B<getauxval>(3)"
1260 msgstr "B<getauxval>(3)"
1261
1262 #. type: TH
1263 #: build/C/man2/kexec_load.2:26
1264 #, no-wrap
1265 msgid "KEXEC_LOAD"
1266 msgstr "KEXEC_LOAD"
1267
1268 #. type: Plain text
1269 #: build/C/man2/kexec_load.2:29
1270 msgid "kexec_load - load a new kernel for later execution"
1271 msgstr "kexec_load - 新しいカーネルを後で実行するためにロードする"
1272
1273 #. type: Plain text
1274 #: build/C/man2/kexec_load.2:31
1275 msgid "B<#include E<lt>linux/kexec.hE<gt>>"
1276 msgstr "B<#include E<lt>linux/kexec.hE<gt>>"
1277
1278 #. type: Plain text
1279 #: build/C/man2/kexec_load.2:33
1280 msgid ""
1281 "B<long kexec_load(unsigned long >I<entry>B<, unsigned long >I<nr_segments>B<,"
1282 ">"
1283 msgstr ""
1284 "B<long kexec_load(unsigned long >I<entry>B<, unsigned long >I<nr_segments>B<,"
1285 ">"
1286
1287 #. type: Plain text
1288 #: build/C/man2/kexec_load.2:36
1289 msgid "B< struct kexec_segment *>I<segments>B<, unsigned long >I<flags>B<);>"
1290 msgstr "B< struct kexec_segment *>I<segments>B<, unsigned long >I<flags>B<);>"
1291
1292 #. type: Plain text
1293 #: build/C/man2/kexec_load.2:44
1294 msgid ""
1295 "The B<kexec_load>()  system call loads a new kernel that can be executed "
1296 "later by B<reboot>(2)."
1297 msgstr ""
1298 "B<kexec_load>() システムコールは、新しいカーネルをロードし、\n"
1299 "その後の B<reboot>(2) で実行できるようにする。"
1300
1301 #. type: Plain text
1302 #: build/C/man2/kexec_load.2:50
1303 msgid ""
1304 "The I<flags> argument is a mask whose high-order bits control the operation "
1305 "of the call.  The following values can be specified in I<flags>:"
1306 msgstr ""
1307 "I<flags> 引き数はマスクビットで、\n"
1308 "その上位ビットでシステムコールの呼び出しの動作を制御する。\n"
1309 "I<flags> には以下の値を指定できる。"
1310
1311 #. type: TP
1312 #: build/C/man2/kexec_load.2:50
1313 #, no-wrap
1314 msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
1315 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
1316
1317 #.  FIXME figure out how this is really used
1318 #. type: Plain text
1319 #: build/C/man2/kexec_load.2:54
1320 msgid "Execute the new kernel automatically on a system crash."
1321 msgstr "システムのクラッシュ時に、新しいカーネルを自動的に実行する。"
1322
1323 #. type: TP
1324 #: build/C/man2/kexec_load.2:54
1325 #, no-wrap
1326 msgid "B<KEXEC_PRESERVE_CONTEXT> (since Linux 2.6.27)"
1327 msgstr "B<KEXEC_PRESERVE_CONTEXT> (Linux 2.6.27 以降)"
1328
1329 #. type: Plain text
1330 #: build/C/man2/kexec_load.2:64
1331 msgid ""
1332 "Preserve the system hardware and software states before executing the new "
1333 "kernel.  This could be used for system suspend.  This flag is available only "
1334 "if the kernel was configured with B<CONFIG_KEXEC_JUMP>, and is effective "
1335 "only if I<nr_segments> is greater than 0."
1336 msgstr ""
1337 "新しいカーネルを実行する前に、\n"
1338 "システムのハードウェアとソフトウェアの状態を保存する。\n"
1339 "システムの中断時 (suspend) などで使用できる。\n"
1340 "このフラグは、カーネルの設定で B<CONFIG_KEXEC_JUMP> が有効の場合のみ\n"
1341 "利用可能であり、 I<nr_segments> が 0 より大きい場合のみ効果がある。"
1342
1343 #. type: Plain text
1344 #: build/C/man2/kexec_load.2:84
1345 msgid ""
1346 "The low-order bits of I<flags> contain the architecture of the to-be-"
1347 "executed kernel.  Specify (OR) the constant B<KEXEC_ARCH_DEFAULT> to use the "
1348 "current architecture, or one of the following architecture constants "
1349 "B<KEXEC_ARCH_386>, B<KEXEC_ARCH_X86_64>, B<KEXEC_ARCH_PPC>, "
1350 "B<KEXEC_ARCH_PPC64>, B<KEXEC_ARCH_IA_64>, B<KEXEC_ARCH_ARM>, "
1351 "B<KEXEC_ARCH_S390>, B<KEXEC_ARCH_SH>, B<KEXEC_ARCH_MIPS>, and "
1352 "B<KEXEC_ARCH_MIPS_LE>.  The architecture must be executable on the CPU of "
1353 "the system."
1354 msgstr ""
1355 "I<flags> の下位ビットには、実行されるカーネルのアーキテクチャが入る。\n"
1356 "現在のアーキテクチャを使うことを意味する定数 B<KEXEC_ARCH_DEFAULT> か、\n"
1357 "アーキテクチャ定数 B<KEXEC_ARCH_386>, B<KEXEC_ARCH_X86_64>,\n"
1358 "B<KEXEC_ARCH_PPC>, B<KEXEC_ARCH_PPC64>, B<KEXEC_ARCH_IA_64>,\n"
1359 "B<KEXEC_ARCH_ARM>, B<KEXEC_ARCH_S390>, B<KEXEC_ARCH_SH>,\n"
1360 "B<KEXEC_ARCH_MIPS>, B<KEXEC_ARCH_MIPS_LE> の\n"
1361 "いずれか一つを (OR で) 指定する。指定するアーキテクチャは、\n"
1362 "システムの CPU で実行可能なものでなければならない。"
1363
1364 #. type: Plain text
1365 #: build/C/man2/kexec_load.2:98
1366 msgid ""
1367 "The I<entry> argument is the physical entry address in the kernel image.  "
1368 "The I<nr_segments> argument is the number of segments pointed to by the "
1369 "I<segments> pointer.  The I<segments> argument is an array of "
1370 "I<kexec_segment> structures which define the kernel layout:"
1371 msgstr ""
1372 "I<entry> 引き数は、カーネルイメージの物理エントリーアドレスである。\n"
1373 "I<nr_segments> 引き数は、 I<segments> ポインタが指すセグメントの\n"
1374 "数である。 I<segments> 引き数は I<kexec_segment> 構造体の配列で、\n"
1375 "この構造体によりカーネルの配置が定義される。"
1376
1377 #. type: Plain text
1378 #: build/C/man2/kexec_load.2:107
1379 #, no-wrap
1380 msgid ""
1381 "struct kexec_segment {\n"
1382 "    void   *buf;        /* Buffer in user space */\n"
1383 "    size_t  bufsz;      /* Buffer length in user space */\n"
1384 "    void   *mem;        /* Physical address of kernel */\n"
1385 "    size_t  memsz;      /* Physical address length */\n"
1386 "};\n"
1387 msgstr ""
1388 "struct kexec_segment {\n"
1389 "    void   *buf;        /* Buffer in user space */\n"
1390 "    size_t  bufsz;      /* Buffer length in user space */\n"
1391 "    void   *mem;        /* Physical address of kernel */\n"
1392 "    size_t  memsz;      /* Physical address length */\n"
1393 "};\n"
1394
1395 #.  FIXME elaborate on the following:
1396 #. type: Plain text
1397 #: build/C/man2/kexec_load.2:114
1398 msgid ""
1399 "The kernel image defined by I<segments> is copied from the calling process "
1400 "into previously reserved memory."
1401 msgstr ""
1402 "I<segments> で定義されたカーネルイメージは、\n"
1403 "呼び出したプロセスから予約済みメモリにコピーされる。"
1404
1405 #. type: Plain text
1406 #: build/C/man2/kexec_load.2:121
1407 msgid ""
1408 "On success, B<kexec_load>()  returns 0.  On error, -1 is returned and "
1409 "I<errno> is set to indicate the error."
1410 msgstr ""
1411 "成功すると、 B<kexec_load> は 0 を返す。\n"
1412 "エラーの場合、 -1 が返り、 I<errno> にエラーを示す値が設定される。"
1413
1414 #. type: TP
1415 #: build/C/man2/kexec_load.2:122 build/C/man2/pivot_root.2:110
1416 #: build/C/man2/ptrace.2:1869 build/C/man2/quotactl.2:495
1417 #, no-wrap
1418 msgid "B<EBUSY>"
1419 msgstr "B<EBUSY>"
1420
1421 #. type: Plain text
1422 #: build/C/man2/kexec_load.2:126
1423 msgid ""
1424 "Another crash kernel is already being loaded or a crash kernel is already in "
1425 "use."
1426 msgstr ""
1427 "別のクラッシュカーネルがすでにロードされているか、\n"
1428 "クラッシュカーネルがすでに使用されている。"
1429
1430 #.  KEXEC_SEGMENT_MAX == 16
1431 #. type: Plain text
1432 #: build/C/man2/kexec_load.2:133
1433 msgid "I<flags> is invalid; or I<nr_segments> is too large"
1434 msgstr "I<flags> が無効である。 I<nr_segments> が大きすぎる。"
1435
1436 #. type: Plain text
1437 #: build/C/man2/kexec_load.2:138
1438 msgid "The caller does not have the B<CAP_SYS_BOOT> capability."
1439 msgstr "呼び出し側が B<CAP_SYS_BOOT> ケーパビリティを持っていない。"
1440
1441 #. type: Plain text
1442 #: build/C/man2/kexec_load.2:142
1443 msgid "The B<kexec_load>()  system call first appeared in Linux 2.6.13."
1444 msgstr "B<kexec_load>() システムコールは Linux 2.6.13 で初めて登場した。"
1445
1446 #. type: Plain text
1447 #: build/C/man2/kexec_load.2:149
1448 msgid ""
1449 "Currently, there is no glibc support for B<kexec_load>().  Call it using "
1450 "B<syscall>(2)."
1451 msgstr ""
1452 "現在のところ、 B<kexec_load>() は glibc ではサポートされていない。\n"
1453 "B<syscall>(2) を使って呼び出すこと。"
1454
1455 #.  FIXME Andi submitted a patch for this.
1456 #.  Check if it got accepted later.
1457 #. type: Plain text
1458 #: build/C/man2/kexec_load.2:156
1459 msgid ""
1460 "The required constants are in the Linux kernel source file I<linux/kexec.h>, "
1461 "which is not currently exported to glibc.  Therefore, these constants must "
1462 "be defined manually."
1463 msgstr ""
1464 "必要な定数は Linux カーネルのソースファイル I<linux/kexec.h> で定義されてい"
1465 "る\n"
1466 "が、現在のところ glibc には公開されていない。\n"
1467 "そのため、これらの定数は手動で定義しなければならない。"
1468
1469 #. type: Plain text
1470 #: build/C/man2/kexec_load.2:159
1471 msgid ""
1472 "This system call is available only if the kernel was configured with "
1473 "B<CONFIG_KEXEC>."
1474 msgstr ""
1475 "このシステムコールは、カーネルの設定で B<CONFIG_KEXEC> が有効になって\n"
1476 "いる場合にのみ利用できる。"
1477
1478 #. type: Plain text
1479 #: build/C/man2/kexec_load.2:162
1480 msgid "B<reboot>(2), B<syscall>(2)"
1481 msgstr "B<reboot>(2), B<syscall>(2)"
1482
1483 #. type: TH
1484 #: build/C/man2/lookup_dcookie.2:27
1485 #, no-wrap
1486 msgid "LOOKUP_DCOOKIE"
1487 msgstr "LOOKUP_DCOOKIE"
1488
1489 #. type: TH
1490 #: build/C/man2/lookup_dcookie.2:27
1491 #, no-wrap
1492 msgid "2004-06-17"
1493 msgstr "2004-06-17"
1494
1495 #. type: Plain text
1496 #: build/C/man2/lookup_dcookie.2:30
1497 msgid "lookup_dcookie - return a directory entry's path"
1498 msgstr "lookup_dcookie - ディレクトリ・エントリのパス名を返す"
1499
1500 #. type: Plain text
1501 #: build/C/man2/lookup_dcookie.2:32
1502 msgid ""
1503 "B<int lookup_dcookie(u64 >I<cookie>B<, char *>I<buffer>B<, size_t >I<len>B<);"
1504 ">"
1505 msgstr ""
1506 "B<int lookup_dcookie(u64 >I<cookie>B<, char *>I<buffer>B<, size_t >I<len>B<);"
1507 ">"
1508
1509 #. type: Plain text
1510 #: build/C/man2/lookup_dcookie.2:38
1511 msgid ""
1512 "Look up the full path of the directory entry specified by the value "
1513 "I<cookie>.  The cookie is an opaque identifier uniquely identifying a "
1514 "particular directory entry.  The buffer given is filled in with the full "
1515 "path of the directory entry."
1516 msgstr ""
1517 "I<cookie> 値で指定されたディレクトリ・エントリのフルパス名を検索する。 "
1518 "cookie は、個々のディレクトリ・エントリを区別する内部識別子 (opaque "
1519 "identifier) である。引き数で指定されたバッファに、ディレクトリ・エントリの フ"
1520 "ルパス名が格納される。"
1521
1522 #. type: Plain text
1523 #: build/C/man2/lookup_dcookie.2:43
1524 msgid ""
1525 "For B<lookup_dcookie>()  to return successfully, the kernel must still hold "
1526 "a cookie reference to the directory entry."
1527 msgstr ""
1528 "B<lookup_dcookie>()  が正常に値を返すためには、カーネルがディレクトリ・エント"
1529 "リへの cookie 参照を 保持していなければならない。"
1530
1531 #. type: Plain text
1532 #: build/C/man2/lookup_dcookie.2:50
1533 msgid ""
1534 "On success, B<lookup_dcookie>()  returns the length of the path string "
1535 "copied into the buffer.  On error, -1 is returned, and I<errno> is set "
1536 "appropriately."
1537 msgstr ""
1538 "成功した場合、 B<lookup_dcookie>()  はバッファにコピーしたパス文字列の長さを"
1539 "返す。 エラーの場合は -1 を返し、 I<errno> に適切な値を設定する。"
1540
1541 #. type: Plain text
1542 #: build/C/man2/lookup_dcookie.2:54
1543 msgid "The buffer was not valid."
1544 msgstr "バッファが有効でなかった。"
1545
1546 #. type: Plain text
1547 #: build/C/man2/lookup_dcookie.2:58
1548 msgid ""
1549 "The kernel has no registered cookie/directory entry mappings at the time of "
1550 "lookup, or the cookie does not refer to a valid directory entry."
1551 msgstr ""
1552 "検索が行われた時、cookie とディレクトリ・エントリのマッピングがカーネルに 登"
1553 "録されていなかったか、または cookie が有効なディレクトリ・エントリを 参照して"
1554 "いない。"
1555
1556 #. type: TP
1557 #: build/C/man2/lookup_dcookie.2:58
1558 #, no-wrap
1559 msgid "B<ENAMETOOLONG>"
1560 msgstr "B<ENAMETOOLONG>"
1561
1562 #. type: Plain text
1563 #: build/C/man2/lookup_dcookie.2:61
1564 msgid "The name could not fit in the buffer."
1565 msgstr "名前がバッファに入り切らなかった。"
1566
1567 #. type: TP
1568 #: build/C/man2/lookup_dcookie.2:61 build/C/man2/process_vm_readv.2:262
1569 #: build/C/man2/sendfile.2:138 build/C/man2/splice.2:155
1570 #: build/C/man2/tee.2:111 build/C/man2/vmsplice.2:135
1571 #, no-wrap
1572 msgid "B<ENOMEM>"
1573 msgstr "B<ENOMEM>"
1574
1575 #. type: Plain text
1576 #: build/C/man2/lookup_dcookie.2:65
1577 msgid ""
1578 "The kernel could not allocate memory for the temporary buffer holding the "
1579 "path."
1580 msgstr ""
1581 "カーネルが、パス名を保持する一時バッファ用のメモリを割り当てることが できな"
1582 "かった。"
1583
1584 #. type: Plain text
1585 #: build/C/man2/lookup_dcookie.2:70
1586 msgid ""
1587 "The process does not have the capability B<CAP_SYS_ADMIN> required to look "
1588 "up cookie values."
1589 msgstr ""
1590 "プロセスが cookie 値を検索するのに必要なケーパビリティ B<CAP_SYS_ADMIN> を"
1591 "持っていない。"
1592
1593 #. type: TP
1594 #: build/C/man2/lookup_dcookie.2:70 build/C/man2/quotactl.2:474
1595 #, no-wrap
1596 msgid "B<ERANGE>"
1597 msgstr "B<ERANGE>"
1598
1599 #. type: Plain text
1600 #: build/C/man2/lookup_dcookie.2:73
1601 msgid ""
1602 "The buffer was not large enough to hold the path of the directory entry."
1603 msgstr ""
1604 "バッファが、ディレクトリ・エントリのパス名を収容するのに 十分な大きさではな"
1605 "かった。"
1606
1607 #. type: Plain text
1608 #: build/C/man2/lookup_dcookie.2:78
1609 msgid ""
1610 "Available since Linux 2.5.43.  The B<ENAMETOOLONG> error return was added in "
1611 "2.5.70."
1612 msgstr ""
1613 "Linux 2.5.43 以降で利用できる。 エラー B<ENAMETOOLONG> を返す仕様は 2.5.70 で"
1614 "追加された。"
1615
1616 #. type: Plain text
1617 #: build/C/man2/lookup_dcookie.2:81
1618 msgid "B<lookup_dcookie>()  is Linux-specific."
1619 msgstr "B<lookup_dcookie>()  は Linux 独自の関数である。"
1620
1621 #. type: Plain text
1622 #: build/C/man2/lookup_dcookie.2:85
1623 msgid ""
1624 "B<lookup_dcookie>()  is a special-purpose system call, currently used only "
1625 "by the oprofile profiler.  It relies on a kernel driver to register cookies "
1626 "for directory entries."
1627 msgstr ""
1628 "B<lookup_dcookie>()  は特殊な用途に使われるシステムコールで、現在のところ "
1629 "oprofile profiler で 使われているだけである。"
1630
1631 #. type: Plain text
1632 #: build/C/man2/lookup_dcookie.2:88
1633 msgid ""
1634 "The path returned may be suffixed by the string \" (deleted)\" if the "
1635 "directory entry has been removed."
1636 msgstr ""
1637 "指定されたディレクトリ・エントリが削除されていた場合、返されるパス名の最後に "
1638 "\" (deleted)\" という文字列が付加されることがある。"
1639
1640 #. type: TH
1641 #: build/C/man2/modify_ldt.2:24
1642 #, no-wrap
1643 msgid "MODIFY_LDT"
1644 msgstr "MODIFY_LDT"
1645
1646 #. type: Plain text
1647 #: build/C/man2/modify_ldt.2:27
1648 msgid "modify_ldt - get or set ldt"
1649 msgstr "modify_ldt - ldt を設定または取得する"
1650
1651 #. type: Plain text
1652 #: build/C/man2/modify_ldt.2:30
1653 #, no-wrap
1654 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1655 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1656
1657 #. type: Plain text
1658 #: build/C/man2/modify_ldt.2:32
1659 #, no-wrap
1660 msgid "B<int modify_ldt(int >I<func>B<, void *>I<ptr>B<, unsigned long >I<bytecount>B<);>\n"
1661 msgstr "B<int modify_ldt(int >I<func>B<, void *>I<ptr>B<, unsigned long >I<bytecount>B<);>\n"
1662
1663 #. type: Plain text
1664 #: build/C/man2/modify_ldt.2:41
1665 msgid ""
1666 "B<modify_ldt>()  reads or writes the local descriptor table (ldt) for a "
1667 "process.  The ldt is a per-process memory management table used by the i386 "
1668 "processor.  For more information on this table, see an Intel 386 processor "
1669 "handbook."
1670 msgstr ""
1671 "B<modify_ldt>()  はプロセスのローカル・ディスクリプタ・テーブル (local "
1672 "descriptor table; ldt)  を読み書きする。 ldt は i386 プロセッサで使用されるプ"
1673 "ロセスごとのメモリ管理テーブルである。 このテーブルに関してのより詳しい情報"
1674 "は Intel 386 processor handbook を 参照すること。"
1675
1676 #. type: Plain text
1677 #: build/C/man2/modify_ldt.2:51
1678 msgid ""
1679 "When I<func> is 0, B<modify_ldt>()  reads the ldt into the memory pointed to "
1680 "by I<ptr>.  The number of bytes read is the smaller of I<bytecount> and the "
1681 "actual size of the ldt."
1682 msgstr ""
1683 "I<func> が 0 ならば、 B<modify_ldt>()  は ldt を I<ptr> が指しているメモリに"
1684 "読み込む。 読み込むバイト数は実際の ldt のサイズか I<bytecount> より小さい方"
1685 "である。"
1686
1687 #.  FIXME ? say something about func == 2 and func == 0x11?
1688 #.  In Linux 2.4, func == 2 returned "the default ldt"
1689 #.  In Linux 2.6, func == 2 is a nop, returning a zeroed out structure.
1690 #.  Linux 2.4 and 2.6 implement an operation for func == 0x11
1691 #. type: Plain text
1692 #: build/C/man2/modify_ldt.2:69
1693 msgid ""
1694 "When I<func> is 1, B<modify_ldt>()  modifies one ldt entry.  I<ptr> points "
1695 "to a I<user_desc> structure and I<bytecount> must equal the size of this "
1696 "structure."
1697 msgstr ""
1698 "I<func> が 1 ならば、 B<modify_ldt>()  は ldt エントリの一つを変更する。 "
1699 "I<ptr> は I<user_desc> 構造体を指し、 I<bytecount> はこの構造体の大きさに等し"
1700 "くなければならない。"
1701
1702 #. type: Plain text
1703 #: build/C/man2/modify_ldt.2:73
1704 msgid "The I<user_desc> structure is defined in I<E<lt>asm/ldt.hE<gt>> as:"
1705 msgstr ""
1706 "I<user_desc> 構造体は I<E<lt>asm/ldt.hE<gt>> で以下のように定義されている:"
1707
1708 #. type: Plain text
1709 #: build/C/man2/modify_ldt.2:87
1710 #, no-wrap
1711 msgid ""
1712 "struct user_desc {\n"
1713 "    unsigned int  entry_number;\n"
1714 "    unsigned long base_addr;\n"
1715 "    unsigned int  limit;\n"
1716 "    unsigned int  seg_32bit:1;\n"
1717 "    unsigned int  contents:2;\n"
1718 "    unsigned int  read_exec_only:1;\n"
1719 "    unsigned int  limit_in_pages:1;\n"
1720 "    unsigned int  seg_not_present:1;\n"
1721 "    unsigned int  useable:1;\n"
1722 "};\n"
1723 msgstr ""
1724 "struct user_desc {\n"
1725 "    unsigned int  entry_number;\n"
1726 "    unsigned long base_addr;\n"
1727 "    unsigned int  limit;\n"
1728 "    unsigned int  seg_32bit:1;\n"
1729 "    unsigned int  contents:2;\n"
1730 "    unsigned int  read_exec_only:1;\n"
1731 "    unsigned int  limit_in_pages:1;\n"
1732 "    unsigned int  seg_not_present:1;\n"
1733 "    unsigned int  useable:1;\n"
1734 "};\n"
1735
1736 #.  .PP
1737 #.  The ldt is specific for the calling process. Any attempts to change
1738 #.  the ldt to include the address space of another process or the kernel
1739 #.  will result in a segmentation violation when trying to access the memory
1740 #.  outside of the process address space. The memory protection is enforced
1741 #.  at the paging layer.
1742 #. type: Plain text
1743 #: build/C/man2/modify_ldt.2:98
1744 msgid "In Linux 2.4 and earlier, this structure was named I<modify_ldt_ldt_s>."
1745 msgstr ""
1746 "Linux 2.4 以前では、この構造体は I<modify_ldt_ldt_s> という名前であった。"
1747
1748 #. type: Plain text
1749 #: build/C/man2/modify_ldt.2:108
1750 msgid ""
1751 "On success, B<modify_ldt>()  returns either the actual number of bytes read "
1752 "(for reading)  or 0 (for writing).  On failure, B<modify_ldt>()  returns -1 "
1753 "and sets I<errno> to indicate the error."
1754 msgstr ""
1755 "成功した場合は、 B<modify_ldt>()  は (読み込みの場合は) 実際に読み込んだバイ"
1756 "ト数、 または (書き込みの場合は) 0 を返す。 失敗した場合は B<modify_ldt>()  "
1757 "は -1 を返し、 I<errno> をエラーを示す値に設定する。"
1758
1759 #. type: Plain text
1760 #: build/C/man2/modify_ldt.2:113
1761 msgid "I<ptr> points outside the address space."
1762 msgstr "I<ptr> がアドレス空間の外を指している。"
1763
1764 #. type: Plain text
1765 #: build/C/man2/modify_ldt.2:126
1766 msgid ""
1767 "I<ptr> is 0, or I<func> is 1 and I<bytecount> is not equal to the size of "
1768 "the structure I<modify_ldt_ldt_s>, or I<func> is 1 and the new ldt entry has "
1769 "invalid values."
1770 msgstr ""
1771 "I<ptr> が 0 である、 または I<func> が 1 で I<bytecount> が "
1772 "I<modify_ldt_ldt_s> 構造体のサイズと等しくないか、 I<func> が 1 で新しい ldt "
1773 "エントリが無効な値である。"
1774
1775 #. type: Plain text
1776 #: build/C/man2/modify_ldt.2:130
1777 msgid "I<func> is neither 0 nor 1."
1778 msgstr "I<func> が 0 でも 1 でもない。"
1779
1780 #. type: Plain text
1781 #: build/C/man2/modify_ldt.2:133
1782 msgid ""
1783 "This call is Linux-specific and should not be used in programs intended to "
1784 "be portable."
1785 msgstr ""
1786 "このコールは Linux 特有であり、移植を意図したプログラムでは 使用してはいけな"
1787 "い。"
1788
1789 #. type: Plain text
1790 #: build/C/man2/modify_ldt.2:136 build/C/man2/perfmonctl.2:205
1791 #: build/C/man2/pivot_root.2:134
1792 msgid ""
1793 "Glibc does not provide a wrapper for this system call; call it using "
1794 "B<syscall>(2)."
1795 msgstr ""
1796 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
1797 "(2)  を使って呼び出すこと。"
1798
1799 #. type: Plain text
1800 #: build/C/man2/modify_ldt.2:138
1801 msgid "B<vm86>(2)"
1802 msgstr "B<vm86>(2)"
1803
1804 #. type: TH
1805 #: build/C/man2/nfsservctl.2:8
1806 #, no-wrap
1807 msgid "NFSSERVCTL"
1808 msgstr "NFSSERVCTL"
1809
1810 #. type: TH
1811 #: build/C/man2/nfsservctl.2:8
1812 #, no-wrap
1813 msgid "2013-09-17"
1814 msgstr "2013-09-17"
1815
1816 #. type: Plain text
1817 #: build/C/man2/nfsservctl.2:11
1818 msgid "nfsservctl - syscall interface to kernel nfs daemon"
1819 msgstr "nfsservctl - カーネル nfs デーモンのためのインターフェース"
1820
1821 #. type: Plain text
1822 #: build/C/man2/nfsservctl.2:14
1823 #, no-wrap
1824 msgid "B<#include E<lt>linux/nfsd/syscall.hE<gt>>\n"
1825 msgstr "B<#include E<lt>linux/nfsd/syscall.hE<gt>>\n"
1826
1827 #. type: Plain text
1828 #: build/C/man2/nfsservctl.2:17
1829 #, no-wrap
1830 msgid ""
1831 "B<long nfsservctl(int >I<cmd>B<, struct nfsctl_arg *>I<argp>B<,>\n"
1832 "B<                union nfsctl_res *>I<resp>B<);>\n"
1833 msgstr ""
1834 "B<long nfsservctl(int >I<cmd>B<, struct nfsctl_arg *>I<argp>B<,>\n"
1835 "B<                union nfsctl_res *>I<resp>B<);>\n"
1836
1837 #. type: Plain text
1838 #: build/C/man2/nfsservctl.2:21
1839 msgid "I<Note>: Since Linux 3.1, this system call no longer exists."
1840 msgstr "I<注意>: Linux 3.1 以降では、このシステムコールはもはや存在しない。"
1841
1842 #. type: Plain text
1843 #: build/C/man2/nfsservctl.2:35
1844 #, no-wrap
1845 msgid ""
1846 "/*\n"
1847 " * These are the commands understood by nfsctl().\n"
1848 " */\n"
1849 "#define NFSCTL_SVC          0    /* This is a server process. */\n"
1850 "#define NFSCTL_ADDCLIENT    1    /* Add an NFS client. */\n"
1851 "#define NFSCTL_DELCLIENT    2    /* Remove an NFS client. */\n"
1852 "#define NFSCTL_EXPORT       3    /* Export a filesystem. */\n"
1853 "#define NFSCTL_UNEXPORT     4    /* Unexport a filesystem. */\n"
1854 "#define NFSCTL_UGIDUPDATE   5    /* Update a client's UID/GID map\n"
1855 "                                    (only in Linux 2.4.x and earlier). */\n"
1856 "#define NFSCTL_GETFH        6    /* Get a file handle (used by mountd)\n"
1857 "                                    (only in Linux 2.4.x and earlier). */\n"
1858 msgstr ""
1859 "/*\n"
1860 " * nfsctl() によって理解されるコマンド\n"
1861 " */\n"
1862 "#define NFSCTL_SVC          0    /* サーバープロセス */\n"
1863 "#define NFSCTL_ADDCLIENT    1    /* NFS クライアントを追加 */\n"
1864 "#define NFSCTL_DELCLIENT    2    /* NFS クライアンドを削除 */\n"
1865 "#define NFSCTL_EXPORT       3    /* ファイルシステムのエクスポート */\n"
1866 "#define NFSCTL_UNEXPORT     4    /* ファイルシステムのアンエクスポート */\n"
1867 "#define NFSCTL_UGIDUPDATE   5    /* UID/GID マップの更新\n"
1868 "                                    (Linux 2.4.x とそれ以前のみ) */\n"
1869 "#define NFSCTL_GETFH        6    /* (mountd で使用される) fh の取得\n"
1870 "                                    (Linux 2.4.x とそれ以前のみ) */\n"
1871
1872 #. type: Plain text
1873 #: build/C/man2/nfsservctl.2:47
1874 #, no-wrap
1875 msgid ""
1876 "struct nfsctl_arg {\n"
1877 "    int                       ca_version;     /* safeguard */\n"
1878 "    union {\n"
1879 "        struct nfsctl_svc     u_svc;\n"
1880 "        struct nfsctl_client  u_client;\n"
1881 "        struct nfsctl_export  u_export;\n"
1882 "        struct nfsctl_uidmap  u_umap;\n"
1883 "        struct nfsctl_fhparm  u_getfh;\n"
1884 "        unsigned int          u_debug;\n"
1885 "    } u;\n"
1886 "}\n"
1887 msgstr ""
1888 "struct nfsctl_arg {\n"
1889 "    int                       ca_version;     /* safeguard */\n"
1890 "    union {\n"
1891 "        struct nfsctl_svc     u_svc;\n"
1892 "        struct nfsctl_client  u_client;\n"
1893 "        struct nfsctl_export  u_export;\n"
1894 "        struct nfsctl_uidmap  u_umap;\n"
1895 "        struct nfsctl_fhparm  u_getfh;\n"
1896 "        unsigned int          u_debug;\n"
1897 "    } u;\n"
1898 "}\n"
1899
1900 #. type: Plain text
1901 #: build/C/man2/nfsservctl.2:52
1902 #, no-wrap
1903 msgid ""
1904 "union nfsctl_res {\n"
1905 "        struct knfs_fh          cr_getfh;\n"
1906 "        unsigned int            cr_debug;\n"
1907 "};\n"
1908 msgstr ""
1909 "union nfsctl_res {\n"
1910 "        struct knfs_fh          cr_getfh;\n"
1911 "        unsigned int            cr_debug;\n"
1912 "};\n"
1913
1914 #. type: Plain text
1915 #: build/C/man2/nfsservctl.2:58 build/C/man2/pivot_root.2:105
1916 #: build/C/man2/vm86.2:59
1917 msgid ""
1918 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1919 "appropriately."
1920 msgstr ""
1921 "成功した場合は 0 が返される。エラーの場合は -1 が返され、 I<errno> が適切に設"
1922 "定される。"
1923
1924 #. type: Plain text
1925 #: build/C/man2/nfsservctl.2:60
1926 msgid "This call is Linux-specific."
1927 msgstr "このコールは Linux 特有である。"
1928
1929 #. type: TH
1930 #: build/C/man2/outb.2:26
1931 #, no-wrap
1932 msgid "OUTB"
1933 msgstr "OUTB"
1934
1935 #. type: TH
1936 #: build/C/man2/outb.2:26
1937 #, no-wrap
1938 msgid "2012-12-31"
1939 msgstr "2012-12-31"
1940
1941 #. type: Plain text
1942 #: build/C/man2/outb.2:31
1943 msgid ""
1944 "outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, "
1945 "outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - port I/O"
1946 msgstr ""
1947 "outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, "
1948 "outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ポート入出力"
1949
1950 #. type: Plain text
1951 #: build/C/man2/outb.2:34
1952 #, no-wrap
1953 msgid "B<#include E<lt>sys/io.hE<gt>>\n"
1954 msgstr "B<#include E<lt>sys/io.hE<gt>>\n"
1955
1956 #. type: Plain text
1957 #: build/C/man2/outb.2:41
1958 #, no-wrap
1959 msgid ""
1960 "B<unsigned char inb(unsigned short int >I<port>B<);>\n"
1961 "B<unsigned char inb_p(unsigned short int >I<port>B<);>\n"
1962 "B<unsigned short int inw(unsigned short int >I<port>B<);>\n"
1963 "B<unsigned short int inw_p(unsigned short int >I<port>B<);>\n"
1964 "B<unsigned int inl(unsigned short int >I<port>B<);>\n"
1965 "B<unsigned int inl_p(unsigned short int >I<port>B<);>\n"
1966 msgstr ""
1967 "B<unsigned char inb(unsigned short int >I<port>B<);>\n"
1968 "B<unsigned char inb_p(unsigned short int >I<port>B<);>\n"
1969 "B<unsigned short int inw(unsigned short int >I<port>B<);>\n"
1970 "B<unsigned short int inw_p(unsigned short int >I<port>B<);>\n"
1971 "B<unsigned int inl(unsigned short int >I<port>B<);>\n"
1972 "B<unsigned int inl_p(unsigned short int >I<port>B<);>\n"
1973
1974 #. type: Plain text
1975 #: build/C/man2/outb.2:48
1976 #, no-wrap
1977 msgid ""
1978 "B<void outb(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1979 "B<void outb_p(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1980 "B<void outw(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1981 "B<void outw_p(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1982 "B<void outl(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1983 "B<void outl_p(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1984 msgstr ""
1985 "B<void outb(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1986 "B<void outb_p(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1987 "B<void outw(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1988 "B<void outw_p(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1989 "B<void outl(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1990 "B<void outl_p(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1991
1992 #. type: Plain text
1993 #: build/C/man2/outb.2:61
1994 #, no-wrap
1995 msgid ""
1996 "B<void insb(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1997 "B<           unsigned long int >I<count>B<);>\n"
1998 "B<void insw(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1999 "B<           unsigned long int >I<count>B<);>\n"
2000 "B<void insl(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2001 "B<           unsigned long int >I<count>B<);>\n"
2002 "B<void outsb(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2003 "B<           unsigned long int >I<count>B<);>\n"
2004 "B<void outsw(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2005 "B<           unsigned long int >I<count>B<);>\n"
2006 "B<void outsl(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2007 "B<           unsigned long int >I<count>B<);>\n"
2008 msgstr ""
2009 "B<void insb(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2010 "B<           unsigned long int >I<count>B<);>\n"
2011 "B<void insw(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2012 "B<           unsigned long int >I<count>B<);>\n"
2013 "B<void insl(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2014 "B<           unsigned long int >I<count>B<);>\n"
2015 "B<void outsb(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2016 "B<           unsigned long int >I<count>B<);>\n"
2017 "B<void outsw(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2018 "B<           unsigned long int >I<count>B<);>\n"
2019 "B<void outsl(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2020 "B<           unsigned long int >I<count>B<);>\n"
2021
2022 #. type: Plain text
2023 #: build/C/man2/outb.2:67
2024 msgid ""
2025 "This family of functions is used to do low-level port input and output.  The "
2026 "out* functions do port output, the in* functions do port input; the b-suffix "
2027 "functions are byte-width and the w-suffix functions word-width; the _p-"
2028 "suffix functions pause until the I/O completes."
2029 msgstr ""
2030 "この一連の関数はポートに対する低レベルの入出力に使用する。 out* 関数はポート"
2031 "出力、in* 関数はポート入力を行う。 語尾に b がついている関数はバイト単位、w "
2032 "がついている関数はワード単位である。 _p がついている関数は I/O が終了するまで"
2033 "待つ。"
2034
2035 #.  , given the following information
2036 #.  in addition to that given in
2037 #.  .BR outb (9).
2038 #. type: Plain text
2039 #: build/C/man2/outb.2:73
2040 msgid ""
2041 "They are primarily designed for internal kernel use, but can be used from "
2042 "user space."
2043 msgstr ""
2044 "これらの関数はもともとカーネル内部での使用を想定して設計されているが、 ユー"
2045 "ザー空間からでも使用できる。"
2046
2047 #. type: Plain text
2048 #: build/C/man2/outb.2:78
2049 msgid ""
2050 "You must compile with B<-O> or B<-O2> or similar.  The functions are defined "
2051 "as inline macros, and will not be substituted in without optimization "
2052 "enabled, causing unresolved references at link time."
2053 msgstr ""
2054 "B<-O> や B<-O2> などを指定してコンパイルしなければならない。 これらの関数はイ"
2055 "ンライン・マクロとして定義されており、 最適化を行わないと関数の展開が行われ"
2056 "ず、 リンクの時に「解決できない参照(unresolved reference)」が発生する。"
2057
2058 #. type: Plain text
2059 #: build/C/man2/outb.2:87
2060 msgid ""
2061 "You use B<ioperm>(2)  or alternatively B<iopl>(2)  to tell the kernel to "
2062 "allow the user space application to access the I/O ports in question.  "
2063 "Failure to do this will cause the application to receive a segmentation "
2064 "fault."
2065 msgstr ""
2066 "ユーザー空間のアプリケーションが I/O ポートにアクセスすることを カーネルに教"
2067 "えるために B<ioperm>(2)  もしくは B<iopl>(2)  を使用すること。これを忘れると"
2068 "アプリケーションはセグメンテーション違反 (segmentation fault) を受けとること"
2069 "になる。"
2070
2071 #. type: Plain text
2072 #: build/C/man2/outb.2:96
2073 msgid ""
2074 "B<outb>()  and friends are hardware-specific.  The I<value> argument is "
2075 "passed first and the I<port> argument is passed second, which is the "
2076 "opposite order from most DOS implementations."
2077 msgstr ""
2078 "B<outb>()  とその仲間はハードウェア特有である。 I<value> 引数が最初に渡さ"
2079 "れ、 I<port> 引数が二番目に渡される。 この順序はほとんどの DOS での実装とは逆"
2080 "である。"
2081
2082 #. type: Plain text
2083 #: build/C/man2/outb.2:99
2084 msgid "B<ioperm>(2), B<iopl>(2)"
2085 msgstr "B<ioperm>(2), B<iopl>(2)"
2086
2087 #. type: TH
2088 #: build/C/man2/pciconfig_read.2:8
2089 #, no-wrap
2090 msgid "PCICONFIG_READ"
2091 msgstr "PCICONFIG_READ"
2092
2093 #. type: TH
2094 #: build/C/man2/pciconfig_read.2:8
2095 #, no-wrap
2096 msgid "2003-07-14"
2097 msgstr "2003-07-14"
2098
2099 #. type: Plain text
2100 #: build/C/man2/pciconfig_read.2:11
2101 msgid ""
2102 "pciconfig_read, pciconfig_write, pciconfig_iobase - pci device information "
2103 "handling"
2104 msgstr ""
2105 "pciconfig_read, pciconfig_write, pciconfig_iobase - pci デバイス情報を扱う"
2106
2107 #. type: Plain text
2108 #: build/C/man2/pciconfig_read.2:14
2109 #, no-wrap
2110 msgid "B<#include E<lt>pci.hE<gt>>\n"
2111 msgstr "B<#include E<lt>pci.hE<gt>>\n"
2112
2113 #. type: Plain text
2114 #: build/C/man2/pciconfig_read.2:21
2115 #, no-wrap
2116 msgid ""
2117 "B<int pciconfig_read(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2118 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2119 "B<int pciconfig_write(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2120 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2121 "B<int pciconfig_iobase(long >I<which>B<, unsigned long >I<bus>B<,>\n"
2122 "B<          unsigned long >I<devfn>B<);>\n"
2123 msgstr ""
2124 "B<int pciconfig_read(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2125 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2126 "B<int pciconfig_write(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2127 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2128 "B<int pciconfig_iobase(long >I<which>B<, unsigned long >I<bus>B<,>\n"
2129 "B<          unsigned long >I<devfn>B<);>\n"
2130
2131 #. type: Plain text
2132 #: build/C/man2/pciconfig_read.2:27
2133 msgid ""
2134 "Most of the interaction with PCI devices is already handled by the kernel "
2135 "PCI layer, and thus these calls should not normally need to be accessed from "
2136 "user space."
2137 msgstr ""
2138 "PCI デバイスとのやり取り (interaction) は カーネル PCI レイヤですでに処理され"
2139 "ているので、 通常はこららの関数をユーザ空間からアクセスする必要はない。"
2140
2141 #. type: TP
2142 #: build/C/man2/pciconfig_read.2:27 build/C/man2/pciconfig_read.2:51
2143 #, no-wrap
2144 msgid "B<pciconfig_read>()"
2145 msgstr "B<pciconfig_read>()"
2146
2147 #. type: Plain text
2148 #: build/C/man2/pciconfig_read.2:36
2149 msgid "Reads to I<buf> from device I<dev> at offset I<off> value."
2150 msgstr "デバイス I<dev> のオフセット I<off> の値を I<buf> に読み込む。"
2151
2152 #. type: TP
2153 #: build/C/man2/pciconfig_read.2:36 build/C/man2/pciconfig_read.2:57
2154 #, no-wrap
2155 msgid "B<pciconfig_write>()"
2156 msgstr "B<pciconfig_write>()"
2157
2158 #. type: Plain text
2159 #: build/C/man2/pciconfig_read.2:45
2160 msgid "Writes from I<buf> to device I<dev> at offset I<off> value."
2161 msgstr "デバイス I<dev> のオフセット I<off> に I<buf> の値を書き込む。"
2162
2163 #. type: TP
2164 #: build/C/man2/pciconfig_read.2:45 build/C/man2/pciconfig_read.2:63
2165 #, no-wrap
2166 msgid "B<pciconfig_iobase>()"
2167 msgstr "B<pciconfig_iobase>()"
2168
2169 #. type: Plain text
2170 #: build/C/man2/pciconfig_read.2:50
2171 msgid ""
2172 "You pass it a bus/devfn pair and get a physical address for either the "
2173 "memory offset (for things like prep, this is 0xc0000000), the IO base for "
2174 "PIO cycles, or the ISA holes if any."
2175 msgstr ""
2176 "bus/devfn ペアをこの関数に渡し、 メモリオフセット (prep のようなものでは、こ"
2177 "の値は 0xc0000000 である) と PIO サイクルの IO ベースの物理アドレスを取得す"
2178 "る。 また、もしあるならば ISA hole の物理アドレスを取得する。"
2179
2180 #. type: Plain text
2181 #: build/C/man2/pciconfig_read.2:57 build/C/man2/pciconfig_read.2:63
2182 msgid ""
2183 "On success zero is returned.  On error, -1 is returned and I<errno> is set "
2184 "appropriately."
2185 msgstr ""
2186 "成功した場合、0 が返される。 エラーの場合、-1 が返され、 I<errno> が適切に設"
2187 "定される。"
2188
2189 #. type: Plain text
2190 #: build/C/man2/pciconfig_read.2:77
2191 msgid ""
2192 "Returns information on locations of various I/O regions in physical memory "
2193 "according to the I<which> value.  Values for I<which> are: "
2194 "B<IOBASE_BRIDGE_NUMBER>, B<IOBASE_MEMORY>, B<IOBASE_IO>, B<IOBASE_ISA_IO>, "
2195 "B<IOBASE_ISA_MEM>."
2196 msgstr ""
2197 "I<which> の値に基づいて、物理メモリ内の様々な I/O 領域の位置情報が返される。 "
2198 "I<which> の値は、 B<IOBASE_BRIDGE_NUMBER>, B<IOBASE_MEMORY>, B<IOBASE_IO>, "
2199 "B<IOBASE_ISA_IO>, B<IOBASE_ISA_MEM> である。"
2200
2201 #. type: Plain text
2202 #: build/C/man2/pciconfig_read.2:84
2203 msgid "I<len> value is invalid.  This does not apply to B<pciconfig_iobase>()."
2204 msgstr ""
2205 "I<len> の値が無効である。 このエラーは B<pciconfig_iobase>()  には適用されな"
2206 "い。"
2207
2208 #. type: TP
2209 #: build/C/man2/pciconfig_read.2:84 build/C/man2/ptrace.2:1886
2210 #: build/C/man2/sendfile.2:134
2211 #, no-wrap
2212 msgid "B<EIO>"
2213 msgstr "B<EIO>"
2214
2215 #. type: Plain text
2216 #: build/C/man2/pciconfig_read.2:87
2217 msgid "I/O error."
2218 msgstr "I/O エラー。"
2219
2220 #. type: TP
2221 #: build/C/man2/pciconfig_read.2:87
2222 #, no-wrap
2223 msgid "B<ENODEV>"
2224 msgstr "B<ENODEV>"
2225
2226 #. type: Plain text
2227 #: build/C/man2/pciconfig_read.2:93
2228 msgid ""
2229 "For B<pciconfig_iobase>(), \"hose\" value is NULL.  For the other calls, "
2230 "could not find a slot."
2231 msgstr ""
2232 "B<pciconfig_iobase>()  の場合、でホース (hose) の値が NULL である。 他の呼び"
2233 "出しの場合、スロット (slot) が見つからない。"
2234
2235 #. type: Plain text
2236 #: build/C/man2/pciconfig_read.2:98
2237 msgid "The system has not implemented these calls (B<CONFIG_PCI> not defined)."
2238 msgstr ""
2239 "このシステムはこれらの呼び出しを実装していない。 (B<CONFIG_PCI> が定義されて"
2240 "いない)。"
2241
2242 #. type: TP
2243 #: build/C/man2/pciconfig_read.2:98
2244 #, no-wrap
2245 msgid "B<EOPNOTSUPP>"
2246 msgstr "B<EOPNOTSUPP>"
2247
2248 #. type: Plain text
2249 #: build/C/man2/pciconfig_read.2:105
2250 msgid ""
2251 "This return value is valid only for B<pciconfig_iobase>().  It is returned "
2252 "if the value for I<which> is invalid."
2253 msgstr ""
2254 "この返り値は B<pciconfig_iobase>()  でのみ有効である。 このエラーは I<which> "
2255 "の値が無効であるときに返される。"
2256
2257 #. type: Plain text
2258 #: build/C/man2/pciconfig_read.2:112
2259 msgid ""
2260 "User does not have the B<CAP_SYS_ADMIN> capability.  This does not apply to "
2261 "B<pciconfig_iobase>()."
2262 msgstr ""
2263 "ユーザが B<CAP_SYS_ADMIN> 権限を持っていない。 このエラーは "
2264 "B<pciconfig_iobase>()  には適用されない。"
2265
2266 #. type: Plain text
2267 #: build/C/man2/pciconfig_read.2:114
2268 msgid "These calls are Linux-specific, available since Linux 2.0.26/2.1.11."
2269 msgstr ""
2270 "これらの呼び出しは Linux 特有のものであり、 Linux 2.0.26/2.1.11 から使用可能"
2271 "である。"
2272
2273 #. type: Plain text
2274 #: build/C/man2/pciconfig_read.2:116
2275 msgid "B<capabilities>(7)"
2276 msgstr "B<capabilities>(7)"
2277
2278 #. type: TH
2279 #: build/C/man2/perf_event_open.2:27
2280 #, no-wrap
2281 msgid "PERF_EVENT_OPEN"
2282 msgstr "PERF_EVENT_OPEN"
2283
2284 #. type: TH
2285 #: build/C/man2/perf_event_open.2:27
2286 #, fuzzy, no-wrap
2287 #| msgid "2003-01-01"
2288 msgid "2014-01-23"
2289 msgstr "2003-01-01"
2290
2291 #. type: Plain text
2292 #: build/C/man2/perf_event_open.2:30
2293 msgid "perf_event_open - set up performance monitoring"
2294 msgstr ""
2295
2296 #. type: Plain text
2297 #: build/C/man2/perf_event_open.2:34
2298 #, no-wrap
2299 msgid ""
2300 "B<#include E<lt>linux/perf_event.hE<gt>>\n"
2301 "B<#include E<lt>linux/hw_breakpoint.hE<gt>>\n"
2302 msgstr ""
2303 "B<#include E<lt>linux/perf_event.hE<gt>>\n"
2304 "B<#include E<lt>linux/hw_breakpoint.hE<gt>>\n"
2305
2306 #. type: Plain text
2307 #: build/C/man2/perf_event_open.2:38
2308 #, no-wrap
2309 msgid ""
2310 "B<int perf_event_open(struct perf_event_attr *>I<attr>B<,>\n"
2311 "B<                    pid_t >I<pid>B<, int >I<cpu>B<, int >I<group_fd>B<,>\n"
2312 "B<                    unsigned long >I<flags>B<);>\n"
2313 msgstr ""
2314 "B<int perf_event_open(struct perf_event_attr *>I<attr>B<,>\n"
2315 "B<                    pid_t >I<pid>B<, int >I<cpu>B<, int >I<group_fd>B<,>\n"
2316 "B<                    unsigned long >I<flags>B<);>\n"
2317
2318 #. type: Plain text
2319 #: build/C/man2/perf_event_open.2:47
2320 msgid ""
2321 "Given a list of parameters, B<perf_event_open>()  returns a file descriptor, "
2322 "for use in subsequent system calls (B<read>(2), B<mmap>(2), B<prctl>(2), "
2323 "B<fcntl>(2), etc.)."
2324 msgstr ""
2325
2326 #. type: Plain text
2327 #: build/C/man2/perf_event_open.2:55
2328 msgid ""
2329 "A call to B<perf_event_open>()  creates a file descriptor that allows "
2330 "measuring performance information.  Each file descriptor corresponds to one "
2331 "event that is measured; these can be grouped together to measure multiple "
2332 "events simultaneously."
2333 msgstr ""
2334
2335 #. type: Plain text
2336 #: build/C/man2/perf_event_open.2:62
2337 msgid ""
2338 "Events can be enabled and disabled in two ways: via B<ioctl>(2)  and via "
2339 "B<prctl>(2).  When an event is disabled it does not count or generate "
2340 "overflows but does continue to exist and maintain its count value."
2341 msgstr ""
2342
2343 #. type: Plain text
2344 #: build/C/man2/perf_event_open.2:76
2345 msgid ""
2346 "Events come in two flavors: counting and sampled.  A I<counting> event is "
2347 "one that is used for counting the aggregate number of events that occur.  In "
2348 "general, counting event results are gathered with a B<read>(2)  call.  A "
2349 "I<sampling> event periodically writes measurements to a buffer that can then "
2350 "be accessed via B<mmap>(2)."
2351 msgstr ""
2352
2353 #. type: SS
2354 #: build/C/man2/perf_event_open.2:76
2355 #, no-wrap
2356 msgid "Arguments"
2357 msgstr ""
2358
2359 #. type: Plain text
2360 #: build/C/man2/perf_event_open.2:83
2361 msgid ""
2362 "The I<pid> and I<cpu> arguments allow specifying which process and CPU to "
2363 "monitor:"
2364 msgstr ""
2365
2366 #. type: TP
2367 #: build/C/man2/perf_event_open.2:83
2368 #, no-wrap
2369 msgid "B<pid == 0> and B<cpu == -1>"
2370 msgstr ""
2371
2372 #. type: Plain text
2373 #: build/C/man2/perf_event_open.2:86
2374 msgid "This measures the current process/thread on any CPU."
2375 msgstr ""
2376
2377 #. type: TP
2378 #: build/C/man2/perf_event_open.2:86
2379 #, no-wrap
2380 msgid "B<pid == 0> and B<cpu E<gt>= 0>"
2381 msgstr ""
2382
2383 #. type: Plain text
2384 #: build/C/man2/perf_event_open.2:90
2385 msgid ""
2386 "This measures the current process/thread only when running on the specified "
2387 "CPU."
2388 msgstr ""
2389
2390 #. type: TP
2391 #: build/C/man2/perf_event_open.2:90
2392 #, no-wrap
2393 msgid "B<pid E<gt> 0> and B<cpu == -1>"
2394 msgstr ""
2395
2396 #. type: Plain text
2397 #: build/C/man2/perf_event_open.2:93
2398 msgid "This measures the specified process/thread on any CPU."
2399 msgstr ""
2400
2401 #. type: TP
2402 #: build/C/man2/perf_event_open.2:93
2403 #, no-wrap
2404 msgid "B<pid E<gt> 0> and B<cpu E<gt>= 0>"
2405 msgstr ""
2406
2407 #. type: Plain text
2408 #: build/C/man2/perf_event_open.2:97
2409 msgid ""
2410 "This measures the specified process/thread only when running on the "
2411 "specified CPU."
2412 msgstr ""
2413
2414 #. type: TP
2415 #: build/C/man2/perf_event_open.2:97
2416 #, no-wrap
2417 msgid "B<pid == -1> and B<cpu E<gt>= 0>"
2418 msgstr ""
2419
2420 #. type: Plain text
2421 #: build/C/man2/perf_event_open.2:105
2422 msgid ""
2423 "This measures all processes/threads on the specified CPU.  Measurements such "
2424 "as this require the B<CAP_SYS_ADMIN> capability or a I</proc/sys/kernel/"
2425 "perf_event_paranoid> value of less than 1."
2426 msgstr ""
2427
2428 #. type: TP
2429 #: build/C/man2/perf_event_open.2:105
2430 #, no-wrap
2431 msgid "B<pid==-1> and B<cpu==-1>"
2432 msgstr ""
2433
2434 #. type: Plain text
2435 #: build/C/man2/perf_event_open.2:108
2436 msgid "This setting is invalid and will return an error."
2437 msgstr ""
2438
2439 #. type: Plain text
2440 #: build/C/man2/perf_event_open.2:130
2441 msgid ""
2442 "The I<group_fd> argument allows event groups to be created.  An event group "
2443 "has one event which is the group leader.  The leader is created first, with "
2444 "I<group_fd> = -1.  The rest of the group members are created with subsequent "
2445 "B<perf_event_open>()  calls with I<group_fd> being set to the fd of the "
2446 "group leader.  (A single event on its own is created with I<group_fd> = -1 "
2447 "and is considered to be a group with only 1 member.)  An event group is "
2448 "scheduled onto the CPU as a unit: it will be put onto the CPU only if all of "
2449 "the events in the group can be put onto the CPU.  This means that the values "
2450 "of the member events can be meaningfully compared, added, divided (to get "
2451 "ratios), and so on, with each other, since they have counted events for the "
2452 "same set of executed instructions."
2453 msgstr ""
2454
2455 #. type: Plain text
2456 #: build/C/man2/perf_event_open.2:134
2457 msgid ""
2458 "The I<flags> argument is formed by ORing together zero or more of the "
2459 "following values:"
2460 msgstr ""
2461 "I<flags> 引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。"
2462
2463 #. type: TP
2464 #: build/C/man2/perf_event_open.2:134
2465 #, no-wrap
2466 msgid "B<PERF_FLAG_FD_NO_GROUP>"
2467 msgstr ""
2468
2469 #.  FIXME The following sentence is unclear
2470 #.  FIXME So, why is it useful?
2471 #. type: Plain text
2472 #: build/C/man2/perf_event_open.2:141
2473 msgid ""
2474 "This flag allows creating an event as part of an event group but having no "
2475 "group leader.  It is unclear why this is useful."
2476 msgstr ""
2477
2478 #. type: TP
2479 #: build/C/man2/perf_event_open.2:141
2480 #, no-wrap
2481 msgid "B<PERF_FLAG_FD_OUTPUT>"
2482 msgstr ""
2483
2484 #. type: Plain text
2485 #: build/C/man2/perf_event_open.2:144
2486 msgid "This flag reroutes the output from an event to the group leader."
2487 msgstr ""
2488
2489 #. type: TP
2490 #: build/C/man2/perf_event_open.2:144
2491 #, fuzzy, no-wrap
2492 #| msgid "B<PERF_TYPE_BREAKPOINT> (Since Linux 2.6.33)"
2493 msgid "B<PERF_FLAG_PID_CGROUP> (since Linux 2.6.39)."
2494 msgstr "B<PERF_TYPE_BREAKPOINT> (Linux 2.6.33 以降)"
2495
2496 #. type: Plain text
2497 #: build/C/man2/perf_event_open.2:167
2498 msgid ""
2499 "This flag activates per-container system-wide monitoring.  A container is an "
2500 "abstraction that isolates a set of resources for finer grain control (CPUs, "
2501 "memory, etc.).  In this mode, the event is measured only if the thread "
2502 "running on the monitored CPU belongs to the designated container (cgroup).  "
2503 "The cgroup is identified by passing a file descriptor opened on its "
2504 "directory in the cgroupfs filesystem.  For instance, if the cgroup to "
2505 "monitor is called I<test>, then a file descriptor opened on I</dev/cgroup/"
2506 "test> (assuming cgroupfs is mounted on I</dev/cgroup>)  must be passed as "
2507 "the I<pid> parameter.  cgroup monitoring is available only for system-wide "
2508 "events and may therefore require extra permissions."
2509 msgstr ""
2510
2511 #. type: Plain text
2512 #: build/C/man2/perf_event_open.2:172
2513 msgid ""
2514 "The I<perf_event_attr> structure provides detailed configuration information "
2515 "for the event being created."
2516 msgstr ""
2517
2518 #. type: Plain text
2519 #: build/C/man2/perf_event_open.2:179
2520 #, no-wrap
2521 msgid ""
2522 "struct perf_event_attr {\n"
2523 "    __u32     type;         /* Type of event */\n"
2524 "    __u32     size;         /* Size of attribute structure */\n"
2525 "    __u64     config;       /* Type-specific configuration */\n"
2526 msgstr ""
2527
2528 #. type: Plain text
2529 #: build/C/man2/perf_event_open.2:184
2530 #, no-wrap
2531 msgid ""
2532 "    union {\n"
2533 "        __u64 sample_period;    /* Period of sampling */\n"
2534 "        __u64 sample_freq;      /* Frequency of sampling */\n"
2535 "    };\n"
2536 msgstr ""
2537
2538 #. type: Plain text
2539 #: build/C/man2/perf_event_open.2:187
2540 #, no-wrap
2541 msgid ""
2542 "    __u64     sample_type;  /* Specifies values included in sample */\n"
2543 "    __u64     read_format;  /* Specifies values returned in read */\n"
2544 msgstr ""
2545
2546 #. type: Plain text
2547 #: build/C/man2/perf_event_open.2:213
2548 #, no-wrap
2549 msgid ""
2550 "    __u64     disabled       : 1,   /* off by default */\n"
2551 "              inherit        : 1,   /* children inherit it */\n"
2552 "              pinned         : 1,   /* must always be on PMU */\n"
2553 "              exclusive      : 1,   /* only group on PMU */\n"
2554 "              exclude_user   : 1,   /* don't count user */\n"
2555 "              exclude_kernel : 1,   /* don't count kernel */\n"
2556 "              exclude_hv     : 1,   /* don't count hypervisor */\n"
2557 "              exclude_idle   : 1,   /* don't count when idle */\n"
2558 "              mmap           : 1,   /* include mmap data */\n"
2559 "              comm           : 1,   /* include comm data */\n"
2560 "              freq           : 1,   /* use freq, not period */\n"
2561 "              inherit_stat   : 1,   /* per task counts */\n"
2562 "              enable_on_exec : 1,   /* next exec enables */\n"
2563 "              task           : 1,   /* trace fork/exit */\n"
2564 "              watermark      : 1,   /* wakeup_watermark */\n"
2565 "              precise_ip     : 2,   /* skid constraint */\n"
2566 "              mmap_data      : 1,   /* non-exec mmap data */\n"
2567 "              sample_id_all  : 1,   /* sample_type all events */\n"
2568 "              exclude_host   : 1,   /* don't count in host */\n"
2569 "              exclude_guest  : 1,   /* don't count in guest */\n"
2570 "              exclude_callchain_kernel : 1,\n"
2571 "                                    /* exclude kernel callchains */\n"
2572 "              exclude_callchain_user   : 1,\n"
2573 "\t                            /* exclude user callchains */\n"
2574 "              __reserved_1   : 41;\n"
2575 msgstr ""
2576
2577 #. type: Plain text
2578 #: build/C/man2/perf_event_open.2:218
2579 #, no-wrap
2580 msgid ""
2581 "    union {\n"
2582 "        __u32 wakeup_events;    /* wakeup every n events */\n"
2583 "        __u32 wakeup_watermark; /* bytes before wakeup */\n"
2584 "    };\n"
2585 msgstr ""
2586
2587 #. type: Plain text
2588 #: build/C/man2/perf_event_open.2:220
2589 #, no-wrap
2590 msgid "    __u32     bp_type;          /* breakpoint type */\n"
2591 msgstr ""
2592
2593 #. type: Plain text
2594 #: build/C/man2/perf_event_open.2:225
2595 #, no-wrap
2596 msgid ""
2597 "    union {\n"
2598 "        __u64 bp_addr;          /* breakpoint address */\n"
2599 "        __u64 config1;          /* extension of config */\n"
2600 "    };\n"
2601 msgstr ""
2602
2603 #. type: Plain text
2604 #: build/C/man2/perf_event_open.2:235
2605 #, no-wrap
2606 msgid ""
2607 "    union {\n"
2608 "        __u64 bp_len;           /* breakpoint length */\n"
2609 "        __u64 config2;          /* extension of config1 */\n"
2610 "    };\n"
2611 "    __u64   branch_sample_type; /* enum perf_branch_sample_type */\n"
2612 "    __u64   sample_regs_user;   /* user regs to dump on samples */\n"
2613 "    __u32   sample_stack_user;  /* size of stack to dump on\n"
2614 "                                   samples */\n"
2615 "    __u32   __reserved_2;       /* Align to u64 */\n"
2616 msgstr ""
2617
2618 #. type: Plain text
2619 #: build/C/man2/perf_event_open.2:237
2620 #, no-wrap
2621 msgid "};\n"
2622 msgstr ""
2623
2624 #. type: Plain text
2625 #: build/C/man2/perf_event_open.2:243
2626 msgid ""
2627 "The fields of the I<perf_event_attr> structure are described in more detail "
2628 "below:"
2629 msgstr ""
2630
2631 #. type: TP
2632 #: build/C/man2/perf_event_open.2:243 build/C/man2/perf_event_open.2:1535
2633 #, no-wrap
2634 msgid "I<type>"
2635 msgstr ""
2636
2637 #. type: Plain text
2638 #: build/C/man2/perf_event_open.2:247
2639 msgid ""
2640 "This field specifies the overall event type.  It has one of the following "
2641 "values:"
2642 msgstr ""
2643
2644 #. type: TP
2645 #: build/C/man2/perf_event_open.2:248
2646 #, no-wrap
2647 msgid "B<PERF_TYPE_HARDWARE>"
2648 msgstr ""
2649
2650 #. type: Plain text
2651 #: build/C/man2/perf_event_open.2:255
2652 msgid ""
2653 "This indicates one of the \"generalized\" hardware events provided by the "
2654 "kernel.  See the I<config> field definition for more details."
2655 msgstr ""
2656
2657 #. type: TP
2658 #: build/C/man2/perf_event_open.2:255
2659 #, no-wrap
2660 msgid "B<PERF_TYPE_SOFTWARE>"
2661 msgstr ""
2662
2663 #. type: Plain text
2664 #: build/C/man2/perf_event_open.2:259
2665 msgid ""
2666 "This indicates one of the software-defined events provided by the kernel "
2667 "(even if no hardware support is available)."
2668 msgstr ""
2669
2670 #. type: TP
2671 #: build/C/man2/perf_event_open.2:259
2672 #, no-wrap
2673 msgid "B<PERF_TYPE_TRACEPOINT>"
2674 msgstr "B<PERF_TYPE_TRACEPOINT>"
2675
2676 #. type: Plain text
2677 #: build/C/man2/perf_event_open.2:263
2678 msgid ""
2679 "This indicates a tracepoint provided by the kernel tracepoint infrastructure."
2680 msgstr ""
2681
2682 #. type: TP
2683 #: build/C/man2/perf_event_open.2:263
2684 #, no-wrap
2685 msgid "B<PERF_TYPE_HW_CACHE>"
2686 msgstr ""
2687
2688 #. type: Plain text
2689 #: build/C/man2/perf_event_open.2:269
2690 msgid ""
2691 "This indicates a hardware cache event.  This has a special encoding, "
2692 "described in the I<config> field definition."
2693 msgstr ""
2694
2695 #. type: TP
2696 #: build/C/man2/perf_event_open.2:269
2697 #, no-wrap
2698 msgid "B<PERF_TYPE_RAW>"
2699 msgstr ""
2700
2701 #. type: Plain text
2702 #: build/C/man2/perf_event_open.2:273
2703 msgid ""
2704 "This indicates a \"raw\" implementation-specific event in the I<config> "
2705 "field."
2706 msgstr ""
2707
2708 #. type: TP
2709 #: build/C/man2/perf_event_open.2:273
2710 #, fuzzy, no-wrap
2711 #| msgid "B<PERF_TYPE_BREAKPOINT> (Since Linux 2.6.33)"
2712 msgid "B<PERF_TYPE_BREAKPOINT> (since Linux 2.6.33)"
2713 msgstr "B<PERF_TYPE_BREAKPOINT> (Linux 2.6.33 以降)"
2714
2715 #. type: Plain text
2716 #: build/C/man2/perf_event_open.2:278
2717 msgid ""
2718 "This indicates a hardware breakpoint as provided by the CPU.  Breakpoints "
2719 "can be read/write accesses to an address as well as execution of an "
2720 "instruction address."
2721 msgstr ""
2722
2723 #. type: TP
2724 #: build/C/man2/perf_event_open.2:278
2725 #, no-wrap
2726 msgid "dynamic PMU"
2727 msgstr ""
2728
2729 #. type: Plain text
2730 #: build/C/man2/perf_event_open.2:297
2731 msgid ""
2732 "Since Linux 2.6.39, B<perf_event_open>()  can support multiple PMUs.  To "
2733 "enable this, a value exported by the kernel can be used in the I<type> field "
2734 "to indicate which PMU to use.  The value to use can be found in the sysfs "
2735 "filesystem: there is a subdirectory per PMU instance under I</sys/bus/"
2736 "event_source/devices>.  In each subdirectory there is a I<type> file whose "
2737 "content is an integer that can be used in the I<type> field.  For instance, "
2738 "I</sys/bus/event_source/devices/cpu/type> contains the value for the core "
2739 "CPU PMU, which is usually 4."
2740 msgstr ""
2741
2742 #. type: TP
2743 #: build/C/man2/perf_event_open.2:298 build/C/man2/perf_event_open.2:1483
2744 #, no-wrap
2745 msgid "I<size>"
2746 msgstr ""
2747
2748 #. type: Plain text
2749 #: build/C/man2/perf_event_open.2:307
2750 msgid ""
2751 "The size of the I<perf_event_attr> structure for forward/backward "
2752 "compatibility.  Set this using I<sizeof(struct perf_event_attr)> to allow "
2753 "the kernel to see the struct size at the time of compilation."
2754 msgstr ""
2755
2756 #. type: Plain text
2757 #: build/C/man2/perf_event_open.2:322
2758 msgid ""
2759 "The related define B<PERF_ATTR_SIZE_VER0> is set to 64; this was the size of "
2760 "the first published struct.  B<PERF_ATTR_SIZE_VER1> is 72, corresponding to "
2761 "the addition of breakpoints in Linux 2.6.33.  B<PERF_ATTR_SIZE_VER2> is 80 "
2762 "corresponding to the addition of branch sampling in Linux 3.4.  "
2763 "B<PERF_ATR_SIZE_VER3> is 96 corresponding to the addition of "
2764 "I<sample_regs_user> and I<sample_stack_user> in Linux 3.7."
2765 msgstr ""
2766
2767 #. type: TP
2768 #: build/C/man2/perf_event_open.2:322
2769 #, no-wrap
2770 msgid "I<config>"
2771 msgstr ""
2772
2773 #. type: Plain text
2774 #: build/C/man2/perf_event_open.2:333
2775 msgid ""
2776 "This specifies which event you want, in conjunction with the I<type> field.  "
2777 "The I<config1> and I<config2> fields are also taken into account in cases "
2778 "where 64 bits is not enough to fully specify the event.  The encoding of "
2779 "these fields are event dependent."
2780 msgstr ""
2781
2782 #. type: Plain text
2783 #: build/C/man2/perf_event_open.2:339
2784 msgid ""
2785 "The most significant bit (bit 63) of I<config> signifies CPU-specific (raw) "
2786 "counter configuration data; if the most significant bit is unset, the next 7 "
2787 "bits are an event type and the rest of the bits are the event identifier."
2788 msgstr ""
2789
2790 #. type: Plain text
2791 #: build/C/man2/perf_event_open.2:350
2792 msgid ""
2793 "There are various ways to set the I<config> field that are dependent on the "
2794 "value of the previously described I<type> field.  What follows are various "
2795 "possible settings for I<config> separated out by I<type>."
2796 msgstr ""
2797
2798 #. type: Plain text
2799 #: build/C/man2/perf_event_open.2:360
2800 msgid ""
2801 "If I<type> is B<PERF_TYPE_HARDWARE>, we are measuring one of the generalized "
2802 "hardware CPU events.  Not all of these are available on all platforms.  Set "
2803 "I<config> to one of the following:"
2804 msgstr ""
2805
2806 #. type: TP
2807 #: build/C/man2/perf_event_open.2:361
2808 #, no-wrap
2809 msgid "B<PERF_COUNT_HW_CPU_CYCLES>"
2810 msgstr ""
2811
2812 #. type: Plain text
2813 #: build/C/man2/perf_event_open.2:365
2814 msgid "Total cycles.  Be wary of what happens during CPU frequency scaling."
2815 msgstr ""
2816
2817 #. type: TP
2818 #: build/C/man2/perf_event_open.2:365
2819 #, no-wrap
2820 msgid "B<PERF_COUNT_HW_INSTRUCTIONS>"
2821 msgstr ""
2822
2823 #. type: Plain text
2824 #: build/C/man2/perf_event_open.2:370
2825 msgid ""
2826 "Retired instructions.  Be careful, these can be affected by various issues, "
2827 "most notably hardware interrupt counts."
2828 msgstr ""
2829
2830 #. type: TP
2831 #: build/C/man2/perf_event_open.2:370
2832 #, no-wrap
2833 msgid "B<PERF_COUNT_HW_CACHE_REFERENCES>"
2834 msgstr ""
2835
2836 #. type: Plain text
2837 #: build/C/man2/perf_event_open.2:377
2838 msgid ""
2839 "Cache accesses.  Usually this indicates Last Level Cache accesses but this "
2840 "may vary depending on your CPU.  This may include prefetches and coherency "
2841 "messages; again this depends on the design of your CPU."
2842 msgstr ""
2843
2844 #. type: TP
2845 #: build/C/man2/perf_event_open.2:377
2846 #, no-wrap
2847 msgid "B<PERF_COUNT_HW_CACHE_MISSES>"
2848 msgstr ""
2849
2850 #. type: Plain text
2851 #: build/C/man2/perf_event_open.2:384
2852 msgid ""
2853 "Cache misses.  Usually this indicates Last Level Cache misses; this is "
2854 "intended to be used in conjunction with the "
2855 "B<PERF_COUNT_HW_CACHE_REFERENCES> event to calculate cache miss rates."
2856 msgstr ""
2857
2858 #. type: TP
2859 #: build/C/man2/perf_event_open.2:384
2860 #, no-wrap
2861 msgid "B<PERF_COUNT_HW_BRANCH_INSTRUCTIONS>"
2862 msgstr ""
2863
2864 #. type: Plain text
2865 #: build/C/man2/perf_event_open.2:389
2866 msgid ""
2867 "Retired branch instructions.  Prior to Linux 2.6.34, this used the wrong "
2868 "event on AMD processors."
2869 msgstr ""
2870
2871 #. type: TP
2872 #: build/C/man2/perf_event_open.2:389
2873 #, no-wrap
2874 msgid "B<PERF_COUNT_HW_BRANCH_MISSES>"
2875 msgstr ""
2876
2877 #. type: Plain text
2878 #: build/C/man2/perf_event_open.2:392
2879 msgid "Mispredicted branch instructions."
2880 msgstr ""
2881
2882 #. type: TP
2883 #: build/C/man2/perf_event_open.2:392
2884 #, no-wrap
2885 msgid "B<PERF_COUNT_HW_BUS_CYCLES>"
2886 msgstr ""
2887
2888 #. type: Plain text
2889 #: build/C/man2/perf_event_open.2:395
2890 msgid "Bus cycles, which can be different from total cycles."
2891 msgstr ""
2892
2893 #. type: TP
2894 #: build/C/man2/perf_event_open.2:395
2895 #, fuzzy, no-wrap
2896 #| msgid "B<PERF_COUNT_HW_STALLED_CYCLES_FRONTEND> (Since Linux 3.0)"
2897 msgid "B<PERF_COUNT_HW_STALLED_CYCLES_FRONTEND> (since Linux 3.0)"
2898 msgstr "B<PERF_COUNT_HW_STALLED_CYCLES_FRONTEND> (Linux 3.0 以降)"
2899
2900 #. type: Plain text
2901 #: build/C/man2/perf_event_open.2:398
2902 msgid "Stalled cycles during issue."
2903 msgstr ""
2904
2905 #. type: TP
2906 #: build/C/man2/perf_event_open.2:398
2907 #, fuzzy, no-wrap
2908 #| msgid "B<PERF_COUNT_HW_STALLED_CYCLES_FRONTEND> (Since Linux 3.0)"
2909 msgid "B<PERF_COUNT_HW_STALLED_CYCLES_BACKEND> (since Linux 3.0)"
2910 msgstr "B<PERF_COUNT_HW_STALLED_CYCLES_FRONTEND> (Linux 3.0 以降)"
2911
2912 #. type: Plain text
2913 #: build/C/man2/perf_event_open.2:401
2914 msgid "Stalled cycles during retirement."
2915 msgstr ""
2916
2917 #. type: TP
2918 #: build/C/man2/perf_event_open.2:401
2919 #, fuzzy, no-wrap
2920 #| msgid "B<PERF_COUNT_HW_REF_CPU_CYCLES> (Since Linux 3.3)"
2921 msgid "B<PERF_COUNT_HW_REF_CPU_CYCLES> (since Linux 3.3)"
2922 msgstr "B<PERF_COUNT_HW_REF_CPU_CYCLES> (Linux 3.3 以降)"
2923
2924 #. type: Plain text
2925 #: build/C/man2/perf_event_open.2:404
2926 msgid "Total cycles; not affected by CPU frequency scaling."
2927 msgstr ""
2928
2929 #. type: Plain text
2930 #: build/C/man2/perf_event_open.2:414
2931 msgid ""
2932 "If I<type> is B<PERF_TYPE_SOFTWARE>, we are measuring software events "
2933 "provided by the kernel.  Set I<config> to one of the following:"
2934 msgstr ""
2935
2936 #. type: TP
2937 #: build/C/man2/perf_event_open.2:415
2938 #, no-wrap
2939 msgid "B<PERF_COUNT_SW_CPU_CLOCK>"
2940 msgstr ""
2941
2942 #. type: Plain text
2943 #: build/C/man2/perf_event_open.2:418
2944 msgid "This reports the CPU clock, a high-resolution per-CPU timer."
2945 msgstr ""
2946
2947 #. type: TP
2948 #: build/C/man2/perf_event_open.2:418
2949 #, no-wrap
2950 msgid "B<PERF_COUNT_SW_TASK_CLOCK>"
2951 msgstr ""
2952
2953 #. type: Plain text
2954 #: build/C/man2/perf_event_open.2:421
2955 msgid "This reports a clock count specific to the task that is running."
2956 msgstr ""
2957
2958 #. type: TP
2959 #: build/C/man2/perf_event_open.2:421
2960 #, no-wrap
2961 msgid "B<PERF_COUNT_SW_PAGE_FAULTS>"
2962 msgstr ""
2963
2964 #. type: Plain text
2965 #: build/C/man2/perf_event_open.2:424
2966 msgid "This reports the number of page faults."
2967 msgstr ""
2968
2969 #. type: TP
2970 #: build/C/man2/perf_event_open.2:424
2971 #, no-wrap
2972 msgid "B<PERF_COUNT_SW_CONTEXT_SWITCHES>"
2973 msgstr ""
2974
2975 #. type: Plain text
2976 #: build/C/man2/perf_event_open.2:429
2977 msgid ""
2978 "This counts context switches.  Until Linux 2.6.34, these were all reported "
2979 "as user-space events, after that they are reported as happening in the "
2980 "kernel."
2981 msgstr ""
2982
2983 #. type: TP
2984 #: build/C/man2/perf_event_open.2:429
2985 #, no-wrap
2986 msgid "B<PERF_COUNT_SW_CPU_MIGRATIONS>"
2987 msgstr ""
2988
2989 #. type: Plain text
2990 #: build/C/man2/perf_event_open.2:433
2991 msgid "This reports the number of times the process has migrated to a new CPU."
2992 msgstr ""
2993
2994 #. type: TP
2995 #: build/C/man2/perf_event_open.2:433
2996 #, no-wrap
2997 msgid "B<PERF_COUNT_SW_PAGE_FAULTS_MIN>"
2998 msgstr ""
2999
3000 #. type: Plain text
3001 #: build/C/man2/perf_event_open.2:437
3002 msgid ""
3003 "This counts the number of minor page faults.  These did not require disk I/O "
3004 "to handle."
3005 msgstr ""
3006
3007 #. type: TP
3008 #: build/C/man2/perf_event_open.2:437
3009 #, no-wrap
3010 msgid "B<PERF_COUNT_SW_PAGE_FAULTS_MAJ>"
3011 msgstr ""
3012
3013 #. type: Plain text
3014 #: build/C/man2/perf_event_open.2:441
3015 msgid ""
3016 "This counts the number of major page faults.  These required disk I/O to "
3017 "handle."
3018 msgstr ""
3019
3020 #. type: TP
3021 #: build/C/man2/perf_event_open.2:441
3022 #, fuzzy, no-wrap
3023 #| msgid "B<PERF_COUNT_SW_ALIGNMENT_FAULTS> (Since Linux 2.6.33)"
3024 msgid "B<PERF_COUNT_SW_ALIGNMENT_FAULTS> (since Linux 2.6.33)"
3025 msgstr "B<PERF_COUNT_SW_ALIGNMENT_FAULTS> (Linux 2.6.33 以降)"
3026
3027 #. type: Plain text
3028 #: build/C/man2/perf_event_open.2:447
3029 msgid ""
3030 "This counts the number of alignment faults.  These happen when unaligned "
3031 "memory accesses happen; the kernel can handle these but it reduces "
3032 "performance.  This happens only on some architectures (never on x86)."
3033 msgstr ""
3034
3035 #. type: TP
3036 #: build/C/man2/perf_event_open.2:447
3037 #, fuzzy, no-wrap
3038 #| msgid "B<PERF_COUNT_SW_EMULATION_FAULTS> (Since Linux 2.6.33)"
3039 msgid "B<PERF_COUNT_SW_EMULATION_FAULTS> (since Linux 2.6.33)"
3040 msgstr "B<PERF_COUNT_SW_EMULATION_FAULTS> (Linux 2.6.33 以降)"
3041
3042 #. type: Plain text
3043 #: build/C/man2/perf_event_open.2:453
3044 msgid ""
3045 "This counts the number of emulation faults.  The kernel sometimes traps on "
3046 "unimplemented instructions and emulates them for user space.  This can "
3047 "negatively impact performance."
3048 msgstr ""
3049
3050 #. type: TP
3051 #: build/C/man2/perf_event_open.2:453
3052 #, fuzzy, no-wrap
3053 #| msgid "B<PERF_COUNT_HW_CACHE_NODE> (Since Linux 3.0)"
3054 msgid "B<PERF_COUNT_SW_DUMMY> (since Linux 3.12)"
3055 msgstr "B<PERF_COUNT_HW_CACHE_NODE> (Linux 3.0 以降)"
3056
3057 #. type: Plain text
3058 #: build/C/man2/perf_event_open.2:460
3059 msgid ""
3060 "This is a placeholder event that counts nothing.  Informational sample "
3061 "record types such as mmap or comm must be associated with an active event.  "
3062 "This dummy event allows gathering such records without requiring a counting "
3063 "event."
3064 msgstr ""
3065
3066 #. type: Plain text
3067 #: build/C/man2/perf_event_open.2:473
3068 msgid ""
3069 "If I<type> is B<PERF_TYPE_TRACEPOINT>, then we are measuring kernel "
3070 "tracepoints.  The value to use in I<config> can be obtained from under "
3071 "debugfs I<tracing/events/*/*/id> if ftrace is enabled in the kernel."
3072 msgstr ""
3073
3074 #. type: Plain text
3075 #: build/C/man2/perf_event_open.2:484
3076 msgid ""
3077 "If I<type> is B<PERF_TYPE_HW_CACHE>, then we are measuring a hardware CPU "
3078 "cache event.  To calculate the appropriate I<config> value use the following "
3079 "equation:"
3080 msgstr ""
3081
3082 #. type: Plain text
3083 #: build/C/man2/perf_event_open.2:489
3084 #, no-wrap
3085 msgid ""
3086 "    (perf_hw_cache_id) | (perf_hw_cache_op_id E<lt>E<lt> 8) |\n"
3087 "    (perf_hw_cache_op_result_id E<lt>E<lt> 16)\n"
3088 msgstr ""
3089
3090 #. type: Plain text
3091 #: build/C/man2/perf_event_open.2:494
3092 msgid "where I<perf_hw_cache_id> is one of:"
3093 msgstr ""
3094
3095 #. type: TP
3096 #: build/C/man2/perf_event_open.2:495
3097 #, no-wrap
3098 msgid "B<PERF_COUNT_HW_CACHE_L1D>"
3099 msgstr ""
3100
3101 #. type: Plain text
3102 #: build/C/man2/perf_event_open.2:498
3103 msgid "for measuring Level 1 Data Cache"
3104 msgstr ""
3105
3106 #. type: TP
3107 #: build/C/man2/perf_event_open.2:498
3108 #, no-wrap
3109 msgid "B<PERF_COUNT_HW_CACHE_L1I>"
3110 msgstr ""
3111
3112 #. type: Plain text
3113 #: build/C/man2/perf_event_open.2:501
3114 msgid "for measuring Level 1 Instruction Cache"
3115 msgstr ""
3116
3117 #. type: TP
3118 #: build/C/man2/perf_event_open.2:501
3119 #, no-wrap
3120 msgid "B<PERF_COUNT_HW_CACHE_LL>"
3121 msgstr ""
3122
3123 #. type: Plain text
3124 #: build/C/man2/perf_event_open.2:504
3125 msgid "for measuring Last-Level Cache"
3126 msgstr ""
3127
3128 #. type: TP
3129 #: build/C/man2/perf_event_open.2:504
3130 #, no-wrap
3131 msgid "B<PERF_COUNT_HW_CACHE_DTLB>"
3132 msgstr ""
3133
3134 #. type: Plain text
3135 #: build/C/man2/perf_event_open.2:507
3136 msgid "for measuring the Data TLB"
3137 msgstr ""
3138
3139 #. type: TP
3140 #: build/C/man2/perf_event_open.2:507
3141 #, no-wrap
3142 msgid "B<PERF_COUNT_HW_CACHE_ITLB>"
3143 msgstr ""
3144
3145 #. type: Plain text
3146 #: build/C/man2/perf_event_open.2:510
3147 msgid "for measuring the Instruction TLB"
3148 msgstr ""
3149
3150 #. type: TP
3151 #: build/C/man2/perf_event_open.2:510
3152 #, no-wrap
3153 msgid "B<PERF_COUNT_HW_CACHE_BPU>"
3154 msgstr ""
3155
3156 #. type: Plain text
3157 #: build/C/man2/perf_event_open.2:513
3158 msgid "for measuring the branch prediction unit"
3159 msgstr ""
3160
3161 #. type: TP
3162 #: build/C/man2/perf_event_open.2:513
3163 #, fuzzy, no-wrap
3164 #| msgid "B<PERF_COUNT_HW_CACHE_NODE> (Since Linux 3.0)"
3165 msgid "B<PERF_COUNT_HW_CACHE_NODE> (since Linux 3.0)"
3166 msgstr "B<PERF_COUNT_HW_CACHE_NODE> (Linux 3.0 以降)"
3167
3168 #. type: Plain text
3169 #: build/C/man2/perf_event_open.2:516
3170 msgid "for measuring local memory accesses"
3171 msgstr ""
3172
3173 #. type: Plain text
3174 #: build/C/man2/perf_event_open.2:521
3175 msgid "and I<perf_hw_cache_op_id> is one of"
3176 msgstr ""
3177
3178 #. type: TP
3179 #: build/C/man2/perf_event_open.2:522
3180 #, no-wrap
3181 msgid "B<PERF_COUNT_HW_CACHE_OP_READ>"
3182 msgstr ""
3183
3184 #. type: Plain text
3185 #: build/C/man2/perf_event_open.2:525
3186 msgid "for read accesses"
3187 msgstr ""
3188
3189 #. type: TP
3190 #: build/C/man2/perf_event_open.2:525
3191 #, no-wrap
3192 msgid "B<PERF_COUNT_HW_CACHE_OP_WRITE>"
3193 msgstr ""
3194
3195 #. type: Plain text
3196 #: build/C/man2/perf_event_open.2:528
3197 msgid "for write accesses"
3198 msgstr ""
3199
3200 #. type: TP
3201 #: build/C/man2/perf_event_open.2:528
3202 #, no-wrap
3203 msgid "B<PERF_COUNT_HW_CACHE_OP_PREFETCH>"
3204 msgstr ""
3205
3206 #. type: Plain text
3207 #: build/C/man2/perf_event_open.2:531
3208 msgid "for prefetch accesses"
3209 msgstr ""
3210
3211 #. type: Plain text
3212 #: build/C/man2/perf_event_open.2:536
3213 msgid "and I<perf_hw_cache_op_result_id> is one of"
3214 msgstr ""
3215
3216 #. type: TP
3217 #: build/C/man2/perf_event_open.2:537
3218 #, no-wrap
3219 msgid "B<PERF_COUNT_HW_CACHE_RESULT_ACCESS>"
3220 msgstr ""
3221
3222 #. type: Plain text
3223 #: build/C/man2/perf_event_open.2:540
3224 msgid "to measure accesses"
3225 msgstr ""
3226
3227 #. type: TP
3228 #: build/C/man2/perf_event_open.2:540
3229 #, no-wrap
3230 msgid "B<PERF_COUNT_HW_CACHE_RESULT_MISS>"
3231 msgstr ""
3232
3233 #. type: Plain text
3234 #: build/C/man2/perf_event_open.2:543
3235 msgid "to measure misses"
3236 msgstr ""
3237
3238 #. type: Plain text
3239 #: build/C/man2/perf_event_open.2:561
3240 msgid ""
3241 "If I<type> is B<PERF_TYPE_RAW>, then a custom \"raw\" I<config> value is "
3242 "needed.  Most CPUs support events that are not covered by the \"generalized"
3243 "\" events.  These are implementation defined; see your CPU manual (for "
3244 "example the Intel Volume 3B documentation or the AMD BIOS and Kernel "
3245 "Developer Guide).  The libpfm4 library can be used to translate from the "
3246 "name in the architectural manuals to the raw hex value B<perf_event_open>()  "
3247 "expects in this field."
3248 msgstr ""
3249
3250 #. type: Plain text
3251 #: build/C/man2/perf_event_open.2:570
3252 msgid ""
3253 "If I<type> is B<PERF_TYPE_BREAKPOINT>, then leave I<config> set to zero.  "
3254 "Its parameters are set in other places."
3255 msgstr ""
3256
3257 #. type: TP
3258 #: build/C/man2/perf_event_open.2:571
3259 #, no-wrap
3260 msgid "I<sample_period>, I<sample_freq>"
3261 msgstr ""
3262
3263 #. type: Plain text
3264 #: build/C/man2/perf_event_open.2:583
3265 msgid ""
3266 "A \"sampling\" counter is one that generates an interrupt every N events, "
3267 "where N is given by I<sample_period>.  A sampling counter has "
3268 "I<sample_period> E<gt> 0.  When an overflow interrupt occurs, requested data "
3269 "is recorded in the mmap buffer.  The I<sample_type> field controls what data "
3270 "is recorded on each interrupt."
3271 msgstr ""
3272
3273 #. type: Plain text
3274 #: build/C/man2/perf_event_open.2:593
3275 msgid ""
3276 "I<sample_freq> can be used if you wish to use frequency rather than period.  "
3277 "In this case you set the I<freq> flag.  The kernel will adjust the sampling "
3278 "period to try and achieve the desired rate.  The rate of adjustment is a "
3279 "timer tick."
3280 msgstr ""
3281
3282 #. type: TP
3283 #: build/C/man2/perf_event_open.2:593
3284 #, no-wrap
3285 msgid "I<sample_type>"
3286 msgstr ""
3287
3288 #. type: Plain text
3289 #: build/C/man2/perf_event_open.2:605
3290 msgid ""
3291 "The various bits in this field specify which values to include in the "
3292 "sample.  They will be recorded in a ring-buffer, which is available to user "
3293 "space using B<mmap>(2).  The order in which the values are saved in the "
3294 "sample are documented in the MMAP Layout subsection below; it is not the "
3295 "I<enum perf_event_sample_format> order."
3296 msgstr ""
3297
3298 #. type: TP
3299 #: build/C/man2/perf_event_open.2:606
3300 #, no-wrap
3301 msgid "B<PERF_SAMPLE_IP>"
3302 msgstr ""
3303
3304 #. type: Plain text
3305 #: build/C/man2/perf_event_open.2:609
3306 msgid "Records instruction pointer."
3307 msgstr ""
3308
3309 #. type: TP
3310 #: build/C/man2/perf_event_open.2:609
3311 #, no-wrap
3312 msgid "B<PERF_SAMPLE_TID>"
3313 msgstr ""
3314
3315 #. type: Plain text
3316 #: build/C/man2/perf_event_open.2:612
3317 msgid "Records the process and thread IDs."
3318 msgstr ""
3319
3320 #. type: TP
3321 #: build/C/man2/perf_event_open.2:612
3322 #, no-wrap
3323 msgid "B<PERF_SAMPLE_TIME>"
3324 msgstr ""
3325
3326 #. type: Plain text
3327 #: build/C/man2/perf_event_open.2:615
3328 msgid "Records a timestamp."
3329 msgstr ""
3330
3331 #. type: TP
3332 #: build/C/man2/perf_event_open.2:615
3333 #, no-wrap
3334 msgid "B<PERF_SAMPLE_ADDR>"
3335 msgstr ""
3336
3337 #. type: Plain text
3338 #: build/C/man2/perf_event_open.2:618
3339 msgid "Records an address, if applicable."
3340 msgstr ""
3341
3342 #. type: TP
3343 #: build/C/man2/perf_event_open.2:618
3344 #, no-wrap
3345 msgid "B<PERF_SAMPLE_READ>"
3346 msgstr ""
3347
3348 #. type: Plain text
3349 #: build/C/man2/perf_event_open.2:621
3350 msgid ""
3351 "Record counter values for all events in a group, not just the group leader."
3352 msgstr ""
3353
3354 #. type: TP
3355 #: build/C/man2/perf_event_open.2:621
3356 #, no-wrap
3357 msgid "B<PERF_SAMPLE_CALLCHAIN>"
3358 msgstr ""
3359
3360 #. type: Plain text
3361 #: build/C/man2/perf_event_open.2:624
3362 msgid "Records the callchain (stack backtrace)."
3363 msgstr ""
3364
3365 #. type: TP
3366 #: build/C/man2/perf_event_open.2:624
3367 #, no-wrap
3368 msgid "B<PERF_SAMPLE_ID>"
3369 msgstr ""
3370
3371 #. type: Plain text
3372 #: build/C/man2/perf_event_open.2:627
3373 msgid "Records a unique ID for the opened event's group leader."
3374 msgstr ""
3375
3376 #. type: TP
3377 #: build/C/man2/perf_event_open.2:627
3378 #, no-wrap
3379 msgid "B<PERF_SAMPLE_CPU>"
3380 msgstr ""
3381
3382 #. type: Plain text
3383 #: build/C/man2/perf_event_open.2:630
3384 msgid "Records CPU number."
3385 msgstr ""
3386
3387 #. type: TP
3388 #: build/C/man2/perf_event_open.2:630
3389 #, no-wrap
3390 msgid "B<PERF_SAMPLE_PERIOD>"
3391 msgstr ""
3392
3393 #. type: Plain text
3394 #: build/C/man2/perf_event_open.2:633
3395 msgid "Records the current sampling period."
3396 msgstr ""
3397
3398 #. type: TP
3399 #: build/C/man2/perf_event_open.2:633
3400 #, no-wrap
3401 msgid "B<PERF_SAMPLE_STREAM_ID>"
3402 msgstr ""
3403
3404 #. type: Plain text
3405 #: build/C/man2/perf_event_open.2:641
3406 msgid ""
3407 "Records a unique ID for the opened event.  Unlike B<PERF_SAMPLE_ID> the "
3408 "actual ID is returned, not the group leader.  This ID is the same as the one "
3409 "returned by B<PERF_FORMAT_ID>."
3410 msgstr ""
3411
3412 #. type: TP
3413 #: build/C/man2/perf_event_open.2:641
3414 #, no-wrap
3415 msgid "B<PERF_SAMPLE_RAW>"
3416 msgstr ""
3417
3418 #. type: Plain text
3419 #: build/C/man2/perf_event_open.2:645
3420 msgid ""
3421 "Records additional data, if applicable.  Usually returned by tracepoint "
3422 "events."
3423 msgstr ""
3424
3425 #. type: TP
3426 #: build/C/man2/perf_event_open.2:645
3427 #, fuzzy, no-wrap
3428 #| msgid "B<PERF_SAMPLE_BRANCH_STACK> (Since Linux 3.4)"
3429 msgid "B<PERF_SAMPLE_BRANCH_STACK> (since Linux 3.4)"
3430 msgstr "B<PERF_SAMPLE_BRANCH_STACK> (Linux 3.4 以降)"
3431
3432 #. type: Plain text
3433 #: build/C/man2/perf_event_open.2:650
3434 msgid ""
3435 "This provides a record of recent branches, as provided by CPU branch "
3436 "sampling hardware (such as Intel Last Branch Record).  Not all hardware "
3437 "supports this feature."
3438 msgstr ""
3439
3440 #. type: Plain text
3441 #: build/C/man2/perf_event_open.2:654
3442 msgid ""
3443 "See the I<branch_sample_type> field for how to filter which branches are "
3444 "reported."
3445 msgstr ""
3446
3447 #. type: TP
3448 #: build/C/man2/perf_event_open.2:654
3449 #, fuzzy, no-wrap
3450 #| msgid "B<PERF_SAMPLE_REGS_USER> (Since Linux 3.7)"
3451 msgid "B<PERF_SAMPLE_REGS_USER> (since Linux 3.7)"
3452 msgstr "B<PERF_SAMPLE_REGS_USER> (Linux 3.7 以降)"
3453
3454 #. type: Plain text
3455 #: build/C/man2/perf_event_open.2:658
3456 msgid ""
3457 "Records the current user-level CPU register state (the values in the process "
3458 "before the kernel was called)."
3459 msgstr ""
3460
3461 #. type: TP
3462 #: build/C/man2/perf_event_open.2:658
3463 #, fuzzy, no-wrap
3464 #| msgid "B<PERF_SAMPLE_STACK_USER> (Since Linux 3.7)"
3465 msgid "B<PERF_SAMPLE_STACK_USER> (since Linux 3.7)"
3466 msgstr "B<PERF_SAMPLE_STACK_USER> (Linux 3.7 以降)"
3467
3468 #. type: Plain text
3469 #: build/C/man2/perf_event_open.2:661
3470 msgid "Records the user level stack, allowing stack unwinding."
3471 msgstr ""
3472
3473 #. type: TP
3474 #: build/C/man2/perf_event_open.2:661
3475 #, fuzzy, no-wrap
3476 #| msgid "B<PERF_SAMPLE_WEIGHT> (Since Linux 3.10)"
3477 msgid "B<PERF_SAMPLE_WEIGHT> (since Linux 3.10)"
3478 msgstr "B<PERF_SAMPLE_WEIGHT> (Linux 3.10 以降)"
3479
3480 #. type: Plain text
3481 #: build/C/man2/perf_event_open.2:667
3482 msgid ""
3483 "Records a hardware provided weight value that expresses how costly the "
3484 "sampled event was.  This allows the hardware to highlight expensive events "
3485 "in a profile."
3486 msgstr ""
3487
3488 #. type: TP
3489 #: build/C/man2/perf_event_open.2:667
3490 #, fuzzy, no-wrap
3491 #| msgid "B<PERF_SAMPLE_DATA_SRC> (Since Linux 3.10)"
3492 msgid "B<PERF_SAMPLE_DATA_SRC> (since Linux 3.10)"
3493 msgstr "B<PERF_SAMPLE_DATA_SRC> (Linux 3.10 以降)"
3494
3495 #. type: Plain text
3496 #: build/C/man2/perf_event_open.2:673
3497 msgid ""
3498 "Records the data source: where in the memory hierarchy the data associated "
3499 "with the sampled instruction came from.  This is only available if the "
3500 "underlying hardware supports this feature."
3501 msgstr ""
3502
3503 #. type: TP
3504 #: build/C/man2/perf_event_open.2:673
3505 #, fuzzy, no-wrap
3506 #| msgid "B<PERF_SAMPLE_DATA_SRC> (Since Linux 3.10)"
3507 msgid "B<PERF_SAMPLE_IDENTIFIER> (since Linux 3.12)"
3508 msgstr "B<PERF_SAMPLE_DATA_SRC> (Linux 3.10 以降)"
3509
3510 #. type: Plain text
3511 #: build/C/man2/perf_event_open.2:680
3512 msgid ""
3513 "Places the B<SAMPLE_ID> value in a fixed position in the record, either at "
3514 "the beginning (for sample events) or at the end (if a non-sample event)."
3515 msgstr ""
3516
3517 #. type: Plain text
3518 #: build/C/man2/perf_event_open.2:692
3519 msgid ""
3520 "This was necessary because a sample stream may have records from various "
3521 "different event sources with different I<sample_type> settings.  Parsing the "
3522 "event stream properly was not possible because the format of the record was "
3523 "needed to find B<SAMPLE_ID>, but the format could not be found without "
3524 "knowing what event the sample belonged to (causing a circular dependency)."
3525 msgstr ""
3526
3527 #. type: Plain text
3528 #: build/C/man2/perf_event_open.2:702
3529 msgid ""
3530 "This new B<PERF_SAMPLE_IDENTIFIER> setting makes the event stream always "
3531 "parsable by putting B<SAMPLE_ID> in a fixed location, even though it means "
3532 "having duplicate B<SAMPLE_ID> values in records."
3533 msgstr ""
3534
3535 #. type: TP
3536 #: build/C/man2/perf_event_open.2:702
3537 #, fuzzy, no-wrap
3538 #| msgid "B<PERF_SAMPLE_DATA_SRC> (Since Linux 3.10)"
3539 msgid "B<PERF_SAMPLE_TRANSACTION> (Since Linux 3.13)"
3540 msgstr "B<PERF_SAMPLE_DATA_SRC> (Linux 3.10 以降)"
3541
3542 #. type: Plain text
3543 #: build/C/man2/perf_event_open.2:706
3544 msgid ""
3545 "Records reasons for transactional memory abort events (for example, from "
3546 "Intel TSX transactional memory support)."
3547 msgstr ""
3548
3549 #. type: Plain text
3550 #: build/C/man2/perf_event_open.2:714
3551 msgid ""
3552 "The I<precise_ip> setting must be greater than 0 and a transactional memory "
3553 "abort event must be measured or no values will be recorded.  Also note that "
3554 "some perf_event measurements, such as sampled cycle counting, may cause "
3555 "extraneous aborts (by causing an interrupt during a transaction)."
3556 msgstr ""
3557
3558 #. type: TP
3559 #: build/C/man2/perf_event_open.2:715
3560 #, no-wrap
3561 msgid "I<read_format>"
3562 msgstr ""
3563
3564 #. type: Plain text
3565 #: build/C/man2/perf_event_open.2:722
3566 msgid ""
3567 "This field specifies the format of the data returned by B<read>(2)  on a "
3568 "B<perf_event_open>()  file descriptor."
3569 msgstr ""
3570
3571 #. type: TP
3572 #: build/C/man2/perf_event_open.2:723
3573 #, no-wrap
3574 msgid "B<PERF_FORMAT_TOTAL_TIME_ENABLED>"
3575 msgstr ""
3576
3577 #. type: Plain text
3578 #: build/C/man2/perf_event_open.2:730
3579 msgid ""
3580 "Adds the 64-bit I<time_enabled> field.  This can be used to calculate "
3581 "estimated totals if the PMU is overcommitted and multiplexing is happening."
3582 msgstr ""
3583
3584 #. type: TP
3585 #: build/C/man2/perf_event_open.2:730
3586 #, no-wrap
3587 msgid "B<PERF_FORMAT_TOTAL_TIME_RUNNING>"
3588 msgstr ""
3589
3590 #. type: Plain text
3591 #: build/C/man2/perf_event_open.2:737
3592 msgid ""
3593 "Adds the 64-bit I<time_running> field.  This can be used to calculate "
3594 "estimated totals if the PMU is overcommitted and multiplexing is happening."
3595 msgstr ""
3596
3597 #. type: TP
3598 #: build/C/man2/perf_event_open.2:737
3599 #, no-wrap
3600 msgid "B<PERF_FORMAT_ID>"
3601 msgstr ""
3602
3603 #. type: Plain text
3604 #: build/C/man2/perf_event_open.2:740
3605 msgid "Adds a 64-bit unique value that corresponds to the event group."
3606 msgstr ""
3607
3608 #. type: TP
3609 #: build/C/man2/perf_event_open.2:740
3610 #, no-wrap
3611 msgid "B<PERF_FORMAT_GROUP>"
3612 msgstr ""
3613
3614 #. type: Plain text
3615 #: build/C/man2/perf_event_open.2:743
3616 msgid "Allows all counter values in an event group to be read with one read."
3617 msgstr ""
3618
3619 #. type: TP
3620 #: build/C/man2/perf_event_open.2:744
3621 #, no-wrap
3622 msgid "I<disabled>"
3623 msgstr ""
3624
3625 #. type: Plain text
3626 #: build/C/man2/perf_event_open.2:754
3627 msgid ""
3628 "The I<disabled> bit specifies whether the counter starts out disabled or "
3629 "enabled.  If disabled, the event can later be enabled by B<ioctl>(2), "
3630 "B<prctl>(2), or I<enable_on_exec>."
3631 msgstr ""
3632
3633 #. type: Plain text
3634 #: build/C/man2/perf_event_open.2:765
3635 msgid ""
3636 "When creating an event group, typically the group leader is initialized with "
3637 "I<disabled> set to 1 and any child events are initialized with I<disabled> "
3638 "set to 0.  Despite I<disabled> being 0, the child events will not start "
3639 "until the group leader is enabled."
3640 msgstr ""
3641
3642 #. type: TP
3643 #: build/C/man2/perf_event_open.2:765
3644 #, no-wrap
3645 msgid "I<inherit>"
3646 msgstr ""
3647
3648 #. type: Plain text
3649 #: build/C/man2/perf_event_open.2:774
3650 msgid ""
3651 "The I<inherit> bit specifies that this counter should count events of child "
3652 "tasks as well as the task specified.  This applies only to new children, not "
3653 "to any existing children at the time the counter is created (nor to any new "
3654 "children of existing children)."
3655 msgstr ""
3656
3657 #. type: Plain text
3658 #: build/C/man2/perf_event_open.2:779
3659 msgid ""
3660 "Inherit does not work for some combinations of I<read_format>s, such as "
3661 "B<PERF_FORMAT_GROUP>."
3662 msgstr ""
3663
3664 #. type: TP
3665 #: build/C/man2/perf_event_open.2:779
3666 #, no-wrap
3667 msgid "I<pinned>"
3668 msgstr ""
3669
3670 #. type: Plain text
3671 #: build/C/man2/perf_event_open.2:792
3672 msgid ""
3673 "The I<pinned> bit specifies that the counter should always be on the CPU if "
3674 "at all possible.  It applies only to hardware counters and only to group "
3675 "leaders.  If a pinned counter cannot be put onto the CPU (e.g., because "
3676 "there are not enough hardware counters or because of a conflict with some "
3677 "other event), then the counter goes into an 'error' state, where reads "
3678 "return end-of-file (i.e., B<read>(2)  returns 0) until the counter is "
3679 "subsequently enabled or disabled."
3680 msgstr ""
3681
3682 #. type: TP
3683 #: build/C/man2/perf_event_open.2:792
3684 #, no-wrap
3685 msgid "I<exclusive>"
3686 msgstr ""
3687
3688 #. type: Plain text
3689 #: build/C/man2/perf_event_open.2:801
3690 msgid ""
3691 "The I<exclusive> bit specifies that when this counter's group is on the CPU, "
3692 "it should be the only group using the CPU's counters.  In the future this "
3693 "may allow monitoring programs to support PMU features that need to run alone "
3694 "so that they do not disrupt other hardware counters."
3695 msgstr ""
3696
3697 #. type: Plain text
3698 #: build/C/man2/perf_event_open.2:808
3699 msgid ""
3700 "Note that many unexpected situations may prevent events with the "
3701 "I<exclusive> bit set from ever running.  This includes any users running a "
3702 "system-wide measurement as well as any kernel use of the performance "
3703 "counters (including the commonly enabled NMI Watchdog Timer interface)."
3704 msgstr ""
3705
3706 #. type: TP
3707 #: build/C/man2/perf_event_open.2:808
3708 #, no-wrap
3709 msgid "I<exclude_user>"
3710 msgstr ""
3711
3712 #. type: Plain text
3713 #: build/C/man2/perf_event_open.2:811
3714 msgid ""
3715 "If this bit is set, the count excludes events that happen in user space."
3716 msgstr ""
3717
3718 #. type: TP
3719 #: build/C/man2/perf_event_open.2:811
3720 #, no-wrap
3721 msgid "I<exclude_kernel>"
3722 msgstr ""
3723
3724 #. type: Plain text
3725 #: build/C/man2/perf_event_open.2:814
3726 msgid ""
3727 "If this bit is set, the count excludes events that happen in kernel-space."
3728 msgstr ""
3729
3730 #. type: TP
3731 #: build/C/man2/perf_event_open.2:814
3732 #, no-wrap
3733 msgid "I<exclude_hv>"
3734 msgstr ""
3735
3736 #. type: Plain text
3737 #: build/C/man2/perf_event_open.2:822
3738 msgid ""
3739 "If this bit is set, the count excludes events that happen in the "
3740 "hypervisor.  This is mainly for PMUs that have built-in support for handling "
3741 "this (such as POWER).  Extra support is needed for handling hypervisor "
3742 "measurements on most machines."
3743 msgstr ""
3744
3745 #. type: TP
3746 #: build/C/man2/perf_event_open.2:822
3747 #, no-wrap
3748 msgid "I<exclude_idle>"
3749 msgstr ""
3750
3751 #. type: Plain text
3752 #: build/C/man2/perf_event_open.2:825
3753 msgid "If set, don't count when the CPU is idle."
3754 msgstr ""
3755
3756 #. type: TP
3757 #: build/C/man2/perf_event_open.2:825
3758 #, no-wrap
3759 msgid "I<mmap>"
3760 msgstr ""
3761
3762 #. type: Plain text
3763 #: build/C/man2/perf_event_open.2:839
3764 msgid ""
3765 "The I<mmap> bit enables generation of B<PERF_RECORD_MMAP> samples for every "
3766 "B<mmap>(2)  call that has B<PROT_EXEC> set.  This allows tools to notice new "
3767 "executable code being mapped into a program (dynamic shared libraries for "
3768 "example)  so that addresses can be mapped back to the original code."
3769 msgstr ""
3770
3771 #. type: TP
3772 #: build/C/man2/perf_event_open.2:839
3773 #, no-wrap
3774 msgid "I<comm>"
3775 msgstr ""
3776
3777 #. type: Plain text
3778 #: build/C/man2/perf_event_open.2:850
3779 msgid ""
3780 "The I<comm> bit enables tracking of process command name as modified by the "
3781 "B<exec>(2)  and B<prctl>(PR_SET_NAME)  system calls.  Unfortunately for "
3782 "tools, there is no way to distinguish one system call versus the other."
3783 msgstr ""
3784
3785 #. type: TP
3786 #: build/C/man2/perf_event_open.2:850
3787 #, no-wrap
3788 msgid "I<freq>"
3789 msgstr ""
3790
3791 #. type: Plain text
3792 #: build/C/man2/perf_event_open.2:857
3793 msgid ""
3794 "If this bit is set, then I<sample_frequency> not I<sample_period> is used "
3795 "when setting up the sampling interval."
3796 msgstr ""
3797
3798 #. type: TP
3799 #: build/C/man2/perf_event_open.2:857
3800 #, no-wrap
3801 msgid "I<inherit_stat>"
3802 msgstr ""
3803
3804 #. type: Plain text
3805 #: build/C/man2/perf_event_open.2:864
3806 msgid ""
3807 "This bit enables saving of event counts on context switch for inherited "
3808 "tasks.  This is meaningful only if the I<inherit> field is set."
3809 msgstr ""
3810
3811 #. type: TP
3812 #: build/C/man2/perf_event_open.2:864
3813 #, no-wrap
3814 msgid "I<enable_on_exec>"
3815 msgstr ""
3816
3817 #. type: Plain text
3818 #: build/C/man2/perf_event_open.2:869
3819 msgid ""
3820 "If this bit is set, a counter is automatically enabled after a call to "
3821 "B<exec>(2)."
3822 msgstr ""
3823
3824 #. type: TP
3825 #: build/C/man2/perf_event_open.2:869
3826 #, no-wrap
3827 msgid "I<task>"
3828 msgstr ""
3829
3830 #. type: Plain text
3831 #: build/C/man2/perf_event_open.2:873
3832 msgid ""
3833 "If this bit is set, then fork/exit notifications are included in the ring "
3834 "buffer."
3835 msgstr ""
3836
3837 #. type: TP
3838 #: build/C/man2/perf_event_open.2:873
3839 #, no-wrap
3840 msgid "I<watermark>"
3841 msgstr ""
3842
3843 #. type: Plain text
3844 #: build/C/man2/perf_event_open.2:881
3845 msgid ""
3846 "If set, have a sampling interrupt happen when we cross the "
3847 "I<wakeup_watermark> boundary.  Otherwise interrupts happen after "
3848 "I<wakeup_events> samples."
3849 msgstr ""
3850
3851 #. type: TP
3852 #: build/C/man2/perf_event_open.2:881
3853 #, fuzzy, no-wrap
3854 #| msgid "I<precise_ip> (Since Linux 2.6.35)"
3855 msgid "I<precise_ip> (since Linux 2.6.35)"
3856 msgstr "I<precise_ip> (Linux 2.6.35 以降)"
3857
3858 #. type: Plain text
3859 #: build/C/man2/perf_event_open.2:891
3860 msgid ""
3861 "This controls the amount of skid.  Skid is how many instructions execute "
3862 "between an event of interest happening and the kernel being able to stop and "
3863 "record the event.  Smaller skid is better and allows more accurate reporting "
3864 "of which events correspond to which instructions, but hardware is often "
3865 "limited with how small this can be."
3866 msgstr ""
3867
3868 #. type: Plain text
3869 #: build/C/man2/perf_event_open.2:893
3870 msgid "The values of this are the following:"
3871 msgstr ""
3872
3873 #. type: TP
3874 #: build/C/man2/perf_event_open.2:894
3875 #, no-wrap
3876 msgid "0 -"
3877 msgstr "0 -"
3878
3879 #. type: Plain text
3880 #: build/C/man2/perf_event_open.2:898
3881 msgid "B<SAMPLE_IP> can have arbitrary skid."
3882 msgstr ""
3883
3884 #. type: TP
3885 #: build/C/man2/perf_event_open.2:898
3886 #, no-wrap
3887 msgid "1 -"
3888 msgstr "1 -"
3889
3890 #. type: Plain text
3891 #: build/C/man2/perf_event_open.2:902
3892 msgid "B<SAMPLE_IP> must have constant skid."
3893 msgstr ""
3894
3895 #. type: TP
3896 #: build/C/man2/perf_event_open.2:902
3897 #, no-wrap
3898 msgid "2 -"
3899 msgstr "2 -"
3900
3901 #. type: Plain text
3902 #: build/C/man2/perf_event_open.2:906
3903 msgid "B<SAMPLE_IP> requested to have 0 skid."
3904 msgstr ""
3905
3906 #. type: TP
3907 #: build/C/man2/perf_event_open.2:906
3908 #, no-wrap
3909 msgid "3 -"
3910 msgstr "3 -"
3911
3912 #. type: Plain text
3913 #: build/C/man2/perf_event_open.2:912
3914 msgid "B<SAMPLE_IP> must have 0 skid.  See also B<PERF_RECORD_MISC_EXACT_IP>."
3915 msgstr ""
3916
3917 #. type: TP
3918 #: build/C/man2/perf_event_open.2:913
3919 #, fuzzy, no-wrap
3920 #| msgid "I<mmap_data> (Since Linux 2.6.36)"
3921 msgid "I<mmap_data> (since Linux 2.6.36)"
3922 msgstr "I<mmap_data> (Linux 2.6.36 以降)"
3923
3924 #. type: Plain text
3925 #: build/C/man2/perf_event_open.2:925
3926 msgid ""
3927 "The counterpart of the I<mmap> field.  This enables generation of "
3928 "B<PERF_RECORD_MMAP> samples for B<mmap>(2)  calls that do not have "
3929 "B<PROT_EXEC> set (for example data and SysV shared memory)."
3930 msgstr ""
3931
3932 #. type: TP
3933 #: build/C/man2/perf_event_open.2:925
3934 #, fuzzy, no-wrap
3935 #| msgid "I<sample_id_all> (Since Linux 2.6.38)"
3936 msgid "I<sample_id_all> (since Linux 2.6.38)"
3937 msgstr "I<sample_id_all> (Linux 2.6.38 以降)"
3938
3939 #. type: Plain text
3940 #: build/C/man2/perf_event_open.2:933
3941 msgid ""
3942 "If set, then TID, TIME, ID, STREAM_ID, and CPU can additionally be included "
3943 "in non-B<PERF_RECORD_SAMPLE>s if the corresponding I<sample_type> is "
3944 "selected."
3945 msgstr ""
3946
3947 #. type: Plain text
3948 #: build/C/man2/perf_event_open.2:941
3949 msgid ""
3950 "If B<PERF_SAMPLE_IDENTIFIER> is specified than an additional ID value is "
3951 "included as the last value to ease parsing the record stream.  This may lead "
3952 "to the I<id> value appearing twice."
3953 msgstr ""
3954
3955 #. type: Plain text
3956 #: build/C/man2/perf_event_open.2:943
3957 msgid "The layout is described by this pseudo-structure:"
3958 msgstr ""
3959
3960 #. type: Plain text
3961 #: build/C/man2/perf_event_open.2:953
3962 #, no-wrap
3963 msgid ""
3964 "struct sample_id {\n"
3965 "    { u32 pid, tid; } /* if PERF_SAMPLE_TID set        */\n"
3966 "    { u64 time;     } /* if PERF_SAMPLE_TIME set       */\n"
3967 "    { u64 id;       } /* if PERF_SAMPLE_ID set         */\n"
3968 "    { u64 stream_id;} /* if PERF_SAMPLE_STREAM_ID set  */\n"
3969 "    { u32 cpu, res; } /* if PERF_SAMPLE_CPU set        */\n"
3970 "    { u64 id;       } /* if PERF_SAMPLE_IDENTIFIER set */\n"
3971 "};\n"
3972 msgstr ""
3973
3974 #. type: TP
3975 #: build/C/man2/perf_event_open.2:954
3976 #, fuzzy, no-wrap
3977 #| msgid "I<precise_ip> (Since Linux 2.6.35)"
3978 msgid "I<exclude_host> (since Linux 3.2)"
3979 msgstr "I<precise_ip> (Linux 2.6.35 以降)"
3980
3981 #. type: Plain text
3982 #: build/C/man2/perf_event_open.2:957
3983 msgid "Do not measure time spent in VM host."
3984 msgstr ""
3985
3986 #. type: TP
3987 #: build/C/man2/perf_event_open.2:957
3988 #, fuzzy, no-wrap
3989 #| msgid "I<precise_ip> (Since Linux 2.6.35)"
3990 msgid "I<exclude_guest> (since Linux 3.2)"
3991 msgstr "I<precise_ip> (Linux 2.6.35 以降)"
3992
3993 #. type: Plain text
3994 #: build/C/man2/perf_event_open.2:960
3995 msgid "Do not measure time spent in VM guest."
3996 msgstr ""
3997
3998 #. type: TP
3999 #: build/C/man2/perf_event_open.2:960
4000 #, no-wrap
4001 msgid "I<exclude_callchain_kernel> (since Linux 3.7)"
4002 msgstr ""
4003
4004 #. type: Plain text
4005 #: build/C/man2/perf_event_open.2:963
4006 msgid "Do not include kernel callchains."
4007 msgstr ""
4008
4009 #. type: TP
4010 #: build/C/man2/perf_event_open.2:963
4011 #, fuzzy, no-wrap
4012 #| msgid "I<sample_id_all> (Since Linux 2.6.38)"
4013 msgid "I<exclude_callchain_user> (since Linux 3.7)"
4014 msgstr "I<sample_id_all> (Linux 2.6.38 以降)"
4015
4016 #. type: Plain text
4017 #: build/C/man2/perf_event_open.2:966
4018 msgid "Do not include user callchains."
4019 msgstr ""
4020
4021 #. type: TP
4022 #: build/C/man2/perf_event_open.2:966
4023 #, no-wrap
4024 msgid "I<wakeup_events>, I<wakeup_watermark>"
4025 msgstr ""
4026
4027 #. type: Plain text
4028 #: build/C/man2/perf_event_open.2:976
4029 msgid ""
4030 "This union sets how many samples (I<wakeup_events>)  or bytes "
4031 "(I<wakeup_watermark>)  happen before an overflow signal happens.  Which one "
4032 "is used is selected by the I<watermark> bitflag."
4033 msgstr ""
4034
4035 #. type: Plain text
4036 #: build/C/man2/perf_event_open.2:986
4037 msgid ""
4038 "I<wakeup_events> only counts B<PERF_RECORD_SAMPLE> record types.  To receive "
4039 "a signal for every incoming B<PERF_RECORD> type set I<wakeup_watermark> to 1."
4040 msgstr ""
4041
4042 #. type: TP
4043 #: build/C/man2/perf_event_open.2:986
4044 #, fuzzy, no-wrap
4045 #| msgid "I<bp_type> (Since Linux 2.6.33)"
4046 msgid "I<bp_type> (since Linux 2.6.33)"
4047 msgstr "I<bp_type> (Linux 2.6.33 以降)"
4048
4049 #. type: Plain text
4050 #: build/C/man2/perf_event_open.2:990
4051 msgid "This chooses the breakpoint type.  It is one of:"
4052 msgstr ""
4053
4054 #. type: TP
4055 #: build/C/man2/perf_event_open.2:991
4056 #, no-wrap
4057 msgid "B<HW_BREAKPOINT_EMPTY>"
4058 msgstr ""
4059
4060 #. type: Plain text
4061 #: build/C/man2/perf_event_open.2:994
4062 msgid "No breakpoint."
4063 msgstr ""
4064
4065 #. type: TP
4066 #: build/C/man2/perf_event_open.2:994
4067 #, no-wrap
4068 msgid "B<HW_BREAKPOINT_R>"
4069 msgstr ""
4070
4071 #. type: Plain text
4072 #: build/C/man2/perf_event_open.2:997
4073 msgid "Count when we read the memory location."
4074 msgstr ""
4075
4076 #. type: TP
4077 #: build/C/man2/perf_event_open.2:997
4078 #, no-wrap
4079 msgid "B<HW_BREAKPOINT_W>"
4080 msgstr ""
4081
4082 #. type: Plain text
4083 #: build/C/man2/perf_event_open.2:1000
4084 msgid "Count when we write the memory location."
4085 msgstr ""
4086
4087 #. type: TP
4088 #: build/C/man2/perf_event_open.2:1000
4089 #, no-wrap
4090 msgid "B<HW_BREAKPOINT_RW>"
4091 msgstr ""
4092
4093 #. type: Plain text
4094 #: build/C/man2/perf_event_open.2:1003
4095 msgid "Count when we read or write the memory location."
4096 msgstr ""
4097
4098 #. type: TP
4099 #: build/C/man2/perf_event_open.2:1003
4100 #, no-wrap
4101 msgid "B<HW_BREAKPOINT_X>"
4102 msgstr ""
4103
4104 #. type: Plain text
4105 #: build/C/man2/perf_event_open.2:1006
4106 msgid "Count when we execute code at the memory location."
4107 msgstr ""
4108
4109 #. type: Plain text
4110 #: build/C/man2/perf_event_open.2:1015
4111 msgid ""
4112 "The values can be combined via a bitwise or, but the combination of "
4113 "B<HW_BREAKPOINT_R> or B<HW_BREAKPOINT_W> with B<HW_BREAKPOINT_X> is not "
4114 "allowed."
4115 msgstr ""
4116
4117 #. type: TP
4118 #: build/C/man2/perf_event_open.2:1016
4119 #, fuzzy, no-wrap
4120 #| msgid "I<bp_addr> (Since Linux 2.6.33)"
4121 msgid "I<bp_addr> (since Linux 2.6.33)"
4122 msgstr "I<bp_addr> (Linux 2.6.33 以降)"
4123
4124 #. type: Plain text
4125 #: build/C/man2/perf_event_open.2:1023
4126 msgid ""
4127 "I<bp_addr> address of the breakpoint.  For execution breakpoints this is the "
4128 "memory address of the instruction of interest; for read and write "
4129 "breakpoints it is the memory address of the memory location of interest."
4130 msgstr ""
4131
4132 #. type: TP
4133 #: build/C/man2/perf_event_open.2:1023
4134 #, fuzzy, no-wrap
4135 #| msgid "I<config1> (Since Linux 2.6.39)"
4136 msgid "I<config1> (since Linux 2.6.39)"
4137 msgstr "I<config1> (Linux 2.6.39 以降)"
4138
4139 #. type: Plain text
4140 #: build/C/man2/perf_event_open.2:1030
4141 msgid ""
4142 "I<config1> is used for setting events that need an extra register or "
4143 "otherwise do not fit in the regular config field.  Raw OFFCORE_EVENTS on "
4144 "Nehalem/Westmere/SandyBridge use this field on 3.3 and later kernels."
4145 msgstr ""
4146
4147 #. type: TP
4148 #: build/C/man2/perf_event_open.2:1030
4149 #, fuzzy, no-wrap
4150 #| msgid "I<bp_len> (Since Linux 2.6.33)"
4151 msgid "I<bp_len> (since Linux 2.6.33)"
4152 msgstr "I<bp_len> (Linux 2.6.33 以降)"
4153
4154 #. type: Plain text
4155 #: build/C/man2/perf_event_open.2:1044
4156 msgid ""
4157 "I<bp_len> is the length of the breakpoint being measured if I<type> is "
4158 "B<PERF_TYPE_BREAKPOINT>.  Options are B<HW_BREAKPOINT_LEN_1>, "
4159 "B<HW_BREAKPOINT_LEN_2>, B<HW_BREAKPOINT_LEN_4>, B<HW_BREAKPOINT_LEN_8>.  For "
4160 "an execution breakpoint, set this to I<sizeof(long)>."
4161 msgstr ""
4162
4163 #. type: TP
4164 #: build/C/man2/perf_event_open.2:1044
4165 #, fuzzy, no-wrap
4166 #| msgid "I<config2> (Since Linux 2.6.39)"
4167 msgid "I<config2> (since Linux 2.6.39)"
4168 msgstr "I<config2> (Linux 2.6.39 以降)"
4169
4170 #. type: Plain text
4171 #: build/C/man2/perf_event_open.2:1051
4172 msgid "I<config2> is a further extension of the I<config1> field."
4173 msgstr ""
4174
4175 #. type: TP
4176 #: build/C/man2/perf_event_open.2:1051
4177 #, fuzzy, no-wrap
4178 #| msgid "I<bp_type> (Since Linux 2.6.33)"
4179 msgid "I<branch_sample_type> (since Linux 3.4)"
4180 msgstr "I<bp_type> (Linux 2.6.33 以降)"
4181
4182 #. type: Plain text
4183 #: build/C/man2/perf_event_open.2:1057
4184 msgid ""
4185 "If B<PERF_SAMPLE_BRANCH_STACK> is enabled, then this specifies what branches "
4186 "to include in the branch record."
4187 msgstr ""
4188
4189 #. type: Plain text
4190 #: build/C/man2/perf_event_open.2:1063
4191 msgid ""
4192 "The first part of the value is the privilege level, which is a combination "
4193 "of one of the following values.  If the user does not set privilege level "
4194 "explicitly, the kernel will use the event's privilege level.  Event and "
4195 "branch privilege levels do not have to match."
4196 msgstr ""
4197
4198 #. type: TP
4199 #: build/C/man2/perf_event_open.2:1064
4200 #, no-wrap
4201 msgid "B<PERF_SAMPLE_BRANCH_USER>"
4202 msgstr ""
4203
4204 #. type: Plain text
4205 #: build/C/man2/perf_event_open.2:1067
4206 msgid "Branch target is in user space."
4207 msgstr ""
4208
4209 #. type: TP
4210 #: build/C/man2/perf_event_open.2:1067
4211 #, no-wrap
4212 msgid "B<PERF_SAMPLE_BRANCH_KERNEL>"
4213 msgstr ""
4214
4215 #. type: Plain text
4216 #: build/C/man2/perf_event_open.2:1070
4217 msgid "Branch target is in kernel space."
4218 msgstr ""
4219
4220 #. type: TP
4221 #: build/C/man2/perf_event_open.2:1070
4222 #, no-wrap
4223 msgid "B<PERF_SAMPLE_BRANCH_HV>"
4224 msgstr ""
4225
4226 #. type: Plain text
4227 #: build/C/man2/perf_event_open.2:1073
4228 msgid "Branch target is in hypervisor."
4229 msgstr ""
4230
4231 #. type: TP
4232 #: build/C/man2/perf_event_open.2:1073
4233 #, no-wrap
4234 msgid "B<PERF_SAMPLE_BRANCH_PLM_ALL>"
4235 msgstr ""
4236
4237 #. type: Plain text
4238 #: build/C/man2/perf_event_open.2:1076
4239 msgid "A convenience value that is the three preceding values ORed together."
4240 msgstr ""
4241
4242 #. type: Plain text
4243 #: build/C/man2/perf_event_open.2:1080
4244 msgid ""
4245 "In addition to the privilege value, at least one or more of the following "
4246 "bits must be set."
4247 msgstr ""
4248
4249 #. type: TP
4250 #: build/C/man2/perf_event_open.2:1081
4251 #, no-wrap
4252 msgid "B<PERF_SAMPLE_BRANCH_ANY>"
4253 msgstr ""
4254
4255 #. type: Plain text
4256 #: build/C/man2/perf_event_open.2:1084
4257 msgid "Any branch type."
4258 msgstr ""
4259
4260 #. type: TP
4261 #: build/C/man2/perf_event_open.2:1084
4262 #, no-wrap
4263 msgid "B<PERF_SAMPLE_BRANCH_ANY_CALL>"
4264 msgstr ""
4265
4266 #. type: Plain text
4267 #: build/C/man2/perf_event_open.2:1087
4268 msgid "Any call branch."
4269 msgstr ""
4270
4271 #. type: TP
4272 #: build/C/man2/perf_event_open.2:1087
4273 #, no-wrap
4274 msgid "B<PERF_SAMPLE_BRANCH_ANY_RETURN>"
4275 msgstr ""
4276
4277 #. type: Plain text
4278 #: build/C/man2/perf_event_open.2:1090
4279 msgid "Any return branch."
4280 msgstr ""
4281
4282 #. type: TP
4283 #: build/C/man2/perf_event_open.2:1090
4284 #, no-wrap
4285 msgid "B<PERF_SAMPLE_BRANCH_IND_CALL>"
4286 msgstr ""
4287
4288 #. type: Plain text
4289 #: build/C/man2/perf_event_open.2:1093
4290 msgid "Indirect calls."
4291 msgstr ""
4292
4293 #. type: TP
4294 #: build/C/man2/perf_event_open.2:1093
4295 #, fuzzy, no-wrap
4296 #| msgid "B<PERF_SAMPLE_BRANCH_STACK> (Since Linux 3.4)"
4297 msgid "B<PERF_SAMPLE_BRANCH_ABORT_TX> (since Linux 3.11)"
4298 msgstr "B<PERF_SAMPLE_BRANCH_STACK> (Linux 3.4 以降)"
4299
4300 #. type: Plain text
4301 #: build/C/man2/perf_event_open.2:1096
4302 msgid "Transactional memory aborts."
4303 msgstr ""
4304
4305 #. type: TP
4306 #: build/C/man2/perf_event_open.2:1096
4307 #, fuzzy, no-wrap
4308 #| msgid "B<PERF_SAMPLE_BRANCH_STACK> (Since Linux 3.4)"
4309 msgid "B<PERF_SAMPLE_BRANCH_IN_TX> (since Linux 3.11)"
4310 msgstr "B<PERF_SAMPLE_BRANCH_STACK> (Linux 3.4 以降)"
4311
4312 #. type: Plain text
4313 #: build/C/man2/perf_event_open.2:1099
4314 msgid "Branch in transactional memory transaction."
4315 msgstr ""
4316
4317 #. type: TP
4318 #: build/C/man2/perf_event_open.2:1099
4319 #, fuzzy, no-wrap
4320 #| msgid "B<PERF_SAMPLE_BRANCH_STACK> (Since Linux 3.4)"
4321 msgid "B<PERF_SAMPLE_BRANCH_NO_TX> (since Linux 3.11)"
4322 msgstr "B<PERF_SAMPLE_BRANCH_STACK> (Linux 3.4 以降)"
4323
4324 #. type: Plain text
4325 #: build/C/man2/perf_event_open.2:1102
4326 msgid "Branch not in transactional memory transaction."
4327 msgstr ""
4328
4329 #. type: TP
4330 #: build/C/man2/perf_event_open.2:1104
4331 #, fuzzy, no-wrap
4332 #| msgid "I<sample_id_all> (Since Linux 2.6.38)"
4333 msgid "I<sample_regs_user> (since Linux 3.7)"
4334 msgstr "I<sample_id_all> (Linux 2.6.38 以降)"
4335
4336 #. type: Plain text
4337 #: build/C/man2/perf_event_open.2:1110
4338 msgid ""
4339 "This bit mask defines the set of user CPU registers to dump on samples.  The "
4340 "layout of the register mask is architecture-specific and described in the "
4341 "kernel header I<arch/ARCH/include/uapi/asm/perf_regs.h>."
4342 msgstr ""
4343
4344 #. type: TP
4345 #: build/C/man2/perf_event_open.2:1110
4346 #, fuzzy, no-wrap
4347 #| msgid "I<sample_id_all> (Since Linux 2.6.38)"
4348 msgid "I<sample_stack_user> (since Linux 3.7)"
4349 msgstr "I<sample_id_all> (Linux 2.6.38 以降)"
4350
4351 #. type: Plain text
4352 #: build/C/man2/perf_event_open.2:1115
4353 msgid ""
4354 "This defines the size of the user stack to dump if B<PERF_SAMPLE_STACK_USER> "
4355 "is specified."
4356 msgstr ""
4357
4358 #. type: SS
4359 #: build/C/man2/perf_event_open.2:1115
4360 #, no-wrap
4361 msgid "Reading results"
4362 msgstr ""
4363
4364 #. type: Plain text
4365 #: build/C/man2/perf_event_open.2:1125
4366 msgid ""
4367 "Once a B<perf_event_open>()  file descriptor has been opened, the values of "
4368 "the events can be read from the file descriptor.  The values that are there "
4369 "are specified by the I<read_format> field in the I<attr> structure at open "
4370 "time."
4371 msgstr ""
4372
4373 #. type: Plain text
4374 #: build/C/man2/perf_event_open.2:1130
4375 msgid ""
4376 "If you attempt to read into a buffer that is not big enough to hold the data "
4377 "B<ENOSPC> is returned"
4378 msgstr ""
4379
4380 #. type: Plain text
4381 #: build/C/man2/perf_event_open.2:1132
4382 msgid "Here is the layout of the data returned by a read:"
4383 msgstr ""
4384
4385 #. type: IP
4386 #: build/C/man2/perf_event_open.2:1132 build/C/man2/perf_event_open.2:1150
4387 #: build/C/man2/ptrace.2:1692 build/C/man2/ptrace.2:1702
4388 #: build/C/man2/ptrace.2:1710 build/C/man2/ptrace.2:1716
4389 #: build/C/man2/ptrace.2:1845
4390 #, no-wrap
4391 msgid "*"
4392 msgstr ""
4393
4394 #. type: Plain text
4395 #: build/C/man2/perf_event_open.2:1136
4396 msgid ""
4397 "If B<PERF_FORMAT_GROUP> was specified to allow reading all events in a group "
4398 "at once:"
4399 msgstr ""
4400
4401 #. type: Plain text
4402 #: build/C/man2/perf_event_open.2:1148
4403 #, no-wrap
4404 msgid ""
4405 "struct read_format {\n"
4406 "    u64 nr;            /* The number of events */\n"
4407 "    u64 time_enabled;  /* if PERF_FORMAT_TOTAL_TIME_ENABLED */\n"
4408 "    u64 time_running;  /* if PERF_FORMAT_TOTAL_TIME_RUNNING */\n"
4409 "    struct\n"
4410 "        u64 value;     /* The value of the event */\n"
4411 "        u64 id;        /* if PERF_FORMAT_ID */\n"
4412 "    } values[nr];\n"
4413 "};\n"
4414 msgstr ""
4415
4416 #. type: Plain text
4417 #: build/C/man2/perf_event_open.2:1156
4418 msgid "If B<PERF_FORMAT_GROUP> was I<not> specified:"
4419 msgstr ""
4420
4421 #. type: Plain text
4422 #: build/C/man2/perf_event_open.2:1165
4423 #, no-wrap
4424 msgid ""
4425 "struct read_format {\n"
4426 "    u64 value;         /* The value of the event */\n"
4427 "    u64 time_enabled;  /* if PERF_FORMAT_TOTAL_TIME_ENABLED */\n"
4428 "    u64 time_running;  /* if PERF_FORMAT_TOTAL_TIME_RUNNING */\n"
4429 "    u64 id;            /* if PERF_FORMAT_ID */\n"
4430 "};\n"
4431 msgstr ""
4432
4433 #. type: Plain text
4434 #: build/C/man2/perf_event_open.2:1169
4435 msgid "The values read are as follows:"
4436 msgstr ""
4437
4438 #. type: TP
4439 #: build/C/man2/perf_event_open.2:1169
4440 #, no-wrap
4441 msgid "I<nr>"
4442 msgstr ""
4443
4444 #. type: Plain text
4445 #: build/C/man2/perf_event_open.2:1175
4446 msgid ""
4447 "The number of events in this file descriptor.  Only available if "
4448 "B<PERF_FORMAT_GROUP> was specified."
4449 msgstr ""
4450
4451 #. type: TP
4452 #: build/C/man2/perf_event_open.2:1175
4453 #, no-wrap
4454 msgid "I<time_enabled>, I<time_running>"
4455 msgstr ""
4456
4457 #. type: Plain text
4458 #: build/C/man2/perf_event_open.2:1187
4459 msgid ""
4460 "Total time the event was enabled and running.  Normally these are the same.  "
4461 "If more events are started than available counter slots on the PMU, then "
4462 "multiplexing happens and events run only part of the time.  In that case the "
4463 "I<time_enabled> and I<time running> values can be used to scale an estimated "
4464 "value for the count."
4465 msgstr ""
4466
4467 #. type: TP
4468 #: build/C/man2/perf_event_open.2:1187
4469 #, no-wrap
4470 msgid "I<value>"
4471 msgstr ""
4472
4473 #. type: Plain text
4474 #: build/C/man2/perf_event_open.2:1190
4475 msgid "An unsigned 64-bit value containing the counter result."
4476 msgstr ""
4477
4478 #. type: TP
4479 #: build/C/man2/perf_event_open.2:1190 build/C/man2/perf_event_open.2:1581
4480 #: build/C/man2/perf_event_open.2:1735
4481 #, no-wrap
4482 msgid "I<id>"
4483 msgstr ""
4484
4485 #. type: Plain text
4486 #: build/C/man2/perf_event_open.2:1196
4487 msgid ""
4488 "A globally unique value for this particular event, only there if "
4489 "B<PERF_FORMAT_ID> was specified in I<read_format>."
4490 msgstr ""
4491
4492 #. type: SS
4493 #: build/C/man2/perf_event_open.2:1196
4494 #, no-wrap
4495 msgid "MMAP layout"
4496 msgstr ""
4497
4498 #. type: Plain text
4499 #: build/C/man2/perf_event_open.2:1206
4500 msgid ""
4501 "When using B<perf_event_open>()  in sampled mode, asynchronous events (like "
4502 "counter overflow or B<PROT_EXEC> mmap tracking)  are logged into a ring-"
4503 "buffer.  This ring-buffer is created and accessed through B<mmap>(2)."
4504 msgstr ""
4505
4506 #. type: Plain text
4507 #: build/C/man2/perf_event_open.2:1212
4508 msgid ""
4509 "The mmap size should be 1+2^n pages, where the first page is a metadata page "
4510 "(I<struct perf_event_mmap_page>)  that contains various bits of information "
4511 "such as where the ring-buffer head is."
4512 msgstr ""
4513
4514 #. type: Plain text
4515 #: build/C/man2/perf_event_open.2:1215
4516 msgid ""
4517 "Before kernel 2.6.39, there is a bug that means you must allocate a mmap "
4518 "ring buffer when sampling even if you do not plan to access it."
4519 msgstr ""
4520
4521 #. type: Plain text
4522 #: build/C/man2/perf_event_open.2:1217
4523 msgid "The structure of the first metadata mmap page is as follows:"
4524 msgstr ""
4525
4526 #. type: Plain text
4527 #: build/C/man2/perf_event_open.2:1246
4528 #, no-wrap
4529 msgid ""
4530 "struct perf_event_mmap_page {\n"
4531 "    __u32 version;          /* version number of this structure */\n"
4532 "    __u32 compat_version;   /* lowest version this is compat with */\n"
4533 "    __u32 lock;             /* seqlock for synchronization */\n"
4534 "    __u32 index;            /* hardware counter identifier */\n"
4535 "    __s64 offset;           /* add to hardware counter value */\n"
4536 "    __u64 time_enabled;     /* time event active */\n"
4537 "    __u64 time_running;     /* time event on CPU */\n"
4538 "    union {\n"
4539 "        __u64   capabilities;\n"
4540 "        struct {\n"
4541 "            __u64   cap_usr_time / cap_usr_rdpmc / cap_bit0 : 1,\n"
4542 "                    cap_bit0_is_deprecated : 1,\n"
4543 "                    cap_user_rdpmc         : 1,\n"
4544 "                    cap_user_time          : 1,\n"
4545 "                    cap_user_time_zero     : 1,\n"
4546 "        };\n"
4547 "    };\n"
4548 "    __u16   pmc_width;\n"
4549 "    __u16   time_shift;\n"
4550 "    __u32   time_mult;\n"
4551 "    __u64   time_offset;\n"
4552 "    __u64   __reserved[120];   /* Pad to 1k */\n"
4553 "    __u64   data_head;         /* head in the data section */\n"
4554 "    __u64   data_tail;         /* user-space written tail */\n"
4555 "}\n"
4556 msgstr ""
4557
4558 #. type: Plain text
4559 #: build/C/man2/perf_event_open.2:1252
4560 msgid ""
4561 "The following looks at the fields in the I<perf_event_mmap_page> structure "
4562 "in more detail:"
4563 msgstr ""
4564
4565 #. type: TP
4566 #: build/C/man2/perf_event_open.2:1252
4567 #, no-wrap
4568 msgid "I<version>"
4569 msgstr ""
4570
4571 #. type: Plain text
4572 #: build/C/man2/perf_event_open.2:1255
4573 msgid "Version number of this structure."
4574 msgstr ""
4575
4576 #. type: TP
4577 #: build/C/man2/perf_event_open.2:1255
4578 #, no-wrap
4579 msgid "I<compat_version>"
4580 msgstr ""
4581
4582 #. type: Plain text
4583 #: build/C/man2/perf_event_open.2:1258
4584 msgid "The lowest version this is compatible with."
4585 msgstr ""
4586
4587 #. type: TP
4588 #: build/C/man2/perf_event_open.2:1258
4589 #, no-wrap
4590 msgid "I<lock>"
4591 msgstr ""
4592
4593 #. type: Plain text
4594 #: build/C/man2/perf_event_open.2:1261
4595 msgid "A seqlock for synchronization."
4596 msgstr ""
4597
4598 #. type: TP
4599 #: build/C/man2/perf_event_open.2:1261
4600 #, no-wrap
4601 msgid "I<index>"
4602 msgstr ""
4603
4604 #. type: Plain text
4605 #: build/C/man2/perf_event_open.2:1264
4606 msgid "A unique hardware counter identifier."
4607 msgstr ""
4608
4609 #. type: TP
4610 #: build/C/man2/perf_event_open.2:1264
4611 #, no-wrap
4612 msgid "I<offset>"
4613 msgstr ""
4614
4615 #. type: Plain text
4616 #: build/C/man2/perf_event_open.2:1269
4617 msgid ""
4618 "When using rdpmc for reads this offset value must be added to the one "
4619 "returned by rdpmc to get the current total event count."
4620 msgstr ""
4621
4622 #. type: TP
4623 #: build/C/man2/perf_event_open.2:1269
4624 #, no-wrap
4625 msgid "I<time_enabled>"
4626 msgstr ""
4627
4628 #. type: Plain text
4629 #: build/C/man2/perf_event_open.2:1272
4630 msgid "Time the event was active."
4631 msgstr ""
4632
4633 #. type: TP
4634 #: build/C/man2/perf_event_open.2:1272
4635 #, no-wrap
4636 msgid "I<time_running>"
4637 msgstr ""
4638
4639 #. type: Plain text
4640 #: build/C/man2/perf_event_open.2:1275
4641 msgid "Time the event was running."
4642 msgstr ""
4643
4644 #. type: TP
4645 #: build/C/man2/perf_event_open.2:1275
4646 #, no-wrap
4647 msgid "I<cap_usr_time> / I<cap_usr_rdpmc> / I<cap_bit0> (since Linux 3.4)"
4648 msgstr ""
4649
4650 #. type: Plain text
4651 #: build/C/man2/perf_event_open.2:1288
4652 msgid ""
4653 "There was a bug in the definition of I<cap_usr_time> and I<cap_usr_rdpmc> "
4654 "from Linux 3.4 until Linux 3.11.  Both bits were defined to point to the "
4655 "same location, so it was impossible to know if I<cap_usr_time> or "
4656 "I<cap_usr_rdpmc> were actually set."
4657 msgstr ""
4658
4659 #. type: Plain text
4660 #: build/C/man2/perf_event_open.2:1296
4661 msgid ""
4662 "Starting with 3.12 these are renamed to I<cap_bit0> and you should use the "
4663 "new I<cap_user_time> and I<cap_user_rdpmc> fields instead."
4664 msgstr ""
4665
4666 #. type: TP
4667 #: build/C/man2/perf_event_open.2:1297
4668 #, fuzzy, no-wrap
4669 #| msgid "I<mmap_data> (Since Linux 2.6.36)"
4670 msgid "I<cap_bit0_is_deprecated> (since Linux 3.12)"
4671 msgstr "I<mmap_data> (Linux 2.6.36 以降)"
4672
4673 #. type: Plain text
4674 #: build/C/man2/perf_event_open.2:1305
4675 msgid ""
4676 "If set this bit indicates that the kernel supports the properly separated "
4677 "I<cap_user_time> and I<cap_user_rdpmc> bits."
4678 msgstr ""
4679
4680 #. type: Plain text
4681 #: build/C/man2/perf_event_open.2:1312
4682 msgid ""
4683 "If not-set, it indicates an older kernel where I<cap_usr_time> and "
4684 "I<cap_usr_rdpmc> map to the same bit and thus both features should be used "
4685 "with caution."
4686 msgstr ""
4687
4688 #. type: TP
4689 #: build/C/man2/perf_event_open.2:1313
4690 #, fuzzy, no-wrap
4691 #| msgid "I<precise_ip> (Since Linux 2.6.35)"
4692 msgid "I<cap_user_rdpmc> (since Linux 3.12)"
4693 msgstr "I<precise_ip> (Linux 2.6.35 以降)"
4694
4695 #. type: Plain text
4696 #: build/C/man2/perf_event_open.2:1318
4697 msgid ""
4698 "If the hardware supports user-space read of performance counters without "
4699 "syscall (this is the \"rdpmc\" instruction on x86), then the following code "
4700 "can be used to do a read:"
4701 msgstr ""
4702
4703 #. type: Plain text
4704 #: build/C/man2/perf_event_open.2:1324
4705 #, no-wrap
4706 msgid ""
4707 "u32 seq, time_mult, time_shift, idx, width;\n"
4708 "u64 count, enabled, running;\n"
4709 "u64 cyc, time_offset;\n"
4710 msgstr ""
4711
4712 #. type: Plain text
4713 #: build/C/man2/perf_event_open.2:1330
4714 #, no-wrap
4715 msgid ""
4716 "do {\n"
4717 "    seq = pc-E<gt>lock;\n"
4718 "    barrier();\n"
4719 "    enabled = pc-E<gt>time_enabled;\n"
4720 "    running = pc-E<gt>time_running;\n"
4721 msgstr ""
4722
4723 #. type: Plain text
4724 #: build/C/man2/perf_event_open.2:1337
4725 #, no-wrap
4726 msgid ""
4727 "    if (pc-E<gt>cap_usr_time && enabled != running) {\n"
4728 "        cyc = rdtsc();\n"
4729 "        time_offset = pc-E<gt>time_offset;\n"
4730 "        time_mult   = pc-E<gt>time_mult;\n"
4731 "        time_shift  = pc-E<gt>time_shift;\n"
4732 "    }\n"
4733 msgstr ""
4734
4735 #. type: Plain text
4736 #: build/C/man2/perf_event_open.2:1340
4737 #, no-wrap
4738 msgid ""
4739 "    idx = pc-E<gt>index;\n"
4740 "    count = pc-E<gt>offset;\n"
4741 msgstr ""
4742
4743 #. type: Plain text
4744 #: build/C/man2/perf_event_open.2:1345
4745 #, no-wrap
4746 msgid ""
4747 "    if (pc-E<gt>cap_usr_rdpmc && idx) {\n"
4748 "        width = pc-E<gt>pmc_width;\n"
4749 "        count += rdpmc(idx - 1);\n"
4750 "    }\n"
4751 msgstr ""
4752
4753 #. type: Plain text
4754 #: build/C/man2/perf_event_open.2:1348
4755 #, no-wrap
4756 msgid ""
4757 "    barrier();\n"
4758 "} while (pc-E<gt>lock != seq);\n"
4759 msgstr ""
4760
4761 #. type: TP
4762 #: build/C/man2/perf_event_open.2:1350
4763 #, fuzzy, no-wrap
4764 #| msgid "I<precise_ip> (Since Linux 2.6.35)"
4765 msgid "I<cap_user_time  (since Linux 3.12)>"
4766 msgstr "I<precise_ip> (Linux 2.6.35 以降)"
4767
4768 #. type: Plain text
4769 #: build/C/man2/perf_event_open.2:1354
4770 msgid ""
4771 "This bit indicates the hardware has a constant, nonstop timestamp counter "
4772 "(TSC on x86)."
4773 msgstr ""
4774
4775 #. type: TP
4776 #: build/C/man2/perf_event_open.2:1354
4777 #, fuzzy, no-wrap
4778 #| msgid "I<sample_id_all> (Since Linux 2.6.38)"
4779 msgid "I<cap_user_time_zero> (since Linux 3.12)"
4780 msgstr "I<sample_id_all> (Linux 2.6.38 以降)"
4781
4782 #. type: Plain text
4783 #: build/C/man2/perf_event_open.2:1360
4784 msgid ""
4785 "Indicates the presence of I<time_zero> which allows mapping timestamp values "
4786 "to the hardware clock."
4787 msgstr ""
4788
4789 #. type: TP
4790 #: build/C/man2/perf_event_open.2:1360
4791 #, no-wrap
4792 msgid "I<pmc_width>"
4793 msgstr ""
4794
4795 #. type: Plain text
4796 #: build/C/man2/perf_event_open.2:1367
4797 msgid ""
4798 "If I<cap_usr_rdpmc>, this field provides the bit-width of the value read "
4799 "using the rdpmc or equivalent instruction.  This can be used to sign extend "
4800 "the result like:"
4801 msgstr ""
4802
4803 #. type: Plain text
4804 #: build/C/man2/perf_event_open.2:1373
4805 #, no-wrap
4806 msgid ""
4807 "pmc E<lt>E<lt>= 64 - pmc_width;\n"
4808 "pmc E<gt>E<gt>= 64 - pmc_width; // signed shift right\n"
4809 "count += pmc;\n"
4810 msgstr ""
4811
4812 #. type: TP
4813 #: build/C/man2/perf_event_open.2:1375
4814 #, no-wrap
4815 msgid "I<time_shift>, I<time_mult>, I<time_offset>"
4816 msgstr ""
4817
4818 #. type: Plain text
4819 #: build/C/man2/perf_event_open.2:1382
4820 msgid ""
4821 "If I<cap_usr_time>, these fields can be used to compute the time delta since "
4822 "time_enabled (in nanoseconds) using rdtsc or similar."
4823 msgstr ""
4824
4825 #. type: Plain text
4826 #: build/C/man2/perf_event_open.2:1390
4827 #, no-wrap
4828 msgid ""
4829 "    u64 quot, rem;\n"
4830 "    u64 delta;\n"
4831 "    quot = (cyc E<gt>E<gt> time_shift);\n"
4832 "    rem = cyc & ((1 E<lt>E<lt> time_shift) - 1);\n"
4833 "    delta = time_offset + quot * time_mult +\n"
4834 "            ((rem * time_mult) E<gt>E<gt> time_shift);\n"
4835 msgstr ""
4836
4837 #. type: Plain text
4838 #: build/C/man2/perf_event_open.2:1402
4839 msgid ""
4840 "Where I<time_offset>, I<time_mult>, I<time_shift>, and I<cyc> are read in "
4841 "the seqcount loop described above.  This delta can then be added to enabled "
4842 "and possible running (if idx), improving the scaling:"
4843 msgstr ""
4844
4845 #. type: Plain text
4846 #: build/C/man2/perf_event_open.2:1410
4847 #, no-wrap
4848 msgid ""
4849 "    enabled += delta;\n"
4850 "    if (idx)\n"
4851 "        running += delta;\n"
4852 "    quot = count / running;\n"
4853 "    rem  = count % running;\n"
4854 "    count = quot * enabled + (rem * enabled) / running;\n"
4855 msgstr ""
4856
4857 #. type: TP
4858 #: build/C/man2/perf_event_open.2:1411
4859 #, fuzzy, no-wrap
4860 #| msgid "I<bp_len> (Since Linux 2.6.33)"
4861 msgid "I<time_zero> (since Linux 3.12)"
4862 msgstr "I<bp_len> (Linux 2.6.33 以降)"
4863
4864 #. type: Plain text
4865 #: build/C/man2/perf_event_open.2:1419
4866 msgid ""
4867 "If I<cap_usr_time_zero> is set then the hardware clock (the TSC timestamp "
4868 "counter on x86)  can be calculated from the I<time_zero>, I<time_mult>, and "
4869 "I<time_shift> values:"
4870 msgstr ""
4871
4872 #. type: Plain text
4873 #: build/C/man2/perf_event_open.2:1424
4874 #, no-wrap
4875 msgid ""
4876 "    time = timestamp - time_zero;\n"
4877 "    quot = time / time_mult;\n"
4878 "    rem  = time % time_mult;\n"
4879 "    cyc = (quot E<lt>E<lt> time_shift) + (rem E<lt>E<lt> time_shift) / time_mult;\n"
4880 msgstr ""
4881
4882 #. type: Plain text
4883 #: build/C/man2/perf_event_open.2:1426
4884 msgid "And vice versa:"
4885 msgstr ""
4886
4887 #. type: Plain text
4888 #: build/C/man2/perf_event_open.2:1431
4889 #, no-wrap
4890 msgid ""
4891 "    quot = cyc E<gt>E<gt> time_shift;\n"
4892 "    rem  = cyc & ((1 E<lt>E<lt> time_shift) - 1);\n"
4893 "    timestamp = time_zero + quot * time_mult +\n"
4894 "        ((rem * time_mult) E<gt>E<gt> time_shift);\n"
4895 msgstr ""
4896
4897 #. type: TP
4898 #: build/C/man2/perf_event_open.2:1432
4899 #, no-wrap
4900 msgid "I<data_head>"
4901 msgstr ""
4902
4903 #. type: Plain text
4904 #: build/C/man2/perf_event_open.2:1438
4905 msgid ""
4906 "This points to the head of the data section.  The value continuously "
4907 "increases, it does not wrap.  The value needs to be manually wrapped by the "
4908 "size of the mmap buffer before accessing the samples."
4909 msgstr ""
4910
4911 #. type: Plain text
4912 #: build/C/man2/perf_event_open.2:1441
4913 msgid ""
4914 "On SMP-capable platforms, after reading the data_head value, user space "
4915 "should issue an rmb()."
4916 msgstr ""
4917
4918 #. type: TP
4919 #: build/C/man2/perf_event_open.2:1441
4920 #, no-wrap
4921 msgid "I<data_tail>"
4922 msgstr ""
4923
4924 #. type: Plain text
4925 #: build/C/man2/perf_event_open.2:1449
4926 msgid ""
4927 "When the mapping is B<PROT_WRITE>, the I<data_tail> value should be written "
4928 "by user space to reflect the last read data.  In this case the kernel will "
4929 "not overwrite unread data."
4930 msgstr ""
4931
4932 #. type: Plain text
4933 #: build/C/man2/perf_event_open.2:1451
4934 msgid "The following 2^n ring-buffer pages have the layout described below."
4935 msgstr ""
4936
4937 #. type: Plain text
4938 #: build/C/man2/perf_event_open.2:1465
4939 msgid ""
4940 "If I<perf_event_attr.sample_id_all> is set, then all event types will have "
4941 "the sample_type selected fields related to where/when (identity)  an event "
4942 "took place (TID, TIME, ID, CPU, STREAM_ID) described in "
4943 "B<PERF_RECORD_SAMPLE> below, it will be stashed just after the "
4944 "I<perf_event_header> and the fields already present for the existing fields, "
4945 "that is, at the end of the payload.  That way a newer perf.data file will be "
4946 "supported by older perf tools, with these new optional fields being ignored."
4947 msgstr ""
4948
4949 #. type: Plain text
4950 #: build/C/man2/perf_event_open.2:1467
4951 msgid "The mmap values start with a header:"
4952 msgstr ""
4953
4954 #. type: Plain text
4955 #: build/C/man2/perf_event_open.2:1475
4956 #, no-wrap
4957 msgid ""
4958 "struct perf_event_header {\n"
4959 "    __u32   type;\n"
4960 "    __u16   misc;\n"
4961 "    __u16   size;\n"
4962 "};\n"
4963 msgstr ""
4964
4965 #. type: Plain text
4966 #: build/C/man2/perf_event_open.2:1483
4967 msgid ""
4968 "Below, we describe the I<perf_event_header> fields in more detail.  For ease "
4969 "of reading, the fields with shorter descriptions are presented first."
4970 msgstr ""
4971
4972 #. type: Plain text
4973 #: build/C/man2/perf_event_open.2:1486
4974 msgid "This indicates the size of the record."
4975 msgstr ""
4976
4977 #. type: TP
4978 #: build/C/man2/perf_event_open.2:1486
4979 #, no-wrap
4980 msgid "I<misc>"
4981 msgstr ""
4982
4983 #. type: Plain text
4984 #: build/C/man2/perf_event_open.2:1491
4985 msgid "The I<misc> field contains additional information about the sample."
4986 msgstr ""
4987
4988 #. type: Plain text
4989 #: build/C/man2/perf_event_open.2:1496
4990 msgid ""
4991 "The CPU mode can be determined from this value by masking with "
4992 "B<PERF_RECORD_MISC_CPUMODE_MASK> and looking for one of the following (note "
4993 "these are not bit masks, only one can be set at a time):"
4994 msgstr ""
4995
4996 #. type: TP
4997 #: build/C/man2/perf_event_open.2:1497
4998 #, no-wrap
4999 msgid "B<PERF_RECORD_MISC_CPUMODE_UNKNOWN>"
5000 msgstr ""
5001
5002 #. type: Plain text
5003 #: build/C/man2/perf_event_open.2:1500
5004 msgid "Unknown CPU mode."
5005 msgstr ""
5006
5007 #. type: TP
5008 #: build/C/man2/perf_event_open.2:1500
5009 #, no-wrap
5010 msgid "B<PERF_RECORD_MISC_KERNEL>"
5011 msgstr ""
5012
5013 #. type: Plain text
5014 #: build/C/man2/perf_event_open.2:1503
5015 msgid "Sample happened in the kernel."
5016 msgstr ""
5017
5018 #. type: TP
5019 #: build/C/man2/perf_event_open.2:1503
5020 #, no-wrap
5021 msgid "B<PERF_RECORD_MISC_USER>"
5022 msgstr ""
5023
5024 #. type: Plain text
5025 #: build/C/man2/perf_event_open.2:1506
5026 msgid "Sample happened in user code."
5027 msgstr ""
5028
5029 #. type: TP
5030 #: build/C/man2/perf_event_open.2:1506
5031 #, no-wrap
5032 msgid "B<PERF_RECORD_MISC_HYPERVISOR>"
5033 msgstr ""
5034
5035 #. type: Plain text
5036 #: build/C/man2/perf_event_open.2:1509
5037 msgid "Sample happened in the hypervisor."
5038 msgstr ""
5039
5040 #. type: TP
5041 #: build/C/man2/perf_event_open.2:1509
5042 #, no-wrap
5043 msgid "B<PERF_RECORD_MISC_GUEST_KERNEL>"
5044 msgstr ""
5045
5046 #. type: Plain text
5047 #: build/C/man2/perf_event_open.2:1512
5048 msgid "Sample happened in the guest kernel."
5049 msgstr ""
5050
5051 #. type: TP
5052 #: build/C/man2/perf_event_open.2:1512
5053 #, no-wrap
5054 msgid "B<PERF_RECORD_MISC_GUEST_USER>"
5055 msgstr ""
5056
5057 #. type: Plain text
5058 #: build/C/man2/perf_event_open.2:1515
5059 msgid "Sample happened in guest user code."
5060 msgstr ""
5061
5062 #. type: Plain text
5063 #: build/C/man2/perf_event_open.2:1519
5064 msgid "In addition, one of the following bits can be set:"
5065 msgstr ""
5066
5067 #. type: TP
5068 #: build/C/man2/perf_event_open.2:1519
5069 #, no-wrap
5070 msgid "B<PERF_RECORD_MISC_MMAP_DATA>"
5071 msgstr "B<PERF_RECORD_MISC_MMAP_DATA>"
5072
5073 #. type: Plain text
5074 #: build/C/man2/perf_event_open.2:1523
5075 msgid ""
5076 "This is set when the mapping is not executable; otherwise the mapping is "
5077 "executable."
5078 msgstr ""
5079
5080 #. type: TP
5081 #: build/C/man2/perf_event_open.2:1523
5082 #, no-wrap
5083 msgid "B<PERF_RECORD_MISC_EXACT_IP>"
5084 msgstr ""
5085
5086 #. type: Plain text
5087 #: build/C/man2/perf_event_open.2:1531
5088 msgid ""
5089 "This indicates that the content of B<PERF_SAMPLE_IP> points to the actual "
5090 "instruction that triggered the event.  See also I<perf_event_attr."
5091 "precise_ip>."
5092 msgstr ""
5093
5094 #. type: TP
5095 #: build/C/man2/perf_event_open.2:1531
5096 #, no-wrap
5097 msgid "B<PERF_RECORD_MISC_EXT_RESERVED>"
5098 msgstr ""
5099
5100 #. type: Plain text
5101 #: build/C/man2/perf_event_open.2:1534
5102 msgid "This indicates there is extended data available (currently not used)."
5103 msgstr ""
5104
5105 #. type: Plain text
5106 #: build/C/man2/perf_event_open.2:1544
5107 msgid ""
5108 "The I<type> value is one of the below.  The values in the corresponding "
5109 "record (that follows the header)  depend on the I<type> selected as shown."
5110 msgstr ""
5111
5112 #. type: TP
5113 #: build/C/man2/perf_event_open.2:1546
5114 #, no-wrap
5115 msgid "B<PERF_RECORD_MMAP>"
5116 msgstr ""
5117
5118 #. type: Plain text
5119 #: build/C/man2/perf_event_open.2:1553
5120 msgid ""
5121 "The MMAP events record the B<PROT_EXEC> mappings so that we can correlate "
5122 "user-space IPs to code.  They have the following structure:"
5123 msgstr ""
5124
5125 #. type: Plain text
5126 #: build/C/man2/perf_event_open.2:1564
5127 #, no-wrap
5128 msgid ""
5129 "struct {\n"
5130 "    struct perf_event_header header;\n"
5131 "    u32    pid, tid;\n"
5132 "    u64    addr;\n"
5133 "    u64    len;\n"
5134 "    u64    pgoff;\n"
5135 "    char   filename[];\n"
5136 "};\n"
5137 msgstr ""
5138
5139 #. type: TP
5140 #: build/C/man2/perf_event_open.2:1566
5141 #, no-wrap
5142 msgid "B<PERF_RECORD_LOST>"
5143 msgstr ""
5144
5145 #. type: Plain text
5146 #: build/C/man2/perf_event_open.2:1569
5147 msgid "This record indicates when events are lost."
5148 msgstr ""
5149
5150 #. type: Plain text
5151 #: build/C/man2/perf_event_open.2:1578
5152 #, no-wrap
5153 msgid ""
5154 "struct {\n"
5155 "    struct perf_event_header header;\n"
5156 "    u64 id;\n"
5157 "    u64 lost;\n"
5158 "    struct sample_id sample_id;\n"
5159 "};\n"
5160 msgstr ""
5161
5162 #. type: Plain text
5163 #: build/C/man2/perf_event_open.2:1584
5164 msgid "is the unique event ID for the samples that were lost."
5165 msgstr ""
5166
5167 #. type: TP
5168 #: build/C/man2/perf_event_open.2:1584
5169 #, no-wrap
5170 msgid "I<lost>"
5171 msgstr ""
5172
5173 #. type: Plain text
5174 #: build/C/man2/perf_event_open.2:1587
5175 msgid "is the number of events that were lost."
5176 msgstr ""
5177
5178 #. type: TP
5179 #: build/C/man2/perf_event_open.2:1588
5180 #, no-wrap
5181 msgid "B<PERF_RECORD_COMM>"
5182 msgstr ""
5183
5184 #. type: Plain text
5185 #: build/C/man2/perf_event_open.2:1591
5186 msgid "This record indicates a change in the process name."
5187 msgstr ""
5188
5189 #. type: Plain text
5190 #: build/C/man2/perf_event_open.2:1600
5191 #, no-wrap
5192 msgid ""
5193 "struct {\n"
5194 "    struct perf_event_header header;\n"
5195 "    u32 pid, tid;\n"
5196 "    char comm[];\n"
5197 "    struct sample_id sample_id;\n"
5198 "};\n"
5199 msgstr ""
5200
5201 #. type: TP
5202 #: build/C/man2/perf_event_open.2:1602
5203 #, no-wrap
5204 msgid "B<PERF_RECORD_EXIT>"
5205 msgstr "B<PERF_RECORD_EXIT>"
5206
5207 #. type: Plain text
5208 #: build/C/man2/perf_event_open.2:1605
5209 msgid "This record indicates a process exit event."
5210 msgstr ""
5211
5212 #. type: Plain text
5213 #: build/C/man2/perf_event_open.2:1615 build/C/man2/perf_event_open.2:1645
5214 #, no-wrap
5215 msgid ""
5216 "struct {\n"
5217 "    struct perf_event_header header;\n"
5218 "    u32 pid, ppid;\n"
5219 "    u32 tid, ptid;\n"
5220 "    u64 time;\n"
5221 "    struct sample_id sample_id;\n"
5222 "};\n"
5223 msgstr ""
5224
5225 #. type: TP
5226 #: build/C/man2/perf_event_open.2:1617
5227 #, no-wrap
5228 msgid "B<PERF_RECORD_THROTTLE>, B<PERF_RECORD_UNTHROTTLE>"
5229 msgstr ""
5230
5231 #. type: Plain text
5232 #: build/C/man2/perf_event_open.2:1620
5233 msgid "This record indicates a throttle/unthrottle event."
5234 msgstr ""
5235
5236 #. type: Plain text
5237 #: build/C/man2/perf_event_open.2:1630
5238 #, no-wrap
5239 msgid ""
5240 "struct {\n"
5241 "    struct perf_event_header header;\n"
5242 "    u64 time;\n"
5243 "    u64 id;\n"
5244 "    u64 stream_id;\n"
5245 "    struct sample_id sample_id;\n"
5246 "};\n"
5247 msgstr ""
5248
5249 #. type: TP
5250 #: build/C/man2/perf_event_open.2:1632
5251 #, no-wrap
5252 msgid "B<PERF_RECORD_FORK>"
5253 msgstr "B<PERF_RECORD_FORK>"
5254
5255 #. type: Plain text
5256 #: build/C/man2/perf_event_open.2:1635
5257 msgid "This record indicates a fork event."
5258 msgstr ""
5259
5260 #. type: TP
5261 #: build/C/man2/perf_event_open.2:1647
5262 #, no-wrap
5263 msgid "B<PERF_RECORD_READ>"
5264 msgstr ""
5265
5266 #. type: Plain text
5267 #: build/C/man2/perf_event_open.2:1650
5268 msgid "This record indicates a read event."
5269 msgstr ""
5270
5271 #. type: Plain text
5272 #: build/C/man2/perf_event_open.2:1659
5273 #, no-wrap
5274 msgid ""
5275 "struct {\n"
5276 "    struct perf_event_header header;\n"
5277 "    u32 pid, tid;\n"
5278 "    struct read_format values;\n"
5279 "    struct sample_id sample_id;\n"
5280 "};\n"
5281 msgstr ""
5282
5283 #. type: TP
5284 #: build/C/man2/perf_event_open.2:1661
5285 #, no-wrap
5286 msgid "B<PERF_RECORD_SAMPLE>"
5287 msgstr ""
5288
5289 #. type: Plain text
5290 #: build/C/man2/perf_event_open.2:1664
5291 msgid "This record indicates a sample."
5292 msgstr ""
5293
5294 #. type: Plain text
5295 #: build/C/man2/perf_event_open.2:1696
5296 #, no-wrap
5297 msgid ""
5298 "struct {\n"
5299 "    struct perf_event_header header;\n"
5300 "    u64   sample_id;  /* if PERF_SAMPLE_IDENTIFIER */\n"
5301 "    u64   ip;         /* if PERF_SAMPLE_IP */\n"
5302 "    u32   pid, tid;   /* if PERF_SAMPLE_TID */\n"
5303 "    u64   time;       /* if PERF_SAMPLE_TIME */\n"
5304 "    u64   addr;       /* if PERF_SAMPLE_ADDR */\n"
5305 "    u64   id;         /* if PERF_SAMPLE_ID */\n"
5306 "    u64   stream_id;  /* if PERF_SAMPLE_STREAM_ID */\n"
5307 "    u32   cpu, res;   /* if PERF_SAMPLE_CPU */\n"
5308 "    u64   period;     /* if PERF_SAMPLE_PERIOD */\n"
5309 "    struct read_format v; /* if PERF_SAMPLE_READ */\n"
5310 "    u64   nr;         /* if PERF_SAMPLE_CALLCHAIN */\n"
5311 "    u64   ips[nr];    /* if PERF_SAMPLE_CALLCHAIN */\n"
5312 "    u32   size;       /* if PERF_SAMPLE_RAW */\n"
5313 "    char  data[size]; /* if PERF_SAMPLE_RAW */\n"
5314 "    u64   bnr;        /* if PERF_SAMPLE_BRANCH_STACK */\n"
5315 "    struct perf_branch_entry lbr[bnr];\n"
5316 "                      /* if PERF_SAMPLE_BRANCH_STACK */\n"
5317 "    u64   abi;        /* if PERF_SAMPLE_REGS_USER */\n"
5318 "    u64   regs[weight(mask)];\n"
5319 "                      /* if PERF_SAMPLE_REGS_USER */\n"
5320 "    u64   size;       /* if PERF_SAMPLE_STACK_USER */\n"
5321 "    char  data[size]; /* if PERF_SAMPLE_STACK_USER */\n"
5322 "    u64   dyn_size;   /* if PERF_SAMPLE_STACK_USER */\n"
5323 "    u64   weight;     /* if PERF_SAMPLE_WEIGHT */\n"
5324 "    u64   data_src;   /* if PERF_SAMPLE_DATA_SRC */\n"
5325 "    u64   transaction;/* if PERF_SAMPLE_TRANSACTION */\n"
5326 "};\n"
5327 msgstr ""
5328
5329 #. type: TP
5330 #: build/C/man2/perf_event_open.2:1698
5331 #, no-wrap
5332 msgid "I<sample_id>"
5333 msgstr ""
5334
5335 #. type: Plain text
5336 #: build/C/man2/perf_event_open.2:1708
5337 msgid ""
5338 "If B<PERF_SAMPLE_IDENTIFIER> is enabled, a 64-bit unique ID is included.  "
5339 "This is a duplication of the B<PERF_SAMPLE_ID> I<id> value, but included at "
5340 "the beginning of the sample so parsers can easily obtain the value."
5341 msgstr ""
5342
5343 #. type: TP
5344 #: build/C/man2/perf_event_open.2:1708
5345 #, no-wrap
5346 msgid "I<ip>"
5347 msgstr ""
5348
5349 #. type: Plain text
5350 #: build/C/man2/perf_event_open.2:1714
5351 msgid ""
5352 "If B<PERF_SAMPLE_IP> is enabled, then a 64-bit instruction pointer value is "
5353 "included."
5354 msgstr ""
5355
5356 #. type: TP
5357 #: build/C/man2/perf_event_open.2:1714
5358 #, no-wrap
5359 msgid "I<pid>, I<tid>"
5360 msgstr ""
5361
5362 #. type: Plain text
5363 #: build/C/man2/perf_event_open.2:1720
5364 msgid ""
5365 "If B<PERF_SAMPLE_TID> is enabled, then a 32-bit process ID and 32-bit thread "
5366 "ID are included."
5367 msgstr ""
5368
5369 #. type: TP
5370 #: build/C/man2/perf_event_open.2:1720
5371 #, no-wrap
5372 msgid "I<time>"
5373 msgstr ""
5374
5375 #. type: Plain text
5376 #: build/C/man2/perf_event_open.2:1728
5377 msgid ""
5378 "If B<PERF_SAMPLE_TIME> is enabled, then a 64-bit timestamp is included.  "
5379 "This is obtained via local_clock() which is a hardware timestamp if "
5380 "available and the jiffies value if not."
5381 msgstr ""
5382
5383 #. type: TP
5384 #: build/C/man2/perf_event_open.2:1728
5385 #, no-wrap
5386 msgid "I<addr>"
5387 msgstr ""
5388
5389 #. type: Plain text
5390 #: build/C/man2/perf_event_open.2:1735
5391 msgid ""
5392 "If B<PERF_SAMPLE_ADDR> is enabled, then a 64-bit address is included.  This "
5393 "is usually the address of a tracepoint, breakpoint, or software event; "
5394 "otherwise the value is 0."
5395 msgstr ""
5396
5397 #. type: Plain text
5398 #: build/C/man2/perf_event_open.2:1743
5399 msgid ""
5400 "If B<PERF_SAMPLE_ID> is enabled, a 64-bit unique ID is included.  If the "
5401 "event is a member of an event group, the group leader ID is returned.  This "
5402 "ID is the same as the one returned by B<PERF_FORMAT_ID>."
5403 msgstr ""
5404
5405 #. type: TP
5406 #: build/C/man2/perf_event_open.2:1743
5407 #, no-wrap
5408 msgid "I<stream_id>"
5409 msgstr ""
5410
5411 #. type: Plain text
5412 #: build/C/man2/perf_event_open.2:1753
5413 msgid ""
5414 "If B<PERF_SAMPLE_STREAM_ID> is enabled, a 64-bit unique ID is included.  "
5415 "Unlike B<PERF_SAMPLE_ID> the actual ID is returned, not the group leader.  "
5416 "This ID is the same as the one returned by B<PERF_FORMAT_ID>."
5417 msgstr ""
5418
5419 #. type: TP
5420 #: build/C/man2/perf_event_open.2:1753
5421 #, no-wrap
5422 msgid "I<cpu>, I<res>"
5423 msgstr ""
5424
5425 #. type: Plain text
5426 #: build/C/man2/perf_event_open.2:1760
5427 msgid ""
5428 "If B<PERF_SAMPLE_CPU> is enabled, this is a 32-bit value indicating which "
5429 "CPU was being used, in addition to a reserved (unused)  32-bit value."
5430 msgstr ""
5431
5432 #. type: TP
5433 #: build/C/man2/perf_event_open.2:1760
5434 #, no-wrap
5435 msgid "I<period>"
5436 msgstr ""
5437
5438 #. type: Plain text
5439 #: build/C/man2/perf_event_open.2:1766
5440 msgid ""
5441 "If B<PERF_SAMPLE_PERIOD> is enabled, a 64-bit value indicating the current "
5442 "sampling period is written."
5443 msgstr ""
5444
5445 #. type: TP
5446 #: build/C/man2/perf_event_open.2:1766
5447 #, no-wrap
5448 msgid "I<v>"
5449 msgstr ""
5450
5451 #. type: Plain text
5452 #: build/C/man2/perf_event_open.2:1777
5453 msgid ""
5454 "If B<PERF_SAMPLE_READ> is enabled, a structure of type read_format is "
5455 "included which has values for all events in the event group.  The values "
5456 "included depend on the I<read_format> value used at B<perf_event_open>()  "
5457 "time."
5458 msgstr ""
5459
5460 #. type: TP
5461 #: build/C/man2/perf_event_open.2:1777
5462 #, no-wrap
5463 msgid "I<nr>, I<ips[nr]>"
5464 msgstr ""
5465
5466 #. type: Plain text
5467 #: build/C/man2/perf_event_open.2:1785
5468 msgid ""
5469 "If B<PERF_SAMPLE_CALLCHAIN> is enabled, then a 64-bit number is included "
5470 "which indicates how many following 64-bit instruction pointers will follow.  "
5471 "This is the current callchain."
5472 msgstr ""
5473
5474 #. type: TP
5475 #: build/C/man2/perf_event_open.2:1785
5476 #, no-wrap
5477 msgid "I<size>, I<data[size]>"
5478 msgstr ""
5479
5480 #. type: Plain text
5481 #: build/C/man2/perf_event_open.2:1792
5482 msgid ""
5483 "If B<PERF_SAMPLE_RAW> is enabled, then a 32-bit value indicating size is "
5484 "included followed by an array of 8-bit values of length size.  The values "
5485 "are padded with 0 to have 64-bit alignment."
5486 msgstr ""
5487
5488 #. type: Plain text
5489 #: build/C/man2/perf_event_open.2:1797
5490 msgid ""
5491 "This RAW record data is opaque with respect to the ABI.  The ABI doesn't "
5492 "make any promises with respect to the stability of its content, it may vary "
5493 "depending on event, hardware, and kernel version."
5494 msgstr ""
5495
5496 #. type: TP
5497 #: build/C/man2/perf_event_open.2:1797
5498 #, no-wrap
5499 msgid "I<bnr>, I<lbr[bnr]>"
5500 msgstr ""
5501
5502 #. type: Plain text
5503 #: build/C/man2/perf_event_open.2:1806
5504 msgid ""
5505 "If B<PERF_SAMPLE_BRANCH_STACK> is enabled, then a 64-bit value indicating "
5506 "the number of records is included, followed by I<bnr> I<perf_branch_entry> "
5507 "structures which each include the fields:"
5508 msgstr ""
5509
5510 #. type: TP
5511 #: build/C/man2/perf_event_open.2:1807
5512 #, no-wrap
5513 msgid "I<from>"
5514 msgstr ""
5515
5516 #. type: Plain text
5517 #: build/C/man2/perf_event_open.2:1810
5518 msgid "This indicates the source instruction (may not be a branch)."
5519 msgstr ""
5520
5521 #. type: TP
5522 #: build/C/man2/perf_event_open.2:1810
5523 #, no-wrap
5524 msgid "I<to>"
5525 msgstr ""
5526
5527 #. type: Plain text
5528 #: build/C/man2/perf_event_open.2:1813
5529 msgid "The branch target."
5530 msgstr ""
5531
5532 #. type: TP
5533 #: build/C/man2/perf_event_open.2:1813
5534 #, no-wrap
5535 msgid "I<mispred>"
5536 msgstr ""
5537
5538 #. type: Plain text
5539 #: build/C/man2/perf_event_open.2:1816
5540 msgid "The branch target was mispredicted."
5541 msgstr ""
5542
5543 #. type: TP
5544 #: build/C/man2/perf_event_open.2:1816
5545 #, no-wrap
5546 msgid "I<predicted>"
5547 msgstr ""
5548
5549 #. type: Plain text
5550 #: build/C/man2/perf_event_open.2:1819
5551 msgid "The branch target was predicted."
5552 msgstr ""
5553
5554 #. type: TP
5555 #: build/C/man2/perf_event_open.2:1819
5556 #, fuzzy, no-wrap
5557 #| msgid "I<bp_type> (Since Linux 2.6.33)"
5558 msgid "I<in_tx> (since Linux 3.11)"
5559 msgstr "I<bp_type> (Linux 2.6.33 以降)"
5560
5561 #. type: Plain text
5562 #: build/C/man2/perf_event_open.2:1822
5563 msgid "The branch was in a transactional memory transaction."
5564 msgstr ""
5565
5566 #. type: TP
5567 #: build/C/man2/perf_event_open.2:1822
5568 #, fuzzy, no-wrap
5569 #| msgid "I<bp_type> (Since Linux 2.6.33)"
5570 msgid "I<abort> (since Linux 3.11)"
5571 msgstr "I<bp_type> (Linux 2.6.33 以降)"
5572
5573 #. type: Plain text
5574 #: build/C/man2/perf_event_open.2:1825
5575 msgid "The branch was in an aborted transactional memory transaction."
5576 msgstr ""
5577
5578 #. type: Plain text
5579 #: build/C/man2/perf_event_open.2:1829
5580 msgid ""
5581 "The entries are from most to least recent, so the first entry has the most "
5582 "recent branch."
5583 msgstr ""
5584
5585 #. type: Plain text
5586 #: build/C/man2/perf_event_open.2:1836
5587 msgid ""
5588 "Support for I<mispred> and I<predicted> is optional; if not supported, both "
5589 "values will be 0."
5590 msgstr ""
5591
5592 #. type: Plain text
5593 #: build/C/man2/perf_event_open.2:1840
5594 msgid ""
5595 "The type of branches recorded is specified by the I<branch_sample_type> "
5596 "field."
5597 msgstr ""
5598
5599 #. type: TP
5600 #: build/C/man2/perf_event_open.2:1842
5601 #, no-wrap
5602 msgid "I<abi>, I<regs[weight(mask)]>"
5603 msgstr ""
5604
5605 #. type: Plain text
5606 #: build/C/man2/perf_event_open.2:1847
5607 msgid ""
5608 "If B<PERF_SAMPLE_REGS_USER> is enabled, then the user CPU registers are "
5609 "recorded."
5610 msgstr ""
5611
5612 #. type: Plain text
5613 #: build/C/man2/perf_event_open.2:1853
5614 msgid ""
5615 "The I<abi> field is one of B<PERF_SAMPLE_REGS_ABI_NONE>, "
5616 "B<PERF_SAMPLE_REGS_ABI_32> or B<PERF_SAMPLE_REGS_ABI_64>."
5617 msgstr ""
5618
5619 #. type: Plain text
5620 #: build/C/man2/perf_event_open.2:1863
5621 msgid ""
5622 "The I<regs> field is an array of the CPU registers that were specified by "
5623 "the I<sample_regs_user> attr field.  The number of values is the number of "
5624 "bits set in the I<sample_regs_user> bit mask."
5625 msgstr ""
5626
5627 #. type: TP
5628 #: build/C/man2/perf_event_open.2:1863
5629 #, no-wrap
5630 msgid "I<size>, I<data[size]>, I<dyn_size>"
5631 msgstr ""
5632
5633 #. type: Plain text
5634 #: build/C/man2/perf_event_open.2:1877
5635 msgid ""
5636 "If B<PERF_SAMPLE_STACK_USER> is enabled, then record the user stack to "
5637 "enable backtracing.  I<size> is the size requested by the user in "
5638 "I<stack_user_size> or else the maximum record size.  I<data> is the stack "
5639 "data.  I<dyn_size> is the amount of data actually dumped (can be less than "
5640 "I<size>)."
5641 msgstr ""
5642
5643 #. type: TP
5644 #: build/C/man2/perf_event_open.2:1877
5645 #, no-wrap
5646 msgid "I<weight>"
5647 msgstr ""
5648
5649 #. type: Plain text
5650 #: build/C/man2/perf_event_open.2:1885
5651 msgid ""
5652 "If B<PERF_SAMPLE_WEIGHT> is enabled, then a 64-bit value provided by the "
5653 "hardware is recorded that indicates how costly the event was.  This allows "
5654 "expensive events to stand out more clearly in profiles."
5655 msgstr ""
5656
5657 #. type: TP
5658 #: build/C/man2/perf_event_open.2:1885
5659 #, no-wrap
5660 msgid "I<data_src>"
5661 msgstr ""
5662
5663 #. type: Plain text
5664 #: build/C/man2/perf_event_open.2:1891
5665 msgid ""
5666 "If B<PERF_SAMPLE_DATA_SRC> is enabled, then a 64-bit value is recorded that "
5667 "is made up of the following fields:"
5668 msgstr ""
5669
5670 #. type: TP
5671 #: build/C/man2/perf_event_open.2:1892
5672 #, no-wrap
5673 msgid "I<mem_op>"
5674 msgstr ""
5675
5676 #. type: Plain text
5677 #: build/C/man2/perf_event_open.2:1895
5678 msgid "Type of opcode, a bitwise combination of:"
5679 msgstr ""
5680
5681 #. type: TP
5682 #: build/C/man2/perf_event_open.2:1898
5683 #, no-wrap
5684 msgid "B<PERF_MEM_OP_NA>"
5685 msgstr ""
5686
5687 #. type: Plain text
5688 #: build/C/man2/perf_event_open.2:1901 build/C/man2/perf_event_open.2:1924
5689 #: build/C/man2/perf_event_open.2:1974 build/C/man2/perf_event_open.2:1997
5690 #: build/C/man2/perf_event_open.2:2011
5691 msgid "Not available"
5692 msgstr ""
5693
5694 #. type: TP
5695 #: build/C/man2/perf_event_open.2:1901
5696 #, no-wrap
5697 msgid "B<PERF_MEM_OP_LOAD>"
5698 msgstr ""
5699
5700 #. type: Plain text
5701 #: build/C/man2/perf_event_open.2:1904
5702 msgid "Load instruction"
5703 msgstr ""
5704
5705 #. type: TP
5706 #: build/C/man2/perf_event_open.2:1904
5707 #, no-wrap
5708 msgid "B<PERF_MEM_OP_STORE>"
5709 msgstr ""
5710
5711 #. type: Plain text
5712 #: build/C/man2/perf_event_open.2:1907
5713 msgid "Store instruction"
5714 msgstr ""
5715
5716 #. type: TP
5717 #: build/C/man2/perf_event_open.2:1907
5718 #, no-wrap
5719 msgid "B<PERF_MEM_OP_PFETCH>"
5720 msgstr ""
5721
5722 #. type: Plain text
5723 #: build/C/man2/perf_event_open.2:1910
5724 msgid "Prefetch"
5725 msgstr ""
5726
5727 #. type: TP
5728 #: build/C/man2/perf_event_open.2:1910
5729 #, no-wrap
5730 msgid "B<PERF_MEM_OP_EXEC>"
5731 msgstr ""
5732
5733 #. type: Plain text
5734 #: build/C/man2/perf_event_open.2:1913
5735 msgid "Executable code"
5736 msgstr ""
5737
5738 #. type: TP
5739 #: build/C/man2/perf_event_open.2:1915
5740 #, no-wrap
5741 msgid "I<mem_lvl>"
5742 msgstr ""
5743
5744 #. type: Plain text
5745 #: build/C/man2/perf_event_open.2:1918
5746 msgid "Memory hierarchy level hit or miss, a bitwise combination of:"
5747 msgstr ""
5748
5749 #. type: TP
5750 #: build/C/man2/perf_event_open.2:1921
5751 #, no-wrap
5752 msgid "B<PERF_MEM_LVL_NA>"
5753 msgstr ""
5754
5755 #. type: TP
5756 #: build/C/man2/perf_event_open.2:1924
5757 #, no-wrap
5758 msgid "B<PERF_MEM_LVL_HIT>"
5759 msgstr ""
5760
5761 #. type: Plain text
5762 #: build/C/man2/perf_event_open.2:1927 build/C/man2/perf_event_open.2:2014
5763 msgid "Hit"
5764 msgstr ""
5765
5766 #. type: TP
5767 #: build/C/man2/perf_event_open.2:1927
5768 #, no-wrap
5769 msgid "B<PERF_MEM_LVL_MISS>"
5770 msgstr ""
5771
5772 #. type: Plain text
5773 #: build/C/man2/perf_event_open.2:1930 build/C/man2/perf_event_open.2:2017
5774 msgid "Miss"
5775 msgstr ""
5776
5777 #. type: TP
5778 #: build/C/man2/perf_event_open.2:1930
5779 #, no-wrap
5780 msgid "B<PERF_MEM_LVL_L1>"
5781 msgstr ""
5782
5783 #. type: Plain text
5784 #: build/C/man2/perf_event_open.2:1933
5785 msgid "Level 1 cache"
5786 msgstr ""
5787
5788 #. type: TP
5789 #: build/C/man2/perf_event_open.2:1933
5790 #, no-wrap
5791 msgid "B<PERF_MEM_LVL_LFB>"
5792 msgstr ""
5793
5794 #. type: Plain text
5795 #: build/C/man2/perf_event_open.2:1936
5796 msgid "Line fill buffer"
5797 msgstr ""
5798
5799 #. type: TP
5800 #: build/C/man2/perf_event_open.2:1936
5801 #, no-wrap
5802 msgid "B<PERF_MEM_LVL_L2>"
5803 msgstr ""
5804
5805 #. type: Plain text
5806 #: build/C/man2/perf_event_open.2:1939
5807 msgid "Level 2 cache"
5808 msgstr ""
5809
5810 #. type: TP
5811 #: build/C/man2/perf_event_open.2:1939
5812 #, no-wrap
5813 msgid "B<PERF_MEM_LVL_L3>"
5814 msgstr ""
5815
5816 #. type: Plain text
5817 #: build/C/man2/perf_event_open.2:1942
5818 msgid "Level 3 cache"
5819 msgstr ""
5820
5821 #. type: TP
5822 #: build/C/man2/perf_event_open.2:1942
5823 #, no-wrap
5824 msgid "B<PERF_MEM_LVL_LOC_RAM>"
5825 msgstr ""
5826
5827 #. type: Plain text
5828 #: build/C/man2/perf_event_open.2:1945
5829 msgid "Local DRAM"
5830 msgstr ""
5831
5832 #. type: TP
5833 #: build/C/man2/perf_event_open.2:1945
5834 #, no-wrap
5835 msgid "B<PERF_MEM_LVL_REM_RAM1>"
5836 msgstr ""
5837
5838 #. type: Plain text
5839 #: build/C/man2/perf_event_open.2:1948
5840 msgid "Remote DRAM 1 hop"
5841 msgstr ""
5842
5843 #. type: TP
5844 #: build/C/man2/perf_event_open.2:1948
5845 #, no-wrap
5846 msgid "B<PERF_MEM_LVL_REM_RAM2>"
5847 msgstr ""
5848
5849 #. type: Plain text
5850 #: build/C/man2/perf_event_open.2:1951
5851 msgid "Remote DRAM 2 hops"
5852 msgstr ""
5853
5854 #. type: TP
5855 #: build/C/man2/perf_event_open.2:1951
5856 #, no-wrap
5857 msgid "B<PERF_MEM_LVL_REM_CCE1>"
5858 msgstr ""
5859
5860 #. type: Plain text
5861 #: build/C/man2/perf_event_open.2:1954
5862 msgid "Remote cache 1 hop"
5863 msgstr ""
5864
5865 #. type: TP
5866 #: build/C/man2/perf_event_open.2:1954
5867 #, no-wrap
5868 msgid "B<PERF_MEM_LVL_REM_CCE2>"
5869 msgstr ""
5870
5871 #. type: Plain text
5872 #: build/C/man2/perf_event_open.2:1957
5873 msgid "Remote cache 2 hops"
5874 msgstr ""
5875
5876 #. type: TP
5877 #: build/C/man2/perf_event_open.2:1957
5878 #, no-wrap
5879 msgid "B<PERF_MEM_LVL_IO>"
5880 msgstr ""
5881
5882 #. type: Plain text
5883 #: build/C/man2/perf_event_open.2:1960
5884 msgid "I/O memory"
5885 msgstr ""
5886
5887 #. type: TP
5888 #: build/C/man2/perf_event_open.2:1960
5889 #, no-wrap
5890 msgid "B<PERF_MEM_LVL_UNC>"
5891 msgstr ""
5892
5893 #. type: Plain text
5894 #: build/C/man2/perf_event_open.2:1963
5895 msgid "Uncached memory"
5896 msgstr ""
5897
5898 #. type: TP
5899 #: build/C/man2/perf_event_open.2:1965
5900 #, no-wrap
5901 msgid "I<mem_snoop>"
5902 msgstr ""
5903
5904 #. type: Plain text
5905 #: build/C/man2/perf_event_open.2:1968
5906 msgid "Snoop mode, a bitwise combination of:"
5907 msgstr ""
5908
5909 #. type: TP
5910 #: build/C/man2/perf_event_open.2:1971
5911 #, no-wrap
5912 msgid "B<PERF_MEM_SNOOP_NA>"
5913 msgstr ""
5914
5915 #. type: TP
5916 #: build/C/man2/perf_event_open.2:1974
5917 #, no-wrap
5918 msgid "B<PERF_MEM_SNOOP_NONE>"
5919 msgstr ""
5920
5921 #. type: Plain text
5922 #: build/C/man2/perf_event_open.2:1977
5923 msgid "No snoop"
5924 msgstr ""
5925
5926 #. type: TP
5927 #: build/C/man2/perf_event_open.2:1977
5928 #, no-wrap
5929 msgid "B<PERF_MEM_SNOOP_HIT>"
5930 msgstr ""
5931
5932 #. type: Plain text
5933 #: build/C/man2/perf_event_open.2:1980
5934 msgid "Snoop hit"
5935 msgstr ""
5936
5937 #. type: TP
5938 #: build/C/man2/perf_event_open.2:1980
5939 #, no-wrap
5940 msgid "B<PERF_MEM_SNOOP_MISS>"
5941 msgstr ""
5942
5943 #. type: Plain text
5944 #: build/C/man2/perf_event_open.2:1983
5945 msgid "Snoop miss"
5946 msgstr ""
5947
5948 #. type: TP
5949 #: build/C/man2/perf_event_open.2:1983
5950 #, no-wrap
5951 msgid "B<PERF_MEM_SNOOP_HITM>"
5952 msgstr ""
5953
5954 #. type: Plain text
5955 #: build/C/man2/perf_event_open.2:1986
5956 msgid "Snoop hit modified"
5957 msgstr ""
5958
5959 #. type: TP
5960 #: build/C/man2/perf_event_open.2:1988
5961 #, no-wrap
5962 msgid "I<mem_lock>"
5963 msgstr ""
5964
5965 #. type: Plain text
5966 #: build/C/man2/perf_event_open.2:1991
5967 msgid "Lock instruction, a bitwise combination of:"
5968 msgstr ""
5969
5970 #. type: TP
5971 #: build/C/man2/perf_event_open.2:1994
5972 #, no-wrap
5973 msgid "B<PERF_MEM_LOCK_NA>"
5974 msgstr ""
5975
5976 #. type: TP
5977 #: build/C/man2/perf_event_open.2:1997
5978 #, no-wrap
5979 msgid "B<PERF_MEM_LOCK_LOCKED>"
5980 msgstr ""
5981
5982 #. type: Plain text
5983 #: build/C/man2/perf_event_open.2:2000
5984 msgid "Locked transaction"
5985 msgstr ""
5986
5987 #. type: TP
5988 #: build/C/man2/perf_event_open.2:2002
5989 #, no-wrap
5990 msgid "I<mem_dtlb>"
5991 msgstr ""
5992
5993 #. type: Plain text
5994 #: build/C/man2/perf_event_open.2:2005
5995 msgid "TLB access hit or miss, a bitwise combination of:"
5996 msgstr ""
5997
5998 #. type: TP
5999 #: build/C/man2/perf_event_open.2:2008
6000 #, no-wrap
6001 msgid "B<PERF_MEM_TLB_NA>"
6002 msgstr ""
6003
6004 #. type: TP
6005 #: build/C/man2/perf_event_open.2:2011
6006 #, no-wrap
6007 msgid "B<PERF_MEM_TLB_HIT>"
6008 msgstr ""
6009
6010 #. type: TP
6011 #: build/C/man2/perf_event_open.2:2014
6012 #, no-wrap
6013 msgid "B<PERF_MEM_TLB_MISS>"
6014 msgstr ""
6015
6016 #. type: TP
6017 #: build/C/man2/perf_event_open.2:2017
6018 #, no-wrap
6019 msgid "B<PERF_MEM_TLB_L1>"
6020 msgstr ""
6021
6022 #. type: Plain text
6023 #: build/C/man2/perf_event_open.2:2020
6024 msgid "Level 1 TLB"
6025 msgstr ""
6026
6027 #. type: TP
6028 #: build/C/man2/perf_event_open.2:2020
6029 #, no-wrap
6030 msgid "B<PERF_MEM_TLB_L2>"
6031 msgstr ""
6032
6033 #. type: Plain text
6034 #: build/C/man2/perf_event_open.2:2023
6035 msgid "Level 2 TLB"
6036 msgstr ""
6037
6038 #. type: TP
6039 #: build/C/man2/perf_event_open.2:2023
6040 #, no-wrap
6041 msgid "B<PERF_MEM_TLB_WK>"
6042 msgstr ""
6043
6044 #. type: Plain text
6045 #: build/C/man2/perf_event_open.2:2026
6046 msgid "Hardware walker"
6047 msgstr ""
6048
6049 #. type: TP
6050 #: build/C/man2/perf_event_open.2:2026
6051 #, no-wrap
6052 msgid "B<PERF_MEM_TLB_OS>"
6053 msgstr ""
6054
6055 #. type: Plain text
6056 #: build/C/man2/perf_event_open.2:2029
6057 msgid "OS fault handler"
6058 msgstr ""
6059
6060 #. type: TP
6061 #: build/C/man2/perf_event_open.2:2032
6062 #, no-wrap
6063 msgid "I<transaction>"
6064 msgstr ""
6065
6066 #. type: Plain text
6067 #: build/C/man2/perf_event_open.2:2038
6068 msgid ""
6069 "If the B<PERF_SAMPLE_TRANSACTION> flag is set then a 64-bit field is "
6070 "recorded describing the sources of any transactional memory aborts."
6071 msgstr ""
6072
6073 #. type: Plain text
6074 #: build/C/man2/perf_event_open.2:2040
6075 #, fuzzy
6076 #| msgid "The I<subcmd> value is one of the following:"
6077 msgid "The field is a bitwise combination of the following values:"
6078 msgstr "I<subcmd> の値は以下のいずれかである"
6079
6080 #. type: TP
6081 #: build/C/man2/perf_event_open.2:2041
6082 #, fuzzy, no-wrap
6083 #| msgid "B<PERF_TYPE_TRACEPOINT>"
6084 msgid "B<PERF_TXN_ELISION>"
6085 msgstr "B<PERF_TYPE_TRACEPOINT>"
6086
6087 #. type: Plain text
6088 #: build/C/man2/perf_event_open.2:2044
6089 msgid "Abort from an elision type transaction (Intel-CPU-specific)."
6090 msgstr ""
6091
6092 #. type: TP
6093 #: build/C/man2/perf_event_open.2:2044
6094 #, fuzzy, no-wrap
6095 #| msgid "B<PERF_TYPE_TRACEPOINT>"
6096 msgid "B<PERF_TXN_TRANSACTION>"
6097 msgstr "B<PERF_TYPE_TRACEPOINT>"
6098
6099 #. type: Plain text
6100 #: build/C/man2/perf_event_open.2:2047
6101 msgid "Abort from a generic transaction."
6102 msgstr ""
6103
6104 #. type: TP
6105 #: build/C/man2/perf_event_open.2:2047
6106 #, fuzzy, no-wrap
6107 #| msgid "B<Q_SYNC>"
6108 msgid "B<PERF_TXN_SYNC>"
6109 msgstr "B<Q_SYNC>"
6110
6111 #. type: Plain text
6112 #: build/C/man2/perf_event_open.2:2050
6113 msgid "Synchronous abort (related to the reported instruction)."
6114 msgstr ""
6115
6116 #. type: TP
6117 #: build/C/man2/perf_event_open.2:2050
6118 #, fuzzy, no-wrap
6119 #| msgid "B<Q_SYNC>"
6120 msgid "B<PERF_TXN_ASYNC>"
6121 msgstr "B<Q_SYNC>"
6122
6123 #. type: Plain text
6124 #: build/C/man2/perf_event_open.2:2053
6125 msgid "Asynchronous abort (not related to the reported instruction)."
6126 msgstr ""
6127
6128 #. type: TP
6129 #: build/C/man2/perf_event_open.2:2053
6130 #, fuzzy, no-wrap
6131 #| msgid "B<PERF_TYPE_TRACEPOINT>"
6132 msgid "B<PERF_TXN_RETRY>"
6133 msgstr "B<PERF_TYPE_TRACEPOINT>"
6134
6135 #. type: Plain text
6136 #: build/C/man2/perf_event_open.2:2056
6137 msgid "Retryable abort (retrying the transaction may have succeeded)."
6138 msgstr ""
6139
6140 #. type: TP
6141 #: build/C/man2/perf_event_open.2:2056
6142 #, fuzzy, no-wrap
6143 #| msgid "B<PERF_TYPE_TRACEPOINT>"
6144 msgid "B<PERF_TXN_CONFLICT>"
6145 msgstr "B<PERF_TYPE_TRACEPOINT>"
6146
6147 #. type: Plain text
6148 #: build/C/man2/perf_event_open.2:2059
6149 msgid "Abort due to memory conflicts with other threads."
6150 msgstr ""
6151
6152 #. type: TP
6153 #: build/C/man2/perf_event_open.2:2059
6154 #, no-wrap
6155 msgid "B<PERF_TXN_CAPACITY_WRITE>"
6156 msgstr ""
6157
6158 #. type: Plain text
6159 #: build/C/man2/perf_event_open.2:2062
6160 msgid "Abort due to write capacity overflow."
6161 msgstr ""
6162
6163 #. type: TP
6164 #: build/C/man2/perf_event_open.2:2062
6165 #, no-wrap
6166 msgid "B<PERF_TXN_CAPACITY_READ>"
6167 msgstr ""
6168
6169 #. type: Plain text
6170 #: build/C/man2/perf_event_open.2:2065
6171 msgid "Abort due to read capacity overflow."
6172 msgstr ""
6173
6174 #. type: Plain text
6175 #: build/C/man2/perf_event_open.2:2072
6176 msgid ""
6177 "In addition, a user-specified abort code can be obtained from the high 32 "
6178 "bits of the field by shifting right by B<PERF_TXN_ABORT_SHIFT> and masking "
6179 "with B<PERF_TXN_ABORT_MASK>."
6180 msgstr ""
6181
6182 #. type: SS
6183 #: build/C/man2/perf_event_open.2:2074
6184 #, no-wrap
6185 msgid "Signal overflow"
6186 msgstr ""
6187
6188 #. type: Plain text
6189 #: build/C/man2/perf_event_open.2:2083
6190 msgid ""
6191 "Events can be set to deliver a signal when a threshold is crossed.  The "
6192 "signal handler is set up using the B<poll>(2), B<select>(2), B<epoll>(2)  "
6193 "and B<fcntl>(2), system calls."
6194 msgstr ""
6195
6196 #. type: Plain text
6197 #: build/C/man2/perf_event_open.2:2087
6198 msgid ""
6199 "To generate signals, sampling must be enabled (I<sample_period> must have a "
6200 "nonzero value)."
6201 msgstr ""
6202
6203 #. type: Plain text
6204 #: build/C/man2/perf_event_open.2:2089
6205 msgid "There are two ways to generate signals."
6206 msgstr ""
6207
6208 #. type: Plain text
6209 #: build/C/man2/perf_event_open.2:2099
6210 msgid ""
6211 "The first is to set a I<wakeup_events> or I<wakeup_watermark> value that "
6212 "will generate a signal if a certain number of samples or bytes have been "
6213 "written to the mmap ring buffer.  In this case a signal of type B<POLL_IN> "
6214 "is sent."
6215 msgstr ""
6216
6217 #. type: Plain text
6218 #: build/C/man2/perf_event_open.2:2111
6219 msgid ""
6220 "The other way is by use of the B<PERF_EVENT_IOC_REFRESH> ioctl.  This ioctl "
6221 "adds to a counter that decrements each time the event overflows.  When "
6222 "nonzero, a B<POLL_IN> signal is sent on overflow, but once the value reaches "
6223 "0, a signal is sent of type B<POLL_HUP> and the underlying event is disabled."
6224 msgstr ""
6225
6226 #.  FIXME(Vince) : Find out when this was introduced
6227 #. type: Plain text
6228 #: build/C/man2/perf_event_open.2:2117
6229 msgid ""
6230 "Note: on newer kernels (definitely noticed with 3.2)  a signal is provided "
6231 "for every overflow, even if I<wakeup_events> is not set."
6232 msgstr ""
6233
6234 #. type: SS
6235 #: build/C/man2/perf_event_open.2:2117
6236 #, no-wrap
6237 msgid "rdpmc instruction"
6238 msgstr ""
6239
6240 #. type: Plain text
6241 #: build/C/man2/perf_event_open.2:2124
6242 msgid ""
6243 "Starting with Linux 3.4 on x86, you can use the I<rdpmc> instruction to get "
6244 "low-latency reads without having to enter the kernel.  Note that using "
6245 "I<rdpmc> is not necessarily faster than other methods for reading event "
6246 "values."
6247 msgstr ""
6248
6249 #. type: Plain text
6250 #: build/C/man2/perf_event_open.2:2129
6251 msgid ""
6252 "Support for this can be detected with the I<cap_usr_rdpmc> field in the mmap "
6253 "page; documentation on how to calculate event values can be found in that "
6254 "section."
6255 msgstr ""
6256
6257 #. type: SS
6258 #: build/C/man2/perf_event_open.2:2129
6259 #, no-wrap
6260 msgid "perf_event ioctl calls"
6261 msgstr ""
6262
6263 #. type: Plain text
6264 #: build/C/man2/perf_event_open.2:2134
6265 msgid "Various ioctls act on B<perf_event_open>()  file descriptors"
6266 msgstr ""
6267
6268 #. type: TP
6269 #: build/C/man2/perf_event_open.2:2134
6270 #, no-wrap
6271 msgid "B<PERF_EVENT_IOC_ENABLE>"
6272 msgstr "B<PERF_EVENT_IOC_ENABLE>"
6273
6274 #. type: Plain text
6275 #: build/C/man2/perf_event_open.2:2138
6276 msgid ""
6277 "Enables the individual event or event group specified by the file descriptor "
6278 "argument."
6279 msgstr ""
6280
6281 #. type: Plain text
6282 #: build/C/man2/perf_event_open.2:2144
6283 msgid ""
6284 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
6285 "events in a group are enabled, even if the event specified is not the group "
6286 "leader (but see BUGS)."
6287 msgstr ""
6288
6289 #. type: TP
6290 #: build/C/man2/perf_event_open.2:2144
6291 #, no-wrap
6292 msgid "B<PERF_EVENT_IOC_DISABLE>"
6293 msgstr "B<PERF_EVENT_IOC_DISABLE>"
6294
6295 #. type: Plain text
6296 #: build/C/man2/perf_event_open.2:2148
6297 msgid ""
6298 "Disables the individual counter or event group specified by the file "
6299 "descriptor argument."
6300 msgstr ""
6301
6302 #. type: Plain text
6303 #: build/C/man2/perf_event_open.2:2155
6304 msgid ""
6305 "Enabling or disabling the leader of a group enables or disables the entire "
6306 "group; that is, while the group leader is disabled, none of the counters in "
6307 "the group will count.  Enabling or disabling a member of a group other than "
6308 "the leader affects only that counter; disabling a non-leader stops that "
6309 "counter from counting but doesn't affect any other counter."
6310 msgstr ""
6311
6312 #. type: Plain text
6313 #: build/C/man2/perf_event_open.2:2161
6314 msgid ""
6315 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
6316 "events in a group are disabled, even if the event specified is not the group "
6317 "leader (but see BUGS)."
6318 msgstr ""
6319
6320 #. type: TP
6321 #: build/C/man2/perf_event_open.2:2161
6322 #, no-wrap
6323 msgid "B<PERF_EVENT_IOC_REFRESH>"
6324 msgstr "B<PERF_EVENT_IOC_REFRESH>"
6325
6326 #. type: Plain text
6327 #: build/C/man2/perf_event_open.2:2175
6328 msgid ""
6329 "Non-inherited overflow counters can use this to enable a counter for a "
6330 "number of overflows specified by the argument, after which it is disabled.  "
6331 "Subsequent calls of this ioctl add the argument value to the current count.  "
6332 "A signal with B<POLL_IN> set will happen on each overflow until the count "
6333 "reaches 0; when that happens a signal with POLL_HUP set is sent and the "
6334 "event is disabled.  Using an argument of 0 is considered undefined behavior."
6335 msgstr ""
6336
6337 #. type: TP
6338 #: build/C/man2/perf_event_open.2:2175
6339 #, no-wrap
6340 msgid "B<PERF_EVENT_IOC_RESET>"
6341 msgstr "B<PERF_EVENT_IOC_RESET>"
6342
6343 #. type: Plain text
6344 #: build/C/man2/perf_event_open.2:2185
6345 msgid ""
6346 "Reset the event count specified by the file descriptor argument to zero.  "
6347 "This resets only the counts; there is no way to reset the multiplexing "
6348 "I<time_enabled> or I<time_running> values."
6349 msgstr ""
6350
6351 #. type: Plain text
6352 #: build/C/man2/perf_event_open.2:2191
6353 msgid ""
6354 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
6355 "events in a group are reset, even if the event specified is not the group "
6356 "leader (but see BUGS)."
6357 msgstr ""
6358
6359 #. type: TP
6360 #: build/C/man2/perf_event_open.2:2191
6361 #, no-wrap
6362 msgid "B<PERF_EVENT_IOC_PERIOD>"
6363 msgstr "B<PERF_EVENT_IOC_PERIOD>"
6364
6365 #. type: Plain text
6366 #: build/C/man2/perf_event_open.2:2197
6367 msgid ""
6368 "This updates the overflow period for the event.  On most architectures the "
6369 "new period does not take effect until after the next overflow happens; on "
6370 "ARM since Linux 3.7 the period is updated immediately."
6371 msgstr ""
6372
6373 #. type: Plain text
6374 #: build/C/man2/perf_event_open.2:2200
6375 msgid ""
6376 "The argument is a pointer to a 64-bit value containing the desired new "
6377 "period."
6378 msgstr ""
6379
6380 #. type: Plain text
6381 #: build/C/man2/perf_event_open.2:2203
6382 msgid ""
6383 "Prior to Linux 2.6.36 this ioctl always failed due to a bug in the kernel."
6384 msgstr ""
6385
6386 #. type: TP
6387 #: build/C/man2/perf_event_open.2:2204
6388 #, no-wrap
6389 msgid "B<PERF_EVENT_IOC_SET_OUTPUT>"
6390 msgstr ""
6391
6392 #. type: Plain text
6393 #: build/C/man2/perf_event_open.2:2209
6394 msgid ""
6395 "This tells the kernel to report event notifications to the specified file "
6396 "descriptor rather than the default one.  The file descriptors must all be on "
6397 "the same CPU."
6398 msgstr ""
6399
6400 #. type: Plain text
6401 #: build/C/man2/perf_event_open.2:2212
6402 msgid ""
6403 "The argument specifies the desired file descriptor, or -1 if output should "
6404 "be ignored."
6405 msgstr ""
6406
6407 #. type: TP
6408 #: build/C/man2/perf_event_open.2:2212
6409 #, fuzzy, no-wrap
6410 #| msgid "B<PERF_EVENT_IOC_SET_FILTER> (Since Linux 2.6.33)"
6411 msgid "B<PERF_EVENT_IOC_SET_FILTER> (since Linux 2.6.33)"
6412 msgstr "B<PERF_EVENT_IOC_SET_FILTER> (Linux 2.6.33 以降)"
6413
6414 #. type: Plain text
6415 #: build/C/man2/perf_event_open.2:2215
6416 msgid "This adds an ftrace filter to this event."
6417 msgstr ""
6418
6419 #. type: Plain text
6420 #: build/C/man2/perf_event_open.2:2217
6421 msgid "The argument is a pointer to the desired ftrace filter."
6422 msgstr ""
6423
6424 #. type: TP
6425 #: build/C/man2/perf_event_open.2:2217
6426 #, fuzzy, no-wrap
6427 #| msgid "B<PERF_EVENT_IOC_SET_FILTER> (Since Linux 2.6.33)"
6428 msgid "B<PERF_EVENT_IOC_ID> (since Linux 3.12)"
6429 msgstr "B<PERF_EVENT_IOC_SET_FILTER> (Linux 2.6.33 以降)"
6430
6431 #. type: Plain text
6432 #: build/C/man2/perf_event_open.2:2220
6433 msgid "Returns the event ID value for the given event fd."
6434 msgstr ""
6435
6436 #. type: Plain text
6437 #: build/C/man2/perf_event_open.2:2223
6438 msgid ""
6439 "The argument is a pointer to a 64-bit unsigned integer to hold the result."
6440 msgstr ""
6441
6442 #. type: SS
6443 #: build/C/man2/perf_event_open.2:2223
6444 #, no-wrap
6445 msgid "Using prctl"
6446 msgstr ""
6447
6448 #. type: Plain text
6449 #: build/C/man2/perf_event_open.2:2236
6450 msgid ""
6451 "A process can enable or disable all the event groups that are attached to it "
6452 "using the B<prctl>(2)  B<PR_TASK_PERF_EVENTS_ENABLE> and "
6453 "B<PR_TASK_PERF_EVENTS_DISABLE> operations.  This applies to all counters on "
6454 "the current process, whether created by this process or by another, and does "
6455 "not affect any counters that this process has created on other processes.  "
6456 "It enables or disables only the group leaders, not any other members in the "
6457 "groups."
6458 msgstr ""
6459
6460 #. type: SS
6461 #: build/C/man2/perf_event_open.2:2236
6462 #, no-wrap
6463 msgid "perf_event related configuration files"
6464 msgstr ""
6465
6466 #. type: Plain text
6467 #: build/C/man2/perf_event_open.2:2239
6468 msgid "Files in I</proc/sys/kernel/>"
6469 msgstr ""
6470
6471 #. type: TP
6472 #: build/C/man2/perf_event_open.2:2240
6473 #, no-wrap
6474 msgid "I</proc/sys/kernel/perf_event_paranoid>"
6475 msgstr ""
6476
6477 #. type: Plain text
6478 #: build/C/man2/perf_event_open.2:2246
6479 msgid ""
6480 "The I<perf_event_paranoid> file can be set to restrict access to the "
6481 "performance counters."
6482 msgstr ""
6483
6484 #. type: IP
6485 #: build/C/man2/perf_event_open.2:2247
6486 #, no-wrap
6487 msgid "2"
6488 msgstr ""
6489
6490 #. type: Plain text
6491 #: build/C/man2/perf_event_open.2:2249
6492 msgid "only allow user-space measurements."
6493 msgstr ""
6494
6495 #. type: IP
6496 #: build/C/man2/perf_event_open.2:2249
6497 #, no-wrap
6498 msgid "1"
6499 msgstr ""
6500
6501 #. type: Plain text
6502 #: build/C/man2/perf_event_open.2:2251
6503 msgid "allow both kernel and user measurements (default)."
6504 msgstr ""
6505
6506 #. type: IP
6507 #: build/C/man2/perf_event_open.2:2251
6508 #, no-wrap
6509 msgid "0"
6510 msgstr ""
6511
6512 #. type: Plain text
6513 #: build/C/man2/perf_event_open.2:2253
6514 msgid "allow access to CPU-specific data but not raw tracepoint samples."
6515 msgstr ""
6516
6517 #. type: IP
6518 #: build/C/man2/perf_event_open.2:2253
6519 #, no-wrap
6520 msgid "-1"
6521 msgstr "-1"
6522
6523 #. type: Plain text
6524 #: build/C/man2/perf_event_open.2:2255
6525 msgid "no restrictions."
6526 msgstr ""
6527
6528 #. type: Plain text
6529 #: build/C/man2/perf_event_open.2:2261
6530 msgid ""
6531 "The existence of the I<perf_event_paranoid> file is the official method for "
6532 "determining if a kernel supports B<perf_event_open>()."
6533 msgstr ""
6534
6535 #. type: TP
6536 #: build/C/man2/perf_event_open.2:2261
6537 #, no-wrap
6538 msgid "I</proc/sys/kernel/perf_event_max_sample_rate>"
6539 msgstr ""
6540
6541 #. type: Plain text
6542 #: build/C/man2/perf_event_open.2:2270
6543 msgid ""
6544 "This sets the maximum sample rate.  Setting this too high can allow users to "
6545 "sample at a rate that impacts overall machine performance and potentially "
6546 "lock up the machine.  The default value is 100000 (samples per second)."
6547 msgstr ""
6548
6549 #. type: TP
6550 #: build/C/man2/perf_event_open.2:2270
6551 #, no-wrap
6552 msgid "I</proc/sys/kernel/perf_event_mlock_kb>"
6553 msgstr ""
6554
6555 #. type: Plain text
6556 #: build/C/man2/perf_event_open.2:2275
6557 msgid ""
6558 "Maximum number of pages an unprivileged user can mlock (2) .  The default is "
6559 "516 (kB)."
6560 msgstr ""
6561
6562 #. type: Plain text
6563 #: build/C/man2/perf_event_open.2:2279
6564 msgid "Files in I</sys/bus/event_source/devices/>"
6565 msgstr ""
6566
6567 #. type: Plain text
6568 #: build/C/man2/perf_event_open.2:2285
6569 msgid ""
6570 "Since Linux 2.6.34 the kernel supports having multiple PMUs available for "
6571 "monitoring.  Information on how to program these PMUs can be found under I</"
6572 "sys/bus/event_source/devices/>.  Each subdirectory corresponds to a "
6573 "different PMU."
6574 msgstr ""
6575
6576 #. type: TP
6577 #: build/C/man2/perf_event_open.2:2285
6578 #, fuzzy, no-wrap
6579 #| msgid "I</sys/bus/event_source/devices/*/type> (Since Linux 2.6.38)"
6580 msgid "I</sys/bus/event_source/devices/*/type> (since Linux 2.6.38)"
6581 msgstr "I</sys/bus/event_source/devices/*/type> (Linux 2.6.38 以降)"
6582
6583 #. type: Plain text
6584 #: build/C/man2/perf_event_open.2:2290
6585 msgid ""
6586 "This contains an integer that can be used in the I<type> field of "
6587 "perf_event_attr to indicate you wish to use this PMU."
6588 msgstr ""
6589
6590 #. type: TP
6591 #: build/C/man2/perf_event_open.2:2290
6592 #, fuzzy, no-wrap
6593 #| msgid "I</sys/bus/event_source/devices/*/type> (Since Linux 2.6.38)"
6594 msgid "I</sys/bus/event_source/devices/*/rdpmc> (since Linux 3.4)"
6595 msgstr "I</sys/bus/event_source/devices/*/type> (Linux 2.6.38 以降)"
6596
6597 #. type: Plain text
6598 #: build/C/man2/perf_event_open.2:2295
6599 msgid ""
6600 "If this file is 1, then direct user-space access to the performance counter "
6601 "registers is allowed via the rdpmc instruction.  This can be disabled by "
6602 "echoing 0 to the file."
6603 msgstr ""
6604
6605 #. type: TP
6606 #: build/C/man2/perf_event_open.2:2295
6607 #, fuzzy, no-wrap
6608 #| msgid "I</sys/bus/event_source/devices/*/type> (Since Linux 2.6.38)"
6609 msgid "I</sys/bus/event_source/devices/*/format/> (since Linux 3.4)"
6610 msgstr "I</sys/bus/event_source/devices/*/type> (Linux 2.6.38 以降)"
6611
6612 #. type: Plain text
6613 #: build/C/man2/perf_event_open.2:2301
6614 msgid ""
6615 "This subdirectory contains information on the architecture-specific "
6616 "subfields available for programming the various I<config> fields in the "
6617 "perf_event_attr struct."
6618 msgstr ""
6619
6620 #. type: Plain text
6621 #: build/C/man2/perf_event_open.2:2311
6622 msgid ""
6623 "The content of each file is the name of the config field, followed by a "
6624 "colon, followed by a series of integer bit ranges separated by commas.  For "
6625 "example, the file I<event> may contain the value I<config1:1,6-10,44> which "
6626 "indicates that event is an attribute that occupies bits 1,6-10, and 44 of "
6627 "perf_event_attr::config1."
6628 msgstr ""
6629
6630 #. type: TP
6631 #: build/C/man2/perf_event_open.2:2311
6632 #, fuzzy, no-wrap
6633 #| msgid "I</sys/bus/event_source/devices/*/type> (Since Linux 2.6.38)"
6634 msgid "I</sys/bus/event_source/devices/*/events/> (since Linux 3.4)"
6635 msgstr "I</sys/bus/event_source/devices/*/type> (Linux 2.6.38 以降)"
6636
6637 #. type: Plain text
6638 #: build/C/man2/perf_event_open.2:2320
6639 msgid ""
6640 "This subdirectory contains files with predefined events.  The contents are "
6641 "strings describing the event settings expressed in terms of the fields found "
6642 "in the previously mentioned I<./format/> directory.  These are not "
6643 "necessarily complete lists of all events supported by a PMU, but usually a "
6644 "subset of events deemed useful or interesting."
6645 msgstr ""
6646
6647 #. type: Plain text
6648 #: build/C/man2/perf_event_open.2:2328
6649 msgid ""
6650 "The content of each file is a list of attribute names separated by commas.  "
6651 "Each entry has an optional value (either hex or decimal).  If no value is "
6652 "specified than it is assumed to be a single-bit field with a value of 1.  An "
6653 "example entry may look like this: I<event=0x2,inv,ldlat=3>."
6654 msgstr ""
6655
6656 #. type: TP
6657 #: build/C/man2/perf_event_open.2:2328
6658 #, no-wrap
6659 msgid "I</sys/bus/event_source/devices/*/uevent>"
6660 msgstr ""
6661
6662 #. type: Plain text
6663 #: build/C/man2/perf_event_open.2:2332
6664 msgid ""
6665 "This file is the standard kernel device interface for injecting hotplug "
6666 "events."
6667 msgstr ""
6668
6669 #. type: TP
6670 #: build/C/man2/perf_event_open.2:2332
6671 #, fuzzy, no-wrap
6672 #| msgid "I</sys/bus/event_source/devices/*/type> (Since Linux 2.6.38)"
6673 msgid "I</sys/bus/event_source/devices/*/cpumask> (since Linux 3.7)"
6674 msgstr "I</sys/bus/event_source/devices/*/type> (Linux 2.6.38 以降)"
6675
6676 #. type: Plain text
6677 #: build/C/man2/perf_event_open.2:2341
6678 msgid ""
6679 "The I<cpumask> file contains a comma-separated list of integers that "
6680 "indicate a representative CPU number for each socket (package)  on the "
6681 "motherboard.  This is needed when setting up uncore or northbridge events, "
6682 "as those PMUs present socket-wide events."
6683 msgstr ""
6684
6685 #. type: Plain text
6686 #: build/C/man2/perf_event_open.2:2348
6687 msgid ""
6688 "B<perf_event_open>()  returns the new file descriptor, or -1 if an error "
6689 "occurred (in which case, I<errno> is set appropriately)."
6690 msgstr ""
6691
6692 #. type: TP
6693 #: build/C/man2/perf_event_open.2:2349
6694 #, no-wrap
6695 msgid "B<E2BIG>"
6696 msgstr ""
6697
6698 #. type: Plain text
6699 #: build/C/man2/perf_event_open.2:2364
6700 msgid ""
6701 "Returned if the perf_event_attr I<size> value is too small (smaller than "
6702 "B<PERF_ATTR_SIZE_VER0>), too big (larger than the page size), or larger than "
6703 "the kernel supports and the extra bytes are not zero.  When B<E2BIG> is "
6704 "returned, the perf_event_attr I<size> field is overwritten by the kernel to "
6705 "be the size of the structure it was expecting."
6706 msgstr ""
6707
6708 #. type: Plain text
6709 #: build/C/man2/perf_event_open.2:2367
6710 msgid "Returned if the specified event is not available."
6711 msgstr ""
6712
6713 #. type: TP
6714 #: build/C/man2/perf_event_open.2:2367
6715 #, no-wrap
6716 msgid "B<ENOSPC>"
6717 msgstr "B<ENOSPC>"
6718
6719 #. type: Plain text
6720 #: build/C/man2/perf_event_open.2:2377
6721 msgid ""
6722 "Prior to Linux 3.3, if there was not enough room for the event, B<ENOSPC> "
6723 "was returned.  Linus did not like this, and this was changed to B<EINVAL>.  "
6724 "B<ENOSPC> is still returned if you try to read results into too small of a "
6725 "buffer."
6726 msgstr ""
6727
6728 #. type: SH
6729 #: build/C/man2/perf_event_open.2:2377
6730 #, no-wrap
6731 msgid "VERSION"
6732 msgstr "バージョン"
6733
6734 #. type: Plain text
6735 #: build/C/man2/perf_event_open.2:2382
6736 msgid ""
6737 "B<perf_event_open>()  was introduced in Linux 2.6.31 but was called "
6738 "B<perf_counter_open>().  It was renamed in Linux 2.6.32."
6739 msgstr ""
6740
6741 #. type: Plain text
6742 #: build/C/man2/perf_event_open.2:2387
6743 msgid ""
6744 "This B<perf_event_open>()  system call Linux- specific and should not be "
6745 "used in programs intended to be portable."
6746 msgstr ""
6747 "B<perf_event_open>() システムコールは Linux 固有であり、 移植を意図したプログ"
6748 "ラムで使用すべきではない。"
6749
6750 #. type: Plain text
6751 #: build/C/man2/perf_event_open.2:2391
6752 msgid ""
6753 "Glibc does not provide a wrapper for this system call; call it using "
6754 "B<syscall>(2).  See the example below."
6755 msgstr ""
6756 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
6757 "(2)  を使って呼び出すこと。 以下の例を参照。"
6758
6759 #. type: Plain text
6760 #: build/C/man2/perf_event_open.2:2397
6761 msgid ""
6762 "The official way of knowing if B<perf_event_open>()  support is enabled is "
6763 "checking for the existence of the file I</proc/sys/kernel/"
6764 "perf_event_paranoid>."
6765 msgstr ""
6766
6767 #. type: SH
6768 #: build/C/man2/perf_event_open.2:2397 build/C/man2/pivot_root.2:134
6769 #: build/C/man2/ptrace.2:1963
6770 #, no-wrap
6771 msgid "BUGS"
6772 msgstr "バグ"
6773
6774 #. type: Plain text
6775 #: build/C/man2/perf_event_open.2:2404
6776 msgid ""
6777 "The B<F_SETOWN_EX> option to B<fcntl>(2)  is needed to properly get overflow "
6778 "signals in threads.  This was introduced in Linux 2.6.32."
6779 msgstr ""
6780
6781 #. type: Plain text
6782 #: build/C/man2/perf_event_open.2:2412
6783 msgid ""
6784 "Prior to Linux 2.6.33 (at least for x86) the kernel did not check if events "
6785 "could be scheduled together until read time.  The same happens on all known "
6786 "kernels if the NMI watchdog is enabled.  This means to see if a given set of "
6787 "events works you have to B<perf_event_open>(), start, then read before you "
6788 "know for sure you can get valid measurements."
6789 msgstr ""
6790
6791 #. type: Plain text
6792 #: build/C/man2/perf_event_open.2:2416
6793 msgid ""
6794 "Prior to Linux 2.6.34 event constraints were not enforced by the kernel.  In "
6795 "that case, some events would silently return \"0\" if the kernel scheduled "
6796 "them in an improper counter slot."
6797 msgstr ""
6798
6799 #. type: Plain text
6800 #: build/C/man2/perf_event_open.2:2419
6801 msgid ""
6802 "Prior to Linux 2.6.34 there was a bug when multiplexing where the wrong "
6803 "results could be returned."
6804 msgstr ""
6805
6806 #. type: Plain text
6807 #: build/C/man2/perf_event_open.2:2422
6808 msgid ""
6809 "Kernels from Linux 2.6.35 to Linux 2.6.39 can quickly crash the kernel if "
6810 "\"inherit\" is enabled and many threads are started."
6811 msgstr ""
6812
6813 #. type: Plain text
6814 #: build/C/man2/perf_event_open.2:2426
6815 msgid ""
6816 "Prior to Linux 2.6.35, B<PERF_FORMAT_GROUP> did not work with attached "
6817 "processes."
6818 msgstr ""
6819
6820 #. type: Plain text
6821 #: build/C/man2/perf_event_open.2:2431
6822 msgid ""
6823 "In older Linux 2.6 versions, refreshing an event group leader refreshed all "
6824 "siblings, and refreshing with a parameter of 0 enabled infinite refresh.  "
6825 "This behavior is unsupported and should not be relied on."
6826 msgstr ""
6827
6828 #. type: Plain text
6829 #: build/C/man2/perf_event_open.2:2437
6830 msgid ""
6831 "There is a bug in the kernel code between Linux 2.6.36 and Linux 3.0 that "
6832 "ignores the \"watermark\" field and acts as if a wakeup_event was chosen if "
6833 "the union has a nonzero value in it."
6834 msgstr ""
6835
6836 #. type: Plain text
6837 #: build/C/man2/perf_event_open.2:2443
6838 msgid ""
6839 "From Linux 2.6.31 to Linux 3.4, the B<PERF_IOC_FLAG_GROUP> ioctl argument "
6840 "was broken and would repeatedly operate on the event specified rather than "
6841 "iterating across all sibling events in a group."
6842 msgstr ""
6843
6844 #. type: Plain text
6845 #: build/C/man2/perf_event_open.2:2454
6846 msgid ""
6847 "From Linux 3.4 to Linux 3.11, the mmap I<cap_usr_rdpmc> and I<cap_usr_time> "
6848 "bits mapped to the same location.  Code should migrate to the new "
6849 "I<cap_user_rdpmc> and I<cap_user_time> fields instead."
6850 msgstr ""
6851
6852 #. type: Plain text
6853 #: build/C/man2/perf_event_open.2:2459
6854 msgid ""
6855 "Always double-check your results! Various generalized events have had wrong "
6856 "values.  For example, retired branches measured the wrong thing on AMD "
6857 "machines until Linux 2.6.35."
6858 msgstr ""
6859
6860 #. type: SH
6861 #: build/C/man2/perf_event_open.2:2459 build/C/man2/process_vm_readv.2:295
6862 #: build/C/man2/splice.2:223 build/C/man2/tee.2:130
6863 #, no-wrap
6864 msgid "EXAMPLE"
6865 msgstr "例"
6866
6867 #. type: Plain text
6868 #: build/C/man2/perf_event_open.2:2463
6869 msgid ""
6870 "The following is a short example that measures the total instruction count "
6871 "of a call to B<printf>(3)."
6872 msgstr ""
6873
6874 #. type: Plain text
6875 #: build/C/man2/perf_event_open.2:2472
6876 #, no-wrap
6877 msgid ""
6878 "#include E<lt>stdlib.hE<gt>\n"
6879 "#include E<lt>stdio.hE<gt>\n"
6880 "#include E<lt>unistd.hE<gt>\n"
6881 "#include E<lt>string.hE<gt>\n"
6882 "#include E<lt>sys/ioctl.hE<gt>\n"
6883 "#include E<lt>linux/perf_event.hE<gt>\n"
6884 "#include E<lt>asm/unistd.hE<gt>\n"
6885 msgstr ""
6886 "#include E<lt>stdlib.hE<gt>\n"
6887 "#include E<lt>stdio.hE<gt>\n"
6888 "#include E<lt>unistd.hE<gt>\n"
6889 "#include E<lt>string.hE<gt>\n"
6890 "#include E<lt>sys/ioctl.hE<gt>\n"
6891 "#include E<lt>linux/perf_event.hE<gt>\n"
6892 "#include E<lt>asm/unistd.hE<gt>\n"
6893
6894 #. type: Plain text
6895 #: build/C/man2/perf_event_open.2:2478
6896 #, fuzzy, no-wrap
6897 #| msgid ""
6898 #| "B<int perf_event_open(struct perf_event_attr *>I<attr>B<,>\n"
6899 #| "B<                    pid_t >I<pid>B<, int >I<cpu>B<, int >I<group_fd>B<,>\n"
6900 #| "B<                    unsigned long >I<flags>B<);>\n"
6901 msgid ""
6902 "static long\n"
6903 "perf_event_open(struct perf_event_attr *hw_event, pid_t pid,\n"
6904 "                int cpu, int group_fd, unsigned long flags)\n"
6905 "{\n"
6906 "    int ret;\n"
6907 msgstr ""
6908 "B<int perf_event_open(struct perf_event_attr *>I<attr>B<,>\n"
6909 "B<                    pid_t >I<pid>B<, int >I<cpu>B<, int >I<group_fd>B<,>\n"
6910 "B<                    unsigned long >I<flags>B<);>\n"
6911
6912 #. type: Plain text
6913 #: build/C/man2/perf_event_open.2:2483
6914 #, no-wrap
6915 msgid ""
6916 "    ret = syscall(__NR_perf_event_open, hw_event, pid, cpu,\n"
6917 "                   group_fd, flags);\n"
6918 "    return ret;\n"
6919 "}\n"
6920 msgstr ""
6921
6922 #. type: Plain text
6923 #: build/C/man2/perf_event_open.2:2490
6924 #, no-wrap
6925 msgid ""
6926 "int\n"
6927 "main(int argc, char **argv)\n"
6928 "{\n"
6929 "    struct perf_event_attr pe;\n"
6930 "    long long count;\n"
6931 "    int fd;\n"
6932 msgstr ""
6933 "int\n"
6934 "main(int argc, char **argv)\n"
6935 "{\n"
6936 "    struct perf_event_attr pe;\n"
6937 "    long long count;\n"
6938 "    int fd;\n"
6939
6940 #. type: Plain text
6941 #: build/C/man2/perf_event_open.2:2498
6942 #, no-wrap
6943 msgid ""
6944 "    memset(&pe, 0, sizeof(struct perf_event_attr));\n"
6945 "    pe.type = PERF_TYPE_HARDWARE;\n"
6946 "    pe.size = sizeof(struct perf_event_attr);\n"
6947 "    pe.config = PERF_COUNT_HW_INSTRUCTIONS;\n"
6948 "    pe.disabled = 1;\n"
6949 "    pe.exclude_kernel = 1;\n"
6950 "    pe.exclude_hv = 1;\n"
6951 msgstr ""
6952
6953 #. type: Plain text
6954 #: build/C/man2/perf_event_open.2:2504
6955 #, no-wrap
6956 msgid ""
6957 "    fd = perf_event_open(&pe, 0, -1, -1, 0);\n"
6958 "    if (fd == -1) {\n"
6959 "       fprintf(stderr, \"Error opening leader %llx\\en\", pe.config);\n"
6960 "       exit(EXIT_FAILURE);\n"
6961 "    }\n"
6962 msgstr ""
6963 "    fd = perf_event_open(&pe, 0, -1, -1, 0);\n"
6964 "    if (fd == -1) {\n"
6965 "       fprintf(stderr, \"Error opening leader %llx\\en\", pe.config);\n"
6966 "       exit(EXIT_FAILURE);\n"
6967 "    }\n"
6968
6969 #. type: Plain text
6970 #: build/C/man2/perf_event_open.2:2507
6971 #, no-wrap
6972 msgid ""
6973 "    ioctl(fd, PERF_EVENT_IOC_RESET, 0);\n"
6974 "    ioctl(fd, PERF_EVENT_IOC_ENABLE, 0);\n"
6975 msgstr ""
6976
6977 #. type: Plain text
6978 #: build/C/man2/perf_event_open.2:2509
6979 #, no-wrap
6980 msgid "    printf(\"Measuring instruction count for this printf\\en\");\n"
6981 msgstr ""
6982
6983 #. type: Plain text
6984 #: build/C/man2/perf_event_open.2:2512
6985 #, no-wrap
6986 msgid ""
6987 "    ioctl(fd, PERF_EVENT_IOC_DISABLE, 0);\n"
6988 "    read(fd, &count, sizeof(long long));\n"
6989 msgstr ""
6990
6991 #. type: Plain text
6992 #: build/C/man2/perf_event_open.2:2514
6993 #, no-wrap
6994 msgid "    printf(\"Used %lld instructions\\en\", count);\n"
6995 msgstr ""
6996
6997 #. type: Plain text
6998 #: build/C/man2/perf_event_open.2:2517
6999 #, no-wrap
7000 msgid ""
7001 "    close(fd);\n"
7002 "}\n"
7003 msgstr ""
7004
7005 #. type: Plain text
7006 #: build/C/man2/perf_event_open.2:2524
7007 msgid "B<fcntl>(2), B<mmap>(2), B<open>(2), B<prctl>(2), B<read>(2)"
7008 msgstr "B<fcntl>(2), B<mmap>(2), B<open>(2), B<prctl>(2), B<read>(2)"
7009
7010 #. type: TH
7011 #: build/C/man2/perfmonctl.2:27
7012 #, no-wrap
7013 msgid "PERFMONCTL"
7014 msgstr ""
7015
7016 #. type: Plain text
7017 #: build/C/man2/perfmonctl.2:30
7018 msgid "perfmonctl - interface to IA-64 performance monitoring unit"
7019 msgstr ""
7020
7021 #. type: Plain text
7022 #: build/C/man2/perfmonctl.2:34
7023 #, no-wrap
7024 msgid ""
7025 "B<#include E<lt>syscall.hE<gt>>\n"
7026 "B<#include E<lt>perfmon.hE<gt>>\n"
7027 msgstr ""
7028 "B<#include E<lt>syscall.hE<gt>>\n"
7029 "B<#include E<lt>perfmon.hE<gt>>\n"
7030
7031 #. type: Plain text
7032 #: build/C/man2/perfmonctl.2:36
7033 #, no-wrap
7034 msgid "B<long perfmonctl(int >I<fd>B<, int >I<cmd>B<, void *>I<arg>B<, int >I<narg>B<);>\n"
7035 msgstr "B<long perfmonctl(int >I<fd>B<, int >I<cmd>B<, void *>I<arg>B<, int >I<narg>B<);>\n"
7036
7037 #. type: Plain text
7038 #: build/C/man2/perfmonctl.2:47
7039 msgid ""
7040 "The IA-64-specific B<perfmonctl>()  system call provides an interface to the "
7041 "PMU (performance monitoring unit).  The PMU consists of PMD (performance "
7042 "monitoring data) registers and PMC (performance monitoring control) "
7043 "registers, which gather hardware statistics."
7044 msgstr ""
7045
7046 #. type: Plain text
7047 #: build/C/man2/perfmonctl.2:57
7048 msgid ""
7049 "B<perfmonctl>()  applies the operation I<cmd> to the input arguments "
7050 "specified by I<arg>.  The number of arguments is defined by I<narg>.  The "
7051 "I<fd> argument specifies the perfmon context to operate on."
7052 msgstr ""
7053
7054 #. type: Plain text
7055 #: build/C/man2/perfmonctl.2:61
7056 msgid "Supported values for I<cmd> are:"
7057 msgstr ""
7058
7059 #. type: TP
7060 #: build/C/man2/perfmonctl.2:61
7061 #, no-wrap
7062 msgid "B<PFM_CREATE_CONTEXT>"
7063 msgstr "B<PFM_CREATE_CONTEXT>"
7064
7065 #. type: Plain text
7066 #: build/C/man2/perfmonctl.2:65
7067 #, no-wrap
7068 msgid "B<perfmonctl(int >I<fd>B<, PFM_CREATE_CONTEXT, pfarg_context_t *>I<ctxt>B<, 1);>\n"
7069 msgstr ""
7070
7071 #. type: Plain text
7072 #: build/C/man2/perfmonctl.2:67
7073 msgid "Set up a context."
7074 msgstr ""
7075
7076 #. type: Plain text
7077 #: build/C/man2/perfmonctl.2:74
7078 msgid ""
7079 "The I<fd> parameter is ignored.  A new perfmon context is created as "
7080 "specified in I<ctxt> and its file descriptor is returned in I<ctxt-"
7081 "E<gt>ctx_fd>."
7082 msgstr ""
7083
7084 #. type: Plain text
7085 #: build/C/man2/perfmonctl.2:86
7086 msgid ""
7087 "The file descriptor can be used in subsequent calls to B<perfmonctl>()  and "
7088 "can be used to read event notifications (type I<pfm_msg_t>)  using B<read>"
7089 "(2).  The file descriptor is pollable using B<select>(2), B<poll>(2), and "
7090 "B<epoll>(7)."
7091 msgstr ""
7092
7093 #. type: Plain text
7094 #: build/C/man2/perfmonctl.2:90
7095 msgid ""
7096 "The context can be destroyed by calling B<close>(2)  on the file descriptor."
7097 msgstr ""
7098
7099 #. type: TP
7100 #: build/C/man2/perfmonctl.2:90
7101 #, no-wrap
7102 msgid "B<PFM_WRITE_PMCS>"
7103 msgstr ""
7104
7105 #. type: Plain text
7106 #: build/C/man2/perfmonctl.2:95
7107 #, no-wrap
7108 msgid "B<perfmonctl(int >I<fd>B<, PFM_WRITE_PMCS, pfarg_reg_t *>I<pmcs>B<, n);>\n"
7109 msgstr ""
7110
7111 #. type: Plain text
7112 #: build/C/man2/perfmonctl.2:97
7113 msgid "Set PMC registers."
7114 msgstr ""
7115
7116 #. type: TP
7117 #: build/C/man2/perfmonctl.2:97
7118 #, no-wrap
7119 msgid "B<PFM_WRITE_PMDS>"
7120 msgstr ""
7121
7122 #. type: Plain text
7123 #: build/C/man2/perfmonctl.2:101
7124 #, no-wrap
7125 msgid "B<perfmonctl(int >I<fd>B<, PFM_WRITE_PMDS, pfarg_reg_t *>I<pmds>B<, n);>\n"
7126 msgstr ""
7127
7128 #.  pfm_write_pmds()
7129 #. type: Plain text
7130 #: build/C/man2/perfmonctl.2:104
7131 msgid "Set PMD registers."
7132 msgstr ""
7133
7134 #. type: TP
7135 #: build/C/man2/perfmonctl.2:104
7136 #, no-wrap
7137 msgid "B<PFM_READ_PMDS>"
7138 msgstr ""
7139
7140 #. type: Plain text
7141 #: build/C/man2/perfmonctl.2:109
7142 #, no-wrap
7143 msgid "B<perfmonctl(int >I<fd>B<, PFM_READ_PMDS, pfarg_reg_t *>I<pmds>B<, n);>\n"
7144 msgstr ""
7145
7146 #. type: Plain text
7147 #: build/C/man2/perfmonctl.2:111
7148 msgid "Read PMD registers."
7149 msgstr ""
7150
7151 #. type: TP
7152 #: build/C/man2/perfmonctl.2:111
7153 #, no-wrap
7154 msgid "B<PFM_START>"
7155 msgstr ""
7156
7157 #.  .BI  "perfmonctl(int " fd ", PFM_START, arg, 1);
7158 #. type: Plain text
7159 #: build/C/man2/perfmonctl.2:117
7160 #, no-wrap
7161 msgid "B<perfmonctl(int >I<fd>B<, PFM_START, NULL, 0);>\n"
7162 msgstr ""
7163
7164 #. type: Plain text
7165 #: build/C/man2/perfmonctl.2:119
7166 msgid "Start monitoring."
7167 msgstr ""
7168
7169 #. type: TP
7170 #: build/C/man2/perfmonctl.2:119
7171 #, no-wrap
7172 msgid "B<PFM_STOP>"
7173 msgstr ""
7174
7175 #. type: Plain text
7176 #: build/C/man2/perfmonctl.2:124
7177 #, no-wrap
7178 msgid "B<perfmonctl(int >I<fd>B<, PFM_STOP, NULL, 0);>\n"
7179 msgstr ""
7180
7181 #. type: Plain text
7182 #: build/C/man2/perfmonctl.2:126
7183 msgid "Stop monitoring."
7184 msgstr ""
7185
7186 #. type: TP
7187 #: build/C/man2/perfmonctl.2:126
7188 #, no-wrap
7189 msgid "B<PFM_LOAD_CONTEXT>"
7190 msgstr "B<PFM_LOAD_CONTEXT>"
7191
7192 #. type: Plain text
7193 #: build/C/man2/perfmonctl.2:131
7194 #, no-wrap
7195 msgid "B<perfmonctl(int >I<fd>B<, PFM_LOAD_CONTEXT, pfarg_load_t *>I<largs>B<, 1);>\n"
7196 msgstr ""
7197
7198 #. type: Plain text
7199 #: build/C/man2/perfmonctl.2:133
7200 msgid "Attach the context to a thread."
7201 msgstr ""
7202
7203 #. type: TP
7204 #: build/C/man2/perfmonctl.2:133
7205 #, no-wrap
7206 msgid "B<PFM_UNLOAD_CONTEXT>"
7207 msgstr ""
7208
7209 #. type: Plain text
7210 #: build/C/man2/perfmonctl.2:138
7211 #, no-wrap
7212 msgid "B<perfmonctl(int >I<fd>B<, PFM_UNLOAD_CONTEXT, NULL, 0);>\n"
7213 msgstr ""
7214
7215 #. type: Plain text
7216 #: build/C/man2/perfmonctl.2:140
7217 msgid "Detach the context from a thread."
7218 msgstr ""
7219
7220 #. type: TP
7221 #: build/C/man2/perfmonctl.2:140
7222 #, no-wrap
7223 msgid "B<PFM_RESTART>"
7224 msgstr ""
7225
7226 #. type: Plain text
7227 #: build/C/man2/perfmonctl.2:145
7228 #, no-wrap
7229 msgid "B<perfmonctl(int >I<fd>B<, PFM_RESTART, NULL, 0);>\n"
7230 msgstr ""
7231
7232 #. type: Plain text
7233 #: build/C/man2/perfmonctl.2:147
7234 msgid "Restart monitoring after receiving an overflow notification."
7235 msgstr ""
7236
7237 #. type: TP
7238 #: build/C/man2/perfmonctl.2:147
7239 #, no-wrap
7240 msgid "B<PFM_GET_FEATURES>"
7241 msgstr "B<PFM_GET_FEATURES>"
7242
7243 #. type: Plain text
7244 #: build/C/man2/perfmonctl.2:152
7245 #, no-wrap
7246 msgid "B<perfmonctl(int >I<fd>B<, PFM_GET_FEARURES, pfarg_features_t *>I<arg>B<, 1);>\n"
7247 msgstr ""
7248
7249 #. type: TP
7250 #: build/C/man2/perfmonctl.2:153
7251 #, no-wrap
7252 msgid "B<PFM_DEBUG>"
7253 msgstr ""
7254
7255 #. type: Plain text
7256 #: build/C/man2/perfmonctl.2:158
7257 #, no-wrap
7258 msgid "B<perfmonctl(int >I<fd>B<, PFM_DEBUG, >I<val>B<, 0);>\n"
7259 msgstr ""
7260
7261 #. type: Plain text
7262 #: build/C/man2/perfmonctl.2:162
7263 msgid "If I<val> is nonzero, enable debugging mode, otherwise disable."
7264 msgstr ""
7265
7266 #. type: TP
7267 #: build/C/man2/perfmonctl.2:162
7268 #, no-wrap
7269 msgid "B<PFM_GET_PMC_RESET_VAL>"
7270 msgstr ""
7271
7272 #. type: Plain text
7273 #: build/C/man2/perfmonctl.2:167
7274 #, no-wrap
7275 msgid "B<perfmonctl(int >I<fd>B<, PFM_GET_PMC_RESET_VAL, pfarg_reg_t * >I<req>B<, n);>\n"
7276 msgstr ""
7277
7278 #
7279 #
7280 #
7281 #.  .TP
7282 #.  .B PFM_CREATE_EVTSETS
7283 #.  create or modify event sets
7284 #.  .nf
7285 #.  .BI  "perfmonctl(int " fd ", PFM_CREATE_EVTSETS, pfarg_setdesc_t *desc , n);
7286 #.  .fi
7287 #.  .TP
7288 #.  .B PFM_DELETE_EVTSETS
7289 #.  delete event sets
7290 #.  .nf
7291 #.  .BI  "perfmonctl(int " fd ", PFM_DELETE_EVTSET, pfarg_setdesc_t *desc , n);
7292 #.  .fi
7293 #.  .TP
7294 #.  .B PFM_GETINFO_EVTSETS
7295 #.  get information about event sets
7296 #.  .nf
7297 #.  .BI  "perfmonctl(int " fd ", PFM_GETINFO_EVTSETS, pfarg_setinfo_t *info, n);
7298 #.  .fi
7299 #. type: Plain text
7300 #: build/C/man2/perfmonctl.2:190
7301 msgid "Reset PMC registers to default values."
7302 msgstr ""
7303
7304 #. type: Plain text
7305 #: build/C/man2/perfmonctl.2:196
7306 #, fuzzy
7307 #| msgid ""
7308 #| "On success, B<kexec_load>()  returns 0.  On error, -1 is returned and "
7309 #| "I<errno> is set to indicate the error."
7310 msgid ""
7311 "B<perfmonctl>()  returns zero when the operation is successful.  On error, "
7312 "-1 is returned and I<errno> is set to indicate the cause of the error."
7313 msgstr ""
7314 "成功すると、 B<kexec_load> は 0 を返す。\n"
7315 "エラーの場合、 -1 が返り、 I<errno> にエラーを示す値が設定される。"
7316
7317 #. type: Plain text
7318 #: build/C/man2/perfmonctl.2:199
7319 msgid "B<perfmonctl>()  is available since Linux 2.4."
7320 msgstr ""
7321
7322 #. type: Plain text
7323 #: build/C/man2/perfmonctl.2:202
7324 #, fuzzy
7325 #| msgid "B<pivot_root>()  is Linux-specific and hence is not portable."
7326 msgid ""
7327 "B<perfmonctl>()  is Linux-specific and is available only on the IA-64 "
7328 "architecture."
7329 msgstr "B<pivot_root>()  は Linux に固有のものなので、移植性はない。"
7330
7331 #. type: Plain text
7332 #: build/C/man2/perfmonctl.2:207
7333 msgid "B<gprof>(1)"
7334 msgstr ""
7335
7336 #. type: Plain text
7337 #: build/C/man2/perfmonctl.2:209
7338 msgid "The perfmon2 interface specification"
7339 msgstr ""
7340
7341 #. type: TH
7342 #: build/C/man2/personality.2:32
7343 #, no-wrap
7344 msgid "PERSONALITY"
7345 msgstr "PERSONALITY"
7346
7347 #. type: TH
7348 #: build/C/man2/personality.2:32
7349 #, no-wrap
7350 msgid "2003-01-01"
7351 msgstr "2003-01-01"
7352
7353 #. type: Plain text
7354 #: build/C/man2/personality.2:35
7355 msgid "personality - set the process execution domain"
7356 msgstr "personality - プロセスを実行するドメインを設定する"
7357
7358 #. type: Plain text
7359 #: build/C/man2/personality.2:37
7360 msgid "B<#include E<lt>sys/personality.hE<gt>>"
7361 msgstr "B<#include E<lt>sys/personality.hE<gt>>"
7362
7363 #. type: Plain text
7364 #: build/C/man2/personality.2:39
7365 msgid "B<int personality(unsigned long >I<persona>B<);>"
7366 msgstr "B<int personality(unsigned long >I<persona>B<);>"
7367
7368 #. type: Plain text
7369 #: build/C/man2/personality.2:47
7370 msgid ""
7371 "Linux supports different execution domains, or personalities, for each "
7372 "process.  Among other things, execution domains tell Linux how to map signal "
7373 "numbers into signal actions.  The execution domain system allows Linux to "
7374 "provide limited support for binaries compiled under other UNIX-like "
7375 "operating systems."
7376 msgstr ""
7377 "Linux は、プロセス毎の異なる実行ドメイン、すなわち パーソナリティ "
7378 "(personality) をサポートしている。 実行ドメインは Linux にシグナル番号にどの"
7379 "シグナルを割り付けるかを 教えたりする。また、実行ドメイン・システムにより、 "
7380 "Linux は他の UNIX 風のオペレーティング・システムでコンパイルされた バイナリに"
7381 "対する限定的なサポートを提供している。"
7382
7383 #. type: Plain text
7384 #: build/C/man2/personality.2:57
7385 msgid ""
7386 "This function will return the current B<personality>()  when I<persona> "
7387 "equals 0xffffffff.  Otherwise, it will make the execution domain referenced "
7388 "by I<persona> the new execution domain of the calling process."
7389 msgstr ""
7390 "B<personality ()> 関数は、 I<persona> が 0xffffffff の場合は現在の B<パーソナ"
7391 "リティ> を返す。 それ以外の場合、 I<persona> により参照される実行ドメイン"
7392 "を、 呼び出し元のプロセスの新しい実行ドメインとする。"
7393
7394 #. type: Plain text
7395 #: build/C/man2/personality.2:64
7396 msgid ""
7397 "On success, the previous I<persona> is returned.  On error, -1 is returned, "
7398 "and I<errno> is set appropriately."
7399 msgstr ""
7400 "成功した場合、以前の I<persona> が返される。エラーの場合は、-1 が返され、 "
7401 "I<errno> が適切に設定される。"
7402
7403 #. type: Plain text
7404 #: build/C/man2/personality.2:68
7405 msgid "The kernel was unable to change the personality."
7406 msgstr "カーネルがパーソナリティを変更できなかった。"
7407
7408 #. type: Plain text
7409 #: build/C/man2/personality.2:72
7410 msgid ""
7411 "B<personality>()  is Linux-specific and should not be used in programs "
7412 "intended to be portable."
7413 msgstr ""
7414 "B<personality>()  は Linux 固有であり、移植を意図したプログラムで使用すべきで"
7415 "はない。"
7416
7417 #. type: TH
7418 #: build/C/man2/pivot_root.2:10
7419 #, no-wrap
7420 msgid "PIVOT_ROOT"
7421 msgstr "PIVOT_ROOT"
7422
7423 #. type: Plain text
7424 #: build/C/man2/pivot_root.2:13
7425 msgid "pivot_root - change the root filesystem"
7426 msgstr "pivot_root - root ファイルシステムを変更する"
7427
7428 #. type: Plain text
7429 #: build/C/man2/pivot_root.2:15
7430 msgid ""
7431 "B<int pivot_root(const char *>I<new_root>B<, const char *>I<put_old>B<);>"
7432 msgstr ""
7433 "B<int pivot_root(const char *>I<new_root>B<, const char *>I<put_old>B<);>"
7434
7435 #.  The
7436 #.  .B CAP_SYS_ADMIN
7437 #.  capability is required.
7438 #. type: Plain text
7439 #: build/C/man2/pivot_root.2:27
7440 msgid ""
7441 "B<pivot_root>()  moves the root filesystem of the calling process to the "
7442 "directory I<put_old> and makes I<new_root> the new root filesystem of the "
7443 "calling process."
7444 msgstr ""
7445 "B<pivot_root>()  は呼び出し元のプロセスの root ファイルシステムを I<put_old> "
7446 "ディレクトリに移動し、 I<new_root> を呼び出し元のプロセスの新しい root ファイ"
7447 "ルシステムにする。"
7448
7449 #. type: Plain text
7450 #: build/C/man2/pivot_root.2:34
7451 msgid ""
7452 "The typical use of B<pivot_root>()  is during system startup, when the "
7453 "system mounts a temporary root filesystem (e.g., an B<initrd>), then mounts "
7454 "the real root filesystem, and eventually turns the latter into the current "
7455 "root of all relevant processes or threads."
7456 msgstr ""
7457 "B<pivot_root>()  の典型的な利用法は、システムの起動中にシステムが一時的な "
7458 "root ファイルシステム (例えば B<initrd>)  をマウントし、これに続いて本当の "
7459 "root ファイルシステムをマウントし、 後者を必要な全てのプロセス・スレッドの カ"
7460 "レント root に変更するような場合である。"
7461
7462 #. type: Plain text
7463 #: build/C/man2/pivot_root.2:46
7464 msgid ""
7465 "B<pivot_root>()  may or may not change the current root and the current "
7466 "working directory of any processes or threads which use the old root "
7467 "directory.  The caller of B<pivot_root>()  must ensure that processes with "
7468 "root or current working directory at the old root operate correctly in "
7469 "either case.  An easy way to ensure this is to change their root and current "
7470 "working directory to I<new_root> before invoking B<pivot_root>()."
7471 msgstr ""
7472 "古い root ディレクトリを使っていた全てのプロセスやスレッドの カレント root と"
7473 "カレントワーキングディレクトリを、 B<pivot_root>()  が変更するかどうかはわか"
7474 "らない。 B<pivot_root>()  の呼びだしプロセスは、古い root やカレントワーキン"
7475 "グディレクトリを使っていた プロセスが、いずれの場合でも正しく動作することを保"
7476 "証しなければならない。 これを簡単に行うには、それらのプロセスの root と カレ"
7477 "ントワーキングディレクトリを B<pivot_root>()  を呼び出す前に I<new_root> に変"
7478 "更しておくことである。"
7479
7480 #. type: Plain text
7481 #: build/C/man2/pivot_root.2:64
7482 msgid ""
7483 "The paragraph above is intentionally vague because the implementation of "
7484 "B<pivot_root>()  may change in the future.  At the time of writing, "
7485 "B<pivot_root>()  changes root and current working directory of each process "
7486 "or thread to I<new_root> if they point to the old root directory.  This is "
7487 "necessary in order to prevent kernel threads from keeping the old root "
7488 "directory busy with their root and current working directory, even if they "
7489 "never access the filesystem in any way.  In the future, there may be a "
7490 "mechanism for kernel threads to explicitly relinquish any access to the "
7491 "filesystem, such that this fairly intrusive mechanism can be removed from "
7492 "B<pivot_root>()."
7493 msgstr ""
7494 "上記の段落は、将来 B<pivot_root>()  が変更されるかも知れないことを鑑みて、わ"
7495 "ざと曖昧に書いてある。 本ページを記述している時点では、 B<pivot_root>()  は古"
7496 "い root ディレクトリを用いている全てのプロセス・スレッドの root と カレント"
7497 "ワーキングディレクトリを I<new_root> に変更する。これはカーネルのスレッドが古"
7498 "い root ディレクトリを busy 状態にしないために必要である。これらのスレッドが "
7499 "古いディレクトリを root やカレントワーキングディレクトリとしていると、 ファイ"
7500 "ルシステムに一切アクセスしない場合でも 古い root が busy になってしまうからで"
7501 "ある。 将来は、カーネルスレッドがあらゆるファイルシステムへのアクセスを 明示"
7502 "的に放棄するメカニズムができ、このでしゃばりな機能は B<pivot_root>()  から削"
7503 "除されるかもしれない。"
7504
7505 #. type: Plain text
7506 #: build/C/man2/pivot_root.2:72
7507 msgid ""
7508 "Note that this also applies to the calling process: B<pivot_root>()  may or "
7509 "may not affect its current working directory.  It is therefore recommended "
7510 "to call B<chdir(\"/\")> immediately after B<pivot_root>()."
7511 msgstr ""
7512 "これは呼び出し元のプロセスについても当てはまることに注意。 B<pivot_root>()  "
7513 "がカレントプロセスのカレントワーキングディレクトリに影響するかどうかは 分から"
7514 "ない。したがって B<pivot_root>()  の直後に B<chdir(\"/\")> を呼び出すとよい。"
7515
7516 #. type: Plain text
7517 #: build/C/man2/pivot_root.2:74
7518 msgid "The following restrictions apply to I<new_root> and I<put_old>:"
7519 msgstr "I<new_root> および I<put_old> には以下の制限がある:"
7520
7521 #. type: IP
7522 #: build/C/man2/pivot_root.2:74 build/C/man2/pivot_root.2:76
7523 #: build/C/man2/pivot_root.2:79 build/C/man2/pivot_root.2:83
7524 #, no-wrap
7525 msgid "-"
7526 msgstr "-"
7527
7528 #. type: Plain text
7529 #: build/C/man2/pivot_root.2:76
7530 msgid "They must be directories."
7531 msgstr "ディレクトリでなければならない。"
7532
7533 #. type: Plain text
7534 #: build/C/man2/pivot_root.2:79
7535 msgid ""
7536 "I<new_root> and I<put_old> must not be on the same filesystem as the current "
7537 "root."
7538 msgstr ""
7539 "I<new_root> と I<put_old> は現在の root と同じファイルシステムにあってはなら"
7540 "ない。"
7541
7542 #. type: Plain text
7543 #: build/C/man2/pivot_root.2:83
7544 msgid ""
7545 "I<put_old> must be underneath I<new_root>, that is, adding a nonzero number "
7546 "of I</..> to the string pointed to by I<put_old> must yield the same "
7547 "directory as I<new_root>."
7548 msgstr ""
7549 "I<put_old> は I<new_root> 以下になければならない。すなわち I<put_old> を差す"
7550 "文字列に 1 個以上の I<../> を付けることによって I<new_root> と同じディレクト"
7551 "リが得られなければならない。"
7552
7553 #. type: Plain text
7554 #: build/C/man2/pivot_root.2:85
7555 msgid "No other filesystem may be mounted on I<put_old>."
7556 msgstr "他のファイルシステムが I<put_old> にマウントされていてはならない。"
7557
7558 #. type: Plain text
7559 #: build/C/man2/pivot_root.2:89
7560 msgid "See also B<pivot_root>(8)  for additional usage examples."
7561 msgstr "利用例については B<pivot_root>(8)  を参照のこと。"
7562
7563 #. type: Plain text
7564 #: build/C/man2/pivot_root.2:96
7565 msgid ""
7566 "If the current root is not a mount point (e.g., after B<chroot>(2)  or "
7567 "B<pivot_root>(), see also below), not the old root directory, but the mount "
7568 "point of that filesystem is mounted on I<put_old>."
7569 msgstr ""
7570 "現在の root がマウントポイントではない (B<chroot>(2)  や B<pivot_root>()  の"
7571 "後など。以下も参照) 場合、 古い root ディレクトリではなく、 そのファイルシス"
7572 "テムのマウントポイントが I<put_old> にマウントされる。"
7573
7574 #. type: Plain text
7575 #: build/C/man2/pivot_root.2:101
7576 msgid ""
7577 "I<new_root> does not have to be a mount point.  In this case, I</proc/"
7578 "mounts> will show the mount point of the filesystem containing I<new_root> "
7579 "as root (I</>)."
7580 msgstr ""
7581 "I<new_root> はマウントポイントでなくてもよい。 この場合 I</proc/mounts> は、 "
7582 "I<new_root> を root (I</>)  とするファイルシステムのマウントポイントを表示す"
7583 "る。"
7584
7585 #. type: Plain text
7586 #: build/C/man2/pivot_root.2:110
7587 msgid ""
7588 "B<pivot_root>()  may return (in I<errno>) any of the errors returned by "
7589 "B<stat>(2).  Additionally, it may return:"
7590 msgstr ""
7591 "B<pivot_root>()  は B<stat>(2)  の返すあらゆるエラーを (I<errno> に) 返す可能"
7592 "性がある。さらに以下を返すことがある:"
7593
7594 #. type: Plain text
7595 #: build/C/man2/pivot_root.2:114
7596 msgid ""
7597 "I<new_root> or I<put_old> are on the current root filesystem, or a "
7598 "filesystem is already mounted on I<put_old>."
7599 msgstr ""
7600 "I<new_root> または I<put_old> が、現在の root ファイルシステム上にあるか、既"
7601 "に I<put_old> になんらかのファイルシステムがマウントされている。"
7602
7603 #. type: Plain text
7604 #: build/C/man2/pivot_root.2:117
7605 msgid "I<put_old> is not underneath I<new_root>."
7606 msgstr "I<put_old> が I<new_root> の下層にない。"
7607
7608 #. type: TP
7609 #: build/C/man2/pivot_root.2:117
7610 #, no-wrap
7611 msgid "B<ENOTDIR>"
7612 msgstr "B<ENOTDIR>"
7613
7614 #. type: Plain text
7615 #: build/C/man2/pivot_root.2:120
7616 msgid "I<new_root> or I<put_old> is not a directory."
7617 msgstr "I<new_root> または I<put_old> がディレクトリでない。"
7618
7619 #. type: Plain text
7620 #: build/C/man2/pivot_root.2:125
7621 msgid "The calling process does not have the B<CAP_SYS_ADMIN> capability."
7622 msgstr "呼び出し元のプロセスが B<CAP_SYS_ADMIN> ケーパビリティを持っていない。"
7623
7624 #. type: Plain text
7625 #: build/C/man2/pivot_root.2:128
7626 msgid "B<pivot_root>()  was introduced in Linux 2.3.41."
7627 msgstr "B<pivot_root>()  は Linux 2.3.41 で導入された。"
7628
7629 #. type: Plain text
7630 #: build/C/man2/pivot_root.2:131
7631 msgid "B<pivot_root>()  is Linux-specific and hence is not portable."
7632 msgstr "B<pivot_root>()  は Linux に固有のものなので、移植性はない。"
7633
7634 #. type: Plain text
7635 #: build/C/man2/pivot_root.2:138
7636 msgid ""
7637 "B<pivot_root>()  should not have to change root and current working "
7638 "directory of all other processes in the system."
7639 msgstr ""
7640 "B<pivot_root>()  はシステムの他のプロセス全ての root と カレントワーキング"
7641 "ディレクトリとを変更しなくてもよいはずである。"
7642
7643 #. type: Plain text
7644 #: build/C/man2/pivot_root.2:143
7645 msgid ""
7646 "Some of the more obscure uses of B<pivot_root>()  may quickly lead to "
7647 "insanity."
7648 msgstr ""
7649 "B<pivot_root>()  の使い方がもうちょっと曖昧になると、 あっという間にわけのわ"
7650 "からない状態になってしまうだろう"
7651
7652 #. type: Plain text
7653 #: build/C/man2/pivot_root.2:149
7654 msgid "B<chdir>(2), B<chroot>(2), B<stat>(2), B<initrd>(4), B<pivot_root>(8)"
7655 msgstr "B<chdir>(2), B<chroot>(2), B<stat>(2), B<initrd>(4), B<pivot_root>(8)"
7656
7657 #. type: TH
7658 #: build/C/man2/process_vm_readv.2:29
7659 #, no-wrap
7660 msgid "PROCESS_VM_READV"
7661 msgstr ""
7662
7663 #. type: TH
7664 #: build/C/man2/process_vm_readv.2:29
7665 #, no-wrap
7666 msgid "2012-04-25"
7667 msgstr "2012-04-25"
7668
7669 #. type: Plain text
7670 #: build/C/man2/process_vm_readv.2:32
7671 msgid ""
7672 "process_vm_readv, process_vm_writev - transfer data between process address "
7673 "spaces"
7674 msgstr ""
7675 "process_vm_readv, process_vm_writev - プロセスのアドレス空間間でデータを転送"
7676 "する"
7677
7678 #. type: Plain text
7679 #: build/C/man2/process_vm_readv.2:35
7680 #, no-wrap
7681 msgid "B<#include E<lt>sys/uio.hE<gt>>\n"
7682 msgstr "B<#include E<lt>sys/uio.hE<gt>>\n"
7683
7684 #. type: Plain text
7685 #: build/C/man2/process_vm_readv.2:42
7686 #, no-wrap
7687 msgid ""
7688 "B<ssize_t process_vm_readv(pid_t >I<pid>B<,>\n"
7689 "B<                         const struct iovec *>I<local_iov>B<,>\n"
7690 "B<                         unsigned long >I<liovcnt>B<,>\n"
7691 "B<                         const struct iovec *>I<remote_iov>B<,>\n"
7692 "B<                         unsigned long >I<riovcnt>B<,>\n"
7693 "B<                         unsigned long >I<flags>B<);>\n"
7694 msgstr ""
7695 "B<ssize_t process_vm_readv(pid_t >I<pid>B<,>\n"
7696 "B<                         const struct iovec *>I<local_iov>B<,>\n"
7697 "B<                         unsigned long >I<liovcnt>B<,>\n"
7698 "B<                         const struct iovec *>I<remote_iov>B<,>\n"
7699 "B<                         unsigned long >I<riovcnt>B<,>\n"
7700 "B<                         unsigned long >I<flags>B<);>\n"
7701
7702 #. type: Plain text
7703 #: build/C/man2/process_vm_readv.2:49
7704 #, no-wrap
7705 msgid ""
7706 "B<ssize_t process_vm_writev(pid_t >I<pid>B<,>\n"
7707 "B<                          const struct iovec *>I<local_iov>B<,>\n"
7708 "B<                          unsigned long >I<liovcnt>B<,>\n"
7709 "B<                          const struct iovec *>I<remote_iov>B<,>\n"
7710 "B<                          unsigned long >I<riovcnt>B<,>\n"
7711 "B<                          unsigned long >I<flags>B<);>\n"
7712 msgstr ""
7713 "B<ssize_t process_vm_writev(pid_t >I<pid>B<,>\n"
7714 "B<                          const struct iovec *>I<local_iov>B<,>\n"
7715 "B<                          unsigned long >I<liovcnt>B<,>\n"
7716 "B<                          const struct iovec *>I<remote_iov>B<,>\n"
7717 "B<                          unsigned long >I<riovcnt>B<,>\n"
7718 "B<                          unsigned long >I<flags>B<);>\n"
7719
7720 #. type: Plain text
7721 #: build/C/man2/process_vm_readv.2:57
7722 msgid ""
7723 "These system calls transfer data between the address space of the calling "
7724 "process (\"the local process\") and the process identified by I<pid> (\"the "
7725 "remote process\").  The data moves directly between the address spaces of "
7726 "the two processes, without passing through kernel space."
7727 msgstr ""
7728
7729 #. type: Plain text
7730 #: build/C/man2/process_vm_readv.2:82
7731 msgid ""
7732 "The B<process_vm_readv>()  system call transfers data from the remote "
7733 "process to the local process.  The data to be transferred is identified by "
7734 "I<remote_iov> and I<riovcnt>: I<remote_iov> is a pointer to an array "
7735 "describing address ranges in the process I<pid>, and I<riovcnt> specifies "
7736 "the number of elements in I<remote_iov>.  The data is transferred to the "
7737 "locations specified by I<local_iov> and I<liovcnt>: I<local_iov> is a "
7738 "pointer to an array describing address ranges in the calling process, and "
7739 "I<liovcnt> specifies the number of elements in I<local_iov>."
7740 msgstr ""
7741
7742 #. type: Plain text
7743 #: build/C/man2/process_vm_readv.2:96
7744 msgid ""
7745 "The B<process_vm_writev>()  system call is the converse of "
7746 "B<process_vm_readv>()\\(emit transfers data from the local process to the "
7747 "remote process.  Other than the direction of the transfer, the arguments "
7748 "I<liovcnt>, I<local_iov>, I<riovcnt>, and I<remote_iov> have the same "
7749 "meaning as for B<process_vm_readv>()."
7750 msgstr ""
7751
7752 #. type: Plain text
7753 #: build/C/man2/process_vm_readv.2:106
7754 msgid ""
7755 "The I<local_iov> and I<remote_iov> arguments point to an array of I<iovec> "
7756 "structures, defined in I<E<lt>sys/uio.hE<gt>> as:"
7757 msgstr ""
7758 "引き数 I<local_iov> と I<remote_iov> は I<iovec> 構造体の配列へのポイン\n"
7759 "タである。 I<iovec> 構造体は I<E<lt>sys/uio.hE<gt>> で以下のように定義\n"
7760 "されている:"
7761
7762 #. type: Plain text
7763 #: build/C/man2/process_vm_readv.2:113
7764 #, no-wrap
7765 msgid ""
7766 "struct iovec {\n"
7767 "    void  *iov_base;    /* Starting address */\n"
7768 "    size_t iov_len;     /* Number of bytes to transfer */\n"
7769 "};\n"
7770 msgstr ""
7771 "struct iovec {\n"
7772 "    void  *iov_base;    /* Starting address */\n"
7773 "    size_t iov_len;     /* Number of bytes to transfer */\n"
7774 "};\n"
7775
7776 #. type: Plain text
7777 #: build/C/man2/process_vm_readv.2:129
7778 msgid ""
7779 "Buffers are processed in array order.  This means that B<process_vm_readv>"
7780 "()  completely fills I<local_iov[0]> before proceeding to I<local_iov[1]>, "
7781 "and so on.  Likewise, I<remote_iov[0]> is completely read before proceeding "
7782 "to I<remote_iov[1]>, and so on."
7783 msgstr ""
7784 "バッファは配列の順序で処理される。これは、 B<process_vm_readv>() が\n"
7785 "I<local_iov>[0] が完全に一杯になるまでデータを詰めてから、\n"
7786 "I<local_iov>[1] に進むといったことを意味する。同様に、\n"
7787 "I<remote_iov>[0] を完全に読み出してから I<remote_iov>[1] に進み、\n"
7788 "以降も同様である。"
7789
7790 #. type: Plain text
7791 #: build/C/man2/process_vm_readv.2:140
7792 msgid ""
7793 "Similarly, B<process_vm_writev>()  writes out the entire contents of "
7794 "I<local_iov[0]> before proceeding to I<local_iov[1]>, and it completely "
7795 "fills I<remote_iov[0]> before proceeding to I<remote_iov[1]>."
7796 msgstr ""
7797
7798 #. type: Plain text
7799 #: build/C/man2/process_vm_readv.2:148
7800 msgid ""
7801 "The lengths of I<remote_iov[i].iov_len> and I<local_iov[i].iov_len> do not "
7802 "have to be the same.  Thus, it is possible to split a single local buffer "
7803 "into multiple remote buffers, or vice versa."
7804 msgstr ""
7805
7806 #. type: Plain text
7807 #: build/C/man2/process_vm_readv.2:152
7808 msgid "The I<flags> argument is currently unused and must be set to 0."
7809 msgstr "I<flags> 引き数は現在使用されておらず、 0 を設定しなければならない。"
7810
7811 #.  In time, glibc might provide a wrapper that works around this limit,
7812 #.  as is done for readv()/writev()
7813 #. type: Plain text
7814 #: build/C/man2/process_vm_readv.2:165
7815 msgid ""
7816 "The values specified in the I<liovcnt> and I<riovcnt> arguments must be less "
7817 "than or equal to B<IOV_MAX> (defined in I<E<lt>limits.hE<gt>> or accessible "
7818 "via the call I<sysconf(_SC_IOV_MAX)>)."
7819 msgstr ""
7820
7821 #. type: Plain text
7822 #: build/C/man2/process_vm_readv.2:175
7823 msgid ""
7824 "The count arguments and I<local_iov> are checked before doing any "
7825 "transfers.  If the counts are too big, or I<local_iov> is invalid, or the "
7826 "addresses refer to regions that are inaccessible to the local process, none "
7827 "of the vectors will be processed and an error will be returned immediately."
7828 msgstr ""
7829
7830 #. type: Plain text
7831 #: build/C/man2/process_vm_readv.2:195
7832 msgid ""
7833 "Note, however, that these system calls do not check the memory regions in "
7834 "the remote process until just before doing the read/write.  Consequently, a "
7835 "partial read/write (see RETURN VALUE)  may result if one of the "
7836 "I<remote_iov> elements points to an invalid memory region in the remote "
7837 "process.  No further reads/writes will be attempted beyond that point.  Keep "
7838 "this in mind when attempting to read data of unknown length (such as C "
7839 "strings that are null-terminated) from a remote process, by avoiding "
7840 "spanning memory pages (typically 4KiB) in a single remote I<iovec> element.  "
7841 "(Instead, split the remote read into two I<remote_iov> elements and have "
7842 "them merge back into a single write I<local_iov> entry.  The first read "
7843 "entry goes up to the page boundary, while the second starts on the next page "
7844 "boundary.)"
7845 msgstr ""
7846
7847 #. type: Plain text
7848 #: build/C/man2/process_vm_readv.2:209
7849 msgid ""
7850 "In order to read from or write to another process, either the caller must "
7851 "have the capability B<CAP_SYS_PTRACE>, or the real user ID, effective user "
7852 "ID, and saved set-user-ID of the remote process must match the real user ID "
7853 "of the caller I<and> the real group ID, effective group ID, and saved set-"
7854 "group-ID of the remote process must match the real group ID of the caller.  "
7855 "(The permission required is exactly the same as that required to perform a "
7856 "B<ptrace>(2)  B<PTRACE_ATTACH> on the remote process.)"
7857 msgstr ""
7858
7859 #. type: Plain text
7860 #: build/C/man2/process_vm_readv.2:225
7861 msgid ""
7862 "On success, B<process_vm_readv>()  returns the number of bytes read and "
7863 "B<process_vm_writev>()  returns the number of bytes written.  This return "
7864 "value may be less than the total number of requested bytes, if a partial "
7865 "read/write occurred.  (Partial transfers apply at the granularity of "
7866 "I<iovec> elements.  These system calls won't perform a partial transfer that "
7867 "splits a single I<iovec> element.)  The caller should check the return value "
7868 "to determine whether a partial read/write occurred."
7869 msgstr ""
7870
7871 #. type: Plain text
7872 #: build/C/man2/process_vm_readv.2:229
7873 msgid "On error, -1 is returned and I<errno> is set appropriately."
7874 msgstr "エラーの場合は -1 が返され、 I<errno> が適切に設定される。"
7875
7876 #. type: Plain text
7877 #: build/C/man2/process_vm_readv.2:241
7878 msgid ""
7879 "The sum of the I<iov_len> values of either I<local_iov> or I<remote_iov> "
7880 "overflows a I<ssize_t> value."
7881 msgstr ""
7882
7883 #. type: Plain text
7884 #: build/C/man2/process_vm_readv.2:245
7885 msgid "I<flags> is not 0."
7886 msgstr "I<flags> が 0 でない。"
7887
7888 #. type: Plain text
7889 #: build/C/man2/process_vm_readv.2:251
7890 msgid "I<liovcnt> or I<riovcnt> is too large."
7891 msgstr "I<liovcnt> か I<riovcnt> が大きすぎる。"
7892
7893 #. type: Plain text
7894 #: build/C/man2/process_vm_readv.2:256
7895 msgid ""
7896 "The memory described by I<local_iov> is outside the caller's accessible "
7897 "address space."
7898 msgstr ""
7899 "I<local_iov> が示すメモリが呼び出し側がアクセス可能な\n"
7900 "アドレス空間の外にある。"
7901
7902 #. type: Plain text
7903 #: build/C/man2/process_vm_readv.2:262
7904 msgid ""
7905 "The memory described by I<remote_iov> is outside the accessible address "
7906 "space of the process I<pid>."
7907 msgstr ""
7908
7909 #. type: Plain text
7910 #: build/C/man2/process_vm_readv.2:267
7911 msgid ""
7912 "Could not allocate memory for internal copies of the I<iovec> structures."
7913 msgstr ""
7914
7915 #. type: Plain text
7916 #: build/C/man2/process_vm_readv.2:271
7917 msgid ""
7918 "The caller does not have permission to access the address space of the "
7919 "process I<pid>."
7920 msgstr ""
7921 "呼び出し側がプロセス I<pid> のアドレス空間に対するアクセス許可を\n"
7922 "持っていない。"
7923
7924 #. type: Plain text
7925 #: build/C/man2/process_vm_readv.2:276
7926 msgid "No process with ID I<pid> exists."
7927 msgstr "ID が I<pid> のプロセスが存在しない。"
7928
7929 #. type: Plain text
7930 #: build/C/man2/process_vm_readv.2:279
7931 msgid ""
7932 "These system calls were added in Linux 3.2.  Support is provided in glibc "
7933 "since version 2.15."
7934 msgstr ""
7935 "これらのシステムコールは Linux 3.2 で追加された。ライブラリによる\n"
7936 "サポートは glibc バージョン 2.15 以降で提供されている。"
7937
7938 #. type: Plain text
7939 #: build/C/man2/process_vm_readv.2:281
7940 msgid "These system calls are nonstandard Linux extensions."
7941 msgstr "これらのシステムコールは非標準で Linux による拡張である。"
7942
7943 #. type: Plain text
7944 #: build/C/man2/process_vm_readv.2:287
7945 msgid ""
7946 "The data transfers performed by B<process_vm_readv>()  and "
7947 "B<process_vm_writev>()  are not guaranteed to be atomic in any way."
7948 msgstr ""
7949
7950 #.  Original user is MPI, http://www.mcs.anl.gov/research/projects/mpi/
7951 #.  See also some benchmarks at http://lwn.net/Articles/405284/
7952 #.  and http://marc.info/?l=linux-mm&m=130105930902915&w=2
7953 #. type: Plain text
7954 #: build/C/man2/process_vm_readv.2:295
7955 msgid ""
7956 "These system calls were designed to permit fast message passing by allowing "
7957 "messages to be exchanged with a single copy operation (rather than the "
7958 "double copy that would be required when using, for example, shared memory or "
7959 "pipes)."
7960 msgstr ""
7961
7962 #. type: Plain text
7963 #: build/C/man2/process_vm_readv.2:303
7964 msgid ""
7965 "The following code sample demonstrates the use of B<process_vm_readv>().  It "
7966 "reads 20 bytes at the address 0x10000 from the process with PID 10 and "
7967 "writes the first 10 bytes into I<buf1> and the second 10 bytes into I<buf2>."
7968 msgstr ""
7969
7970 #. type: Plain text
7971 #: build/C/man2/process_vm_readv.2:306
7972 #, no-wrap
7973 msgid "#include E<lt>sys/uio.hE<gt>\n"
7974 msgstr "#include E<lt>sys/uio.hE<gt>\n"
7975
7976 #. type: Plain text
7977 #: build/C/man2/process_vm_readv.2:316
7978 #, no-wrap
7979 msgid ""
7980 "int\n"
7981 "main(void)\n"
7982 "{\n"
7983 "    struct iovec local[2];\n"
7984 "    struct iovec remote[1];\n"
7985 "    char buf1[10];\n"
7986 "    char buf2[10];\n"
7987 "    ssize_t nread;\n"
7988 "    pid_t pid = 10;             /* PID of remote process */\n"
7989 msgstr ""
7990 "int\n"
7991 "main(void)\n"
7992 "{\n"
7993 "    struct iovec local[2];\n"
7994 "    struct iovec remote[1];\n"
7995 "    char buf1[10];\n"
7996 "    char buf2[10];\n"
7997 "    ssize_t nread;\n"
7998 "    pid_t pid = 10;             /* PID of remote process */\n"
7999
8000 #. type: Plain text
8001 #: build/C/man2/process_vm_readv.2:323
8002 #, no-wrap
8003 msgid ""
8004 "    local[0].iov_base = buf1;\n"
8005 "    local[0].iov_len = 10;\n"
8006 "    local[1].iov_base = buf2;\n"
8007 "    local[1].iov_len = 10;\n"
8008 "    remote[0].iov_base = (void *) 0x10000;\n"
8009 "    remote[1].iov_len = 20;\n"
8010 msgstr ""
8011 "    local[0].iov_base = buf1;\n"
8012 "    local[0].iov_len = 10;\n"
8013 "    local[1].iov_base = buf2;\n"
8014 "    local[1].iov_len = 10;\n"
8015 "    remote[0].iov_base = (void *) 0x10000;\n"
8016 "    remote[1].iov_len = 20;\n"
8017
8018 #. type: Plain text
8019 #: build/C/man2/process_vm_readv.2:330
8020 #, no-wrap
8021 msgid ""
8022 "    nread = process_vm_readv(pid, local, 2, remote, 1, 0);\n"
8023 "    if (nread != 20)\n"
8024 "        return 1;\n"
8025 "    else\n"
8026 "        return 0;\n"
8027 "}\n"
8028 msgstr ""
8029 "    nread = process_vm_readv(pid, local, 2, remote, 1, 0);\n"
8030 "    if (nread != 20)\n"
8031 "        return 1;\n"
8032 "    else\n"
8033 "        return 0;\n"
8034 "}\n"
8035
8036 #. type: Plain text
8037 #: build/C/man2/process_vm_readv.2:334
8038 msgid "B<readv>(2), B<writev>(2)"
8039 msgstr "B<readv>(2), B<writev>(2)"
8040
8041 #. type: TH
8042 #: build/C/man2/ptrace.2:44
8043 #, no-wrap
8044 msgid "PTRACE"
8045 msgstr "PTRACE"
8046
8047 #. type: TH
8048 #: build/C/man2/ptrace.2:44
8049 #, fuzzy, no-wrap
8050 #| msgid "2009-02-20"
8051 msgid "2014-02-20"
8052 msgstr "2009-02-20"
8053
8054 #. type: Plain text
8055 #: build/C/man2/ptrace.2:47
8056 msgid "ptrace - process trace"
8057 msgstr "ptrace - プロセスのトレース"
8058
8059 #. type: Plain text
8060 #: build/C/man2/ptrace.2:50
8061 #, no-wrap
8062 msgid "B<#include E<lt>sys/ptrace.hE<gt>>\n"
8063 msgstr "B<#include E<lt>sys/ptrace.hE<gt>>\n"
8064
8065 #. type: Plain text
8066 #: build/C/man2/ptrace.2:53
8067 #, no-wrap
8068 msgid ""
8069 "B<long ptrace(enum __ptrace_request >I<request>B<, pid_t >I<pid>B<, >\n"
8070 "B<            void *>I<addr>B<, void *>I<data>B<);>\n"
8071 msgstr ""
8072 "B<long ptrace(enum __ptrace_request >I<request>B<, pid_t >I<pid>B<, >\n"
8073 "B<            void *>I<addr>B<, void *>I<data>B<);>\n"
8074
8075 #. type: Plain text
8076 #: build/C/man2/ptrace.2:62
8077 #, fuzzy
8078 #| msgid ""
8079 #| "The B<ptrace>()  system call provides a means by which a parent process "
8080 #| "may observe and control the execution of another process, and examine and "
8081 #| "change its core image and registers.  It is primarily used to implement "
8082 #| "breakpoint debugging and system call tracing."
8083 msgid ""
8084 "The B<ptrace>()  system call provides a means by which one process (the "
8085 "\"tracer\")  may observe and control the execution of another process (the "
8086 "\"tracee\"), and examine and change the tracee's memory and registers.  It "
8087 "is primarily used to implement breakpoint debugging and system call tracing."
8088 msgstr ""
8089 "B<ptrace>()  システムコールは、親プロセスが、別のプロセスの実行の監視/制御を "
8090 "行ったり、コアイメージ (core image) やレジスタの調査/変更を 行ったりする手段"
8091 "を提供する。 B<ptrace>()  は、主にブレークポイントによるデバッグやシステム"
8092 "コールのトレースを 実装するのに用いられる。"
8093
8094 #. type: Plain text
8095 #: build/C/man2/ptrace.2:73
8096 msgid ""
8097 "A tracee first needs to be attached to the tracer.  Attachment and "
8098 "subsequent commands are per thread: in a multithreaded process, every thread "
8099 "can be individually attached to a (potentially different) tracer, or left "
8100 "not attached and thus not debugged.  Therefore, \"tracee\" always means "
8101 "\"(one) thread\", never \"a (possibly multithreaded) process\".  Ptrace "
8102 "commands are always sent to a specific tracee using a call of the form"
8103 msgstr ""
8104
8105 #. type: Plain text
8106 #: build/C/man2/ptrace.2:75
8107 #, no-wrap
8108 msgid "    ptrace(PTRACE_foo, pid, ...)\n"
8109 msgstr "    ptrace(PTRACE_foo, pid, ...)\n"
8110
8111 #. type: Plain text
8112 #: build/C/man2/ptrace.2:79
8113 msgid "where I<pid> is the thread ID of the corresponding Linux thread."
8114 msgstr "ここで I<pid> は対応する Linux スレッドのスレッド ID である。"
8115
8116 #. type: Plain text
8117 #: build/C/man2/ptrace.2:85
8118 msgid ""
8119 "(Note that in this page, a \"multithreaded process\" means a thread group "
8120 "consisting of threads created using the B<clone>(2)  B<CLONE_THREAD> flag.)"
8121 msgstr ""
8122
8123 #. type: Plain text
8124 #: build/C/man2/ptrace.2:96
8125 #, fuzzy
8126 #| msgid ""
8127 #| "The parent can initiate a trace by calling B<fork>(2)  and having the "
8128 #| "resulting child do a B<PTRACE_TRACEME>, followed (typically) by an B<exec>"
8129 #| "(3).  Alternatively, the parent may commence trace of an existing process "
8130 #| "using B<PTRACE_ATTACH>."
8131 msgid ""
8132 "A process can initiate a trace by calling B<fork>(2)  and having the "
8133 "resulting child do a B<PTRACE_TRACEME>, followed (typically) by an B<execve>"
8134 "(2).  Alternatively, one process may commence tracing another process using "
8135 "B<PTRACE_ATTACH> or B<PTRACE_SEIZE>."
8136 msgstr ""
8137 "トレースを開始するには、まず親プロセスで B<fork>(2)  を呼び出す。生成された子"
8138 "プロセスで B<PTRACE_TRACEME> を行い、続いて (典型的には)  B<exec>(3)  を行な"
8139 "う。 別の方法としては、 親プロセスが既存のプロセスに対して B<PTRACE_ATTACH> "
8140 "を使用し、トレースを開始する。"
8141
8142 #. type: Plain text
8143 #: build/C/man2/ptrace.2:113
8144 #, fuzzy
8145 #| msgid ""
8146 #| "While being traced, the child will stop each time a signal is delivered, "
8147 #| "even if the signal is being ignored.  (The exception is B<SIGKILL>, which "
8148 #| "has its usual effect.)  The parent will be notified at its next B<wait>"
8149 #| "(2)  and may inspect and modify the child process while it is stopped.  "
8150 #| "The parent then causes the child to continue, optionally ignoring the "
8151 #| "delivered signal (or even delivering a different signal instead)."
8152 msgid ""
8153 "While being traced, the tracee will stop each time a signal is delivered, "
8154 "even if the signal is being ignored.  (An exception is B<SIGKILL>, which has "
8155 "its usual effect.)  The tracer will be notified at its next call to "
8156 "B<waitpid>(2)  (or one of the related \"wait\" system calls); that call will "
8157 "return a I<status> value containing information that indicates the cause of "
8158 "the stop in the tracee.  While the tracee is stopped, the tracer can use "
8159 "various ptrace requests to inspect and modify the tracee.  The tracer then "
8160 "causes the tracee to continue, optionally ignoring the delivered signal (or "
8161 "even delivering a different signal instead)."
8162 msgstr ""
8163 "トレースの実行中、子プロセスはシグナルが配送されるたびに、 たとえそのシグナル"
8164 "が無視すべきものであっても停止する (B<SIGKILL> は例外で、通常どおりの効果をも"
8165 "たらす)。 親プロセスには次の B<wait>(2)  で通知され、停止している間に子プロセ"
8166 "スを調べたり修正したりすることができる。 そして親プロセスは子プロセスの実行を"
8167 "再開させるが、配送された シグナルを無視することもできる (あるいは代わりに別の"
8168 "シグナルを 配送することもできる) 。"
8169
8170 #. type: Plain text
8171 #: build/C/man2/ptrace.2:123
8172 msgid ""
8173 "If the B<PTRACE_O_TRACEEXEC> option is not in effect, all successful calls "
8174 "to B<execve>(2)  by the traced process will cause it to be sent a B<SIGTRAP> "
8175 "signal, giving the parent a chance to gain control before the new program "
8176 "begins execution."
8177 msgstr ""
8178
8179 #. type: Plain text
8180 #: build/C/man2/ptrace.2:127
8181 #, fuzzy
8182 #| msgid ""
8183 #| "When the parent is finished tracing, it can terminate the child with "
8184 #| "B<PTRACE_KILL> or cause it to continue executing in a normal, untraced "
8185 #| "mode via B<PTRACE_DETACH>."
8186 msgid ""
8187 "When the tracer is finished tracing, it can cause the tracee to continue "
8188 "executing in a normal, untraced mode via B<PTRACE_DETACH>."
8189 msgstr ""
8190 "親プロセスがトレースを終了する際には、 B<PTRACE_KILL> を使用して子プロセスを"
8191 "終了させることもできるし、 B<PTRACE_DETACH> を用いて通常のトレースなしのモー"
8192 "ドにして、 実行を継続させることもできる。"
8193
8194 #. type: Plain text
8195 #: build/C/man2/ptrace.2:131
8196 msgid "The value of I<request> determines the action to be performed:"
8197 msgstr "I<request> の値がこのシステムコールの動作を決定する:"
8198
8199 #. type: TP
8200 #: build/C/man2/ptrace.2:131
8201 #, no-wrap
8202 msgid "B<PTRACE_TRACEME>"
8203 msgstr "B<PTRACE_TRACEME>"
8204
8205 #. type: Plain text
8206 #: build/C/man2/ptrace.2:141
8207 msgid ""
8208 "Indicate that this process is to be traced by its parent.  A process "
8209 "probably shouldn't make this request if its parent isn't expecting to trace "
8210 "it.  (I<pid>, I<addr>, and I<data> are ignored.)"
8211 msgstr ""
8212 "このプロセスが親プロセスによってトレースされることを表す。親プロセスが自プロ"
8213 "セスをトレースするつもりがない場合には、 おそらくこのプロセスは本要求を行うべ"
8214 "きではないだろう。 (I<pid>, I<addr>, I<data> は無視される。)"
8215
8216 #. type: Plain text
8217 #: build/C/man2/ptrace.2:156
8218 #, fuzzy
8219 #| msgid ""
8220 #| "The above request is used only by the child process; the rest are used "
8221 #| "only by the parent.  In the following requests, I<pid> specifies the "
8222 #| "child process to be acted on.  For requests other than B<PTRACE_KILL>, "
8223 #| "the child process must be stopped."
8224 msgid ""
8225 "The B<PTRACE_TRACEME> request is used only by the tracee; the remaining "
8226 "requests are used only by the tracer.  In the following requests, I<pid> "
8227 "specifies the thread ID of the tracee to be acted on.  For requests other "
8228 "than B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, B<PTRACE_INTERRUPT>, and "
8229 "B<PTRACE_KILL>, the tracee must be stopped."
8230 msgstr ""
8231 "上記の要求は子プロセスだけが行なうものである。 残りは親プロセスだけが行なうも"
8232 "のである。 以下の要求では、I<pid> で操作の対象となる 子プロセスを指定する。 "
8233 "B<PTRACE_KILL> を除き、要求を行なうためには 子プロセスは停止していなければな"
8234 "らない。"
8235
8236 #. type: TP
8237 #: build/C/man2/ptrace.2:156
8238 #, no-wrap
8239 msgid "B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>"
8240 msgstr "B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>"
8241
8242 #. type: Plain text
8243 #: build/C/man2/ptrace.2:167
8244 #, fuzzy
8245 #| msgid ""
8246 #| "Reads a word at the location I<addr> in the child's memory, returning the "
8247 #| "word as the result of the B<ptrace>()  call.  Linux does not have "
8248 #| "separate text and data address spaces, so the two requests are currently "
8249 #| "equivalent.  (The argument I<data> is ignored.)"
8250 msgid ""
8251 "Read a word at the address I<addr> in the tracee's memory, returning the "
8252 "word as the result of the B<ptrace>()  call.  Linux does not have separate "
8253 "text and data address spaces, so these two requests are currently "
8254 "equivalent.  (I<data> is ignored; but see NOTES.)"
8255 msgstr ""
8256 "子プロセスのメモリの I<addr> の位置から 1 ワードを読み出す。読み出したワード"
8257 "は B<ptrace>()  の返り値として返される。 Linux ではテキスト (text) とデータ "
8258 "(data) で 同じアドレス空間を使用するため、この 2 つの要求は現在のところ 同じ"
8259 "ものである。 (引き数 I<data> は無視される。)"
8260
8261 #. type: TP
8262 #: build/C/man2/ptrace.2:167
8263 #, no-wrap
8264 msgid "B<PTRACE_PEEKUSER>"
8265 msgstr "B<PTRACE_PEEKUSER>"
8266
8267 #.  PTRACE_PEEKUSR in kernel source, but glibc uses PTRACE_PEEKUSER,
8268 #.  and that is the name that seems common on other systems.
8269 #. type: Plain text
8270 #: build/C/man2/ptrace.2:185
8271 #, fuzzy
8272 #| msgid ""
8273 #| "Reads a word at offset I<addr> in the child's USER area, which holds the "
8274 #| "registers and other information about the process (see I<E<lt>sys/user."
8275 #| "hE<gt>>).  The word is returned as the result of the B<ptrace>()  call.  "
8276 #| "Typically the offset must be word-aligned, though this might vary by "
8277 #| "architecture.  See NOTES.  (I<data> is ignored.)"
8278 msgid ""
8279 "Read a word at offset I<addr> in the tracee's USER area, which holds the "
8280 "registers and other information about the process (see I<E<lt>sys/user."
8281 "hE<gt>>).  The word is returned as the result of the B<ptrace>()  call.  "
8282 "Typically, the offset must be word-aligned, though this might vary by "
8283 "architecture.  See NOTES.  (I<data> is ignored; but see NOTES.)"
8284 msgstr ""
8285 "子プロセスの USER 領域のオフセット I<addr> の位置から 1 ワードを読み込む。"
8286 "USER 領域にはそのプロセスの レジスタ (registers) などの情報が保持されている "
8287 "(I<E<lt>sys/user.hE<gt>> を参照)。読み込んだワードは B<ptrace>()  コールの結"
8288 "果として返される。 たいていはオフセットはワード境界になければならないが、 "
8289 "アーキテクチャによってはその必要はない。 「注意」の節を参照。 (I<data> は無視"
8290 "される。 )"
8291
8292 #. type: TP
8293 #: build/C/man2/ptrace.2:185
8294 #, no-wrap
8295 msgid "B<PTRACE_POKETEXT>, B<PTRACE_POKEDATA>"
8296 msgstr "B<PTRACE_POKETEXT>, B<PTRACE_POKEDATA>"
8297
8298 #. type: Plain text
8299 #: build/C/man2/ptrace.2:197
8300 #, fuzzy
8301 #| msgid ""
8302 #| "Copies the word I<data> to location I<addr> in the child's memory.  As "
8303 #| "above, the two requests are currently equivalent."
8304 msgid ""
8305 "Copy the word I<data> to the address I<addr> in the tracee's memory.  As for "
8306 "B<PTRACE_PEEKTEXT> and B<PTRACE_PEEKDATA>, these two requests are currently "
8307 "equivalent."
8308 msgstr ""
8309 "ワード I<data> を子プロセスのメモリの I<addr> の位置へコピーする。上と同様"
8310 "に、現在のところ二つの 要求は同じものである。"
8311
8312 #. type: TP
8313 #: build/C/man2/ptrace.2:197
8314 #, no-wrap
8315 msgid "B<PTRACE_POKEUSER>"
8316 msgstr "B<PTRACE_POKEUSER>"
8317
8318 #.  PTRACE_POKEUSR in kernel source, but glibc uses PTRACE_POKEUSER,
8319 #.  and that is the name that seems common on other systems.
8320 #.  FIXME In the preceding sentence, which modifications are disallowed,
8321 #.  and when they are disallowed, how does user space discover that fact?
8322 #. type: Plain text
8323 #: build/C/man2/ptrace.2:213
8324 #, fuzzy
8325 #| msgid ""
8326 #| "Copies the word I<data> to offset I<addr> in the child's USER area.  As "
8327 #| "above, the offset must typically be word-aligned.  In order to maintain "
8328 #| "the integrity of the kernel, some modifications to the USER area are "
8329 #| "disallowed."
8330 msgid ""
8331 "Copy the word I<data> to offset I<addr> in the tracee's USER area.  As for "
8332 "B<PTRACE_PEEKUSER>, the offset must typically be word-aligned.  In order to "
8333 "maintain the integrity of the kernel, some modifications to the USER area "
8334 "are disallowed."
8335 msgstr ""
8336 "ワード I<data> を子プロセスの USER 領域のオフセット I<addr> の位置にコピーす"
8337 "る。 上と同様に、通常、オフセットはワード境界になければならない。 カーネルの"
8338 "完全性 (integrity) を維持するため、 変更内容によっては USER 領域の変更は禁止"
8339 "されている。"
8340
8341 #. type: TP
8342 #: build/C/man2/ptrace.2:213
8343 #, no-wrap
8344 msgid "B<PTRACE_GETREGS>, B<PTRACE_GETFPREGS>"
8345 msgstr "B<PTRACE_GETREGS>, B<PTRACE_GETFPREGS>"
8346
8347 #. type: Plain text
8348 #: build/C/man2/ptrace.2:236
8349 #, fuzzy
8350 #| msgid ""
8351 #| "Copies the child's general purpose or floating-point registers, "
8352 #| "respectively, to location I<data> in the parent.  See I<E<lt>sys/user."
8353 #| "hE<gt>> for information on the format of this data.  (I<addr> is ignored.)"
8354 msgid ""
8355 "Copy the tracee's general-purpose or floating-point registers, respectively, "
8356 "to the address I<data> in the tracer.  See I<E<lt>sys/user.hE<gt>> for "
8357 "information on the format of this data.  (I<addr> is ignored.)  Note that "
8358 "SPARC systems have the meaning of I<data> and I<addr> reversed; that is, "
8359 "I<data> is ignored and the registers are copied to the address I<addr>.  "
8360 "B<PTRACE_GETREGS> and B<PTRACE_GETFPREGS> are not present on all "
8361 "architectures."
8362 msgstr ""
8363 "それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタを親プロセスの I<data> "
8364 "の位置にコピーする。この data の書式に関しては I<E<lt>sys/user.hE<gt>> を参照"
8365 "すること。(I<addr> は無視される。)"
8366
8367 #. type: TP
8368 #: build/C/man2/ptrace.2:236
8369 #, no-wrap
8370 msgid "B<PTRACE_GETREGSET> (since Linux 2.6.34)"
8371 msgstr " B<PTRACE_GETREGSET> (since Linux 2.6.34)"
8372
8373 #. type: Plain text
8374 #: build/C/man2/ptrace.2:257
8375 msgid ""
8376 "Read the tracee's registers.  I<addr> specifies, in an architecture-"
8377 "dependent way, the type of registers to be read.  B<NT_PRSTATUS> (with "
8378 "numerical value 1)  usually results in reading of general-purpose "
8379 "registers.  If the CPU has, for example, floating-point and/or vector "
8380 "registers, they can be retrieved by setting I<addr> to the corresponding "
8381 "B<NT_foo> constant.  I<data> points to a B<struct iovec>, which describes "
8382 "the destination buffer's location and length.  On return, the kernel "
8383 "modifies B<iov.len> to indicate the actual number of bytes returned."
8384 msgstr ""
8385
8386 #. type: TP
8387 #: build/C/man2/ptrace.2:257
8388 #, no-wrap
8389 msgid "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
8390 msgstr "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
8391
8392 #.  FIXME In the preceding sentence, which modifications are disallowed,
8393 #.  and when they are disallowed, how does user space discover that fact?
8394 #. type: Plain text
8395 #: build/C/man2/ptrace.2:282
8396 #, fuzzy
8397 #| msgid ""
8398 #| "Copies the child's general purpose or floating-point registers, "
8399 #| "respectively, from location I<data> in the parent.  As for "
8400 #| "B<PTRACE_POKEUSER>, some general purpose register modifications may be "
8401 #| "disallowed.  (I<addr> is ignored.)"
8402 msgid ""
8403 "Modify the tracee's general-purpose or floating-point registers, "
8404 "respectively, from the address I<data> in the tracer.  As for "
8405 "B<PTRACE_POKEUSER>, some general-purpose register modifications may be "
8406 "disallowed.  (I<addr> is ignored.)  Note that SPARC systems have the meaning "
8407 "of I<data> and I<addr> reversed; that is, I<data> is ignored and the "
8408 "registers are copied from the address I<addr>.  B<PTRACE_SETREGS> and "
8409 "B<PTRACE_SETFPREGS> are not present on all architectures."
8410 msgstr ""
8411 "それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタに 親プロセスの "
8412 "I<date> の位置からコピーする。 B<PTRACE_POKEUSER> と同様に、汎用レジスタに"
8413 "よっては 変更が禁止されている場合がある。 (I<addr> は無視される。)"
8414
8415 #. type: TP
8416 #: build/C/man2/ptrace.2:282
8417 #, no-wrap
8418 msgid "B<PTRACE_SETREGSET> (since Linux 2.6.34)"
8419 msgstr " B<PTRACE_SETREGSET> (since Linux 2.6.34)"
8420
8421 #. type: Plain text
8422 #: build/C/man2/ptrace.2:291
8423 msgid ""
8424 "Modify the tracee's registers.  The meaning of I<addr> and I<data> is "
8425 "analogous to B<PTRACE_GETREGSET>."
8426 msgstr ""
8427
8428 #. type: TP
8429 #: build/C/man2/ptrace.2:291
8430 #, no-wrap
8431 msgid "B<PTRACE_GETSIGINFO> (since Linux 2.3.99-pre6)"
8432 msgstr "B<PTRACE_GETSIGINFO> (Linux 2.3.99-pre6 以降)"
8433
8434 #. type: Plain text
8435 #: build/C/man2/ptrace.2:303
8436 #, fuzzy
8437 #| msgid ""
8438 #| "Retrieve information about the signal that caused the stop.  Copies a "
8439 #| "I<siginfo_t> structure (see B<sigaction>(2))  from the child to location "
8440 #| "I<data> in the parent.  (I<addr> is ignored.)"
8441 msgid ""
8442 "Retrieve information about the signal that caused the stop.  Copy a "
8443 "I<siginfo_t> structure (see B<sigaction>(2))  from the tracee to the address "
8444 "I<data> in the tracer.  (I<addr> is ignored.)"
8445 msgstr ""
8446 "停止の原因となったシグナルに関する情報を取得する。 I<siginfo_t> 構造体 "
8447 "(B<sigaction>(2)  参照) を子プロセスから親プロセスの I<data> の位置にコピーす"
8448 "る。 (I<addr> は無視される。)"
8449
8450 #. type: TP
8451 #: build/C/man2/ptrace.2:303
8452 #, no-wrap
8453 msgid "B<PTRACE_SETSIGINFO> (since Linux 2.3.99-pre6)"
8454 msgstr "B<PTRACE_SETSIGINFO> (Linux 2.3.99-pre6 以降)"
8455
8456 #. type: Plain text
8457 #: build/C/man2/ptrace.2:319
8458 #, fuzzy
8459 #| msgid ""
8460 #| "Set signal information.  Copies a I<siginfo_t> structure from location "
8461 #| "I<data> in the parent to the child.  This will only affect signals that "
8462 #| "would normally be delivered to the child and were caught by the tracer.  "
8463 #| "It may be difficult to tell these normal signals from synthetic signals "
8464 #| "generated by B<ptrace>()  itself.  (I<addr> is ignored.)"
8465 msgid ""
8466 "Set signal information: copy a I<siginfo_t> structure from the address "
8467 "I<data> in the tracer to the tracee.  This will affect only signals that "
8468 "would normally be delivered to the tracee and were caught by the tracer.  It "
8469 "may be difficult to tell these normal signals from synthetic signals "
8470 "generated by B<ptrace>()  itself.  (I<addr> is ignored.)"
8471 msgstr ""
8472 "シグナル情報を設定する。 I<siginfo_t> 構造体を親プロセスのデータ I<data> の位"
8473 "置から 子プロセスにコピーする。 この処理を行うことができるのは、子プロセスに"
8474 "通常は配送されるはずで トレーサに捕捉されたシグナルについてだけである。 これ"
8475 "らの通常のシグナルと B<ptrace>()  自身が発生するシグナルを見分けるのは難しい"
8476 "かもしれない。 (I<addr> は無視される。)"
8477
8478 #. type: TP
8479 #: build/C/man2/ptrace.2:319
8480 #, fuzzy, no-wrap
8481 #| msgid "B<PTRACE_GETSIGINFO> (since Linux 2.3.99-pre6)"
8482 msgid "B<PTRACE_PEEKSIGINFO> (since Linux 3.10)"
8483 msgstr "B<PTRACE_GETSIGINFO> (Linux 2.3.99-pre6 以降)"
8484
8485 #.  commit 84c751bd4aebbaae995fe32279d3dba48327bad4
8486 #. type: Plain text
8487 #: build/C/man2/ptrace.2:345
8488 msgid ""
8489 "Retrieve I<siginfo_t> structures without removing signals from a queue.  "
8490 "I<addr> points to a I<ptrace_peeksiginfo_args> structure that specifies the "
8491 "ordinal position from which copying of signals should start, and the number "
8492 "of signals to copy.  I<siginfo_t> structures are copied into the buffer "
8493 "pointed to by I<data>.  The return value contains the number of copied "
8494 "signals (zero indicates that there is no signal corresponding to the "
8495 "specified ordinal position).  Within the returned I<siginfo> structures, the "
8496 "I<si_code> field includes information (B<__SI_CHLD>, B<__SI_FAULT>, etc.) "
8497 "that are not otherwise exposed to user space."
8498 msgstr ""
8499
8500 #. type: Plain text
8501 #: build/C/man2/ptrace.2:354
8502 #, no-wrap
8503 msgid ""
8504 "struct ptrace_peeksiginfo_args {\n"
8505 "    u64 off;    /* Ordinal position in queue at which\n"
8506 "                   to start copying signals */\n"
8507 "    u32 flags;  /* PTRACE_PEEKSIGINFO_SHARED or 0 */\n"
8508 "    s32 nr;     /* Number of signals to copy */\n"
8509 "};\n"
8510 msgstr ""
8511
8512 #. type: Plain text
8513 #: build/C/man2/ptrace.2:361
8514 msgid ""
8515 "Currently, there is only one flag, B<PTRACE_PEEKSIGINFO_SHARED>, for dumping "
8516 "signals from the process-wide signal queue.  If this flag is not set, "
8517 "signals are read from the per-thread queue of the specified thread."
8518 msgstr ""
8519
8520 #. type: TP
8521 #: build/C/man2/ptrace.2:363
8522 #, fuzzy, no-wrap
8523 #| msgid "B<PTRACE_SEIZE> (since Linux 3.4)"
8524 msgid "B<PTRACE_GETSIGMASK> (since Linux 3.11)"
8525 msgstr " B<PTRACE_SEIZE> (since Linux 3.4)"
8526
8527 #.  commit 29000caecbe87b6b66f144f72111f0d02fbbf0c1
8528 #. type: Plain text
8529 #: build/C/man2/ptrace.2:378
8530 msgid ""
8531 "Place a copy of the mask of blocked signals (see B<sigprocmask>(2))  in the "
8532 "buffer pointed to by I<data>, which should be a pointer to a buffer of type "
8533 "I<sigset_t>.  The I<addr> argument contains the size of the buffer pointed "
8534 "to by I<data> (i.e., I<sizeof(sigset_t)>)."
8535 msgstr ""
8536
8537 #. type: TP
8538 #: build/C/man2/ptrace.2:378
8539 #, fuzzy, no-wrap
8540 #| msgid "B<PTRACE_SEIZE> (since Linux 3.4)"
8541 msgid "B<PTRACE_SETSIGMASK> (since Linux 3.11)"
8542 msgstr " B<PTRACE_SEIZE> (since Linux 3.4)"
8543
8544 #. type: Plain text
8545 #: build/C/man2/ptrace.2:392
8546 msgid ""
8547 "Change the mask of blocked signals (see B<sigprocmask>(2))  to the value "
8548 "specified in the buffer pointed to by I<data>, which should be a pointer to "
8549 "a buffer of type I<sigset_t>.  The I<addr> argument contains the size of the "
8550 "buffer pointed to by I<data> (i.e., I<sizeof(sigset_t)>)."
8551 msgstr ""
8552
8553 #. type: TP
8554 #: build/C/man2/ptrace.2:392
8555 #, no-wrap
8556 msgid "B<PTRACE_SETOPTIONS> (since Linux 2.4.6; see BUGS for caveats)"
8557 msgstr "B<PTRACE_SETOPTIONS> (Linux 2.4.6 以降; バグの章にある警告も参照)"
8558
8559 #. type: Plain text
8560 #: build/C/man2/ptrace.2:401
8561 msgid ""
8562 "Set ptrace options from I<data>.  (I<addr> is ignored.)  I<data> is "
8563 "interpreted as a bit mask of options, which are specified by the following "
8564 "flags:"
8565 msgstr ""
8566 "I<data> に基づいて ptrace のオプションを設定する (I<addr> は無視される)。 "
8567 "I<data> はオプションのビットマスクとして解釈され、 オプションには以下のフラグ"
8568 "を指定できる:"
8569
8570 #. type: TP
8571 #: build/C/man2/ptrace.2:402
8572 #, no-wrap
8573 msgid "B<PTRACE_O_EXITKILL> (since Linux 3.8)"
8574 msgstr " B<PTRACE_O_EXITKILL> (since Linux 3.8)"
8575
8576 #.  commit 992fb6e170639b0849bace8e49bf31bd37c4123
8577 #. type: Plain text
8578 #: build/C/man2/ptrace.2:410
8579 msgid ""
8580 "If a tracer sets this flag, a B<SIGKILL> signal will be sent to every tracee "
8581 "if the tracer exits.  This option is useful for ptrace jailers that want to "
8582 "ensure that tracees can never escape the tracer's control."
8583 msgstr ""
8584
8585 #. type: TP
8586 #: build/C/man2/ptrace.2:410
8587 #, no-wrap
8588 msgid "B<PTRACE_O_TRACECLONE> (since Linux 2.5.46)"
8589 msgstr "B<PTRACE_O_TRACECLONE> (Linux 2.5.46 以降)"
8590
8591 #. type: Plain text
8592 #: build/C/man2/ptrace.2:427
8593 #, fuzzy
8594 #| msgid ""
8595 #| "Stop the child at the next B<fork>(2)  call with I<SIGTRAP | "
8596 #| "PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
8597 #| "newly forked process, which will start with a B<SIGSTOP>.  The PID for "
8598 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
8599 msgid ""
8600 "Stop the tracee at the next B<clone>(2)  and automatically start tracing the "
8601 "newly cloned process, which will start with a B<SIGSTOP>, or "
8602 "B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used.  A B<waitpid>(2)  by the "
8603 "tracer will return a I<status> value such that"
8604 msgstr ""
8605 "次の B<fork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ "
8606 "8> で 子プロセスの動作を停止させ、 新たに fork されたプロセスのトレースを自動"
8607 "的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
8608 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
8609
8610 #. type: Plain text
8611 #: build/C/man2/ptrace.2:430
8612 #, no-wrap
8613 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_CLONEE<lt>E<lt>8))\n"
8614 msgstr "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_CLONEE<lt>E<lt>8))\n"
8615
8616 #. type: Plain text
8617 #: build/C/man2/ptrace.2:434 build/C/man2/ptrace.2:520
8618 #: build/C/man2/ptrace.2:553
8619 msgid "The PID of the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
8620 msgstr "新規のプロセスの PID は B<PTRACE_GETEVENTMSG> で取得できる。"
8621
8622 #. type: Plain text
8623 #: build/C/man2/ptrace.2:455
8624 #, fuzzy
8625 #| msgid ""
8626 #| "Stop the child at the next B<clone>(2)  call with I<SIGTRAP | "
8627 #| "PTRACE_EVENT_CLONE\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
8628 #| "newly cloned process, which will start with a B<SIGSTOP>.  The PID for "
8629 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>.  This option "
8630 #| "may not catch B<clone>(2)  calls in all cases.  If the child calls "
8631 #| "B<clone>(2)  with the B<CLONE_VFORK> flag, B<PTRACE_EVENT_VFORK> will be "
8632 #| "delivered instead if B<PTRACE_O_TRACEVFORK> is set; otherwise if the "
8633 #| "child calls B<clone>(2)  with the exit signal set to B<SIGCHLD>, "
8634 #| "B<PTRACE_EVENT_FORK> will be delivered if B<PTRACE_O_TRACEFORK> is set."
8635 msgid ""
8636 "This option may not catch B<clone>(2)  calls in all cases.  If the tracee "
8637 "calls B<clone>(2)  with the B<CLONE_VFORK> flag, B<PTRACE_EVENT_VFORK> will "
8638 "be delivered instead if B<PTRACE_O_TRACEVFORK> is set; otherwise if the "
8639 "tracee calls B<clone>(2)  with the exit signal set to B<SIGCHLD>, "
8640 "B<PTRACE_EVENT_FORK> will be delivered if B<PTRACE_O_TRACEFORK> is set."
8641 msgstr ""
8642 "次の B<clone>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_CLONE\\ E<lt>E<lt> "
8643 "\\8> で 子プロセスの動作を停止させ、 新たに clone で作成されたプロセスのト"
8644 "レースを自動的に開始し、 B<SIGSTOP> でプロセスの実行を開始する。 新しいプロセ"
8645 "スの PID は B<PTRACE_GETEVENTMSG> で取得できる。 このオプションで全ての "
8646 "B<clone>(2)  コールを捕まえられるわけではない。 子プロセスが B<CLONE_VFORK> "
8647 "フラグ付きで B<clone>(2)  を呼び出した場合、 B<PTRACE_O_TRACEVFORK> が設定さ"
8648 "れていれば代わりに B<PTRACE_EVENT_VFORK> が配送される。 また、子プロセスが終"
8649 "了シグナルを B<SIGCHLD> に設定して B<clone>(2)  を呼び出した場合は、 "
8650 "B<PTRACE_O_TRACEFORK> が設定されていれば B<PTRACE_EVENT_FORK> が配送される。"
8651
8652 #. type: TP
8653 #: build/C/man2/ptrace.2:455
8654 #, no-wrap
8655 msgid "B<PTRACE_O_TRACEEXEC> (since Linux 2.5.46)"
8656 msgstr "B<PTRACE_O_TRACEEXEC> (Linux 2.5.46 以降)"
8657
8658 #. type: Plain text
8659 #: build/C/man2/ptrace.2:464
8660 msgid ""
8661 "Stop the tracee at the next B<execve>(2).  A B<waitpid>(2)  by the tracer "
8662 "will return a I<status> value such that"
8663 msgstr ""
8664
8665 #. type: Plain text
8666 #: build/C/man2/ptrace.2:467
8667 #, no-wrap
8668 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXECE<lt>E<lt>8))\n"
8669 msgstr "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXECE<lt>E<lt>8))\n"
8670
8671 #. type: Plain text
8672 #: build/C/man2/ptrace.2:473
8673 msgid ""
8674 "If the execing thread is not a thread group leader, the thread ID is reset "
8675 "to thread group leader's ID before this stop.  Since Linux 3.0, the former "
8676 "thread ID can be retrieved with B<PTRACE_GETEVENTMSG>."
8677 msgstr ""
8678
8679 #. type: TP
8680 #: build/C/man2/ptrace.2:473
8681 #, no-wrap
8682 msgid "B<PTRACE_O_TRACEEXIT> (since Linux 2.5.60)"
8683 msgstr "B<PTRACE_O_TRACEEXIT> (Linux 2.5.60 以降)"
8684
8685 #. type: Plain text
8686 #: build/C/man2/ptrace.2:481
8687 msgid ""
8688 "Stop the tracee at exit.  A B<waitpid>(2)  by the tracer will return a "
8689 "I<status> value such that"
8690 msgstr ""
8691
8692 #. type: Plain text
8693 #: build/C/man2/ptrace.2:484
8694 #, no-wrap
8695 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXITE<lt>E<lt>8))\n"
8696 msgstr "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXITE<lt>E<lt>8))\n"
8697
8698 #. type: Plain text
8699 #: build/C/man2/ptrace.2:488
8700 msgid "The tracee's exit status can be retrieved with B<PTRACE_GETEVENTMSG>."
8701 msgstr ""
8702
8703 #. type: Plain text
8704 #: build/C/man2/ptrace.2:496
8705 #, fuzzy
8706 #| msgid ""
8707 #| "Stop the child at exit with I<SIGTRAP | PTRACE_EVENT_EXIT\\ E<lt>E<lt>\\ "
8708 #| "8>.  The child's exit status can be retrieved with "
8709 #| "B<PTRACE_GETEVENTMSG>.  This stop will be done early during process exit "
8710 #| "when registers are still available, allowing the tracer to see where the "
8711 #| "exit occurred, whereas the normal exit notification is done after the "
8712 #| "process is finished exiting.  Even though context is available, the "
8713 #| "tracer cannot prevent the exit from happening at this point."
8714 msgid ""
8715 "The tracee is stopped early during process exit, when registers are still "
8716 "available, allowing the tracer to see where the exit occurred, whereas the "
8717 "normal exit notification is done after the process is finished exiting.  "
8718 "Even though context is available, the tracer cannot prevent the exit from "
8719 "happening at this point."
8720 msgstr ""
8721 "終了 (exit) 時に I<SIGTRAP | PTRACE_EVENT_EXIT\\ E<lt>E<lt>\\ 8> で子プロセス"
8722 "の動作を停止させる。子プロセスの終了ステータスは B<PTRACE_GETEVENTMSG> で取得"
8723 "できる。 この停止はレジスタがまだ参照可能であるプロセス終了処理の初期に行わ"
8724 "れ、 トレーサはどこで終了が発生したかを知ることができる。 通常の終了通知 "
8725 "(exit notification) はプロセスの終了処理が完了した後に 行われる。コンテキスト"
8726 "を参照することはできるにも関わらず、 トレーサはこの時点から終了を止めることは"
8727 "できない。"
8728
8729 #. type: TP
8730 #: build/C/man2/ptrace.2:496
8731 #, no-wrap
8732 msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
8733 msgstr "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
8734
8735 #. type: Plain text
8736 #: build/C/man2/ptrace.2:513
8737 #, fuzzy
8738 #| msgid ""
8739 #| "Stop the child at the next B<fork>(2)  call with I<SIGTRAP | "
8740 #| "PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
8741 #| "newly forked process, which will start with a B<SIGSTOP>.  The PID for "
8742 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
8743 msgid ""
8744 "Stop the tracee at the next B<fork>(2)  and automatically start tracing the "
8745 "newly forked process, which will start with a B<SIGSTOP>, or "
8746 "B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used.  A B<waitpid>(2)  by the "
8747 "tracer will return a I<status> value such that"
8748 msgstr ""
8749 "次の B<fork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ "
8750 "8> で 子プロセスの動作を停止させ、 新たに fork されたプロセスのトレースを自動"
8751 "的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
8752 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
8753
8754 #. type: Plain text
8755 #: build/C/man2/ptrace.2:516
8756 #, no-wrap
8757 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_FORKE<lt>E<lt>8))\n"
8758 msgstr "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_FORKE<lt>E<lt>8))\n"
8759
8760 #. type: TP
8761 #: build/C/man2/ptrace.2:520
8762 #, no-wrap
8763 msgid "B<PTRACE_O_TRACESYSGOOD> (since Linux 2.4.6)"
8764 msgstr "B<PTRACE_O_TRACESYSGOOD> (Linux 2.4.6 以降)"
8765
8766 #. type: Plain text
8767 #: build/C/man2/ptrace.2:529
8768 #, fuzzy
8769 #| msgid ""
8770 #| "When delivering syscall traps, set bit 7 in the signal number (i.e., "
8771 #| "deliver I<SIGTRAP | 0x80>).  This makes it easy for the tracer to tell "
8772 #| "the difference between normal traps and those caused by a syscall.  "
8773 #| "(B<PTRACE_O_TRACESYSGOOD> may not work on all architectures.)"
8774 msgid ""
8775 "When delivering system call traps, set bit 7 in the signal number (i.e., "
8776 "deliver I<SIGTRAP|0x80>).  This makes it easy for the tracer to distinguish "
8777 "normal traps from those caused by a system call.  (B<PTRACE_O_TRACESYSGOOD> "
8778 "may not work on all architectures.)"
8779 msgstr ""
8780 "システムコールのトラップが配送されたときに、シグナル番号のビット 7 を設定す"
8781 "る (すなわち、I<SIGTRAP | 0x80> を配送する)。 これにより、トレーサが通常のト"
8782 "ラップとシステムコールによるトラップを 区別しやすくなる。 "
8783 "(B<PTRACE_O_TRACESYSGOOD> はどのアーキテクチャでも動作しない可能性がある。)"
8784
8785 #. type: TP
8786 #: build/C/man2/ptrace.2:529
8787 #, no-wrap
8788 msgid "B<PTRACE_O_TRACEVFORK> (since Linux 2.5.46)"
8789 msgstr "B<PTRACE_O_TRACEVFORK> (Linux 2.5.46 以降)"
8790
8791 #. type: Plain text
8792 #: build/C/man2/ptrace.2:546
8793 #, fuzzy
8794 #| msgid ""
8795 #| "Stop the child at the next B<vfork>(2)  call with I<SIGTRAP | "
8796 #| "PTRACE_EVENT_VFORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
8797 #| "newly vforked process, which will start with a B<SIGSTOP>.  The PID for "
8798 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
8799 msgid ""
8800 "Stop the tracee at the next B<vfork>(2)  and automatically start tracing the "
8801 "newly vforked process, which will start with a B<SIGSTOP>, or "
8802 "B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used.  A B<waitpid>(2)  by the "
8803 "tracer will return a I<status> value such that"
8804 msgstr ""
8805 "次の B<vfork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_VFORK\\ E<lt>E<lt>\\ "
8806 "8> で 子プロセスの動作を停止させ、 新たに vfork されたプロセスのトレースを自"
8807 "動的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
8808 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
8809
8810 #. type: Plain text
8811 #: build/C/man2/ptrace.2:549
8812 #, no-wrap
8813 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORKE<lt>E<lt>8))\n"
8814 msgstr "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORKE<lt>E<lt>8))\n"
8815
8816 #. type: TP
8817 #: build/C/man2/ptrace.2:553
8818 #, no-wrap
8819 msgid "B<PTRACE_O_TRACEVFORKDONE> (since Linux 2.5.60)"
8820 msgstr "B<PTRACE_O_TRACEVFORKDONE> (Linux 2.5.60 以降)"
8821
8822 #. type: Plain text
8823 #: build/C/man2/ptrace.2:562
8824 msgid ""
8825 "Stop the tracee at the completion of the next B<vfork>(2).  A B<waitpid>(2)  "
8826 "by the tracer will return a I<status> value such that"
8827 msgstr ""
8828
8829 #. type: Plain text
8830 #: build/C/man2/ptrace.2:565
8831 #, no-wrap
8832 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORK_DONEE<lt>E<lt>8))\n"
8833 msgstr ""
8834
8835 #. type: Plain text
8836 #: build/C/man2/ptrace.2:569
8837 msgid ""
8838 "The PID of the new process can (since Linux 2.6.18) be retrieved with "
8839 "B<PTRACE_GETEVENTMSG>."
8840 msgstr ""
8841
8842 #. type: TP
8843 #: build/C/man2/ptrace.2:570
8844 #, no-wrap
8845 msgid "B<PTRACE_GETEVENTMSG> (since Linux 2.5.46)"
8846 msgstr "B<PTRACE_GETEVENTMSG> (Linux 2.5.46 以降)"
8847
8848 #. type: Plain text
8849 #: build/C/man2/ptrace.2:590
8850 #, fuzzy
8851 #| msgid ""
8852 #| "Retrieve a message (as an I<unsigned long>)  about the ptrace event that "
8853 #| "just happened, placing it in the location I<data> in the parent.  For "
8854 #| "B<PTRACE_EVENT_EXIT> this is the child's exit status.  For "
8855 #| "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK> and B<PTRACE_EVENT_CLONE> "
8856 #| "this is the PID of the new process.  Since Linux 2.6.18, the PID of the "
8857 #| "new process is also available for B<PTRACE_EVENT_VFORK_DONE>.  (I<addr> "
8858 #| "is ignored.)"
8859 msgid ""
8860 "Retrieve a message (as an I<unsigned long>)  about the ptrace event that "
8861 "just happened, placing it at the address I<data> in the tracer.  For "
8862 "B<PTRACE_EVENT_EXIT>, this is the tracee's exit status.  For "
8863 "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK>, B<PTRACE_EVENT_VFORK_DONE>, and "
8864 "B<PTRACE_EVENT_CLONE>, this is the PID of the new process.  (I<addr> is "
8865 "ignored.)"
8866 msgstr ""
8867 "発生したばかりの ptrace イベントに関するメッセージを (I<unsigned long> 型で) "
8868 "取得する。 取得したメッセージは親プロセスの I<data> の位置に格納される。 得ら"
8869 "れる内容は、 B<PTRACE_EVENT_EXIT> の場合は子プロセスの終了ステータスであり、 "
8870 "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK>, B<PTRACE_EVENT_CLONE> の場合は新"
8871 "しいプロセスの PID である。 Linux 2.6.18 以降では、新しいプロセスの PID は "
8872 "B<PTRACE_EVENT_VFORK_DONE> で入手できる。 (I<addr> は無視される。)"
8873
8874 #. type: TP
8875 #: build/C/man2/ptrace.2:590
8876 #, no-wrap
8877 msgid "B<PTRACE_CONT>"
8878 msgstr "B<PTRACE_CONT>"
8879
8880 #. type: Plain text
8881 #: build/C/man2/ptrace.2:602
8882 #, fuzzy
8883 #| msgid ""
8884 #| "Restarts the stopped child process.  If I<data> is nonzero and not "
8885 #| "B<SIGSTOP>, it is interpreted as a signal to be delivered to the child; "
8886 #| "otherwise, no signal is delivered.  Thus, for example, the parent can "
8887 #| "control whether a signal sent to the child is delivered or not.  (I<addr> "
8888 #| "is ignored.)"
8889 msgid ""
8890 "Restart the stopped tracee process.  If I<data> is nonzero, it is "
8891 "interpreted as the number of a signal to be delivered to the tracee; "
8892 "otherwise, no signal is delivered.  Thus, for example, the tracer can "
8893 "control whether a signal sent to the tracee is delivered or not.  (I<addr> "
8894 "is ignored.)"
8895 msgstr ""
8896 "停止した子プロセスの実行を再開させる。 I<data> がゼロでなく、 B<SIGSTOP> でも"
8897 "なければ、 子プロセスに配送されるシグナルと解釈される。 ゼロや B<SIGSTOP> の"
8898 "場合はシグナルは配送されない。 これを使うと、例えば、親プロセスは 子プロセス"
8899 "に送られたシグナルを実際に配送するかどうかを 制御することができる。(I<addr> "
8900 "は無視される。)"
8901
8902 #. type: TP
8903 #: build/C/man2/ptrace.2:602
8904 #, no-wrap
8905 msgid "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
8906 msgstr "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
8907
8908 #. type: Plain text
8909 #: build/C/man2/ptrace.2:626
8910 #, fuzzy
8911 #| msgid ""
8912 #| "Restarts the stopped child as for B<PTRACE_CONT>, but arranges for the "
8913 #| "child to be stopped at the next entry to or exit from a system call, or "
8914 #| "after execution of a single instruction, respectively.  (The child will "
8915 #| "also, as usual, be stopped upon receipt of a signal.)  From the parent's "
8916 #| "perspective, the child will appear to have been stopped by receipt of a "
8917 #| "B<SIGTRAP>.  So, for B<PTRACE_SYSCALL>, for example, the idea is to "
8918 #| "inspect the arguments to the system call at the first stop, then do "
8919 #| "another B<PTRACE_SYSCALL> and inspect the return value of the system call "
8920 #| "at the second stop.  The I<data> argument is treated as for "
8921 #| "B<PTRACE_CONT>.  (I<addr> is ignored.)"
8922 msgid ""
8923 "Restart the stopped tracee as for B<PTRACE_CONT>, but arrange for the tracee "
8924 "to be stopped at the next entry to or exit from a system call, or after "
8925 "execution of a single instruction, respectively.  (The tracee will also, as "
8926 "usual, be stopped upon receipt of a signal.)  From the tracer's perspective, "
8927 "the tracee will appear to have been stopped by receipt of a B<SIGTRAP>.  So, "
8928 "for B<PTRACE_SYSCALL>, for example, the idea is to inspect the arguments to "
8929 "the system call at the first stop, then do another B<PTRACE_SYSCALL> and "
8930 "inspect the return value of the system call at the second stop.  The I<data> "
8931 "argument is treated as for B<PTRACE_CONT>.  (I<addr> is ignored.)"
8932 msgstr ""
8933 "B<PTRACE_CONT> と同様に停止した子プロセスを再開する。ただし、 "
8934 "B<PTRACE_SYSCALL> の場合は子プロセスが 次にシステムコールに入るかシステムコー"
8935 "ルから抜けるかする時に、 B<PTRACE_SINGLESTEP> の場合は 1 命令 (instruction) "
8936 "実行した後に停止させる (通常どおり、子プロセスはシグナルを受け取った場合にも"
8937 "停止する)。 親プロセスから見ると、子プロセスは B<SIGTRAP> を受信して停止した"
8938 "ように見える。そのため、例えば B<PTRACE_SYSCALL> を使うと、1回目の停止で引き"
8939 "数を調べて B<PTRACE_SYSCALL> を実行し、 2回目の停止でシステムコールの返り値を"
8940 "調べる、 というようなことができる。 引き数 I<data> は B<PTRACE_CONT> の場合と"
8941 "同じ様に解釈される。 (I<addr> は無視される。)"
8942
8943 #. type: TP
8944 #: build/C/man2/ptrace.2:626
8945 #, no-wrap
8946 msgid "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (since Linux 2.6.14)"
8947 msgstr "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (Linux 2.6.14 以降)"
8948
8949 #.  As at 3.7
8950 #. type: Plain text
8951 #: build/C/man2/ptrace.2:647
8952 #, fuzzy
8953 #| msgid ""
8954 #| "For B<PTRACE_SYSEMU>, continue and stop on entry to the next syscall, "
8955 #| "which will not be executed.  For B<PTRACE_SYSEMU_SINGLESTEP>, do the same "
8956 #| "but also singlestep if not a syscall.  This call is used by programs like "
8957 #| "User Mode Linux that want to emulate all the child's system calls.  The "
8958 #| "I<data> argument is treated as for B<PTRACE_CONT>.  (I<addr> is ignored; "
8959 #| "not supported on all architectures.)"
8960 msgid ""
8961 "For B<PTRACE_SYSEMU>, continue and stop on entry to the next system call, "
8962 "which will not be executed.  For B<PTRACE_SYSEMU_SINGLESTEP>, do the same "
8963 "but also singlestep if not a system call.  This call is used by programs "
8964 "like User Mode Linux that want to emulate all the tracee's system calls.  "
8965 "The I<data> argument is treated as for B<PTRACE_CONT>.  The I<addr> argument "
8966 "is ignored.  These requests are currently supported only on x86."
8967 msgstr ""
8968 "B<PTRACE_SYSEMU> は、実行を再開し、次のシステムコールに入る時に停止させる。 "
8969 "システムコールは実行されない。 B<PTRACE_SYSEMU_SINGLESTEP> も同様だが、システ"
8970 "ムコールでない場合には 1 命令 (singlestep) だけ実行した時点でも停止させる。 "
8971 "このコールは User Mode Linux のように子プロセスのシステムコールを全て エミュ"
8972 "レートしようとするプログラムで使用される。 引き数 I<data> は B<PTRACE_CONT> "
8973 "の場合と同じ様に解釈される。 (I<addr> は無視される。 全てのアーキテクチャでサ"
8974 "ポートされているわけではない。)"
8975
8976 #. type: TP
8977 #: build/C/man2/ptrace.2:647
8978 #, no-wrap
8979 msgid "B<PTRACE_LISTEN> (since Linux 3.4)"
8980 msgstr " B<PTRACE_LISTEN> (since Linux 3.4)"
8981
8982 #. type: Plain text
8983 #: build/C/man2/ptrace.2:658
8984 msgid ""
8985 "Restart the stopped tracee, but prevent it from executing.  The resulting "
8986 "state of the tracee is similar to a process which has been stopped by a "
8987 "B<SIGSTOP> (or other stopping signal).  See the \"group-stop\" subsection "
8988 "for additional information.  B<PTRACE_LISTEN> works only on tracees attached "
8989 "by B<PTRACE_SEIZE>."
8990 msgstr ""
8991
8992 #. type: TP
8993 #: build/C/man2/ptrace.2:658
8994 #, no-wrap
8995 msgid "B<PTRACE_KILL>"
8996 msgstr "B<PTRACE_KILL>"
8997
8998 #. type: Plain text
8999 #: build/C/man2/ptrace.2:667
9000 #, fuzzy
9001 #| msgid ""
9002 #| "Sends the child a B<SIGKILL> to terminate it.  (I<addr> and I<data> are "
9003 #| "ignored.)"
9004 msgid ""
9005 "Send the tracee a B<SIGKILL> to terminate it.  (I<addr> and I<data> are "
9006 "ignored.)"
9007 msgstr ""
9008 "子プロセスに B<SIGKILL> を送り終了させる。(I<addr> と I<data> は無視される。)"
9009
9010 #.  [Note from Denys Vlasenko:
9011 #.      deprecation suggested by Oleg Nesterov. He prefers to deprecate it
9012 #.      instead of describing (and needing to support) PTRACE_KILL's quirks.]
9013 #. type: Plain text
9014 #: build/C/man2/ptrace.2:686
9015 msgid ""
9016 "I<This operation is deprecated; do not use it!> Instead, send a B<SIGKILL> "
9017 "directly using B<kill>(2)  or B<tgkill>(2).  The problem with B<PTRACE_KILL> "
9018 "is that it requires the tracee to be in signal-delivery-stop, otherwise it "
9019 "may not work (i.e., may complete successfully but won't kill the tracee).  "
9020 "By contrast, sending a B<SIGKILL> directly has no such limitation."
9021 msgstr ""
9022
9023 #. type: TP
9024 #: build/C/man2/ptrace.2:686
9025 #, no-wrap
9026 msgid "B<PTRACE_INTERRUPT> (since Linux 3.4)"
9027 msgstr " B<PTRACE_INTERRUPT> (since Linux 3.4)"
9028
9029 #. type: Plain text
9030 #: build/C/man2/ptrace.2:714
9031 msgid ""
9032 "Stop a tracee.  If the tracee is running or sleeping in kernel space and "
9033 "B<PTRACE_SYSCALL> is in effect, the system call is interrupted and syscall-"
9034 "exit-stop is reported.  (The interrupted system call is restarted when the "
9035 "tracee is restarted.)  If the tracee was already stopped by a signal and "
9036 "B<PTRACE_LISTEN> was sent to it, the tracee stops with B<PTRACE_EVENT_STOP> "
9037 "and I<WSTOPSIG(status)> returns the stop signal.  If any other ptrace-stop "
9038 "is generated at the same time (for example, if a signal is sent to the "
9039 "tracee), this ptrace-stop happens.  If none of the above applies (for "
9040 "example, if the tracee is running in user space), it stops with "
9041 "B<PTRACE_EVENT_STOP> with I<WSTOPSIG(status)> == B<SIGTRAP>.  "
9042 "B<PTRACE_INTERRUPT> only works on tracees attached by B<PTRACE_SEIZE>."
9043 msgstr ""
9044
9045 #. type: TP
9046 #: build/C/man2/ptrace.2:714
9047 #, no-wrap
9048 msgid "B<PTRACE_ATTACH>"
9049 msgstr "B<PTRACE_ATTACH>"
9050
9051 #.  No longer true (removed by Denys Vlasenko, 2011, who remarks:
9052 #.         "I think it isn't true in non-ancient 2.4 and in 2.6/3.x.
9053 #.          Basically, it's not true for any Linux in practical use.
9054 #.  ; the behavior of the tracee is as if it had done a
9055 #.  .BR PTRACE_TRACEME .
9056 #.  The calling process actually becomes the parent of the tracee
9057 #.  process for most purposes (e.g., it will receive
9058 #.  notification of tracee events and appears in
9059 #.  .BR ps (1)
9060 #.  output as the tracee's parent), but a
9061 #.  .BR getppid (2)
9062 #.  by the tracee will still return the PID of the original parent.
9063 #. type: Plain text
9064 #: build/C/man2/ptrace.2:742
9065 msgid ""
9066 "Attach to the process specified in I<pid>, making it a tracee of the calling "
9067 "process.  The tracee is sent a B<SIGSTOP>, but will not necessarily have "
9068 "stopped by the completion of this call; use B<waitpid>(2)  to wait for the "
9069 "tracee to stop.  See the \"Attaching and detaching\" subsection for "
9070 "additional information.  (I<addr> and I<data> are ignored.)"
9071 msgstr ""
9072
9073 #. type: TP
9074 #: build/C/man2/ptrace.2:742
9075 #, no-wrap
9076 msgid "B<PTRACE_SEIZE> (since Linux 3.4)"
9077 msgstr " B<PTRACE_SEIZE> (since Linux 3.4)"
9078
9079 #. type: Plain text
9080 #: build/C/man2/ptrace.2:762
9081 msgid ""
9082 "Attach to the process specified in I<pid>, making it a tracee of the calling "
9083 "process.  Unlike B<PTRACE_ATTACH>, B<PTRACE_SEIZE> does not stop the "
9084 "process.  Only a B<PTRACE_SEIZE>d process can accept B<PTRACE_INTERRUPT> and "
9085 "B<PTRACE_LISTEN> commands.  I<addr> must be zero.  I<data> contains a bit "
9086 "mask of ptrace options to activate immediately."
9087 msgstr ""
9088
9089 #. type: TP
9090 #: build/C/man2/ptrace.2:762
9091 #, no-wrap
9092 msgid "B<PTRACE_DETACH>"
9093 msgstr "B<PTRACE_DETACH>"
9094
9095 #. type: Plain text
9096 #: build/C/man2/ptrace.2:771
9097 #, fuzzy
9098 #| msgid ""
9099 #| "Restarts the stopped child as for B<PTRACE_CONT>, but first detaches from "
9100 #| "the process, undoing the reparenting effect of B<PTRACE_ATTACH>, and the "
9101 #| "effects of B<PTRACE_TRACEME>.  Although perhaps not intended, under Linux "
9102 #| "a traced child can be detached in this way regardless of which method was "
9103 #| "used to initiate tracing.  (I<addr> is ignored.)"
9104 msgid ""
9105 "Restart the stopped tracee as for B<PTRACE_CONT>, but first detach from it.  "
9106 "Under Linux, a tracee can be detached in this way regardless of which method "
9107 "was used to initiate tracing.  (I<addr> is ignored.)"
9108 msgstr ""
9109 "B<PTRACE_CONT> と同様に停止した子プロセスを再開する。ただし まずそのプロセス"
9110 "からの分離 (detach) を行い、 B<PTRACE_ATTACH> での親の切り換えによる効果と "
9111 "B<PTRACE_TRACEME> の効果を取り消す。意図したものではないだろうが、 Linux で"
9112 "は、トレースされている子プロセスはどのような方法でトレースを 開始されたとして"
9113 "も、この方法で分離 (detach) することができる。 (I<addr> は無視される。)"
9114
9115 #. type: SS
9116 #: build/C/man2/ptrace.2:771
9117 #, no-wrap
9118 msgid "Death under ptrace"
9119 msgstr ""
9120
9121 #. type: Plain text
9122 #: build/C/man2/ptrace.2:780
9123 msgid ""
9124 "When a (possibly multithreaded) process receives a killing signal (one whose "
9125 "disposition is set to B<SIG_DFL> and whose default action is to kill the "
9126 "process), all threads exit.  Tracees report their death to their tracer(s).  "
9127 "Notification of this event is delivered via B<waitpid>(2)."
9128 msgstr ""
9129
9130 #. type: Plain text
9131 #: build/C/man2/ptrace.2:789
9132 msgid ""
9133 "Note that the killing signal will first cause signal-delivery-stop (on one "
9134 "tracee only), and only after it is injected by the tracer (or after it was "
9135 "dispatched to a thread which isn't traced), will death from the signal "
9136 "happen on I<all> tracees within a multithreaded process.  (The term \"signal-"
9137 "delivery-stop\" is explained below.)"
9138 msgstr ""
9139
9140 #. type: Plain text
9141 #: build/C/man2/ptrace.2:801
9142 msgid ""
9143 "B<SIGKILL> does not generate signal-delivery-stop and therefore the tracer "
9144 "can't suppress it.  B<SIGKILL> kills even within system calls (syscall-exit-"
9145 "stop is not generated prior to death by B<SIGKILL>).  The net effect is that "
9146 "B<SIGKILL> always kills the process (all its threads), even if some threads "
9147 "of the process are ptraced."
9148 msgstr ""
9149
9150 #. type: Plain text
9151 #: build/C/man2/ptrace.2:806
9152 msgid ""
9153 "When the tracee calls B<_exit>(2), it reports its death to its tracer.  "
9154 "Other threads are not affected."
9155 msgstr ""
9156
9157 #. type: Plain text
9158 #: build/C/man2/ptrace.2:810
9159 msgid ""
9160 "When any thread executes B<exit_group>(2), every tracee in its thread group "
9161 "reports its death to its tracer."
9162 msgstr ""
9163
9164 #. type: Plain text
9165 #: build/C/man2/ptrace.2:824
9166 msgid ""
9167 "If the B<PTRACE_O_TRACEEXIT> option is on, B<PTRACE_EVENT_EXIT> will happen "
9168 "before actual death.  This applies to exits via B<exit>(2), B<exit_group>"
9169 "(2), and signal deaths (except B<SIGKILL>), and when threads are torn down "
9170 "on B<execve>(2)  in a multithreaded process."
9171 msgstr ""
9172
9173 #. type: Plain text
9174 #: build/C/man2/ptrace.2:849
9175 msgid ""
9176 "The tracer cannot assume that the ptrace-stopped tracee exists.  There are "
9177 "many scenarios when the tracee may die while stopped (such as B<SIGKILL>).  "
9178 "Therefore, the tracer must be prepared to handle an B<ESRCH> error on any "
9179 "ptrace operation.  Unfortunately, the same error is returned if the tracee "
9180 "exists but is not ptrace-stopped (for commands which require a stopped "
9181 "tracee), or if it is not traced by the process which issued the ptrace "
9182 "call.  The tracer needs to keep track of the stopped/running state of the "
9183 "tracee, and interpret B<ESRCH> as \"tracee died unexpectedly\" only if it "
9184 "knows that the tracee has been observed to enter ptrace-stop.  Note that "
9185 "there is no guarantee that I<waitpid(WNOHANG)> will reliably report the "
9186 "tracee's death status if a ptrace operation returned B<ESRCH>.  I<waitpid"
9187 "(WNOHANG)> may return 0 instead.  In other words, the tracee may be \"not "
9188 "yet fully dead\", but already refusing ptrace requests."
9189 msgstr ""
9190
9191 #. type: Plain text
9192 #: build/C/man2/ptrace.2:863
9193 msgid ""
9194 "The tracer can't assume that the tracee I<always> ends its life by reporting "
9195 "I<WIFEXITED(status)> or I<WIFSIGNALED(status)>; there are cases where this "
9196 "does not occur.  For example, if a thread other than thread group leader "
9197 "does an B<execve>(2), it disappears; its PID will never be seen again, and "
9198 "any subsequent ptrace stops will be reported under the thread group leader's "
9199 "PID."
9200 msgstr ""
9201
9202 #. type: SS
9203 #: build/C/man2/ptrace.2:863
9204 #, no-wrap
9205 msgid "Stopped states"
9206 msgstr ""
9207
9208 #. type: Plain text
9209 #: build/C/man2/ptrace.2:885
9210 msgid ""
9211 "A tracee can be in two states: running or stopped.  For the purposes of "
9212 "ptrace, a tracee which is blocked in a system call (such as B<read>(2), "
9213 "B<pause>(2), etc.)  is nevertheless considered to be running, even if the "
9214 "tracee is blocked for a long time.  The state of the tracee after "
9215 "B<PTRACE_LISTEN> is somewhat of a gray area: it is not in any ptrace-stop "
9216 "(ptrace commands won't work on it, and it will deliver B<waitpid>(2)  "
9217 "notifications), but it also may be considered \"stopped\" because it is not "
9218 "executing instructions (is not scheduled), and if it was in group-stop "
9219 "before B<PTRACE_LISTEN>, it will not respond to signals until B<SIGCONT> is "
9220 "received."
9221 msgstr ""
9222
9223 #. type: Plain text
9224 #: build/C/man2/ptrace.2:889
9225 msgid ""
9226 "There are many kinds of states when the tracee is stopped, and in ptrace "
9227 "discussions they are often conflated.  Therefore, it is important to use "
9228 "precise terms."
9229 msgstr ""
9230
9231 #. type: Plain text
9232 #: build/C/man2/ptrace.2:900
9233 msgid ""
9234 "In this manual page, any stopped state in which the tracee is ready to "
9235 "accept ptrace commands from the tracer is called I<ptrace-stop>.  Ptrace-"
9236 "stops can be further subdivided into I<signal-delivery-stop>, I<group-stop>, "
9237 "I<syscall-stop>, and so on.  These stopped states are described in detail "
9238 "below."
9239 msgstr ""
9240
9241 #. type: Plain text
9242 #: build/C/man2/ptrace.2:905
9243 msgid ""
9244 "When the running tracee enters ptrace-stop, it notifies its tracer using "
9245 "B<waitpid>(2)  (or one of the other \"wait\" system calls).  Most of this "
9246 "manual page assumes that the tracer waits with:"
9247 msgstr ""
9248
9249 #. type: Plain text
9250 #: build/C/man2/ptrace.2:907
9251 #, no-wrap
9252 msgid "    pid = waitpid(pid_or_minus_1, &status, __WALL);\n"
9253 msgstr ""
9254
9255 #.  Denys Vlasenko:
9256 #.      Do we require __WALL usage, or will just using 0 be ok? (With 0,
9257 #.      I am not 100% sure there aren't ugly corner cases.) Are the
9258 #.      rules different if user wants to use waitid? Will waitid require
9259 #.      WEXITED?
9260 #. type: Plain text
9261 #: build/C/man2/ptrace.2:919
9262 msgid ""
9263 "Ptrace-stopped tracees are reported as returns with I<pid> greater than 0 "
9264 "and I<WIFSTOPPED(status)> true."
9265 msgstr ""
9266
9267 #. type: Plain text
9268 #: build/C/man2/ptrace.2:927
9269 msgid ""
9270 "The B<__WALL> flag does not include the B<WSTOPPED> and B<WEXITED> flags, "
9271 "but implies their functionality."
9272 msgstr ""
9273
9274 #. type: Plain text
9275 #: build/C/man2/ptrace.2:934
9276 msgid ""
9277 "Setting the B<WCONTINUED> flag when calling B<waitpid>(2)  is not "
9278 "recommended: the \"continued\" state is per-process and consuming it can "
9279 "confuse the real parent of the tracee."
9280 msgstr ""
9281
9282 #. type: Plain text
9283 #: build/C/man2/ptrace.2:942
9284 msgid ""
9285 "Use of the B<WNOHANG> flag may cause B<waitpid>(2)  to return 0 (\"no wait "
9286 "results available yet\")  even if the tracer knows there should be a "
9287 "notification.  Example:"
9288 msgstr ""
9289
9290 #. type: Plain text
9291 #: build/C/man2/ptrace.2:951
9292 #, no-wrap
9293 msgid ""
9294 "    errno = 0;\n"
9295 "    ptrace(PTRACE_CONT, pid, 0L, 0L);\n"
9296 "    if (errno == ESRCH) {\n"
9297 "        /* tracee is dead */\n"
9298 "        r = waitpid(tracee, &status, __WALL | WNOHANG);\n"
9299 "        /* r can still be 0 here! */\n"
9300 "    }\n"
9301 msgstr ""
9302
9303 #. type: Plain text
9304 #: build/C/man2/ptrace.2:974
9305 msgid ""
9306 "The following kinds of ptrace-stops exist: signal-delivery-stops, group-"
9307 "stops, B<PTRACE_EVENT> stops, syscall-stops.  They all are reported by "
9308 "B<waitpid>(2)  with I<WIFSTOPPED(status)> true.  They may be differentiated "
9309 "by examining the value I<statusE<gt>E<gt>8>, and if there is ambiguity in "
9310 "that value, by querying B<PTRACE_GETSIGINFO>.  (Note: the I<WSTOPSIG(status)"
9311 "> macro can't be used to perform this examination, because it returns the "
9312 "value I<(statusE<gt>E<gt>8)\\ &\\ 0xff>.)"
9313 msgstr ""
9314
9315 #. type: SS
9316 #: build/C/man2/ptrace.2:974
9317 #, no-wrap
9318 msgid "Signal-delivery-stop"
9319 msgstr ""
9320
9321 #. type: Plain text
9322 #: build/C/man2/ptrace.2:994
9323 msgid ""
9324 "When a (possibly multithreaded) process receives any signal except "
9325 "B<SIGKILL>, the kernel selects an arbitrary thread which handles the "
9326 "signal.  (If the signal is generated with B<tgkill>(2), the target thread "
9327 "can be explicitly selected by the caller.)  If the selected thread is "
9328 "traced, it enters signal-delivery-stop.  At this point, the signal is not "
9329 "yet delivered to the process, and can be suppressed by the tracer.  If the "
9330 "tracer doesn't suppress the signal, it passes the signal to the tracee in "
9331 "the next ptrace restart request.  This second step of signal delivery is "
9332 "called I<signal injection> in this manual page.  Note that if the signal is "
9333 "blocked, signal-delivery-stop doesn't happen until the signal is unblocked, "
9334 "with the usual exception that B<SIGSTOP> can't be blocked."
9335 msgstr ""
9336
9337 #. type: Plain text
9338 #: build/C/man2/ptrace.2:1008
9339 msgid ""
9340 "Signal-delivery-stop is observed by the tracer as B<waitpid>(2)  returning "
9341 "with I<WIFSTOPPED(status)> true, with the signal returned by I<WSTOPSIG"
9342 "(status)>.  If the signal is B<SIGTRAP>, this may be a different kind of "
9343 "ptrace-stop; see the \"Syscall-stops\" and \"execve\" sections below for "
9344 "details.  If I<WSTOPSIG(status)> returns a stopping signal, this may be a "
9345 "group-stop; see below."
9346 msgstr ""
9347
9348 #. type: SS
9349 #: build/C/man2/ptrace.2:1008
9350 #, no-wrap
9351 msgid "Signal injection and suppression"
9352 msgstr ""
9353
9354 #. type: Plain text
9355 #: build/C/man2/ptrace.2:1011
9356 msgid ""
9357 "After signal-delivery-stop is observed by the tracer, the tracer should "
9358 "restart the tracee with the call"
9359 msgstr ""
9360
9361 #. type: Plain text
9362 #: build/C/man2/ptrace.2:1013
9363 #, no-wrap
9364 msgid "    ptrace(PTRACE_restart, pid, 0, sig)\n"
9365 msgstr ""
9366
9367 #. type: Plain text
9368 #: build/C/man2/ptrace.2:1026
9369 msgid ""
9370 "where B<PTRACE_restart> is one of the restarting ptrace requests.  If I<sig> "
9371 "is 0, then a signal is not delivered.  Otherwise, the signal I<sig> is "
9372 "delivered.  This operation is called I<signal injection> in this manual "
9373 "page, to distinguish it from signal-delivery-stop."
9374 msgstr ""
9375
9376 #. type: Plain text
9377 #: build/C/man2/ptrace.2:1032
9378 msgid ""
9379 "The I<sig> value may be different from the I<WSTOPSIG(status)> value: the "
9380 "tracer can cause a different signal to be injected."
9381 msgstr ""
9382
9383 #. type: Plain text
9384 #: build/C/man2/ptrace.2:1048
9385 msgid ""
9386 "Note that a suppressed signal still causes system calls to return "
9387 "prematurely.  In this case system calls will be restarted: the tracer will "
9388 "observe the tracee to reexecute the interrupted system call (or "
9389 "B<restart_syscall>(2)  system call for a few syscalls which use a different "
9390 "mechanism for restarting) if the tracer uses B<PTRACE_SYSCALL>.  Even system "
9391 "calls (such as B<poll>(2))  which are not restartable after signal are "
9392 "restarted after signal is suppressed; however, kernel bugs exist which cause "
9393 "some syscalls to fail with B<EINTR> even though no observable signal is "
9394 "injected to the tracee."
9395 msgstr ""
9396
9397 #. type: Plain text
9398 #: build/C/man2/ptrace.2:1059
9399 msgid ""
9400 "Restarting ptrace commands issued in ptrace-stops other than signal-delivery-"
9401 "stop are not guaranteed to inject a signal, even if I<sig> is nonzero.  No "
9402 "error is reported; a nonzero I<sig> may simply be ignored.  Ptrace users "
9403 "should not try to \"create a new signal\" this way: use B<tgkill>(2)  "
9404 "instead."
9405 msgstr ""
9406
9407 #. type: Plain text
9408 #: build/C/man2/ptrace.2:1066
9409 msgid ""
9410 "The fact that signal injection requests may be ignored when restarting the "
9411 "tracee after ptrace stops that are not signal-delivery-stops is a cause of "
9412 "confusion among ptrace users.  One typical scenario is that the tracer "
9413 "observes group-stop, mistakes it for signal-delivery-stop, restarts the "
9414 "tracee with"
9415 msgstr ""
9416
9417 #. type: Plain text
9418 #: build/C/man2/ptrace.2:1068
9419 #, no-wrap
9420 msgid "    ptrace(PTRACE_restart, pid, 0, stopsig)\n"
9421 msgstr ""
9422
9423 #. type: Plain text
9424 #: build/C/man2/ptrace.2:1074
9425 msgid ""
9426 "with the intention of injecting I<stopsig>, but I<stopsig> gets ignored and "
9427 "the tracee continues to run."
9428 msgstr ""
9429
9430 #. type: Plain text
9431 #: build/C/man2/ptrace.2:1094
9432 msgid ""
9433 "The B<SIGCONT> signal has a side effect of waking up (all threads of)  a "
9434 "group-stopped process.  This side effect happens before signal-delivery-"
9435 "stop.  The tracer can't suppress this side effect (it can only suppress "
9436 "signal injection, which only causes the B<SIGCONT> handler to not be "
9437 "executed in the tracee, if such a handler is installed).  In fact, waking up "
9438 "from group-stop may be followed by signal-delivery-stop for signal(s)  "
9439 "I<other than> B<SIGCONT>, if they were pending when B<SIGCONT> was "
9440 "delivered.  In other words, B<SIGCONT> may be not the first signal observed "
9441 "by the tracee after it was sent."
9442 msgstr ""
9443
9444 #. type: Plain text
9445 #: build/C/man2/ptrace.2:1098
9446 msgid ""
9447 "Stopping signals cause (all threads of) a process to enter group-stop.  This "
9448 "side effect happens after signal injection, and therefore can be suppressed "
9449 "by the tracer."
9450 msgstr ""
9451
9452 #
9453 #.  In the Linux 2.4 sources, in arch/i386/kernel/signal.c::do_signal(),
9454 #.  there is:
9455 #.              /* The debugger continued.  Ignore SIGSTOP.  */
9456 #.              if (signr == SIGSTOP)
9457 #.                      continue;
9458 #. type: Plain text
9459 #: build/C/man2/ptrace.2:1108
9460 msgid "In Linux 2.4 and earlier, the B<SIGSTOP> signal can't be injected."
9461 msgstr ""
9462
9463 #. type: Plain text
9464 #: build/C/man2/ptrace.2:1125
9465 msgid ""
9466 "B<PTRACE_GETSIGINFO> can be used to retrieve a I<siginfo_t> structure which "
9467 "corresponds to the delivered signal.  B<PTRACE_SETSIGINFO> may be used to "
9468 "modify it.  If B<PTRACE_SETSIGINFO> has been used to alter I<siginfo_t>, the "
9469 "I<si_signo> field and the I<sig> parameter in the restarting command must "
9470 "match, otherwise the result is undefined."
9471 msgstr ""
9472
9473 #. type: SS
9474 #: build/C/man2/ptrace.2:1125
9475 #, no-wrap
9476 msgid "Group-stop"
9477 msgstr ""
9478
9479 #. type: Plain text
9480 #: build/C/man2/ptrace.2:1137
9481 msgid ""
9482 "When a (possibly multithreaded) process receives a stopping signal, all "
9483 "threads stop.  If some threads are traced, they enter a group-stop.  Note "
9484 "that the stopping signal will first cause signal-delivery-stop (on one "
9485 "tracee only), and only after it is injected by the tracer (or after it was "
9486 "dispatched to a thread which isn't traced), will group-stop be initiated on "
9487 "I<all> tracees within the multithreaded process.  As usual, every tracee "
9488 "reports its group-stop separately to the corresponding tracer."
9489 msgstr ""
9490
9491 #. type: Plain text
9492 #: build/C/man2/ptrace.2:1146
9493 msgid ""
9494 "Group-stop is observed by the tracer as B<waitpid>(2)  returning with "
9495 "I<WIFSTOPPED(status)> true, with the stopping signal available via I<WSTOPSIG"
9496 "(status)>.  The same result is returned by some other classes of ptrace-"
9497 "stops, therefore the recommended practice is to perform the call"
9498 msgstr ""
9499
9500 #. type: Plain text
9501 #: build/C/man2/ptrace.2:1148
9502 #, no-wrap
9503 msgid "    ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo)\n"
9504 msgstr ""
9505
9506 #. type: Plain text
9507 #: build/C/man2/ptrace.2:1169
9508 msgid ""
9509 "The call can be avoided if the signal is not B<SIGSTOP>, B<SIGTSTP>, "
9510 "B<SIGTTIN>, or B<SIGTTOU>; only these four signals are stopping signals.  If "
9511 "the tracer sees something else, it can't be a group-stop.  Otherwise, the "
9512 "tracer needs to call B<PTRACE_GETSIGINFO>.  If B<PTRACE_GETSIGINFO> fails "
9513 "with B<EINVAL>, then it is definitely a group-stop.  (Other failure codes "
9514 "are possible, such as B<ESRCH> (\"no such process\") if a B<SIGKILL> killed "
9515 "the tracee.)"
9516 msgstr ""
9517
9518 #. type: Plain text
9519 #: build/C/man2/ptrace.2:1179
9520 msgid ""
9521 "If tracee was attached using B<PTRACE_SEIZE>, group-stop is indicated by "
9522 "B<PTRACE_EVENT_STOP>: I<statusE<gt>E<gt>16 == PTRACE_EVENT_STOP>.  This "
9523 "allows detection of group-stops without requiring an extra "
9524 "B<PTRACE_GETSIGINFO> call."
9525 msgstr ""
9526
9527 #. type: Plain text
9528 #: build/C/man2/ptrace.2:1188
9529 msgid ""
9530 "As of Linux 2.6.38, after the tracer sees the tracee ptrace-stop and until "
9531 "it restarts or kills it, the tracee will not run, and will not send "
9532 "notifications (except B<SIGKILL> death) to the tracer, even if the tracer "
9533 "enters into another B<waitpid>(2)  call."
9534 msgstr ""
9535
9536 #. type: Plain text
9537 #: build/C/man2/ptrace.2:1202
9538 msgid ""
9539 "The kernel behavior described in the previous paragraph causes a problem "
9540 "with transparent handling of stopping signals.  If the tracer restarts the "
9541 "tracee after group-stop, the stopping signal is effectively ignored\\(emthe "
9542 "tracee doesn't remain stopped, it runs.  If the tracer doesn't restart the "
9543 "tracee before entering into the next B<waitpid>(2), future B<SIGCONT> "
9544 "signals will not be reported to the tracer; this would cause the B<SIGCONT> "
9545 "signals to have no effect on the tracee."
9546 msgstr ""
9547
9548 #. type: Plain text
9549 #: build/C/man2/ptrace.2:1213
9550 msgid ""
9551 "Since Linux 3.4, there is a method to overcome this problem: instead of "
9552 "B<PTRACE_CONT>, a B<PTRACE_LISTEN> command can be used to restart a tracee "
9553 "in a way where it does not execute, but waits for a new event which it can "
9554 "report via B<waitpid>(2)  (such as when it is restarted by a B<SIGCONT>)."
9555 msgstr ""
9556
9557 #. type: SS
9558 #: build/C/man2/ptrace.2:1213
9559 #, no-wrap
9560 msgid "PTRACE_EVENT stops"
9561 msgstr ""
9562
9563 #. type: Plain text
9564 #: build/C/man2/ptrace.2:1219
9565 msgid ""
9566 "If the tracer sets B<PTRACE_O_TRACE_*> options, the tracee will enter ptrace-"
9567 "stops called B<PTRACE_EVENT> stops."
9568 msgstr ""
9569
9570 #. type: Plain text
9571 #: build/C/man2/ptrace.2:1233
9572 msgid ""
9573 "B<PTRACE_EVENT> stops are observed by the tracer as B<waitpid>(2)  returning "
9574 "with I<WIFSTOPPED(status)>, and I<WSTOPSIG(status)> returns B<SIGTRAP>.  An "
9575 "additional bit is set in the higher byte of the status word: the value "
9576 "I<statusE<gt>E<gt>8> will be"
9577 msgstr ""
9578
9579 #. type: Plain text
9580 #: build/C/man2/ptrace.2:1235
9581 #, no-wrap
9582 msgid "    (SIGTRAP | PTRACE_EVENT_foo E<lt>E<lt> 8).\n"
9583 msgstr ""
9584
9585 #. type: Plain text
9586 #: build/C/man2/ptrace.2:1237
9587 msgid "The following events exist:"
9588 msgstr ""
9589
9590 #. type: TP
9591 #: build/C/man2/ptrace.2:1237
9592 #, no-wrap
9593 msgid "B<PTRACE_EVENT_VFORK>"
9594 msgstr "B<PTRACE_EVENT_VFORK>"
9595
9596 #. type: Plain text
9597 #: build/C/man2/ptrace.2:1250
9598 msgid ""
9599 "Stop before return from B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> "
9600 "flag.  When the tracee is continued after this stop, it will wait for child "
9601 "to exit/exec before continuing its execution (in other words, the usual "
9602 "behavior on B<vfork>(2))."
9603 msgstr ""
9604
9605 #. type: TP
9606 #: build/C/man2/ptrace.2:1250
9607 #, no-wrap
9608 msgid "B<PTRACE_EVENT_FORK>"
9609 msgstr "B<PTRACE_EVENT_FORK>"
9610
9611 #. type: Plain text
9612 #: build/C/man2/ptrace.2:1258
9613 msgid ""
9614 "Stop before return from B<fork>(2)  or B<clone>(2)  with the exit signal set "
9615 "to B<SIGCHLD>."
9616 msgstr ""
9617
9618 #. type: TP
9619 #: build/C/man2/ptrace.2:1258
9620 #, no-wrap
9621 msgid "B<PTRACE_EVENT_CLONE>"
9622 msgstr "B<PTRACE_EVENT_CLONE>"
9623
9624 #. type: Plain text
9625 #: build/C/man2/ptrace.2:1262
9626 msgid "Stop before return from B<clone>(2)."
9627 msgstr ""
9628
9629 #. type: TP
9630 #: build/C/man2/ptrace.2:1262
9631 #, no-wrap
9632 msgid "B<PTRACE_EVENT_VFORK_DONE>"
9633 msgstr "B<PTRACE_EVENT_VFORK_DONE>"
9634
9635 #. type: Plain text
9636 #: build/C/man2/ptrace.2:1272
9637 msgid ""
9638 "Stop before return from B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> "
9639 "flag, but after the child unblocked this tracee by exiting or execing."
9640 msgstr ""
9641
9642 #. type: Plain text
9643 #: build/C/man2/ptrace.2:1278
9644 msgid ""
9645 "For all four stops described above, the stop occurs in the parent (i.e., the "
9646 "tracee), not in the newly created thread.  B<PTRACE_GETEVENTMSG> can be used "
9647 "to retrieve the new thread's ID."
9648 msgstr ""
9649
9650 #. type: TP
9651 #: build/C/man2/ptrace.2:1278
9652 #, no-wrap
9653 msgid "B<PTRACE_EVENT_EXEC>"
9654 msgstr "B<PTRACE_EVENT_EXEC>"
9655
9656 #. type: Plain text
9657 #: build/C/man2/ptrace.2:1285
9658 msgid ""
9659 "Stop before return from B<execve>(2).  Since Linux 3.0, "
9660 "B<PTRACE_GETEVENTMSG> returns the former thread ID."
9661 msgstr ""
9662
9663 #. type: TP
9664 #: build/C/man2/ptrace.2:1285
9665 #, no-wrap
9666 msgid "B<PTRACE_EVENT_EXIT>"
9667 msgstr "B<PTRACE_EVENT_EXIT>"
9668
9669 #. type: Plain text
9670 #: build/C/man2/ptrace.2:1301
9671 msgid ""
9672 "Stop before exit (including death from B<exit_group>(2)), signal death, or "
9673 "exit caused by B<execve>(2)  in a multithreaded process.  "
9674 "B<PTRACE_GETEVENTMSG> returns the exit status.  Registers can be examined "
9675 "(unlike when \"real\" exit happens).  The tracee is still alive; it needs to "
9676 "be B<PTRACE_CONT>ed or B<PTRACE_DETACH>ed to finish exiting."
9677 msgstr ""
9678
9679 #. type: TP
9680 #: build/C/man2/ptrace.2:1301
9681 #, no-wrap
9682 msgid "B<PTRACE_EVENT_STOP>"
9683 msgstr "B<PTRACE_EVENT_STOP>"
9684
9685 #. type: Plain text
9686 #: build/C/man2/ptrace.2:1313
9687 msgid ""
9688 "Stop induced by B<PTRACE_INTERRUPT> command, or group-stop, or initial "
9689 "ptrace-stop when a new child is attached (only if attached using "
9690 "B<PTRACE_SEIZE>), or B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used."
9691 msgstr ""
9692
9693 #. type: Plain text
9694 #: build/C/man2/ptrace.2:1325
9695 msgid ""
9696 "B<PTRACE_GETSIGINFO> on B<PTRACE_EVENT> stops returns B<SIGTRAP> in "
9697 "I<si_signo>, with I<si_code> set to I<(eventE<lt>E<lt>8)\\ |\\ SIGTRAP>."
9698 msgstr ""
9699
9700 #. type: SS
9701 #: build/C/man2/ptrace.2:1325
9702 #, no-wrap
9703 msgid "Syscall-stops"
9704 msgstr ""
9705
9706 #. type: Plain text
9707 #: build/C/man2/ptrace.2:1338
9708 msgid ""
9709 "If the tracee was restarted by B<PTRACE_SYSCALL>, the tracee enters syscall-"
9710 "enter-stop just prior to entering any system call.  If the tracer restarts "
9711 "the tracee with B<PTRACE_SYSCALL>, the tracee enters syscall-exit-stop when "
9712 "the system call is finished, or if it is interrupted by a signal.  (That is, "
9713 "signal-delivery-stop never happens between syscall-enter-stop and syscall-"
9714 "exit-stop; it happens I<after> syscall-exit-stop.)"
9715 msgstr ""
9716
9717 #. type: Plain text
9718 #: build/C/man2/ptrace.2:1352
9719 msgid ""
9720 "Other possibilities are that the tracee may stop in a B<PTRACE_EVENT> stop, "
9721 "exit (if it entered B<_exit>(2)  or B<exit_group>(2)), be killed by "
9722 "B<SIGKILL>, or die silently (if it is a thread group leader, the B<execve>"
9723 "(2)  happened in another thread, and that thread is not traced by the same "
9724 "tracer; this situation is discussed later)."
9725 msgstr ""
9726
9727 #. type: Plain text
9728 #: build/C/man2/ptrace.2:1367
9729 msgid ""
9730 "Syscall-enter-stop and syscall-exit-stop are observed by the tracer as "
9731 "B<waitpid>(2)  returning with I<WIFSTOPPED(status)> true, and I<WSTOPSIG"
9732 "(status)> giving B<SIGTRAP>.  If the B<PTRACE_O_TRACESYSGOOD> option was set "
9733 "by the tracer, then I<WSTOPSIG(status)> will give the value I<(SIGTRAP\\ |\\ "
9734 "0x80)>."
9735 msgstr ""
9736
9737 #. type: Plain text
9738 #: build/C/man2/ptrace.2:1373
9739 msgid ""
9740 "Syscall-stops can be distinguished from signal-delivery-stop with B<SIGTRAP> "
9741 "by querying B<PTRACE_GETSIGINFO> for the following cases:"
9742 msgstr ""
9743
9744 #. type: TP
9745 #: build/C/man2/ptrace.2:1373
9746 #, no-wrap
9747 msgid "I<si_code> E<lt>= 0"
9748 msgstr ""
9749
9750 #. type: Plain text
9751 #: build/C/man2/ptrace.2:1385
9752 msgid ""
9753 "B<SIGTRAP> was delivered as a result of a user-space action, for example, a "
9754 "system call (B<tgkill>(2), B<kill>(2), B<sigqueue>(3), etc.), expiration of "
9755 "a POSIX timer, change of state on a POSIX message queue, or completion of an "
9756 "asynchronous I/O request."
9757 msgstr ""
9758
9759 #. type: TP
9760 #: build/C/man2/ptrace.2:1385
9761 #, no-wrap
9762 msgid "I<si_code> == SI_KERNEL (0x80)"
9763 msgstr ""
9764
9765 #. type: Plain text
9766 #: build/C/man2/ptrace.2:1389
9767 msgid "B<SIGTRAP> was sent by the kernel."
9768 msgstr ""
9769
9770 #. type: TP
9771 #: build/C/man2/ptrace.2:1389
9772 #, no-wrap
9773 msgid "I<si_code> == SIGTRAP or I<si_code> == (SIGTRAP|0x80)"
9774 msgstr ""
9775
9776 #. type: Plain text
9777 #: build/C/man2/ptrace.2:1392
9778 msgid "This is a syscall-stop."
9779 msgstr ""
9780
9781 #. type: Plain text
9782 #: build/C/man2/ptrace.2:1397
9783 msgid ""
9784 "However, syscall-stops happen very often (twice per system call), and "
9785 "performing B<PTRACE_GETSIGINFO> for every syscall-stop may be somewhat "
9786 "expensive."
9787 msgstr ""
9788
9789 #. type: Plain text
9790 #: build/C/man2/ptrace.2:1420
9791 msgid ""
9792 "Some architectures allow the cases to be distinguished by examining "
9793 "registers.  For example, on x86, I<rax> == -B<ENOSYS> in syscall-enter-"
9794 "stop.  Since B<SIGTRAP> (like any other signal) always happens I<after> "
9795 "syscall-exit-stop, and at this point I<rax> almost never contains -"
9796 "B<ENOSYS>, the B<SIGTRAP> looks like \"syscall-stop which is not syscall-"
9797 "enter-stop\"; in other words, it looks like a \"stray syscall-exit-stop\" "
9798 "and can be detected this way.  But such detection is fragile and is best "
9799 "avoided."
9800 msgstr ""
9801
9802 #. type: Plain text
9803 #: build/C/man2/ptrace.2:1426
9804 msgid ""
9805 "Using the B<PTRACE_O_TRACESYSGOOD> option is the recommended method to "
9806 "distinguish syscall-stops from other kinds of ptrace-stops, since it is "
9807 "reliable and does not incur a performance penalty."
9808 msgstr ""
9809
9810 #. type: Plain text
9811 #: build/C/man2/ptrace.2:1437
9812 msgid ""
9813 "Syscall-enter-stop and syscall-exit-stop are indistinguishable from each "
9814 "other by the tracer.  The tracer needs to keep track of the sequence of "
9815 "ptrace-stops in order to not misinterpret syscall-enter-stop as syscall-exit-"
9816 "stop or vice versa.  The rule is that syscall-enter-stop is always followed "
9817 "by syscall-exit-stop, B<PTRACE_EVENT> stop or the tracee's death; no other "
9818 "kinds of ptrace-stop can occur in between."
9819 msgstr ""
9820
9821 #. type: Plain text
9822 #: build/C/man2/ptrace.2:1442
9823 msgid ""
9824 "If after syscall-enter-stop, the tracer uses a restarting command other than "
9825 "B<PTRACE_SYSCALL>, syscall-exit-stop is not generated."
9826 msgstr ""
9827
9828 #. type: Plain text
9829 #: build/C/man2/ptrace.2:1454
9830 msgid ""
9831 "B<PTRACE_GETSIGINFO> on syscall-stops returns B<SIGTRAP> in I<si_signo>, "
9832 "with I<si_code> set to B<SIGTRAP> or I<(SIGTRAP|0x80)>."
9833 msgstr ""
9834
9835 #. type: SS
9836 #: build/C/man2/ptrace.2:1454
9837 #, no-wrap
9838 msgid "PTRACE_SINGLESTEP, PTRACE_SYSEMU, PTRACE_SYSEMU_SINGLESTEP stops"
9839 msgstr ""
9840
9841 #
9842 #.  FIXME
9843 #.  document stops occurring with PTRACE_SINGLESTEP, PTRACE_SYSEMU,
9844 #.  PTRACE_SYSEMU_SINGLESTEP
9845 #. type: Plain text
9846 #: build/C/man2/ptrace.2:1460
9847 msgid "[Details of these kinds of stops are yet to be documented.]"
9848 msgstr ""
9849
9850 #. type: SS
9851 #: build/C/man2/ptrace.2:1460
9852 #, no-wrap
9853 msgid "Informational and restarting ptrace commands"
9854 msgstr ""
9855
9856 #. type: Plain text
9857 #: build/C/man2/ptrace.2:1470
9858 msgid ""
9859 "Most ptrace commands (all except B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, "
9860 "B<PTRACE_TRACEME>, B<PTRACE_INTERRUPT>, and B<PTRACE_KILL>)  require the "
9861 "tracee to be in a ptrace-stop, otherwise they fail with B<ESRCH>."
9862 msgstr ""
9863
9864 #. type: Plain text
9865 #: build/C/man2/ptrace.2:1475
9866 msgid ""
9867 "When the tracee is in ptrace-stop, the tracer can read and write data to the "
9868 "tracee using informational commands.  These commands leave the tracee in "
9869 "ptrace-stopped state:"
9870 msgstr ""
9871
9872 #. type: Plain text
9873 #: build/C/man2/ptrace.2:1487
9874 #, no-wrap
9875 msgid ""
9876 "    ptrace(PTRACE_PEEKTEXT/PEEKDATA/PEEKUSER, pid, addr, 0);\n"
9877 "    ptrace(PTRACE_POKETEXT/POKEDATA/POKEUSER, pid, addr, long_val);\n"
9878 "    ptrace(PTRACE_GETREGS/GETFPREGS, pid, 0, &struct);\n"
9879 "    ptrace(PTRACE_SETREGS/SETFPREGS, pid, 0, &struct);\n"
9880 "    ptrace(PTRACE_GETREGSET, pid, NT_foo, &iov);\n"
9881 "    ptrace(PTRACE_SETREGSET, pid, NT_foo, &iov);\n"
9882 "    ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo);\n"
9883 "    ptrace(PTRACE_SETSIGINFO, pid, 0, &siginfo);\n"
9884 "    ptrace(PTRACE_GETEVENTMSG, pid, 0, &long_var);\n"
9885 "    ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
9886 msgstr ""
9887
9888 #. type: Plain text
9889 #: build/C/man2/ptrace.2:1499
9890 msgid ""
9891 "Note that some errors are not reported.  For example, setting signal "
9892 "information (I<siginfo>)  may have no effect in some ptrace-stops, yet the "
9893 "call may succeed (return 0 and not set I<errno>); querying "
9894 "B<PTRACE_GETEVENTMSG> may succeed and return some random value if current "
9895 "ptrace-stop is not documented as returning a meaningful event message."
9896 msgstr ""
9897
9898 #. type: Plain text
9899 #: build/C/man2/ptrace.2:1501
9900 msgid "The call"
9901 msgstr ""
9902
9903 #. type: Plain text
9904 #: build/C/man2/ptrace.2:1503
9905 #, no-wrap
9906 msgid "    ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
9907 msgstr ""
9908
9909 #. type: Plain text
9910 #: build/C/man2/ptrace.2:1512
9911 msgid ""
9912 "affects one tracee.  The tracee's current flags are replaced.  Flags are "
9913 "inherited by new tracees created and \"auto-attached\" via active "
9914 "B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, or B<PTRACE_O_TRACECLONE> "
9915 "options."
9916 msgstr ""
9917
9918 #. type: Plain text
9919 #: build/C/man2/ptrace.2:1515
9920 msgid ""
9921 "Another group of commands makes the ptrace-stopped tracee run.  They have "
9922 "the form:"
9923 msgstr ""
9924
9925 #. type: Plain text
9926 #: build/C/man2/ptrace.2:1517
9927 #, no-wrap
9928 msgid "    ptrace(cmd, pid, 0, sig);\n"
9929 msgstr ""
9930
9931 #. type: Plain text
9932 #: build/C/man2/ptrace.2:1538
9933 msgid ""
9934 "where I<cmd> is B<PTRACE_CONT>, B<PTRACE_LISTEN>, B<PTRACE_DETACH>, "
9935 "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>, B<PTRACE_SYSEMU>, or "
9936 "B<PTRACE_SYSEMU_SINGLESTEP>.  If the tracee is in signal-delivery-stop, "
9937 "I<sig> is the signal to be injected (if it is nonzero).  Otherwise, I<sig> "
9938 "may be ignored.  (When restarting a tracee from a ptrace-stop other than "
9939 "signal-delivery-stop, recommended practice is to always pass 0 in I<sig>.)"
9940 msgstr ""
9941
9942 #. type: SS
9943 #: build/C/man2/ptrace.2:1538
9944 #, no-wrap
9945 msgid "Attaching and detaching"
9946 msgstr ""
9947
9948 #. type: Plain text
9949 #: build/C/man2/ptrace.2:1540
9950 msgid "A thread can be attached to the tracer using the call"
9951 msgstr ""
9952
9953 #. type: Plain text
9954 #: build/C/man2/ptrace.2:1542
9955 #, no-wrap
9956 msgid "    ptrace(PTRACE_ATTACH, pid, 0, 0);\n"
9957 msgstr ""
9958
9959 #. type: Plain text
9960 #: build/C/man2/ptrace.2:1544 build/C/man2/ptrace.2:2047
9961 msgid "or"
9962 msgstr ""
9963
9964 #. type: Plain text
9965 #: build/C/man2/ptrace.2:1546
9966 #, no-wrap
9967 msgid "    ptrace(PTRACE_SEIZE, pid, 0, PTRACE_O_flags);\n"
9968 msgstr ""
9969
9970 #
9971 #.  FIXME: Describe how to attach to a thread which is already
9972 #.         group-stopped.
9973 #. type: Plain text
9974 #: build/C/man2/ptrace.2:1571
9975 msgid ""
9976 "B<PTRACE_ATTACH> sends B<SIGSTOP> to this thread.  If the tracer wants this "
9977 "B<SIGSTOP> to have no effect, it needs to suppress it.  Note that if other "
9978 "signals are concurrently sent to this thread during attach, the tracer may "
9979 "see the tracee enter signal-delivery-stop with other signal(s) first! The "
9980 "usual practice is to reinject these signals until B<SIGSTOP> is seen, then "
9981 "suppress B<SIGSTOP> injection.  The design bug here is that a ptrace attach "
9982 "and a concurrently delivered B<SIGSTOP> may race and the concurrent "
9983 "B<SIGSTOP> may be lost."
9984 msgstr ""
9985
9986 #. type: Plain text
9987 #: build/C/man2/ptrace.2:1578
9988 msgid ""
9989 "Since attaching sends B<SIGSTOP> and the tracer usually suppresses it, this "
9990 "may cause a stray B<EINTR> return from the currently executing system call "
9991 "in the tracee, as described in the \"Signal injection and suppression\" "
9992 "section."
9993 msgstr ""
9994
9995 #. type: Plain text
9996 #: build/C/man2/ptrace.2:1590
9997 msgid ""
9998 "Since Linux 3.4, B<PTRACE_SEIZE> can be used instead of B<PTRACE_ATTACH>.  "
9999 "B<PTRACE_SEIZE> does not stop the attached process.  If you need to stop it "
10000 "after attach (or at any other time) without sending it any signals, use "
10001 "B<PTRACE_INTERRUPT> command."
10002 msgstr ""
10003
10004 #. type: Plain text
10005 #: build/C/man2/ptrace.2:1592
10006 msgid "The request"
10007 msgstr ""
10008
10009 #. type: Plain text
10010 #: build/C/man2/ptrace.2:1594
10011 #, no-wrap
10012 msgid "    ptrace(PTRACE_TRACEME, 0, 0, 0);\n"
10013 msgstr ""
10014
10015 #. type: Plain text
10016 #: build/C/man2/ptrace.2:1600
10017 msgid ""
10018 "turns the calling thread into a tracee.  The thread continues to run "
10019 "(doesn't enter ptrace-stop).  A common practice is to follow the "
10020 "B<PTRACE_TRACEME> with"
10021 msgstr ""
10022
10023 #. type: Plain text
10024 #: build/C/man2/ptrace.2:1602
10025 #, no-wrap
10026 msgid "    raise(SIGSTOP);\n"
10027 msgstr ""
10028
10029 #. type: Plain text
10030 #: build/C/man2/ptrace.2:1605
10031 msgid ""
10032 "and allow the parent (which is our tracer now) to observe our signal-"
10033 "delivery-stop."
10034 msgstr ""
10035
10036 #. type: Plain text
10037 #: build/C/man2/ptrace.2:1629
10038 msgid ""
10039 "If the B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, or "
10040 "B<PTRACE_O_TRACECLONE> options are in effect, then children created by, "
10041 "respectively, B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> flag, "
10042 "B<fork>(2)  or B<clone>(2)  with the exit signal set to B<SIGCHLD>, and "
10043 "other kinds of B<clone>(2), are automatically attached to the same tracer "
10044 "which traced their parent.  B<SIGSTOP> is delivered to the children, causing "
10045 "them to enter signal-delivery-stop after they exit the system call which "
10046 "created them."
10047 msgstr ""
10048
10049 #. type: Plain text
10050 #: build/C/man2/ptrace.2:1631
10051 msgid "Detaching of the tracee is performed by:"
10052 msgstr ""
10053
10054 #. type: Plain text
10055 #: build/C/man2/ptrace.2:1633
10056 #, no-wrap
10057 msgid "    ptrace(PTRACE_DETACH, pid, 0, sig);\n"
10058 msgstr ""
10059
10060 #. type: Plain text
10061 #: build/C/man2/ptrace.2:1641
10062 msgid ""
10063 "B<PTRACE_DETACH> is a restarting operation; therefore it requires the tracee "
10064 "to be in ptrace-stop.  If the tracee is in signal-delivery-stop, a signal "
10065 "can be injected.  Otherwise, the I<sig> parameter may be silently ignored."
10066 msgstr ""
10067
10068 #.  FIXME: Describe how to detach from a group-stopped tracee so that it
10069 #.         doesn't run, but continues to wait for SIGCONT.
10070 #. type: Plain text
10071 #: build/C/man2/ptrace.2:1665
10072 msgid ""
10073 "If the tracee is running when the tracer wants to detach it, the usual "
10074 "solution is to send B<SIGSTOP> (using B<tgkill>(2), to make sure it goes to "
10075 "the correct thread), wait for the tracee to stop in signal-delivery-stop for "
10076 "B<SIGSTOP> and then detach it (suppressing B<SIGSTOP> injection).  A design "
10077 "bug is that this can race with concurrent B<SIGSTOP>s.  Another complication "
10078 "is that the tracee may enter other ptrace-stops and needs to be restarted "
10079 "and waited for again, until B<SIGSTOP> is seen.  Yet another complication is "
10080 "to be sure that the tracee is not already ptrace-stopped, because no signal "
10081 "delivery happens while it is\\(emnot even B<SIGSTOP>."
10082 msgstr ""
10083
10084 #. type: Plain text
10085 #: build/C/man2/ptrace.2:1673
10086 msgid ""
10087 "If the tracer dies, all tracees are automatically detached and restarted, "
10088 "unless they were in group-stop.  Handling of restart from group-stop is "
10089 "currently buggy, but the \"as planned\" behavior is to leave tracee stopped "
10090 "and waiting for B<SIGCONT>.  If the tracee is restarted from signal-delivery-"
10091 "stop, the pending signal is injected."
10092 msgstr ""
10093
10094 #. type: SS
10095 #: build/C/man2/ptrace.2:1673
10096 #, no-wrap
10097 msgid "execve(2) under ptrace"
10098 msgstr ""
10099
10100 #
10101 #.  clone(2) CLONE_THREAD says:
10102 #.      If  any  of the threads in a thread group performs an execve(2),
10103 #.      then all threads other than the thread group leader are terminated,
10104 #.      and the new program is executed in the thread group leader.
10105 #.  In kernel 3.1 sources, see fs/exec.c::de_thread()
10106 #. type: Plain text
10107 #: build/C/man2/ptrace.2:1692
10108 msgid ""
10109 "When one thread in a multithreaded process calls B<execve>(2), the kernel "
10110 "destroys all other threads in the process, and resets the thread ID of the "
10111 "execing thread to the thread group ID (process ID).  (Or, to put things "
10112 "another way, when a multithreaded process does an B<execve>(2), at "
10113 "completion of the call, it appears as though the B<execve>(2)  occurred in "
10114 "the thread group leader, regardless of which thread did the B<execve>(2).)  "
10115 "This resetting of the thread ID looks very confusing to tracers:"
10116 msgstr ""
10117
10118 #. type: Plain text
10119 #: build/C/man2/ptrace.2:1702
10120 msgid ""
10121 "All other threads stop in B<PTRACE_EVENT_EXIT> stop, if the "
10122 "B<PTRACE_O_TRACEEXIT> option was turned on.  Then all other threads except "
10123 "the thread group leader report death as if they exited via B<_exit>(2)  with "
10124 "exit code 0."
10125 msgstr ""
10126
10127 #. type: Plain text
10128 #: build/C/man2/ptrace.2:1710
10129 msgid ""
10130 "The execing tracee changes its thread ID while it is in the B<execve>(2).  "
10131 "(Remember, under ptrace, the \"pid\" returned from B<waitpid>(2), or fed "
10132 "into ptrace calls, is the tracee's thread ID.)  That is, the tracee's thread "
10133 "ID is reset to be the same as its process ID, which is the same as the "
10134 "thread group leader's thread ID."
10135 msgstr ""
10136
10137 #. type: Plain text
10138 #: build/C/man2/ptrace.2:1716
10139 msgid ""
10140 "Then a B<PTRACE_EVENT_EXEC> stop happens, if the B<PTRACE_O_TRACEEXEC> "
10141 "option was turned on."
10142 msgstr ""
10143
10144 #. type: Plain text
10145 #: build/C/man2/ptrace.2:1737
10146 msgid ""
10147 "If the thread group leader has reported its B<PTRACE_EVENT_EXIT> stop by "
10148 "this time, it appears to the tracer that the dead thread leader \"reappears "
10149 "from nowhere\".  (Note: the thread group leader does not report death via "
10150 "I<WIFEXITED(status)> until there is at least one other live thread.  This "
10151 "eliminates the possibility that the tracer will see it dying and then "
10152 "reappearing.)  If the thread group leader was still alive, for the tracer "
10153 "this may look as if thread group leader returns from a different system call "
10154 "than it entered, or even \"returned from a system call even though it was "
10155 "not in any system call\".  If the thread group leader was not traced (or was "
10156 "traced by a different tracer), then during B<execve>(2)  it will appear as "
10157 "if it has become a tracee of the tracer of the execing tracee."
10158 msgstr ""
10159
10160 #. type: Plain text
10161 #: build/C/man2/ptrace.2:1740
10162 msgid ""
10163 "All of the above effects are the artifacts of the thread ID change in the "
10164 "tracee."
10165 msgstr ""
10166
10167 #. type: Plain text
10168 #: build/C/man2/ptrace.2:1760
10169 msgid ""
10170 "The B<PTRACE_O_TRACEEXEC> option is the recommended tool for dealing with "
10171 "this situation.  First, it enables B<PTRACE_EVENT_EXEC> stop, which occurs "
10172 "before B<execve>(2)  returns.  In this stop, the tracer can use "
10173 "B<PTRACE_GETEVENTMSG> to retrieve the tracee's former thread ID.  (This "
10174 "feature was introduced in Linux 3.0).  Second, the B<PTRACE_O_TRACEEXEC> "
10175 "option disables legacy B<SIGTRAP> generation on B<execve>(2)."
10176 msgstr ""
10177
10178 #. type: Plain text
10179 #: build/C/man2/ptrace.2:1766
10180 msgid ""
10181 "When the tracer receives B<PTRACE_EVENT_EXEC> stop notification, it is "
10182 "guaranteed that except this tracee and the thread group leader, no other "
10183 "threads from the process are alive."
10184 msgstr ""
10185
10186 #. type: Plain text
10187 #: build/C/man2/ptrace.2:1774
10188 msgid ""
10189 "On receiving the B<PTRACE_EVENT_EXEC> stop notification, the tracer should "
10190 "clean up all its internal data structures describing the threads of this "
10191 "process, and retain only one data structure\\(emone which describes the "
10192 "single still running tracee, with"
10193 msgstr ""
10194
10195 #. type: Plain text
10196 #: build/C/man2/ptrace.2:1776
10197 #, no-wrap
10198 msgid "    thread ID == thread group ID == process ID.\n"
10199 msgstr ""
10200
10201 #. type: Plain text
10202 #: build/C/man2/ptrace.2:1780
10203 msgid "Example: two threads call B<execve>(2)  at the same time:"
10204 msgstr ""
10205
10206 #. type: Plain text
10207 #: build/C/man2/ptrace.2:1791
10208 #, no-wrap
10209 msgid ""
10210 "*** we get syscall-enter-stop in thread 1: **\n"
10211 "PID1 execve(\"/bin/foo\", \"foo\" E<lt>unfinished ...E<gt>\n"
10212 "*** we issue PTRACE_SYSCALL for thread 1 **\n"
10213 "*** we get syscall-enter-stop in thread 2: **\n"
10214 "PID2 execve(\"/bin/bar\", \"bar\" E<lt>unfinished ...E<gt>\n"
10215 "*** we issue PTRACE_SYSCALL for thread 2 **\n"
10216 "*** we get PTRACE_EVENT_EXEC for PID0, we issue PTRACE_SYSCALL **\n"
10217 "*** we get syscall-exit-stop for PID0: **\n"
10218 "PID0 E<lt>... execve resumedE<gt> )             = 0\n"
10219 msgstr ""
10220
10221 #. type: Plain text
10222 #: build/C/man2/ptrace.2:1814
10223 msgid ""
10224 "If the B<PTRACE_O_TRACEEXEC> option is I<not> in effect for the execing "
10225 "tracee, the kernel delivers an extra B<SIGTRAP> to the tracee after B<execve>"
10226 "(2)  returns.  This is an ordinary signal (similar to one which can be "
10227 "generated by I<kill -TRAP>), not a special kind of ptrace-stop.  Employing "
10228 "B<PTRACE_GETSIGINFO> for this signal returns I<si_code> set to 0 "
10229 "(I<SI_USER>).  This signal may be blocked by signal mask, and thus may be "
10230 "delivered (much) later."
10231 msgstr ""
10232
10233 #. type: Plain text
10234 #: build/C/man2/ptrace.2:1833
10235 msgid ""
10236 "Usually, the tracer (for example, B<strace>(1))  would not want to show this "
10237 "extra post-execve B<SIGTRAP> signal to the user, and would suppress its "
10238 "delivery to the tracee (if B<SIGTRAP> is set to B<SIG_DFL>, it is a killing "
10239 "signal).  However, determining I<which> B<SIGTRAP> to suppress is not easy.  "
10240 "Setting the B<PTRACE_O_TRACEEXEC> option and thus suppressing this extra "
10241 "B<SIGTRAP> is the recommended approach."
10242 msgstr ""
10243
10244 #. type: SS
10245 #: build/C/man2/ptrace.2:1833
10246 #, no-wrap
10247 msgid "Real parent"
10248 msgstr ""
10249
10250 #. type: Plain text
10251 #: build/C/man2/ptrace.2:1840
10252 msgid ""
10253 "The ptrace API (ab)uses the standard UNIX parent/child signaling over "
10254 "B<waitpid>(2).  This used to cause the real parent of the process to stop "
10255 "receiving several kinds of B<waitpid>(2)  notifications when the child "
10256 "process is traced by some other process."
10257 msgstr ""
10258
10259 #. type: Plain text
10260 #: build/C/man2/ptrace.2:1843
10261 msgid ""
10262 "Many of these bugs have been fixed, but as of Linux 2.6.38 several still "
10263 "exist; see BUGS below."
10264 msgstr ""
10265
10266 #. type: Plain text
10267 #: build/C/man2/ptrace.2:1845
10268 msgid "As of Linux 2.6.38, the following is believed to work correctly:"
10269 msgstr ""
10270
10271 #. type: Plain text
10272 #: build/C/man2/ptrace.2:1853
10273 msgid ""
10274 "exit/death by signal is reported first to the tracer, then, when the tracer "
10275 "consumes the B<waitpid>(2)  result, to the real parent (to the real parent "
10276 "only when the whole multithreaded process exits).  If the tracer and the "
10277 "real parent are the same process, the report is sent only once."
10278 msgstr ""
10279
10280 #. type: Plain text
10281 #: build/C/man2/ptrace.2:1858
10282 msgid ""
10283 "On success, the B<PTRACE_PEEK*> requests return the requested data (but see "
10284 "NOTES), while other requests return zero."
10285 msgstr ""
10286
10287 #. type: Plain text
10288 #: build/C/man2/ptrace.2:1868
10289 #, fuzzy
10290 #| msgid ""
10291 #| "On success, B<PTRACE_PEEK*> requests return the requested data, while "
10292 #| "other requests return zero.  On error, all requests return -1, and "
10293 #| "I<errno> is set appropriately.  Since the value returned by a successful "
10294 #| "B<PTRACE_PEEK*> request may be -1, the caller must check I<errno> after "
10295 #| "such requests to determine whether or not an error occurred."
10296 msgid ""
10297 "On error, all requests return -1, and I<errno> is set appropriately.  Since "
10298 "the value returned by a successful B<PTRACE_PEEK*> request may be -1, the "
10299 "caller must clear I<errno> before the call, and then check it afterward to "
10300 "determine whether or not an error occurred."
10301 msgstr ""
10302 "成功すると、 B<PTRACE_PEEK*> の場合は要求したデータを返し、 それ以外の場合は "
10303 "0 を返す。 エラーの場合は -1 を返し、 I<errno> が適切に設定される。 "
10304 "B<PTRACE_PEEK*> が成功して返す値も -1 になることがあるため、 そのような要求"
10305 "の場合には、呼び出し元は I<errno> を調べ、エラーか発生したのかどうかを判断し"
10306 "なければならない。"
10307
10308 #. type: Plain text
10309 #: build/C/man2/ptrace.2:1872
10310 msgid ""
10311 "(i386 only) There was an error with allocating or freeing a debug register."
10312 msgstr "(i386 のみ) デバッグレジスタの確保または解放でエラーが発生した。"
10313
10314 #. type: Plain text
10315 #: build/C/man2/ptrace.2:1883
10316 #, fuzzy
10317 #| msgid ""
10318 #| "There was an attempt to read from or write to an invalid area in the "
10319 #| "parent's or child's memory, probably because the area wasn't mapped or "
10320 #| "accessible.  Unfortunately, under Linux, different variations of this "
10321 #| "fault will return B<EIO> or B<EFAULT> more or less arbitrarily."
10322 msgid ""
10323 "There was an attempt to read from or write to an invalid area in the "
10324 "tracer's or the tracee's memory, probably because the area wasn't mapped or "
10325 "accessible.  Unfortunately, under Linux, different variations of this fault "
10326 "will return B<EIO> or B<EFAULT> more or less arbitrarily."
10327 msgstr ""
10328 "親プロセスまたは子プロセスのメモリの不正な領域に読み書きしようとした。 おそら"
10329 "くその領域がマッピングされていないか、 その領域へのアクセスが許されていないか"
10330 "である。 不運なことに、Linux ではこのようなエラーの場合、多かれ少なかれ 恣意"
10331 "的に B<EIO> を返したり B<EFAULT> を返したりすることがある。"
10332
10333 #. type: Plain text
10334 #: build/C/man2/ptrace.2:1886
10335 msgid "An attempt was made to set an invalid option."
10336 msgstr "不正なオプションを設定しようとした。"
10337
10338 #. type: Plain text
10339 #: build/C/man2/ptrace.2:1893
10340 #, fuzzy
10341 #| msgid ""
10342 #| "I<request> is invalid, or an attempt was made to read from or write to an "
10343 #| "invalid area in the parent's or child's memory, or there was a word-"
10344 #| "alignment violation, or an invalid signal was specified during a restart "
10345 #| "request."
10346 msgid ""
10347 "I<request> is invalid, or an attempt was made to read from or write to an "
10348 "invalid area in the tracer's or the tracee's memory, or there was a word-"
10349 "alignment violation, or an invalid signal was specified during a restart "
10350 "request."
10351 msgstr ""
10352 "I<request> が不正である。 または、親プロセスまたは子プロセスのメモリの 不正な"
10353 "領域に読み書きしようとした。 または、ワード境界違反があった。 または、実行再"
10354 "開の要求で不正なシグナルを指定した。"
10355
10356 #. type: Plain text
10357 #: build/C/man2/ptrace.2:1906
10358 #, fuzzy
10359 #| msgid ""
10360 #| "The specified process cannot be traced.  This could be because the parent "
10361 #| "has insufficient privileges (the required capability is "
10362 #| "B<CAP_SYS_PTRACE>); unprivileged processes cannot trace processes that "
10363 #| "they cannot send signals to or those running set-user-ID/set-group-ID "
10364 #| "programs, for obvious reasons.  Alternatively, the process may already be "
10365 #| "being traced, or be B<init>(8)  (PID 1)."
10366 msgid ""
10367 "The specified process cannot be traced.  This could be because the tracer "
10368 "has insufficient privileges (the required capability is B<CAP_SYS_PTRACE>); "
10369 "unprivileged processes cannot trace processes that they cannot send signals "
10370 "to or those running set-user-ID/set-group-ID programs, for obvious reasons.  "
10371 "Alternatively, the process may already be being traced, or (on kernels "
10372 "before 2.6.26) be B<init>(8)  (PID 1)."
10373 msgstr ""
10374 "指定したプロセスをトレースすることができない。これは親プロセスが 必要な権限 "
10375 "(必要なケーパビリティは B<CAP_SYS_PTRACE>)  を持っていないことが原因の場合が"
10376 "ある。 分かりやすい理由を挙げるなら、 非特権プロセスはシグナルを送ることがで"
10377 "きないプロセスをトレースできないし、 set-user-ID/set-group-ID プログラムを実"
10378 "行しているプロセスはトレースできない。 または、プロセスはすでにトレース中であ"
10379 "る、 または B<init>(8)  プロセス (PID が 1) である。"
10380
10381 #. type: Plain text
10382 #: build/C/man2/ptrace.2:1911
10383 #, fuzzy
10384 #| msgid ""
10385 #| "The specified process does not exist, or is not currently being traced by "
10386 #| "the caller, or is not stopped (for requests that require that)."
10387 msgid ""
10388 "The specified process does not exist, or is not currently being traced by "
10389 "the caller, or is not stopped (for requests that require a stopped tracee)."
10390 msgstr ""
10391 "指定したプロセスが存在しない。 または、指定したプロセスは呼び出したプロセス"
10392 "が 現在トレース中の子プロセスではない。 または、指定したプロセスが停止してい"
10393 "ない (停止していることが必要な要求の場合)。"
10394
10395 #. type: Plain text
10396 #: build/C/man2/ptrace.2:1913
10397 msgid "SVr4, 4.3BSD."
10398 msgstr "SVr4, 4.3BSD."
10399
10400 #. type: Plain text
10401 #: build/C/man2/ptrace.2:1928
10402 #, fuzzy
10403 #| msgid ""
10404 #| "Although arguments to B<ptrace>()  are interpreted according to the "
10405 #| "prototype given, glibc currently declares B<ptrace>()  as a variadic "
10406 #| "function with only the I<request> argument fixed.  This means that "
10407 #| "unneeded trailing arguments may be omitted, though doing so makes use of "
10408 #| "undocumented B<gcc>(1)  behavior."
10409 msgid ""
10410 "Although arguments to B<ptrace>()  are interpreted according to the "
10411 "prototype given, glibc currently declares B<ptrace>()  as a variadic "
10412 "function with only the I<request> argument fixed.  It is recommended to "
10413 "always supply four arguments, even if the requested operation does not use "
10414 "them, setting unused/ignored arguments to I<0L> or I<(void\\ *)\\ 0>."
10415 msgstr ""
10416 "B<ptrace>()  の引き数は上のようなプロトタイプに基づいて解釈されるが、 glibc "
10417 "では、現在のところ B<ptrace>()  は I<request> 引き数だけが固定の可変長引き数"
10418 "関数として 宣言されている。 これは必要なければ残りの引き数は省略可能であるこ"
10419 "とを意味するが、 それは B<gcc>(1)  の明文化されていない動作を利用していること"
10420 "になる。"
10421
10422 #. type: Plain text
10423 #: build/C/man2/ptrace.2:1940
10424 msgid ""
10425 "At the system call level, the B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>, and "
10426 "B<PTRACE_PEEKUSER> requests have a different API: they store the result at "
10427 "the address specified by the I<data> parameter, and the return value is the "
10428 "error flag.  The glibc wrapper function provides the API given in "
10429 "DESCRIPTION above, with the result being returned via the function return "
10430 "value."
10431 msgstr ""
10432
10433 #.  See commit 00cd5c37afd5f431ac186dd131705048c0a11fdb
10434 #. type: Plain text
10435 #: build/C/man2/ptrace.2:1945
10436 #, fuzzy
10437 #| msgid "B<init>(8), the process with PID 1, may not be traced."
10438 msgid ""
10439 "In Linux kernels before 2.6.26, B<init>(8), the process with PID 1, may not "
10440 "be traced."
10441 msgstr "B<init>(8)  すなわち PID が 1 のプロセスはトレースすることができない。"
10442
10443 #.  See http://lkml.org/lkml/2008/5/8/375
10444 #. type: Plain text
10445 #: build/C/man2/ptrace.2:1952
10446 #, fuzzy
10447 #| msgid ""
10448 #| "The layout of the contents of memory and the USER area are quite OS- and "
10449 #| "architecture-specific.  The offset supplied, and the data returned, might "
10450 #| "not entirely match with the definition of I<struct user>."
10451 msgid ""
10452 "The layout of the contents of memory and the USER area are quite operating-"
10453 "system- and architecture-specific.  The offset supplied, and the data "
10454 "returned, might not entirely match with the definition of I<struct user>."
10455 msgstr ""
10456 "メモリや USER 領域の内容や配置は OS ごと、アーキテクチャごとに 非常に依存す"
10457 "る。 オフセットが指定された場合、返されるデータは I<struct user> の定義と完全"
10458 "に一致しないこともありえる。"
10459
10460 #. type: Plain text
10461 #: build/C/man2/ptrace.2:1955
10462 #, fuzzy
10463 #| msgid ""
10464 #| "The size of a \"word\" is determined by the OS variant (e.g., for 32-bit "
10465 #| "Linux it is 32 bits, etc.)."
10466 msgid ""
10467 "The size of a \"word\" is determined by the operating-system variant (e.g., "
10468 "for 32-bit Linux it is 32 bits)."
10469 msgstr ""
10470 "「ワード (word) 」の大きさは OS によって決まる。 (例えば、32 ビットの Linux "
10471 "では 32 ビットである、など。)"
10472
10473 #. type: Plain text
10474 #: build/C/man2/ptrace.2:1963
10475 #, fuzzy
10476 #| msgid ""
10477 #| "This page documents the way the B<ptrace>()  call works currently in "
10478 #| "Linux.  Its behavior differs noticeably on other flavors of UNIX.  In any "
10479 #| "case, use of B<ptrace>()  is highly OS- and architecture-specific."
10480 msgid ""
10481 "This page documents the way the B<ptrace>()  call works currently in Linux.  "
10482 "Its behavior differs noticeably on other flavors of UNIX.  In any case, use "
10483 "of B<ptrace>()  is highly specific to the operating system and architecture."
10484 msgstr ""
10485 "このマニュアルは現在の Linux における B<ptrace>()  コールの動作について記述し"
10486 "ている。他の UNIX では その動作は著しく異なる。 いかなる場合も B<ptrace>()  "
10487 "を使うと OS やアーキテクチャに非常に依存したものになる。"
10488
10489 #. type: Plain text
10490 #: build/C/man2/ptrace.2:1974
10491 #, fuzzy
10492 #| msgid ""
10493 #| "On hosts with 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared with a "
10494 #| "different value than the one for 2.4.  This leads to applications "
10495 #| "compiled with such headers failing when run on 2.4 kernels.  This can be "
10496 #| "worked around by redefining B<PTRACE_SETOPTIONS> to "
10497 #| "B<PTRACE_OLDSETOPTIONS>, if that is defined."
10498 msgid ""
10499 "On hosts with 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared with a "
10500 "different value than the one for 2.4.  This leads to applications compiled "
10501 "with 2.6 kernel headers failing when run on 2.4 kernels.  This can be worked "
10502 "around by redefining B<PTRACE_SETOPTIONS> to B<PTRACE_OLDSETOPTIONS>, if "
10503 "that is defined."
10504 msgstr ""
10505 "カーネル 2.6 のヘッダがインストールされたホストでは、 B<PTRACE_SETOPTIONS> は"
10506 "カーネル 2.4 のヘッダとは異なる値で宣言される。 このため、カーネル 2.6 のヘッ"
10507 "ダでコンパイルされたアプリケーションは カーネル 2.4 では正しく動作しない。 こ"
10508 "の問題は、 B<PTRACE_SETOPTIONS> が定義されていた際は、 B<PTRACE_SETOPTIONS> "
10509 "を B<PTRACE_OLDSETOPTIONS> に定義し直すことで対処できる。"
10510
10511 #. type: Plain text
10512 #: build/C/man2/ptrace.2:1977
10513 msgid ""
10514 "Group-stop notifications are sent to the tracer, but not to real parent.  "
10515 "Last confirmed on 2.6.38.6."
10516 msgstr ""
10517
10518 #.  Note from Denys Vlasenko:
10519 #.      Here "exits" means any kind of death - _exit, exit_group,
10520 #.      signal death. Signal death and exit_group cases are trivial,
10521 #.      though: since signal death and exit_group kill all other threads
10522 #.      too, "until all other threads exit" thing happens rather soon
10523 #.      in these cases. Therefore, only _exit presents observably
10524 #.      puzzling behavior to ptrace users: thread leader _exit's,
10525 #.      but WIFEXITED isn't reported! We are trying to explain here
10526 #.      why it is so.
10527 #.   FIXME: ^^^ need to test/verify this scenario
10528 #. type: Plain text
10529 #: build/C/man2/ptrace.2:2008
10530 msgid ""
10531 "If a thread group leader is traced and exits by calling B<_exit>(2), a "
10532 "B<PTRACE_EVENT_EXIT> stop will happen for it (if requested), but the "
10533 "subsequent B<WIFEXITED> notification will not be delivered until all other "
10534 "threads exit.  As explained above, if one of other threads calls B<execve>"
10535 "(2), the death of the thread group leader will I<never> be reported.  If the "
10536 "execed thread is not traced by this tracer, the tracer will never know that "
10537 "B<execve>(2)  happened.  One possible workaround is to B<PTRACE_DETACH> the "
10538 "thread group leader instead of restarting it in this case.  Last confirmed "
10539 "on 2.6.38.6."
10540 msgstr ""
10541
10542 #. type: Plain text
10543 #: build/C/man2/ptrace.2:2018
10544 msgid ""
10545 "A B<SIGKILL> signal may still cause a B<PTRACE_EVENT_EXIT> stop before "
10546 "actual signal death.  This may be changed in the future; B<SIGKILL> is meant "
10547 "to always immediately kill tasks even under ptrace.  Last confirmed on "
10548 "2.6.38.6."
10549 msgstr ""
10550
10551 #. type: Plain text
10552 #: build/C/man2/ptrace.2:2036
10553 msgid ""
10554 "Some system calls return with B<EINTR> if a signal was sent to a tracee, but "
10555 "delivery was suppressed by the tracer.  (This is very typical operation: it "
10556 "is usually done by debuggers on every attach, in order to not introduce a "
10557 "bogus B<SIGSTOP>).  As of Linux 3.2.9, the following system calls are "
10558 "affected (this list is likely incomplete): B<epoll_wait>(2), and B<read>(2)  "
10559 "from an B<inotify>(7)  file descriptor.  The usual symptom of this bug is "
10560 "that when you attach to a quiescent process with the command"
10561 msgstr ""
10562
10563 #. type: Plain text
10564 #: build/C/man2/ptrace.2:2038
10565 #, no-wrap
10566 msgid "    strace -p E<lt>process-IDE<gt>\n"
10567 msgstr ""
10568
10569 #. type: Plain text
10570 #: build/C/man2/ptrace.2:2041
10571 msgid "then, instead of the usual and expected one-line output such as"
10572 msgstr ""
10573
10574 #. type: Plain text
10575 #: build/C/man2/ptrace.2:2044
10576 #, no-wrap
10577 msgid "    restart_syscall(E<lt>... resuming interrupted call ...E<gt>_\n"
10578 msgstr ""
10579
10580 #. type: Plain text
10581 #: build/C/man2/ptrace.2:2050
10582 #, no-wrap
10583 msgid "    select(6, [5], NULL, [5], NULL_\n"
10584 msgstr ""
10585
10586 #. type: Plain text
10587 #: build/C/man2/ptrace.2:2054
10588 msgid ""
10589 "('_' denotes the cursor position), you observe more than one line.  For "
10590 "example:"
10591 msgstr ""
10592
10593 #. type: Plain text
10594 #: build/C/man2/ptrace.2:2058
10595 #, no-wrap
10596 msgid ""
10597 "    clock_gettime(CLOCK_MONOTONIC, {15370, 690928118}) = 0\n"
10598 "    epoll_wait(4,_\n"
10599 msgstr ""
10600
10601 #. type: Plain text
10602 #: build/C/man2/ptrace.2:2079
10603 msgid ""
10604 "What is not visible here is that the process was blocked in B<epoll_wait>"
10605 "(2)  before B<strace>(1)  has attached to it.  Attaching caused B<epoll_wait>"
10606 "(2)  to return to user space with the error B<EINTR>.  In this particular "
10607 "case, the program reacted to B<EINTR> by checking the current time, and then "
10608 "executing B<epoll_wait>(2)  again.  (Programs which do not expect such "
10609 "\"stray\" B<EINTR> errors may behave in an unintended way upon an B<strace>"
10610 "(1)  attach.)"
10611 msgstr ""
10612
10613 #. type: Plain text
10614 #: build/C/man2/ptrace.2:2093
10615 msgid ""
10616 "B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2), B<gettid>"
10617 "(2), B<sigaction>(2), B<tgkill>(2), B<vfork>(2), B<waitpid>(2), B<exec>(3), "
10618 "B<capabilities>(7), B<signal>(7)"
10619 msgstr ""
10620 "B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2),\n"
10621 "B<gettid>(2), B<sigaction>(2), B<tgkill>(2), B<vfork>(2),\n"
10622 "B<waitpid>(2), B<exec>(3), B<capabilities>(7), B<signal>(7)"
10623
10624 #. type: TH
10625 #: build/C/man2/quotactl.2:27
10626 #, no-wrap
10627 msgid "QUOTACTL"
10628 msgstr "QUOTACTL"
10629
10630 #. type: TH
10631 #: build/C/man2/quotactl.2:27
10632 #, no-wrap
10633 msgid "2010-06-16"
10634 msgstr "2010-06-16"
10635
10636 #. type: Plain text
10637 #: build/C/man2/quotactl.2:30
10638 msgid "quotactl - manipulate disk quotas"
10639 msgstr "quotactl - ディスク quota を操作する"
10640
10641 #. type: Plain text
10642 #: build/C/man2/quotactl.2:34
10643 #, no-wrap
10644 msgid ""
10645 "B<#include E<lt>sys/quota.hE<gt>>\n"
10646 "B<#include E<lt>xfs/xqm.hE<gt>>\n"
10647 msgstr ""
10648 "B<#include E<lt>sys/quota.hE<gt>>\n"
10649 "B<#include E<lt>xfs/xqm.hE<gt>>\n"
10650
10651 #. type: Plain text
10652 #: build/C/man2/quotactl.2:37
10653 #, no-wrap
10654 msgid "B<int quotactl(int >I<cmd>B<, const char *>I<special>B<, int >I<id>B<, caddr_t >I<addr>B<);>\n"
10655 msgstr "B<int quotactl(int >I<cmd>B<, const char *>I<special>B<, int >I<id>B<, caddr_t >I<addr>B<);>\n"
10656
10657 #. type: Plain text
10658 #: build/C/man2/quotactl.2:49
10659 #, fuzzy
10660 #| msgid ""
10661 #| "The quota system defines for each user and/or group a soft limit and a "
10662 #| "hard limit bounding the amount of disk space that can be used on a given "
10663 #| "file system.  The hard limit cannot be crossed.  The soft limit can be "
10664 #| "crossed, but warnings will ensue.  Moreover, the user cannot be above the "
10665 #| "soft limit for more than one week (by default)  at a time: after this "
10666 #| "week the soft limit counts as hard limit."
10667 msgid ""
10668 "The quota system can be used to set per-user and per-group limits on the "
10669 "amount of disk space used on a filesystem.  For each user and/or group, a "
10670 "soft limit and a hard limit can be set for each filesystem.  The hard limit "
10671 "can't be exceeded.  The soft limit can be exceeded, but warnings will "
10672 "ensue.  Moreover, the user can't exceed the soft limit for more than one "
10673 "week (by default) at a time; after this time, the soft limit counts as a "
10674 "hard limit."
10675 msgstr ""
10676 "quota システムは、各々のユーザ及び/またはグループに対して、 ソフト・リミット"
10677 "及びハード・リミットを定める。これはあるファイル・システムで 使用する事が出来"
10678 "るディスク容量を制限する。 ハード・リミットは超過することは出来ない。 ソフ"
10679 "ト・リミットは超過する事が出来るが、警告が発せられる。 更に、(デフォルトで"
10680 "は) 一週間以上ソフト・リミットを超過したままに しておく事はできない: 一週間経"
10681 "過した後はハード・リミットを超過したと みなされる。"
10682
10683 #. type: Plain text
10684 #: build/C/man2/quotactl.2:74
10685 #, fuzzy
10686 #| msgid ""
10687 #| "The B<quotactl>()  system call manipulates these quota.  Its first "
10688 #| "argument is of the form B<QCMD(>I<subcmd>B<,>I<type>B<)> where I<type> is "
10689 #| "either B<USRQUOTA> or B<GRPQUOTA> (for user quota and group quota, "
10690 #| "respectively), and I<subcmd> is described below."
10691 msgid ""
10692 "The B<quotactl>()  call manipulates disk quotas.  The I<cmd> argument "
10693 "indicates a command to be applied to the user or group ID specified in "
10694 "I<id>.  To initialize the I<cmd> argument, use the I<QCMD(subcmd, type)> "
10695 "macro.  The I<type> value is either B<USRQUOTA>, for user quotas, or "
10696 "B<GRPQUOTA>, for group quotas.  The I<subcmd> value is described below."
10697 msgstr ""
10698 "B<quotactl>()  システムコールはこれらの quota に対する操作を行なう。 最初の引"
10699 "き数は B<QCMD(>I<subcmd>B<,>I<type>B<)> という形式である。 I<type> には、ユー"
10700 "ザー quota については B<USRQUOTA> を、グループ quota については B<GRPQUOTA> "
10701 "を指定する。 I<subcmd> は以下で説明する。"
10702
10703 #. type: Plain text
10704 #: build/C/man2/quotactl.2:79
10705 msgid ""
10706 "The I<special> argument is a pointer to a null-terminated string containing "
10707 "the pathname of the (mounted) block special device for the filesystem being "
10708 "manipulated."
10709 msgstr ""
10710
10711 #. type: Plain text
10712 #: build/C/man2/quotactl.2:87
10713 msgid ""
10714 "The I<addr> argument is the address of an optional, command-specific, data "
10715 "structure that is copied in or out of the system.  The interpretation of "
10716 "I<addr> is given with each command below."
10717 msgstr ""
10718
10719 #. type: Plain text
10720 #: build/C/man2/quotactl.2:91
10721 msgid "The I<subcmd> value is one of the following:"
10722 msgstr "I<subcmd> の値は以下のいずれかである"
10723
10724 #. type: TP
10725 #: build/C/man2/quotactl.2:91
10726 #, no-wrap
10727 msgid "B<Q_QUOTAON>"
10728 msgstr "B<Q_QUOTAON>"
10729
10730 #. type: Plain text
10731 #: build/C/man2/quotactl.2:98
10732 msgid ""
10733 "Turn on quotas for a filesystem.  The I<id> argument is the identification "
10734 "number of the quota format to be used.  Currently, there are three supported "
10735 "quota formats:"
10736 msgstr ""
10737
10738 #. type: TP
10739 #: build/C/man2/quotactl.2:99
10740 #, no-wrap
10741 msgid "B<QFMT_VFS_OLD>"
10742 msgstr ""
10743
10744 #. type: Plain text
10745 #: build/C/man2/quotactl.2:102
10746 msgid "The original quota format."
10747 msgstr ""
10748
10749 #. type: TP
10750 #: build/C/man2/quotactl.2:102
10751 #, no-wrap
10752 msgid "B<QFMT_VFS_V0>"
10753 msgstr ""
10754
10755 #. type: Plain text
10756 #: build/C/man2/quotactl.2:106
10757 msgid ""
10758 "The standard VFS v0 quota format, which can handle 32-bit UIDs and GIDs and "
10759 "quota limits up to 2^42 bytes and 2^32 inodes."
10760 msgstr ""
10761
10762 #. type: TP
10763 #: build/C/man2/quotactl.2:106
10764 #, no-wrap
10765 msgid "B<QFMT_VFS_V1>"
10766 msgstr ""
10767
10768 #. type: Plain text
10769 #: build/C/man2/quotactl.2:110
10770 msgid ""
10771 "A quota format that can handle 32-bit UIDs and GIDs and quota limits of 2^64 "
10772 "bytes and 2^64 inodes."
10773 msgstr ""
10774
10775 #. type: Plain text
10776 #: build/C/man2/quotactl.2:121
10777 msgid ""
10778 "The I<addr> argument points to the pathname of a file containing the quotas "
10779 "for the filesystem.  The quota file must exist; it is normally created with "
10780 "the B<quotacheck>(8)  program.  This operation requires privilege "
10781 "(B<CAP_SYS_ADMIN>)."
10782 msgstr ""
10783
10784 #. type: TP
10785 #: build/C/man2/quotactl.2:121
10786 #, no-wrap
10787 msgid "B<Q_QUOTAOFF>"
10788 msgstr "B<Q_QUOTAOFF>"
10789
10790 #. type: Plain text
10791 #: build/C/man2/quotactl.2:131
10792 msgid ""
10793 "Turn off quotas for a filesystem.  The I<addr> and I<id> arguments are "
10794 "ignored.  This operation requires privilege (B<CAP_SYS_ADMIN>)."
10795 msgstr ""
10796
10797 #. type: TP
10798 #: build/C/man2/quotactl.2:131
10799 #, no-wrap
10800 msgid "B<Q_GETQUOTA>"
10801 msgstr "B<Q_GETQUOTA>"
10802
10803 #. type: Plain text
10804 #: build/C/man2/quotactl.2:142
10805 #, fuzzy
10806 #| msgid ""
10807 #| "Get limits and current usage of disk space.  The I<addr> argument is a "
10808 #| "pointer to a dqblk structure (defined in I<E<lt>sys/quota.hE<gt>>)."
10809 msgid ""
10810 "Get disk quota limits and current usage for user or group I<id>.  The "
10811 "I<addr> argument is a pointer to a I<dqblk> structure defined in I<E<lt>sys/"
10812 "quota.hE<gt>> as follows:"
10813 msgstr ""
10814 "ディスク使用量の制限値と現在の使用量を得る。 I<addr> 引き数は (I<E<lt>sys/"
10815 "quota.hE<gt>> で定義された) dqblk 構造体を指すポインタである。"
10816
10817 #. type: Plain text
10818 #: build/C/man2/quotactl.2:147 build/C/man2/quotactl.2:234
10819 #, no-wrap
10820 msgid ""
10821 "/* uint64_t is an unsigned 64-bit integer;\n"
10822 "   uint32_t is an unsigned 32-bit integer */\n"
10823 msgstr ""
10824
10825 #. type: Plain text
10826 #: build/C/man2/quotactl.2:167
10827 #, no-wrap
10828 msgid ""
10829 "struct dqblk {          /* Definition since Linux 2.4.22 */\n"
10830 "    uint64_t dqb_bhardlimit;   /* absolute limit on disk\n"
10831 "                                  quota blocks alloc */\n"
10832 "    uint64_t dqb_bsoftlimit;   /* preferred limit on\n"
10833 "                                  disk quota blocks */\n"
10834 "    uint64_t dqb_curspace;     /* current quota block\n"
10835 "                                  count */\n"
10836 "    uint64_t dqb_ihardlimit;   /* maximum number of\n"
10837 "                                  allocated inodes */\n"
10838 "    uint64_t dqb_isoftlimit;   /* preferred inode limit */\n"
10839 "    uint64_t dqb_curinodes;    /* current number of\n"
10840 "                                  allocated inodes */\n"
10841 "    uint64_t dqb_btime;        /* time limit for excessive\n"
10842 "                                  disk use */\n"
10843 "    uint64_t dqb_itime;        /* time limit for excessive\n"
10844 "                                  files */\n"
10845 "    uint32_t dqb_valid;        /* bit mask of QIF_*\n"
10846 "                                  constants */\n"
10847 "};\n"
10848 msgstr ""
10849
10850 #. type: Plain text
10851 #: build/C/man2/quotactl.2:170
10852 #, no-wrap
10853 msgid ""
10854 "/* Flags in dqb_valid that indicate which fields in\n"
10855 "   dqblk structure are valid. */\n"
10856 msgstr ""
10857
10858 #. type: Plain text
10859 #: build/C/man2/quotactl.2:181
10860 #, no-wrap
10861 msgid ""
10862 "#define QIF_BLIMITS   1\n"
10863 "#define QIF_SPACE     2\n"
10864 "#define QIF_ILIMITS   4\n"
10865 "#define QIF_INODES    8\n"
10866 "#define QIF_BTIME     16\n"
10867 "#define QIF_ITIME     32\n"
10868 "#define QIF_LIMITS    (QIF_BLIMITS | QIF_ILIMITS)\n"
10869 "#define QIF_USAGE     (QIF_SPACE | QIF_INODES)\n"
10870 "#define QIF_TIMES     (QIF_BTIME | QIF_ITIME)\n"
10871 "#define QIF_ALL       (QIF_LIMITS | QIF_USAGE | QIF_TIMES)\n"
10872 msgstr ""
10873
10874 #. type: Plain text
10875 #: build/C/man2/quotactl.2:198
10876 msgid ""
10877 "The I<dqb_valid> field is a bit mask that is set to indicate the entries in "
10878 "the I<dqblk> structure that are valid.  Currently, the kernel fills in all "
10879 "entries of the I<dqblk> structure and marks them as valid in the "
10880 "I<dqb_valid> field.  Unprivileged users may retrieve only their own quotas; "
10881 "a privileged user (B<CAP_SYS_ADMIN>)  can retrieve the quotas of any user."
10882 msgstr ""
10883
10884 #. type: TP
10885 #: build/C/man2/quotactl.2:198
10886 #, no-wrap
10887 msgid "B<Q_SETQUOTA>"
10888 msgstr "B<Q_SETQUOTA>"
10889
10890 #. type: Plain text
10891 #: build/C/man2/quotactl.2:218
10892 msgid ""
10893 "Set quota information for user or group I<id>, using the information "
10894 "supplied in the I<dqblk> structure pointed to by I<addr>.  The I<dqb_valid> "
10895 "field of the I<dqblk> structure indicates which entries in the structure "
10896 "have been set by the caller.  This operation supersedes the B<Q_SETQLIM> and "
10897 "B<Q_SETUSE> operations in the previous quota interfaces.  This operation "
10898 "requires privilege (B<CAP_SYS_ADMIN>)."
10899 msgstr ""
10900
10901 #. type: TP
10902 #: build/C/man2/quotactl.2:218
10903 #, no-wrap
10904 msgid "B<Q_GETINFO>"
10905 msgstr "B<Q_GETINFO>"
10906
10907 #. type: Plain text
10908 #: build/C/man2/quotactl.2:229
10909 #, fuzzy
10910 #| msgid ""
10911 #| "Get limits and current usage of disk space.  The I<addr> argument is a "
10912 #| "pointer to a dqblk structure (defined in I<E<lt>sys/quota.hE<gt>>)."
10913 msgid ""
10914 "Get information (like grace times) about quotafile.  The I<addr> argument "
10915 "should be a pointer to a I<dqinfo> structure.  This structure is defined in "
10916 "I<E<lt>sys/quota.hE<gt>> as follows:"
10917 msgstr ""
10918 "ディスク使用量の制限値と現在の使用量を得る。 I<addr> 引き数は (I<E<lt>sys/"
10919 "quota.hE<gt>> で定義された) dqblk 構造体を指すポインタである。"
10920
10921 #. type: Plain text
10922 #: build/C/man2/quotactl.2:238
10923 #, no-wrap
10924 msgid ""
10925 "struct dqinfo {         /* Defined since kernel 2.4.22 */\n"
10926 "    uint64_t dqi_bgrace;    /* Time before block soft limit\n"
10927 "                               becomes hard limit */\n"
10928 msgstr ""
10929
10930 #. type: Plain text
10931 #: build/C/man2/quotactl.2:245
10932 #, no-wrap
10933 msgid ""
10934 "    uint64_t dqi_igrace;    /* Time before inode soft limit\n"
10935 "                               becomes hard limit */\n"
10936 "    uint32_t dqi_flags;     /* Flags for quotafile\n"
10937 "                               (DQF_*) */\n"
10938 "    uint32_t dqi_valid;\n"
10939 "};\n"
10940 msgstr ""
10941
10942 #. type: Plain text
10943 #: build/C/man2/quotactl.2:247
10944 #, no-wrap
10945 msgid "/* Bits for dqi_flags */\n"
10946 msgstr ""
10947
10948 #. type: Plain text
10949 #: build/C/man2/quotactl.2:249
10950 #, no-wrap
10951 msgid "/* Quota format QFMT_VFS_OLD */\n"
10952 msgstr ""
10953
10954 #. type: Plain text
10955 #: build/C/man2/quotactl.2:251
10956 #, no-wrap
10957 msgid "#define V1_DQF_RSQUASH\t1   /* Root squash enabled */\n"
10958 msgstr ""
10959
10960 #. type: Plain text
10961 #: build/C/man2/quotactl.2:253
10962 #, no-wrap
10963 msgid "/* Other quota formats have no dqi_flags bits defined */\n"
10964 msgstr ""
10965
10966 #. type: Plain text
10967 #: build/C/man2/quotactl.2:256
10968 #, no-wrap
10969 msgid ""
10970 "/* Flags in dqi_valid that indicate which fields in\n"
10971 "   dqinfo structure are valid. */\n"
10972 msgstr ""
10973
10974 #. type: Plain text
10975 #: build/C/man2/quotactl.2:261
10976 #, no-wrap
10977 msgid ""
10978 "# define IIF_BGRACE\t1\n"
10979 "# define IIF_IGRACE\t2\n"
10980 "# define IIF_FLAGS\t4\n"
10981 "# define IIF_ALL        (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)\n"
10982 msgstr ""
10983
10984 #. type: Plain text
10985 #: build/C/man2/quotactl.2:277
10986 msgid ""
10987 "The I<dqi_valid> field in the I<dqinfo> structure indicates the entries in "
10988 "the structure that are valid.  Currently, the kernel fills in all entries of "
10989 "the I<dqinfo> structure and marks them all as valid in the I<dqi_valid> "
10990 "field.  The I<id> argument is ignored."
10991 msgstr ""
10992
10993 #. type: TP
10994 #: build/C/man2/quotactl.2:277
10995 #, no-wrap
10996 msgid "B<Q_SETINFO>"
10997 msgstr "B<Q_SETINFO>"
10998
10999 #. type: Plain text
11000 #: build/C/man2/quotactl.2:301
11001 msgid ""
11002 "Set information about quotafile.  The I<addr> argument should be a pointer "
11003 "to a I<dqinfo> structure.  The I<dqi_valid> field of the I<dqinfo> structure "
11004 "indicates the entries in the structure that have been set by the caller.  "
11005 "This operation supersedes the B<Q_SETGRACE> and B<Q_SETFLAGS> operations in "
11006 "the previous quota interfaces.  The I<id> argument is ignored.  This "
11007 "operation requires privilege (B<CAP_SYS_ADMIN>)."
11008 msgstr ""
11009
11010 #. type: TP
11011 #: build/C/man2/quotactl.2:301
11012 #, no-wrap
11013 msgid "B<Q_GETFMT>"
11014 msgstr "B<Q_GETFMT>"
11015
11016 #. type: Plain text
11017 #: build/C/man2/quotactl.2:308
11018 msgid ""
11019 "Get quota format used on the specified filesystem.  The I<addr> argument "
11020 "should be a pointer to a 4-byte buffer where the format number will be "
11021 "stored."
11022 msgstr ""
11023
11024 #. type: TP
11025 #: build/C/man2/quotactl.2:308
11026 #, no-wrap
11027 msgid "B<Q_SYNC>"
11028 msgstr "B<Q_SYNC>"
11029
11030 #. type: Plain text
11031 #: build/C/man2/quotactl.2:319
11032 msgid ""
11033 "Update the on-disk copy of quota usages for a filesystem.  If I<special> is "
11034 "NULL, then all filesystems with active quotas are sync'ed.  The I<addr> and "
11035 "I<id> arguments are ignored."
11036 msgstr ""
11037
11038 #. type: TP
11039 #: build/C/man2/quotactl.2:319
11040 #, no-wrap
11041 msgid "B<Q_GETSTATS>"
11042 msgstr "B<Q_GETSTATS>"
11043
11044 #.  Q_GETSTATS was removed in kernel 2.4.22.
11045 #. type: Plain text
11046 #: build/C/man2/quotactl.2:339
11047 msgid ""
11048 "Get statistics and other generic information about the quota subsystem.  The "
11049 "I<addr> argument should be a pointer to a I<dqstats> structure in which data "
11050 "should be stored.  This structure is defined in I<E<lt>sys/quota.hE<gt>>.  "
11051 "The I<special> and I<id> arguments are ignored.  This operation is obsolete "
11052 "and not supported by recent kernels.  Files in I</proc/sys/fs/quota/> carry "
11053 "the information instead."
11054 msgstr ""
11055
11056 #. type: Plain text
11057 #: build/C/man2/quotactl.2:342
11058 msgid ""
11059 "For XFS filesystems making use of the XFS Quota Manager (XQM), the above "
11060 "commands are bypassed and the following commands are used:"
11061 msgstr ""
11062
11063 #. type: TP
11064 #: build/C/man2/quotactl.2:342
11065 #, no-wrap
11066 msgid "B<Q_XQUOTAON>"
11067 msgstr "B<Q_XQUOTAON>"
11068
11069 #. type: Plain text
11070 #: build/C/man2/quotactl.2:363
11071 msgid ""
11072 "Turn on quotas for an XFS filesystem.  XFS provides the ability to turn on/"
11073 "off quota limit enforcement with quota accounting.  Therefore, XFS expects "
11074 "I<addr> to be a pointer to an I<unsigned int> that contains either the flags "
11075 "B<XFS_QUOTA_UDQ_ACCT> and/or B<XFS_QUOTA_UDQ_ENFD> (for user quota), or "
11076 "B<XFS_QUOTA_GDQ_ACCT> and/or B<XFS_QUOTA_GDQ_ENFD> (for group quota), as "
11077 "defined in I<E<lt>xfs/xqm.hE<gt>>.  This operation requires privilege "
11078 "(B<CAP_SYS_ADMIN>)."
11079 msgstr ""
11080
11081 #. type: TP
11082 #: build/C/man2/quotactl.2:363
11083 #, no-wrap
11084 msgid "B<Q_XQUOTAOFF>"
11085 msgstr "B<Q_XQUOTAOFF>"
11086
11087 #. type: Plain text
11088 #: build/C/man2/quotactl.2:374
11089 msgid ""
11090 "Turn off quotas for an XFS filesystem.  As with B<Q_QUOTAON>, XFS "
11091 "filesystems expect a pointer to an I<unsigned int> that specifies whether "
11092 "quota accounting and/or limit enforcement need to be turned off.  This "
11093 "operation requires privilege (B<CAP_SYS_ADMIN>)."
11094 msgstr ""
11095
11096 #. type: TP
11097 #: build/C/man2/quotactl.2:374
11098 #, no-wrap
11099 msgid "B<Q_XGETQUOTA>"
11100 msgstr "B<Q_XGETQUOTA>"
11101
11102 #. type: Plain text
11103 #: build/C/man2/quotactl.2:388
11104 msgid ""
11105 "Get disk quota limits and current usage for user I<id>.  The I<addr> "
11106 "argument is a pointer to an I<fs_disk_quota> structure (defined in "
11107 "I<E<lt>xfs/xqm.hE<gt>>).  Unprivileged users may retrieve only their own "
11108 "quotas; a privileged user (B<CAP_SYS_ADMIN>)  may retrieve the quotas of any "
11109 "user."
11110 msgstr ""
11111
11112 #. type: TP
11113 #: build/C/man2/quotactl.2:388
11114 #, no-wrap
11115 msgid "B<Q_XSETQLIM>"
11116 msgstr "B<Q_XSETQLIM>"
11117
11118 #. type: Plain text
11119 #: build/C/man2/quotactl.2:400
11120 msgid ""
11121 "Set disk quota limits for user I<id>.  The I<addr> argument is a pointer to "
11122 "an I<fs_disk_quota> structure (defined in I<E<lt>xfs/xqm.hE<gt>>).  This "
11123 "operation requires privilege (B<CAP_SYS_ADMIN>)."
11124 msgstr ""
11125
11126 #. type: TP
11127 #: build/C/man2/quotactl.2:400
11128 #, no-wrap
11129 msgid "B<Q_XGETQSTAT>"
11130 msgstr "B<Q_XGETQSTAT>"
11131
11132 #. type: Plain text
11133 #: build/C/man2/quotactl.2:408
11134 msgid ""
11135 "Returns an I<fs_quota_stat> structure containing XFS filesystem-specific "
11136 "quota information.  This is useful for finding out how much space is used to "
11137 "store quota information, and also to get quotaon/off status of a given local "
11138 "XFS filesystem."
11139 msgstr ""
11140
11141 #. type: TP
11142 #: build/C/man2/quotactl.2:408
11143 #, no-wrap
11144 msgid "B<Q_XQUOTARM>"
11145 msgstr "B<Q_XQUOTARM>"
11146
11147 #. type: Plain text
11148 #: build/C/man2/quotactl.2:412
11149 msgid ""
11150 "Free the disk space taken by disk quotas.  Quotas must have already been "
11151 "turned off."
11152 msgstr ""
11153
11154 #. type: Plain text
11155 #: build/C/man2/quotactl.2:419
11156 msgid ""
11157 "There is no command equivalent to B<Q_SYNC> for XFS since B<sync>(1)  writes "
11158 "quota information to disk (in addition to the other filesystem metadata that "
11159 "it writes out)."
11160 msgstr ""
11161
11162 #. type: Plain text
11163 #: build/C/man2/quotactl.2:427
11164 msgid ""
11165 "On success, B<quotactl>()  returns 0; on error -1 is returned, and I<errno> "
11166 "is set to indicate the error."
11167 msgstr ""
11168 "成功すると、 B<quotactl>()  は 0 を返す。\n"
11169 "エラーの場合、-1 を返し、 I<errno> をエラーを示す値に設定する。"
11170
11171 #. type: Plain text
11172 #: build/C/man2/quotactl.2:434
11173 msgid "I<addr> or I<special> is invalid."
11174 msgstr ""
11175
11176 #. type: Plain text
11177 #: build/C/man2/quotactl.2:440
11178 msgid "I<cmd> or I<type> is invalid."
11179 msgstr ""
11180
11181 #. type: TP
11182 #: build/C/man2/quotactl.2:440
11183 #, no-wrap
11184 msgid "B<ENOENT>"
11185 msgstr "B<ENOENT>"
11186
11187 #. type: Plain text
11188 #: build/C/man2/quotactl.2:447
11189 msgid "The file specified by I<special> or I<addr> does not exist."
11190 msgstr ""
11191
11192 #. type: Plain text
11193 #: build/C/man2/quotactl.2:452
11194 msgid "The kernel has not been compiled with the B<CONFIG_QUOTA> option."
11195 msgstr ""
11196
11197 #. type: TP
11198 #: build/C/man2/quotactl.2:452
11199 #, no-wrap
11200 msgid "B<ENOTBLK>"
11201 msgstr "B<ENOTBLK>"
11202
11203 #. type: Plain text
11204 #: build/C/man2/quotactl.2:456
11205 msgid "I<special> is not a block device."
11206 msgstr "I<special> がブロックデバイスではない。"
11207
11208 #. type: Plain text
11209 #: build/C/man2/quotactl.2:461
11210 msgid ""
11211 "The caller lacked the required privilege (B<CAP_SYS_ADMIN>)  for the "
11212 "specified operation."
11213 msgstr ""
11214
11215 #. type: Plain text
11216 #: build/C/man2/quotactl.2:465
11217 msgid ""
11218 "No disk quota is found for the indicated user.  Quotas have not been turned "
11219 "on for this filesystem."
11220 msgstr ""
11221
11222 #. type: Plain text
11223 #: build/C/man2/quotactl.2:474
11224 msgid "If I<cmd> is B<Q_SETQUOTA>, B<quotactl>()  may also set I<errno> to:"
11225 msgstr ""
11226
11227 #. type: Plain text
11228 #: build/C/man2/quotactl.2:477
11229 msgid "Specified limits are out of range allowed by quota format."
11230 msgstr ""
11231
11232 #. type: Plain text
11233 #: build/C/man2/quotactl.2:486
11234 msgid "If I<cmd> is B<Q_QUOTAON>, B<quotactl>()  may also set I<errno> to:"
11235 msgstr ""
11236
11237 #. type: Plain text
11238 #: build/C/man2/quotactl.2:495
11239 msgid ""
11240 "The quota file pointed to by I<addr> exists, but is not a regular file; or, "
11241 "the quota file pointed to by I<addr> exists, but is not on the filesystem "
11242 "pointed to by I<special>."
11243 msgstr ""
11244
11245 #. type: Plain text
11246 #: build/C/man2/quotactl.2:501
11247 msgid ""
11248 "B<Q_QUOTAON> attempted, but another B<Q_QUOTAON> had already been performed."
11249 msgstr ""
11250
11251 #. type: Plain text
11252 #: build/C/man2/quotactl.2:504
11253 msgid "The quota file is corrupted."
11254 msgstr "quota ファイルが壊れている。"
11255
11256 #. type: Plain text
11257 #: build/C/man2/quotactl.2:507
11258 msgid "Specified quota format was not found."
11259 msgstr ""
11260
11261 #. type: Plain text
11262 #: build/C/man2/quotactl.2:512
11263 msgid "B<quota>(1), B<getrlimit>(2), B<quotacheck>(8), B<quotaon>(8)"
11264 msgstr "B<quota>(1), B<getrlimit>(2), B<quotacheck>(8), B<quotaon>(8)"
11265
11266 #. type: TH
11267 #: build/C/man2/sendfile.2:19
11268 #, no-wrap
11269 msgid "SENDFILE"
11270 msgstr "SENDFILE"
11271
11272 #. type: TH
11273 #: build/C/man2/sendfile.2:19
11274 #, no-wrap
11275 msgid "2011-09-14"
11276 msgstr "2011-09-14"
11277
11278 #. type: Plain text
11279 #: build/C/man2/sendfile.2:22
11280 msgid "sendfile - transfer data between file descriptors"
11281 msgstr "sendfile - ファイル・ディスクリプタ間でデータを転送する"
11282
11283 #. type: Plain text
11284 #: build/C/man2/sendfile.2:24
11285 msgid "B<#include E<lt>sys/sendfile.hE<gt>>"
11286 msgstr "B<#include E<lt>sys/sendfile.hE<gt>>"
11287
11288 #.  The below is too ugly. Comments about glibc versions belong
11289 #.  in the notes, not in the header.
11290 #.  .B #include <features.h>
11291 #.  .br
11292 #.  .B #if (__GLIBC__==2 && __GLIBC_MINOR__>=1) || __GLIBC__>2
11293 #.  .br
11294 #.  .B #include <sys/sendfile.h>
11295 #.  .br
11296 #.  #else
11297 #.  .br
11298 #.  .B #include <sys/types.h>
11299 #.  .br
11300 #.  .B /* No system prototype before glibc 2.1. */
11301 #.  .br
11302 #.  .BI "ssize_t sendfile(int" " out_fd" ", int" " in_fd" ", off_t *" #.                        offset ", size_t" " count" )
11303 #.  .br
11304 #.  .B #endif
11305 #. type: Plain text
11306 #: build/C/man2/sendfile.2:47
11307 msgid ""
11308 "B<ssize_t sendfile(int>I< out_fd>B<, int>I< in_fd>B<, off_t *>I<offset>B<, "
11309 "size_t>I< count>B<);>"
11310 msgstr ""
11311 "B<ssize_t sendfile(int>I< out_fd>B<, int>I< in_fd>B<, off_t *>I<offset>B<, "
11312 "size_t>I< count>B<);>"
11313
11314 #. type: Plain text
11315 #: build/C/man2/sendfile.2:57
11316 msgid ""
11317 "B<sendfile>()  copies data between one file descriptor and another.  Because "
11318 "this copying is done within the kernel, B<sendfile>()  is more efficient "
11319 "than the combination of B<read>(2)  and B<write>(2), which would require "
11320 "transferring data to and from user space."
11321 msgstr ""
11322 "B<sendfile>()  は、あるファイル・ディスクリプタから別の ファイル・ディスクリ"
11323 "プタへのデータのコピーを行う。 このコピーはカーネル内で行われるので、 "
11324 "B<sendfile>()  は、 B<read>(2)  と B<write>(2)  を組み合わせるよりも効率がよ"
11325 "い。 B<read>(2)  や B<write>(2)  ではユーザ空間との間でデータの転送が必要とな"
11326 "るからである。"
11327
11328 #. type: Plain text
11329 #: build/C/man2/sendfile.2:62
11330 msgid ""
11331 "I<in_fd> should be a file descriptor opened for reading and I<out_fd> should "
11332 "be a descriptor opened for writing."
11333 msgstr ""
11334 "I<in_fd> は読み込みのためにオープンされたファイル・ディスクリプタ、 "
11335 "I<out_fd> は書き込みのためにオープンされたディスクリプタでなければならない。"
11336
11337 #. type: Plain text
11338 #: build/C/man2/sendfile.2:83
11339 msgid ""
11340 "If I<offset> is not NULL, then it points to a variable holding the file "
11341 "offset from which B<sendfile>()  will start reading data from I<in_fd>.  "
11342 "When B<sendfile>()  returns, this variable will be set to the offset of the "
11343 "byte following the last byte that was read.  If I<offset> is not NULL, then "
11344 "B<sendfile>()  does not modify the current file offset of I<in_fd>; "
11345 "otherwise the current file offset is adjusted to reflect the number of bytes "
11346 "read from I<in_fd>."
11347 msgstr ""
11348 "I<offset> が NULL でない場合、 I<offset> は B<sendfile>()  が I<in_fd> のどこ"
11349 "からデータを読み始めるかを示すファイル・オフセットを保持する変数への ポインタ"
11350 "である。 B<sendfile>()  は復帰する時、この変数に最後に読み込んだバイトの 次の"
11351 "バイトのオフセットを書き込む。 I<offset> が NULL でない場合、 B<sendfile>()  "
11352 "は I<in_fd> のファイル・オフセットの現在値を変更しない。 NULL の場合は、ファ"
11353 "イル・オフセットの現在値を I<in_fd> から読み込んだバイト数を反映した位置に調"
11354 "整する。"
11355
11356 #. type: Plain text
11357 #: build/C/man2/sendfile.2:90
11358 msgid ""
11359 "If I<offset> is NULL, then data will be read from I<in_fd> starting at the "
11360 "current file offset, and the file offset will be updated by the call."
11361 msgstr ""
11362 "I<offset> が NULL の場合、データは I<in_fd> の現在のファイル・オフセットから"
11363 "読み出され、 ファイル・オフセットはこの呼び出しで更新される。"
11364
11365 #. type: Plain text
11366 #: build/C/man2/sendfile.2:93
11367 msgid "I<count> is the number of bytes to copy between the file descriptors."
11368 msgstr "I<count> は、ファイル・ディスクリプタ間でコピーするバイト数である。"
11369
11370 #. type: Plain text
11371 #: build/C/man2/sendfile.2:100
11372 msgid ""
11373 "The I<in_fd> argument must correspond to a file which supports B<mmap>(2)-"
11374 "like operations (i.e., it cannot be a socket)."
11375 msgstr ""
11376 "I<in_fd> 引き数は B<mmap>(2) 風の操作ができるファイルを指していなければなら"
11377 "な\n"
11378 "い (ソケットを指定することはできない)。"
11379
11380 #. type: Plain text
11381 #: build/C/man2/sendfile.2:108
11382 msgid ""
11383 "In Linux kernels before 2.6.33, I<out_fd> must refer to a socket.  Since "
11384 "Linux 2.6.33 it can be any file.  If it is a regular file, then B<sendfile>"
11385 "()  changes the file offset appropriately."
11386 msgstr ""
11387 "2.6.33 より前の Linux カーネルでは I<out_fd> はソケットを参照していなければ"
11388 "な\n"
11389 "らない。Linux 2.6.33 以降では、任意のファイルを参照することができる。\n"
11390 "通常のファイルの場合には B<sendfile>() はファイルオフセットを適切に変更する。"
11391
11392 #. type: Plain text
11393 #: build/C/man2/sendfile.2:115
11394 msgid ""
11395 "If the transfer was successful, the number of bytes written to I<out_fd> is "
11396 "returned.  On error, -1 is returned, and I<errno> is set appropriately."
11397 msgstr ""
11398 "転送に成功した場合、 I<out_fd> に書き込まれたバイト数を返す。エラーの場"
11399 "合、-1 を返し、 I<errno> に適切な値を設定する。"
11400
11401 #. type: Plain text
11402 #: build/C/man2/sendfile.2:121
11403 msgid ""
11404 "Nonblocking I/O has been selected using B<O_NONBLOCK> and the write would "
11405 "block."
11406 msgstr ""
11407 "B<O_NONBLOCK> を用いて非ブロック I/O が選択されたが、書き込みがブロックされ"
11408 "た。"
11409
11410 #. type: TP
11411 #: build/C/man2/sendfile.2:121 build/C/man2/splice.2:143
11412 #: build/C/man2/vmsplice.2:123
11413 #, no-wrap
11414 msgid "B<EBADF>"
11415 msgstr "B<EBADF>"
11416
11417 #. type: Plain text
11418 #: build/C/man2/sendfile.2:125
11419 msgid ""
11420 "The input file was not opened for reading or the output file was not opened "
11421 "for writing."
11422 msgstr ""
11423 "入力ファイルが読み込みのためにオープンされていないか、 出力ファイルが書き込み"
11424 "のためにオープンされていない。"
11425
11426 #. type: Plain text
11427 #: build/C/man2/sendfile.2:128
11428 msgid "Bad address."
11429 msgstr "アドレスがおかしい。"
11430
11431 #. type: Plain text
11432 #: build/C/man2/sendfile.2:134
11433 msgid ""
11434 "Descriptor is not valid or locked, or an B<mmap>(2)-like operation is not "
11435 "available for I<in_fd>."
11436 msgstr ""
11437 "ディスクリプタが有効でないか、ロックされている。もしくは B<mmap>(2)  風の操作"
11438 "が I<in_fd> では利用できない。"
11439
11440 #. type: Plain text
11441 #: build/C/man2/sendfile.2:138
11442 msgid "Unspecified error while reading from I<in_fd>."
11443 msgstr "I<in_fd> から読み込んでいるうちに予期しないエラーが起こった。"
11444
11445 #. type: Plain text
11446 #: build/C/man2/sendfile.2:142
11447 msgid "Insufficient memory to read from I<in_fd>."
11448 msgstr "I<in_fd> から読み込むための十分なメモリがない。"
11449
11450 #. type: Plain text
11451 #: build/C/man2/sendfile.2:148
11452 msgid ""
11453 "B<sendfile>()  is a new feature in Linux 2.2.  The include file I<E<lt>sys/"
11454 "sendfile.hE<gt>> is present since glibc 2.1."
11455 msgstr ""
11456 "B<sendfile> は Linux 2.2 の新しい機能である。 インクルードファイル "
11457 "I<E<lt>sys/sendfile.hE<gt>> は glibc 2.1 から存在している。"
11458
11459 #. type: Plain text
11460 #: build/C/man2/sendfile.2:150
11461 msgid "Not specified in POSIX.1-2001, or other standards."
11462 msgstr "POSIX.1-2001 や他の標準では規定されていない。"
11463
11464 #. type: Plain text
11465 #: build/C/man2/sendfile.2:155
11466 msgid ""
11467 "Other UNIX systems implement B<sendfile>()  with different semantics and "
11468 "prototypes.  It should not be used in portable programs."
11469 msgstr ""
11470 "他の UNIX システムでは、異なった方式やプロトタイプで B<sendfile>()  を実装し"
11471 "ている。移植性を考慮したプログラムでは使用すべきではない。"
11472
11473 #. type: Plain text
11474 #: build/C/man2/sendfile.2:165
11475 msgid ""
11476 "If you plan to use B<sendfile>()  for sending files to a TCP socket, but "
11477 "need to send some header data in front of the file contents, you will find "
11478 "it useful to employ the B<TCP_CORK> option, described in B<tcp>(7), to "
11479 "minimize the number of packets and to tune performance."
11480 msgstr ""
11481 "B<sendfile>()  を使って TCP ソケットにファイルを送ろうとしていて、 ファイルの"
11482 "内容の前にヘッダ・データを付け加える必要がある場合は、 パケット数を最小にして"
11483 "性能を上げるために B<tcp>(7)  に記述されている B<TCP_CORK> オプションを使うと"
11484 "いいだろう。"
11485
11486 #. type: Plain text
11487 #: build/C/man2/sendfile.2:171
11488 msgid ""
11489 "In Linux 2.4 and earlier, I<out_fd> could also refer to a regular file, and "
11490 "B<sendfile>()  changed the current offset of that file."
11491 msgstr ""
11492 "Linux 2.4 とそれ以前のバージョンでも、 I<out_fd> は通常のファイルを参照で"
11493 "き、\n"
11494 "B<sendfile>() はそのファイルのオフセットの現在値を変更していた。"
11495
11496 #. type: Plain text
11497 #: build/C/man2/sendfile.2:183
11498 msgid ""
11499 "The original Linux B<sendfile>()  system call was not designed to handle "
11500 "large file offsets.  Consequently, Linux 2.4 added B<sendfile64>(), with a "
11501 "wider type for the I<offset> argument.  The glibc B<sendfile>()  wrapper "
11502 "function transparently deals with the kernel differences."
11503 msgstr ""
11504 "元々の Linux B<sendfile>() システムコールは大きなファイルオフセットを\n"
11505 "扱えるように設計されていなかった。その結果、Linux 2.4 で、\n"
11506 "ビット幅の大きな I<offset> 引き数を持った B<sendfile64>() が追加された。\n"
11507 "glibc の B<sendfile>() のラッパー関数はカーネルによるこの違いを吸収している。"
11508
11509 #. type: Plain text
11510 #: build/C/man2/sendfile.2:192
11511 msgid ""
11512 "Applications may wish to fall back to B<read>(2)/B<write>(2)  in the case "
11513 "where B<sendfile>()  fails with B<EINVAL> or B<ENOSYS>."
11514 msgstr ""
11515 "B<sendfile>()  が B<EINVAL> や B<ENOSYS> で失敗するような場合は、 アプリケー"
11516 "ションは B<read>(2)/B<write>(2)  に戻すことを考えてもよいかもしれない。"
11517
11518 #. type: Plain text
11519 #: build/C/man2/sendfile.2:197
11520 msgid ""
11521 "The Linux-specific B<splice>(2)  call supports transferring data between "
11522 "arbitrary files (e.g., a pair of sockets)."
11523 msgstr ""
11524 "Linux 固有の B<splice>(2) システムコールは、任意のファイル間 (例えば、\n"
11525 "ソケット同士) でのデータ転送をサポートしている。"
11526
11527 #. type: Plain text
11528 #: build/C/man2/sendfile.2:202
11529 msgid "B<mmap>(2), B<open>(2), B<socket>(2), B<splice>(2)"
11530 msgstr "B<mmap>(2), B<open>(2), B<socket>(2), B<splice>(2)"
11531
11532 #. type: TH
11533 #: build/C/man2/set_tid_address.2:25
11534 #, no-wrap
11535 msgid "SET_TID_ADDRESS"
11536 msgstr "SET_TID_ADDRESS"
11537
11538 #. type: TH
11539 #: build/C/man2/set_tid_address.2:25
11540 #, no-wrap
11541 msgid "2012-07-19"
11542 msgstr "2012-07-19"
11543
11544 #. type: Plain text
11545 #: build/C/man2/set_tid_address.2:28
11546 msgid "set_tid_address - set pointer to thread ID"
11547 msgstr "set_tid_address - スレッド ID へのポインタを設定する"
11548
11549 #. type: Plain text
11550 #: build/C/man2/set_tid_address.2:31
11551 #, no-wrap
11552 msgid "B<#include E<lt>linux/unistd.hE<gt>>\n"
11553 msgstr "B<#include E<lt>linux/unistd.hE<gt>>\n"
11554
11555 #. type: Plain text
11556 #: build/C/man2/set_tid_address.2:33
11557 #, no-wrap
11558 msgid "B<long set_tid_address(int *>I<tidptr>B<);>\n"
11559 msgstr "B<long set_tid_address(int *>I<tidptr>B<);>\n"
11560
11561 #. type: Plain text
11562 #: build/C/man2/set_tid_address.2:40
11563 msgid ""
11564 "For each process, the kernel maintains two attributes (addresses) called "
11565 "I<set_child_tid> and I<clear_child_tid>.  These two attributes contain the "
11566 "value NULL by default."
11567 msgstr ""
11568 "各プロセスについて、カーネルは I<set_child_tid> と I<clear_child_tid> という "
11569 "2 つの属性を保持する。この 2 つの属性はデフォルトでは NULL である。"
11570
11571 #. type: TP
11572 #: build/C/man2/set_tid_address.2:40
11573 #, no-wrap
11574 msgid "I<set_child_tid>"
11575 msgstr "I<set_child_tid>"
11576
11577 #. type: Plain text
11578 #: build/C/man2/set_tid_address.2:51
11579 msgid ""
11580 "If a process is started using B<clone>(2)  with the B<CLONE_CHILD_SETTID> "
11581 "flag, I<set_child_tid> is set to the value passed in the I<ctid> argument of "
11582 "that system call."
11583 msgstr ""
11584 "プロセスが B<CLONE_CHILD_SETTID> フラグを指定した B<clone>(2)  によって開始さ"
11585 "れた場合、 I<set_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引き数"
11586 "で渡された値に設定される。"
11587
11588 #. type: Plain text
11589 #: build/C/man2/set_tid_address.2:56
11590 msgid ""
11591 "When I<set_child_tid> is set, the very first thing the new process does is "
11592 "writing its PID at this address."
11593 msgstr ""
11594 "I<set_child_tid> が設定された場合、一番最初に新しいプロセスが行うことは、 こ"
11595 "のアドレスに自身の PID を書き込むことである。"
11596
11597 #. type: TP
11598 #: build/C/man2/set_tid_address.2:56
11599 #, no-wrap
11600 msgid "I<clear_child_tid>"
11601 msgstr "I<clear_child_tid>"
11602
11603 #. type: Plain text
11604 #: build/C/man2/set_tid_address.2:67
11605 msgid ""
11606 "If a process is started using B<clone>(2)  with the B<CLONE_CHILD_CLEARTID> "
11607 "flag, I<clear_child_tid> is set to the value passed in the I<ctid> argument "
11608 "of that system call."
11609 msgstr ""
11610 "プロセスが B<CLONE_CHILD_CLEARTID> フラグを指定した B<clone>(2) によって開始"
11611 "された場合、 I<clear_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引"
11612 "き数で渡された値に設定される。"
11613
11614 #. type: Plain text
11615 #: build/C/man2/set_tid_address.2:74
11616 msgid ""
11617 "The system call B<set_tid_address>()  sets the I<clear_child_tid> value for "
11618 "the calling process to I<tidptr>."
11619 msgstr ""
11620 "システムコール B<set_tid_address>()  は呼び出し元プロセスの "
11621 "I<clear_child_tid> の値を I<tidptr> に設定する。"
11622
11623 #. type: Plain text
11624 #: build/C/man2/set_tid_address.2:82
11625 msgid ""
11626 "When a process whose I<clear_child_tid> is not NULL terminates, then, if the "
11627 "process is sharing memory with other processes or threads, then 0 is written "
11628 "at the address specified in I<clear_child_tid> and the kernel performs the "
11629 "following operation:"
11630 msgstr ""
11631 "I<clear_child_tid> が NULL でないプロセスが終了すると、そのプロセスが他のプロ"
11632 "セスまたはスレッドとメモリを共有していれば、 I<clear_child_tid> で指定された"
11633 "アドレスに 0 が書き込まれ、カーネルは以下の処理を実行する。"
11634
11635 #. type: Plain text
11636 #: build/C/man2/set_tid_address.2:84
11637 #, no-wrap
11638 msgid "    futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);\n"
11639 msgstr "    futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);\n"
11640
11641 #. type: Plain text
11642 #: build/C/man2/set_tid_address.2:88
11643 msgid ""
11644 "The effect of this operation is to wake a single process that is performing "
11645 "a futex wait on the memory location.  Errors from the futex wake operation "
11646 "are ignored."
11647 msgstr ""
11648 "この処理の結果、このメモリアドレスに対する futex wait を実行しているプロセス"
11649 "を一つ起こす (wake)。 futex wake 操作でのエラーは無視される。"
11650
11651 #. type: Plain text
11652 #: build/C/man2/set_tid_address.2:91
11653 msgid "B<set_tid_address>()  always returns the PID of the calling process."
11654 msgstr "B<set_tid_address>()  は常に現在のプロセスの PID を返す。"
11655
11656 #. type: Plain text
11657 #: build/C/man2/set_tid_address.2:94
11658 msgid "B<set_tid_address>()  always succeeds."
11659 msgstr "B<set_tid_address>()  は常に成功する。"
11660
11661 #. type: Plain text
11662 #: build/C/man2/set_tid_address.2:97
11663 msgid ""
11664 "This call is present since Linux 2.5.48.  Details as given here are valid "
11665 "since Linux 2.5.49."
11666 msgstr ""
11667 "この呼び出しは Linux 2.5.48 以降で存在する。 ここで書かれた詳細は Linux "
11668 "2.5.49 以降で有効である。"
11669
11670 #. type: Plain text
11671 #: build/C/man2/set_tid_address.2:102
11672 msgid "B<clone>(2), B<futex>(2)"
11673 msgstr "B<clone>(2), B<futex>(2)"
11674
11675 #. type: TH
11676 #: build/C/man2/splice.2:26
11677 #, no-wrap
11678 msgid "SPLICE"
11679 msgstr "SPLICE"
11680
11681 #. type: TH
11682 #: build/C/man2/splice.2:26 build/C/man2/tee.2:26 build/C/man2/vmsplice.2:26
11683 #, no-wrap
11684 msgid "2012-05-04"
11685 msgstr "2012-05-04"
11686
11687 #. type: Plain text
11688 #: build/C/man2/splice.2:29
11689 msgid "splice - splice data to/from a pipe"
11690 msgstr "splice - パイプとの間でデータを継ぎ合わせる"
11691
11692 #. type: Plain text
11693 #: build/C/man2/splice.2:33 build/C/man2/tee.2:33
11694 #, no-wrap
11695 msgid ""
11696 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
11697 "B<#include E<lt>fcntl.hE<gt>>\n"
11698 msgstr ""
11699 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
11700 "B<#include E<lt>fcntl.hE<gt>>\n"
11701
11702 #.  Return type was long before glibc 2.7
11703 #. type: Plain text
11704 #: build/C/man2/splice.2:38
11705 #, no-wrap
11706 msgid ""
11707 "B<ssize_t splice(int >I<fd_in>B<, loff_t *>I<off_in>B<, int >I<fd_out>B<,>\n"
11708 "B<               loff_t *>I<off_out>B<, size_t >I<len>B<, unsigned int >I<flags>B<);>\n"
11709 msgstr ""
11710 "B<ssize_t splice(int >I<fd_in>B<, loff_t *>I<off_in>B<, int >I<fd_out>B<,>\n"
11711 "B<               loff_t *>I<off_out>B<, size_t >I<len>B<, unsigned int >I<flags>B<);>\n"
11712
11713 #. type: Plain text
11714 #: build/C/man2/splice.2:50
11715 msgid ""
11716 "B<splice>()  moves data between two file descriptors without copying between "
11717 "kernel address space and user address space.  It transfers up to I<len> "
11718 "bytes of data from the file descriptor I<fd_in> to the file descriptor "
11719 "I<fd_out>, where one of the descriptors must refer to a pipe."
11720 msgstr ""
11721 "B<splice>()  は、カーネルアドレス空間とユーザアドレス空間との間のコピーを伴わ"
11722 "ずに、 2 つのファイルディスクリプタ間でデータの移動を行う。 ファイルディスク"
11723 "リプタ I<fd_in> からファイルディスクリプタ I<fd_out> へ最大 I<len> バイトを転"
11724 "送する。 2 つのファイルディスクリプタのうち一つは パイプを参照していなければ"
11725 "ならない。"
11726
11727 #. type: Plain text
11728 #: build/C/man2/splice.2:80
11729 msgid ""
11730 "If I<fd_in> refers to a pipe, then I<off_in> must be NULL.  If I<fd_in> does "
11731 "not refer to a pipe and I<off_in> is NULL, then bytes are read from I<fd_in> "
11732 "starting from the current file offset, and the current file offset is "
11733 "adjusted appropriately.  If I<fd_in> does not refer to a pipe and I<off_in> "
11734 "is not NULL, then I<off_in> must point to a buffer which specifies the "
11735 "starting offset from which bytes will be read from I<fd_in>; in this case, "
11736 "the current file offset of I<fd_in> is not changed.  Analogous statements "
11737 "apply for I<fd_out> and I<off_out>."
11738 msgstr ""
11739 "I<fd_in> がパイプを参照している場合、 I<off_in> は NULL でなければならない。 "
11740 "I<fd_in> がパイプを参照しておらず、 I<off_in> が NULL の場合、 I<fd_in> の現"
11741 "在のファイルオフセットから始まるバイトを読み出す。 現在のファイルオフセットは"
11742 "適切に調整される。 I<fd_in> がパイプを参照しておらず、 I<off_in> が NULL でな"
11743 "い場合、 I<off_in> は I<fd_in> からのデータ読み出しを開始する先頭オフセットを"
11744 "格納したバッファ へのポインタでなければならない。この場合、 I<fd_in> の現在の"
11745 "ファイルオフセットは変更されない。 I<fd_out> と I<off_out> に関しても同様であ"
11746 "る。"
11747
11748 #. type: Plain text
11749 #: build/C/man2/splice.2:85 build/C/man2/vmsplice.2:78
11750 msgid ""
11751 "The I<flags> argument is a bit mask that is composed by ORing together zero "
11752 "or more of the following values:"
11753 msgstr ""
11754 "I<flags> 引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。"
11755
11756 #. type: TP
11757 #: build/C/man2/splice.2:85 build/C/man2/tee.2:62 build/C/man2/vmsplice.2:78
11758 #, no-wrap
11759 msgid "B<SPLICE_F_MOVE>"
11760 msgstr "B<SPLICE_F_MOVE>"
11761
11762 #. type: Plain text
11763 #: build/C/man2/splice.2:98
11764 msgid ""
11765 "Attempt to move pages instead of copying.  This is only a hint to the "
11766 "kernel: pages may still be copied if the kernel cannot move the pages from "
11767 "the pipe, or if the pipe buffers don't refer to full pages.  The initial "
11768 "implementation of this flag was buggy: therefore starting in Linux 2.6.21 it "
11769 "is a no-op (but is still permitted in a B<splice>()  call); in the future, a "
11770 "correct implementation may be restored."
11771 msgstr ""
11772 "ページのコピーでなく移動を試みる。 これはカーネルに対するヒントでしかない。 "
11773 "つまり、カーネルがパイプからページを移動できない場合や、 パイプバッファがペー"
11774 "ジ全部を参照していない場合は、 ページのコピーが行われることもある。 このフラ"
11775 "グの最初の実装にはバグがあった。そのため、 Linux 2.6.21 以降ではこのフラグの"
11776 "操作はできないようになっている (ただし、 B<splice>()  コールでこのフラグを指"
11777 "定することは今も認められている)。 将来、正しい実装が行われることだろう。"
11778
11779 #. type: TP
11780 #: build/C/man2/splice.2:98 build/C/man2/tee.2:68 build/C/man2/vmsplice.2:84
11781 #, no-wrap
11782 msgid "B<SPLICE_F_NONBLOCK>"
11783 msgstr "B<SPLICE_F_NONBLOCK>"
11784
11785 #. type: Plain text
11786 #: build/C/man2/splice.2:107
11787 msgid ""
11788 "Do not block on I/O.  This makes the splice pipe operations nonblocking, but "
11789 "B<splice>()  may nevertheless block because the file descriptors that are "
11790 "spliced to/from may block (unless they have the B<O_NONBLOCK> flag set)."
11791 msgstr ""
11792 "入出力時に停止 (block) しない。 このフラグを指定すると、 splice によるパイプ"
11793 "操作を非停止モード (nonblocking) で 行おうとするが、その場合でも B<splice>"
11794 "()  は停止することもある。なぜなら、データのやり取りを行う ファイルディスクリ"
11795 "プタは (B<O_NONBLOCK> フラグをセットされていない場合) 停止する可能性があるか"
11796 "らである。"
11797
11798 #. type: TP
11799 #: build/C/man2/splice.2:107 build/C/man2/tee.2:73 build/C/man2/vmsplice.2:91
11800 #, no-wrap
11801 msgid "B<SPLICE_F_MORE>"
11802 msgstr "B<SPLICE_F_MORE>"
11803
11804 #. type: Plain text
11805 #: build/C/man2/splice.2:121
11806 msgid ""
11807 "More data will be coming in a subsequent splice.  This is a helpful hint "
11808 "when the I<fd_out> refers to a socket (see also the description of "
11809 "B<MSG_MORE> in B<send>(2), and the description of B<TCP_CORK> in B<tcp>(7))"
11810 msgstr ""
11811 "この後の splice でさらに転送されるデータがあることを示す。 このフラグは "
11812 "I<fd_out> がソケットを参照している場合に有用なヒントとなる (B<send>(2)  の "
11813 "B<MSG_MORE> や B<tcp>(7)  の B<TCP_CORK> の説明も参照)。"
11814
11815 #. type: TP
11816 #: build/C/man2/splice.2:121 build/C/man2/tee.2:79 build/C/man2/vmsplice.2:97
11817 #, no-wrap
11818 msgid "B<SPLICE_F_GIFT>"
11819 msgstr "B<SPLICE_F_GIFT>"
11820
11821 #. type: Plain text
11822 #: build/C/man2/splice.2:127
11823 msgid "Unused for B<splice>(); see B<vmsplice>(2)."
11824 msgstr "B<splice>()  では使用しない。 B<vmsplice>(2)  参照。"
11825
11826 #. type: Plain text
11827 #: build/C/man2/splice.2:136
11828 msgid ""
11829 "Upon successful completion, B<splice>()  returns the number of bytes spliced "
11830 "to or from the pipe.  A return value of 0 means that there was no data to "
11831 "transfer, and it would not make sense to block, because there are no writers "
11832 "connected to the write end of the pipe referred to by I<fd_in>."
11833 msgstr ""
11834 "成功して完了すると、 B<splice>()  はパイプから出し入れしたバイト数を返す。 返"
11835 "り値 0 はデータの転送が行わなかったことを示す。 この場合、処理を停止 (block) "
11836 "しても無意味である。 なぜなら、 I<fd_in> が参照するパイプの書き込み側に接続さ"
11837 "れている者がいないからである。"
11838
11839 #. type: Plain text
11840 #: build/C/man2/splice.2:142
11841 msgid ""
11842 "On error, B<splice>()  returns -1 and I<errno> is set to indicate the error."
11843 msgstr ""
11844 "エラーの場合、 B<splice>()  は -1 を返し、 I<errno> にエラーを示す値を設定す"
11845 "る。"
11846
11847 #. type: Plain text
11848 #: build/C/man2/splice.2:147
11849 msgid ""
11850 "One or both file descriptors are not valid, or do not have proper read-write "
11851 "mode."
11852 msgstr ""
11853 "ファイルディスクリプタの一方または両方が有効ではない、 もしくは適切な read-"
11854 "write モードではない。"
11855
11856 #.  The append-mode error is given since 2.6.27; in earlier kernels,
11857 #.  splice() in append mode was broken
11858 #. type: Plain text
11859 #: build/C/man2/splice.2:155
11860 msgid ""
11861 "Target filesystem doesn't support splicing; target file is opened in append "
11862 "mode; neither of the descriptors refers to a pipe; or offset given for "
11863 "nonseekable device."
11864 msgstr ""
11865 "対象のファイルシステムが splice に対応していない、 または対象のファイルが追記"
11866 "モードでオープンされている、 またはディスクリプタのどちらもパイプを参照してい"
11867 "ない、 または seek できないデバイスに対してオフセットが指定された。"
11868
11869 #. type: Plain text
11870 #: build/C/man2/splice.2:158 build/C/man2/tee.2:114
11871 #: build/C/man2/vmsplice.2:138
11872 msgid "Out of memory."
11873 msgstr "メモリ不足。"
11874
11875 #. type: TP
11876 #: build/C/man2/splice.2:158
11877 #, no-wrap
11878 msgid "B<ESPIPE>"
11879 msgstr "B<ESPIPE>"
11880
11881 #. type: Plain text
11882 #: build/C/man2/splice.2:165
11883 msgid ""
11884 "Either I<off_in> or I<off_out> was not NULL, but the corresponding file "
11885 "descriptor refers to a pipe."
11886 msgstr ""
11887 "I<off_in> か I<off_out> のいずれかが NULL ではないが、対応するファイルディス"
11888 "クリプタが パイプを参照している。"
11889
11890 #. type: Plain text
11891 #: build/C/man2/splice.2:170
11892 msgid ""
11893 "The B<splice>()  system call first appeared in Linux 2.6.17; library support "
11894 "was added to glibc in version 2.5."
11895 msgstr ""
11896 "B<splice>() システムコールは Linux 2.6.17 で初めて登場した。\n"
11897 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
11898
11899 #. type: Plain text
11900 #: build/C/man2/splice.2:182
11901 msgid ""
11902 "The three system calls B<splice>(), B<vmsplice>(2), and B<tee>(2), provide "
11903 "user-space programs with full control over an arbitrary kernel buffer, "
11904 "implemented within the kernel using the same type of buffer that is used for "
11905 "a pipe.  In overview, these system calls perform the following tasks:"
11906 msgstr ""
11907 "3 つのシステムコール (B<splice>(), B<vmsplice>(2), B<tee>(2))  を使うと、ユー"
11908 "ザ空間プログラムは任意のカーネルバッファに対する 完全な制御ができる。カーネル"
11909 "バッファは、パイプに使用されているのと 同種のバッファを使ってカーネル内に実装"
11910 "されている。 大まかにいうと、これらのシステムコールは以下の仕事を行う:"
11911
11912 #. type: TP
11913 #: build/C/man2/splice.2:182
11914 #, no-wrap
11915 msgid "B<splice>()"
11916 msgstr "B<splice>()"
11917
11918 #. type: Plain text
11919 #: build/C/man2/splice.2:186
11920 msgid ""
11921 "moves data from the buffer to an arbitrary file descriptor, or vice versa, "
11922 "or from one buffer to another."
11923 msgstr ""
11924 "バッファから任意のファイルディスクリプタや、その逆方向、 もしくはあるバッファ"
11925 "から別のバッファへの、データ移動を行う。"
11926
11927 #. type: TP
11928 #: build/C/man2/splice.2:186
11929 #, no-wrap
11930 msgid "B<tee>(2)"
11931 msgstr "B<tee>(2)"
11932
11933 #. type: Plain text
11934 #: build/C/man2/splice.2:189
11935 msgid "\"copies\" the data from one buffer to another."
11936 msgstr "あるバッファから別のバッファへのデータ「コピー」を行う。"
11937
11938 #. type: TP
11939 #: build/C/man2/splice.2:189
11940 #, no-wrap
11941 msgid "B<vmsplice>(2)"
11942 msgstr "B<vmsplice>(2)"
11943
11944 #. type: Plain text
11945 #: build/C/man2/splice.2:192
11946 msgid "\"copies\" data from user space into the buffer."
11947 msgstr "ユーザ空間からバッファへのデータ「コピー」を行う。"
11948
11949 #.  Linus: Now, imagine using the above in a media server, for example.
11950 #.  Let's say that a year or two has passed, so that the video drivers
11951 #.  have been updated to be able to do the splice thing, and what can
11952 #.  you do? You can:
11953 #.  - splice from the (mpeg or whatever - let's just assume that the video
11954 #.    input is either digital or does the encoding on its own - like they
11955 #.    pretty much all do) video input into a pipe (remember: no copies - the
11956 #.    video input will just DMA directly into memory, and splice will just
11957 #.    set up the pages in the pipe buffer)
11958 #.  - tee that pipe to split it up
11959 #.  - splice one end to a file (ie "save the compressed stream to disk")
11960 #.  - splice the other end to a real-time video decoder window for your
11961 #.    real-time viewing pleasure.
11962 #.  Linus: Now, the advantage of splice()/tee() is that you can
11963 #.  do zero-copy movement of data, and unlike sendfile() you can
11964 #.  do it on _arbitrary_ data (and, as shown by "tee()", it's more
11965 #.  than just sending the data to somebody else: you can duplicate
11966 #.  the data and choose to forward it to two or more different
11967 #.  users - for things like logging etc.).
11968 #. type: Plain text
11969 #: build/C/man2/splice.2:223
11970 msgid ""
11971 "Though we talk of copying, actual copies are generally avoided.  The kernel "
11972 "does this by implementing a pipe buffer as a set of reference-counted "
11973 "pointers to pages of kernel memory.  The kernel creates \"copies\" of pages "
11974 "in a buffer by creating new pointers (for the output buffer) referring to "
11975 "the pages, and increasing the reference counts for the pages: only pointers "
11976 "are copied, not the pages of the buffer."
11977 msgstr ""
11978 "ここではコピーの話をしているが、実際のコピーは一般的に回避される。 カーネル"
11979 "は、パイプ・バッファをカーネルメモリのページへのポインタ集合として 実装し、"
11980 "ページへの参照回数を管理することで、これを実現している。 カーネルは、対象とな"
11981 "るページを参照する (出力バッファ用の) ポインタを 新規に作成することでバッファ"
11982 "内のページの「コピー」を作成し、 そのページの参照回数を増やす。つまり、ポイン"
11983 "タだけがコピーされ、 バッファのページはコピーされない。"
11984
11985 #. type: Plain text
11986 #: build/C/man2/splice.2:226
11987 msgid "See B<tee>(2)."
11988 msgstr "B<tee>(2)  参照。"
11989
11990 #. type: Plain text
11991 #: build/C/man2/splice.2:230
11992 msgid "B<sendfile>(2), B<tee>(2), B<vmsplice>(2)"
11993 msgstr "B<sendfile>(2), B<tee>(2), B<vmsplice>(2)"
11994
11995 #. type: TH
11996 #: build/C/man2/tee.2:26
11997 #, no-wrap
11998 msgid "TEE"
11999 msgstr "TEE"
12000
12001 #. type: Plain text
12002 #: build/C/man2/tee.2:29
12003 msgid "tee - duplicating pipe content"
12004 msgstr "tee - パイプの中身を複製する"
12005
12006 #. type: Plain text
12007 #: build/C/man2/tee.2:36
12008 #, no-wrap
12009 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"
12010 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"
12011
12012 #.  Example programs http://brick.kernel.dk/snaps
12013 #.  add a "tee(in, out1, out2)" system call that duplicates the pages
12014 #.  (again, incrementing their reference count, not copying the data) from
12015 #.  one pipe to two other pipes.
12016 #. type: Plain text
12017 #: build/C/man2/tee.2:56
12018 msgid ""
12019 "B<tee>()  duplicates up to I<len> bytes of data from the pipe referred to by "
12020 "the file descriptor I<fd_in> to the pipe referred to by the file descriptor "
12021 "I<fd_out>.  It does not consume the data that is duplicated from I<fd_in>; "
12022 "therefore, that data can be copied by a subsequent B<splice>(2)."
12023 msgstr ""
12024 "B<tee>()  は、ファイルディスクリプタ I<fd_in> が参照するパイプからファイル"
12025 "ディスクリプタ I<fd_out> が参照するパイプへ最大 I<len> バイトのデータを複製す"
12026 "る。 この操作では、複製されるデータは I<fd_in> からは消費されない。したがっ"
12027 "て、これらのデータをこの後の B<splice>(2)  でコピーすることができる。"
12028
12029 #. type: Plain text
12030 #: build/C/man2/tee.2:62
12031 msgid ""
12032 "I<flags> is a series of modifier flags, which share the name space with "
12033 "B<splice>(2)  and B<vmsplice>(2):"
12034 msgstr ""
12035 "I<flags> は一連の修飾フラグであり、 B<splice>(2)  や B<vmsplice>(2)  と共通の"
12036 "名前である。"
12037
12038 #. type: Plain text
12039 #: build/C/man2/tee.2:68
12040 msgid "Currently has no effect for B<tee>(); see B<splice>(2)."
12041 msgstr "現在のところ B<tee>()  では何の効果もない。 B<splice>(2)  参照。"
12042
12043 #.  Not used for vmsplice
12044 #.  May be in the future -- therefore EAGAIN
12045 #. type: Plain text
12046 #: build/C/man2/tee.2:73 build/C/man2/vmsplice.2:91
12047 msgid "Do not block on I/O; see B<splice>(2)  for further details."
12048 msgstr "入出力で停止 (block) しない。詳細は B<splice>(2)  参照。"
12049
12050 #. type: Plain text
12051 #: build/C/man2/tee.2:79
12052 msgid ""
12053 "Currently has no effect for B<tee>(), but may be implemented in the future; "
12054 "see B<splice>(2)."
12055 msgstr ""
12056 "現在のところ B<tee>()  では何の効果もないが、将来的には実装される可能性があ"
12057 "る。 B<splice>(2)  参照。"
12058
12059 #. type: Plain text
12060 #: build/C/man2/tee.2:85
12061 msgid "Unused for B<tee>(); see B<vmsplice>(2)."
12062 msgstr "B<tee>()  では未使用。 B<vmsplice>(2)  参照。"
12063
12064 #. type: Plain text
12065 #: build/C/man2/tee.2:94
12066 msgid ""
12067 "Upon successful completion, B<tee>()  returns the number of bytes that were "
12068 "duplicated between the input and output.  A return value of 0 means that "
12069 "there was no data to transfer, and it would not make sense to block, because "
12070 "there are no writers connected to the write end of the pipe referred to by "
12071 "I<fd_in>."
12072 msgstr ""
12073 "成功して完了すると、 B<tee>()  は入出力間で複製されたバイト数を返す。 返り値 "
12074 "0 はデータの転送が行われなかったことを示す。 この場合、処理を停止 (block) し"
12075 "ても無意味である。 なぜなら、 I<fd_in> が参照するパイプの書き込み側に接続され"
12076 "ている者がいないからである。"
12077
12078 #. type: Plain text
12079 #: build/C/man2/tee.2:100
12080 msgid ""
12081 "On error, B<tee>()  returns -1 and I<errno> is set to indicate the error."
12082 msgstr ""
12083 "エラーの場合、 B<tee>()  は -1 を返し、 I<errno> にエラーを示す値を設定する。"
12084
12085 #. type: Plain text
12086 #: build/C/man2/tee.2:111
12087 msgid ""
12088 "I<fd_in> or I<fd_out> does not refer to a pipe; or I<fd_in> and I<fd_out> "
12089 "refer to the same pipe."
12090 msgstr ""
12091 "I<fd_in> と I<fd_out> のどちらかがパイプを参照していない。もしくは I<fd_in> "
12092 "と I<fd_out> が同じパイプを参照している。"
12093
12094 #. type: Plain text
12095 #: build/C/man2/tee.2:119
12096 msgid ""
12097 "The B<tee>()  system call first appeared in Linux 2.6.17; library support "
12098 "was added to glibc in version 2.5."
12099 msgstr ""
12100 "B<tee>() システムコールは Linux 2.6.17 で初めて登場した。\n"
12101 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
12102
12103 #. type: Plain text
12104 #: build/C/man2/tee.2:130
12105 msgid ""
12106 "Conceptually, B<tee>()  copies the data between the two pipes.  In reality "
12107 "no real data copying takes place though: under the covers, B<tee>()  assigns "
12108 "data in the output by merely grabbing a reference to the input."
12109 msgstr ""
12110 "概念としては、 B<tee>()  は二つのパイプ間でデータのコピーを行う。 しかし、実"
12111 "際には実データのコピーは行われない。 内部では、 B<tee>()  は入力側に対する参"
12112 "照だけを作成することで出力側にデータを 追加する。"
12113
12114 #. type: Plain text
12115 #: build/C/man2/tee.2:136
12116 msgid ""
12117 "The following example implements a basic B<tee>(1)  program using the B<tee>"
12118 "()  system call."
12119 msgstr ""
12120 "以下の例は、 B<tee>()  システムコールを使って、 基本的な B<tee>(1)  プログラ"
12121 "ムを実装したものである。"
12122
12123 #. type: Plain text
12124 #: build/C/man2/tee.2:145
12125 #, no-wrap
12126 msgid ""
12127 "#define _GNU_SOURCE\n"
12128 "#include E<lt>fcntl.hE<gt>\n"
12129 "#include E<lt>stdio.hE<gt>\n"
12130 "#include E<lt>stdlib.hE<gt>\n"
12131 "#include E<lt>unistd.hE<gt>\n"
12132 "#include E<lt>errno.hE<gt>\n"
12133 "#include E<lt>limits.hE<gt>\n"
12134 msgstr ""
12135 "#define _GNU_SOURCE\n"
12136 "#include E<lt>fcntl.hE<gt>\n"
12137 "#include E<lt>stdio.hE<gt>\n"
12138 "#include E<lt>stdlib.hE<gt>\n"
12139 "#include E<lt>unistd.hE<gt>\n"
12140 "#include E<lt>errno.hE<gt>\n"
12141 "#include E<lt>limits.hE<gt>\n"
12142
12143 #. type: Plain text
12144 #: build/C/man2/tee.2:151
12145 #, no-wrap
12146 msgid ""
12147 "int\n"
12148 "main(int argc, char *argv[])\n"
12149 "{\n"
12150 "    int fd;\n"
12151 "    int len, slen;\n"
12152 msgstr ""
12153 "int\n"
12154 "main(int argc, char *argv[])\n"
12155 "{\n"
12156 "    int fd;\n"
12157 "    int len, slen;\n"
12158
12159 #. type: Plain text
12160 #: build/C/man2/tee.2:156
12161 #, no-wrap
12162 msgid ""
12163 "    if (argc != 2) {\n"
12164 "        fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
12165 "        exit(EXIT_FAILURE);\n"
12166 "    }\n"
12167 msgstr ""
12168 "    if (argc != 2) {\n"
12169 "        fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
12170 "        exit(EXIT_FAILURE);\n"
12171 "    }\n"
12172
12173 #. type: Plain text
12174 #: build/C/man2/tee.2:162
12175 #, no-wrap
12176 msgid ""
12177 "    fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);\n"
12178 "    if (fd == -1) {\n"
12179 "        perror(\"open\");\n"
12180 "        exit(EXIT_FAILURE);\n"
12181 "    }\n"
12182 msgstr ""
12183 "    fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);\n"
12184 "    if (fd == -1) {\n"
12185 "        perror(\"open\");\n"
12186 "        exit(EXIT_FAILURE);\n"
12187 "    }\n"
12188
12189 #. type: Plain text
12190 #: build/C/man2/tee.2:169
12191 #, no-wrap
12192 msgid ""
12193 "    do {\n"
12194 "        /*\n"
12195 "         * tee stdin to stdout.\n"
12196 "         */\n"
12197 "        len = tee(STDIN_FILENO, STDOUT_FILENO,\n"
12198 "                  INT_MAX, SPLICE_F_NONBLOCK);\n"
12199 msgstr ""
12200 "    do {\n"
12201 "        /*\n"
12202 "         * tee stdin to stdout.\n"
12203 "         */\n"
12204 "        len = tee(STDIN_FILENO, STDOUT_FILENO,\n"
12205 "                  INT_MAX, SPLICE_F_NONBLOCK);\n"
12206
12207 #. type: Plain text
12208 #: build/C/man2/tee.2:178
12209 #, no-wrap
12210 msgid ""
12211 "        if (len E<lt> 0) {\n"
12212 "            if (errno == EAGAIN)\n"
12213 "                continue;\n"
12214 "            perror(\"tee\");\n"
12215 "            exit(EXIT_FAILURE);\n"
12216 "        } else\n"
12217 "            if (len == 0)\n"
12218 "                break;\n"
12219 msgstr ""
12220 "        if (len E<lt> 0) {\n"
12221 "            if (errno == EAGAIN)\n"
12222 "                continue;\n"
12223 "            perror(\"tee\");\n"
12224 "            exit(EXIT_FAILURE);\n"
12225 "        } else\n"
12226 "            if (len == 0)\n"
12227 "                break;\n"
12228
12229 #. type: Plain text
12230 #: build/C/man2/tee.2:192
12231 #, no-wrap
12232 msgid ""
12233 "        /*\n"
12234 "         * Consume stdin by splicing it to a file.\n"
12235 "         */\n"
12236 "        while (len E<gt> 0) {\n"
12237 "            slen = splice(STDIN_FILENO, NULL, fd, NULL,\n"
12238 "                          len, SPLICE_F_MOVE);\n"
12239 "            if (slen E<lt> 0) {\n"
12240 "                perror(\"splice\");\n"
12241 "                break;\n"
12242 "            }\n"
12243 "            len -= slen;\n"
12244 "        }\n"
12245 "    } while (1);\n"
12246 msgstr ""
12247 "        /*\n"
12248 "         * Consume stdin by splicing it to a file.\n"
12249 "         */\n"
12250 "        while (len E<gt> 0) {\n"
12251 "            slen = splice(STDIN_FILENO, NULL, fd, NULL,\n"
12252 "                          len, SPLICE_F_MOVE);\n"
12253 "            if (slen E<lt> 0) {\n"
12254 "                perror(\"splice\");\n"
12255 "                break;\n"
12256 "            }\n"
12257 "            len -= slen;\n"
12258 "        }\n"
12259 "    } while (1);\n"
12260
12261 #. type: Plain text
12262 #: build/C/man2/tee.2:196
12263 #, no-wrap
12264 msgid ""
12265 "    close(fd);\n"
12266 "    exit(EXIT_SUCCESS);\n"
12267 "}\n"
12268 msgstr ""
12269 "    close(fd);\n"
12270 "    exit(EXIT_SUCCESS);\n"
12271 "}\n"
12272
12273 #. type: Plain text
12274 #: build/C/man2/tee.2:200
12275 msgid "B<splice>(2), B<vmsplice>(2)"
12276 msgstr "B<splice>(2), B<vmsplice>(2)"
12277
12278 #. type: TH
12279 #: build/C/man2/vm86.2:26
12280 #, no-wrap
12281 msgid "VM86"
12282 msgstr "VM86"
12283
12284 #. type: TH
12285 #: build/C/man2/vm86.2:26
12286 #, no-wrap
12287 msgid "2009-02-20"
12288 msgstr "2009-02-20"
12289
12290 #. type: Plain text
12291 #: build/C/man2/vm86.2:29
12292 msgid "vm86old, vm86 - enter virtual 8086 mode"
12293 msgstr "vm86old, vm86 - 仮想 8086 モードへ移行する"
12294
12295 #. type: Plain text
12296 #: build/C/man2/vm86.2:31
12297 msgid "B<#include E<lt>sys/vm86.hE<gt>>"
12298 msgstr "B<#include E<lt>sys/vm86.hE<gt>>"
12299
12300 #. type: Plain text
12301 #: build/C/man2/vm86.2:33
12302 msgid "B<int vm86old(struct vm86_struct *>I<info>B<);>"
12303 msgstr "B<int vm86old(struct vm86_struct *>I<info>B<);>"
12304
12305 #. type: Plain text
12306 #: build/C/man2/vm86.2:35
12307 msgid "B<int vm86(unsigned long >I<fn>B<, struct vm86plus_struct *>I<v86>B<);>"
12308 msgstr ""
12309 "B<int vm86(unsigned long >I<fn>B<, struct vm86plus_struct *>I<v86>B<);>"
12310
12311 #. type: Plain text
12312 #: build/C/man2/vm86.2:48
12313 msgid ""
12314 "The system call B<vm86>()  was introduced in Linux 0.97p2.  In Linux 2.1.15 "
12315 "and 2.0.28 it was renamed to B<vm86old>(), and a new B<vm86>()  was "
12316 "introduced.  The definition of I<struct vm86_struct> was changed in 1.1.8 "
12317 "and 1.1.9."
12318 msgstr ""
12319 "B<vm86>()  システムコールは Linux 0.97p2 で導入された。 これは Linux 2.1.15 "
12320 "と 2.0.28 で B<vm86old>()  に名前が変更され、 新しい B<vm86>()  が導入され"
12321 "た。 I<struct vm86_struct> の定義は 1.1.8 と 1.1.9 で変更された。"
12322
12323 #. type: Plain text
12324 #: build/C/man2/vm86.2:52
12325 msgid ""
12326 "These calls cause the process to enter VM86 mode (virtual-8086 in Intel "
12327 "literature), and are used by B<dosemu>."
12328 msgstr ""
12329 "これらのコールによってプロセスは VM86 モード (Intel の文書では仮想 8086 モー"
12330 "ド) へと移行する。 これらのコールは B<dosemu> で使用される。"
12331
12332 #. type: Plain text
12333 #: build/C/man2/vm86.2:54
12334 msgid "VM86 mode is an emulation of real mode within a protected mode task."
12335 msgstr ""
12336 "VM86 モードはプロテクトモードタスクにおける リアルモードのエミュレーションで"
12337 "ある。"
12338
12339 #. type: Plain text
12340 #: build/C/man2/vm86.2:64
12341 msgid ""
12342 "This return value is specific to i386 and indicates a problem with getting "
12343 "user-space data."
12344 msgstr ""
12345 "この返り値は i386 固有のものであり、 ユーザー空間のデータを取得する際に問題が"
12346 "あったことを示す。"
12347
12348 #. type: Plain text
12349 #: build/C/man2/vm86.2:68
12350 msgid ""
12351 "This return value indicates the call is not implemented on the present "
12352 "architecture."
12353 msgstr ""
12354 "この返り値は、このコールが現在のアーキテクチャで実装されていないことを示す。"
12355
12356 #. type: Plain text
12357 #: build/C/man2/vm86.2:73
12358 msgid ""
12359 "Saved kernel stack exists.  (This is a kernel sanity check; the saved stack "
12360 "should exist only within vm86 mode itself.)"
12361 msgstr ""
12362 "保存されたカーネルスタックが既に存在している。(これはカーネルが通常の 状態で"
12363 "あるかをチェックしている。保存されたスタックは vm86 モードで しか存在しな"
12364 "い。)"
12365
12366 #. type: Plain text
12367 #: build/C/man2/vm86.2:76
12368 msgid ""
12369 "This call is specific to Linux on 32-bit Intel processors, and should not be "
12370 "used in programs intended to be portable."
12371 msgstr ""
12372 "この関数は 32 ビット Intel プロセッサ上の Linux 特有の関数であり、 移植を意図"
12373 "したプログラムでは使用すべきでない。"
12374
12375 #. type: TH
12376 #: build/C/man2/vmsplice.2:26
12377 #, no-wrap
12378 msgid "VMSPLICE"
12379 msgstr "VMSPLICE"
12380
12381 #. type: Plain text
12382 #: build/C/man2/vmsplice.2:29
12383 msgid "vmsplice - splice user pages into a pipe"
12384 msgstr "vmsplice - ユーザ・ページをパイプに継ぎ合わせる"
12385
12386 #. type: Plain text
12387 #: build/C/man2/vmsplice.2:34
12388 #, no-wrap
12389 msgid ""
12390 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
12391 "B<#include E<lt>fcntl.hE<gt>>\n"
12392 "B<#include E<lt>sys/uio.hE<gt>>\n"
12393 msgstr ""
12394 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
12395 "B<#include E<lt>fcntl.hE<gt>>\n"
12396 "B<#include E<lt>sys/uio.hE<gt>>\n"
12397
12398 #. type: Plain text
12399 #: build/C/man2/vmsplice.2:37
12400 #, no-wrap
12401 msgid ""
12402 "B<ssize_t vmsplice(int >I<fd>B<, const struct iovec *>I<iov>B<,>\n"
12403 "B<                 unsigned long >I<nr_segs>B<, unsigned int >I<flags>B<);>\n"
12404 msgstr ""
12405 "B<ssize_t vmsplice(int >I<fd>B<, const struct iovec *>I<iov>B<,>\n"
12406 "B<                 unsigned long >I<nr_segs>B<, unsigned int >I<flags>B<);>\n"
12407
12408 #.  Linus: vmsplice() system call to basically do a "write to
12409 #.  the buffer", but using the reference counting and VM traversal
12410 #.  to actually fill the buffer. This means that the user needs to
12411 #.  be careful not to reuse the user-space buffer it spliced into
12412 #.  the kernel-space one (contrast this to "write()", which copies
12413 #.  the actual data, and you can thus reuse the buffer immediately
12414 #.  after a successful write), but that is often easy to do.
12415 #. type: Plain text
12416 #: build/C/man2/vmsplice.2:57
12417 msgid ""
12418 "The B<vmsplice>()  system call maps I<nr_segs> ranges of user memory "
12419 "described by I<iov> into a pipe.  The file descriptor I<fd> must refer to a "
12420 "pipe."
12421 msgstr ""
12422 "B<vmsplice>()  システムコールは、 I<iov> で指定されたユーザ・メモリの "
12423 "I<nr_segs> の範囲をパイプにマッピングする。 I<fd> はパイプを参照していなけれ"
12424 "ばならない。"
12425
12426 #. type: Plain text
12427 #: build/C/man2/vmsplice.2:64
12428 msgid ""
12429 "The pointer I<iov> points to an array of I<iovec> structures as defined in "
12430 "I<E<lt>sys/uio.hE<gt>>:"
12431 msgstr ""
12432 "ポインタ I<iov> は I<iovec> 構造体の配列を指す。 I<iovec> 構造体は "
12433 "I<E<lt>sys/uio.hE<gt>> で以下のように定義されている:"
12434
12435 #. type: Plain text
12436 #: build/C/man2/vmsplice.2:71
12437 #, no-wrap
12438 msgid ""
12439 "struct iovec {\n"
12440 "    void  *iov_base;            /* Starting address */\n"
12441 "    size_t iov_len;             /* Number of bytes */\n"
12442 "};\n"
12443 msgstr ""
12444 "struct iovec {\n"
12445 "    void  *iov_base;            /* 開始アドレス */\n"
12446 "    size_t iov_len;             /* バイト数 */\n"
12447 "};\n"
12448
12449 #. type: Plain text
12450 #: build/C/man2/vmsplice.2:84
12451 msgid "Unused for B<vmsplice>(); see B<splice>(2)."
12452 msgstr "B<vmsplice>()  では未使用。 B<splice>(2)  参照。"
12453
12454 #. type: Plain text
12455 #: build/C/man2/vmsplice.2:97
12456 msgid ""
12457 "Currently has no effect for B<vmsplice>(), but may be implemented in the "
12458 "future; see B<splice>(2)."
12459 msgstr ""
12460 "現在のところ B<vmsplice>()  では何の効果もないが、将来的には実装される可能性"
12461 "がある。 B<splice>(2)  参照。"
12462
12463 #.  FIXME Explain the following line in a little more detail:
12464 #.  .... if we expect to later SPLICE_F_MOVE to the cache.
12465 #. type: Plain text
12466 #: build/C/man2/vmsplice.2:113
12467 msgid ""
12468 "The user pages are a gift to the kernel.  The application may not modify "
12469 "this memory ever, or page cache and on-disk data may differ.  Gifting pages "
12470 "to the kernel means that a subsequent B<splice>(2)  B<SPLICE_F_MOVE> can "
12471 "successfully move the pages; if this flag is not specified, then a "
12472 "subsequent B<splice>(2)  B<SPLICE_F_MOVE> must copy the pages.  Data must "
12473 "also be properly page aligned, both in memory and length."
12474 msgstr ""
12475 "ユーザ・ページがカーネルへ渡すもの (gift) であることを示す。 アプリケーション"
12476 "はこのメモリを絶対に変更してはならない。 さもなければ、ページキャッシュとディ"
12477 "スク上のデータは 一致しなくなるだろう。 ページをカーネルに渡すと、この次の "
12478 "B<splice>(2)  B<SPLICE_F_MOVE> でそのページの移動を行うことができる。 このフ"
12479 "ラグが指定されなかった場合、この次の B<splice>(2)  B<SPLICE_F_MOVE> でその"
12480 "ページのコピーを行わなければならない。 データはメモリ上でページ境界にあってい"
12481 "なければならず、 長さもページ境界の倍数でなければならない。"
12482
12483 #. type: Plain text
12484 #: build/C/man2/vmsplice.2:122
12485 msgid ""
12486 "Upon successful completion, B<vmsplice>()  returns the number of bytes "
12487 "transferred to the pipe.  On error, B<vmsplice>()  returns -1 and I<errno> "
12488 "is set to indicate the error."
12489 msgstr ""
12490 "成功して完了すると、 B<vmsplice>()  はパイプに転送したバイト数を返す。 エラー"
12491 "の場合、 B<vmplice>()  は -1 を返し、 I<errno> をエラーを示す値に設定する。"
12492
12493 #. type: Plain text
12494 #: build/C/man2/vmsplice.2:127
12495 msgid "I<fd> either not valid, or doesn't refer to a pipe."
12496 msgstr "I<fd> が有効でない、もしくはパイプを参照していない。"
12497
12498 #. type: Plain text
12499 #: build/C/man2/vmsplice.2:135
12500 msgid ""
12501 "I<nr_segs> is 0 or greater than B<IOV_MAX>; or memory not aligned if "
12502 "B<SPLICE_F_GIFT> set."
12503 msgstr ""
12504 "I<nr_segs> が 0 もしくは B<IOV_MAX> よりも大きい。または B<SPLICE_F_GIFT> が"
12505 "設定されたがメモリがページ境界にあっていない。"
12506
12507 #. type: Plain text
12508 #: build/C/man2/vmsplice.2:143
12509 msgid ""
12510 "The B<vmsplice>()  system call first appeared in Linux 2.6.17; library "
12511 "support was added to glibc in version 2.5."
12512 msgstr ""
12513 "B<vmsplice>() システムコールは Linux 2.6.17 で初めて登場した。\n"
12514 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
12515
12516 #. type: Plain text
12517 #: build/C/man2/vmsplice.2:154
12518 msgid ""
12519 "B<vmsplice>()  follows the other vectorized read/write type functions when "
12520 "it comes to limitations on number of segments being passed in.  This limit "
12521 "is B<IOV_MAX> as defined in I<E<lt>limits.hE<gt>>.  At the time of this "
12522 "writing, that limit is 1024."
12523 msgstr ""
12524 "指定されたセグメント数が上限に達した場合、 B<vmsplice>()  は他のベクトル形式"
12525 "の read/write を行う関数と同じ動作をする。 上限は B<IOV_MAX> であり、 "
12526 "I<E<lt>limits.hE<gt>> で定義されている。 このドキュメントを書いた時点での値"
12527 "は 1024 である。"
12528
12529 #. type: Plain text
12530 #: build/C/man2/vmsplice.2:157
12531 msgid "B<splice>(2), B<tee>(2)"
12532 msgstr "B<splice>(2), B<tee>(2)"
12533
12534 #~ msgid "2013-09-04"
12535 #~ msgstr "2013-09-04"
12536
12537 #~ msgid "2013-09-13"
12538 #~ msgstr "2013-09-13"
12539
12540 #~ msgid "2013-07-11"
12541 #~ msgstr "2013-07-11"
12542
12543 #, fuzzy
12544 #~| msgid ""
12545 #~| "On success, B<PTRACE_PEEK*> requests return the requested data, while "
12546 #~| "other requests return zero.  On error, all requests return -1, and "
12547 #~| "I<errno> is set appropriately.  Since the value returned by a successful "
12548 #~| "B<PTRACE_PEEK*> request may be -1, the caller must check I<errno> after "
12549 #~| "such requests to determine whether or not an error occurred."
12550 #~ msgid ""
12551 #~ "On success, B<PTRACE_PEEK*> requests return the requested data, while "
12552 #~ "other requests return zero.  (On Linux, this is done in the libc wrapper "
12553 #~ "around ptrace system call.  On the system call level, B<PTRACE_PEEK*> "
12554 #~ "requests have a different API: they store the result at the address "
12555 #~ "specified by I<data> parameter, and return value is the error flag.)"
12556 #~ msgstr ""
12557 #~ "成功すると、 B<PTRACE_PEEK*> の場合は要求したデータを返し、 それ以外の場合"
12558 #~ "は 0 を返す。 エラーの場合は -1 を返し、 I<errno> が適切に設定される。 "
12559 #~ "B<PTRACE_PEEK*> が成功して返す値も -1 になることがあるため、 そのような要"
12560 #~ "求の場合には、呼び出し元は I<errno> を調べ、エラーか発生したのかどうかを判"
12561 #~ "断しなければならない。"
12562
12563 #~ msgid ""
12564 #~ "Depending on which operation was executed, the returned value for a "
12565 #~ "successful call can have differing meanings."
12566 #~ msgstr "どの操作が実行されたかによって、 成功時の返り値の意味が変わる。"
12567
12568 #~ msgid ""
12569 #~ "Returns 0 if the process was woken by a B<FUTEX_WAKE> call.  In case of "
12570 #~ "timeout, the operation fails with the error B<ETIMEDOUT>.  If the futex "
12571 #~ "was not equal to the expected value, the operation fails with the error "
12572 #~ "B<EWOULDBLOCK>.  Signals (see B<signal>(7))  or other spurious wakeups "
12573 #~ "cause B<FUTEX_WAIT> to fail with the error B<EINTR>."
12574 #~ msgstr ""
12575 #~ "プロセスが B<FUTEX_WAKE> の呼び出しで wake すると 0 を返す。 タイムアウト"
12576 #~ "の場合、操作はエラー B<ETIMEOUT> で失敗する。 futex が指定された値と等しく"
12577 #~ "ない場合、 エラー B<EWOULDBLOCK> で失敗する。 シグナルを受信するか "
12578 #~ "(B<signal>(7)  参照) 他の偽の wake があった場合には、エラー B<EINTR> で失"
12579 #~ "敗する。"
12580
12581 #~ msgid "An operation was not defined or error in page alignment."
12582 #~ msgstr ""
12583 #~ "操作が定義されていない。またはページ・アラインメントでエラーが発生した。"
12584
12585 #, fuzzy
12586 #~| msgid ""
12587 #~| "Indicates that this process is to be traced by its parent.  Any signal "
12588 #~| "(except B<SIGKILL>)  delivered to this process will cause it to stop and "
12589 #~| "its parent to be notified via B<wait>(2).  Also, all subsequent calls to "
12590 #~| "B<execve>(2)  by this process will cause a B<SIGTRAP> to be sent to it, "
12591 #~| "giving the parent a chance to gain control before the new program begins "
12592 #~| "execution.  A process probably shouldn't make this request if its parent "
12593 #~| "isn't expecting to trace it.  (I<pid>, I<addr>, and I<data> are ignored.)"
12594 #~ msgid ""
12595 #~ "Indicate that this process is to be traced by its parent.  Any signal "
12596 #~ "(except B<SIGKILL>)  delivered to this process will cause it to stop and "
12597 #~ "its parent to be notified via B<waitpid>(2).  In addition, all subsequent "
12598 #~ "calls to B<execve>(2)  by the traced process will cause a B<SIGTRAP> to "
12599 #~ "be sent to it, giving the parent a chance to gain control before the new "
12600 #~ "program begins execution.  A process probably shouldn't make this request "
12601 #~ "if its parent isn't expecting to trace it.  (I<pid>, I<addr>, and I<data> "
12602 #~ "are ignored.)"
12603 #~ msgstr ""
12604 #~ "このプロセスが親プロセスによってトレースされることを表す。 このプロセスに "
12605 #~ "(B<SIGKILL> 以外の) シグナルが配送されると、 プロセスは停止し、親プロセス"
12606 #~ "に B<wait>(2)  を通じて通知される。 また、これ以降はこのプロセスが "
12607 #~ "B<execve>(2)  を呼び出す度に B<SIGTRAP> が送信されるようになる。 これに"
12608 #~ "よって、親プロセスは 新しいプログラムが実行を開始する前に制御することがで"
12609 #~ "きる。 親プロセスが自プロセスをトレースするつもりがない場合には、 おそらく"
12610 #~ "このプロセスは本要求を行うべきではないだろう。 (I<pid>, I<addr>, I<data> "
12611 #~ "は無視される。)"
12612
12613 #~ msgid ""
12614 #~ "Stop the child at the next B<execve>(2)  call with I<SIGTRAP | "
12615 #~ "PTRACE_EVENT_EXEC\\ E<lt>E<lt>\\ 8>."
12616 #~ msgstr ""
12617 #~ "次の B<execve>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_EXEC\\ E<lt>E<lt>"
12618 #~ "\\ 8> で子プロセスの動作を停止させる。"
12619
12620 #~ msgid ""
12621 #~ "Stop the child at the completion of the next B<vfork>(2)  call with "
12622 #~ "I<SIGTRAP | PTRACE_EVENT_VFORK_DONE\\ E<lt>E<lt>\\ 8>."
12623 #~ msgstr ""
12624 #~ "次の B<vfork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_VFORK_DONE\\ "
12625 #~ "E<lt>E<lt>\\ 8> で子プロセスの動作を停止させる。"
12626
12627 #~ msgid ""
12628 #~ "Attaches to the process specified in I<pid>, making it a traced \"child\" "
12629 #~ "of the calling process; the behavior of the child is as if it had done a "
12630 #~ "B<PTRACE_TRACEME>.  The calling process actually becomes the parent of "
12631 #~ "the child process for most purposes (e.g., it will receive notification "
12632 #~ "of child events and appears in B<ps>(1)  output as the child's parent), "
12633 #~ "but a B<getppid>(2)  by the child will still return the PID of the "
12634 #~ "original parent.  The child is sent a B<SIGSTOP>, but will not "
12635 #~ "necessarily have stopped by the completion of this call; use B<wait>(2)  "
12636 #~ "to wait for the child to stop.  (I<addr> and I<data> are ignored.)"
12637 #~ msgstr ""
12638 #~ "I<pid> で指定されたプロセスに接続 (attach) し、それを呼び出し元のプロセス"
12639 #~ "の 子プロセスとしてトレースできるようにする。子プロセスは "
12640 #~ "B<PTRACE_TRACEME> したかのように振舞う。呼び出し元のプロセスはそのほとんど"
12641 #~ "の目的において、 その子プロセスの実際の親になる (例えば、子プロセスのイベ"
12642 #~ "ントの 通知を受けとったり、 B<ps>(1)  で親として表示されたりする)。しか"
12643 #~ "し、子プロセスで B<getppid>(2)  を実行した場合には元の親プロセスの PID が"
12644 #~ "返される。 子プロセスには B<SIGSTOP> が送られるが、この呼び出しが完了する"
12645 #~ "までに 必ずしも停止するとは限らない。子プロセスの停止を待つには B<wait>"
12646 #~ "(2)  を使用すること。(I<addr> と I<data> は無視される。)"
12647
12648 #~ msgid ""
12649 #~ "Tracing causes a few subtle differences in the semantics of traced "
12650 #~ "processes.  For example, if a process is attached to with "
12651 #~ "B<PTRACE_ATTACH>, its original parent can no longer receive notification "
12652 #~ "via B<wait>(2)  when it stops, and there is no way for the new parent to "
12653 #~ "effectively simulate this notification."
12654 #~ msgstr ""
12655 #~ "トレースすることによってトレースされるプロセスの動作に些細な違いが 起こる"
12656 #~ "ことがある。例えば、プロセスが B<PTRACE_ATTACH> によって接続された場合に"
12657 #~ "は、そのプロセスが停止した時でも本来の親は B<wait>(2)  を使って通知を受け"
12658 #~ "ることができず、新しい親が効率よく この通知を真似る方法もない。"
12659
12660 #~ msgid ""
12661 #~ "When the parent receives an event with B<PTRACE_EVENT_*> set, the child "
12662 #~ "is not in the normal signal delivery path.  This means the parent cannot "
12663 #~ "do B<ptrace>(PTRACE_CONT)  with a signal or B<ptrace>(PTRACE_KILL).  "
12664 #~ "B<kill>(2)  with a B<SIGKILL> signal can be used instead to kill the "
12665 #~ "child process after receiving one of these messages."
12666 #~ msgstr ""
12667 #~ "親プロセスが B<PTRACE_EVENT_*> がセットされたイベントを受信した場合、 子プ"
12668 #~ "ロセスは通常通りのシグナル配送が行われる状態にない。 つまり、親プロセス"
12669 #~ "が、 シグナルにより B<ptrace>(PTRACE_CONT)  を行ったり、 B<ptrace>"
12670 #~ "(PTRACE_KILL)  を行ったりできないということである。 こららのメッセージの受"
12671 #~ "信後は、子プロセスを終了 (kill) するのに、 シグナル B<SIGKILL> を指定して "
12672 #~ "B<kill>(2)  を行う方法を代わりに使用できる。"
12673
12674 #~ msgid ""
12675 #~ "The SunOS man page describes B<ptrace>()  as \"unique and arcane\", which "
12676 #~ "it is.  The proc-based debugging interface present in Solaris 2 "
12677 #~ "implements a superset of B<ptrace>()  functionality in a more powerful "
12678 #~ "and uniform way."
12679 #~ msgstr ""
12680 #~ "SunOS のマニュアル・ページには B<ptrace>()  は「独特で不可解」と記述されて"
12681 #~ "おり、まさしくそうである。 Solaris 2 では proc ベースの デバッグのインター"
12682 #~ "フェースとして B<ptrace>()  の上位互換関数が実装され、より強力で一貫性のあ"
12683 #~ "るものとなっている。"
12684
12685 #~ msgid ""
12686 #~ "The second argument I<special> is the block special device these quota "
12687 #~ "apply to.  It must be mounted."
12688 #~ msgstr ""
12689 #~ "二番目の引き数 I<special> は quota を適用するデバイスのブロック・スペシャ"
12690 #~ "ル・ファイルである。 そのデバイスはマウントされていなくてはならない。"
12691
12692 #~ msgid ""
12693 #~ "The third argument I<id> is the user or group ID these quota apply to "
12694 #~ "(when relevant)."
12695 #~ msgstr ""
12696 #~ "三番目の引き数 I<id> には、(必要な場合に) quota を適用するユーザーもしくは"
12697 #~ "グループの ID を指定する。"
12698
12699 #~ msgid ""
12700 #~ "The fourth argument I<addr> is the address of a data structure, depending "
12701 #~ "on the command."
12702 #~ msgstr ""
12703 #~ "四番目の引き数 I<addr> には、コマンドごとに異ったデータ構造体のアドレスを"
12704 #~ "指定する。"
12705
12706 #~ msgid ""
12707 #~ "Enable quota.  The I<addr> argument is the pathname of the file "
12708 #~ "containing the quota for the file system."
12709 #~ msgstr ""
12710 #~ "quota を有効にする。 I<addr> 引き数には、そのファイル・システムの quota が"
12711 #~ "記録されているファイルの パス名を指定する。"
12712
12713 #~ msgid "Disable quota."
12714 #~ msgstr "quota を無効にする。"
12715
12716 #~ msgid "Set limits and current usage; I<addr> is as before."
12717 #~ msgstr "制限値と現在の使用量を設定する: I<addr> は同上。"
12718
12719 #~ msgid "Set limits; I<addr> is as before."
12720 #~ msgstr "制限値を設定する; I<addr> は同上。"
12721
12722 #~ msgid "Set usage."
12723 #~ msgstr "使用量を設定する。"
12724
12725 #~ msgid "Sync disk copy of a file system's quota."
12726 #~ msgstr "ファイル・システムの quota ファイルをディスクと同期させる。"
12727
12728 #~ msgid "Get collected stats."
12729 #~ msgstr "収集された統計を取得する。"
12730
12731 #~ msgid ""
12732 #~ "On success, B<quotactl>()  returns 0.  On error, -1 is returned, and "
12733 #~ "I<errno> is set appropriately."
12734 #~ msgstr ""
12735 #~ "B<quotactl>()  は、成功時には 0 を返す。エラー時は、-1 を返すとともに、 "
12736 #~ "I<errno> が適切な値に設定される。"
12737
12738 #~ msgid "B<Q_QUOTAON> was asked, but quotas were enabled already."
12739 #~ msgstr "B<Q_QUOTAON> の要求がなされたが、quota(s) は既に有効になっている。"
12740
12741 #~ msgid "Bad I<addr> value."
12742 #~ msgstr "I<addr> の値に誤りがある。"
12743
12744 #~ msgid ""
12745 #~ "I<type> is not a known quota type.  Or, I<special> could not be found."
12746 #~ msgstr ""
12747 #~ "I<type> が既知の quota の形式ではない。もしくは、 I<special> デバイスが見"
12748 #~ "付からなかった。"
12749
12750 #~ msgid "Too many open files: cannot open quota file."
12751 #~ msgstr "ファイルをオープンしすぎている: quota ファイルをオープン出来ない。"
12752
12753 #~ msgid "I<special> cannot be found in the mount table."
12754 #~ msgstr "I<special> がマウント・テーブル内に見当たらない。"
12755
12756 #~ msgid "The kernel was compiled without quota support."
12757 #~ msgstr "quota を使用可にしてカーネルをコンパイルしていない。"
12758
12759 #~ msgid ""
12760 #~ "The process was not root (for the file system), and B<Q_GETQUOTA> was "
12761 #~ "asked for another I<id> than that of the process itself, or anything "
12762 #~ "other than B<Q_GETSTATS> or B<Q_SYNC> was asked."
12763 #~ msgstr ""
12764 #~ "プロセスが (そのファイル・システムの) root のものではなく、 かつプロセス自"
12765 #~ "身のものとは異なる I<id> に対して B<Q_GETQUOTA> 要求を行なった。 もしく"
12766 #~ "は、 B<Q_GETSTATS>, B<Q_SYNC> 以外の要求がなされた。"
12767
12768 #~ msgid ""
12769 #~ "B<Q_GETQUOTA> or B<Q_SETQUOTA> or B<Q_SETUSE> or B<Q_SETQLIM> was asked "
12770 #~ "for a file system that didn't have quota enabled."
12771 #~ msgstr ""
12772 #~ "quota が有効になっていないファイル・システムに対して B<Q_GETQUOTA>, "
12773 #~ "B<Q_SETQUOTA>, B<Q_SETUSE>, B<Q_SETQLIM> のいずれかの要求がなされた。"