OSDN Git Service

(split) LDP: Update POT and ja.po to LDP v3.54
[linuxjm/LDP_man-pages.git] / po4a / man2 / po / ja.po
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2013-09-28 04:05+0900\n"
10 "PO-Revision-Date: 2013-08-16 14:23+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man2/arch_prctl.2:25
20 #, no-wrap
21 msgid "ARCH_PRCTL"
22 msgstr "ARCH_PRCTL"
23
24 #. type: TH
25 #: build/C/man2/arch_prctl.2:25
26 #, no-wrap
27 msgid "2007-12-26"
28 msgstr "2007-12-26"
29
30 #. type: TH
31 #: build/C/man2/arch_prctl.2:25 build/C/man2/futex.2:53
32 #: build/C/man2/get_robust_list.2:29 build/C/man2/getunwind.2:27
33 #: build/C/man2/kexec_load.2:26 build/C/man2/lookup_dcookie.2:27
34 #: build/C/man2/modify_ldt.2:24 build/C/man2/nfsservctl.2:8
35 #: build/C/man2/outb.2:26 build/C/man2/pciconfig_read.2:8
36 #: build/C/man2/perf_event_open.2:27 build/C/man2/perfmonctl.2:27
37 #: build/C/man2/personality.2:32 build/C/man2/pivot_root.2:10
38 #: build/C/man2/process_vm_readv.2:29 build/C/man2/ptrace.2:44
39 #: build/C/man2/quotactl.2:27 build/C/man2/sendfile.2:19
40 #: build/C/man2/set_tid_address.2:25 build/C/man2/splice.2:26
41 #: build/C/man2/tee.2:26 build/C/man2/vm86.2:26 build/C/man2/vmsplice.2:26
42 #, no-wrap
43 msgid "Linux"
44 msgstr "Linux"
45
46 #. type: TH
47 #: build/C/man2/arch_prctl.2:25 build/C/man2/futex.2:53
48 #: build/C/man2/getunwind.2:27 build/C/man2/kexec_load.2:26
49 #: build/C/man2/lookup_dcookie.2:27 build/C/man2/modify_ldt.2:24
50 #: build/C/man2/nfsservctl.2:8 build/C/man2/outb.2:26
51 #: build/C/man2/pciconfig_read.2:8 build/C/man2/perf_event_open.2:27
52 #: build/C/man2/perfmonctl.2:27 build/C/man2/personality.2:32
53 #: build/C/man2/pivot_root.2:10 build/C/man2/process_vm_readv.2:29
54 #: build/C/man2/ptrace.2:44 build/C/man2/quotactl.2:27
55 #: build/C/man2/sendfile.2:19 build/C/man2/set_tid_address.2:25
56 #: build/C/man2/splice.2:26 build/C/man2/tee.2:26 build/C/man2/vm86.2:26
57 #: build/C/man2/vmsplice.2:26
58 #, no-wrap
59 msgid "Linux Programmer's Manual"
60 msgstr "Linux Programmer's Manual"
61
62 #. type: SH
63 #: build/C/man2/arch_prctl.2:26 build/C/man2/futex.2:54
64 #: build/C/man2/get_robust_list.2:30 build/C/man2/getunwind.2:28
65 #: build/C/man2/kexec_load.2:27 build/C/man2/lookup_dcookie.2:28
66 #: build/C/man2/modify_ldt.2:25 build/C/man2/nfsservctl.2:9
67 #: build/C/man2/outb.2:27 build/C/man2/pciconfig_read.2:9
68 #: build/C/man2/perf_event_open.2:28 build/C/man2/perfmonctl.2:28
69 #: build/C/man2/personality.2:33 build/C/man2/pivot_root.2:11
70 #: build/C/man2/process_vm_readv.2:30 build/C/man2/ptrace.2:45
71 #: build/C/man2/quotactl.2:28 build/C/man2/sendfile.2:20
72 #: build/C/man2/set_tid_address.2:26 build/C/man2/splice.2:27
73 #: build/C/man2/tee.2:27 build/C/man2/vm86.2:27 build/C/man2/vmsplice.2:27
74 #, no-wrap
75 msgid "NAME"
76 msgstr "名前"
77
78 #. type: Plain text
79 #: build/C/man2/arch_prctl.2:28
80 msgid "arch_prctl - set architecture-specific thread state"
81 msgstr "arch_prctl - アーキテクチャ固有のスレッド状態を設定する"
82
83 #. type: SH
84 #: build/C/man2/arch_prctl.2:28 build/C/man2/futex.2:56
85 #: build/C/man2/get_robust_list.2:32 build/C/man2/getunwind.2:30
86 #: build/C/man2/kexec_load.2:29 build/C/man2/lookup_dcookie.2:30
87 #: build/C/man2/modify_ldt.2:27 build/C/man2/nfsservctl.2:11
88 #: build/C/man2/outb.2:31 build/C/man2/pciconfig_read.2:11
89 #: build/C/man2/perf_event_open.2:30 build/C/man2/perfmonctl.2:30
90 #: build/C/man2/personality.2:35 build/C/man2/pivot_root.2:13
91 #: build/C/man2/process_vm_readv.2:32 build/C/man2/ptrace.2:47
92 #: build/C/man2/quotactl.2:30 build/C/man2/sendfile.2:22
93 #: build/C/man2/set_tid_address.2:28 build/C/man2/splice.2:29
94 #: build/C/man2/tee.2:29 build/C/man2/vm86.2:29 build/C/man2/vmsplice.2:29
95 #, no-wrap
96 msgid "SYNOPSIS"
97 msgstr "書式"
98
99 #. type: Plain text
100 #: build/C/man2/arch_prctl.2:31
101 #, no-wrap
102 msgid "B<#include E<lt>asm/prctl.hE<gt>>\n"
103 msgstr "B<#include E<lt>asm/prctl.hE<gt>>\n"
104
105 #. type: Plain text
106 #: build/C/man2/arch_prctl.2:33
107 #, no-wrap
108 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
109 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
110
111 #. type: Plain text
112 #: build/C/man2/arch_prctl.2:36
113 #, no-wrap
114 msgid ""
115 "B<int arch_prctl(int >I<code>B<, unsigned long >I<addr>B<);>\n"
116 "B<int arch_prctl(int >I<code>B<, unsigned long *>I<addr>B<);>\n"
117 msgstr "B<int arch_prctl(int >I<code>B<, unsigned long *>I<addr>B<);>\n"
118
119 #.  Return type was long before glibc 2.7
120 #. type: SH
121 #: build/C/man2/arch_prctl.2:37 build/C/man2/futex.2:68
122 #: build/C/man2/get_robust_list.2:44 build/C/man2/getunwind.2:40
123 #: build/C/man2/kexec_load.2:39 build/C/man2/lookup_dcookie.2:32
124 #: build/C/man2/modify_ldt.2:36 build/C/man2/nfsservctl.2:18
125 #: build/C/man2/outb.2:62 build/C/man2/pciconfig_read.2:22
126 #: build/C/man2/perf_event_open.2:42 build/C/man2/perfmonctl.2:39
127 #: build/C/man2/personality.2:39 build/C/man2/pivot_root.2:18
128 #: build/C/man2/process_vm_readv.2:50 build/C/man2/ptrace.2:54
129 #: build/C/man2/quotactl.2:38 build/C/man2/sendfile.2:47
130 #: build/C/man2/set_tid_address.2:34 build/C/man2/splice.2:39
131 #: build/C/man2/tee.2:38 build/C/man2/vm86.2:35 build/C/man2/vmsplice.2:39
132 #, no-wrap
133 msgid "DESCRIPTION"
134 msgstr "説明"
135
136 #. type: Plain text
137 #: build/C/man2/arch_prctl.2:52
138 msgid ""
139 "The B<arch_prctl>()  function sets architecture-specific process or thread "
140 "state.  I<code> selects a subfunction and passes argument I<addr> to it; "
141 "I<addr> is interpreted as either an I<unsigned long> for the \"set\" "
142 "operations, or as an I<unsigned long\\ *>, for the \"get\" operations."
143 msgstr ""
144 "B<arch_prctl>()  関数はアーキテクチャ固有のプロセス状態またはスレッド状態を設"
145 "定する。 I<code> は副機能を選択し、引き数 I<addr> を副機能に渡す。 I<addr> "
146 "は、\"set\" 操作では I<unsigned long> として、\"get\" 操作では I<unsigned "
147 "long\\ *> として解釈される。"
148
149 #. type: Plain text
150 #: build/C/man2/arch_prctl.2:54
151 msgid "Subfunctions for x86-64 are:"
152 msgstr "x86-64 の副機能は以下の通り:"
153
154 #. type: TP
155 #: build/C/man2/arch_prctl.2:54
156 #, no-wrap
157 msgid "B<ARCH_SET_FS>"
158 msgstr "B<ARCH_SET_FS>"
159
160 #. type: Plain text
161 #: build/C/man2/arch_prctl.2:60
162 msgid "Set the 64-bit base for the I<FS> register to I<addr>."
163 msgstr "I<FS> レジスタの 64 ビットベースを I<addr> に設定する。"
164
165 #. type: TP
166 #: build/C/man2/arch_prctl.2:60
167 #, no-wrap
168 msgid "B<ARCH_GET_FS>"
169 msgstr "B<ARCH_GET_FS>"
170
171 #. type: Plain text
172 #: build/C/man2/arch_prctl.2:68
173 msgid ""
174 "Return the 64-bit base value for the I<FS> register of the current thread in "
175 "the I<unsigned long> pointed to by I<addr>."
176 msgstr ""
177 "現在のスレッドの I<FS> レジスタの 64 ビットベース値を、 I<addr> が指す "
178 "I<unsigned long> の領域に格納する。"
179
180 #. type: TP
181 #: build/C/man2/arch_prctl.2:68
182 #, no-wrap
183 msgid "B<ARCH_SET_GS>"
184 msgstr "B<ARCH_SET_GS>"
185
186 #. type: Plain text
187 #: build/C/man2/arch_prctl.2:74
188 msgid "Set the 64-bit base for the I<GS> register to I<addr>."
189 msgstr "I<GS> レジスタの 64 ビットベースを I<addr> に設定する。"
190
191 #. type: TP
192 #: build/C/man2/arch_prctl.2:74
193 #, no-wrap
194 msgid "B<ARCH_GET_GS>"
195 msgstr "B<ARCH_GET_GS>"
196
197 #. type: Plain text
198 #: build/C/man2/arch_prctl.2:82
199 msgid ""
200 "Return the 64-bit base value for the I<GS> register of the current thread in "
201 "the I<unsigned long> pointed to by I<addr>."
202 msgstr ""
203 "現在のスレッドの I<GS> レジスタの 64 ビットベース値を、 I<addr> が指す "
204 "I<unsigned long> の領域に格納する。"
205
206 #. type: SH
207 #: build/C/man2/arch_prctl.2:82 build/C/man2/futex.2:214
208 #: build/C/man2/get_robust_list.2:77 build/C/man2/getunwind.2:81
209 #: build/C/man2/kexec_load.2:114 build/C/man2/lookup_dcookie.2:43
210 #: build/C/man2/modify_ldt.2:98 build/C/man2/nfsservctl.2:53
211 #: build/C/man2/pciconfig_read.2:50 build/C/man2/perf_event_open.2:2116
212 #: build/C/man2/perfmonctl.2:190 build/C/man2/personality.2:57
213 #: build/C/man2/pivot_root.2:101 build/C/man2/process_vm_readv.2:209
214 #: build/C/man2/ptrace.2:1780 build/C/man2/quotactl.2:419
215 #: build/C/man2/sendfile.2:108 build/C/man2/set_tid_address.2:88
216 #: build/C/man2/splice.2:127 build/C/man2/tee.2:85 build/C/man2/vm86.2:54
217 #: build/C/man2/vmsplice.2:113
218 #, no-wrap
219 msgid "RETURN VALUE"
220 msgstr "返り値"
221
222 #. type: Plain text
223 #: build/C/man2/arch_prctl.2:88
224 msgid ""
225 "On success, B<arch_prctl>()  returns 0; on error, -1 is returned, and "
226 "I<errno> is set to indicate the error."
227 msgstr ""
228 "成功すると、 B<arch_prctl>()  は 0 を返す。エラーの場合、-1 を返し、 "
229 "I<errno> をエラーを示す値に設定する。"
230
231 #. type: SH
232 #: build/C/man2/arch_prctl.2:88 build/C/man2/futex.2:239
233 #: build/C/man2/get_robust_list.2:84 build/C/man2/getunwind.2:88
234 #: build/C/man2/kexec_load.2:121 build/C/man2/lookup_dcookie.2:50
235 #: build/C/man2/modify_ldt.2:108 build/C/man2/pciconfig_read.2:77
236 #: build/C/man2/perf_event_open.2:2122 build/C/man2/personality.2:64
237 #: build/C/man2/pivot_root.2:105 build/C/man2/process_vm_readv.2:229
238 #: build/C/man2/ptrace.2:1801 build/C/man2/quotactl.2:427
239 #: build/C/man2/sendfile.2:115 build/C/man2/set_tid_address.2:91
240 #: build/C/man2/splice.2:142 build/C/man2/tee.2:100 build/C/man2/vm86.2:59
241 #: build/C/man2/vmsplice.2:122
242 #, no-wrap
243 msgid "ERRORS"
244 msgstr "エラー"
245
246 #. type: TP
247 #: build/C/man2/arch_prctl.2:89 build/C/man2/futex.2:254
248 #: build/C/man2/get_robust_list.2:111 build/C/man2/lookup_dcookie.2:51
249 #: build/C/man2/modify_ldt.2:109 build/C/man2/process_vm_readv.2:251
250 #: build/C/man2/process_vm_readv.2:256 build/C/man2/ptrace.2:1805
251 #: build/C/man2/quotactl.2:428 build/C/man2/sendfile.2:125
252 #: build/C/man2/vm86.2:60
253 #, no-wrap
254 msgid "B<EFAULT>"
255 msgstr "B<EFAULT>"
256
257 #. type: Plain text
258 #: build/C/man2/arch_prctl.2:93
259 msgid ""
260 "I<addr> points to an unmapped address or is outside the process address "
261 "space."
262 msgstr ""
263 "I<addr> がアンマップされたアドレスを指しているか、プロセスのアドレス空間の外"
264 "にある。"
265
266 #. type: TP
267 #: build/C/man2/arch_prctl.2:93 build/C/man2/futex.2:266
268 #: build/C/man2/get_robust_list.2:88 build/C/man2/kexec_load.2:126
269 #: build/C/man2/lookup_dcookie.2:54 build/C/man2/modify_ldt.2:113
270 #: build/C/man2/pciconfig_read.2:78 build/C/man2/perf_event_open.2:2123
271 #: build/C/man2/personality.2:65 build/C/man2/pivot_root.2:114
272 #: build/C/man2/process_vm_readv.2:230 build/C/man2/process_vm_readv.2:241
273 #: build/C/man2/process_vm_readv.2:245 build/C/man2/ptrace.2:1816
274 #: build/C/man2/quotactl.2:434 build/C/man2/quotactl.2:501
275 #: build/C/man2/sendfile.2:128 build/C/man2/splice.2:147
276 #: build/C/man2/tee.2:101 build/C/man2/vmsplice.2:127
277 #, no-wrap
278 msgid "B<EINVAL>"
279 msgstr "B<EINVAL>"
280
281 #. type: Plain text
282 #: build/C/man2/arch_prctl.2:97
283 msgid "I<code> is not a valid subcommand."
284 msgstr "I<code> が有効なサブコマンドでない。"
285
286 #. type: TP
287 #: build/C/man2/arch_prctl.2:97 build/C/man2/get_robust_list.2:98
288 #: build/C/man2/kexec_load.2:133 build/C/man2/lookup_dcookie.2:65
289 #: build/C/man2/pciconfig_read.2:105 build/C/man2/pivot_root.2:120
290 #: build/C/man2/process_vm_readv.2:267 build/C/man2/ptrace.2:1826
291 #: build/C/man2/quotactl.2:456 build/C/man2/vm86.2:68
292 #, no-wrap
293 msgid "B<EPERM>"
294 msgstr "B<EPERM>"
295
296 #.  .SH AUTHOR
297 #.  Man page written by Andi Kleen.
298 #. type: Plain text
299 #: build/C/man2/arch_prctl.2:103
300 msgid "I<addr> is outside the process address space."
301 msgstr "I<addr> がプロセスのアドレス空間の外にある。"
302
303 #. type: SH
304 #: build/C/man2/arch_prctl.2:103 build/C/man2/futex.2:301
305 #: build/C/man2/getunwind.2:96 build/C/man2/kexec_load.2:142
306 #: build/C/man2/lookup_dcookie.2:78 build/C/man2/modify_ldt.2:130
307 #: build/C/man2/nfsservctl.2:58 build/C/man2/outb.2:87
308 #: build/C/man2/pciconfig_read.2:112 build/C/man2/perf_event_open.2:2141
309 #: build/C/man2/perfmonctl.2:199 build/C/man2/personality.2:68
310 #: build/C/man2/pivot_root.2:128 build/C/man2/process_vm_readv.2:279
311 #: build/C/man2/ptrace.2:1844 build/C/man2/sendfile.2:148
312 #: build/C/man2/set_tid_address.2:97 build/C/man2/splice.2:170
313 #: build/C/man2/tee.2:119 build/C/man2/vm86.2:73 build/C/man2/vmsplice.2:143
314 #, no-wrap
315 msgid "CONFORMING TO"
316 msgstr "準拠"
317
318 #. type: Plain text
319 #: build/C/man2/arch_prctl.2:107
320 msgid ""
321 "B<arch_prctl>()  is a Linux/x86-64 extension and should not be used in "
322 "programs intended to be portable."
323 msgstr ""
324 "B<arch_prctl>()  は Linux/x86-64 拡張であり、移植性を意図したプログラムでは使"
325 "うべきでない。"
326
327 #. type: SH
328 #: build/C/man2/arch_prctl.2:107 build/C/man2/futex.2:303
329 #: build/C/man2/get_robust_list.2:119 build/C/man2/getunwind.2:99
330 #: build/C/man2/kexec_load.2:144 build/C/man2/lookup_dcookie.2:81
331 #: build/C/man2/modify_ldt.2:133 build/C/man2/perf_event_open.2:2146
332 #: build/C/man2/perfmonctl.2:202 build/C/man2/pivot_root.2:131
333 #: build/C/man2/process_vm_readv.2:281 build/C/man2/ptrace.2:1846
334 #: build/C/man2/sendfile.2:155 build/C/man2/splice.2:172
335 #: build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145
336 #, no-wrap
337 msgid "NOTES"
338 msgstr "注意"
339
340 #. type: Plain text
341 #: build/C/man2/arch_prctl.2:110
342 msgid ""
343 "B<arch_prctl>()  is supported only on Linux/x86-64 for 64-bit programs "
344 "currently."
345 msgstr ""
346 "B<arch_prctl>()  は現在のところ Linux/x86-64 上の 64 ビットプログラムでのみサ"
347 "ポートされている。"
348
349 #. type: Plain text
350 #: build/C/man2/arch_prctl.2:112
351 msgid "The 64-bit base changes when a new 32-bit segment selector is loaded."
352 msgstr ""
353 "新しい 32 ビットセグメントセレクタがロードされた場合、 64 ビットベースは変更"
354 "される。"
355
356 #. type: Plain text
357 #: build/C/man2/arch_prctl.2:115
358 msgid "B<ARCH_SET_GS> is disabled in some kernels."
359 msgstr "B<ARCH_SET_GS> が無効にされているカーネルもある。"
360
361 #. type: Plain text
362 #: build/C/man2/arch_prctl.2:130
363 msgid ""
364 "Context switches for 64-bit segment bases are rather expensive.  It may be a "
365 "faster alternative to set a 32-bit base using a segment selector by setting "
366 "up an LDT with B<modify_ldt>(2)  or using the B<set_thread_area>(2)  system "
367 "call in kernel 2.5 or later.  B<arch_prctl>()  is needed only when you want "
368 "to set bases that are larger than 4GB.  Memory in the first 2GB of address "
369 "space can be allocated by using B<mmap>(2)  with the B<MAP_32BIT> flag."
370 msgstr ""
371 "64 ビットセグメントベースのコンテキストスイッチは、やや高価である。 LDT を "
372 "B<modify_ldt>(2)  で設定してセグメントセレクタを使うか、 (カーネル 2.5 以降"
373 "の)  B<set_thread_area>(2)  システムコールを使うことにより、 32 ビットベース"
374 "を設定するという高速な代替手段もある。 4GB より大きなベースを設定したい場合に"
375 "のみ、 B<arch_prctl>()  が必要である。 アドレス空間の最初の 2GB にあるメモリ"
376 "は、 B<mmap>(2)  に B<MAP_32BIT> フラグを指定して割り当てることができる。"
377
378 #. type: Plain text
379 #: build/C/man2/arch_prctl.2:135
380 msgid ""
381 "As of version 2.7, glibc provides no prototype for B<arch_prctl>().  You "
382 "have to declare it yourself for now.  This may be fixed in future glibc "
383 "versions."
384 msgstr ""
385 "バージョン 2.7 時点では、glibc には B<arch_prctl>()  のプロトタイプがない。 "
386 "今のところユーザは自分自身で宣言する必要がある。 これは将来の glibc のバー"
387 "ジョンで修正されるかもしれない。"
388
389 #. type: Plain text
390 #: build/C/man2/arch_prctl.2:138
391 msgid "I<FS> may be already used by the threading library."
392 msgstr "I<FS> はスレッドライブラリで既に使われているかもしれない。"
393
394 #. type: SH
395 #: build/C/man2/arch_prctl.2:138 build/C/man2/futex.2:317
396 #: build/C/man2/get_robust_list.2:128 build/C/man2/getunwind.2:111
397 #: build/C/man2/kexec_load.2:159 build/C/man2/modify_ldt.2:136
398 #: build/C/man2/outb.2:96 build/C/man2/pciconfig_read.2:114
399 #: build/C/man2/perf_event_open.2:2266 build/C/man2/perfmonctl.2:205
400 #: build/C/man2/pivot_root.2:143 build/C/man2/process_vm_readv.2:331
401 #: build/C/man2/ptrace.2:2000 build/C/man2/quotactl.2:507
402 #: build/C/man2/sendfile.2:197 build/C/man2/set_tid_address.2:99
403 #: build/C/man2/splice.2:226 build/C/man2/tee.2:197
404 #: build/C/man2/vmsplice.2:154
405 #, no-wrap
406 msgid "SEE ALSO"
407 msgstr "関連項目"
408
409 #. type: Plain text
410 #: build/C/man2/arch_prctl.2:143
411 msgid "B<mmap>(2), B<modify_ldt>(2), B<prctl>(2), B<set_thread_area>(2)"
412 msgstr "B<mmap>(2), B<modify_ldt>(2), B<prctl>(2), B<set_thread_area>(2)"
413
414 #. type: Plain text
415 #: build/C/man2/arch_prctl.2:145
416 msgid "AMD X86-64 Programmer's manual"
417 msgstr "AMD X86-64 Programmer's manual"
418
419 #. type: SH
420 #: build/C/man2/arch_prctl.2:145 build/C/man2/futex.2:331
421 #: build/C/man2/get_robust_list.2:137 build/C/man2/getunwind.2:113
422 #: build/C/man2/kexec_load.2:162 build/C/man2/lookup_dcookie.2:88
423 #: build/C/man2/modify_ldt.2:138 build/C/man2/nfsservctl.2:60
424 #: build/C/man2/outb.2:99 build/C/man2/pciconfig_read.2:116
425 #: build/C/man2/perf_event_open.2:2272 build/C/man2/perfmonctl.2:209
426 #: build/C/man2/personality.2:72 build/C/man2/pivot_root.2:149
427 #: build/C/man2/process_vm_readv.2:334 build/C/man2/ptrace.2:2014
428 #: build/C/man2/quotactl.2:512 build/C/man2/sendfile.2:203
429 #: build/C/man2/set_tid_address.2:102 build/C/man2/splice.2:230
430 #: build/C/man2/tee.2:200 build/C/man2/vm86.2:76 build/C/man2/vmsplice.2:157
431 #, no-wrap
432 msgid "COLOPHON"
433 msgstr "この文書について"
434
435 #. type: Plain text
436 #: build/C/man2/arch_prctl.2:152 build/C/man2/futex.2:338
437 #: build/C/man2/get_robust_list.2:144 build/C/man2/getunwind.2:120
438 #: build/C/man2/kexec_load.2:169 build/C/man2/lookup_dcookie.2:95
439 #: build/C/man2/modify_ldt.2:145 build/C/man2/nfsservctl.2:67
440 #: build/C/man2/outb.2:106 build/C/man2/pciconfig_read.2:123
441 #: build/C/man2/perf_event_open.2:2279 build/C/man2/perfmonctl.2:216
442 #: build/C/man2/personality.2:79 build/C/man2/pivot_root.2:156
443 #: build/C/man2/process_vm_readv.2:341 build/C/man2/ptrace.2:2021
444 #: build/C/man2/quotactl.2:519 build/C/man2/sendfile.2:210
445 #: build/C/man2/set_tid_address.2:109 build/C/man2/splice.2:237
446 #: build/C/man2/tee.2:207 build/C/man2/vm86.2:83 build/C/man2/vmsplice.2:164
447 #, fuzzy
448 #| msgid ""
449 #| "This page is part of release 3.53 of the Linux I<man-pages> project.  A "
450 #| "description of the project, and information about reporting bugs, can be "
451 #| "found at \\%http://www.kernel.org/doc/man-pages/."
452 msgid ""
453 "This page is part of release 3.54 of the Linux I<man-pages> project.  A "
454 "description of the project, and information about reporting bugs, can be "
455 "found at \\%http://www.kernel.org/doc/man-pages/."
456 msgstr ""
457 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.53 の一部\n"
458 "である。プロジェクトの説明とバグ報告に関する情報は\n"
459 "http://www.kernel.org/doc/man-pages/ に書かれている。"
460
461 #. type: TH
462 #: build/C/man2/futex.2:53
463 #, no-wrap
464 msgid "FUTEX"
465 msgstr "FUTEX"
466
467 #. type: TH
468 #: build/C/man2/futex.2:53
469 #, fuzzy, no-wrap
470 #| msgid "2013-07-30"
471 msgid "2013-09-04"
472 msgstr "2013-07-30"
473
474 #. type: Plain text
475 #: build/C/man2/futex.2:56
476 msgid "futex - fast user-space locking"
477 msgstr "futex - 高速ユーザ空間ロック"
478
479 #. type: Plain text
480 #: build/C/man2/futex.2:61
481 #, no-wrap
482 msgid ""
483 "B<#include E<lt>linux/futex.hE<gt>>\n"
484 "B<#include E<lt>sys/time.hE<gt>>\n"
485 msgstr ""
486 "B<#include E<lt>linux/futex.hE<gt>>\n"
487 "B<#include E<lt>sys/time.hE<gt>>\n"
488
489 #. type: Plain text
490 #: build/C/man2/futex.2:64
491 #, no-wrap
492 msgid "B<int futex(int *>I<uaddr>B<, int >I<op>B<, int >I<val>B<, const struct timespec *>I<timeout>B<,>\n"
493 msgstr "B<int futex(int *>I<uaddr>B<, int >I<op>B<, int >I<val>B<, const struct timespec *>I<timeout>B<,>\n"
494
495 #.  int *? void *? u32 *?
496 #. type: Plain text
497 #: build/C/man2/futex.2:67
498 #, no-wrap
499 msgid "B<          int *>I<uaddr2>B<, int >I<val3>B<);>\n"
500 msgstr "B<          int *>I<uaddr2>B<, int >I<val3>B<);>\n"
501
502 #. type: Plain text
503 #: build/C/man2/futex.2:84
504 msgid ""
505 "The B<futex>()  system call provides a method for a program to wait for a "
506 "value at a given address to change, and a method to wake up anyone waiting "
507 "on a particular address (while the addresses for the same memory in separate "
508 "processes may not be equal, the kernel maps them internally so the same "
509 "memory mapped in different locations will correspond for B<futex>()  "
510 "calls).  This system call is typically used to implement the contended case "
511 "of a lock in shared memory, as described in B<futex>(7)."
512 msgstr ""
513 "B<futex>()  システムコールは、 指定したアドレスの値が変更されるのをプログラム"
514 "が待つ手段や 特定のアドレスに対して待機中のプロセスを wake (起床) させる手段"
515 "を提供する (プロセスが異なれば同じメモリに対するアドレスも同じではないかもし"
516 "れないが、 カーネルは異なる位置にマップされた同じメモリを B<futex>()  で使え"
517 "るよう内部でマップする)。 通常は、このシステムコールは B<futex>(7)  に書かれ"
518 "ているように、 共有メモリ中のロックが競合する場合の処理を実装するのに用いられ"
519 "る。"
520
521 #. type: Plain text
522 #: build/C/man2/futex.2:91
523 msgid ""
524 "When a B<futex>(7)  operation did not finish uncontended in user space, a "
525 "call needs to be made to the kernel to arbitrate.  Arbitration can either "
526 "mean putting the calling process to sleep or, conversely, waking a waiting "
527 "process."
528 msgstr ""
529 "B<futex>(7)  の操作がユーザ空間で競合なく完了しなかった場合、 カーネルに仲裁"
530 "させるためにシステムコールを呼ぶ必要がある。 仲裁というのは、呼び出しプロセス"
531 "を sleep (起床待ち) させたり、反対に 待ちプロセスを wake させたりすることを意"
532 "味する。"
533
534 #. type: Plain text
535 #: build/C/man2/futex.2:98
536 msgid ""
537 "Callers of this function are expected to adhere to the semantics as set out "
538 "in B<futex>(7).  As these semantics involve writing nonportable assembly "
539 "instructions, this in turn probably means that most users will in fact be "
540 "library authors and not general application developers."
541 msgstr ""
542 "この関数を呼び出すプロセスは B<futex>(7)  に記述されているセマンティクスに忠"
543 "実であることが要求される。 このセマンティクスには移植不可能なアセンブリ命令を"
544 "書くことが含まれる。 このことは言い換えると futex のユーザのほとんどは実際は"
545 "ライブラリの作者であり、 一般アプリケーションの開発者ではないということであ"
546 "る。"
547
548 #. type: Plain text
549 #: build/C/man2/futex.2:106
550 msgid ""
551 "The I<uaddr> argument needs to point to an aligned integer which stores the "
552 "counter.  The operation to execute is passed via the I<op> argument, along "
553 "with a value I<val>."
554 msgstr ""
555 "I<uaddr> 引き数は、カウンタを格納する、 アラインメントの揃った int 型変数を指"
556 "している必要がある。 実行する操作は I<op> 引き数を介して、値 I<val> とともに"
557 "渡される。"
558
559 #. type: Plain text
560 #: build/C/man2/futex.2:108
561 msgid "Five operations are currently defined:"
562 msgstr "現在のところ 5 つの操作が定義されている:"
563
564 #. type: TP
565 #: build/C/man2/futex.2:108 build/C/man2/futex.2:221
566 #, no-wrap
567 msgid "B<FUTEX_WAIT>"
568 msgstr "B<FUTEX_WAIT>"
569
570 #. type: Plain text
571 #: build/C/man2/futex.2:131
572 #, fuzzy
573 #| msgid ""
574 #| "This operation atomically verifies that the futex address I<uaddr> still "
575 #| "contains the value I<val>, and sleeps awaiting B<FUTEX_WAKE> on this "
576 #| "futex address.  If the I<timeout> argument is non-NULL, its contents "
577 #| "describe the minimum duration of the wait, which is infinite otherwise.  "
578 #| "The arguments I<uaddr2> and I<val3> are ignored."
579 msgid ""
580 "This operation atomically verifies that the futex address I<uaddr> still "
581 "contains the value I<val>, and sleeps awaiting B<FUTEX_WAKE> on this futex "
582 "address.  If the I<timeout> argument is non-NULL, its contents specify the "
583 "duration of the wait.  (This interval will be rounded up to the system clock "
584 "granularity, and kernel scheduling delays mean that the blocking interval "
585 "may overrun by a small amount.)  If I<timeout> is NULL, the call blocks "
586 "indefinitely.  The arguments I<uaddr2> and I<val3> are ignored."
587 msgstr ""
588 "この操作は futex アドレス I<uaddr> に指定された値 I<val> がまだ格納されている"
589 "かどうかを不可分操作で検証し、 sleep 状態で この futex アドレスに対して "
590 "B<FUTEX_WAKE> が実行されるのを待つ。 I<timeout> 引き数が NULL でない場合、そ"
591 "の内容は 待ち時間の最大値を表す。NULL の場合は無限大を表す。 引き数 "
592 "I<uaddr2> と I<val3> は無視される。"
593
594 #. type: Plain text
595 #: build/C/man2/futex.2:139
596 msgid ""
597 "For B<futex>(7), this call is executed if decrementing the count gave a "
598 "negative value (indicating contention), and will sleep until another process "
599 "releases the futex and executes the B<FUTEX_WAKE> operation."
600 msgstr ""
601 "B<futex>(7)  に照らし合わせると、この呼び出しは カウントのデクリメントで負の"
602 "値 (競合を表す) になった場合に実行され、 別のプロセスがその futex を解放し "
603 "B<FUTEX_WAKE> の操作を実行するまで sleep する。"
604
605 #. type: TP
606 #: build/C/man2/futex.2:139 build/C/man2/futex.2:227
607 #, no-wrap
608 msgid "B<FUTEX_WAKE>"
609 msgstr "B<FUTEX_WAKE>"
610
611 #. type: Plain text
612 #: build/C/man2/futex.2:150
613 msgid ""
614 "This operation wakes at most I<val> processes waiting on this futex address "
615 "(i.e., inside B<FUTEX_WAIT>).  The arguments I<timeout>, I<uaddr2> and "
616 "I<val3> are ignored."
617 msgstr ""
618 "この操作では指定した futex アドレスに対して待ち状態の (すなわち "
619 "B<FUTEX_WAIT> 中の) 最大 I<val> 個のプロセスを wake させる。 引き数 "
620 "I<timeout>, I<uaddr2>, I<val3> は無視される。"
621
622 #. type: Plain text
623 #: build/C/man2/futex.2:156
624 msgid ""
625 "For B<futex>(7), this is executed if incrementing the count showed that "
626 "there were waiters, once the futex value has been set to 1 (indicating that "
627 "it is available)."
628 msgstr ""
629 "B<futex>(4) に照らし合わせると、 この操作は カウントのインクリメントで待ちプ"
630 "ロセスがあると判明し、 futex 値が 1 に設定された (利用可能であることを表す) "
631 "場合に実行される。"
632
633 #. type: TP
634 #: build/C/man2/futex.2:156
635 #, no-wrap
636 msgid "B<FUTEX_FD> (present up to and including Linux 2.6.25)"
637 msgstr "B<FUTEX_FD> (Linux 2.6.25 以前)"
638
639 #.  , suitable for .BR poll (2).
640 #. type: Plain text
641 #: build/C/man2/futex.2:172
642 msgid ""
643 "To support asynchronous wakeups, this operation associates a file descriptor "
644 "with a futex.  If another process executes a B<FUTEX_WAKE>, the process will "
645 "receive the signal number that was passed in I<val>.  The calling process "
646 "must close the returned file descriptor after use.  The arguments "
647 "I<timeout>, I<uaddr2> and I<val3> are ignored."
648 msgstr ""
649 "非同期の wake に対応するため、この操作はファイルディスクリプタを futex に 関"
650 "連づける。 別のプロセスが B<FUTEX_WAKE> を実行すると、プロセスは I<val> で渡"
651 "されたシグナル番号のシグナルを受信する。 呼び出しプロセスは使用後、返された"
652 "ファイルディスクリプタを クローズしなければならない。 引き数 I<timeout>, "
653 "I<uaddr2>, I<val3> は無視される。"
654
655 #. type: Plain text
656 #: build/C/man2/futex.2:177
657 msgid ""
658 "To prevent race conditions, the caller should test if the futex has been "
659 "upped after B<FUTEX_FD> returns."
660 msgstr ""
661 "競合状態を防止するため、呼び出しプロセスは B<FUTEX_FD> が返ったあと futex が "
662 "up されたかどうかを確認しなければならない。"
663
664 #. type: Plain text
665 #: build/C/man2/futex.2:181
666 msgid ""
667 "Because it was inherently racy, B<FUTEX_FD> has been removed from Linux "
668 "2.6.26 onward."
669 msgstr ""
670 "B<FUTEX_FD> はもともと競合が起きやすかったため、 Linux 2.6.26 以降で削除され"
671 "ている。"
672
673 #. type: TP
674 #: build/C/man2/futex.2:181
675 #, no-wrap
676 msgid "B<FUTEX_REQUEUE> (since Linux 2.5.70)"
677 msgstr "B<FUTEX_REQUEUE> (Linux 2.5.70 以降)"
678
679 #. type: Plain text
680 #: build/C/man2/futex.2:196
681 msgid ""
682 "This operation was introduced in order to avoid a \"thundering herd\" effect "
683 "when B<FUTEX_WAKE> is used and all processes woken up need to acquire "
684 "another futex.  This call wakes up I<val> processes, and requeues all other "
685 "waiters on the futex at address I<uaddr2>.  The arguments I<timeout> and "
686 "I<val3> are ignored."
687 msgstr ""
688 "この操作は、 B<FUTEX_WAKE> が使われていて、かつ wake されている全てのプロセス"
689 "が 他の futex を取得する必要がある場合に、 「獣の群れの暴走 (thundering "
690 "herd)」効果を避けるために導入された。 この呼び出しは I<val> 個のプロセスを "
691 "wake し、アドレス I<uaddr2> で futex を待っている他の全てのプロセスを再度"
692 "キューにいれる。 引き数 I<timeout> と I<val3> は無視される。"
693
694 #. type: TP
695 #: build/C/man2/futex.2:196
696 #, no-wrap
697 msgid "B<FUTEX_CMP_REQUEUE> (since Linux 2.6.7)"
698 msgstr "B<FUTEX_CMP_REQUEUE> (Linux 2.6.7 以降)"
699
700 #. type: Plain text
701 #: build/C/man2/futex.2:214
702 msgid ""
703 "There was a race in the intended use of B<FUTEX_REQUEUE>, so "
704 "B<FUTEX_CMP_REQUEUE> was introduced.  This is similar to B<FUTEX_REQUEUE>, "
705 "but first checks whether the location I<uaddr> still contains the value "
706 "I<val3>.  If not, the operation fails with the error B<EAGAIN>.  The "
707 "argument I<timeout> is ignored."
708 msgstr ""
709 "故意に B<FUTEX_REQUEUE> を使う場合に競合が起こるため、 B<FUTEX_CMP_REQUEUE> "
710 "が導入された。これは B<FUTEX_REQUEUE> と似ているが、場所 I<uaddr> に値 "
711 "I<val3> がまだ保持されているかを最初にチェックする。 保持されていない場合、操"
712 "作はエラー B<EAGAIN> で失敗する。引き数 I<timeout> は無視される。"
713
714 #. type: Plain text
715 #: build/C/man2/futex.2:221
716 msgid ""
717 "In the event of an error, all operations return -1, and set I<errno> to "
718 "indicate the error.  The return value on success depends on the operation, "
719 "as described in the following list:"
720 msgstr ""
721 "エラーの場合、全ての操作で -1 が返り、 I<errno> がエラーの内容を示す値に設定"
722 "される。成功時の返り値は操作によって異なり、以下のリストに書かれている通りで"
723 "ある。"
724
725 #. type: Plain text
726 #: build/C/man2/futex.2:227
727 msgid ""
728 "Returns 0 if the process was woken by a B<FUTEX_WAKE> call.  See ERRORS for "
729 "the various possible error returns."
730 msgstr ""
731 "そのプロセスが B<FUTEX_WAKE> により wake された場合 0 を返す。発生する可能性"
732 "があるエラーについては「エラー」の節を参照。"
733
734 #. type: Plain text
735 #: build/C/man2/futex.2:230 build/C/man2/futex.2:236 build/C/man2/futex.2:239
736 msgid "Returns the number of processes woken up."
737 msgstr "wake したプロセスの数を返す。"
738
739 #. type: TP
740 #: build/C/man2/futex.2:230
741 #, no-wrap
742 msgid "B<FUTEX_FD>"
743 msgstr "B<FUTEX_FD>"
744
745 #. type: Plain text
746 #: build/C/man2/futex.2:233
747 msgid "Returns the new file descriptor associated with the futex."
748 msgstr "futex に関連づけられた新たなファイルディスクリプタを返す。"
749
750 #. type: TP
751 #: build/C/man2/futex.2:233
752 #, no-wrap
753 msgid "B<FUTEX_REQUEUE>"
754 msgstr "B<FUTEX_REQUEUE>"
755
756 #. type: TP
757 #: build/C/man2/futex.2:236
758 #, no-wrap
759 msgid "B<FUTEX_CMP_REQUEUE>"
760 msgstr "B<FUTEX_CMP_REQUEUE>"
761
762 #. type: TP
763 #: build/C/man2/futex.2:240 build/C/man2/quotactl.2:486
764 #, no-wrap
765 msgid "B<EACCES>"
766 msgstr "B<EACCES>"
767
768 #. type: Plain text
769 #: build/C/man2/futex.2:243
770 msgid "No read access to futex memory."
771 msgstr "futex メモリに読み込みアクセス権がなかった。"
772
773 #. type: TP
774 #: build/C/man2/futex.2:243 build/C/man2/sendfile.2:116
775 #, no-wrap
776 msgid "B<EAGAIN>"
777 msgstr "B<EAGAIN>"
778
779 #. type: Plain text
780 #: build/C/man2/futex.2:254
781 msgid ""
782 "B<FUTEX_CMP_REQUEUE> detected that the value pointed to by I<uaddr> is not "
783 "equal to the expected value I<val3>.  (This probably indicates a race; use "
784 "the safe B<FUTEX_WAKE> now.)"
785 msgstr ""
786 "B<FUTEX_CMP_REQUEUE> で、I<uaddr> が指す値が期待値 I<val3> と異なる状況が検出"
787 "された。 (これは競合を示しているかもしれない。この場合は安全な B<FUTEX_WAKE> "
788 "を使うこと。)"
789
790 #. type: Plain text
791 #: build/C/man2/futex.2:259
792 msgid "Error retrieving I<timeout> information from user space."
793 msgstr "ユーザ空間から I<timeout> の情報を取得する際にエラーが発生した。"
794
795 #. type: TP
796 #: build/C/man2/futex.2:259
797 #, no-wrap
798 msgid "B<EINTR>"
799 msgstr "B<EINTR>"
800
801 #. type: Plain text
802 #: build/C/man2/futex.2:266
803 msgid ""
804 "A B<FUTEX_WAIT> operation was interrupted by a signal (see B<signal>(7))  or "
805 "a spurious wakeup."
806 msgstr ""
807 "B<FUTEX_WAIT> 操作がシグナル (B<signal>(7) 参照) もしくは偽の wakeup により中"
808 "断された。"
809
810 #. type: Plain text
811 #: build/C/man2/futex.2:269
812 msgid "Invalid argument."
813 msgstr "無効な引き数。"
814
815 #. type: TP
816 #: build/C/man2/futex.2:269
817 #, no-wrap
818 msgid "B<ENFILE>"
819 msgstr "B<ENFILE>"
820
821 #. type: Plain text
822 #: build/C/man2/futex.2:272
823 msgid "The system limit on the total number of open files has been reached."
824 msgstr "オープンされているファイルの総数がシステムの制限に達した。"
825
826 #. type: TP
827 #: build/C/man2/futex.2:272 build/C/man2/modify_ldt.2:126
828 #: build/C/man2/pciconfig_read.2:93 build/C/man2/quotactl.2:447
829 #: build/C/man2/vm86.2:64
830 #, no-wrap
831 msgid "B<ENOSYS>"
832 msgstr "B<ENOSYS>"
833
834 #. type: Plain text
835 #: build/C/man2/futex.2:276
836 msgid "Invalid operation specified in I<op>."
837 msgstr "I<op> に無効な操作が指定された。"
838
839 #. type: TP
840 #: build/C/man2/futex.2:276
841 #, no-wrap
842 msgid "B<ETIMEDOUT>"
843 msgstr "B<ETIMEDOUT>"
844
845 #. type: Plain text
846 #: build/C/man2/futex.2:281
847 msgid "Timeout during the B<FUTEX_WAIT> operation."
848 msgstr "B<FUTEX_WAIT> 操作でタイムアウトが発生した。"
849
850 #. type: TP
851 #: build/C/man2/futex.2:281
852 #, no-wrap
853 msgid "B<EWOULDBLOCK>"
854 msgstr "B<EWOULDBLOCK>"
855
856 #. type: Plain text
857 #: build/C/man2/futex.2:291
858 msgid ""
859 "I<op> was B<FUTEX_WAIT> and the value pointed to by I<uaddr> was not equal "
860 "to the expected value I<val> at the time of the call."
861 msgstr ""
862 "I<op> が B<FUTEX_WAIT> で、その呼び出しにおいて I<uaddr> が指す値が期待値 "
863 "I<val> と異なっていた。"
864
865 #. type: SH
866 #: build/C/man2/futex.2:291 build/C/man2/get_robust_list.2:115
867 #: build/C/man2/getunwind.2:94 build/C/man2/kexec_load.2:138
868 #: build/C/man2/lookup_dcookie.2:73 build/C/man2/perfmonctl.2:196
869 #: build/C/man2/pivot_root.2:125 build/C/man2/process_vm_readv.2:276
870 #: build/C/man2/sendfile.2:142 build/C/man2/set_tid_address.2:94
871 #: build/C/man2/splice.2:165 build/C/man2/tee.2:114
872 #: build/C/man2/vmsplice.2:138
873 #, no-wrap
874 msgid "VERSIONS"
875 msgstr "バージョン"
876
877 #. type: Plain text
878 #: build/C/man2/futex.2:301
879 msgid ""
880 "Initial futex support was merged in Linux 2.5.7 but with different semantics "
881 "from what was described above.  A 4-argument system call with the semantics "
882 "described in this page was introduced in Linux 2.5.40.  In Linux 2.5.70 one "
883 "argument was added.  In Linux 2.6.7 a sixth argument was added\\(emmessy, "
884 "especially on the s390 architecture."
885 msgstr ""
886 "最初の futex 対応は Linux 2.5.7 で組み込まれたが、 上記のセマンティクスとは異"
887 "なる。 4 つの引き数のここに書かれているセマンティクスを持つ システムコール"
888 "は、Linux 2.5.40 で導入された。 Linux 2.5.70 では 1 つの引き数が追加された。 "
889 "Linux 2.6.7 では 6 番目の引き数が追加された。 これは汚く、s390 アーキテクチャ"
890 "上の特別のものである。"
891
892 #. type: Plain text
893 #: build/C/man2/futex.2:303 build/C/man2/kexec_load.2:144
894 #: build/C/man2/set_tid_address.2:99 build/C/man2/splice.2:172
895 #: build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145
896 msgid "This system call is Linux-specific."
897 msgstr "このシステムコールは Linux 固有である。"
898
899 #.  .SH "AUTHORS"
900 #.  .PP
901 #.  Futexes were designed and worked on by
902 #.  Hubertus Franke (IBM Thomas J. Watson Research Center),
903 #.  Matthew Kirkwood, Ingo Molnar (Red Hat)
904 #.  and Rusty Russell (IBM Linux Technology Center).
905 #.  This page written by bert hubert.
906 #. type: Plain text
907 #: build/C/man2/futex.2:317
908 msgid ""
909 "To reiterate, bare futexes are not intended as an easy-to-use abstraction "
910 "for end-users.  (There is no wrapper function for this system call in "
911 "glibc.)  Implementors are expected to be assembly literate and to have read "
912 "the sources of the futex user-space library referenced below."
913 msgstr ""
914 "繰り返すが、裸の futex はエンドユーザが容易に使うことのできる概念として 意図"
915 "されたものではない (glibc にはこのシステムコールに対するラッパー関数はな"
916 "い)。 実装者は、アセンブリ言語に慣れており、以下に挙げる futex ユーザ空間ライ"
917 "ブラリの ソースを読み終えていることが要求される。"
918
919 #. type: Plain text
920 #: build/C/man2/futex.2:320
921 msgid "B<restart_syscall>(2), B<futex>(7)"
922 msgstr "B<restart_syscall>(2), B<futex>(7)"
923
924 #. type: Plain text
925 #: build/C/man2/futex.2:323
926 msgid ""
927 "I<Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux> (proceedings "
928 "of the Ottawa Linux Symposium 2002), online at"
929 msgstr ""
930 "I<Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux> (proceedings "
931 "of the Ottawa Linux Symposium 2002), online at"
932
933 #. type: Plain text
934 #: build/C/man2/futex.2:326
935 msgid ""
936 "E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> "
937 "E<.UE>"
938 msgstr ""
939 "E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> "
940 "E<.UE>"
941
942 #. type: Plain text
943 #: build/C/man2/futex.2:328
944 msgid "Futex example library, futex-*.tar.bz2 at"
945 msgstr "futex の使用例ライブラリ, futex-*.tar.bz2"
946
947 #. type: Plain text
948 #: build/C/man2/futex.2:331
949 msgid ""
950 "E<.UR ftp://ftp.nl.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> "
951 "E<.UE>"
952 msgstr ""
953 "E<.UR ftp://ftp.nl.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> "
954 "E<.UE>"
955
956 #. type: TH
957 #: build/C/man2/get_robust_list.2:29
958 #, no-wrap
959 msgid "GET_ROBUST_LIST"
960 msgstr "GET_ROBUST_LIST"
961
962 #. type: TH
963 #: build/C/man2/get_robust_list.2:29 build/C/man2/kexec_load.2:26
964 #: build/C/man2/modify_ldt.2:24 build/C/man2/pivot_root.2:10
965 #, no-wrap
966 msgid "2012-07-13"
967 msgstr "2012-07-13"
968
969 #. type: TH
970 #: build/C/man2/get_robust_list.2:29
971 #, no-wrap
972 msgid "Linux System Calls"
973 msgstr ""
974
975 #. type: Plain text
976 #: build/C/man2/get_robust_list.2:32
977 msgid "get_robust_list, set_robust_list - get/set list of robust futexes"
978 msgstr ""
979
980 #. type: Plain text
981 #: build/C/man2/get_robust_list.2:36
982 #, no-wrap
983 msgid ""
984 "B<#include E<lt>linux/futex.hE<gt>>\n"
985 "B<#include E<lt>syscall.hE<gt>>\n"
986 msgstr ""
987 "B<#include E<lt>linux/futex.hE<gt>>\n"
988 "B<#include E<lt>syscall.hE<gt>>\n"
989
990 #. type: Plain text
991 #: build/C/man2/get_robust_list.2:40
992 #, no-wrap
993 msgid ""
994 "B<long get_robust_list(int >I<pid>B<, struct robust_list_head **>I<head_ptr>B<,>\n"
995 "B<\t\t\t  size_t *>I<len_ptr>B<);>\n"
996 "B<long set_robust_list(struct robust_list_head *>I<head>B<, size_t >I<len>B<);>\n"
997 msgstr ""
998
999 #. type: Plain text
1000 #: build/C/man2/get_robust_list.2:44
1001 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
1002 msgstr ""
1003 "I<注意>: これらのシステムコールには glibc ラッパー関数は存在しない。 「注意」"
1004 "の節を参照。"
1005
1006 #. type: Plain text
1007 #: build/C/man2/get_robust_list.2:49
1008 msgid ""
1009 "The robust futex implementation needs to maintain per-thread lists of robust "
1010 "futexes which are unlocked when the thread exits.  These lists are managed "
1011 "in user space; the kernel is notified about only the location of the head of "
1012 "the list."
1013 msgstr ""
1014
1015 #. type: Plain text
1016 #: build/C/man2/get_robust_list.2:65
1017 msgid ""
1018 "The B<get_robust_list>()  system call returns the head of the robust futex "
1019 "list of the thread whose thread ID is specified in I<pid>.  If I<pid> is 0, "
1020 "the head of the list for the calling thread is returned.  The list head is "
1021 "stored in the location pointed to by I<head_ptr>.  The size of the object "
1022 "pointed to by I<**head_ptr> is stored in I<len_ptr>."
1023 msgstr ""
1024
1025 #. type: Plain text
1026 #: build/C/man2/get_robust_list.2:77
1027 msgid ""
1028 "The B<set_robust_list>()  system call requests the kernel to record the head "
1029 "of the list of robust futexes owned by the calling thread.  The I<head> "
1030 "argument is the list head to record.  The I<len> argument should be I<sizeof"
1031 "(*head)>."
1032 msgstr ""
1033
1034 #. type: Plain text
1035 #: build/C/man2/get_robust_list.2:84
1036 msgid ""
1037 "The B<set_robust_list>()  and B<get_robust_list>()  system calls return zero "
1038 "when the operation is successful, an error code otherwise."
1039 msgstr ""
1040
1041 #. type: Plain text
1042 #: build/C/man2/get_robust_list.2:88
1043 msgid ""
1044 "The B<set_robust_list>()  system call can fail with the following error:"
1045 msgstr ""
1046
1047 #. type: Plain text
1048 #: build/C/man2/get_robust_list.2:94
1049 msgid ""
1050 "I<len> does not match the size of structure B<struct robust_list_head> "
1051 "expected by kernel."
1052 msgstr ""
1053
1054 #. type: Plain text
1055 #: build/C/man2/get_robust_list.2:98
1056 msgid ""
1057 "The B<get_robust_list>()  system call can fail with the following errors:"
1058 msgstr ""
1059
1060 #. type: Plain text
1061 #: build/C/man2/get_robust_list.2:106
1062 msgid ""
1063 "The calling process does not have permission to see the robust futex list of "
1064 "the thread with the thread ID I<pid>, and does not have the "
1065 "B<CAP_SYS_PTRACE> capability."
1066 msgstr ""
1067
1068 #. type: TP
1069 #: build/C/man2/get_robust_list.2:106 build/C/man2/process_vm_readv.2:271
1070 #: build/C/man2/ptrace.2:1839 build/C/man2/quotactl.2:461
1071 #: build/C/man2/quotactl.2:504
1072 #, no-wrap
1073 msgid "B<ESRCH>"
1074 msgstr "B<ESRCH>"
1075
1076 #. type: Plain text
1077 #: build/C/man2/get_robust_list.2:111
1078 msgid "No thread with the thread ID I<pid> could be found."
1079 msgstr ""
1080
1081 #. type: Plain text
1082 #: build/C/man2/get_robust_list.2:115
1083 msgid ""
1084 "The head of the robust futex list can't be stored at the location I<head>."
1085 msgstr ""
1086
1087 #. type: Plain text
1088 #: build/C/man2/get_robust_list.2:119
1089 msgid ""
1090 "These system calls were added in Linux 2.6.17.  No library support is "
1091 "provided; use B<syscall>(2)."
1092 msgstr ""
1093 "これらのシステムコールは Linux 2.6.17 で追加された。ライブラリによる\n"
1094 "サポートは提供されていない。 B<syscall>(2) を使うこと。"
1095
1096 #. type: Plain text
1097 #: build/C/man2/get_robust_list.2:124
1098 msgid ""
1099 "These system calls are not needed by normal applications.  No support for "
1100 "them is provided in glibc.  In the unlikely event that you want to call them "
1101 "directly, use B<syscall>(2)."
1102 msgstr ""
1103 "通常のアプリケーションでは、これらのシステムコールは必要ではない。 glibc によ"
1104 "るサポートは提供されていない。おそらくないと思うが、このシステムコールを直接"
1105 "呼び出したい場合は B<syscall>(2) を使うこと。"
1106
1107 #. type: Plain text
1108 #: build/C/man2/get_robust_list.2:128
1109 msgid ""
1110 "A thread can have only one robust futex list; therefore applications that "
1111 "wish to use this functionality should use the robust mutexes provided by "
1112 "glibc."
1113 msgstr ""
1114
1115 #.  .BR pthread_mutexattr_setrobust_np (3)
1116 #. type: Plain text
1117 #: build/C/man2/get_robust_list.2:131
1118 msgid "B<futex>(2)"
1119 msgstr "B<futex>(2)"
1120
1121 #.  http://lwn.net/Articles/172149/
1122 #. type: Plain text
1123 #: build/C/man2/get_robust_list.2:137
1124 msgid ""
1125 "I<Documentation/robust-futexes.txt> and I<Documentation/robust-futex-ABI."
1126 "txt> in the Linux kernel source tree"
1127 msgstr ""
1128
1129 #. type: TH
1130 #: build/C/man2/getunwind.2:27
1131 #, no-wrap
1132 msgid "GETUNWIND"
1133 msgstr ""
1134
1135 #. type: TH
1136 #: build/C/man2/getunwind.2:27 build/C/man2/perfmonctl.2:27
1137 #, no-wrap
1138 msgid "2013-02-13"
1139 msgstr "2013-02-13"
1140
1141 #. type: Plain text
1142 #: build/C/man2/getunwind.2:30
1143 msgid "getunwind - copy the unwind data to caller's buffer"
1144 msgstr ""
1145
1146 #. type: Plain text
1147 #: build/C/man2/getunwind.2:34
1148 #, no-wrap
1149 msgid ""
1150 "B<#include E<lt>syscall.hE<gt>>\n"
1151 "B<#include E<lt>linux/unwind.hE<gt>>\n"
1152 msgstr ""
1153 "B<#include E<lt>syscall.hE<gt>>\n"
1154 "B<#include E<lt>linux/unwind.hE<gt>>\n"
1155
1156 #. type: Plain text
1157 #: build/C/man2/getunwind.2:36
1158 #, no-wrap
1159 msgid "B<long getunwind(void >I<*buf>B<, size_t >I<buf_size>B<);>\n"
1160 msgstr ""
1161
1162 #. type: Plain text
1163 #: build/C/man2/getunwind.2:40 build/C/man2/kexec_load.2:39
1164 #: build/C/man2/modify_ldt.2:36 build/C/man2/perf_event_open.2:42
1165 #: build/C/man2/perfmonctl.2:39 build/C/man2/pivot_root.2:18
1166 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
1167 msgstr ""
1168 "I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
1169 "を参照。"
1170
1171 #. type: Plain text
1172 #: build/C/man2/getunwind.2:42
1173 msgid "I<Note: this function is obsolete.>"
1174 msgstr ""
1175
1176 #. type: Plain text
1177 #: build/C/man2/getunwind.2:52
1178 msgid ""
1179 "The IA-64-specific B<getunwind>()  system call copies the kernel's call "
1180 "frame unwind data into the buffer pointed to by I<buf> and returns the size "
1181 "of the unwind data; this data describes the gate page (kernel code that is "
1182 "mapped into user space)."
1183 msgstr ""
1184
1185 #. type: Plain text
1186 #: build/C/man2/getunwind.2:64
1187 msgid ""
1188 "The size of the buffer I<buf> is specified in I<buf_size>.  The data is "
1189 "copied only if I<buf_size> is greater than or equal to the size of the "
1190 "unwind data and I<buf> is not NULL; otherwise, no data is copied, and the "
1191 "call succeeds, returning the size that would be needed to store the unwind "
1192 "data."
1193 msgstr ""
1194
1195 #. type: Plain text
1196 #: build/C/man2/getunwind.2:68
1197 msgid ""
1198 "The first part of the unwind data contains an unwind table.  The rest "
1199 "contains the associated unwind information, in no particular order.  The "
1200 "unwind table contains entries of the following form:"
1201 msgstr ""
1202
1203 #. type: Plain text
1204 #: build/C/man2/getunwind.2:73
1205 #, no-wrap
1206 msgid ""
1207 "\tu64 start;      (64-bit address of start of function)\n"
1208 "\tu64 end;        (64-bit address of end of function)\n"
1209 "\tu64 info;       (BUF-relative offset to unwind info)\n"
1210 msgstr ""
1211
1212 #. type: Plain text
1213 #: build/C/man2/getunwind.2:81
1214 msgid ""
1215 "An entry whose I<start> value is zero indicates the end of the table.  For "
1216 "more information about the format, see the I<IA-64 Software Conventions and "
1217 "Runtime Architecture> manual."
1218 msgstr ""
1219
1220 #. type: Plain text
1221 #: build/C/man2/getunwind.2:88
1222 msgid ""
1223 "On success, B<getunwind>()  returns the size of unwind table.  On error, -1 "
1224 "is returned and I<errno> is set to indicate the error."
1225 msgstr ""
1226
1227 #. type: Plain text
1228 #: build/C/man2/getunwind.2:94
1229 msgid ""
1230 "B<getunwind>()  fails with the error B<EFAULT> if the unwind info can't be "
1231 "stored in the space specified by I<buf>."
1232 msgstr ""
1233
1234 #. type: Plain text
1235 #: build/C/man2/getunwind.2:96
1236 msgid "This system call is available since Linux 2.4."
1237 msgstr ""
1238
1239 #. type: Plain text
1240 #: build/C/man2/getunwind.2:99
1241 msgid ""
1242 "This system call is Linux specific, and is available only on the IA-64 "
1243 "architecture."
1244 msgstr ""
1245
1246 #. type: Plain text
1247 #: build/C/man2/getunwind.2:107
1248 msgid ""
1249 "This system call has been deprecated.  The modern way to obtain the kernel's "
1250 "unwind data is via the gate DSO.  The address of the ELF header for this DSO "
1251 "is passed to user level via B<AT_SYSINFO_EHDR> (see B<getauxval>(3))."
1252 msgstr ""
1253
1254 #. type: Plain text
1255 #: build/C/man2/getunwind.2:111
1256 msgid ""
1257 "Glibc does not provide a wrapper for this system call; in the unlikely event "
1258 "that you want to call it, use B<syscall>(2)."
1259 msgstr ""
1260 "glibc はこのシステムコールに対するラッパー関数を提供していない。おそらくない"
1261 "と思うが、このシステムコールを呼び出したい場合は B<syscall>(2) を使うこと。"
1262
1263 #. type: Plain text
1264 #: build/C/man2/getunwind.2:113
1265 msgid "B<getauxval>(3)"
1266 msgstr "B<getauxval>(3)"
1267
1268 #. type: TH
1269 #: build/C/man2/kexec_load.2:26
1270 #, no-wrap
1271 msgid "KEXEC_LOAD"
1272 msgstr "KEXEC_LOAD"
1273
1274 #. type: Plain text
1275 #: build/C/man2/kexec_load.2:29
1276 msgid "kexec_load - load a new kernel for later execution"
1277 msgstr "kexec_load - 新しいカーネルを後で実行するためにロードする"
1278
1279 #. type: Plain text
1280 #: build/C/man2/kexec_load.2:31
1281 msgid "B<#include E<lt>linux/kexec.hE<gt>>"
1282 msgstr "B<#include E<lt>linux/kexec.hE<gt>>"
1283
1284 #. type: Plain text
1285 #: build/C/man2/kexec_load.2:33
1286 msgid ""
1287 "B<long kexec_load(unsigned long >I<entry>B<, unsigned long >I<nr_segments>B<,"
1288 ">"
1289 msgstr ""
1290 "B<long kexec_load(unsigned long >I<entry>B<, unsigned long >I<nr_segments>B<,"
1291 ">"
1292
1293 #. type: Plain text
1294 #: build/C/man2/kexec_load.2:36
1295 msgid "B< struct kexec_segment *>I<segments>B<, unsigned long >I<flags>B<);>"
1296 msgstr "B< struct kexec_segment *>I<segments>B<, unsigned long >I<flags>B<);>"
1297
1298 #. type: Plain text
1299 #: build/C/man2/kexec_load.2:44
1300 msgid ""
1301 "The B<kexec_load>()  system call loads a new kernel that can be executed "
1302 "later by B<reboot>(2)."
1303 msgstr ""
1304 "B<kexec_load>() システムコールは、新しいカーネルをロードし、\n"
1305 "その後の B<reboot>(2) で実行できるようにする。"
1306
1307 #. type: Plain text
1308 #: build/C/man2/kexec_load.2:50
1309 msgid ""
1310 "The I<flags> argument is a mask whose high-order bits control the operation "
1311 "of the call.  The following values can be specified in I<flags>:"
1312 msgstr ""
1313 "I<flags> 引き数はマスクビットで、\n"
1314 "その上位ビットでシステムコールの呼び出しの動作を制御する。\n"
1315 "I<flags> には以下の値を指定できる。"
1316
1317 #. type: TP
1318 #: build/C/man2/kexec_load.2:50
1319 #, no-wrap
1320 msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
1321 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
1322
1323 #.  FIXME figure out how this is really used
1324 #. type: Plain text
1325 #: build/C/man2/kexec_load.2:54
1326 msgid "Execute the new kernel automatically on a system crash."
1327 msgstr "システムのクラッシュ時に、新しいカーネルを自動的に実行する。"
1328
1329 #. type: TP
1330 #: build/C/man2/kexec_load.2:54
1331 #, no-wrap
1332 msgid "B<KEXEC_PRESERVE_CONTEXT> (since Linux 2.6.27)"
1333 msgstr "B<KEXEC_PRESERVE_CONTEXT> (Linux 2.6.27 以降)"
1334
1335 #. type: Plain text
1336 #: build/C/man2/kexec_load.2:64
1337 msgid ""
1338 "Preserve the system hardware and software states before executing the new "
1339 "kernel.  This could be used for system suspend.  This flag is available only "
1340 "if the kernel was configured with B<CONFIG_KEXEC_JUMP>, and is effective "
1341 "only if I<nr_segments> is greater than 0."
1342 msgstr ""
1343 "新しいカーネルを実行する前に、\n"
1344 "システムのハードウェアとソフトウェアの状態を保存する。\n"
1345 "システムの中断時 (suspend) などで使用できる。\n"
1346 "このフラグは、カーネルの設定で B<CONFIG_KEXEC_JUMP> が有効の場合のみ\n"
1347 "利用可能であり、 I<nr_segments> が 0 より大きい場合のみ効果がある。"
1348
1349 #. type: Plain text
1350 #: build/C/man2/kexec_load.2:84
1351 msgid ""
1352 "The low-order bits of I<flags> contain the architecture of the to-be-"
1353 "executed kernel.  Specify (OR) the constant B<KEXEC_ARCH_DEFAULT> to use the "
1354 "current architecture, or one of the following architecture constants "
1355 "B<KEXEC_ARCH_386>, B<KEXEC_ARCH_X86_64>, B<KEXEC_ARCH_PPC>, "
1356 "B<KEXEC_ARCH_PPC64>, B<KEXEC_ARCH_IA_64>, B<KEXEC_ARCH_ARM>, "
1357 "B<KEXEC_ARCH_S390>, B<KEXEC_ARCH_SH>, B<KEXEC_ARCH_MIPS>, and "
1358 "B<KEXEC_ARCH_MIPS_LE>.  The architecture must be executable on the CPU of "
1359 "the system."
1360 msgstr ""
1361 "I<flags> の下位ビットには、実行されるカーネルのアーキテクチャが入る。\n"
1362 "現在のアーキテクチャを使うことを意味する定数 B<KEXEC_ARCH_DEFAULT> か、\n"
1363 "アーキテクチャ定数 B<KEXEC_ARCH_386>, B<KEXEC_ARCH_X86_64>,\n"
1364 "B<KEXEC_ARCH_PPC>, B<KEXEC_ARCH_PPC64>, B<KEXEC_ARCH_IA_64>,\n"
1365 "B<KEXEC_ARCH_ARM>, B<KEXEC_ARCH_S390>, B<KEXEC_ARCH_SH>,\n"
1366 "B<KEXEC_ARCH_MIPS>, B<KEXEC_ARCH_MIPS_LE> の\n"
1367 "いずれか一つを (OR で) 指定する。指定するアーキテクチャは、\n"
1368 "システムの CPU で実行可能なものでなければならない。"
1369
1370 #. type: Plain text
1371 #: build/C/man2/kexec_load.2:98
1372 msgid ""
1373 "The I<entry> argument is the physical entry address in the kernel image.  "
1374 "The I<nr_segments> argument is the number of segments pointed to by the "
1375 "I<segments> pointer.  The I<segments> argument is an array of "
1376 "I<kexec_segment> structures which define the kernel layout:"
1377 msgstr ""
1378 "I<entry> 引き数は、カーネルイメージの物理エントリーアドレスである。\n"
1379 "I<nr_segments> 引き数は、 I<segments> ポインタが指すセグメントの\n"
1380 "数である。 I<segments> 引き数は I<kexec_segment> 構造体の配列で、\n"
1381 "この構造体によりカーネルの配置が定義される。"
1382
1383 #. type: Plain text
1384 #: build/C/man2/kexec_load.2:107
1385 #, no-wrap
1386 msgid ""
1387 "struct kexec_segment {\n"
1388 "    void   *buf;        /* Buffer in user space */\n"
1389 "    size_t  bufsz;      /* Buffer length in user space */\n"
1390 "    void   *mem;        /* Physical address of kernel */\n"
1391 "    size_t  memsz;      /* Physical address length */\n"
1392 "};\n"
1393 msgstr ""
1394 "struct kexec_segment {\n"
1395 "    void   *buf;        /* Buffer in user space */\n"
1396 "    size_t  bufsz;      /* Buffer length in user space */\n"
1397 "    void   *mem;        /* Physical address of kernel */\n"
1398 "    size_t  memsz;      /* Physical address length */\n"
1399 "};\n"
1400
1401 #.  FIXME elaborate on the following:
1402 #. type: Plain text
1403 #: build/C/man2/kexec_load.2:114
1404 msgid ""
1405 "The kernel image defined by I<segments> is copied from the calling process "
1406 "into previously reserved memory."
1407 msgstr ""
1408 "I<segments> で定義されたカーネルイメージは、\n"
1409 "呼び出したプロセスから予約済みメモリにコピーされる。"
1410
1411 #. type: Plain text
1412 #: build/C/man2/kexec_load.2:121
1413 msgid ""
1414 "On success, B<kexec_load>()  returns 0.  On error, -1 is returned and "
1415 "I<errno> is set to indicate the error."
1416 msgstr ""
1417 "成功すると、 B<kexec_load> は 0 を返す。\n"
1418 "エラーの場合、 -1 が返り、 I<errno> にエラーを示す値が設定される。"
1419
1420 #. type: TP
1421 #: build/C/man2/kexec_load.2:122 build/C/man2/pivot_root.2:110
1422 #: build/C/man2/ptrace.2:1802 build/C/man2/quotactl.2:495
1423 #, no-wrap
1424 msgid "B<EBUSY>"
1425 msgstr "B<EBUSY>"
1426
1427 #. type: Plain text
1428 #: build/C/man2/kexec_load.2:126
1429 msgid ""
1430 "Another crash kernel is already being loaded or a crash kernel is already in "
1431 "use."
1432 msgstr ""
1433 "別のクラッシュカーネルがすでにロードされているか、\n"
1434 "クラッシュカーネルがすでに使用されている。"
1435
1436 #.  KEXEC_SEGMENT_MAX == 16
1437 #. type: Plain text
1438 #: build/C/man2/kexec_load.2:133
1439 msgid "I<flags> is invalid; or I<nr_segments> is too large"
1440 msgstr "I<flags> が無効である。 I<nr_segments> が大きすぎる。"
1441
1442 #. type: Plain text
1443 #: build/C/man2/kexec_load.2:138
1444 msgid "The caller does not have the B<CAP_SYS_BOOT> capability."
1445 msgstr "呼び出し側が B<CAP_SYS_BOOT> ケーパビリティを持っていない。"
1446
1447 #. type: Plain text
1448 #: build/C/man2/kexec_load.2:142
1449 msgid "The B<kexec_load>()  system call first appeared in Linux 2.6.13."
1450 msgstr "B<kexec_load>() システムコールは Linux 2.6.13 で初めて登場した。"
1451
1452 #. type: Plain text
1453 #: build/C/man2/kexec_load.2:149
1454 msgid ""
1455 "Currently, there is no glibc support for B<kexec_load>().  Call it using "
1456 "B<syscall>(2)."
1457 msgstr ""
1458 "現在のところ、 B<kexec_load>() は glibc ではサポートされていない。\n"
1459 "B<syscall>(2) を使って呼び出すこと。"
1460
1461 #.  FIXME Andi submitted a patch for this.
1462 #.  Check if it got accepted later.
1463 #. type: Plain text
1464 #: build/C/man2/kexec_load.2:156
1465 msgid ""
1466 "The required constants are in the Linux kernel source file I<linux/kexec.h>, "
1467 "which is not currently exported to glibc.  Therefore, these constants must "
1468 "be defined manually."
1469 msgstr ""
1470 "必要な定数は Linux カーネルのソースファイル I<linux/kexec.h> で定義されてい"
1471 "る\n"
1472 "が、現在のところ glibc には公開されていない。\n"
1473 "そのため、これらの定数は手動で定義しなければならない。"
1474
1475 #. type: Plain text
1476 #: build/C/man2/kexec_load.2:159
1477 msgid ""
1478 "This system call is available only if the kernel was configured with "
1479 "B<CONFIG_KEXEC>."
1480 msgstr ""
1481 "このシステムコールは、カーネルの設定で B<CONFIG_KEXEC> が有効になって\n"
1482 "いる場合にのみ利用できる。"
1483
1484 #. type: Plain text
1485 #: build/C/man2/kexec_load.2:162
1486 msgid "B<reboot>(2), B<syscall>(2)"
1487 msgstr "B<reboot>(2), B<syscall>(2)"
1488
1489 #. type: TH
1490 #: build/C/man2/lookup_dcookie.2:27
1491 #, no-wrap
1492 msgid "LOOKUP_DCOOKIE"
1493 msgstr "LOOKUP_DCOOKIE"
1494
1495 #. type: TH
1496 #: build/C/man2/lookup_dcookie.2:27
1497 #, no-wrap
1498 msgid "2004-06-17"
1499 msgstr "2004-06-17"
1500
1501 #. type: Plain text
1502 #: build/C/man2/lookup_dcookie.2:30
1503 msgid "lookup_dcookie - return a directory entry's path"
1504 msgstr "lookup_dcookie - ディレクトリ・エントリのパス名を返す"
1505
1506 #. type: Plain text
1507 #: build/C/man2/lookup_dcookie.2:32
1508 msgid ""
1509 "B<int lookup_dcookie(u64 >I<cookie>B<, char *>I<buffer>B<, size_t >I<len>B<);"
1510 ">"
1511 msgstr ""
1512 "B<int lookup_dcookie(u64 >I<cookie>B<, char *>I<buffer>B<, size_t >I<len>B<);"
1513 ">"
1514
1515 #. type: Plain text
1516 #: build/C/man2/lookup_dcookie.2:38
1517 msgid ""
1518 "Look up the full path of the directory entry specified by the value "
1519 "I<cookie>.  The cookie is an opaque identifier uniquely identifying a "
1520 "particular directory entry.  The buffer given is filled in with the full "
1521 "path of the directory entry."
1522 msgstr ""
1523 "I<cookie> 値で指定されたディレクトリ・エントリのフルパス名を検索する。 "
1524 "cookie は、個々のディレクトリ・エントリを区別する内部識別子 (opaque "
1525 "identifier) である。引き数で指定されたバッファに、ディレクトリ・エントリの フ"
1526 "ルパス名が格納される。"
1527
1528 #. type: Plain text
1529 #: build/C/man2/lookup_dcookie.2:43
1530 msgid ""
1531 "For B<lookup_dcookie>()  to return successfully, the kernel must still hold "
1532 "a cookie reference to the directory entry."
1533 msgstr ""
1534 "B<lookup_dcookie>()  が正常に値を返すためには、カーネルがディレクトリ・エント"
1535 "リへの cookie 参照を 保持していなければならない。"
1536
1537 #. type: Plain text
1538 #: build/C/man2/lookup_dcookie.2:50
1539 msgid ""
1540 "On success, B<lookup_dcookie>()  returns the length of the path string "
1541 "copied into the buffer.  On error, -1 is returned, and I<errno> is set "
1542 "appropriately."
1543 msgstr ""
1544 "成功した場合、 B<lookup_dcookie>()  はバッファにコピーしたパス文字列の長さを"
1545 "返す。 エラーの場合は -1 を返し、 I<errno> に適切な値を設定する。"
1546
1547 #. type: Plain text
1548 #: build/C/man2/lookup_dcookie.2:54
1549 msgid "The buffer was not valid."
1550 msgstr "バッファが有効でなかった。"
1551
1552 #. type: Plain text
1553 #: build/C/man2/lookup_dcookie.2:58
1554 msgid ""
1555 "The kernel has no registered cookie/directory entry mappings at the time of "
1556 "lookup, or the cookie does not refer to a valid directory entry."
1557 msgstr ""
1558 "検索が行われた時、cookie とディレクトリ・エントリのマッピングがカーネルに 登"
1559 "録されていなかったか、または cookie が有効なディレクトリ・エントリを 参照して"
1560 "いない。"
1561
1562 #. type: TP
1563 #: build/C/man2/lookup_dcookie.2:58
1564 #, no-wrap
1565 msgid "B<ENAMETOOLONG>"
1566 msgstr "B<ENAMETOOLONG>"
1567
1568 #. type: Plain text
1569 #: build/C/man2/lookup_dcookie.2:61
1570 msgid "The name could not fit in the buffer."
1571 msgstr "名前がバッファに入り切らなかった。"
1572
1573 #. type: TP
1574 #: build/C/man2/lookup_dcookie.2:61 build/C/man2/process_vm_readv.2:262
1575 #: build/C/man2/sendfile.2:138 build/C/man2/splice.2:155
1576 #: build/C/man2/tee.2:111 build/C/man2/vmsplice.2:135
1577 #, no-wrap
1578 msgid "B<ENOMEM>"
1579 msgstr "B<ENOMEM>"
1580
1581 #. type: Plain text
1582 #: build/C/man2/lookup_dcookie.2:65
1583 msgid ""
1584 "The kernel could not allocate memory for the temporary buffer holding the "
1585 "path."
1586 msgstr ""
1587 "カーネルが、パス名を保持する一時バッファ用のメモリを割り当てることが できな"
1588 "かった。"
1589
1590 #. type: Plain text
1591 #: build/C/man2/lookup_dcookie.2:70
1592 msgid ""
1593 "The process does not have the capability B<CAP_SYS_ADMIN> required to look "
1594 "up cookie values."
1595 msgstr ""
1596 "プロセスが cookie 値を検索するのに必要なケーパビリティ B<CAP_SYS_ADMIN> を"
1597 "持っていない。"
1598
1599 #. type: TP
1600 #: build/C/man2/lookup_dcookie.2:70 build/C/man2/quotactl.2:474
1601 #, no-wrap
1602 msgid "B<ERANGE>"
1603 msgstr "B<ERANGE>"
1604
1605 #. type: Plain text
1606 #: build/C/man2/lookup_dcookie.2:73
1607 msgid ""
1608 "The buffer was not large enough to hold the path of the directory entry."
1609 msgstr ""
1610 "バッファが、ディレクトリ・エントリのパス名を収容するのに 十分な大きさではな"
1611 "かった。"
1612
1613 #. type: Plain text
1614 #: build/C/man2/lookup_dcookie.2:78
1615 msgid ""
1616 "Available since Linux 2.5.43.  The B<ENAMETOOLONG> error return was added in "
1617 "2.5.70."
1618 msgstr ""
1619 "Linux 2.5.43 以降で利用できる。 エラー B<ENAMETOOLONG> を返す仕様は 2.5.70 で"
1620 "追加された。"
1621
1622 #. type: Plain text
1623 #: build/C/man2/lookup_dcookie.2:81
1624 msgid "B<lookup_dcookie>()  is Linux-specific."
1625 msgstr "B<lookup_dcookie>()  は Linux 独自の関数である。"
1626
1627 #. type: Plain text
1628 #: build/C/man2/lookup_dcookie.2:85
1629 msgid ""
1630 "B<lookup_dcookie>()  is a special-purpose system call, currently used only "
1631 "by the oprofile profiler.  It relies on a kernel driver to register cookies "
1632 "for directory entries."
1633 msgstr ""
1634 "B<lookup_dcookie>()  は特殊な用途に使われるシステムコールで、現在のところ "
1635 "oprofile profiler で 使われているだけである。"
1636
1637 #. type: Plain text
1638 #: build/C/man2/lookup_dcookie.2:88
1639 msgid ""
1640 "The path returned may be suffixed by the string \" (deleted)\" if the "
1641 "directory entry has been removed."
1642 msgstr ""
1643 "指定されたディレクトリ・エントリが削除されていた場合、返されるパス名の最後に "
1644 "\" (deleted)\" という文字列が付加されることがある。"
1645
1646 #. type: TH
1647 #: build/C/man2/modify_ldt.2:24
1648 #, no-wrap
1649 msgid "MODIFY_LDT"
1650 msgstr "MODIFY_LDT"
1651
1652 #. type: Plain text
1653 #: build/C/man2/modify_ldt.2:27
1654 msgid "modify_ldt - get or set ldt"
1655 msgstr "modify_ldt - ldt を設定または取得する"
1656
1657 #. type: Plain text
1658 #: build/C/man2/modify_ldt.2:30
1659 #, no-wrap
1660 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1661 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1662
1663 #. type: Plain text
1664 #: build/C/man2/modify_ldt.2:32
1665 #, no-wrap
1666 msgid "B<int modify_ldt(int >I<func>B<, void *>I<ptr>B<, unsigned long >I<bytecount>B<);>\n"
1667 msgstr "B<int modify_ldt(int >I<func>B<, void *>I<ptr>B<, unsigned long >I<bytecount>B<);>\n"
1668
1669 #. type: Plain text
1670 #: build/C/man2/modify_ldt.2:41
1671 msgid ""
1672 "B<modify_ldt>()  reads or writes the local descriptor table (ldt) for a "
1673 "process.  The ldt is a per-process memory management table used by the i386 "
1674 "processor.  For more information on this table, see an Intel 386 processor "
1675 "handbook."
1676 msgstr ""
1677 "B<modify_ldt>()  はプロセスのローカル・ディスクリプタ・テーブル (local "
1678 "descriptor table; ldt)  を読み書きする。 ldt は i386 プロセッサで使用されるプ"
1679 "ロセスごとのメモリ管理テーブルである。 このテーブルに関してのより詳しい情報"
1680 "は Intel 386 processor handbook を 参照すること。"
1681
1682 #. type: Plain text
1683 #: build/C/man2/modify_ldt.2:51
1684 msgid ""
1685 "When I<func> is 0, B<modify_ldt>()  reads the ldt into the memory pointed to "
1686 "by I<ptr>.  The number of bytes read is the smaller of I<bytecount> and the "
1687 "actual size of the ldt."
1688 msgstr ""
1689 "I<func> が 0 ならば、 B<modify_ldt>()  は ldt を I<ptr> が指しているメモリに"
1690 "読み込む。 読み込むバイト数は実際の ldt のサイズか I<bytecount> より小さい方"
1691 "である。"
1692
1693 #.  FIXME ? say something about func == 2 and func == 0x11?
1694 #.  In Linux 2.4, func == 2 returned "the default ldt"
1695 #.  In Linux 2.6, func == 2 is a nop, returning a zeroed out structure.
1696 #.  Linux 2.4 and 2.6 implement an operation for func == 0x11
1697 #. type: Plain text
1698 #: build/C/man2/modify_ldt.2:69
1699 msgid ""
1700 "When I<func> is 1, B<modify_ldt>()  modifies one ldt entry.  I<ptr> points "
1701 "to a I<user_desc> structure and I<bytecount> must equal the size of this "
1702 "structure."
1703 msgstr ""
1704 "I<func> が 1 ならば、 B<modify_ldt>()  は ldt エントリの一つを変更する。 "
1705 "I<ptr> は I<user_desc> 構造体を指し、 I<bytecount> はこの構造体の大きさに等し"
1706 "くなければならない。"
1707
1708 #. type: Plain text
1709 #: build/C/man2/modify_ldt.2:73
1710 msgid "The I<user_desc> structure is defined in I<E<lt>asm/ldt.hE<gt>> as:"
1711 msgstr ""
1712 "I<user_desc> 構造体は I<E<lt>asm/ldt.hE<gt>> で以下のように定義されている:"
1713
1714 #. type: Plain text
1715 #: build/C/man2/modify_ldt.2:87
1716 #, no-wrap
1717 msgid ""
1718 "struct user_desc {\n"
1719 "    unsigned int  entry_number;\n"
1720 "    unsigned long base_addr;\n"
1721 "    unsigned int  limit;\n"
1722 "    unsigned int  seg_32bit:1;\n"
1723 "    unsigned int  contents:2;\n"
1724 "    unsigned int  read_exec_only:1;\n"
1725 "    unsigned int  limit_in_pages:1;\n"
1726 "    unsigned int  seg_not_present:1;\n"
1727 "    unsigned int  useable:1;\n"
1728 "};\n"
1729 msgstr ""
1730 "struct user_desc {\n"
1731 "    unsigned int  entry_number;\n"
1732 "    unsigned long base_addr;\n"
1733 "    unsigned int  limit;\n"
1734 "    unsigned int  seg_32bit:1;\n"
1735 "    unsigned int  contents:2;\n"
1736 "    unsigned int  read_exec_only:1;\n"
1737 "    unsigned int  limit_in_pages:1;\n"
1738 "    unsigned int  seg_not_present:1;\n"
1739 "    unsigned int  useable:1;\n"
1740 "};\n"
1741
1742 #.  .PP
1743 #.  The ldt is specific for the calling process. Any attempts to change
1744 #.  the ldt to include the address space of another process or the kernel
1745 #.  will result in a segmentation violation when trying to access the memory
1746 #.  outside of the process address space. The memory protection is enforced
1747 #.  at the paging layer.
1748 #. type: Plain text
1749 #: build/C/man2/modify_ldt.2:98
1750 msgid "In Linux 2.4 and earlier, this structure was named I<modify_ldt_ldt_s>."
1751 msgstr ""
1752 "Linux 2.4 以前では、この構造体は I<modify_ldt_ldt_s> という名前であった。"
1753
1754 #. type: Plain text
1755 #: build/C/man2/modify_ldt.2:108
1756 msgid ""
1757 "On success, B<modify_ldt>()  returns either the actual number of bytes read "
1758 "(for reading)  or 0 (for writing).  On failure, B<modify_ldt>()  returns -1 "
1759 "and sets I<errno> to indicate the error."
1760 msgstr ""
1761 "成功した場合は、 B<modify_ldt>()  は (読み込みの場合は) 実際に読み込んだバイ"
1762 "ト数、 または (書き込みの場合は) 0 を返す。 失敗した場合は B<modify_ldt>()  "
1763 "は -1 を返し、 I<errno> をエラーを示す値に設定する。"
1764
1765 #. type: Plain text
1766 #: build/C/man2/modify_ldt.2:113
1767 msgid "I<ptr> points outside the address space."
1768 msgstr "I<ptr> がアドレス空間の外を指している。"
1769
1770 #. type: Plain text
1771 #: build/C/man2/modify_ldt.2:126
1772 msgid ""
1773 "I<ptr> is 0, or I<func> is 1 and I<bytecount> is not equal to the size of "
1774 "the structure I<modify_ldt_ldt_s>, or I<func> is 1 and the new ldt entry has "
1775 "invalid values."
1776 msgstr ""
1777 "I<ptr> が 0 である、 または I<func> が 1 で I<bytecount> が "
1778 "I<modify_ldt_ldt_s> 構造体のサイズと等しくないか、 I<func> が 1 で新しい ldt "
1779 "エントリが無効な値である。"
1780
1781 #. type: Plain text
1782 #: build/C/man2/modify_ldt.2:130
1783 msgid "I<func> is neither 0 nor 1."
1784 msgstr "I<func> が 0 でも 1 でもない。"
1785
1786 #. type: Plain text
1787 #: build/C/man2/modify_ldt.2:133
1788 msgid ""
1789 "This call is Linux-specific and should not be used in programs intended to "
1790 "be portable."
1791 msgstr ""
1792 "このコールは Linux 特有であり、移植を意図したプログラムでは 使用してはいけな"
1793 "い。"
1794
1795 #. type: Plain text
1796 #: build/C/man2/modify_ldt.2:136 build/C/man2/perfmonctl.2:205
1797 #: build/C/man2/pivot_root.2:134
1798 msgid ""
1799 "Glibc does not provide a wrapper for this system call; call it using "
1800 "B<syscall>(2)."
1801 msgstr ""
1802 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
1803 "(2)  を使って呼び出すこと。"
1804
1805 #. type: Plain text
1806 #: build/C/man2/modify_ldt.2:138
1807 msgid "B<vm86>(2)"
1808 msgstr "B<vm86>(2)"
1809
1810 #. type: TH
1811 #: build/C/man2/nfsservctl.2:8
1812 #, no-wrap
1813 msgid "NFSSERVCTL"
1814 msgstr "NFSSERVCTL"
1815
1816 #. type: TH
1817 #: build/C/man2/nfsservctl.2:8
1818 #, fuzzy, no-wrap
1819 #| msgid "2013-02-13"
1820 msgid "2013-09-17"
1821 msgstr "2013-02-13"
1822
1823 #. type: Plain text
1824 #: build/C/man2/nfsservctl.2:11
1825 msgid "nfsservctl - syscall interface to kernel nfs daemon"
1826 msgstr "nfsservctl - カーネル nfs デーモンのためのインターフェース"
1827
1828 #. type: Plain text
1829 #: build/C/man2/nfsservctl.2:14
1830 #, no-wrap
1831 msgid "B<#include E<lt>linux/nfsd/syscall.hE<gt>>\n"
1832 msgstr "B<#include E<lt>linux/nfsd/syscall.hE<gt>>\n"
1833
1834 #. type: Plain text
1835 #: build/C/man2/nfsservctl.2:17
1836 #, no-wrap
1837 msgid ""
1838 "B<long nfsservctl(int >I<cmd>B<, struct nfsctl_arg *>I<argp>B<,>\n"
1839 "B<                union nfsctl_res *>I<resp>B<);>\n"
1840 msgstr ""
1841 "B<long nfsservctl(int >I<cmd>B<, struct nfsctl_arg *>I<argp>B<,>\n"
1842 "B<                union nfsctl_res *>I<resp>B<);>\n"
1843
1844 #. type: Plain text
1845 #: build/C/man2/nfsservctl.2:21
1846 msgid "I<Note>: Since Linux 3.1, this system call no longer exists."
1847 msgstr "I<注意>: Linux 3.1 以降では、このシステムコールはもはや存在しない。"
1848
1849 #. type: Plain text
1850 #: build/C/man2/nfsservctl.2:35
1851 #, fuzzy, no-wrap
1852 #| msgid ""
1853 #| "/*\n"
1854 #| " * These are the commands understood by nfsctl().\n"
1855 #| " */\n"
1856 #| "#define NFSCTL_SVC          0    /* This is a server process. */\n"
1857 #| "#define NFSCTL_ADDCLIENT    1    /* Add an NFS client. */\n"
1858 #| "#define NFSCTL_DELCLIENT    2    /* Remove an NFS client. */\n"
1859 #| "#define NFSCTL_EXPORT       3    /* export a file system. */\n"
1860 #| "#define NFSCTL_UNEXPORT     4    /* unexport a file system. */\n"
1861 #| "#define NFSCTL_UGIDUPDATE   5    /* update a client's UID/GID map. */\n"
1862 #| "#define NFSCTL_GETFH        6    /* get an fh (used by mountd) */\n"
1863 msgid ""
1864 "/*\n"
1865 " * These are the commands understood by nfsctl().\n"
1866 " */\n"
1867 "#define NFSCTL_SVC          0    /* This is a server process. */\n"
1868 "#define NFSCTL_ADDCLIENT    1    /* Add an NFS client. */\n"
1869 "#define NFSCTL_DELCLIENT    2    /* Remove an NFS client. */\n"
1870 "#define NFSCTL_EXPORT       3    /* Export a filesystem. */\n"
1871 "#define NFSCTL_UNEXPORT     4    /* Unexport a filesystem. */\n"
1872 "#define NFSCTL_UGIDUPDATE   5    /* Update a client's UID/GID map\n"
1873 "                                    (only in Linux 2.4.x and earlier). */\n"
1874 "#define NFSCTL_GETFH        6    /* Get a file handle (used by mountd)\n"
1875 "                                    (only in Linux 2.4.x and earlier). */\n"
1876 msgstr ""
1877 "/*\n"
1878 " * nfsctl() によって理解されるコマンド\n"
1879 " */\n"
1880 "#define NFSCTL_SVC          0    /* サーバープロセス */\n"
1881 "#define NFSCTL_ADDCLIENT    1    /* NFS クライアントを追加 */\n"
1882 "#define NFSCTL_DELCLIENT    2    /* NFS クライアンドを削除 */\n"
1883 "#define NFSCTL_EXPORT       3    /* ファイルシステムのエクスポート */\n"
1884 "#define NFSCTL_UNEXPORT     4    /* ファイルシステムのアンエクスポート */\n"
1885 "#define NFSCTL_UGIDUPDATE   5    /* UID/GID マップの更新 */\n"
1886 "#define NFSCTL_GETFH        6    /* (mountd で使用される) fh の取得 */\n"
1887
1888 #. type: Plain text
1889 #: build/C/man2/nfsservctl.2:47
1890 #, no-wrap
1891 msgid ""
1892 "struct nfsctl_arg {\n"
1893 "    int                       ca_version;     /* safeguard */\n"
1894 "    union {\n"
1895 "        struct nfsctl_svc     u_svc;\n"
1896 "        struct nfsctl_client  u_client;\n"
1897 "        struct nfsctl_export  u_export;\n"
1898 "        struct nfsctl_uidmap  u_umap;\n"
1899 "        struct nfsctl_fhparm  u_getfh;\n"
1900 "        unsigned int          u_debug;\n"
1901 "    } u;\n"
1902 "}\n"
1903 msgstr ""
1904 "struct nfsctl_arg {\n"
1905 "    int                       ca_version;     /* safeguard */\n"
1906 "    union {\n"
1907 "        struct nfsctl_svc     u_svc;\n"
1908 "        struct nfsctl_client  u_client;\n"
1909 "        struct nfsctl_export  u_export;\n"
1910 "        struct nfsctl_uidmap  u_umap;\n"
1911 "        struct nfsctl_fhparm  u_getfh;\n"
1912 "        unsigned int          u_debug;\n"
1913 "    } u;\n"
1914 "}\n"
1915
1916 #. type: Plain text
1917 #: build/C/man2/nfsservctl.2:52
1918 #, no-wrap
1919 msgid ""
1920 "union nfsctl_res {\n"
1921 "        struct knfs_fh          cr_getfh;\n"
1922 "        unsigned int            cr_debug;\n"
1923 "};\n"
1924 msgstr ""
1925 "union nfsctl_res {\n"
1926 "        struct knfs_fh          cr_getfh;\n"
1927 "        unsigned int            cr_debug;\n"
1928 "};\n"
1929
1930 #. type: Plain text
1931 #: build/C/man2/nfsservctl.2:58 build/C/man2/pivot_root.2:105
1932 #: build/C/man2/vm86.2:59
1933 msgid ""
1934 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1935 "appropriately."
1936 msgstr ""
1937 "成功した場合は 0 が返される。エラーの場合は -1 が返され、 I<errno> が適切に設"
1938 "定される。"
1939
1940 #. type: Plain text
1941 #: build/C/man2/nfsservctl.2:60
1942 msgid "This call is Linux-specific."
1943 msgstr "このコールは Linux 特有である。"
1944
1945 #. type: TH
1946 #: build/C/man2/outb.2:26
1947 #, no-wrap
1948 msgid "OUTB"
1949 msgstr "OUTB"
1950
1951 #. type: TH
1952 #: build/C/man2/outb.2:26
1953 #, no-wrap
1954 msgid "2012-12-31"
1955 msgstr "2012-12-31"
1956
1957 #. type: Plain text
1958 #: build/C/man2/outb.2:31
1959 msgid ""
1960 "outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, "
1961 "outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - port I/O"
1962 msgstr ""
1963 "outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, "
1964 "outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ポート入出力"
1965
1966 #. type: Plain text
1967 #: build/C/man2/outb.2:34
1968 #, no-wrap
1969 msgid "B<#include E<lt>sys/io.hE<gt>>\n"
1970 msgstr "B<#include E<lt>sys/io.hE<gt>>\n"
1971
1972 #. type: Plain text
1973 #: build/C/man2/outb.2:41
1974 #, no-wrap
1975 msgid ""
1976 "B<unsigned char inb(unsigned short int >I<port>B<);>\n"
1977 "B<unsigned char inb_p(unsigned short int >I<port>B<);>\n"
1978 "B<unsigned short int inw(unsigned short int >I<port>B<);>\n"
1979 "B<unsigned short int inw_p(unsigned short int >I<port>B<);>\n"
1980 "B<unsigned int inl(unsigned short int >I<port>B<);>\n"
1981 "B<unsigned int inl_p(unsigned short int >I<port>B<);>\n"
1982 msgstr ""
1983 "B<unsigned char inb(unsigned short int >I<port>B<);>\n"
1984 "B<unsigned char inb_p(unsigned short int >I<port>B<);>\n"
1985 "B<unsigned short int inw(unsigned short int >I<port>B<);>\n"
1986 "B<unsigned short int inw_p(unsigned short int >I<port>B<);>\n"
1987 "B<unsigned int inl(unsigned short int >I<port>B<);>\n"
1988 "B<unsigned int inl_p(unsigned short int >I<port>B<);>\n"
1989
1990 #. type: Plain text
1991 #: build/C/man2/outb.2:48
1992 #, no-wrap
1993 msgid ""
1994 "B<void outb(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1995 "B<void outb_p(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1996 "B<void outw(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1997 "B<void outw_p(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1998 "B<void outl(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1999 "B<void outl_p(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
2000 msgstr ""
2001 "B<void outb(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
2002 "B<void outb_p(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
2003 "B<void outw(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
2004 "B<void outw_p(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
2005 "B<void outl(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
2006 "B<void outl_p(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
2007
2008 #. type: Plain text
2009 #: build/C/man2/outb.2:61
2010 #, no-wrap
2011 msgid ""
2012 "B<void insb(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2013 "B<           unsigned long int >I<count>B<);>\n"
2014 "B<void insw(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2015 "B<           unsigned long int >I<count>B<);>\n"
2016 "B<void insl(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2017 "B<           unsigned long int >I<count>B<);>\n"
2018 "B<void outsb(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2019 "B<           unsigned long int >I<count>B<);>\n"
2020 "B<void outsw(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2021 "B<           unsigned long int >I<count>B<);>\n"
2022 "B<void outsl(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2023 "B<           unsigned long int >I<count>B<);>\n"
2024 msgstr ""
2025 "B<void insb(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2026 "B<           unsigned long int >I<count>B<);>\n"
2027 "B<void insw(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2028 "B<           unsigned long int >I<count>B<);>\n"
2029 "B<void insl(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
2030 "B<           unsigned long int >I<count>B<);>\n"
2031 "B<void outsb(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2032 "B<           unsigned long int >I<count>B<);>\n"
2033 "B<void outsw(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2034 "B<           unsigned long int >I<count>B<);>\n"
2035 "B<void outsl(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2036 "B<           unsigned long int >I<count>B<);>\n"
2037
2038 #. type: Plain text
2039 #: build/C/man2/outb.2:67
2040 msgid ""
2041 "This family of functions is used to do low-level port input and output.  The "
2042 "out* functions do port output, the in* functions do port input; the b-suffix "
2043 "functions are byte-width and the w-suffix functions word-width; the _p-"
2044 "suffix functions pause until the I/O completes."
2045 msgstr ""
2046 "この一連の関数はポートに対する低レベルの入出力に使用する。 out* 関数はポート"
2047 "出力、in* 関数はポート入力を行う。 語尾に b がついている関数はバイト単位、w "
2048 "がついている関数はワード単位である。 _p がついている関数は I/O が終了するまで"
2049 "待つ。"
2050
2051 #.  , given the following information
2052 #.  in addition to that given in
2053 #.  .BR outb (9).
2054 #. type: Plain text
2055 #: build/C/man2/outb.2:73
2056 msgid ""
2057 "They are primarily designed for internal kernel use, but can be used from "
2058 "user space."
2059 msgstr ""
2060 "これらの関数はもともとカーネル内部での使用を想定して設計されているが、 ユー"
2061 "ザー空間からでも使用できる。"
2062
2063 #. type: Plain text
2064 #: build/C/man2/outb.2:78
2065 msgid ""
2066 "You must compile with B<-O> or B<-O2> or similar.  The functions are defined "
2067 "as inline macros, and will not be substituted in without optimization "
2068 "enabled, causing unresolved references at link time."
2069 msgstr ""
2070 "B<-O> や B<-O2> などを指定してコンパイルしなければならない。 これらの関数はイ"
2071 "ンライン・マクロとして定義されており、 最適化を行わないと関数の展開が行われ"
2072 "ず、 リンクの時に「解決できない参照(unresolved reference)」が発生する。"
2073
2074 #. type: Plain text
2075 #: build/C/man2/outb.2:87
2076 msgid ""
2077 "You use B<ioperm>(2)  or alternatively B<iopl>(2)  to tell the kernel to "
2078 "allow the user space application to access the I/O ports in question.  "
2079 "Failure to do this will cause the application to receive a segmentation "
2080 "fault."
2081 msgstr ""
2082 "ユーザー空間のアプリケーションが I/O ポートにアクセスすることを カーネルに教"
2083 "えるために B<ioperm>(2)  もしくは B<iopl>(2)  を使用すること。これを忘れると"
2084 "アプリケーションはセグメンテーション違反 (segmentation fault) を受けとること"
2085 "になる。"
2086
2087 #. type: Plain text
2088 #: build/C/man2/outb.2:96
2089 msgid ""
2090 "B<outb>()  and friends are hardware-specific.  The I<value> argument is "
2091 "passed first and the I<port> argument is passed second, which is the "
2092 "opposite order from most DOS implementations."
2093 msgstr ""
2094 "B<outb>()  とその仲間はハードウェア特有である。 I<value> 引数が最初に渡さ"
2095 "れ、 I<port> 引数が二番目に渡される。 この順序はほとんどの DOS での実装とは逆"
2096 "である。"
2097
2098 #. type: Plain text
2099 #: build/C/man2/outb.2:99
2100 msgid "B<ioperm>(2), B<iopl>(2)"
2101 msgstr "B<ioperm>(2), B<iopl>(2)"
2102
2103 #. type: TH
2104 #: build/C/man2/pciconfig_read.2:8
2105 #, no-wrap
2106 msgid "PCICONFIG_READ"
2107 msgstr "PCICONFIG_READ"
2108
2109 #. type: TH
2110 #: build/C/man2/pciconfig_read.2:8
2111 #, no-wrap
2112 msgid "2003-07-14"
2113 msgstr "2003-07-14"
2114
2115 #. type: Plain text
2116 #: build/C/man2/pciconfig_read.2:11
2117 msgid ""
2118 "pciconfig_read, pciconfig_write, pciconfig_iobase - pci device information "
2119 "handling"
2120 msgstr ""
2121 "pciconfig_read, pciconfig_write, pciconfig_iobase - pci デバイス情報を扱う"
2122
2123 #. type: Plain text
2124 #: build/C/man2/pciconfig_read.2:14
2125 #, no-wrap
2126 msgid "B<#include E<lt>pci.hE<gt>>\n"
2127 msgstr "B<#include E<lt>pci.hE<gt>>\n"
2128
2129 #. type: Plain text
2130 #: build/C/man2/pciconfig_read.2:21
2131 #, no-wrap
2132 msgid ""
2133 "B<int pciconfig_read(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2134 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2135 "B<int pciconfig_write(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2136 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2137 "B<int pciconfig_iobase(long >I<which>B<, unsigned long >I<bus>B<,>\n"
2138 "B<          unsigned long >I<devfn>B<);>\n"
2139 msgstr ""
2140 "B<int pciconfig_read(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2141 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2142 "B<int pciconfig_write(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2143 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2144 "B<int pciconfig_iobase(long >I<which>B<, unsigned long >I<bus>B<,>\n"
2145 "B<          unsigned long >I<devfn>B<);>\n"
2146
2147 #. type: Plain text
2148 #: build/C/man2/pciconfig_read.2:27
2149 msgid ""
2150 "Most of the interaction with PCI devices is already handled by the kernel "
2151 "PCI layer, and thus these calls should not normally need to be accessed from "
2152 "user space."
2153 msgstr ""
2154 "PCI デバイスとのやり取り (interaction) は カーネル PCI レイヤですでに処理され"
2155 "ているので、 通常はこららの関数をユーザ空間からアクセスする必要はない。"
2156
2157 #. type: TP
2158 #: build/C/man2/pciconfig_read.2:27 build/C/man2/pciconfig_read.2:51
2159 #, no-wrap
2160 msgid "B<pciconfig_read>()"
2161 msgstr "B<pciconfig_read>()"
2162
2163 #. type: Plain text
2164 #: build/C/man2/pciconfig_read.2:36
2165 msgid "Reads to I<buf> from device I<dev> at offset I<off> value."
2166 msgstr "デバイス I<dev> のオフセット I<off> の値を I<buf> に読み込む。"
2167
2168 #. type: TP
2169 #: build/C/man2/pciconfig_read.2:36 build/C/man2/pciconfig_read.2:57
2170 #, no-wrap
2171 msgid "B<pciconfig_write>()"
2172 msgstr "B<pciconfig_write>()"
2173
2174 #. type: Plain text
2175 #: build/C/man2/pciconfig_read.2:45
2176 msgid "Writes from I<buf> to device I<dev> at offset I<off> value."
2177 msgstr "デバイス I<dev> のオフセット I<off> に I<buf> の値を書き込む。"
2178
2179 #. type: TP
2180 #: build/C/man2/pciconfig_read.2:45 build/C/man2/pciconfig_read.2:63
2181 #, no-wrap
2182 msgid "B<pciconfig_iobase>()"
2183 msgstr "B<pciconfig_iobase>()"
2184
2185 #. type: Plain text
2186 #: build/C/man2/pciconfig_read.2:50
2187 msgid ""
2188 "You pass it a bus/devfn pair and get a physical address for either the "
2189 "memory offset (for things like prep, this is 0xc0000000), the IO base for "
2190 "PIO cycles, or the ISA holes if any."
2191 msgstr ""
2192 "bus/devfn ペアをこの関数に渡し、 メモリオフセット (prep のようなものでは、こ"
2193 "の値は 0xc0000000 である) と PIO サイクルの IO ベースの物理アドレスを取得す"
2194 "る。 また、もしあるならば ISA hole の物理アドレスを取得する。"
2195
2196 #. type: Plain text
2197 #: build/C/man2/pciconfig_read.2:57 build/C/man2/pciconfig_read.2:63
2198 msgid ""
2199 "On success zero is returned.  On error, -1 is returned and I<errno> is set "
2200 "appropriately."
2201 msgstr ""
2202 "成功した場合、0 が返される。 エラーの場合、-1 が返され、 I<errno> が適切に設"
2203 "定される。"
2204
2205 #. type: Plain text
2206 #: build/C/man2/pciconfig_read.2:77
2207 msgid ""
2208 "Returns information on locations of various I/O regions in physical memory "
2209 "according to the I<which> value.  Values for I<which> are: "
2210 "B<IOBASE_BRIDGE_NUMBER>, B<IOBASE_MEMORY>, B<IOBASE_IO>, B<IOBASE_ISA_IO>, "
2211 "B<IOBASE_ISA_MEM>."
2212 msgstr ""
2213 "I<which> の値に基づいて、物理メモリ内の様々な I/O 領域の位置情報が返される。 "
2214 "I<which> の値は、 B<IOBASE_BRIDGE_NUMBER>, B<IOBASE_MEMORY>, B<IOBASE_IO>, "
2215 "B<IOBASE_ISA_IO>, B<IOBASE_ISA_MEM> である。"
2216
2217 #. type: Plain text
2218 #: build/C/man2/pciconfig_read.2:84
2219 msgid "I<len> value is invalid.  This does not apply to B<pciconfig_iobase>()."
2220 msgstr ""
2221 "I<len> の値が無効である。 このエラーは B<pciconfig_iobase>()  には適用されな"
2222 "い。"
2223
2224 #. type: TP
2225 #: build/C/man2/pciconfig_read.2:84 build/C/man2/ptrace.2:1819
2226 #: build/C/man2/sendfile.2:134
2227 #, no-wrap
2228 msgid "B<EIO>"
2229 msgstr "B<EIO>"
2230
2231 #. type: Plain text
2232 #: build/C/man2/pciconfig_read.2:87
2233 msgid "I/O error."
2234 msgstr "I/O エラー。"
2235
2236 #. type: TP
2237 #: build/C/man2/pciconfig_read.2:87
2238 #, no-wrap
2239 msgid "B<ENODEV>"
2240 msgstr "B<ENODEV>"
2241
2242 #. type: Plain text
2243 #: build/C/man2/pciconfig_read.2:93
2244 msgid ""
2245 "For B<pciconfig_iobase>(), \"hose\" value is NULL.  For the other calls, "
2246 "could not find a slot."
2247 msgstr ""
2248 "B<pciconfig_iobase>()  の場合、でホース (hose) の値が NULL である。 他の呼び"
2249 "出しの場合、スロット (slot) が見つからない。"
2250
2251 #. type: Plain text
2252 #: build/C/man2/pciconfig_read.2:98
2253 msgid "The system has not implemented these calls (B<CONFIG_PCI> not defined)."
2254 msgstr ""
2255 "このシステムはこれらの呼び出しを実装していない。 (B<CONFIG_PCI> が定義されて"
2256 "いない)。"
2257
2258 #. type: TP
2259 #: build/C/man2/pciconfig_read.2:98
2260 #, no-wrap
2261 msgid "B<EOPNOTSUPP>"
2262 msgstr "B<EOPNOTSUPP>"
2263
2264 #. type: Plain text
2265 #: build/C/man2/pciconfig_read.2:105
2266 msgid ""
2267 "This return value is valid only for B<pciconfig_iobase>().  It is returned "
2268 "if the value for I<which> is invalid."
2269 msgstr ""
2270 "この返り値は B<pciconfig_iobase>()  でのみ有効である。 このエラーは I<which> "
2271 "の値が無効であるときに返される。"
2272
2273 #. type: Plain text
2274 #: build/C/man2/pciconfig_read.2:112
2275 msgid ""
2276 "User does not have the B<CAP_SYS_ADMIN> capability.  This does not apply to "
2277 "B<pciconfig_iobase>()."
2278 msgstr ""
2279 "ユーザが B<CAP_SYS_ADMIN> 権限を持っていない。 このエラーは "
2280 "B<pciconfig_iobase>()  には適用されない。"
2281
2282 #. type: Plain text
2283 #: build/C/man2/pciconfig_read.2:114
2284 msgid "These calls are Linux-specific, available since Linux 2.0.26/2.1.11."
2285 msgstr ""
2286 "これらの呼び出しは Linux 特有のものであり、 Linux 2.0.26/2.1.11 から使用可能"
2287 "である。"
2288
2289 #. type: Plain text
2290 #: build/C/man2/pciconfig_read.2:116
2291 msgid "B<capabilities>(7)"
2292 msgstr "B<capabilities>(7)"
2293
2294 #. type: TH
2295 #: build/C/man2/perf_event_open.2:27
2296 #, no-wrap
2297 msgid "PERF_EVENT_OPEN"
2298 msgstr "PERF_EVENT_OPEN"
2299
2300 #. type: TH
2301 #: build/C/man2/perf_event_open.2:27
2302 #, fuzzy, no-wrap
2303 #| msgid "2013-02-13"
2304 msgid "2013-09-13"
2305 msgstr "2013-02-13"
2306
2307 #. type: Plain text
2308 #: build/C/man2/perf_event_open.2:30
2309 msgid "perf_event_open - set up performance monitoring"
2310 msgstr ""
2311
2312 #. type: Plain text
2313 #: build/C/man2/perf_event_open.2:34
2314 #, no-wrap
2315 msgid ""
2316 "B<#include E<lt>linux/perf_event.hE<gt>>\n"
2317 "B<#include E<lt>linux/hw_breakpoint.hE<gt>>\n"
2318 msgstr ""
2319 "B<#include E<lt>linux/perf_event.hE<gt>>\n"
2320 "B<#include E<lt>linux/hw_breakpoint.hE<gt>>\n"
2321
2322 #. type: Plain text
2323 #: build/C/man2/perf_event_open.2:38
2324 #, no-wrap
2325 msgid ""
2326 "B<int perf_event_open(struct perf_event_attr *>I<attr>B<,>\n"
2327 "B<                    pid_t >I<pid>B<, int >I<cpu>B<, int >I<group_fd>B<,>\n"
2328 "B<                    unsigned long >I<flags>B<);>\n"
2329 msgstr ""
2330 "B<int perf_event_open(struct perf_event_attr *>I<attr>B<,>\n"
2331 "B<                    pid_t >I<pid>B<, int >I<cpu>B<, int >I<group_fd>B<,>\n"
2332 "B<                    unsigned long >I<flags>B<);>\n"
2333
2334 #. type: Plain text
2335 #: build/C/man2/perf_event_open.2:47
2336 msgid ""
2337 "Given a list of parameters, B<perf_event_open>()  returns a file descriptor, "
2338 "for use in subsequent system calls (B<read>(2), B<mmap>(2), B<prctl>(2), "
2339 "B<fcntl>(2), etc.)."
2340 msgstr ""
2341
2342 #. type: Plain text
2343 #: build/C/man2/perf_event_open.2:55
2344 msgid ""
2345 "A call to B<perf_event_open>()  creates a file descriptor that allows "
2346 "measuring performance information.  Each file descriptor corresponds to one "
2347 "event that is measured; these can be grouped together to measure multiple "
2348 "events simultaneously."
2349 msgstr ""
2350
2351 #. type: Plain text
2352 #: build/C/man2/perf_event_open.2:62
2353 msgid ""
2354 "Events can be enabled and disabled in two ways: via B<ioctl>(2)  and via "
2355 "B<prctl>(2)B<.> When an event is disabled it does not count or generate "
2356 "overflows but does continue to exist and maintain its count value."
2357 msgstr ""
2358
2359 #. type: Plain text
2360 #: build/C/man2/perf_event_open.2:76
2361 msgid ""
2362 "Events come in two flavors: counting and sampled.  A I<counting> event is "
2363 "one that is used for counting the aggregate number of events that occur.  In "
2364 "general, counting event results are gathered with a B<read>(2)  call.  A "
2365 "I<sampling> event periodically writes measurements to a buffer that can then "
2366 "be accessed via B<mmap>(2)B<.>"
2367 msgstr ""
2368
2369 #. type: SS
2370 #: build/C/man2/perf_event_open.2:76
2371 #, no-wrap
2372 msgid "Arguments"
2373 msgstr ""
2374
2375 #. type: Plain text
2376 #: build/C/man2/perf_event_open.2:90
2377 msgid ""
2378 "The argument I<pid> allows events to be attached to processes in various "
2379 "ways.  If I<pid> is 0, measurements happen on the current thread, if I<pid> "
2380 "is greater than 0, the process indicated by I<pid> is measured, and if "
2381 "I<pid> is -1, all processes are counted."
2382 msgstr ""
2383
2384 #. type: Plain text
2385 #: build/C/man2/perf_event_open.2:101
2386 msgid ""
2387 "The I<cpu> argument allows measurements to be specific to a CPU.  If I<cpu> "
2388 "is greater than or equal to 0, measurements are restricted to the specified "
2389 "CPU; if I<cpu> is -1, the events are measured on all CPUs."
2390 msgstr ""
2391
2392 #. type: Plain text
2393 #: build/C/man2/perf_event_open.2:107
2394 msgid ""
2395 "Note that the combination of I<pid> == -1 and I<cpu> == -1 is not valid."
2396 msgstr ""
2397
2398 #. type: Plain text
2399 #: build/C/man2/perf_event_open.2:115
2400 msgid ""
2401 "A I<pid> E<gt> 0 and I<cpu> == -1 setting measures per-process and follows "
2402 "that process to whatever CPU the process gets scheduled to.  Per-process "
2403 "events can be created by any user."
2404 msgstr ""
2405
2406 #. type: Plain text
2407 #: build/C/man2/perf_event_open.2:126
2408 msgid ""
2409 "A I<pid> == -1 and I<cpu> E<gt>= 0 setting is per-CPU and measures all "
2410 "processes on the specified CPU.  Per-CPU events need the B<CAP_SYS_ADMIN> "
2411 "capability or a I</proc/sys/kernel/perf_event_paranoid> value of less than 1."
2412 msgstr ""
2413
2414 #. type: Plain text
2415 #: build/C/man2/perf_event_open.2:148
2416 msgid ""
2417 "The I<group_fd> argument allows event groups to be created.  An event group "
2418 "has one event which is the group leader.  The leader is created first, with "
2419 "I<group_fd> = -1.  The rest of the group members are created with subsequent "
2420 "B<perf_event_open>()  calls with I<group_fd> being set to the fd of the "
2421 "group leader.  (A single event on its own is created with I<group_fd> = -1 "
2422 "and is considered to be a group with only 1 member.)  An event group is "
2423 "scheduled onto the CPU as a unit: it will be put onto the CPU only if all of "
2424 "the events in the group can be put onto the CPU.  This means that the values "
2425 "of the member events can be meaningfully compared, added, divided (to get "
2426 "ratios), etc., with each other, since they have counted events for the same "
2427 "set of executed instructions."
2428 msgstr ""
2429
2430 #. type: Plain text
2431 #: build/C/man2/perf_event_open.2:152
2432 #, fuzzy
2433 #| msgid ""
2434 #| "The I<flags> argument is a bit mask that is composed by ORing together "
2435 #| "zero or more of the following values:"
2436 msgid ""
2437 "The I<flags> argument is formed by ORing together zero or more of the "
2438 "following values:"
2439 msgstr ""
2440 "I<flags> 引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。"
2441
2442 #. type: TP
2443 #: build/C/man2/perf_event_open.2:152
2444 #, no-wrap
2445 msgid "B<PERF_FLAG_FD_NO_GROUP>"
2446 msgstr ""
2447
2448 #.  FIXME The following sentence is unclear
2449 #.  FIXME So, why is it useful?
2450 #. type: Plain text
2451 #: build/C/man2/perf_event_open.2:159
2452 msgid ""
2453 "This flag allows creating an event as part of an event group but having no "
2454 "group leader.  It is unclear why this is useful."
2455 msgstr ""
2456
2457 #. type: TP
2458 #: build/C/man2/perf_event_open.2:159
2459 #, no-wrap
2460 msgid "B<PERF_FLAG_FD_OUTPUT>"
2461 msgstr ""
2462
2463 #. type: Plain text
2464 #: build/C/man2/perf_event_open.2:162
2465 msgid "This flag re-routes the output from an event to the group leader."
2466 msgstr ""
2467
2468 #. type: TP
2469 #: build/C/man2/perf_event_open.2:162
2470 #, fuzzy, no-wrap
2471 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
2472 msgid "B<PERF_FLAG_PID_CGROUP> (Since Linux 2.6.39)."
2473 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
2474
2475 #. type: Plain text
2476 #: build/C/man2/perf_event_open.2:185
2477 msgid ""
2478 "This flag activates per-container system-wide monitoring.  A container is an "
2479 "abstraction that isolates a set of resources for finer grain control (CPUs, "
2480 "memory, etc.).  In this mode, the event is measured only if the thread "
2481 "running on the monitored CPU belongs to the designated container (cgroup).  "
2482 "The cgroup is identified by passing a file descriptor opened on its "
2483 "directory in the cgroupfs filesystem.  For instance, if the cgroup to "
2484 "monitor is called I<test>, then a file descriptor opened on I</dev/cgroup/"
2485 "test> (assuming cgroupfs is mounted on I</dev/cgroup>)  must be passed as "
2486 "the I<pid> parameter.  cgroup monitoring is available only for system-wide "
2487 "events and may therefore require extra permissions."
2488 msgstr ""
2489
2490 #. type: Plain text
2491 #: build/C/man2/perf_event_open.2:190
2492 msgid ""
2493 "The I<perf_event_attr> structure provides detailed configuration information "
2494 "for the event being created."
2495 msgstr ""
2496
2497 #. type: Plain text
2498 #: build/C/man2/perf_event_open.2:197
2499 #, no-wrap
2500 msgid ""
2501 "struct perf_event_attr {\n"
2502 "    __u32     type;         /* Type of event */\n"
2503 "    __u32     size;         /* Size of attribute structure */\n"
2504 "    __u64     config;       /* Type-specific configuration */\n"
2505 msgstr ""
2506
2507 #. type: Plain text
2508 #: build/C/man2/perf_event_open.2:202
2509 #, no-wrap
2510 msgid ""
2511 "    union {\n"
2512 "        __u64 sample_period;    /* Period of sampling */\n"
2513 "        __u64 sample_freq;      /* Frequency of sampling */\n"
2514 "    };\n"
2515 msgstr ""
2516
2517 #. type: Plain text
2518 #: build/C/man2/perf_event_open.2:205
2519 #, no-wrap
2520 msgid ""
2521 "    __u64     sample_type;  /* Specifies values included in sample */\n"
2522 "    __u64     read_format;  /* Specifies values returned in read */\n"
2523 msgstr ""
2524
2525 #. type: Plain text
2526 #: build/C/man2/perf_event_open.2:231
2527 #, no-wrap
2528 msgid ""
2529 "    __u64     disabled       : 1,   /* off by default */\n"
2530 "              inherit        : 1,   /* children inherit it */\n"
2531 "              pinned         : 1,   /* must always be on PMU */\n"
2532 "              exclusive      : 1,   /* only group on PMU */\n"
2533 "              exclude_user   : 1,   /* don't count user */\n"
2534 "              exclude_kernel : 1,   /* don't count kernel */\n"
2535 "              exclude_hv     : 1,   /* don't count hypervisor */\n"
2536 "              exclude_idle   : 1,   /* don't count when idle */\n"
2537 "              mmap           : 1,   /* include mmap data */\n"
2538 "              comm           : 1,   /* include comm data */\n"
2539 "              freq           : 1,   /* use freq, not period */\n"
2540 "              inherit_stat   : 1,   /* per task counts */\n"
2541 "              enable_on_exec : 1,   /* next exec enables */\n"
2542 "              task           : 1,   /* trace fork/exit */\n"
2543 "              watermark      : 1,   /* wakeup_watermark */\n"
2544 "              precise_ip     : 2,   /* skid constraint */\n"
2545 "              mmap_data      : 1,   /* non-exec mmap data */\n"
2546 "              sample_id_all  : 1,   /* sample_type all events */\n"
2547 "              exclude_host   : 1,   /* don't count in host */\n"
2548 "              exclude_guest  : 1,   /* don't count in guest */\n"
2549 "              exclude_callchain_kernel : 1,\n"
2550 "                                    /* exclude kernel callchains */\n"
2551 "              exclude_callchain_user   : 1,\n"
2552 "\t                            /* exclude user callchains */\n"
2553 "              __reserved_1   : 41;\n"
2554 msgstr ""
2555
2556 #. type: Plain text
2557 #: build/C/man2/perf_event_open.2:236
2558 #, no-wrap
2559 msgid ""
2560 "    union {\n"
2561 "        __u32 wakeup_events;    /* wakeup every n events */\n"
2562 "        __u32 wakeup_watermark; /* bytes before wakeup */\n"
2563 "    };\n"
2564 msgstr ""
2565
2566 #. type: Plain text
2567 #: build/C/man2/perf_event_open.2:238
2568 #, no-wrap
2569 msgid "    __u32     bp_type;          /* breakpoint type */\n"
2570 msgstr ""
2571
2572 #. type: Plain text
2573 #: build/C/man2/perf_event_open.2:243
2574 #, no-wrap
2575 msgid ""
2576 "    union {\n"
2577 "        __u64 bp_addr;          /* breakpoint address */\n"
2578 "        __u64 config1;          /* extension of config */\n"
2579 "    };\n"
2580 msgstr ""
2581
2582 #. type: Plain text
2583 #: build/C/man2/perf_event_open.2:253
2584 #, no-wrap
2585 msgid ""
2586 "    union {\n"
2587 "        __u64 bp_len;           /* breakpoint length */\n"
2588 "        __u64 config2;          /* extension of config1 */\n"
2589 "    };\n"
2590 "    __u64   branch_sample_type; /* enum perf_branch_sample_type */\n"
2591 "    __u64   sample_regs_user;   /* user regs to dump on samples */\n"
2592 "    __u32   sample_stack_user;  /* size of stack to dump on\n"
2593 "                                   samples */\n"
2594 "    __u32   __reserved_2;       /* Align to u64 */\n"
2595 msgstr ""
2596
2597 #. type: Plain text
2598 #: build/C/man2/perf_event_open.2:255
2599 #, no-wrap
2600 msgid "};\n"
2601 msgstr ""
2602
2603 #. type: Plain text
2604 #: build/C/man2/perf_event_open.2:261
2605 msgid ""
2606 "The fields of the I<perf_event_attr> structure are described in more detail "
2607 "below:"
2608 msgstr ""
2609
2610 #. type: TP
2611 #: build/C/man2/perf_event_open.2:261 build/C/man2/perf_event_open.2:1379
2612 #, no-wrap
2613 msgid "I<type>"
2614 msgstr ""
2615
2616 #. type: Plain text
2617 #: build/C/man2/perf_event_open.2:265
2618 msgid ""
2619 "This field specifies the overall event type.  It has one of the following "
2620 "values:"
2621 msgstr ""
2622
2623 #. type: TP
2624 #: build/C/man2/perf_event_open.2:266
2625 #, no-wrap
2626 msgid "B<PERF_TYPE_HARDWARE>"
2627 msgstr ""
2628
2629 #. type: Plain text
2630 #: build/C/man2/perf_event_open.2:273
2631 msgid ""
2632 "This indicates one of the \"generalized\" hardware events provided by the "
2633 "kernel.  See the I<config> field definition for more details."
2634 msgstr ""
2635
2636 #. type: TP
2637 #: build/C/man2/perf_event_open.2:273
2638 #, no-wrap
2639 msgid "B<PERF_TYPE_SOFTWARE>"
2640 msgstr ""
2641
2642 #. type: Plain text
2643 #: build/C/man2/perf_event_open.2:277
2644 msgid ""
2645 "This indicates one of the software-defined events provided by the kernel "
2646 "(even if no hardware support is available)."
2647 msgstr ""
2648
2649 #. type: TP
2650 #: build/C/man2/perf_event_open.2:277
2651 #, no-wrap
2652 msgid "B<PERF_TYPE_TRACEPOINT>"
2653 msgstr "B<PERF_TYPE_TRACEPOINT>"
2654
2655 #. type: Plain text
2656 #: build/C/man2/perf_event_open.2:281
2657 msgid ""
2658 "This indicates a tracepoint provided by the kernel tracepoint infrastructure."
2659 msgstr ""
2660
2661 #. type: TP
2662 #: build/C/man2/perf_event_open.2:281
2663 #, no-wrap
2664 msgid "B<PERF_TYPE_HW_CACHE>"
2665 msgstr ""
2666
2667 #. type: Plain text
2668 #: build/C/man2/perf_event_open.2:287
2669 msgid ""
2670 "This indicates a hardware cache event.  This has a special encoding, "
2671 "described in the I<config> field definition."
2672 msgstr ""
2673
2674 #. type: TP
2675 #: build/C/man2/perf_event_open.2:287
2676 #, no-wrap
2677 msgid "B<PERF_TYPE_RAW>"
2678 msgstr ""
2679
2680 #. type: Plain text
2681 #: build/C/man2/perf_event_open.2:291
2682 msgid ""
2683 "This indicates a \"raw\" implementation-specific event in the I<config> "
2684 "field."
2685 msgstr ""
2686
2687 #. type: TP
2688 #: build/C/man2/perf_event_open.2:291
2689 #, no-wrap
2690 msgid "B<PERF_TYPE_BREAKPOINT> (Since Linux 2.6.33)"
2691 msgstr "B<PERF_TYPE_BREAKPOINT> (Linux 2.6.33 以降)"
2692
2693 #. type: Plain text
2694 #: build/C/man2/perf_event_open.2:296
2695 msgid ""
2696 "This indicates a hardware breakpoint as provided by the CPU.  Breakpoints "
2697 "can be read/write accesses to an address as well as execution of an "
2698 "instruction address."
2699 msgstr ""
2700
2701 #. type: TP
2702 #: build/C/man2/perf_event_open.2:296
2703 #, no-wrap
2704 msgid "dynamic PMU"
2705 msgstr ""
2706
2707 #. type: Plain text
2708 #: build/C/man2/perf_event_open.2:315
2709 msgid ""
2710 "Since Linux 2.6.39, B<perf_event_open>()  can support multiple PMUs.  To "
2711 "enable this, a value exported by the kernel can be used in the I<type> field "
2712 "to indicate which PMU to use.  The value to use can be found in the sysfs "
2713 "filesystem: there is a subdirectory per PMU instance under I</sys/bus/"
2714 "event_source/devices>.  In each sub-directory there is a I<type> file whose "
2715 "content is an integer that can be used in the I<type> field.  For instance, "
2716 "I</sys/bus/event_source/devices/cpu/type> contains the value for the core "
2717 "CPU PMU, which is usually 4."
2718 msgstr ""
2719
2720 #. type: TP
2721 #: build/C/man2/perf_event_open.2:316 build/C/man2/perf_event_open.2:1327
2722 #, no-wrap
2723 msgid "I<size>"
2724 msgstr ""
2725
2726 #. type: Plain text
2727 #: build/C/man2/perf_event_open.2:325
2728 msgid ""
2729 "The size of the I<perf_event_attr> structure for forward/backward "
2730 "compatibility.  Set this using I<sizeof(struct perf_event_attr)> to allow "
2731 "the kernel to see the struct size at the time of compilation."
2732 msgstr ""
2733
2734 #. type: Plain text
2735 #: build/C/man2/perf_event_open.2:340
2736 msgid ""
2737 "The related define B<PERF_ATTR_SIZE_VER0> is set to 64; this was the size of "
2738 "the first published struct.  B<PERF_ATTR_SIZE_VER1> is 72, corresponding to "
2739 "the addition of breakpoints in Linux 2.6.33.  B<PERF_ATTR_SIZE_VER2> is 80 "
2740 "corresponding to the addition of branch sampling in Linux 3.4.  "
2741 "B<PERF_ATR_SIZE_VER3> is 96 corresponding to the addition of "
2742 "I<sample_regs_user> and I<sample_stack_user> in Linux 3.7."
2743 msgstr ""
2744
2745 #. type: TP
2746 #: build/C/man2/perf_event_open.2:340
2747 #, no-wrap
2748 msgid "I<config>"
2749 msgstr ""
2750
2751 #. type: Plain text
2752 #: build/C/man2/perf_event_open.2:351
2753 msgid ""
2754 "This specifies which event you want, in conjunction with the I<type> field.  "
2755 "The I<config1> and I<config2> fields are also taken into account in cases "
2756 "where 64 bits is not enough to fully specify the event.  The encoding of "
2757 "these fields are event dependent."
2758 msgstr ""
2759
2760 #. type: Plain text
2761 #: build/C/man2/perf_event_open.2:357
2762 msgid ""
2763 "The most significant bit (bit 63) of I<config> signifies CPU-specific (raw) "
2764 "counter configuration data; if the most significant bit is unset, the next 7 "
2765 "bits are an event type and the rest of the bits are the event identifier."
2766 msgstr ""
2767
2768 #. type: Plain text
2769 #: build/C/man2/perf_event_open.2:368
2770 msgid ""
2771 "There are various ways to set the I<config> field that are dependent on the "
2772 "value of the previously described I<type> field.  What follows are various "
2773 "possible settings for I<config> separated out by I<type>."
2774 msgstr ""
2775
2776 #. type: Plain text
2777 #: build/C/man2/perf_event_open.2:378
2778 msgid ""
2779 "If I<type> is B<PERF_TYPE_HARDWARE>, we are measuring one of the generalized "
2780 "hardware CPU events.  Not all of these are available on all platforms.  Set "
2781 "I<config> to one of the following:"
2782 msgstr ""
2783
2784 #. type: TP
2785 #: build/C/man2/perf_event_open.2:379
2786 #, no-wrap
2787 msgid "B<PERF_COUNT_HW_CPU_CYCLES>"
2788 msgstr ""
2789
2790 #. type: Plain text
2791 #: build/C/man2/perf_event_open.2:383
2792 msgid "Total cycles.  Be wary of what happens during CPU frequency scaling."
2793 msgstr ""
2794
2795 #. type: TP
2796 #: build/C/man2/perf_event_open.2:383
2797 #, no-wrap
2798 msgid "B<PERF_COUNT_HW_INSTRUCTIONS>"
2799 msgstr ""
2800
2801 #. type: Plain text
2802 #: build/C/man2/perf_event_open.2:388
2803 msgid ""
2804 "Retired instructions.  Be careful, these can be affected by various issues, "
2805 "most notably hardware interrupt counts."
2806 msgstr ""
2807
2808 #. type: TP
2809 #: build/C/man2/perf_event_open.2:388
2810 #, no-wrap
2811 msgid "B<PERF_COUNT_HW_CACHE_REFERENCES>"
2812 msgstr ""
2813
2814 #. type: Plain text
2815 #: build/C/man2/perf_event_open.2:395
2816 msgid ""
2817 "Cache accesses.  Usually this indicates Last Level Cache accesses but this "
2818 "may vary depending on your CPU.  This may include prefetches and coherency "
2819 "messages; again this depends on the design of your CPU."
2820 msgstr ""
2821
2822 #. type: TP
2823 #: build/C/man2/perf_event_open.2:395
2824 #, no-wrap
2825 msgid "B<PERF_COUNT_HW_CACHE_MISSES>"
2826 msgstr ""
2827
2828 #. type: Plain text
2829 #: build/C/man2/perf_event_open.2:402
2830 msgid ""
2831 "Cache misses.  Usually this indicates Last Level Cache misses; this is "
2832 "intended to be used in conjunction with the "
2833 "B<PERF_COUNT_HW_CACHE_REFERENCES> event to calculate cache miss rates."
2834 msgstr ""
2835
2836 #. type: TP
2837 #: build/C/man2/perf_event_open.2:402
2838 #, no-wrap
2839 msgid "B<PERF_COUNT_HW_BRANCH_INSTRUCTIONS>"
2840 msgstr ""
2841
2842 #. type: Plain text
2843 #: build/C/man2/perf_event_open.2:407
2844 msgid ""
2845 "Retired branch instructions.  Prior to Linux 2.6.34, this used the wrong "
2846 "event on AMD processors."
2847 msgstr ""
2848
2849 #. type: TP
2850 #: build/C/man2/perf_event_open.2:407
2851 #, no-wrap
2852 msgid "B<PERF_COUNT_HW_BRANCH_MISSES>"
2853 msgstr ""
2854
2855 #. type: Plain text
2856 #: build/C/man2/perf_event_open.2:410
2857 msgid "Mispredicted branch instructions."
2858 msgstr ""
2859
2860 #. type: TP
2861 #: build/C/man2/perf_event_open.2:410
2862 #, no-wrap
2863 msgid "B<PERF_COUNT_HW_BUS_CYCLES>"
2864 msgstr ""
2865
2866 #. type: Plain text
2867 #: build/C/man2/perf_event_open.2:413
2868 msgid "Bus cycles, which can be different from total cycles."
2869 msgstr ""
2870
2871 #. type: TP
2872 #: build/C/man2/perf_event_open.2:413
2873 #, no-wrap
2874 msgid "B<PERF_COUNT_HW_STALLED_CYCLES_FRONTEND> (Since Linux 3.0)"
2875 msgstr "B<PERF_COUNT_HW_STALLED_CYCLES_FRONTEND> (Linux 3.0 以降)"
2876
2877 #. type: Plain text
2878 #: build/C/man2/perf_event_open.2:416
2879 msgid "Stalled cycles during issue."
2880 msgstr ""
2881
2882 #. type: TP
2883 #: build/C/man2/perf_event_open.2:416
2884 #, no-wrap
2885 msgid "B<PERF_COUNT_HW_STALLED_CYCLES_BACKEND> (Since Linux 3.0)"
2886 msgstr ""
2887
2888 #. type: Plain text
2889 #: build/C/man2/perf_event_open.2:419
2890 msgid "Stalled cycles during retirement."
2891 msgstr ""
2892
2893 #. type: TP
2894 #: build/C/man2/perf_event_open.2:419
2895 #, no-wrap
2896 msgid "B<PERF_COUNT_HW_REF_CPU_CYCLES> (Since Linux 3.3)"
2897 msgstr "B<PERF_COUNT_HW_REF_CPU_CYCLES> (Linux 3.3 以降)"
2898
2899 #. type: Plain text
2900 #: build/C/man2/perf_event_open.2:422
2901 msgid "Total cycles; not affected by CPU frequency scaling."
2902 msgstr ""
2903
2904 #. type: Plain text
2905 #: build/C/man2/perf_event_open.2:432
2906 msgid ""
2907 "If I<type> is B<PERF_TYPE_SOFTWARE>, we are measuring software events "
2908 "provided by the kernel.  Set I<config> to one of the following:"
2909 msgstr ""
2910
2911 #. type: TP
2912 #: build/C/man2/perf_event_open.2:433
2913 #, no-wrap
2914 msgid "B<PERF_COUNT_SW_CPU_CLOCK>"
2915 msgstr ""
2916
2917 #. type: Plain text
2918 #: build/C/man2/perf_event_open.2:436
2919 msgid "This reports the CPU clock, a high-resolution per-CPU timer."
2920 msgstr ""
2921
2922 #. type: TP
2923 #: build/C/man2/perf_event_open.2:436
2924 #, no-wrap
2925 msgid "B<PERF_COUNT_SW_TASK_CLOCK>"
2926 msgstr ""
2927
2928 #. type: Plain text
2929 #: build/C/man2/perf_event_open.2:439
2930 msgid "This reports a clock count specific to the task that is running."
2931 msgstr ""
2932
2933 #. type: TP
2934 #: build/C/man2/perf_event_open.2:439
2935 #, no-wrap
2936 msgid "B<PERF_COUNT_SW_PAGE_FAULTS>"
2937 msgstr ""
2938
2939 #. type: Plain text
2940 #: build/C/man2/perf_event_open.2:442
2941 msgid "This reports the number of page faults."
2942 msgstr ""
2943
2944 #. type: TP
2945 #: build/C/man2/perf_event_open.2:442
2946 #, no-wrap
2947 msgid "B<PERF_COUNT_SW_CONTEXT_SWITCHES>"
2948 msgstr ""
2949
2950 #. type: Plain text
2951 #: build/C/man2/perf_event_open.2:447
2952 msgid ""
2953 "This counts context switches.  Until Linux 2.6.34, these were all reported "
2954 "as user-space events, after that they are reported as happening in the "
2955 "kernel."
2956 msgstr ""
2957
2958 #. type: TP
2959 #: build/C/man2/perf_event_open.2:447
2960 #, no-wrap
2961 msgid "B<PERF_COUNT_SW_CPU_MIGRATIONS>"
2962 msgstr ""
2963
2964 #. type: Plain text
2965 #: build/C/man2/perf_event_open.2:451
2966 msgid "This reports the number of times the process has migrated to a new CPU."
2967 msgstr ""
2968
2969 #. type: TP
2970 #: build/C/man2/perf_event_open.2:451
2971 #, no-wrap
2972 msgid "B<PERF_COUNT_SW_PAGE_FAULTS_MIN>"
2973 msgstr ""
2974
2975 #. type: Plain text
2976 #: build/C/man2/perf_event_open.2:455
2977 msgid ""
2978 "This counts the number of minor page faults.  These did not require disk I/O "
2979 "to handle."
2980 msgstr ""
2981
2982 #. type: TP
2983 #: build/C/man2/perf_event_open.2:455
2984 #, no-wrap
2985 msgid "B<PERF_COUNT_SW_PAGE_FAULTS_MAJ>"
2986 msgstr ""
2987
2988 #. type: Plain text
2989 #: build/C/man2/perf_event_open.2:459
2990 msgid ""
2991 "This counts the number of major page faults.  These required disk I/O to "
2992 "handle."
2993 msgstr ""
2994
2995 #. type: TP
2996 #: build/C/man2/perf_event_open.2:459
2997 #, no-wrap
2998 msgid "B<PERF_COUNT_SW_ALIGNMENT_FAULTS> (Since Linux 2.6.33)"
2999 msgstr "B<PERF_COUNT_SW_ALIGNMENT_FAULTS> (Linux 2.6.33 以降)"
3000
3001 #. type: Plain text
3002 #: build/C/man2/perf_event_open.2:465
3003 msgid ""
3004 "This counts the number of alignment faults.  These happen when unaligned "
3005 "memory accesses happen; the kernel can handle these but it reduces "
3006 "performance.  This happens only on some architectures (never on x86)."
3007 msgstr ""
3008
3009 #. type: TP
3010 #: build/C/man2/perf_event_open.2:465
3011 #, no-wrap
3012 msgid "B<PERF_COUNT_SW_EMULATION_FAULTS> (Since Linux 2.6.33)"
3013 msgstr "B<PERF_COUNT_SW_EMULATION_FAULTS> (Linux 2.6.33 以降)"
3014
3015 #. type: Plain text
3016 #: build/C/man2/perf_event_open.2:471
3017 msgid ""
3018 "This counts the number of emulation faults.  The kernel sometimes traps on "
3019 "unimplemented instructions and emulates them for user space.  This can "
3020 "negatively impact performance."
3021 msgstr ""
3022
3023 #. type: Plain text
3024 #: build/C/man2/perf_event_open.2:484
3025 msgid ""
3026 "If I<type> is B<PERF_TYPE_TRACEPOINT>, then we are measuring kernel "
3027 "tracepoints.  The value to use in I<config> can be obtained from under "
3028 "debugfs I<tracing/events/*/*/id> if ftrace is enabled in the kernel."
3029 msgstr ""
3030
3031 #. type: Plain text
3032 #: build/C/man2/perf_event_open.2:495
3033 msgid ""
3034 "If I<type> is B<PERF_TYPE_HW_CACHE>, then we are measuring a hardware CPU "
3035 "cache event.  To calculate the appropriate I<config> value use the following "
3036 "equation:"
3037 msgstr ""
3038
3039 #. type: Plain text
3040 #: build/C/man2/perf_event_open.2:500
3041 #, no-wrap
3042 msgid ""
3043 "    (perf_hw_cache_id) | (perf_hw_cache_op_id E<lt>E<lt> 8) |\n"
3044 "    (perf_hw_cache_op_result_id E<lt>E<lt> 16)\n"
3045 msgstr ""
3046
3047 #. type: Plain text
3048 #: build/C/man2/perf_event_open.2:505
3049 msgid "where I<perf_hw_cache_id> is one of:"
3050 msgstr ""
3051
3052 #. type: TP
3053 #: build/C/man2/perf_event_open.2:506
3054 #, no-wrap
3055 msgid "B<PERF_COUNT_HW_CACHE_L1D>"
3056 msgstr ""
3057
3058 #. type: Plain text
3059 #: build/C/man2/perf_event_open.2:509
3060 msgid "for measuring Level 1 Data Cache"
3061 msgstr ""
3062
3063 #. type: TP
3064 #: build/C/man2/perf_event_open.2:509
3065 #, no-wrap
3066 msgid "B<PERF_COUNT_HW_CACHE_L1I>"
3067 msgstr ""
3068
3069 #. type: Plain text
3070 #: build/C/man2/perf_event_open.2:512
3071 msgid "for measuring Level 1 Instruction Cache"
3072 msgstr ""
3073
3074 #. type: TP
3075 #: build/C/man2/perf_event_open.2:512
3076 #, no-wrap
3077 msgid "B<PERF_COUNT_HW_CACHE_LL>"
3078 msgstr ""
3079
3080 #. type: Plain text
3081 #: build/C/man2/perf_event_open.2:515
3082 msgid "for measuring Last-Level Cache"
3083 msgstr ""
3084
3085 #. type: TP
3086 #: build/C/man2/perf_event_open.2:515
3087 #, no-wrap
3088 msgid "B<PERF_COUNT_HW_CACHE_DTLB>"
3089 msgstr ""
3090
3091 #. type: Plain text
3092 #: build/C/man2/perf_event_open.2:518
3093 msgid "for measuring the Data TLB"
3094 msgstr ""
3095
3096 #. type: TP
3097 #: build/C/man2/perf_event_open.2:518
3098 #, no-wrap
3099 msgid "B<PERF_COUNT_HW_CACHE_ITLB>"
3100 msgstr ""
3101
3102 #. type: Plain text
3103 #: build/C/man2/perf_event_open.2:521
3104 msgid "for measuring the Instruction TLB"
3105 msgstr ""
3106
3107 #. type: TP
3108 #: build/C/man2/perf_event_open.2:521
3109 #, no-wrap
3110 msgid "B<PERF_COUNT_HW_CACHE_BPU>"
3111 msgstr ""
3112
3113 #. type: Plain text
3114 #: build/C/man2/perf_event_open.2:524
3115 msgid "for measuring the branch prediction unit"
3116 msgstr ""
3117
3118 #. type: TP
3119 #: build/C/man2/perf_event_open.2:524
3120 #, no-wrap
3121 msgid "B<PERF_COUNT_HW_CACHE_NODE> (Since Linux 3.0)"
3122 msgstr "B<PERF_COUNT_HW_CACHE_NODE> (Linux 3.0 以降)"
3123
3124 #. type: Plain text
3125 #: build/C/man2/perf_event_open.2:527
3126 msgid "for measuring local memory accesses"
3127 msgstr ""
3128
3129 #. type: Plain text
3130 #: build/C/man2/perf_event_open.2:532
3131 msgid "and I<perf_hw_cache_op_id> is one of"
3132 msgstr ""
3133
3134 #. type: TP
3135 #: build/C/man2/perf_event_open.2:533
3136 #, no-wrap
3137 msgid "B<PERF_COUNT_HW_CACHE_OP_READ>"
3138 msgstr ""
3139
3140 #. type: Plain text
3141 #: build/C/man2/perf_event_open.2:536
3142 msgid "for read accesses"
3143 msgstr ""
3144
3145 #. type: TP
3146 #: build/C/man2/perf_event_open.2:536
3147 #, no-wrap
3148 msgid "B<PERF_COUNT_HW_CACHE_OP_WRITE>"
3149 msgstr ""
3150
3151 #. type: Plain text
3152 #: build/C/man2/perf_event_open.2:539
3153 msgid "for write accesses"
3154 msgstr ""
3155
3156 #. type: TP
3157 #: build/C/man2/perf_event_open.2:539
3158 #, no-wrap
3159 msgid "B<PERF_COUNT_HW_CACHE_OP_PREFETCH>"
3160 msgstr ""
3161
3162 #. type: Plain text
3163 #: build/C/man2/perf_event_open.2:542
3164 msgid "for prefetch accesses"
3165 msgstr ""
3166
3167 #. type: Plain text
3168 #: build/C/man2/perf_event_open.2:547
3169 msgid "and I<perf_hw_cache_op_result_id> is one of"
3170 msgstr ""
3171
3172 #. type: TP
3173 #: build/C/man2/perf_event_open.2:548
3174 #, no-wrap
3175 msgid "B<PERF_COUNT_HW_CACHE_RESULT_ACCESS>"
3176 msgstr ""
3177
3178 #. type: Plain text
3179 #: build/C/man2/perf_event_open.2:551
3180 msgid "to measure accesses"
3181 msgstr ""
3182
3183 #. type: TP
3184 #: build/C/man2/perf_event_open.2:551
3185 #, no-wrap
3186 msgid "B<PERF_COUNT_HW_CACHE_RESULT_MISS>"
3187 msgstr ""
3188
3189 #. type: Plain text
3190 #: build/C/man2/perf_event_open.2:554
3191 msgid "to measure misses"
3192 msgstr ""
3193
3194 #. type: Plain text
3195 #: build/C/man2/perf_event_open.2:572
3196 msgid ""
3197 "If I<type> is B<PERF_TYPE_RAW>, then a custom \"raw\" I<config> value is "
3198 "needed.  Most CPUs support events that are not covered by the \"generalized"
3199 "\" events.  These are implementation defined; see your CPU manual (for "
3200 "example the Intel Volume 3B documentation or the AMD BIOS and Kernel "
3201 "Developer Guide).  The libpfm4 library can be used to translate from the "
3202 "name in the architectural manuals to the raw hex value B<perf_event_open>()  "
3203 "expects in this field."
3204 msgstr ""
3205
3206 #. type: Plain text
3207 #: build/C/man2/perf_event_open.2:581
3208 msgid ""
3209 "If I<type> is B<PERF_TYPE_BREAKPOINT>, then leave I<config> set to zero.  "
3210 "Its parameters are set in other places."
3211 msgstr ""
3212
3213 #. type: TP
3214 #: build/C/man2/perf_event_open.2:582
3215 #, no-wrap
3216 msgid "I<sample_period>, I<sample_freq>"
3217 msgstr ""
3218
3219 #. type: Plain text
3220 #: build/C/man2/perf_event_open.2:594
3221 msgid ""
3222 "A \"sampling\" counter is one that generates an interrupt every N events, "
3223 "where N is given by I<sample_period>.  A sampling counter has "
3224 "I<sample_period> E<gt> 0.  When an overflow interrupt occurs, requested data "
3225 "is recorded in the mmap buffer.  The I<sample_type> field controls what data "
3226 "is recorded on each interrupt."
3227 msgstr ""
3228
3229 #. type: Plain text
3230 #: build/C/man2/perf_event_open.2:604
3231 msgid ""
3232 "I<sample_freq> can be used if you wish to use frequency rather than period.  "
3233 "In this case you set the I<freq> flag.  The kernel will adjust the sampling "
3234 "period to try and achieve the desired rate.  The rate of adjustment is a "
3235 "timer tick."
3236 msgstr ""
3237
3238 #. type: TP
3239 #: build/C/man2/perf_event_open.2:604
3240 #, no-wrap
3241 msgid "I<sample_type>"
3242 msgstr ""
3243
3244 #. type: Plain text
3245 #: build/C/man2/perf_event_open.2:616
3246 msgid ""
3247 "The various bits in this field specify which values to include in the "
3248 "sample.  They will be recorded in a ring-buffer, which is available to user "
3249 "space using B<mmap>(2).  The order in which the values are saved in the "
3250 "sample are documented in the MMAP Layout subsection below; it is not the "
3251 "I<enum perf_event_sample_format> order."
3252 msgstr ""
3253
3254 #. type: TP
3255 #: build/C/man2/perf_event_open.2:617
3256 #, no-wrap
3257 msgid "B<PERF_SAMPLE_IP>"
3258 msgstr ""
3259
3260 #. type: Plain text
3261 #: build/C/man2/perf_event_open.2:620
3262 msgid "Records instruction pointer."
3263 msgstr ""
3264
3265 #. type: TP
3266 #: build/C/man2/perf_event_open.2:620
3267 #, no-wrap
3268 msgid "B<PERF_SAMPLE_TID>"
3269 msgstr ""
3270
3271 #. type: Plain text
3272 #: build/C/man2/perf_event_open.2:623
3273 msgid "Records the process and thread IDs."
3274 msgstr ""
3275
3276 #. type: TP
3277 #: build/C/man2/perf_event_open.2:623
3278 #, no-wrap
3279 msgid "B<PERF_SAMPLE_TIME>"
3280 msgstr ""
3281
3282 #. type: Plain text
3283 #: build/C/man2/perf_event_open.2:626
3284 msgid "Records a timestamp."
3285 msgstr ""
3286
3287 #. type: TP
3288 #: build/C/man2/perf_event_open.2:626
3289 #, no-wrap
3290 msgid "B<PERF_SAMPLE_ADDR>"
3291 msgstr ""
3292
3293 #. type: Plain text
3294 #: build/C/man2/perf_event_open.2:629
3295 msgid "Records an address, if applicable."
3296 msgstr ""
3297
3298 #. type: TP
3299 #: build/C/man2/perf_event_open.2:629
3300 #, no-wrap
3301 msgid "B<PERF_SAMPLE_READ>"
3302 msgstr ""
3303
3304 #. type: Plain text
3305 #: build/C/man2/perf_event_open.2:632
3306 msgid ""
3307 "Record counter values for all events in a group, not just the group leader."
3308 msgstr ""
3309
3310 #. type: TP
3311 #: build/C/man2/perf_event_open.2:632
3312 #, no-wrap
3313 msgid "B<PERF_SAMPLE_CALLCHAIN>"
3314 msgstr ""
3315
3316 #. type: Plain text
3317 #: build/C/man2/perf_event_open.2:635
3318 msgid "Records the callchain (stack backtrace)."
3319 msgstr ""
3320
3321 #. type: TP
3322 #: build/C/man2/perf_event_open.2:635
3323 #, no-wrap
3324 msgid "B<PERF_SAMPLE_ID>"
3325 msgstr ""
3326
3327 #. type: Plain text
3328 #: build/C/man2/perf_event_open.2:638
3329 msgid "Records a unique ID for the opened event's group leader."
3330 msgstr ""
3331
3332 #. type: TP
3333 #: build/C/man2/perf_event_open.2:638
3334 #, no-wrap
3335 msgid "B<PERF_SAMPLE_CPU>"
3336 msgstr ""
3337
3338 #. type: Plain text
3339 #: build/C/man2/perf_event_open.2:641
3340 msgid "Records CPU number."
3341 msgstr ""
3342
3343 #. type: TP
3344 #: build/C/man2/perf_event_open.2:641
3345 #, no-wrap
3346 msgid "B<PERF_SAMPLE_PERIOD>"
3347 msgstr ""
3348
3349 #. type: Plain text
3350 #: build/C/man2/perf_event_open.2:644
3351 msgid "Records the current sampling period."
3352 msgstr ""
3353
3354 #. type: TP
3355 #: build/C/man2/perf_event_open.2:644
3356 #, no-wrap
3357 msgid "B<PERF_SAMPLE_STREAM_ID>"
3358 msgstr ""
3359
3360 #. type: Plain text
3361 #: build/C/man2/perf_event_open.2:651
3362 msgid ""
3363 "Records a unique ID for the opened event.  Unlike B<PERF_SAMPLE_ID> the "
3364 "actual ID is returned, not the group leader.  This ID is the same as the one "
3365 "returned by PERF_FORMAT_ID."
3366 msgstr ""
3367
3368 #. type: TP
3369 #: build/C/man2/perf_event_open.2:651
3370 #, no-wrap
3371 msgid "B<PERF_SAMPLE_RAW>"
3372 msgstr ""
3373
3374 #. type: Plain text
3375 #: build/C/man2/perf_event_open.2:655
3376 msgid ""
3377 "Records additional data, if applicable.  Usually returned by tracepoint "
3378 "events."
3379 msgstr ""
3380
3381 #. type: TP
3382 #: build/C/man2/perf_event_open.2:655
3383 #, no-wrap
3384 msgid "B<PERF_SAMPLE_BRANCH_STACK> (Since Linux 3.4)"
3385 msgstr "B<PERF_SAMPLE_BRANCH_STACK> (Linux 3.4 以降)"
3386
3387 #. type: Plain text
3388 #: build/C/man2/perf_event_open.2:660
3389 msgid ""
3390 "This provides a record of recent branches, as provided by CPU branch "
3391 "sampling hardware (such as Intel Last Branch Record).  Not all hardware "
3392 "supports this feature."
3393 msgstr ""
3394
3395 #. type: Plain text
3396 #: build/C/man2/perf_event_open.2:664
3397 msgid ""
3398 "See the I<branch_sample_type> field for how to filter which branches are "
3399 "reported."
3400 msgstr ""
3401
3402 #. type: TP
3403 #: build/C/man2/perf_event_open.2:664
3404 #, no-wrap
3405 msgid "B<PERF_SAMPLE_REGS_USER> (Since Linux 3.7)"
3406 msgstr "B<PERF_SAMPLE_REGS_USER> (Linux 3.7 以降)"
3407
3408 #. type: Plain text
3409 #: build/C/man2/perf_event_open.2:668
3410 msgid ""
3411 "Records the current user-level CPU register state (the values in the process "
3412 "before the kernel was called)."
3413 msgstr ""
3414
3415 #. type: TP
3416 #: build/C/man2/perf_event_open.2:668
3417 #, no-wrap
3418 msgid "B<PERF_SAMPLE_STACK_USER> (Since Linux 3.7)"
3419 msgstr "B<PERF_SAMPLE_STACK_USER> (Linux 3.7 以降)"
3420
3421 #. type: Plain text
3422 #: build/C/man2/perf_event_open.2:671
3423 msgid "Records the user level stack, allowing stack unwinding."
3424 msgstr ""
3425
3426 #. type: TP
3427 #: build/C/man2/perf_event_open.2:671
3428 #, no-wrap
3429 msgid "B<PERF_SAMPLE_WEIGHT> (Since Linux 3.10)"
3430 msgstr "B<PERF_SAMPLE_WEIGHT> (Linux 3.10 以降)"
3431
3432 #. type: Plain text
3433 #: build/C/man2/perf_event_open.2:677
3434 msgid ""
3435 "Records a hardware provided weight value that expresses how costly the "
3436 "sampled event was.  This allows the hardware to highlight expensive events "
3437 "in a profile."
3438 msgstr ""
3439
3440 #. type: TP
3441 #: build/C/man2/perf_event_open.2:677
3442 #, no-wrap
3443 msgid "B<PERF_SAMPLE_DATA_SRC> (Since Linux 3.10)"
3444 msgstr "B<PERF_SAMPLE_DATA_SRC> (Linux 3.10 以降)"
3445
3446 #. type: Plain text
3447 #: build/C/man2/perf_event_open.2:683
3448 msgid ""
3449 "Records the data source: where in the memory hierarchy the data associated "
3450 "with the sampled instruction came from.  This is only available if the "
3451 "underlying hardware supports this feature."
3452 msgstr ""
3453
3454 #. type: TP
3455 #: build/C/man2/perf_event_open.2:684
3456 #, no-wrap
3457 msgid "I<read_format>"
3458 msgstr ""
3459
3460 #. type: Plain text
3461 #: build/C/man2/perf_event_open.2:691
3462 msgid ""
3463 "This field specifies the format of the data returned by B<read>(2)  on a "
3464 "B<perf_event_open>()  file descriptor."
3465 msgstr ""
3466
3467 #. type: TP
3468 #: build/C/man2/perf_event_open.2:692
3469 #, no-wrap
3470 msgid "B<PERF_FORMAT_TOTAL_TIME_ENABLED>"
3471 msgstr ""
3472
3473 #. type: Plain text
3474 #: build/C/man2/perf_event_open.2:699
3475 msgid ""
3476 "Adds the 64-bit I<time_enabled> field.  This can be used to calculate "
3477 "estimated totals if the PMU is overcommitted and multiplexing is happening."
3478 msgstr ""
3479
3480 #. type: TP
3481 #: build/C/man2/perf_event_open.2:699
3482 #, no-wrap
3483 msgid "B<PERF_FORMAT_TOTAL_TIME_RUNNING>"
3484 msgstr ""
3485
3486 #. type: Plain text
3487 #: build/C/man2/perf_event_open.2:706
3488 msgid ""
3489 "Adds the 64-bit I<time_running> field.  This can be used to calculate "
3490 "estimated totals if the PMU is overcommitted and multiplexing is happening."
3491 msgstr ""
3492
3493 #. type: TP
3494 #: build/C/man2/perf_event_open.2:706
3495 #, no-wrap
3496 msgid "B<PERF_FORMAT_ID>"
3497 msgstr ""
3498
3499 #. type: Plain text
3500 #: build/C/man2/perf_event_open.2:709
3501 msgid "Adds a 64-bit unique value that corresponds to the event group."
3502 msgstr ""
3503
3504 #. type: TP
3505 #: build/C/man2/perf_event_open.2:709
3506 #, no-wrap
3507 msgid "B<PERF_FORMAT_GROUP>"
3508 msgstr ""
3509
3510 #. type: Plain text
3511 #: build/C/man2/perf_event_open.2:712
3512 msgid "Allows all counter values in an event group to be read with one read."
3513 msgstr ""
3514
3515 #. type: TP
3516 #: build/C/man2/perf_event_open.2:713
3517 #, no-wrap
3518 msgid "I<disabled>"
3519 msgstr ""
3520
3521 #. type: Plain text
3522 #: build/C/man2/perf_event_open.2:723
3523 msgid ""
3524 "The I<disabled> bit specifies whether the counter starts out disabled or "
3525 "enabled.  If disabled, the event can later be enabled by B<ioctl>(2), "
3526 "B<prctl>(2), or I<enable_on_exec>."
3527 msgstr ""
3528
3529 #. type: TP
3530 #: build/C/man2/perf_event_open.2:723
3531 #, no-wrap
3532 msgid "I<inherit>"
3533 msgstr ""
3534
3535 #. type: Plain text
3536 #: build/C/man2/perf_event_open.2:732
3537 msgid ""
3538 "The I<inherit> bit specifies that this counter should count events of child "
3539 "tasks as well as the task specified.  This applies only to new children, not "
3540 "to any existing children at the time the counter is created (nor to any new "
3541 "children of existing children)."
3542 msgstr ""
3543
3544 #. type: Plain text
3545 #: build/C/man2/perf_event_open.2:737
3546 msgid ""
3547 "Inherit does not work for some combinations of I<read_format>s, such as "
3548 "B<PERF_FORMAT_GROUP>."
3549 msgstr ""
3550
3551 #. type: TP
3552 #: build/C/man2/perf_event_open.2:737
3553 #, no-wrap
3554 msgid "I<pinned>"
3555 msgstr ""
3556
3557 #. type: Plain text
3558 #: build/C/man2/perf_event_open.2:750
3559 msgid ""
3560 "The I<pinned> bit specifies that the counter should always be on the CPU if "
3561 "at all possible.  It applies only to hardware counters and only to group "
3562 "leaders.  If a pinned counter cannot be put onto the CPU (e.g., because "
3563 "there are not enough hardware counters or because of a conflict with some "
3564 "other event), then the counter goes into an 'error' state, where reads "
3565 "return end-of-file (i.e., B<read>(2)  returns 0) until the counter is "
3566 "subsequently enabled or disabled."
3567 msgstr ""
3568
3569 #. type: TP
3570 #: build/C/man2/perf_event_open.2:750
3571 #, no-wrap
3572 msgid "I<exclusive>"
3573 msgstr ""
3574
3575 #. type: Plain text
3576 #: build/C/man2/perf_event_open.2:759
3577 msgid ""
3578 "The I<exclusive> bit specifies that when this counter's group is on the CPU, "
3579 "it should be the only group using the CPU's counters.  In the future this "
3580 "may allow monitoring programs to support PMU features that need to run alone "
3581 "so that they do not disrupt other hardware counters."
3582 msgstr ""
3583
3584 #. type: TP
3585 #: build/C/man2/perf_event_open.2:759
3586 #, no-wrap
3587 msgid "I<exclude_user>"
3588 msgstr ""
3589
3590 #. type: Plain text
3591 #: build/C/man2/perf_event_open.2:762
3592 msgid ""
3593 "If this bit is set, the count excludes events that happen in user space."
3594 msgstr ""
3595
3596 #. type: TP
3597 #: build/C/man2/perf_event_open.2:762
3598 #, no-wrap
3599 msgid "I<exclude_kernel>"
3600 msgstr ""
3601
3602 #. type: Plain text
3603 #: build/C/man2/perf_event_open.2:765
3604 msgid ""
3605 "If this bit is set, the count excludes events that happen in kernel-space."
3606 msgstr ""
3607
3608 #. type: TP
3609 #: build/C/man2/perf_event_open.2:765
3610 #, no-wrap
3611 msgid "I<exclude_hv>"
3612 msgstr ""
3613
3614 #. type: Plain text
3615 #: build/C/man2/perf_event_open.2:773
3616 msgid ""
3617 "If this bit is set, the count excludes events that happen in the "
3618 "hypervisor.  This is mainly for PMUs that have built-in support for handling "
3619 "this (such as POWER).  Extra support is needed for handling hypervisor "
3620 "measurements on most machines."
3621 msgstr ""
3622
3623 #. type: TP
3624 #: build/C/man2/perf_event_open.2:773
3625 #, no-wrap
3626 msgid "I<exclude_idle>"
3627 msgstr ""
3628
3629 #. type: Plain text
3630 #: build/C/man2/perf_event_open.2:776
3631 msgid "If set, don't count when the CPU is idle."
3632 msgstr ""
3633
3634 #. type: TP
3635 #: build/C/man2/perf_event_open.2:776
3636 #, no-wrap
3637 msgid "I<mmap>"
3638 msgstr ""
3639
3640 #. type: Plain text
3641 #: build/C/man2/perf_event_open.2:781
3642 msgid "The I<mmap> bit enables recording of exec mmap events."
3643 msgstr ""
3644
3645 #. type: TP
3646 #: build/C/man2/perf_event_open.2:781
3647 #, no-wrap
3648 msgid "I<comm>"
3649 msgstr ""
3650
3651 #. type: Plain text
3652 #: build/C/man2/perf_event_open.2:792
3653 msgid ""
3654 "The I<comm> bit enables tracking of process command name as modified by the "
3655 "I<exec>(2)  and I<prctl>(PR_SET_NAME)  system calls.  Unfortunately for "
3656 "tools, there is no way to distinguish one system call versus the other."
3657 msgstr ""
3658
3659 #. type: TP
3660 #: build/C/man2/perf_event_open.2:792
3661 #, no-wrap
3662 msgid "I<freq>"
3663 msgstr ""
3664
3665 #. type: Plain text
3666 #: build/C/man2/perf_event_open.2:799
3667 msgid ""
3668 "If this bit is set, then I<sample_frequency> not I<sample_period> is used "
3669 "when setting up the sampling interval."
3670 msgstr ""
3671
3672 #. type: TP
3673 #: build/C/man2/perf_event_open.2:799
3674 #, no-wrap
3675 msgid "I<inherit_stat>"
3676 msgstr ""
3677
3678 #. type: Plain text
3679 #: build/C/man2/perf_event_open.2:806
3680 msgid ""
3681 "This bit enables saving of event counts on context switch for inherited "
3682 "tasks.  This is meaningful only if the I<inherit> field is set."
3683 msgstr ""
3684
3685 #. type: TP
3686 #: build/C/man2/perf_event_open.2:806
3687 #, no-wrap
3688 msgid "I<enable_on_exec>"
3689 msgstr ""
3690
3691 #. type: Plain text
3692 #: build/C/man2/perf_event_open.2:811
3693 msgid ""
3694 "If this bit is set, a counter is automatically enabled after a call to "
3695 "B<exec>(2)."
3696 msgstr ""
3697
3698 #. type: TP
3699 #: build/C/man2/perf_event_open.2:811
3700 #, no-wrap
3701 msgid "I<task>"
3702 msgstr ""
3703
3704 #. type: Plain text
3705 #: build/C/man2/perf_event_open.2:815
3706 msgid ""
3707 "If this bit is set, then fork/exit notifications are included in the ring "
3708 "buffer."
3709 msgstr ""
3710
3711 #. type: TP
3712 #: build/C/man2/perf_event_open.2:815
3713 #, no-wrap
3714 msgid "I<watermark>"
3715 msgstr ""
3716
3717 #. type: Plain text
3718 #: build/C/man2/perf_event_open.2:823
3719 msgid ""
3720 "If set, have a sampling interrupt happen when we cross the "
3721 "I<wakeup_watermark> boundary.  Otherwise interrupts happen after "
3722 "I<wakeup_events> samples."
3723 msgstr ""
3724
3725 #. type: TP
3726 #: build/C/man2/perf_event_open.2:823
3727 #, no-wrap
3728 msgid "I<precise_ip> (Since Linux 2.6.35)"
3729 msgstr "I<precise_ip> (Linux 2.6.35 以降)"
3730
3731 #. type: Plain text
3732 #: build/C/man2/perf_event_open.2:833
3733 msgid ""
3734 "This controls the amount of skid.  Skid is how many instructions execute "
3735 "between an event of interest happening and the kernel being able to stop and "
3736 "record the event.  Smaller skid is better and allows more accurate reporting "
3737 "of which events correspond to which instructions, but hardware is often "
3738 "limited with how small this can be."
3739 msgstr ""
3740
3741 #. type: Plain text
3742 #: build/C/man2/perf_event_open.2:835
3743 #, fuzzy
3744 #| msgid "The I<subcmd> value is one of the following:"
3745 msgid "The values of this are the following:"
3746 msgstr "I<subcmd> の値は以下のいずれかである"
3747
3748 #. type: TP
3749 #: build/C/man2/perf_event_open.2:836
3750 #, no-wrap
3751 msgid "0 -"
3752 msgstr ""
3753
3754 #. type: Plain text
3755 #: build/C/man2/perf_event_open.2:840
3756 msgid "B<SAMPLE_IP> can have arbitrary skid."
3757 msgstr ""
3758
3759 #. type: TP
3760 #: build/C/man2/perf_event_open.2:840
3761 #, no-wrap
3762 msgid "1 -"
3763 msgstr ""
3764
3765 #. type: Plain text
3766 #: build/C/man2/perf_event_open.2:844
3767 msgid "B<SAMPLE_IP> must have constant skid."
3768 msgstr ""
3769
3770 #. type: TP
3771 #: build/C/man2/perf_event_open.2:844
3772 #, no-wrap
3773 msgid "2 -"
3774 msgstr ""
3775
3776 #. type: Plain text
3777 #: build/C/man2/perf_event_open.2:848
3778 msgid "B<SAMPLE_IP> requested to have 0 skid."
3779 msgstr ""
3780
3781 #. type: TP
3782 #: build/C/man2/perf_event_open.2:848
3783 #, no-wrap
3784 msgid "3 -"
3785 msgstr ""
3786
3787 #. type: Plain text
3788 #: build/C/man2/perf_event_open.2:854
3789 msgid "B<SAMPLE_IP> must have 0 skid.  See also B<PERF_RECORD_MISC_EXACT_IP>."
3790 msgstr ""
3791
3792 #. type: TP
3793 #: build/C/man2/perf_event_open.2:855
3794 #, no-wrap
3795 msgid "I<mmap_data> (Since Linux 2.6.36)"
3796 msgstr "I<mmap_data> (Linux 2.6.36 以降)"
3797
3798 #. type: Plain text
3799 #: build/C/man2/perf_event_open.2:861
3800 msgid ""
3801 "The counterpart of the I<mmap> field, but enables including data mmap events "
3802 "in the ring-buffer."
3803 msgstr ""
3804
3805 #. type: TP
3806 #: build/C/man2/perf_event_open.2:861
3807 #, no-wrap
3808 msgid "I<sample_id_all> (Since Linux 2.6.38)"
3809 msgstr "I<sample_id_all> (Linux 2.6.38 以降)"
3810
3811 #. type: Plain text
3812 #: build/C/man2/perf_event_open.2:869
3813 msgid ""
3814 "If set, then TID, TIME, ID, CPU, and STREAM_ID can additionally be included "
3815 "in non-B<PERF_RECORD_SAMPLE>s if the corresponding I<sample_type> is "
3816 "selected."
3817 msgstr ""
3818
3819 #. type: TP
3820 #: build/C/man2/perf_event_open.2:869
3821 #, no-wrap
3822 msgid "I<exclude_host> (Since Linux 3.2)"
3823 msgstr ""
3824
3825 #. type: Plain text
3826 #: build/C/man2/perf_event_open.2:872
3827 msgid "Do not measure time spent in VM host."
3828 msgstr ""
3829
3830 #. type: TP
3831 #: build/C/man2/perf_event_open.2:872
3832 #, no-wrap
3833 msgid "I<exclude_guest> (Since Linux 3.2)"
3834 msgstr ""
3835
3836 #. type: Plain text
3837 #: build/C/man2/perf_event_open.2:875
3838 msgid "Do not measure time spent in VM guest."
3839 msgstr ""
3840
3841 #. type: TP
3842 #: build/C/man2/perf_event_open.2:875
3843 #, no-wrap
3844 msgid "I<exclude_callchain_kernel> (Since Linux 3.7)"
3845 msgstr ""
3846
3847 #. type: Plain text
3848 #: build/C/man2/perf_event_open.2:878
3849 msgid "Do not include kernel callchains."
3850 msgstr ""
3851
3852 #. type: TP
3853 #: build/C/man2/perf_event_open.2:878
3854 #, no-wrap
3855 msgid "I<exclude_callchain_user> (Since Linux 3.7)"
3856 msgstr ""
3857
3858 #. type: Plain text
3859 #: build/C/man2/perf_event_open.2:881
3860 msgid "Do not include user callchains."
3861 msgstr ""
3862
3863 #. type: TP
3864 #: build/C/man2/perf_event_open.2:881
3865 #, no-wrap
3866 msgid "I<wakeup_events>, I<wakeup_watermark>"
3867 msgstr ""
3868
3869 #. type: Plain text
3870 #: build/C/man2/perf_event_open.2:891
3871 msgid ""
3872 "This union sets how many samples (I<wakeup_events>)  or bytes "
3873 "(I<wakeup_watermark>)  happen before an overflow signal happens.  Which one "
3874 "is used is selected by the I<watermark> bitflag."
3875 msgstr ""
3876
3877 #. type: Plain text
3878 #: build/C/man2/perf_event_open.2:901
3879 msgid ""
3880 "I<wakeup_events> only counts B<PERF_RECORD_SAMPLE> record types.  To receive "
3881 "a signal for every incoming B<PERF_RECORD> type set I<wakeup_watermark> to 1."
3882 msgstr ""
3883
3884 #. type: TP
3885 #: build/C/man2/perf_event_open.2:901
3886 #, no-wrap
3887 msgid "I<bp_type> (Since Linux 2.6.33)"
3888 msgstr "I<bp_type> (Linux 2.6.33 以降)"
3889
3890 #. type: Plain text
3891 #: build/C/man2/perf_event_open.2:905
3892 msgid "This chooses the breakpoint type.  It is one of:"
3893 msgstr ""
3894
3895 #. type: TP
3896 #: build/C/man2/perf_event_open.2:906
3897 #, no-wrap
3898 msgid "B<HW_BREAKPOINT_EMPTY>"
3899 msgstr ""
3900
3901 #. type: Plain text
3902 #: build/C/man2/perf_event_open.2:909
3903 msgid "No breakpoint."
3904 msgstr ""
3905
3906 #. type: TP
3907 #: build/C/man2/perf_event_open.2:909
3908 #, no-wrap
3909 msgid "B<HW_BREAKPOINT_R>"
3910 msgstr ""
3911
3912 #. type: Plain text
3913 #: build/C/man2/perf_event_open.2:912
3914 msgid "Count when we read the memory location."
3915 msgstr ""
3916
3917 #. type: TP
3918 #: build/C/man2/perf_event_open.2:912
3919 #, no-wrap
3920 msgid "B<HW_BREAKPOINT_W>"
3921 msgstr ""
3922
3923 #. type: Plain text
3924 #: build/C/man2/perf_event_open.2:915
3925 msgid "Count when we write the memory location."
3926 msgstr ""
3927
3928 #. type: TP
3929 #: build/C/man2/perf_event_open.2:915
3930 #, no-wrap
3931 msgid "B<HW_BREAKPOINT_RW>"
3932 msgstr ""
3933
3934 #. type: Plain text
3935 #: build/C/man2/perf_event_open.2:918
3936 #, fuzzy
3937 #| msgid "Cannot read or write the quota file."
3938 msgid "Count when we read or write the memory location."
3939 msgstr "quota ファイルへの読み書きが出来ない。"
3940
3941 #. type: TP
3942 #: build/C/man2/perf_event_open.2:918
3943 #, no-wrap
3944 msgid "B<HW_BREAKPOINT_X>"
3945 msgstr ""
3946
3947 #. type: Plain text
3948 #: build/C/man2/perf_event_open.2:921
3949 msgid "Count when we execute code at the memory location."
3950 msgstr ""
3951
3952 #. type: Plain text
3953 #: build/C/man2/perf_event_open.2:930
3954 msgid ""
3955 "The values can be combined via a bitwise or, but the combination of "
3956 "B<HW_BREAKPOINT_R> or B<HW_BREAKPOINT_W> with B<HW_BREAKPOINT_X> is not "
3957 "allowed."
3958 msgstr ""
3959
3960 #. type: TP
3961 #: build/C/man2/perf_event_open.2:931
3962 #, no-wrap
3963 msgid "I<bp_addr> (Since Linux 2.6.33)"
3964 msgstr "I<bp_addr> (Linux 2.6.33 以降)"
3965
3966 #. type: Plain text
3967 #: build/C/man2/perf_event_open.2:938
3968 msgid ""
3969 "I<bp_addr> address of the breakpoint.  For execution breakpoints this is the "
3970 "memory address of the instruction of interest; for read and write "
3971 "breakpoints it is the memory address of the memory location of interest."
3972 msgstr ""
3973
3974 #. type: TP
3975 #: build/C/man2/perf_event_open.2:938
3976 #, no-wrap
3977 msgid "I<config1> (Since Linux 2.6.39)"
3978 msgstr "I<config1> (Linux 2.6.39 以降)"
3979
3980 #. type: Plain text
3981 #: build/C/man2/perf_event_open.2:945
3982 msgid ""
3983 "I<config1> is used for setting events that need an extra register or "
3984 "otherwise do not fit in the regular config field.  Raw OFFCORE_EVENTS on "
3985 "Nehalem/Westmere/SandyBridge use this field on 3.3 and later kernels."
3986 msgstr ""
3987
3988 #. type: TP
3989 #: build/C/man2/perf_event_open.2:945
3990 #, no-wrap
3991 msgid "I<bp_len> (Since Linux 2.6.33)"
3992 msgstr "I<bp_len> (Linux 2.6.33 以降)"
3993
3994 #. type: Plain text
3995 #: build/C/man2/perf_event_open.2:959
3996 msgid ""
3997 "I<bp_len> is the length of the breakpoint being measured if I<type> is "
3998 "B<PERF_TYPE_BREAKPOINT>.  Options are B<HW_BREAKPOINT_LEN_1>, "
3999 "B<HW_BREAKPOINT_LEN_2>, B<HW_BREAKPOINT_LEN_4>, B<HW_BREAKPOINT_LEN_8>.  For "
4000 "an execution breakpoint, set this to I<sizeof(long)>."
4001 msgstr ""
4002
4003 #. type: TP
4004 #: build/C/man2/perf_event_open.2:959
4005 #, no-wrap
4006 msgid "I<config2> (Since Linux 2.6.39)"
4007 msgstr "I<config2> (Linux 2.6.39 以降)"
4008
4009 #. type: Plain text
4010 #: build/C/man2/perf_event_open.2:966
4011 msgid "I<config2> is a further extension of the I<config1> field."
4012 msgstr ""
4013
4014 #. type: TP
4015 #: build/C/man2/perf_event_open.2:966
4016 #, no-wrap
4017 msgid "I<branch_sample_type> (Since Linux 3.4)"
4018 msgstr ""
4019
4020 #. type: Plain text
4021 #: build/C/man2/perf_event_open.2:972
4022 msgid ""
4023 "If B<PERF_SAMPLE_BRANCH_STACK> is enabled, then this specifies what branches "
4024 "to include in the branch record."
4025 msgstr ""
4026
4027 #. type: Plain text
4028 #: build/C/man2/perf_event_open.2:978
4029 msgid ""
4030 "The first part of the value is the privilege level, which is a combination "
4031 "of one of the following values.  If the user does not set privilege level "
4032 "explicitly, the kernel will use the event's privilege level.  Event and "
4033 "branch privilege levels do not have to match."
4034 msgstr ""
4035
4036 #. type: TP
4037 #: build/C/man2/perf_event_open.2:979
4038 #, no-wrap
4039 msgid "B<PERF_SAMPLE_BRANCH_USER>"
4040 msgstr ""
4041
4042 #. type: Plain text
4043 #: build/C/man2/perf_event_open.2:982
4044 msgid "Branch target is in user space."
4045 msgstr ""
4046
4047 #. type: TP
4048 #: build/C/man2/perf_event_open.2:982
4049 #, no-wrap
4050 msgid "B<PERF_SAMPLE_BRANCH_KERNEL>"
4051 msgstr ""
4052
4053 #. type: Plain text
4054 #: build/C/man2/perf_event_open.2:985
4055 msgid "Branch target is in kernel space."
4056 msgstr ""
4057
4058 #. type: TP
4059 #: build/C/man2/perf_event_open.2:985
4060 #, no-wrap
4061 msgid "B<PERF_SAMPLE_BRANCH_HV>"
4062 msgstr ""
4063
4064 #. type: Plain text
4065 #: build/C/man2/perf_event_open.2:988
4066 msgid "Branch target is in hypervisor."
4067 msgstr ""
4068
4069 #. type: TP
4070 #: build/C/man2/perf_event_open.2:988
4071 #, no-wrap
4072 msgid "B<PERF_SAMPLE_BRANCH_PLM_ALL>"
4073 msgstr ""
4074
4075 #. type: Plain text
4076 #: build/C/man2/perf_event_open.2:991
4077 msgid "A convenience value that is the three preceding values ORed together."
4078 msgstr ""
4079
4080 #. type: Plain text
4081 #: build/C/man2/perf_event_open.2:995
4082 msgid ""
4083 "In addition to the privilege value, at least one or more of the following "
4084 "bits must be set."
4085 msgstr ""
4086
4087 #. type: TP
4088 #: build/C/man2/perf_event_open.2:996
4089 #, no-wrap
4090 msgid "B<PERF_SAMPLE_BRANCH_ANY>"
4091 msgstr ""
4092
4093 #. type: Plain text
4094 #: build/C/man2/perf_event_open.2:999
4095 msgid "Any branch type."
4096 msgstr ""
4097
4098 #. type: TP
4099 #: build/C/man2/perf_event_open.2:999
4100 #, no-wrap
4101 msgid "B<PERF_SAMPLE_BRANCH_ANY_CALL>"
4102 msgstr ""
4103
4104 #. type: Plain text
4105 #: build/C/man2/perf_event_open.2:1002
4106 msgid "Any call branch."
4107 msgstr ""
4108
4109 #. type: TP
4110 #: build/C/man2/perf_event_open.2:1002
4111 #, no-wrap
4112 msgid "B<PERF_SAMPLE_BRANCH_ANY_RETURN>"
4113 msgstr ""
4114
4115 #. type: Plain text
4116 #: build/C/man2/perf_event_open.2:1005
4117 msgid "Any return branch."
4118 msgstr ""
4119
4120 #. type: TP
4121 #: build/C/man2/perf_event_open.2:1005
4122 #, no-wrap
4123 msgid "B<PERF_SAMPLE_BRANCH_IND_CALL>"
4124 msgstr ""
4125
4126 #. type: Plain text
4127 #: build/C/man2/perf_event_open.2:1008
4128 msgid "Indirect calls."
4129 msgstr ""
4130
4131 #. type: TP
4132 #: build/C/man2/perf_event_open.2:1008
4133 #, fuzzy, no-wrap
4134 #| msgid "B<PERF_SAMPLE_BRANCH_STACK> (Since Linux 3.4)"
4135 msgid "B<PERF_SAMPLE_BRANCH_ABORT_TX> (Since Linux 3.11)"
4136 msgstr "B<PERF_SAMPLE_BRANCH_STACK> (Linux 3.4 以降)"
4137
4138 #. type: Plain text
4139 #: build/C/man2/perf_event_open.2:1011
4140 msgid "Transactional memory aborts."
4141 msgstr ""
4142
4143 #. type: TP
4144 #: build/C/man2/perf_event_open.2:1011
4145 #, fuzzy, no-wrap
4146 #| msgid "B<PERF_SAMPLE_BRANCH_STACK> (Since Linux 3.4)"
4147 msgid "B<PERF_SAMPLE_BRANCH_IN_TX> (Since Linux 3.11)"
4148 msgstr "B<PERF_SAMPLE_BRANCH_STACK> (Linux 3.4 以降)"
4149
4150 #. type: Plain text
4151 #: build/C/man2/perf_event_open.2:1014
4152 msgid "Branch in transactional memory transaction."
4153 msgstr ""
4154
4155 #. type: TP
4156 #: build/C/man2/perf_event_open.2:1014
4157 #, fuzzy, no-wrap
4158 #| msgid "B<PERF_SAMPLE_BRANCH_STACK> (Since Linux 3.4)"
4159 msgid "B<PERF_SAMPLE_BRANCH_NO_TX> (Since Linux 3.11)"
4160 msgstr "B<PERF_SAMPLE_BRANCH_STACK> (Linux 3.4 以降)"
4161
4162 #. type: Plain text
4163 #: build/C/man2/perf_event_open.2:1017
4164 msgid "Branch not in transactional memory transaction."
4165 msgstr ""
4166
4167 #. type: TP
4168 #: build/C/man2/perf_event_open.2:1019
4169 #, no-wrap
4170 msgid "I<sample_regs_user> (Since Linux 3.7)"
4171 msgstr ""
4172
4173 #. type: Plain text
4174 #: build/C/man2/perf_event_open.2:1025
4175 msgid ""
4176 "This bitmask defines the set of user CPU registers to dump on samples.  The "
4177 "layout of the register mask is architecture specific and described in the "
4178 "kernel header I<arch/ARCH/include/uapi/asm/perf_regs.h>."
4179 msgstr ""
4180
4181 #. type: TP
4182 #: build/C/man2/perf_event_open.2:1025
4183 #, no-wrap
4184 msgid "I<sample_stack_user> (Since Linux 3.7)"
4185 msgstr ""
4186
4187 #. type: Plain text
4188 #: build/C/man2/perf_event_open.2:1030
4189 msgid ""
4190 "This defines the size of the user stack to dump if B<PERF_SAMPLE_STACK_USER> "
4191 "is specified."
4192 msgstr ""
4193
4194 #. type: SS
4195 #: build/C/man2/perf_event_open.2:1030
4196 #, no-wrap
4197 msgid "Reading results"
4198 msgstr ""
4199
4200 #. type: Plain text
4201 #: build/C/man2/perf_event_open.2:1040
4202 msgid ""
4203 "Once a B<perf_event_open>()  file descriptor has been opened, the values of "
4204 "the events can be read from the file descriptor.  The values that are there "
4205 "are specified by the I<read_format> field in the I<attr> structure at open "
4206 "time."
4207 msgstr ""
4208
4209 #. type: Plain text
4210 #: build/C/man2/perf_event_open.2:1045
4211 msgid ""
4212 "If you attempt to read into a buffer that is not big enough to hold the data "
4213 "B<ENOSPC> is returned"
4214 msgstr ""
4215
4216 #. type: Plain text
4217 #: build/C/man2/perf_event_open.2:1047
4218 msgid "Here is the layout of the data returned by a read:"
4219 msgstr ""
4220
4221 #. type: IP
4222 #: build/C/man2/perf_event_open.2:1047 build/C/man2/perf_event_open.2:1065
4223 #: build/C/man2/ptrace.2:1619 build/C/man2/ptrace.2:1629
4224 #: build/C/man2/ptrace.2:1637 build/C/man2/ptrace.2:1643
4225 #: build/C/man2/ptrace.2:1772
4226 #, no-wrap
4227 msgid "*"
4228 msgstr ""
4229
4230 #. type: Plain text
4231 #: build/C/man2/perf_event_open.2:1051
4232 msgid ""
4233 "If B<PERF_FORMAT_GROUP> was specified to allow reading all events in a group "
4234 "at once:"
4235 msgstr ""
4236
4237 #. type: Plain text
4238 #: build/C/man2/perf_event_open.2:1063
4239 #, no-wrap
4240 msgid ""
4241 "struct read_format {\n"
4242 "    u64 nr;            /* The number of events */\n"
4243 "    u64 time_enabled;  /* if PERF_FORMAT_TOTAL_TIME_ENABLED */\n"
4244 "    u64 time_running;  /* if PERF_FORMAT_TOTAL_TIME_RUNNING */\n"
4245 "    struct\n"
4246 "        u64 value;     /* The value of the event */\n"
4247 "        u64 id;        /* if PERF_FORMAT_ID */\n"
4248 "    } values[nr];\n"
4249 "};\n"
4250 msgstr ""
4251
4252 #. type: Plain text
4253 #: build/C/man2/perf_event_open.2:1071
4254 msgid "If B<PERF_FORMAT_GROUP> was I<not> specified:"
4255 msgstr ""
4256
4257 #. type: Plain text
4258 #: build/C/man2/perf_event_open.2:1080
4259 #, no-wrap
4260 msgid ""
4261 "struct read_format {\n"
4262 "    u64 value;         /* The value of the event */\n"
4263 "    u64 time_enabled;  /* if PERF_FORMAT_TOTAL_TIME_ENABLED */\n"
4264 "    u64 time_running;  /* if PERF_FORMAT_TOTAL_TIME_RUNNING */\n"
4265 "    u64 id;            /* if PERF_FORMAT_ID */\n"
4266 "};\n"
4267 msgstr ""
4268
4269 #. type: Plain text
4270 #: build/C/man2/perf_event_open.2:1084
4271 msgid "The values read are as follows:"
4272 msgstr ""
4273
4274 #. type: TP
4275 #: build/C/man2/perf_event_open.2:1084
4276 #, no-wrap
4277 msgid "I<nr>"
4278 msgstr ""
4279
4280 #. type: Plain text
4281 #: build/C/man2/perf_event_open.2:1090
4282 msgid ""
4283 "The number of events in this file descriptor.  Only available if "
4284 "B<PERF_FORMAT_GROUP> was specified."
4285 msgstr ""
4286
4287 #. type: TP
4288 #: build/C/man2/perf_event_open.2:1090
4289 #, no-wrap
4290 msgid "I<time_enabled>, I<time_running>"
4291 msgstr ""
4292
4293 #. type: Plain text
4294 #: build/C/man2/perf_event_open.2:1102
4295 msgid ""
4296 "Total time the event was enabled and running.  Normally these are the same.  "
4297 "If more events are started than available counter slots on the PMU, then "
4298 "multiplexing happens and events run only part of the time.  In that case the "
4299 "I<time_enabled> and I<time running> values can be used to scale an estimated "
4300 "value for the count."
4301 msgstr ""
4302
4303 #. type: TP
4304 #: build/C/man2/perf_event_open.2:1102
4305 #, no-wrap
4306 msgid "I<value>"
4307 msgstr ""
4308
4309 #. type: Plain text
4310 #: build/C/man2/perf_event_open.2:1105
4311 msgid "An unsigned 64-bit value containing the counter result."
4312 msgstr ""
4313
4314 #. type: TP
4315 #: build/C/man2/perf_event_open.2:1105 build/C/man2/perf_event_open.2:1423
4316 #: build/C/man2/perf_event_open.2:1560
4317 #, no-wrap
4318 msgid "I<id>"
4319 msgstr ""
4320
4321 #. type: Plain text
4322 #: build/C/man2/perf_event_open.2:1111
4323 msgid ""
4324 "A globally unique value for this particular event, only there if "
4325 "B<PERF_FORMAT_ID> was specified in I<read_format>."
4326 msgstr ""
4327
4328 #. type: SS
4329 #: build/C/man2/perf_event_open.2:1111
4330 #, no-wrap
4331 msgid "MMAP layout"
4332 msgstr ""
4333
4334 #. type: Plain text
4335 #: build/C/man2/perf_event_open.2:1121
4336 msgid ""
4337 "When using B<perf_event_open>()  in sampled mode, asynchronous events (like "
4338 "counter overflow or B<PROT_EXEC> mmap tracking)  are logged into a ring-"
4339 "buffer.  This ring-buffer is created and accessed through B<mmap>(2)."
4340 msgstr ""
4341
4342 #. type: Plain text
4343 #: build/C/man2/perf_event_open.2:1127
4344 msgid ""
4345 "The mmap size should be 1+2^n pages, where the first page is a metadata page "
4346 "(I<struct perf_event_mmap_page>)  that contains various bits of information "
4347 "such as where the ring-buffer head is."
4348 msgstr ""
4349
4350 #. type: Plain text
4351 #: build/C/man2/perf_event_open.2:1130
4352 msgid ""
4353 "Before kernel 2.6.39, there is a bug that means you must allocate a mmap "
4354 "ring buffer when sampling even if you do not plan to access it."
4355 msgstr ""
4356
4357 #. type: Plain text
4358 #: build/C/man2/perf_event_open.2:1132
4359 msgid "The structure of the first metadata mmap page is as follows:"
4360 msgstr ""
4361
4362 #. type: Plain text
4363 #: build/C/man2/perf_event_open.2:1156
4364 #, no-wrap
4365 msgid ""
4366 "struct perf_event_mmap_page {\n"
4367 "    __u32 version;          /* version number of this structure */\n"
4368 "    __u32 compat_version;   /* lowest version this is compat with */\n"
4369 "    __u32 lock;             /* seqlock for synchronization */\n"
4370 "    __u32 index;            /* hardware counter identifier */\n"
4371 "    __s64 offset;           /* add to hardware counter value */\n"
4372 "    __u64 time_enabled;     /* time event active */\n"
4373 "    __u64 time_running;     /* time event on CPU */\n"
4374 "    union {\n"
4375 "        __u64   capabilities;\n"
4376 "        __u64   cap_usr_time  : 1,\n"
4377 "                cap_usr_rdpmc : 1,\n"
4378 "    };\n"
4379 "    __u16   pmc_width;\n"
4380 "    __u16   time_shift;\n"
4381 "    __u32   time_mult;\n"
4382 "    __u64   time_offset;\n"
4383 "    __u64   __reserved[120];   /* Pad to 1k */\n"
4384 "    __u64   data_head;         /* head in the data section */\n"
4385 "    __u64   data_tail;         /* user-space written tail */\n"
4386 "}\n"
4387 msgstr ""
4388
4389 #. type: Plain text
4390 #: build/C/man2/perf_event_open.2:1162
4391 msgid ""
4392 "The following looks at the fields in the I<perf_event_mmap_page> structure "
4393 "in more detail:"
4394 msgstr ""
4395
4396 #. type: TP
4397 #: build/C/man2/perf_event_open.2:1162
4398 #, no-wrap
4399 msgid "I<version>"
4400 msgstr ""
4401
4402 #. type: Plain text
4403 #: build/C/man2/perf_event_open.2:1165
4404 msgid "Version number of this structure."
4405 msgstr ""
4406
4407 #. type: TP
4408 #: build/C/man2/perf_event_open.2:1165
4409 #, no-wrap
4410 msgid "I<compat_version>"
4411 msgstr ""
4412
4413 #. type: Plain text
4414 #: build/C/man2/perf_event_open.2:1168
4415 msgid "The lowest version this is compatible with."
4416 msgstr ""
4417
4418 #. type: TP
4419 #: build/C/man2/perf_event_open.2:1168
4420 #, no-wrap
4421 msgid "I<lock>"
4422 msgstr ""
4423
4424 #. type: Plain text
4425 #: build/C/man2/perf_event_open.2:1171
4426 msgid "A seqlock for synchronization."
4427 msgstr ""
4428
4429 #. type: TP
4430 #: build/C/man2/perf_event_open.2:1171
4431 #, no-wrap
4432 msgid "I<index>"
4433 msgstr ""
4434
4435 #. type: Plain text
4436 #: build/C/man2/perf_event_open.2:1174
4437 msgid "A unique hardware counter identifier."
4438 msgstr ""
4439
4440 #. type: TP
4441 #: build/C/man2/perf_event_open.2:1174
4442 #, no-wrap
4443 msgid "I<offset>"
4444 msgstr ""
4445
4446 #.  FIXME clarify
4447 #. type: Plain text
4448 #: build/C/man2/perf_event_open.2:1178
4449 msgid "Add this to hardware counter value??"
4450 msgstr ""
4451
4452 #. type: TP
4453 #: build/C/man2/perf_event_open.2:1178
4454 #, no-wrap
4455 msgid "I<time_enabled>"
4456 msgstr ""
4457
4458 #. type: Plain text
4459 #: build/C/man2/perf_event_open.2:1181
4460 msgid "Time the event was active."
4461 msgstr ""
4462
4463 #. type: TP
4464 #: build/C/man2/perf_event_open.2:1181
4465 #, no-wrap
4466 msgid "I<time_running>"
4467 msgstr ""
4468
4469 #. type: Plain text
4470 #: build/C/man2/perf_event_open.2:1184
4471 msgid "Time the event was running."
4472 msgstr ""
4473
4474 #. type: TP
4475 #: build/C/man2/perf_event_open.2:1184
4476 #, no-wrap
4477 msgid "I<cap_usr_time>"
4478 msgstr ""
4479
4480 #. type: Plain text
4481 #: build/C/man2/perf_event_open.2:1187
4482 msgid "User time capability."
4483 msgstr ""
4484
4485 #. type: TP
4486 #: build/C/man2/perf_event_open.2:1187
4487 #, no-wrap
4488 msgid "I<cap_usr_rdpmc>"
4489 msgstr ""
4490
4491 #. type: Plain text
4492 #: build/C/man2/perf_event_open.2:1192
4493 msgid ""
4494 "If the hardware supports user-space read of performance counters without "
4495 "syscall (this is the \"rdpmc\" instruction on x86), then the following code "
4496 "can be used to do a read:"
4497 msgstr ""
4498
4499 #. type: Plain text
4500 #: build/C/man2/perf_event_open.2:1199
4501 #, no-wrap
4502 msgid ""
4503 "u32 seq, time_mult, time_shift, idx, width;\n"
4504 "u64 count, enabled, running;\n"
4505 "u64 cyc, time_offset;\n"
4506 "s64 pmc = 0;\n"
4507 msgstr ""
4508
4509 #. type: Plain text
4510 #: build/C/man2/perf_event_open.2:1205
4511 #, no-wrap
4512 msgid ""
4513 "do {\n"
4514 "    seq = pc-E<gt>lock;\n"
4515 "    barrier();\n"
4516 "    enabled = pc-E<gt>time_enabled;\n"
4517 "    running = pc-E<gt>time_running;\n"
4518 msgstr ""
4519
4520 #. type: Plain text
4521 #: build/C/man2/perf_event_open.2:1212
4522 #, no-wrap
4523 msgid ""
4524 "    if (pc-E<gt>cap_usr_time && enabled != running) {\n"
4525 "        cyc = rdtsc();\n"
4526 "        time_offset = pc-E<gt>time_offset;\n"
4527 "        time_mult   = pc-E<gt>time_mult;\n"
4528 "        time_shift  = pc-E<gt>time_shift;\n"
4529 "    }\n"
4530 msgstr ""
4531
4532 #. type: Plain text
4533 #: build/C/man2/perf_event_open.2:1215
4534 #, no-wrap
4535 msgid ""
4536 "    idx = pc-E<gt>index;\n"
4537 "    count = pc-E<gt>offset;\n"
4538 msgstr ""
4539
4540 #. type: Plain text
4541 #: build/C/man2/perf_event_open.2:1220
4542 #, no-wrap
4543 msgid ""
4544 "    if (pc-E<gt>cap_usr_rdpmc && idx) {\n"
4545 "        width = pc-E<gt>pmc_width;\n"
4546 "        pmc = rdpmc(idx - 1);\n"
4547 "    }\n"
4548 msgstr ""
4549
4550 #. type: Plain text
4551 #: build/C/man2/perf_event_open.2:1223
4552 #, no-wrap
4553 msgid ""
4554 "    barrier();\n"
4555 "} while (pc-E<gt>lock != seq);\n"
4556 msgstr ""
4557
4558 #. type: TP
4559 #: build/C/man2/perf_event_open.2:1225
4560 #, no-wrap
4561 msgid "I<pmc_width>"
4562 msgstr ""
4563
4564 #. type: Plain text
4565 #: build/C/man2/perf_event_open.2:1232
4566 msgid ""
4567 "If I<cap_usr_rdpmc>, this field provides the bit-width of the value read "
4568 "using the rdpmc or equivalent instruction.  This can be used to sign extend "
4569 "the result like:"
4570 msgstr ""
4571
4572 #. type: Plain text
4573 #: build/C/man2/perf_event_open.2:1238
4574 #, no-wrap
4575 msgid ""
4576 "pmc E<lt>E<lt>= 64 - pmc_width;\n"
4577 "pmc E<gt>E<gt>= 64 - pmc_width; // signed shift right\n"
4578 "count += pmc;\n"
4579 msgstr ""
4580
4581 #. type: TP
4582 #: build/C/man2/perf_event_open.2:1240
4583 #, no-wrap
4584 msgid "I<time_shift>, I<time_mult>, I<time_offset>"
4585 msgstr ""
4586
4587 #. type: Plain text
4588 #: build/C/man2/perf_event_open.2:1247
4589 msgid ""
4590 "If I<cap_usr_time>, these fields can be used to compute the time delta since "
4591 "time_enabled (in nanoseconds) using rdtsc or similar."
4592 msgstr ""
4593
4594 #. type: Plain text
4595 #: build/C/man2/perf_event_open.2:1255
4596 #, no-wrap
4597 msgid ""
4598 "    u64 quot, rem;\n"
4599 "    u64 delta;\n"
4600 "    quot = (cyc E<gt>E<gt> time_shift);\n"
4601 "    rem = cyc & ((1 E<lt>E<lt> time_shift) - 1);\n"
4602 "    delta = time_offset + quot * time_mult +\n"
4603 "            ((rem * time_mult) E<gt>E<gt> time_shift);\n"
4604 msgstr ""
4605
4606 #. type: Plain text
4607 #: build/C/man2/perf_event_open.2:1267
4608 msgid ""
4609 "Where I<time_offset>, I<time_mult>, I<time_shift>, and I<cyc> are read in "
4610 "the seqcount loop described above.  This delta can then be added to enabled "
4611 "and possible running (if idx), improving the scaling:"
4612 msgstr ""
4613
4614 #. type: Plain text
4615 #: build/C/man2/perf_event_open.2:1275
4616 #, no-wrap
4617 msgid ""
4618 "    enabled += delta;\n"
4619 "    if (idx)\n"
4620 "        running += delta;\n"
4621 "    quot = count / running;\n"
4622 "    rem  = count % running;\n"
4623 "    count = quot * enabled + (rem * enabled) / running;\n"
4624 msgstr ""
4625
4626 #. type: TP
4627 #: build/C/man2/perf_event_open.2:1276
4628 #, no-wrap
4629 msgid "I<data_head>"
4630 msgstr ""
4631
4632 #. type: Plain text
4633 #: build/C/man2/perf_event_open.2:1282
4634 msgid ""
4635 "This points to the head of the data section.  The value continuously "
4636 "increases, it does not wrap.  The value needs to be manually wrapped by the "
4637 "size of the mmap buffer before accessing the samples."
4638 msgstr ""
4639
4640 #. type: Plain text
4641 #: build/C/man2/perf_event_open.2:1285
4642 msgid ""
4643 "On SMP-capable platforms, after reading the data_head value, user space "
4644 "should issue an rmb()."
4645 msgstr ""
4646
4647 #. type: TP
4648 #: build/C/man2/perf_event_open.2:1285
4649 #, no-wrap
4650 msgid "I<data_tail;>"
4651 msgstr ""
4652
4653 #. type: Plain text
4654 #: build/C/man2/perf_event_open.2:1293
4655 msgid ""
4656 "When the mapping is B<PROT_WRITE>, the I<data_tail> value should be written "
4657 "by user space to reflect the last read data.  In this case the kernel will "
4658 "not over-write unread data."
4659 msgstr ""
4660
4661 #. type: Plain text
4662 #: build/C/man2/perf_event_open.2:1295
4663 msgid "The following 2^n ring-buffer pages have the layout described below."
4664 msgstr ""
4665
4666 #. type: Plain text
4667 #: build/C/man2/perf_event_open.2:1309
4668 msgid ""
4669 "If I<perf_event_attr.sample_id_all> is set, then all event types will have "
4670 "the sample_type selected fields related to where/when (identity)  an event "
4671 "took place (TID, TIME, ID, CPU, STREAM_ID) described in "
4672 "B<PERF_RECORD_SAMPLE> below, it will be stashed just after the "
4673 "I<perf_event_header> and the fields already present for the existing fields, "
4674 "that is, at the end of the payload.  That way a newer perf.data file will be "
4675 "supported by older perf tools, with these new optional fields being ignored."
4676 msgstr ""
4677
4678 #. type: Plain text
4679 #: build/C/man2/perf_event_open.2:1311
4680 msgid "The mmap values start with a header:"
4681 msgstr ""
4682
4683 #. type: Plain text
4684 #: build/C/man2/perf_event_open.2:1319
4685 #, no-wrap
4686 msgid ""
4687 "struct perf_event_header {\n"
4688 "    __u32   type;\n"
4689 "    __u16   misc;\n"
4690 "    __u16   size;\n"
4691 "};\n"
4692 msgstr ""
4693
4694 #. type: Plain text
4695 #: build/C/man2/perf_event_open.2:1327
4696 msgid ""
4697 "Below, we describe the I<perf_event_header> fields in more detail.  For ease "
4698 "of reading, the fields with shorter descriptions are presented first."
4699 msgstr ""
4700
4701 #. type: Plain text
4702 #: build/C/man2/perf_event_open.2:1330
4703 msgid "This indicates the size of the record."
4704 msgstr ""
4705
4706 #. type: TP
4707 #: build/C/man2/perf_event_open.2:1330
4708 #, no-wrap
4709 msgid "I<misc>"
4710 msgstr ""
4711
4712 #. type: Plain text
4713 #: build/C/man2/perf_event_open.2:1335
4714 msgid "The I<misc> field contains additional information about the sample."
4715 msgstr ""
4716
4717 #. type: Plain text
4718 #: build/C/man2/perf_event_open.2:1340
4719 msgid ""
4720 "The CPU mode can be determined from this value by masking with "
4721 "B<PERF_RECORD_MISC_CPUMODE_MASK> and looking for one of the following (note "
4722 "these are not bit masks, only one can be set at a time):"
4723 msgstr ""
4724
4725 #. type: TP
4726 #: build/C/man2/perf_event_open.2:1341
4727 #, no-wrap
4728 msgid "B<PERF_RECORD_MISC_CPUMODE_UNKNOWN>"
4729 msgstr ""
4730
4731 #. type: Plain text
4732 #: build/C/man2/perf_event_open.2:1344
4733 msgid "Unknown CPU mode."
4734 msgstr ""
4735
4736 #. type: TP
4737 #: build/C/man2/perf_event_open.2:1344
4738 #, no-wrap
4739 msgid "B<PERF_RECORD_MISC_KERNEL>"
4740 msgstr ""
4741
4742 #. type: Plain text
4743 #: build/C/man2/perf_event_open.2:1347
4744 msgid "Sample happened in the kernel."
4745 msgstr ""
4746
4747 #. type: TP
4748 #: build/C/man2/perf_event_open.2:1347
4749 #, no-wrap
4750 msgid "B<PERF_RECORD_MISC_USER>"
4751 msgstr ""
4752
4753 #. type: Plain text
4754 #: build/C/man2/perf_event_open.2:1350
4755 msgid "Sample happened in user code."
4756 msgstr ""
4757
4758 #. type: TP
4759 #: build/C/man2/perf_event_open.2:1350
4760 #, no-wrap
4761 msgid "B<PERF_RECORD_MISC_HYPERVISOR>"
4762 msgstr ""
4763
4764 #. type: Plain text
4765 #: build/C/man2/perf_event_open.2:1353
4766 msgid "Sample happened in the hypervisor."
4767 msgstr ""
4768
4769 #. type: TP
4770 #: build/C/man2/perf_event_open.2:1353
4771 #, no-wrap
4772 msgid "B<PERF_RECORD_MISC_GUEST_KERNEL>"
4773 msgstr ""
4774
4775 #. type: Plain text
4776 #: build/C/man2/perf_event_open.2:1356
4777 msgid "Sample happened in the guest kernel."
4778 msgstr ""
4779
4780 #. type: TP
4781 #: build/C/man2/perf_event_open.2:1356
4782 #, no-wrap
4783 msgid "B<PERF_RECORD_MISC_GUEST_USER>"
4784 msgstr ""
4785
4786 #. type: Plain text
4787 #: build/C/man2/perf_event_open.2:1359
4788 msgid "Sample happened in guest user code."
4789 msgstr ""
4790
4791 #. type: Plain text
4792 #: build/C/man2/perf_event_open.2:1363
4793 msgid "In addition, one of the following bits can be set:"
4794 msgstr ""
4795
4796 #. type: TP
4797 #: build/C/man2/perf_event_open.2:1363
4798 #, no-wrap
4799 msgid "B<PERF_RECORD_MISC_MMAP_DATA>"
4800 msgstr "B<PERF_RECORD_MISC_MMAP_DATA>"
4801
4802 #. type: Plain text
4803 #: build/C/man2/perf_event_open.2:1367
4804 msgid ""
4805 "This is set when the mapping is not executable; otherwise the mapping is "
4806 "executable."
4807 msgstr ""
4808
4809 #. type: TP
4810 #: build/C/man2/perf_event_open.2:1367
4811 #, no-wrap
4812 msgid "B<PERF_RECORD_MISC_EXACT_IP>"
4813 msgstr ""
4814
4815 #. type: Plain text
4816 #: build/C/man2/perf_event_open.2:1375
4817 msgid ""
4818 "This indicates that the content of B<PERF_SAMPLE_IP> points to the actual "
4819 "instruction that triggered the event.  See also I<perf_event_attr."
4820 "precise_ip>."
4821 msgstr ""
4822
4823 #. type: TP
4824 #: build/C/man2/perf_event_open.2:1375
4825 #, no-wrap
4826 msgid "B<PERF_RECORD_MISC_EXT_RESERVED>"
4827 msgstr ""
4828
4829 #. type: Plain text
4830 #: build/C/man2/perf_event_open.2:1378
4831 msgid "This indicates there is extended data available (currently not used)."
4832 msgstr ""
4833
4834 #. type: Plain text
4835 #: build/C/man2/perf_event_open.2:1388
4836 msgid ""
4837 "The I<type> value is one of the below.  The values in the corresponding "
4838 "record (that follows the header)  depend on the I<type> selected as shown."
4839 msgstr ""
4840
4841 #. type: TP
4842 #: build/C/man2/perf_event_open.2:1389
4843 #, no-wrap
4844 msgid "B<PERF_RECORD_MMAP>"
4845 msgstr ""
4846
4847 #. type: Plain text
4848 #: build/C/man2/perf_event_open.2:1396
4849 msgid ""
4850 "The MMAP events record the B<PROT_EXEC> mappings so that we can correlate "
4851 "user-space IPs to code.  They have the following structure:"
4852 msgstr ""
4853
4854 #. type: Plain text
4855 #: build/C/man2/perf_event_open.2:1407
4856 #, no-wrap
4857 msgid ""
4858 "struct {\n"
4859 "    struct perf_event_header header;\n"
4860 "    u32    pid, tid;\n"
4861 "    u64    addr;\n"
4862 "    u64    len;\n"
4863 "    u64    pgoff;\n"
4864 "    char   filename[];\n"
4865 "};\n"
4866 msgstr ""
4867
4868 #. type: TP
4869 #: build/C/man2/perf_event_open.2:1409
4870 #, no-wrap
4871 msgid "B<PERF_RECORD_LOST>"
4872 msgstr ""
4873
4874 #. type: Plain text
4875 #: build/C/man2/perf_event_open.2:1412
4876 msgid "This record indicates when events are lost."
4877 msgstr ""
4878
4879 #. type: Plain text
4880 #: build/C/man2/perf_event_open.2:1420
4881 #, no-wrap
4882 msgid ""
4883 "struct {\n"
4884 "    struct perf_event_header header;\n"
4885 "    u64 id;\n"
4886 "    u64 lost;\n"
4887 "};\n"
4888 msgstr ""
4889
4890 #. type: Plain text
4891 #: build/C/man2/perf_event_open.2:1426
4892 msgid "is the unique event ID for the samples that were lost."
4893 msgstr ""
4894
4895 #. type: TP
4896 #: build/C/man2/perf_event_open.2:1426
4897 #, no-wrap
4898 msgid "I<lost>"
4899 msgstr ""
4900
4901 #. type: Plain text
4902 #: build/C/man2/perf_event_open.2:1429
4903 #, fuzzy
4904 #| msgid "Returns the number of processes woken up."
4905 msgid "is the number of events that were lost."
4906 msgstr "wake したプロセスの数を返す。"
4907
4908 #. type: TP
4909 #: build/C/man2/perf_event_open.2:1430
4910 #, no-wrap
4911 msgid "B<PERF_RECORD_COMM>"
4912 msgstr ""
4913
4914 #. type: Plain text
4915 #: build/C/man2/perf_event_open.2:1433
4916 msgid "This record indicates a change in the process name."
4917 msgstr ""
4918
4919 #. type: Plain text
4920 #: build/C/man2/perf_event_open.2:1441
4921 #, no-wrap
4922 msgid ""
4923 "struct {\n"
4924 "    struct perf_event_header header;\n"
4925 "    u32 pid, tid;\n"
4926 "    char comm[];\n"
4927 "};\n"
4928 msgstr ""
4929
4930 #. type: TP
4931 #: build/C/man2/perf_event_open.2:1443
4932 #, no-wrap
4933 msgid "B<PERF_RECORD_EXIT>"
4934 msgstr "B<PERF_RECORD_EXIT>"
4935
4936 #. type: Plain text
4937 #: build/C/man2/perf_event_open.2:1446
4938 msgid "This record indicates a process exit event."
4939 msgstr ""
4940
4941 #. type: Plain text
4942 #: build/C/man2/perf_event_open.2:1455 build/C/man2/perf_event_open.2:1483
4943 #, no-wrap
4944 msgid ""
4945 "struct {\n"
4946 "    struct perf_event_header header;\n"
4947 "    u32 pid, ppid;\n"
4948 "    u32 tid, ptid;\n"
4949 "    u64 time;\n"
4950 "};\n"
4951 msgstr ""
4952
4953 #. type: TP
4954 #: build/C/man2/perf_event_open.2:1457
4955 #, no-wrap
4956 msgid "B<PERF_RECORD_THROTTLE>, B<PERF_RECORD_UNTHROTTLE>"
4957 msgstr ""
4958
4959 #. type: Plain text
4960 #: build/C/man2/perf_event_open.2:1460
4961 msgid "This record indicates a throttle/unthrottle event."
4962 msgstr ""
4963
4964 #. type: Plain text
4965 #: build/C/man2/perf_event_open.2:1469
4966 #, no-wrap
4967 msgid ""
4968 "struct {\n"
4969 "    struct perf_event_header header;\n"
4970 "    u64 time;\n"
4971 "    u64 id;\n"
4972 "    u64 stream_id;\n"
4973 "};\n"
4974 msgstr ""
4975
4976 #. type: TP
4977 #: build/C/man2/perf_event_open.2:1471
4978 #, no-wrap
4979 msgid "B<PERF_RECORD_FORK>"
4980 msgstr "B<PERF_RECORD_FORK>"
4981
4982 #. type: Plain text
4983 #: build/C/man2/perf_event_open.2:1474
4984 msgid "This record indicates a fork event."
4985 msgstr ""
4986
4987 #. type: TP
4988 #: build/C/man2/perf_event_open.2:1485
4989 #, no-wrap
4990 msgid "B<PERF_RECORD_READ>"
4991 msgstr ""
4992
4993 #. type: Plain text
4994 #: build/C/man2/perf_event_open.2:1488
4995 msgid "This record indicates a read event."
4996 msgstr ""
4997
4998 #. type: Plain text
4999 #: build/C/man2/perf_event_open.2:1496
5000 #, no-wrap
5001 msgid ""
5002 "struct {\n"
5003 "    struct perf_event_header header;\n"
5004 "    u32 pid, tid;\n"
5005 "    struct read_format values;\n"
5006 "};\n"
5007 msgstr ""
5008
5009 #. type: TP
5010 #: build/C/man2/perf_event_open.2:1498
5011 #, no-wrap
5012 msgid "B<PERF_RECORD_SAMPLE>"
5013 msgstr ""
5014
5015 #. type: Plain text
5016 #: build/C/man2/perf_event_open.2:1501
5017 msgid "This record indicates a sample."
5018 msgstr ""
5019
5020 #. type: Plain text
5021 #: build/C/man2/perf_event_open.2:1531
5022 #, no-wrap
5023 msgid ""
5024 "struct {\n"
5025 "    struct perf_event_header header;\n"
5026 "    u64   ip;         /* if PERF_SAMPLE_IP */\n"
5027 "    u32   pid, tid;   /* if PERF_SAMPLE_TID */\n"
5028 "    u64   time;       /* if PERF_SAMPLE_TIME */\n"
5029 "    u64   addr;       /* if PERF_SAMPLE_ADDR */\n"
5030 "    u64   id;         /* if PERF_SAMPLE_ID */\n"
5031 "    u64   stream_id;  /* if PERF_SAMPLE_STREAM_ID */\n"
5032 "    u32   cpu, res;   /* if PERF_SAMPLE_CPU */\n"
5033 "    u64   period;     /* if PERF_SAMPLE_PERIOD */\n"
5034 "    struct read_format v; /* if PERF_SAMPLE_READ */\n"
5035 "    u64   nr;         /* if PERF_SAMPLE_CALLCHAIN */\n"
5036 "    u64   ips[nr];    /* if PERF_SAMPLE_CALLCHAIN */\n"
5037 "    u32   size;       /* if PERF_SAMPLE_RAW */\n"
5038 "    char  data[size]; /* if PERF_SAMPLE_RAW */\n"
5039 "    u64   bnr;        /* if PERF_SAMPLE_BRANCH_STACK */\n"
5040 "    struct perf_branch_entry lbr[bnr];\n"
5041 "                      /* if PERF_SAMPLE_BRANCH_STACK */\n"
5042 "    u64   abi;        /* if PERF_SAMPLE_REGS_USER */\n"
5043 "    u64   regs[weight(mask)];\n"
5044 "                      /* if PERF_SAMPLE_REGS_USER */\n"
5045 "    u64   size;       /* if PERF_SAMPLE_STACK_USER */\n"
5046 "    char  data[size]; /* if PERF_SAMPLE_STACK_USER */\n"
5047 "    u64   dyn_size;   /* if PERF_SAMPLE_STACK_USER */\n"
5048 "    u64   weight;     /* if PERF_SAMPLE_WEIGHT */\n"
5049 "    u64   data_src;   /* if PERF_SAMPLE_DATA_SRC */\n"
5050 "};\n"
5051 msgstr ""
5052
5053 #. type: TP
5054 #: build/C/man2/perf_event_open.2:1533
5055 #, no-wrap
5056 msgid "I<ip>"
5057 msgstr ""
5058
5059 #. type: Plain text
5060 #: build/C/man2/perf_event_open.2:1539
5061 msgid ""
5062 "If B<PERF_SAMPLE_IP> is enabled, then a 64-bit instruction pointer value is "
5063 "included."
5064 msgstr ""
5065
5066 #. type: TP
5067 #: build/C/man2/perf_event_open.2:1539
5068 #, no-wrap
5069 msgid "I<pid>, I<tid>"
5070 msgstr ""
5071
5072 #. type: Plain text
5073 #: build/C/man2/perf_event_open.2:1545
5074 msgid ""
5075 "If B<PERF_SAMPLE_TID> is enabled, then a 32-bit process ID and 32-bit thread "
5076 "ID are included."
5077 msgstr ""
5078
5079 #. type: TP
5080 #: build/C/man2/perf_event_open.2:1545
5081 #, no-wrap
5082 msgid "I<time>"
5083 msgstr ""
5084
5085 #. type: Plain text
5086 #: build/C/man2/perf_event_open.2:1553
5087 msgid ""
5088 "If B<PERF_SAMPLE_TIME> is enabled, then a 64-bit timestamp is included.  "
5089 "This is obtained via local_clock() which is a hardware timestamp if "
5090 "available and the jiffies value if not."
5091 msgstr ""
5092
5093 #. type: TP
5094 #: build/C/man2/perf_event_open.2:1553
5095 #, no-wrap
5096 msgid "I<addr>"
5097 msgstr ""
5098
5099 #. type: Plain text
5100 #: build/C/man2/perf_event_open.2:1560
5101 msgid ""
5102 "If B<PERF_SAMPLE_ADDR> is enabled, then a 64-bit address is included.  This "
5103 "is usually the address of a tracepoint, breakpoint, or software event; "
5104 "otherwise the value is 0."
5105 msgstr ""
5106
5107 #. type: Plain text
5108 #: build/C/man2/perf_event_open.2:1568
5109 msgid ""
5110 "If B<PERF_SAMPLE_ID> is enabled, a 64-bit unique ID is included.  If the "
5111 "event is a member of an event group, the group leader ID is returned.  This "
5112 "ID is the same as the one returned by B<PERF_FORMAT_ID>."
5113 msgstr ""
5114
5115 #. type: TP
5116 #: build/C/man2/perf_event_open.2:1568
5117 #, no-wrap
5118 msgid "I<stream_id>"
5119 msgstr ""
5120
5121 #. type: Plain text
5122 #: build/C/man2/perf_event_open.2:1578
5123 msgid ""
5124 "If B<PERF_SAMPLE_STREAM_ID> is enabled, a 64-bit unique ID is included.  "
5125 "Unlike B<PERF_SAMPLE_ID> the actual ID is returned, not the group leader.  "
5126 "This ID is the same as the one returned by B<PERF_FORMAT_ID>."
5127 msgstr ""
5128
5129 #. type: TP
5130 #: build/C/man2/perf_event_open.2:1578
5131 #, no-wrap
5132 msgid "I<cpu>, I<res>"
5133 msgstr ""
5134
5135 #. type: Plain text
5136 #: build/C/man2/perf_event_open.2:1585
5137 msgid ""
5138 "If B<PERF_SAMPLE_CPU> is enabled, this is a 32-bit value indicating which "
5139 "CPU was being used, in addition to a reserved (unused)  32-bit value."
5140 msgstr ""
5141
5142 #. type: TP
5143 #: build/C/man2/perf_event_open.2:1585
5144 #, no-wrap
5145 msgid "I<period>"
5146 msgstr ""
5147
5148 #. type: Plain text
5149 #: build/C/man2/perf_event_open.2:1591
5150 msgid ""
5151 "If B<PERF_SAMPLE_PERIOD> is enabled, a 64-bit value indicating the current "
5152 "sampling period is written."
5153 msgstr ""
5154
5155 #. type: TP
5156 #: build/C/man2/perf_event_open.2:1591
5157 #, no-wrap
5158 msgid "I<v>"
5159 msgstr ""
5160
5161 #. type: Plain text
5162 #: build/C/man2/perf_event_open.2:1602
5163 msgid ""
5164 "If B<PERF_SAMPLE_READ> is enabled, a structure of type read_format is "
5165 "included which has values for all events in the event group.  The values "
5166 "included depend on the I<read_format> value used at B<perf_event_open>()  "
5167 "time."
5168 msgstr ""
5169
5170 #. type: TP
5171 #: build/C/man2/perf_event_open.2:1602
5172 #, no-wrap
5173 msgid "I<nr>, I<ips[nr]>"
5174 msgstr ""
5175
5176 #. type: Plain text
5177 #: build/C/man2/perf_event_open.2:1610
5178 msgid ""
5179 "If B<PERF_SAMPLE_CALLCHAIN> is enabled, then a 64-bit number is included "
5180 "which indicates how many following 64-bit instruction pointers will follow.  "
5181 "This is the current callchain."
5182 msgstr ""
5183
5184 #. type: TP
5185 #: build/C/man2/perf_event_open.2:1610
5186 #, no-wrap
5187 msgid "I<size>, I<data[size]>"
5188 msgstr ""
5189
5190 #. type: Plain text
5191 #: build/C/man2/perf_event_open.2:1617
5192 msgid ""
5193 "If B<PERF_SAMPLE_RAW> is enabled, then a 32-bit value indicating size is "
5194 "included followed by an array of 8-bit values of length size.  The values "
5195 "are padded with 0 to have 64-bit alignment."
5196 msgstr ""
5197
5198 #. type: Plain text
5199 #: build/C/man2/perf_event_open.2:1622
5200 msgid ""
5201 "This RAW record data is opaque with respect to the ABI.  The ABI doesn't "
5202 "make any promises with respect to the stability of its content, it may vary "
5203 "depending on event, hardware, and kernel version."
5204 msgstr ""
5205
5206 #. type: TP
5207 #: build/C/man2/perf_event_open.2:1622
5208 #, no-wrap
5209 msgid "I<bnr>, I<lbr[bnr]>"
5210 msgstr ""
5211
5212 #. type: Plain text
5213 #: build/C/man2/perf_event_open.2:1631
5214 msgid ""
5215 "If B<PERF_SAMPLE_BRANCH_STACK> is enabled, then a 64-bit value indicating "
5216 "the number of records is included, followed by I<bnr> I<perf_branch_entry> "
5217 "structures which each include the fields:"
5218 msgstr ""
5219
5220 #. type: TP
5221 #: build/C/man2/perf_event_open.2:1632
5222 #, no-wrap
5223 msgid "I<from>"
5224 msgstr ""
5225
5226 #. type: Plain text
5227 #: build/C/man2/perf_event_open.2:1635
5228 msgid "This indicates the source instruction (may not be a branch)."
5229 msgstr ""
5230
5231 #. type: TP
5232 #: build/C/man2/perf_event_open.2:1635
5233 #, no-wrap
5234 msgid "I<to>"
5235 msgstr ""
5236
5237 #. type: Plain text
5238 #: build/C/man2/perf_event_open.2:1638
5239 msgid "The branch target."
5240 msgstr ""
5241
5242 #. type: TP
5243 #: build/C/man2/perf_event_open.2:1638
5244 #, no-wrap
5245 msgid "I<mispred>"
5246 msgstr ""
5247
5248 #. type: Plain text
5249 #: build/C/man2/perf_event_open.2:1641
5250 msgid "The branch target was mispredicted."
5251 msgstr ""
5252
5253 #. type: TP
5254 #: build/C/man2/perf_event_open.2:1641
5255 #, no-wrap
5256 msgid "I<predicted>"
5257 msgstr ""
5258
5259 #. type: Plain text
5260 #: build/C/man2/perf_event_open.2:1644
5261 msgid "The branch target was predicted."
5262 msgstr ""
5263
5264 #. type: TP
5265 #: build/C/man2/perf_event_open.2:1644
5266 #, fuzzy, no-wrap
5267 #| msgid "I<bp_type> (Since Linux 2.6.33)"
5268 msgid "I<in_tx> (Since Linux 3.11)"
5269 msgstr "I<bp_type> (Linux 2.6.33 以降)"
5270
5271 #. type: Plain text
5272 #: build/C/man2/perf_event_open.2:1647
5273 msgid "The branch was in a transactional memory transaction."
5274 msgstr ""
5275
5276 #. type: TP
5277 #: build/C/man2/perf_event_open.2:1647
5278 #, fuzzy, no-wrap
5279 #| msgid "I<bp_type> (Since Linux 2.6.33)"
5280 msgid "I<abort> (Since Linux 3.11)"
5281 msgstr "I<bp_type> (Linux 2.6.33 以降)"
5282
5283 #. type: Plain text
5284 #: build/C/man2/perf_event_open.2:1650
5285 msgid "The branch was in an aborted transactional memory transaction."
5286 msgstr ""
5287
5288 #. type: Plain text
5289 #: build/C/man2/perf_event_open.2:1654
5290 msgid ""
5291 "The entries are from most to least recent, so the first entry has the most "
5292 "recent branch."
5293 msgstr ""
5294
5295 #. type: Plain text
5296 #: build/C/man2/perf_event_open.2:1661
5297 msgid ""
5298 "Support for I<mispred> and I<predicted> is optional; if not supported, both "
5299 "values will be 0."
5300 msgstr ""
5301
5302 #. type: Plain text
5303 #: build/C/man2/perf_event_open.2:1665
5304 msgid ""
5305 "The type of branches recorded is specified by the I<branch_sample_type> "
5306 "field."
5307 msgstr ""
5308
5309 #. type: TP
5310 #: build/C/man2/perf_event_open.2:1667
5311 #, no-wrap
5312 msgid "I<abi>, I<regs[weight(mask)]>"
5313 msgstr ""
5314
5315 #. type: Plain text
5316 #: build/C/man2/perf_event_open.2:1672
5317 msgid ""
5318 "If B<PERF_SAMPLE_REGS_USER> is enabled, then the user CPU registers are "
5319 "recorded."
5320 msgstr ""
5321
5322 #. type: Plain text
5323 #: build/C/man2/perf_event_open.2:1678
5324 msgid ""
5325 "The I<abi> field is one of B<PERF_SAMPLE_REGS_ABI_NONE>, "
5326 "B<PERF_SAMPLE_REGS_ABI_32> or B<PERF_SAMPLE_REGS_ABI_64>."
5327 msgstr ""
5328
5329 #. type: Plain text
5330 #: build/C/man2/perf_event_open.2:1688
5331 msgid ""
5332 "The I<regs> field is an array of the CPU registers that were specified by "
5333 "the I<sample_regs_user> attr field.  The number of values is the number of "
5334 "bits set in the I<sample_regs_user> bitmask."
5335 msgstr ""
5336
5337 #. type: TP
5338 #: build/C/man2/perf_event_open.2:1688
5339 #, no-wrap
5340 msgid "I<size>, I<data[size]>, I<dyn_size>"
5341 msgstr ""
5342
5343 #. type: Plain text
5344 #: build/C/man2/perf_event_open.2:1702
5345 msgid ""
5346 "If B<PERF_SAMPLE_STACK_USER> is enabled, then record the user stack to "
5347 "enable backtracing.  I<size> is the size requested by the user in "
5348 "I<stack_user_size> or else the maximum record size.  I<data> is the stack "
5349 "data.  I<dyn_size> is the amount of data actually dumped (can be less than "
5350 "I<size>)."
5351 msgstr ""
5352
5353 #. type: TP
5354 #: build/C/man2/perf_event_open.2:1702
5355 #, no-wrap
5356 msgid "I<weight>"
5357 msgstr ""
5358
5359 #. type: Plain text
5360 #: build/C/man2/perf_event_open.2:1710
5361 msgid ""
5362 "If B<PERF_SAMPLE_WEIGHT> is enabled, then a 64 bit value provided by the "
5363 "hardware is recorded that indicates how costly the event was.  This allows "
5364 "expensive events to stand out more clearly in profiles."
5365 msgstr ""
5366
5367 #. type: TP
5368 #: build/C/man2/perf_event_open.2:1710
5369 #, no-wrap
5370 msgid "I<data_src>"
5371 msgstr ""
5372
5373 #. type: Plain text
5374 #: build/C/man2/perf_event_open.2:1716
5375 msgid ""
5376 "If B<PERF_SAMPLE_DATA_SRC> is enabled, then a 64 bit value is recorded that "
5377 "is made up of the following fields:"
5378 msgstr ""
5379
5380 #. type: TP
5381 #: build/C/man2/perf_event_open.2:1717
5382 #, no-wrap
5383 msgid "I<mem_op>"
5384 msgstr ""
5385
5386 #. type: Plain text
5387 #: build/C/man2/perf_event_open.2:1720
5388 msgid "Type of opcode, a bitwise combination of:"
5389 msgstr ""
5390
5391 #. type: TP
5392 #: build/C/man2/perf_event_open.2:1723
5393 #, fuzzy, no-wrap
5394 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5395 msgid "B<PERF_MEM_OP_NA>"
5396 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5397
5398 #. type: Plain text
5399 #: build/C/man2/perf_event_open.2:1726 build/C/man2/perf_event_open.2:1749
5400 #: build/C/man2/perf_event_open.2:1799 build/C/man2/perf_event_open.2:1822
5401 #: build/C/man2/perf_event_open.2:1836
5402 msgid "Not available"
5403 msgstr ""
5404
5405 #. type: TP
5406 #: build/C/man2/perf_event_open.2:1726
5407 #, fuzzy, no-wrap
5408 #| msgid "B<PERF_EVENT_IOC_PERIOD>"
5409 msgid "B<PERF_MEM_OP_LOAD>"
5410 msgstr "B<PERF_EVENT_IOC_PERIOD>"
5411
5412 #. type: Plain text
5413 #: build/C/man2/perf_event_open.2:1729
5414 msgid "Load instruction"
5415 msgstr ""
5416
5417 #. type: TP
5418 #: build/C/man2/perf_event_open.2:1729
5419 #, fuzzy, no-wrap
5420 #| msgid "B<PERF_RECORD_FORK>"
5421 msgid "B<PERF_MEM_OP_STORE>"
5422 msgstr "B<PERF_RECORD_FORK>"
5423
5424 #. type: Plain text
5425 #: build/C/man2/perf_event_open.2:1732
5426 msgid "Store instruction"
5427 msgstr ""
5428
5429 #. type: TP
5430 #: build/C/man2/perf_event_open.2:1732
5431 #, fuzzy, no-wrap
5432 #| msgid "B<PERF_EVENT_IOC_REFRESH>"
5433 msgid "B<PERF_MEM_OP_PFETCH>"
5434 msgstr "B<PERF_EVENT_IOC_REFRESH>"
5435
5436 #. type: Plain text
5437 #: build/C/man2/perf_event_open.2:1735
5438 msgid "Prefetch"
5439 msgstr ""
5440
5441 #. type: TP
5442 #: build/C/man2/perf_event_open.2:1735
5443 #, fuzzy, no-wrap
5444 #| msgid "B<PERF_RECORD_EXIT>"
5445 msgid "B<PERF_MEM_OP_EXEC>"
5446 msgstr "B<PERF_RECORD_EXIT>"
5447
5448 #. type: Plain text
5449 #: build/C/man2/perf_event_open.2:1738
5450 msgid "Executable code"
5451 msgstr ""
5452
5453 #. type: TP
5454 #: build/C/man2/perf_event_open.2:1740
5455 #, no-wrap
5456 msgid "I<mem_lvl>"
5457 msgstr ""
5458
5459 #. type: Plain text
5460 #: build/C/man2/perf_event_open.2:1743
5461 msgid "Memory hierarchy level hit or miss, a bitwise combination of:"
5462 msgstr ""
5463
5464 #. type: TP
5465 #: build/C/man2/perf_event_open.2:1746
5466 #, fuzzy, no-wrap
5467 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5468 msgid "B<PERF_MEM_LVL_NA>"
5469 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5470
5471 #. type: TP
5472 #: build/C/man2/perf_event_open.2:1749
5473 #, fuzzy, no-wrap
5474 #| msgid "B<PERF_RECORD_EXIT>"
5475 msgid "B<PERF_MEM_LVL_HIT>"
5476 msgstr "B<PERF_RECORD_EXIT>"
5477
5478 #. type: Plain text
5479 #: build/C/man2/perf_event_open.2:1752 build/C/man2/perf_event_open.2:1839
5480 msgid "Hit"
5481 msgstr ""
5482
5483 #. type: TP
5484 #: build/C/man2/perf_event_open.2:1752
5485 #, fuzzy, no-wrap
5486 #| msgid "B<PERF_EVENT_IOC_RESET>"
5487 msgid "B<PERF_MEM_LVL_MISS>"
5488 msgstr "B<PERF_EVENT_IOC_RESET>"
5489
5490 #. type: Plain text
5491 #: build/C/man2/perf_event_open.2:1755 build/C/man2/perf_event_open.2:1842
5492 msgid "Miss"
5493 msgstr ""
5494
5495 #. type: TP
5496 #: build/C/man2/perf_event_open.2:1755
5497 #, no-wrap
5498 msgid "B<PERF_MEM_LVL_L1>"
5499 msgstr ""
5500
5501 #. type: Plain text
5502 #: build/C/man2/perf_event_open.2:1758
5503 msgid "Level 1 cache"
5504 msgstr ""
5505
5506 #. type: TP
5507 #: build/C/man2/perf_event_open.2:1758
5508 #, no-wrap
5509 msgid "B<PERF_MEM_LVL_LFB>"
5510 msgstr ""
5511
5512 #. type: Plain text
5513 #: build/C/man2/perf_event_open.2:1761
5514 msgid "Line fill buffer"
5515 msgstr ""
5516
5517 #. type: TP
5518 #: build/C/man2/perf_event_open.2:1761
5519 #, no-wrap
5520 msgid "B<PERF_MEM_LVL_L2>"
5521 msgstr ""
5522
5523 #. type: Plain text
5524 #: build/C/man2/perf_event_open.2:1764
5525 msgid "Level 2 cache"
5526 msgstr ""
5527
5528 #. type: TP
5529 #: build/C/man2/perf_event_open.2:1764
5530 #, no-wrap
5531 msgid "B<PERF_MEM_LVL_L3>"
5532 msgstr ""
5533
5534 #. type: Plain text
5535 #: build/C/man2/perf_event_open.2:1767
5536 msgid "Level 3 cache"
5537 msgstr ""
5538
5539 #. type: TP
5540 #: build/C/man2/perf_event_open.2:1767
5541 #, fuzzy, no-wrap
5542 #| msgid "B<PERF_EVENT_IOC_RESET>"
5543 msgid "B<PERF_MEM_LVL_LOC_RAM>"
5544 msgstr "B<PERF_EVENT_IOC_RESET>"
5545
5546 #. type: Plain text
5547 #: build/C/man2/perf_event_open.2:1770
5548 msgid "Local DRAM"
5549 msgstr ""
5550
5551 #. type: TP
5552 #: build/C/man2/perf_event_open.2:1770
5553 #, no-wrap
5554 msgid "B<PERF_MEM_LVL_REM_RAM1>"
5555 msgstr ""
5556
5557 #. type: Plain text
5558 #: build/C/man2/perf_event_open.2:1773
5559 msgid "Remote DRAM 1 hop"
5560 msgstr ""
5561
5562 #. type: TP
5563 #: build/C/man2/perf_event_open.2:1773
5564 #, no-wrap
5565 msgid "B<PERF_MEM_LVL_REM_RAM2>"
5566 msgstr ""
5567
5568 #. type: Plain text
5569 #: build/C/man2/perf_event_open.2:1776
5570 msgid "Remote DRAM 2 hops"
5571 msgstr ""
5572
5573 #. type: TP
5574 #: build/C/man2/perf_event_open.2:1776
5575 #, no-wrap
5576 msgid "B<PERF_MEM_LVL_REM_CCE1>"
5577 msgstr ""
5578
5579 #. type: Plain text
5580 #: build/C/man2/perf_event_open.2:1779
5581 msgid "Remote cache 1 hop"
5582 msgstr ""
5583
5584 #. type: TP
5585 #: build/C/man2/perf_event_open.2:1779
5586 #, no-wrap
5587 msgid "B<PERF_MEM_LVL_REM_CCE2>"
5588 msgstr ""
5589
5590 #. type: Plain text
5591 #: build/C/man2/perf_event_open.2:1782
5592 msgid "Remote cache 2 hops"
5593 msgstr ""
5594
5595 #. type: TP
5596 #: build/C/man2/perf_event_open.2:1782
5597 #, fuzzy, no-wrap
5598 #| msgid "B<PERF_EVENT_IOC_RESET>"
5599 msgid "B<PERF_MEM_LVL_IO>"
5600 msgstr "B<PERF_EVENT_IOC_RESET>"
5601
5602 #. type: Plain text
5603 #: build/C/man2/perf_event_open.2:1785
5604 #, fuzzy
5605 #| msgid "I/O error."
5606 msgid "I/O memory"
5607 msgstr "I/O エラー。"
5608
5609 #. type: TP
5610 #: build/C/man2/perf_event_open.2:1785
5611 #, no-wrap
5612 msgid "B<PERF_MEM_LVL_UNC>"
5613 msgstr ""
5614
5615 #. type: Plain text
5616 #: build/C/man2/perf_event_open.2:1788
5617 msgid "Uncached memory"
5618 msgstr ""
5619
5620 #. type: TP
5621 #: build/C/man2/perf_event_open.2:1790
5622 #, no-wrap
5623 msgid "I<mem_snoop>"
5624 msgstr ""
5625
5626 #. type: Plain text
5627 #: build/C/man2/perf_event_open.2:1793
5628 msgid "Snoop mode, a bitwise combination of:"
5629 msgstr ""
5630
5631 #. type: TP
5632 #: build/C/man2/perf_event_open.2:1796
5633 #, fuzzy, no-wrap
5634 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5635 msgid "B<PERF_MEM_SNOOP_NA>"
5636 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5637
5638 #. type: TP
5639 #: build/C/man2/perf_event_open.2:1799
5640 #, fuzzy, no-wrap
5641 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5642 msgid "B<PERF_MEM_SNOOP_NONE>"
5643 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5644
5645 #. type: Plain text
5646 #: build/C/man2/perf_event_open.2:1802
5647 msgid "No snoop"
5648 msgstr ""
5649
5650 #. type: TP
5651 #: build/C/man2/perf_event_open.2:1802
5652 #, fuzzy, no-wrap
5653 #| msgid "B<PERF_RECORD_EXIT>"
5654 msgid "B<PERF_MEM_SNOOP_HIT>"
5655 msgstr "B<PERF_RECORD_EXIT>"
5656
5657 #. type: Plain text
5658 #: build/C/man2/perf_event_open.2:1805
5659 msgid "Snoop hit"
5660 msgstr ""
5661
5662 #. type: TP
5663 #: build/C/man2/perf_event_open.2:1805
5664 #, no-wrap
5665 msgid "B<PERF_MEM_SNOOP_MISS>"
5666 msgstr ""
5667
5668 #. type: Plain text
5669 #: build/C/man2/perf_event_open.2:1808
5670 msgid "Snoop miss"
5671 msgstr ""
5672
5673 #. type: TP
5674 #: build/C/man2/perf_event_open.2:1808
5675 #, fuzzy, no-wrap
5676 #| msgid "B<PERF_RECORD_EXIT>"
5677 msgid "B<PERF_MEM_SNOOP_HITM>"
5678 msgstr "B<PERF_RECORD_EXIT>"
5679
5680 #. type: Plain text
5681 #: build/C/man2/perf_event_open.2:1811
5682 msgid "Snoop hit modified"
5683 msgstr ""
5684
5685 #. type: TP
5686 #: build/C/man2/perf_event_open.2:1813
5687 #, no-wrap
5688 msgid "I<mem_lock>"
5689 msgstr ""
5690
5691 #. type: Plain text
5692 #: build/C/man2/perf_event_open.2:1816
5693 msgid "Lock instruction, a bitwise combination of:"
5694 msgstr ""
5695
5696 #. type: TP
5697 #: build/C/man2/perf_event_open.2:1819
5698 #, fuzzy, no-wrap
5699 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5700 msgid "B<PERF_MEM_LOCK_NA>"
5701 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5702
5703 #. type: TP
5704 #: build/C/man2/perf_event_open.2:1822
5705 #, fuzzy, no-wrap
5706 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5707 msgid "B<PERF_MEM_LOCK_LOCKED>"
5708 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5709
5710 #. type: Plain text
5711 #: build/C/man2/perf_event_open.2:1825
5712 msgid "Locked transaction"
5713 msgstr ""
5714
5715 #. type: TP
5716 #: build/C/man2/perf_event_open.2:1827
5717 #, no-wrap
5718 msgid "I<mem_dtlb>"
5719 msgstr ""
5720
5721 #. type: Plain text
5722 #: build/C/man2/perf_event_open.2:1830
5723 msgid "TLB access hit or miss, a bitwise combination of:"
5724 msgstr ""
5725
5726 #. type: TP
5727 #: build/C/man2/perf_event_open.2:1833
5728 #, fuzzy, no-wrap
5729 #| msgid "B<PERF_EVENT_IOC_ENABLE>"
5730 msgid "B<PERF_MEM_TLB_NA>"
5731 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5732
5733 #. type: TP
5734 #: build/C/man2/perf_event_open.2:1836
5735 #, fuzzy, no-wrap
5736 #| msgid "B<PERF_RECORD_EXIT>"
5737 msgid "B<PERF_MEM_TLB_HIT>"
5738 msgstr "B<PERF_RECORD_EXIT>"
5739
5740 #. type: TP
5741 #: build/C/man2/perf_event_open.2:1839
5742 #, fuzzy, no-wrap
5743 #| msgid "B<PERF_EVENT_IOC_RESET>"
5744 msgid "B<PERF_MEM_TLB_MISS>"
5745 msgstr "B<PERF_EVENT_IOC_RESET>"
5746
5747 #. type: TP
5748 #: build/C/man2/perf_event_open.2:1842
5749 #, no-wrap
5750 msgid "B<PERF_MEM_TLB_L1>"
5751 msgstr ""
5752
5753 #. type: Plain text
5754 #: build/C/man2/perf_event_open.2:1845
5755 msgid "Level 1 TLB"
5756 msgstr ""
5757
5758 #. type: TP
5759 #: build/C/man2/perf_event_open.2:1845
5760 #, no-wrap
5761 msgid "B<PERF_MEM_TLB_L2>"
5762 msgstr ""
5763
5764 #. type: Plain text
5765 #: build/C/man2/perf_event_open.2:1848
5766 msgid "Level 2 TLB"
5767 msgstr ""
5768
5769 #. type: TP
5770 #: build/C/man2/perf_event_open.2:1848
5771 #, no-wrap
5772 msgid "B<PERF_MEM_TLB_WK>"
5773 msgstr ""
5774
5775 #. type: Plain text
5776 #: build/C/man2/perf_event_open.2:1851
5777 msgid "Hardware walker"
5778 msgstr ""
5779
5780 #. type: TP
5781 #: build/C/man2/perf_event_open.2:1851
5782 #, fuzzy, no-wrap
5783 #| msgid "B<PERF_EVENT_IOC_RESET>"
5784 msgid "B<PERF_MEM_TLB_OS>"
5785 msgstr "B<PERF_EVENT_IOC_RESET>"
5786
5787 #. type: Plain text
5788 #: build/C/man2/perf_event_open.2:1854
5789 msgid "OS fault handler"
5790 msgstr ""
5791
5792 #. type: SS
5793 #: build/C/man2/perf_event_open.2:1860
5794 #, no-wrap
5795 msgid "Signal overflow"
5796 msgstr ""
5797
5798 #. type: Plain text
5799 #: build/C/man2/perf_event_open.2:1869
5800 msgid ""
5801 "Events can be set to deliver a signal when a threshold is crossed.  The "
5802 "signal handler is set up using the B<poll>(2), B<select>(2), B<epoll>(2)  "
5803 "and B<fcntl>(2), system calls."
5804 msgstr ""
5805
5806 #. type: Plain text
5807 #: build/C/man2/perf_event_open.2:1873
5808 msgid ""
5809 "To generate signals, sampling must be enabled (I<sample_period> must have a "
5810 "non-zero value)."
5811 msgstr ""
5812
5813 #. type: Plain text
5814 #: build/C/man2/perf_event_open.2:1875
5815 msgid "There are two ways to generate signals."
5816 msgstr ""
5817
5818 #. type: Plain text
5819 #: build/C/man2/perf_event_open.2:1885
5820 msgid ""
5821 "The first is to set a I<wakeup_events> or I<wakeup_watermark> value that "
5822 "will generate a signal if a certain number of samples or bytes have been "
5823 "written to the mmap ring buffer.  In this case a signal of type B<POLL_IN> "
5824 "is sent."
5825 msgstr ""
5826
5827 #. type: Plain text
5828 #: build/C/man2/perf_event_open.2:1897
5829 msgid ""
5830 "The other way is by use of the B<PERF_EVENT_IOC_REFRESH> ioctl.  This ioctl "
5831 "adds to a counter that decrements each time the event overflows.  When non-"
5832 "zero, a B<POLL_IN> signal is sent on overflow, but once the value reaches 0, "
5833 "a signal is sent of type B<POLL_HUP> and the underlying event is disabled."
5834 msgstr ""
5835
5836 #.  FIXME(Vince) : Find out when this was introduced
5837 #. type: Plain text
5838 #: build/C/man2/perf_event_open.2:1903
5839 msgid ""
5840 "Note: on newer kernels (definitely noticed with 3.2)  a signal is provided "
5841 "for every overflow, even if I<wakeup_events> is not set."
5842 msgstr ""
5843
5844 #. type: SS
5845 #: build/C/man2/perf_event_open.2:1903
5846 #, no-wrap
5847 msgid "rdpmc instruction"
5848 msgstr ""
5849
5850 #. type: Plain text
5851 #: build/C/man2/perf_event_open.2:1910
5852 msgid ""
5853 "Starting with Linux 3.4 on x86, you can use the I<rdpmc> instruction to get "
5854 "low-latency reads without having to enter the kernel.  Note that using "
5855 "I<rdpmc> is not necessarily faster than other methods for reading event "
5856 "values."
5857 msgstr ""
5858
5859 #. type: Plain text
5860 #: build/C/man2/perf_event_open.2:1915
5861 msgid ""
5862 "Support for this can be detected with the I<cap_usr_rdpmc> field in the mmap "
5863 "page; documentation on how to calculate event values can be found in that "
5864 "section."
5865 msgstr ""
5866
5867 #. type: SS
5868 #: build/C/man2/perf_event_open.2:1915
5869 #, no-wrap
5870 msgid "perf_event ioctl calls"
5871 msgstr ""
5872
5873 #. type: Plain text
5874 #: build/C/man2/perf_event_open.2:1920
5875 msgid "Various ioctls act on B<perf_event_open>()  file descriptors"
5876 msgstr ""
5877
5878 #. type: TP
5879 #: build/C/man2/perf_event_open.2:1920
5880 #, no-wrap
5881 msgid "B<PERF_EVENT_IOC_ENABLE>"
5882 msgstr "B<PERF_EVENT_IOC_ENABLE>"
5883
5884 #. type: Plain text
5885 #: build/C/man2/perf_event_open.2:1924
5886 msgid ""
5887 "Enables the individual event or event group specified by the file descriptor "
5888 "argument."
5889 msgstr ""
5890
5891 #. type: Plain text
5892 #: build/C/man2/perf_event_open.2:1930
5893 msgid ""
5894 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
5895 "events in a group are enabled, even if the event specified is not the group "
5896 "leader (but see BUGS)."
5897 msgstr ""
5898
5899 #. type: TP
5900 #: build/C/man2/perf_event_open.2:1930
5901 #, no-wrap
5902 msgid "B<PERF_EVENT_IOC_DISABLE>"
5903 msgstr "B<PERF_EVENT_IOC_DISABLE>"
5904
5905 #. type: Plain text
5906 #: build/C/man2/perf_event_open.2:1934
5907 msgid ""
5908 "Disables the individual counter or event group specified by the file "
5909 "descriptor argument."
5910 msgstr ""
5911
5912 #. type: Plain text
5913 #: build/C/man2/perf_event_open.2:1941
5914 msgid ""
5915 "Enabling or disabling the leader of a group enables or disables the entire "
5916 "group; that is, while the group leader is disabled, none of the counters in "
5917 "the group will count.  Enabling or disabling a member of a group other than "
5918 "the leader affects only that counter; disabling a non-leader stops that "
5919 "counter from counting but doesn't affect any other counter."
5920 msgstr ""
5921
5922 #. type: Plain text
5923 #: build/C/man2/perf_event_open.2:1947
5924 msgid ""
5925 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
5926 "events in a group are disabled, even if the event specified is not the group "
5927 "leader (but see BUGS)."
5928 msgstr ""
5929
5930 #. type: TP
5931 #: build/C/man2/perf_event_open.2:1947
5932 #, no-wrap
5933 msgid "B<PERF_EVENT_IOC_REFRESH>"
5934 msgstr "B<PERF_EVENT_IOC_REFRESH>"
5935
5936 #. type: Plain text
5937 #: build/C/man2/perf_event_open.2:1961
5938 msgid ""
5939 "Non-inherited overflow counters can use this to enable a counter for a "
5940 "number of overflows specified by the argument, after which it is disabled.  "
5941 "Subsequent calls of this ioctl add the argument value to the current count.  "
5942 "A signal with B<POLL_IN> set will happen on each overflow until the count "
5943 "reaches 0; when that happens a signal with POLL_HUP set is sent and the "
5944 "event is disabled.  Using an argument of 0 is considered undefined behavior."
5945 msgstr ""
5946
5947 #. type: TP
5948 #: build/C/man2/perf_event_open.2:1961
5949 #, no-wrap
5950 msgid "B<PERF_EVENT_IOC_RESET>"
5951 msgstr "B<PERF_EVENT_IOC_RESET>"
5952
5953 #. type: Plain text
5954 #: build/C/man2/perf_event_open.2:1971
5955 msgid ""
5956 "Reset the event count specified by the file descriptor argument to zero.  "
5957 "This resets only the counts; there is no way to reset the multiplexing "
5958 "I<time_enabled> or I<time_running> values."
5959 msgstr ""
5960
5961 #. type: Plain text
5962 #: build/C/man2/perf_event_open.2:1977
5963 msgid ""
5964 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
5965 "events in a group are reset, even if the event specified is not the group "
5966 "leader (but see BUGS)."
5967 msgstr ""
5968
5969 #. type: TP
5970 #: build/C/man2/perf_event_open.2:1977
5971 #, no-wrap
5972 msgid "B<PERF_EVENT_IOC_PERIOD>"
5973 msgstr "B<PERF_EVENT_IOC_PERIOD>"
5974
5975 #. type: Plain text
5976 #: build/C/man2/perf_event_open.2:1981
5977 msgid ""
5978 "IOC_PERIOD is the command to update the period; it does not update the "
5979 "current period but instead defers until next."
5980 msgstr ""
5981
5982 #. type: Plain text
5983 #: build/C/man2/perf_event_open.2:1984
5984 msgid ""
5985 "The argument is a pointer to a 64-bit value containing the desired new "
5986 "period."
5987 msgstr ""
5988
5989 #. type: TP
5990 #: build/C/man2/perf_event_open.2:1984
5991 #, no-wrap
5992 msgid "B<PERF_EVENT_IOC_SET_OUTPUT>"
5993 msgstr ""
5994
5995 #. type: Plain text
5996 #: build/C/man2/perf_event_open.2:1989
5997 msgid ""
5998 "This tells the kernel to report event notifications to the specified file "
5999 "descriptor rather than the default one.  The file descriptors must all be on "
6000 "the same CPU."
6001 msgstr ""
6002
6003 #. type: Plain text
6004 #: build/C/man2/perf_event_open.2:1992
6005 msgid ""
6006 "The argument specifies the desired file descriptor, or -1 if output should "
6007 "be ignored."
6008 msgstr ""
6009
6010 #. type: TP
6011 #: build/C/man2/perf_event_open.2:1992
6012 #, no-wrap
6013 msgid "B<PERF_EVENT_IOC_SET_FILTER> (Since Linux 2.6.33)"
6014 msgstr "B<PERF_EVENT_IOC_SET_FILTER> (Linux 2.6.33 以降)"
6015
6016 #. type: Plain text
6017 #: build/C/man2/perf_event_open.2:1995
6018 msgid "This adds an ftrace filter to this event."
6019 msgstr ""
6020
6021 #. type: Plain text
6022 #: build/C/man2/perf_event_open.2:1997
6023 msgid "The argument is a pointer to the desired ftrace filter."
6024 msgstr ""
6025
6026 #. type: SS
6027 #: build/C/man2/perf_event_open.2:1997
6028 #, no-wrap
6029 msgid "Using prctl"
6030 msgstr ""
6031
6032 #. type: Plain text
6033 #: build/C/man2/perf_event_open.2:2010
6034 msgid ""
6035 "A process can enable or disable all the event groups that are attached to it "
6036 "using the B<prctl>(2)  B<PR_TASK_PERF_EVENTS_ENABLE> and "
6037 "B<PR_TASK_PERF_EVENTS_DISABLE> operations.  This applies to all counters on "
6038 "the current process, whether created by this process or by another, and does "
6039 "not affect any counters that this process has created on other processes.  "
6040 "It enables or disables only the group leaders, not any other members in the "
6041 "groups."
6042 msgstr ""
6043
6044 #. type: SS
6045 #: build/C/man2/perf_event_open.2:2010
6046 #, no-wrap
6047 msgid "perf_event related configuration files"
6048 msgstr ""
6049
6050 #. type: Plain text
6051 #: build/C/man2/perf_event_open.2:2013
6052 msgid "Files in I</proc/sys/kernel/>"
6053 msgstr ""
6054
6055 #. type: TP
6056 #: build/C/man2/perf_event_open.2:2014
6057 #, no-wrap
6058 msgid "I</proc/sys/kernel/perf_event_paranoid>"
6059 msgstr ""
6060
6061 #. type: Plain text
6062 #: build/C/man2/perf_event_open.2:2020
6063 msgid ""
6064 "The I<perf_event_paranoid> file can be set to restrict access to the "
6065 "performance counters."
6066 msgstr ""
6067
6068 #. type: IP
6069 #: build/C/man2/perf_event_open.2:2021
6070 #, no-wrap
6071 msgid "2"
6072 msgstr ""
6073
6074 #. type: Plain text
6075 #: build/C/man2/perf_event_open.2:2023
6076 msgid "only allow user-space measurements."
6077 msgstr ""
6078
6079 #. type: IP
6080 #: build/C/man2/perf_event_open.2:2023
6081 #, no-wrap
6082 msgid "1"
6083 msgstr ""
6084
6085 #. type: Plain text
6086 #: build/C/man2/perf_event_open.2:2025
6087 msgid "allow both kernel and user measurements (default)."
6088 msgstr ""
6089
6090 #. type: IP
6091 #: build/C/man2/perf_event_open.2:2025
6092 #, no-wrap
6093 msgid "0"
6094 msgstr ""
6095
6096 #. type: Plain text
6097 #: build/C/man2/perf_event_open.2:2027
6098 msgid "allow access to CPU-specific data but not raw tracepoint samples."
6099 msgstr ""
6100
6101 #. type: IP
6102 #: build/C/man2/perf_event_open.2:2027
6103 #, fuzzy, no-wrap
6104 #| msgid "-"
6105 msgid "-1"
6106 msgstr "-"
6107
6108 #. type: Plain text
6109 #: build/C/man2/perf_event_open.2:2029
6110 msgid "no restrictions."
6111 msgstr ""
6112
6113 #. type: Plain text
6114 #: build/C/man2/perf_event_open.2:2035
6115 msgid ""
6116 "The existence of the I<perf_event_paranoid> file is the official method for "
6117 "determining if a kernel supports B<perf_event_open>()."
6118 msgstr ""
6119
6120 #. type: TP
6121 #: build/C/man2/perf_event_open.2:2035
6122 #, no-wrap
6123 msgid "I</proc/sys/kernel/perf_event_max_sample_rate>"
6124 msgstr ""
6125
6126 #. type: Plain text
6127 #: build/C/man2/perf_event_open.2:2044
6128 msgid ""
6129 "This sets the maximum sample rate.  Setting this too high can allow users to "
6130 "sample at a rate that impacts overall machine performance and potentially "
6131 "lock up the machine.  The default value is 100000 (samples per second)."
6132 msgstr ""
6133
6134 #. type: TP
6135 #: build/C/man2/perf_event_open.2:2044
6136 #, no-wrap
6137 msgid "I</proc/sys/kernel/perf_event_mlock_kb>"
6138 msgstr ""
6139
6140 #. type: Plain text
6141 #: build/C/man2/perf_event_open.2:2049
6142 msgid ""
6143 "Maximum number of pages an unprivileged user can mlock (2) .  The default is "
6144 "516 (kB)."
6145 msgstr ""
6146
6147 #. type: Plain text
6148 #: build/C/man2/perf_event_open.2:2053
6149 msgid "Files in I</sys/bus/event_source/devices/>"
6150 msgstr ""
6151
6152 #. type: Plain text
6153 #: build/C/man2/perf_event_open.2:2059
6154 msgid ""
6155 "Since Linux 2.6.34 the kernel supports having multiple PMUs available for "
6156 "monitoring.  Information on how to program these PMUs can be found under I</"
6157 "sys/bus/event_source/devices/>.  Each subdirectory corresponds to a "
6158 "different PMU."
6159 msgstr ""
6160
6161 #. type: TP
6162 #: build/C/man2/perf_event_open.2:2059
6163 #, no-wrap
6164 msgid "I</sys/bus/event_source/devices/*/type> (Since Linux 2.6.38)"
6165 msgstr "I</sys/bus/event_source/devices/*/type> (Linux 2.6.38 以降)"
6166
6167 #. type: Plain text
6168 #: build/C/man2/perf_event_open.2:2064
6169 msgid ""
6170 "This contains an integer that can be used in the I<type> field of "
6171 "perf_event_attr to indicate you wish to use this PMU."
6172 msgstr ""
6173
6174 #. type: TP
6175 #: build/C/man2/perf_event_open.2:2064
6176 #, no-wrap
6177 msgid "I</sys/bus/event_source/devices/*/rdpmc> (Since Linux 3.4)"
6178 msgstr ""
6179
6180 #. type: Plain text
6181 #: build/C/man2/perf_event_open.2:2069
6182 msgid ""
6183 "If this file is 1, then direct user-space access to the performance counter "
6184 "registers is allowed via the rdpmc instruction.  This can be disabled by "
6185 "echoing 0 to the file."
6186 msgstr ""
6187
6188 #. type: TP
6189 #: build/C/man2/perf_event_open.2:2069
6190 #, no-wrap
6191 msgid "I</sys/bus/event_source/devices/*/format/> (Since Linux 3.4)"
6192 msgstr ""
6193
6194 #. type: Plain text
6195 #: build/C/man2/perf_event_open.2:2075
6196 msgid ""
6197 "This sub-directory contains information on the architecture-specific sub-"
6198 "fields available for programming the various I<config> fields in the "
6199 "perf_event_attr struct."
6200 msgstr ""
6201
6202 #. type: Plain text
6203 #: build/C/man2/perf_event_open.2:2085
6204 msgid ""
6205 "The content of each file is the name of the config field, followed by a "
6206 "colon, followed by a series of integer bit ranges separated by commas.  For "
6207 "example, the file I<event> may contain the value I<config1:1,6-10,44> which "
6208 "indicates that event is an attribute that occupies bits 1,6-10, and 44 of "
6209 "perf_event_attr::config1."
6210 msgstr ""
6211
6212 #. type: TP
6213 #: build/C/man2/perf_event_open.2:2085
6214 #, no-wrap
6215 msgid "I</sys/bus/event_source/devices/*/events/> (Since Linux 3.4)"
6216 msgstr ""
6217
6218 #. type: Plain text
6219 #: build/C/man2/perf_event_open.2:2094
6220 msgid ""
6221 "This sub-directory contains files with pre-defined events.  The contents are "
6222 "strings describing the event settings expressed in terms of the fields found "
6223 "in the previously mentioned I<./format/> directory.  These are not "
6224 "necessarily complete lists of all events supported by a PMU, but usually a "
6225 "subset of events deemed useful or interesting."
6226 msgstr ""
6227
6228 #. type: Plain text
6229 #: build/C/man2/perf_event_open.2:2102
6230 msgid ""
6231 "The content of each file is a list of attribute names separated by commas.  "
6232 "Each entry has an optional value (either hex or decimal).  If no value is "
6233 "specified than it is assumed to be a single-bit field with a value of 1.  An "
6234 "example entry may look like this: I<event=0x2,inv,ldlat=3>."
6235 msgstr ""
6236
6237 #. type: TP
6238 #: build/C/man2/perf_event_open.2:2102
6239 #, no-wrap
6240 msgid "I</sys/bus/event_source/devices/*/uevent>"
6241 msgstr ""
6242
6243 #. type: Plain text
6244 #: build/C/man2/perf_event_open.2:2106
6245 msgid ""
6246 "This file is the standard kernel device interface for injecting hotplug "
6247 "events."
6248 msgstr ""
6249
6250 #. type: TP
6251 #: build/C/man2/perf_event_open.2:2106
6252 #, no-wrap
6253 msgid "I</sys/bus/event_source/devices/*/cpumask> (Since Linux 3.7)"
6254 msgstr ""
6255
6256 #. type: Plain text
6257 #: build/C/man2/perf_event_open.2:2115
6258 msgid ""
6259 "The I<cpumask> file contains a comma-separated list of integers that "
6260 "indicate a representative CPU number for each socket (package)  on the "
6261 "motherboard.  This is needed when setting up uncore or northbridge events, "
6262 "as those PMUs present socket-wide events."
6263 msgstr ""
6264
6265 #. type: Plain text
6266 #: build/C/man2/perf_event_open.2:2122
6267 msgid ""
6268 "B<perf_event_open>()  returns the new file descriptor, or -1 if an error "
6269 "occurred (in which case, I<errno> is set appropriately)."
6270 msgstr ""
6271
6272 #. type: Plain text
6273 #: build/C/man2/perf_event_open.2:2126
6274 msgid "Returned if the specified event is not available."
6275 msgstr ""
6276
6277 #. type: TP
6278 #: build/C/man2/perf_event_open.2:2126
6279 #, no-wrap
6280 msgid "B<ENOSPC>"
6281 msgstr "B<ENOSPC>"
6282
6283 #. type: Plain text
6284 #: build/C/man2/perf_event_open.2:2136
6285 msgid ""
6286 "Prior to Linux 3.3, if there was not enough room for the event, B<ENOSPC> "
6287 "was returned.  Linus did not like this, and this was changed to B<EINVAL>.  "
6288 "B<ENOSPC> is still returned if you try to read results into too small of a "
6289 "buffer."
6290 msgstr ""
6291
6292 #. type: SH
6293 #: build/C/man2/perf_event_open.2:2136
6294 #, no-wrap
6295 msgid "VERSION"
6296 msgstr "バージョン"
6297
6298 #. type: Plain text
6299 #: build/C/man2/perf_event_open.2:2141
6300 msgid ""
6301 "B<perf_event_open>()  was introduced in Linux 2.6.31 but was called "
6302 "B<perf_counter_open>()B<.> It was renamed in Linux 2.6.32."
6303 msgstr ""
6304
6305 #. type: Plain text
6306 #: build/C/man2/perf_event_open.2:2146
6307 #, fuzzy
6308 #| msgid ""
6309 #| "B<personality>()  is Linux-specific and should not be used in programs "
6310 #| "intended to be portable."
6311 msgid ""
6312 "This B<perf_event_open>()  system call Linux- specific and should not be "
6313 "used in programs intended to be portable."
6314 msgstr ""
6315 "B<personality>()  は Linux 固有であり、移植を意図したプログラムで使用すべきで"
6316 "はない。"
6317
6318 #. type: Plain text
6319 #: build/C/man2/perf_event_open.2:2150
6320 #, fuzzy
6321 #| msgid ""
6322 #| "Glibc does not provide a wrapper for this system call; call it using "
6323 #| "B<syscall>(2)."
6324 msgid ""
6325 "Glibc does not provide a wrapper for this system call; call it using "
6326 "B<syscall>(2).  See the example below."
6327 msgstr ""
6328 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
6329 "(2)  を使って呼び出すこと。"
6330
6331 #. type: Plain text
6332 #: build/C/man2/perf_event_open.2:2156
6333 msgid ""
6334 "The official way of knowing if B<perf_event_open>()  support is enabled is "
6335 "checking for the existence of the file I</proc/sys/kernel/"
6336 "perf_event_paranoid>."
6337 msgstr ""
6338
6339 #. type: SH
6340 #: build/C/man2/perf_event_open.2:2156 build/C/man2/pivot_root.2:134
6341 #: build/C/man2/ptrace.2:1884
6342 #, no-wrap
6343 msgid "BUGS"
6344 msgstr "バグ"
6345
6346 #. type: Plain text
6347 #: build/C/man2/perf_event_open.2:2163
6348 msgid ""
6349 "The B<F_SETOWN_EX> option to B<fcntl>(2)  is needed to properly get overflow "
6350 "signals in threads.  This was introduced in Linux 2.6.32."
6351 msgstr ""
6352
6353 #. type: Plain text
6354 #: build/C/man2/perf_event_open.2:2171
6355 msgid ""
6356 "Prior to Linux 2.6.33 (at least for x86) the kernel did not check if events "
6357 "could be scheduled together until read time.  The same happens on all known "
6358 "kernels if the NMI watchdog is enabled.  This means to see if a given set of "
6359 "events works you have to B<perf_event_open>(), start, then read before you "
6360 "know for sure you can get valid measurements."
6361 msgstr ""
6362
6363 #. type: Plain text
6364 #: build/C/man2/perf_event_open.2:2175
6365 msgid ""
6366 "Prior to Linux 2.6.34 event constraints were not enforced by the kernel.  In "
6367 "that case, some events would silently return \"0\" if the kernel scheduled "
6368 "them in an improper counter slot."
6369 msgstr ""
6370
6371 #. type: Plain text
6372 #: build/C/man2/perf_event_open.2:2178
6373 msgid ""
6374 "Prior to Linux 2.6.34 there was a bug when multiplexing where the wrong "
6375 "results could be returned."
6376 msgstr ""
6377
6378 #. type: Plain text
6379 #: build/C/man2/perf_event_open.2:2181
6380 msgid ""
6381 "Kernels from Linux 2.6.35 to Linux 2.6.39 can quickly crash the kernel if "
6382 "\"inherit\" is enabled and many threads are started."
6383 msgstr ""
6384
6385 #. type: Plain text
6386 #: build/C/man2/perf_event_open.2:2185
6387 msgid ""
6388 "Prior to Linux 2.6.35, B<PERF_FORMAT_GROUP> did not work with attached "
6389 "processes."
6390 msgstr ""
6391
6392 #. type: Plain text
6393 #: build/C/man2/perf_event_open.2:2190
6394 msgid ""
6395 "In older Linux 2.6 versions, refreshing an event group leader refreshed all "
6396 "siblings, and refreshing with a parameter of 0 enabled infinite refresh.  "
6397 "This behavior is unsupported and should not be relied on."
6398 msgstr ""
6399
6400 #. type: Plain text
6401 #: build/C/man2/perf_event_open.2:2196
6402 msgid ""
6403 "There is a bug in the kernel code between Linux 2.6.36 and Linux 3.0 that "
6404 "ignores the \"watermark\" field and acts as if a wakeup_event was chosen if "
6405 "the union has a non-zero value in it."
6406 msgstr ""
6407
6408 #. type: Plain text
6409 #: build/C/man2/perf_event_open.2:2202
6410 msgid ""
6411 "From Linux 2.6.31 to Linux 3.4, the B<PERF_IOC_FLAG_GROUP> ioctl argument "
6412 "was broken and would repeatedly operate on the event specified rather than "
6413 "iterating across all sibling events in a group."
6414 msgstr ""
6415
6416 #. type: Plain text
6417 #: build/C/man2/perf_event_open.2:2207
6418 msgid ""
6419 "Always double-check your results! Various generalized events have had wrong "
6420 "values.  For example, retired branches measured the wrong thing on AMD "
6421 "machines until Linux 2.6.35."
6422 msgstr ""
6423
6424 #. type: SH
6425 #: build/C/man2/perf_event_open.2:2207 build/C/man2/process_vm_readv.2:295
6426 #: build/C/man2/splice.2:223 build/C/man2/tee.2:130
6427 #, no-wrap
6428 msgid "EXAMPLE"
6429 msgstr "例"
6430
6431 #. type: Plain text
6432 #: build/C/man2/perf_event_open.2:2211
6433 msgid ""
6434 "The following is a short example that measures the total instruction count "
6435 "of a call to B<printf>(3)."
6436 msgstr ""
6437
6438 #. type: Plain text
6439 #: build/C/man2/perf_event_open.2:2220
6440 #, no-wrap
6441 msgid ""
6442 "#include E<lt>stdlib.hE<gt>\n"
6443 "#include E<lt>stdio.hE<gt>\n"
6444 "#include E<lt>unistd.hE<gt>\n"
6445 "#include E<lt>string.hE<gt>\n"
6446 "#include E<lt>sys/ioctl.hE<gt>\n"
6447 "#include E<lt>linux/perf_event.hE<gt>\n"
6448 "#include E<lt>asm/unistd.hE<gt>\n"
6449 msgstr ""
6450 "#include E<lt>stdlib.hE<gt>\n"
6451 "#include E<lt>stdio.hE<gt>\n"
6452 "#include E<lt>unistd.hE<gt>\n"
6453 "#include E<lt>string.hE<gt>\n"
6454 "#include E<lt>sys/ioctl.hE<gt>\n"
6455 "#include E<lt>linux/perf_event.hE<gt>\n"
6456 "#include E<lt>asm/unistd.hE<gt>\n"
6457
6458 #. type: Plain text
6459 #: build/C/man2/perf_event_open.2:2226
6460 #, no-wrap
6461 msgid ""
6462 "long\n"
6463 "perf_event_open(struct perf_event_attr *hw_event, pid_t pid,\n"
6464 "                int cpu, int group_fd, unsigned long flags)\n"
6465 "{\n"
6466 "    int ret;\n"
6467 msgstr ""
6468
6469 #. type: Plain text
6470 #: build/C/man2/perf_event_open.2:2231
6471 #, no-wrap
6472 msgid ""
6473 "    ret = syscall(__NR_perf_event_open, hw_event, pid, cpu,\n"
6474 "                   group_fd, flags);\n"
6475 "    return ret;\n"
6476 "}\n"
6477 msgstr ""
6478
6479 #. type: Plain text
6480 #: build/C/man2/perf_event_open.2:2238
6481 #, no-wrap
6482 msgid ""
6483 "int\n"
6484 "main(int argc, char **argv)\n"
6485 "{\n"
6486 "    struct perf_event_attr pe;\n"
6487 "    long long count;\n"
6488 "    int fd;\n"
6489 msgstr ""
6490 "int\n"
6491 "main(int argc, char **argv)\n"
6492 "{\n"
6493 "    struct perf_event_attr pe;\n"
6494 "    long long count;\n"
6495 "    int fd;\n"
6496
6497 #. type: Plain text
6498 #: build/C/man2/perf_event_open.2:2246
6499 #, no-wrap
6500 msgid ""
6501 "    memset(&pe, 0, sizeof(struct perf_event_attr));\n"
6502 "    pe.type = PERF_TYPE_HARDWARE;\n"
6503 "    pe.size = sizeof(struct perf_event_attr);\n"
6504 "    pe.config = PERF_COUNT_HW_INSTRUCTIONS;\n"
6505 "    pe.disabled = 1;\n"
6506 "    pe.exclude_kernel = 1;\n"
6507 "    pe.exclude_hv = 1;\n"
6508 msgstr ""
6509
6510 #. type: Plain text
6511 #: build/C/man2/perf_event_open.2:2252
6512 #, no-wrap
6513 msgid ""
6514 "    fd = perf_event_open(&pe, 0, -1, -1, 0);\n"
6515 "    if (fd == -1) {\n"
6516 "       fprintf(stderr, \"Error opening leader %llx\\en\", pe.config);\n"
6517 "       exit(EXIT_FAILURE);\n"
6518 "    }\n"
6519 msgstr ""
6520 "    fd = perf_event_open(&pe, 0, -1, -1, 0);\n"
6521 "    if (fd == -1) {\n"
6522 "       fprintf(stderr, \"Error opening leader %llx\\en\", pe.config);\n"
6523 "       exit(EXIT_FAILURE);\n"
6524 "    }\n"
6525
6526 #. type: Plain text
6527 #: build/C/man2/perf_event_open.2:2255
6528 #, no-wrap
6529 msgid ""
6530 "    ioctl(fd, PERF_EVENT_IOC_RESET, 0);\n"
6531 "    ioctl(fd, PERF_EVENT_IOC_ENABLE, 0);\n"
6532 msgstr ""
6533
6534 #. type: Plain text
6535 #: build/C/man2/perf_event_open.2:2257
6536 #, no-wrap
6537 msgid "    printf(\"Measuring instruction count for this printf\\en\");\n"
6538 msgstr ""
6539
6540 #. type: Plain text
6541 #: build/C/man2/perf_event_open.2:2260
6542 #, no-wrap
6543 msgid ""
6544 "    ioctl(fd, PERF_EVENT_IOC_DISABLE, 0);\n"
6545 "    read(fd, &count, sizeof(long long));\n"
6546 msgstr ""
6547
6548 #. type: Plain text
6549 #: build/C/man2/perf_event_open.2:2262
6550 #, no-wrap
6551 msgid "    printf(\"Used %lld instructions\\en\", count);\n"
6552 msgstr ""
6553
6554 #. type: Plain text
6555 #: build/C/man2/perf_event_open.2:2265
6556 #, no-wrap
6557 msgid ""
6558 "    close(fd);\n"
6559 "}\n"
6560 msgstr ""
6561
6562 #. type: Plain text
6563 #: build/C/man2/perf_event_open.2:2272
6564 msgid "B<fcntl>(2), B<mmap>(2), B<open>(2), B<prctl>(2), B<read>(2)"
6565 msgstr "B<fcntl>(2), B<mmap>(2), B<open>(2), B<prctl>(2), B<read>(2)"
6566
6567 #. type: TH
6568 #: build/C/man2/perfmonctl.2:27
6569 #, no-wrap
6570 msgid "PERFMONCTL"
6571 msgstr ""
6572
6573 #. type: Plain text
6574 #: build/C/man2/perfmonctl.2:30
6575 msgid "perfmonctl - interface to IA-64 performance monitoring unit"
6576 msgstr ""
6577
6578 #. type: Plain text
6579 #: build/C/man2/perfmonctl.2:34
6580 #, no-wrap
6581 msgid ""
6582 "B<#include E<lt>syscall.hE<gt>>\n"
6583 "B<#include E<lt>perfmon.hE<gt>>\n"
6584 msgstr ""
6585 "B<#include E<lt>syscall.hE<gt>>\n"
6586 "B<#include E<lt>perfmon.hE<gt>>\n"
6587
6588 #. type: Plain text
6589 #: build/C/man2/perfmonctl.2:36
6590 #, no-wrap
6591 msgid "B<long perfmonctl(int >I<fd>B<, int >I<cmd>B<, void *>I<arg>B<, int >I<narg>B<);>\n"
6592 msgstr "B<long perfmonctl(int >I<fd>B<, int >I<cmd>B<, void *>I<arg>B<, int >I<narg>B<);>\n"
6593
6594 #. type: Plain text
6595 #: build/C/man2/perfmonctl.2:47
6596 msgid ""
6597 "The IA-64-specific B<perfmonctl>()  system call provides an interface to the "
6598 "PMU (performance monitoring unit).  The PMU consists of PMD (performance "
6599 "monitoring data) registers and PMC (performance monitoring control) "
6600 "registers, which gather hardware statistics."
6601 msgstr ""
6602
6603 #. type: Plain text
6604 #: build/C/man2/perfmonctl.2:57
6605 msgid ""
6606 "B<perfmonctl>()  applies the operation I<cmd> to the input arguments "
6607 "specified by I<arg>.  The number of arguments is defined by I<narg>.  The "
6608 "I<fd> argument specifies the perfmon context to operate on."
6609 msgstr ""
6610
6611 #. type: Plain text
6612 #: build/C/man2/perfmonctl.2:61
6613 msgid "Supported values for I<cmd> are:"
6614 msgstr ""
6615
6616 #. type: TP
6617 #: build/C/man2/perfmonctl.2:61
6618 #, no-wrap
6619 msgid "B<PFM_CREATE_CONTEXT>"
6620 msgstr "B<PFM_CREATE_CONTEXT>"
6621
6622 #. type: Plain text
6623 #: build/C/man2/perfmonctl.2:65
6624 #, no-wrap
6625 msgid "B<perfmonctl(int >I<fd>B<, PFM_CREATE_CONTEXT, pfarg_context_t *>I<ctxt>B<, 1);>\n"
6626 msgstr ""
6627
6628 #. type: Plain text
6629 #: build/C/man2/perfmonctl.2:67
6630 msgid "Set up a context."
6631 msgstr ""
6632
6633 #. type: Plain text
6634 #: build/C/man2/perfmonctl.2:74
6635 msgid ""
6636 "The I<fd> parameter is ignored.  A new perfmon context is created as "
6637 "specified in I<ctxt> and its file descriptor is returned in I<ctxt-"
6638 "E<gt>ctx_fd>."
6639 msgstr ""
6640
6641 #. type: Plain text
6642 #: build/C/man2/perfmonctl.2:86
6643 msgid ""
6644 "The file descriptor can be used in subsequent calls to B<perfmonctl>()  and "
6645 "can be used to read event notifications (type I<pfm_msg_t>)  using B<read>"
6646 "(2).  The file descriptor is pollable using B<select>(2), B<poll>(2), and "
6647 "B<epoll>(7)."
6648 msgstr ""
6649
6650 #. type: Plain text
6651 #: build/C/man2/perfmonctl.2:90
6652 msgid ""
6653 "The context can be destroyed by calling B<close>(2)  on the file descriptor."
6654 msgstr ""
6655
6656 #. type: TP
6657 #: build/C/man2/perfmonctl.2:90
6658 #, no-wrap
6659 msgid "B<PFM_WRITE_PMCS>"
6660 msgstr ""
6661
6662 #. type: Plain text
6663 #: build/C/man2/perfmonctl.2:95
6664 #, no-wrap
6665 msgid "B<perfmonctl(int >I<fd>B<, PFM_WRITE_PMCS, pfarg_reg_t *>I<pmcs>B<, n);>\n"
6666 msgstr ""
6667
6668 #. type: Plain text
6669 #: build/C/man2/perfmonctl.2:97
6670 msgid "Set PMC registers."
6671 msgstr ""
6672
6673 #. type: TP
6674 #: build/C/man2/perfmonctl.2:97
6675 #, no-wrap
6676 msgid "B<PFM_WRITE_PMDS>"
6677 msgstr ""
6678
6679 #. type: Plain text
6680 #: build/C/man2/perfmonctl.2:101
6681 #, no-wrap
6682 msgid "B<perfmonctl(int >I<fd>B<, PFM_WRITE_PMDS, pfarg_reg_t *>I<pmds>B<, n);>\n"
6683 msgstr ""
6684
6685 #.  pfm_write_pmds()
6686 #. type: Plain text
6687 #: build/C/man2/perfmonctl.2:104
6688 msgid "Set PMD registers."
6689 msgstr ""
6690
6691 #. type: TP
6692 #: build/C/man2/perfmonctl.2:104
6693 #, no-wrap
6694 msgid "B<PFM_READ_PMDS>"
6695 msgstr ""
6696
6697 #. type: Plain text
6698 #: build/C/man2/perfmonctl.2:109
6699 #, no-wrap
6700 msgid "B<perfmonctl(int >I<fd>B<, PFM_READ_PMDS, pfarg_reg_t *>I<pmds>B<, n);>\n"
6701 msgstr ""
6702
6703 #. type: Plain text
6704 #: build/C/man2/perfmonctl.2:111
6705 msgid "Read PMD registers."
6706 msgstr ""
6707
6708 #. type: TP
6709 #: build/C/man2/perfmonctl.2:111
6710 #, no-wrap
6711 msgid "B<PFM_START>"
6712 msgstr ""
6713
6714 #.  .BI  "perfmonctl(int " fd ", PFM_START, arg, 1);
6715 #. type: Plain text
6716 #: build/C/man2/perfmonctl.2:117
6717 #, no-wrap
6718 msgid "B<perfmonctl(int >I<fd>B<, PFM_START, NULL, 0);>\n"
6719 msgstr ""
6720
6721 #. type: Plain text
6722 #: build/C/man2/perfmonctl.2:119
6723 msgid "Start monitoring."
6724 msgstr ""
6725
6726 #. type: TP
6727 #: build/C/man2/perfmonctl.2:119
6728 #, no-wrap
6729 msgid "B<PFM_STOP>"
6730 msgstr ""
6731
6732 #. type: Plain text
6733 #: build/C/man2/perfmonctl.2:124
6734 #, no-wrap
6735 msgid "B<perfmonctl(int >I<fd>B<, PFM_STOP, NULL, 0);>\n"
6736 msgstr ""
6737
6738 #. type: Plain text
6739 #: build/C/man2/perfmonctl.2:126
6740 msgid "Stop monitoring."
6741 msgstr ""
6742
6743 #. type: TP
6744 #: build/C/man2/perfmonctl.2:126
6745 #, no-wrap
6746 msgid "B<PFM_LOAD_CONTEXT>"
6747 msgstr "B<PFM_LOAD_CONTEXT>"
6748
6749 #. type: Plain text
6750 #: build/C/man2/perfmonctl.2:131
6751 #, no-wrap
6752 msgid "B<perfmonctl(int >I<fd>B<, PFM_LOAD_CONTEXT, pfarg_load_t *>I<largs>B<, 1);>\n"
6753 msgstr ""
6754
6755 #. type: Plain text
6756 #: build/C/man2/perfmonctl.2:133
6757 msgid "Attach the context to a thread."
6758 msgstr ""
6759
6760 #. type: TP
6761 #: build/C/man2/perfmonctl.2:133
6762 #, no-wrap
6763 msgid "B<PFM_UNLOAD_CONTEXT>"
6764 msgstr ""
6765
6766 #. type: Plain text
6767 #: build/C/man2/perfmonctl.2:138
6768 #, no-wrap
6769 msgid "B<perfmonctl(int >I<fd>B<, PFM_UNLOAD_CONTEXT, NULL, 0);>\n"
6770 msgstr ""
6771
6772 #. type: Plain text
6773 #: build/C/man2/perfmonctl.2:140
6774 msgid "Detach the context from a thread."
6775 msgstr ""
6776
6777 #. type: TP
6778 #: build/C/man2/perfmonctl.2:140
6779 #, no-wrap
6780 msgid "B<PFM_RESTART>"
6781 msgstr ""
6782
6783 #. type: Plain text
6784 #: build/C/man2/perfmonctl.2:145
6785 #, no-wrap
6786 msgid "B<perfmonctl(int >I<fd>B<, PFM_RESTART, NULL, 0);>\n"
6787 msgstr ""
6788
6789 #. type: Plain text
6790 #: build/C/man2/perfmonctl.2:147
6791 msgid "Restart monitoring after receiving an overflow notification."
6792 msgstr ""
6793
6794 #. type: TP
6795 #: build/C/man2/perfmonctl.2:147
6796 #, no-wrap
6797 msgid "B<PFM_GET_FEATURES>"
6798 msgstr "B<PFM_GET_FEATURES>"
6799
6800 #. type: Plain text
6801 #: build/C/man2/perfmonctl.2:152
6802 #, no-wrap
6803 msgid "B<perfmonctl(int >I<fd>B<, PFM_GET_FEARURES, pfarg_features_t *>I<arg>B<, 1);>\n"
6804 msgstr ""
6805
6806 #. type: TP
6807 #: build/C/man2/perfmonctl.2:153
6808 #, no-wrap
6809 msgid "B<PFM_DEBUG>"
6810 msgstr ""
6811
6812 #. type: Plain text
6813 #: build/C/man2/perfmonctl.2:158
6814 #, no-wrap
6815 msgid "B<perfmonctl(int >I<fd>B<, PFM_DEBUG, >I<val>B<, 0);>\n"
6816 msgstr ""
6817
6818 #. type: Plain text
6819 #: build/C/man2/perfmonctl.2:162
6820 msgid "If I<val> is nonzero, enable debugging mode, otherwise disable."
6821 msgstr ""
6822
6823 #. type: TP
6824 #: build/C/man2/perfmonctl.2:162
6825 #, no-wrap
6826 msgid "B<PFM_GET_PMC_RESET_VAL>"
6827 msgstr ""
6828
6829 #. type: Plain text
6830 #: build/C/man2/perfmonctl.2:167
6831 #, no-wrap
6832 msgid "B<perfmonctl(int >I<fd>B<, PFM_GET_PMC_RESET_VAL, pfarg_reg_t * >I<req>B<, n);>\n"
6833 msgstr ""
6834
6835 #
6836 #
6837 #
6838 #.  .TP
6839 #.  .B PFM_CREATE_EVTSETS
6840 #.  create or modify event sets
6841 #.  .nf
6842 #.  .BI  "perfmonctl(int " fd ", PFM_CREATE_EVTSETS, pfarg_setdesc_t *desc , n);
6843 #.  .fi
6844 #.  .TP
6845 #.  .B PFM_DELETE_EVTSETS
6846 #.  delete event sets
6847 #.  .nf
6848 #.  .BI  "perfmonctl(int " fd ", PFM_DELETE_EVTSET, pfarg_setdesc_t *desc , n);
6849 #.  .fi
6850 #.  .TP
6851 #.  .B PFM_GETINFO_EVTSETS
6852 #.  get information about event sets
6853 #.  .nf
6854 #.  .BI  "perfmonctl(int " fd ", PFM_GETINFO_EVTSETS, pfarg_setinfo_t *info, n);
6855 #.  .fi
6856 #. type: Plain text
6857 #: build/C/man2/perfmonctl.2:190
6858 msgid "Reset PMC registers to default values."
6859 msgstr ""
6860
6861 #. type: Plain text
6862 #: build/C/man2/perfmonctl.2:196
6863 #, fuzzy
6864 #| msgid ""
6865 #| "On success, B<kexec_load>()  returns 0.  On error, -1 is returned and "
6866 #| "I<errno> is set to indicate the error."
6867 msgid ""
6868 "B<performctl>()  returns zero when the operation is successful.  On error, "
6869 "-1 is returned and I<errno> is set to indicate the cause of the error."
6870 msgstr ""
6871 "成功すると、 B<kexec_load> は 0 を返す。\n"
6872 "エラーの場合、 -1 が返り、 I<errno> にエラーを示す値が設定される。"
6873
6874 #. type: Plain text
6875 #: build/C/man2/perfmonctl.2:199
6876 #, fuzzy
6877 #| msgid "B<pivot_root>()  was introduced in Linux 2.3.41."
6878 msgid "B<perfmonctl>()  is available since Linux 2.4."
6879 msgstr "B<pivot_root>()  は Linux 2.3.41 で導入された。"
6880
6881 #. type: Plain text
6882 #: build/C/man2/perfmonctl.2:202
6883 msgid ""
6884 "B<perfmonctl>()  is Linux specific and is available only on the IA-64 "
6885 "architecture."
6886 msgstr ""
6887
6888 #. type: Plain text
6889 #: build/C/man2/perfmonctl.2:207
6890 msgid "B<gprof>(1)"
6891 msgstr ""
6892
6893 #. type: Plain text
6894 #: build/C/man2/perfmonctl.2:209
6895 msgid "The perfmon2 interface specification"
6896 msgstr ""
6897
6898 #. type: TH
6899 #: build/C/man2/personality.2:32
6900 #, no-wrap
6901 msgid "PERSONALITY"
6902 msgstr "PERSONALITY"
6903
6904 #. type: TH
6905 #: build/C/man2/personality.2:32
6906 #, no-wrap
6907 msgid "2003-01-01"
6908 msgstr "2003-01-01"
6909
6910 #. type: Plain text
6911 #: build/C/man2/personality.2:35
6912 msgid "personality - set the process execution domain"
6913 msgstr "personality - プロセスを実行するドメインを設定する"
6914
6915 #. type: Plain text
6916 #: build/C/man2/personality.2:37
6917 msgid "B<#include E<lt>sys/personality.hE<gt>>"
6918 msgstr "B<#include E<lt>sys/personality.hE<gt>>"
6919
6920 #. type: Plain text
6921 #: build/C/man2/personality.2:39
6922 msgid "B<int personality(unsigned long >I<persona>B<);>"
6923 msgstr "B<int personality(unsigned long >I<persona>B<);>"
6924
6925 #. type: Plain text
6926 #: build/C/man2/personality.2:47
6927 msgid ""
6928 "Linux supports different execution domains, or personalities, for each "
6929 "process.  Among other things, execution domains tell Linux how to map signal "
6930 "numbers into signal actions.  The execution domain system allows Linux to "
6931 "provide limited support for binaries compiled under other UNIX-like "
6932 "operating systems."
6933 msgstr ""
6934 "Linux は、プロセス毎の異なる実行ドメイン、すなわち パーソナリティ "
6935 "(personality) をサポートしている。 実行ドメインは Linux にシグナル番号にどの"
6936 "シグナルを割り付けるかを 教えたりする。また、実行ドメイン・システムにより、 "
6937 "Linux は他の UNIX 風のオペレーティング・システムでコンパイルされた バイナリに"
6938 "対する限定的なサポートを提供している。"
6939
6940 #. type: Plain text
6941 #: build/C/man2/personality.2:57
6942 msgid ""
6943 "This function will return the current B<personality>()  when I<persona> "
6944 "equals 0xffffffff.  Otherwise, it will make the execution domain referenced "
6945 "by I<persona> the new execution domain of the calling process."
6946 msgstr ""
6947 "B<personality ()> 関数は、 I<persona> が 0xffffffff の場合は現在の B<パーソナ"
6948 "リティ> を返す。 それ以外の場合、 I<persona> により参照される実行ドメイン"
6949 "を、 呼び出し元のプロセスの新しい実行ドメインとする。"
6950
6951 #. type: Plain text
6952 #: build/C/man2/personality.2:64
6953 msgid ""
6954 "On success, the previous I<persona> is returned.  On error, -1 is returned, "
6955 "and I<errno> is set appropriately."
6956 msgstr ""
6957 "成功した場合、以前の I<persona> が返される。エラーの場合は、-1 が返され、 "
6958 "I<errno> が適切に設定される。"
6959
6960 #. type: Plain text
6961 #: build/C/man2/personality.2:68
6962 msgid "The kernel was unable to change the personality."
6963 msgstr "カーネルがパーソナリティを変更できなかった。"
6964
6965 #. type: Plain text
6966 #: build/C/man2/personality.2:72
6967 msgid ""
6968 "B<personality>()  is Linux-specific and should not be used in programs "
6969 "intended to be portable."
6970 msgstr ""
6971 "B<personality>()  は Linux 固有であり、移植を意図したプログラムで使用すべきで"
6972 "はない。"
6973
6974 #. type: TH
6975 #: build/C/man2/pivot_root.2:10
6976 #, no-wrap
6977 msgid "PIVOT_ROOT"
6978 msgstr "PIVOT_ROOT"
6979
6980 #. type: Plain text
6981 #: build/C/man2/pivot_root.2:13
6982 #, fuzzy
6983 #| msgid "pivot_root - change the root file system"
6984 msgid "pivot_root - change the root filesystem"
6985 msgstr "pivot_root - root ファイルシステムを変更する"
6986
6987 #. type: Plain text
6988 #: build/C/man2/pivot_root.2:15
6989 msgid ""
6990 "B<int pivot_root(const char *>I<new_root>B<, const char *>I<put_old>B<);>"
6991 msgstr ""
6992 "B<int pivot_root(const char *>I<new_root>B<, const char *>I<put_old>B<);>"
6993
6994 #.  The
6995 #.  .B CAP_SYS_ADMIN
6996 #.  capability is required.
6997 #. type: Plain text
6998 #: build/C/man2/pivot_root.2:27
6999 #, fuzzy
7000 #| msgid ""
7001 #| "B<pivot_root>()  moves the root file system of the calling process to the "
7002 #| "directory I<put_old> and makes I<new_root> the new root file system of "
7003 #| "the calling process."
7004 msgid ""
7005 "B<pivot_root>()  moves the root filesystem of the calling process to the "
7006 "directory I<put_old> and makes I<new_root> the new root filesystem of the "
7007 "calling process."
7008 msgstr ""
7009 "B<pivot_root>()  は呼び出し元のプロセスの root ファイルシステムを I<put_old> "
7010 "ディレクトリに移動し、 I<new_root> を呼び出し元のプロセスの新しい root ファイ"
7011 "ルシステムにする。"
7012
7013 #. type: Plain text
7014 #: build/C/man2/pivot_root.2:34
7015 #, fuzzy
7016 #| msgid ""
7017 #| "The typical use of B<pivot_root>()  is during system startup, when the "
7018 #| "system mounts a temporary root file system (e.g., an B<initrd>), then "
7019 #| "mounts the real root file system, and eventually turns the latter into "
7020 #| "the current root of all relevant processes or threads."
7021 msgid ""
7022 "The typical use of B<pivot_root>()  is during system startup, when the "
7023 "system mounts a temporary root filesystem (e.g., an B<initrd>), then mounts "
7024 "the real root filesystem, and eventually turns the latter into the current "
7025 "root of all relevant processes or threads."
7026 msgstr ""
7027 "B<pivot_root>()  の典型的な利用法は、システムの起動中にシステムが一時的な "
7028 "root ファイルシステム (例えば B<initrd>)  をマウントし、これに続いて本当の "
7029 "root ファイルシステムをマウントし、 後者を必要な全てのプロセス・スレッドの カ"
7030 "レント root に変更するような場合である。"
7031
7032 #. type: Plain text
7033 #: build/C/man2/pivot_root.2:46
7034 msgid ""
7035 "B<pivot_root>()  may or may not change the current root and the current "
7036 "working directory of any processes or threads which use the old root "
7037 "directory.  The caller of B<pivot_root>()  must ensure that processes with "
7038 "root or current working directory at the old root operate correctly in "
7039 "either case.  An easy way to ensure this is to change their root and current "
7040 "working directory to I<new_root> before invoking B<pivot_root>()."
7041 msgstr ""
7042 "古い root ディレクトリを使っていた全てのプロセスやスレッドの カレント root と"
7043 "カレントワーキングディレクトリを、 B<pivot_root>()  が変更するかどうかはわか"
7044 "らない。 B<pivot_root>()  の呼びだしプロセスは、古い root やカレントワーキン"
7045 "グディレクトリを使っていた プロセスが、いずれの場合でも正しく動作することを保"
7046 "証しなければならない。 これを簡単に行うには、それらのプロセスの root と カレ"
7047 "ントワーキングディレクトリを B<pivot_root>()  を呼び出す前に I<new_root> に変"
7048 "更しておくことである。"
7049
7050 #. type: Plain text
7051 #: build/C/man2/pivot_root.2:64
7052 #, fuzzy
7053 #| msgid ""
7054 #| "The paragraph above is intentionally vague because the implementation of "
7055 #| "B<pivot_root>()  may change in the future.  At the time of writing, "
7056 #| "B<pivot_root>()  changes root and current working directory of each "
7057 #| "process or thread to I<new_root> if they point to the old root "
7058 #| "directory.  This is necessary in order to prevent kernel threads from "
7059 #| "keeping the old root directory busy with their root and current working "
7060 #| "directory, even if they never access the file system in any way.  In the "
7061 #| "future, there may be a mechanism for kernel threads to explicitly "
7062 #| "relinquish any access to the file system, such that this fairly intrusive "
7063 #| "mechanism can be removed from B<pivot_root>()."
7064 msgid ""
7065 "The paragraph above is intentionally vague because the implementation of "
7066 "B<pivot_root>()  may change in the future.  At the time of writing, "
7067 "B<pivot_root>()  changes root and current working directory of each process "
7068 "or thread to I<new_root> if they point to the old root directory.  This is "
7069 "necessary in order to prevent kernel threads from keeping the old root "
7070 "directory busy with their root and current working directory, even if they "
7071 "never access the filesystem in any way.  In the future, there may be a "
7072 "mechanism for kernel threads to explicitly relinquish any access to the "
7073 "filesystem, such that this fairly intrusive mechanism can be removed from "
7074 "B<pivot_root>()."
7075 msgstr ""
7076 "上記の段落は、将来 B<pivot_root>()  が変更されるかも知れないことを鑑みて、わ"
7077 "ざと曖昧に書いてある。 本ページを記述している時点では、 B<pivot_root>()  は古"
7078 "い root ディレクトリを用いている全てのプロセス・スレッドの root と カレント"
7079 "ワーキングディレクトリを I<new_root> に変更する。これはカーネルのスレッドが古"
7080 "い root ディレクトリを busy 状態にしないために必要である。これらのスレッドが "
7081 "古いディレクトリを root やカレントワーキングディレクトリとしていると、 ファイ"
7082 "ルシステムに一切アクセスしない場合でも 古い root が busy になってしまうからで"
7083 "ある。 将来は、カーネルスレッドがあらゆるファイルシステムへのアクセスを 明示"
7084 "的に放棄するメカニズムができ、このでしゃばりな機能は B<pivot_root>()  から削"
7085 "除されるかもしれない。"
7086
7087 #. type: Plain text
7088 #: build/C/man2/pivot_root.2:72
7089 msgid ""
7090 "Note that this also applies to the calling process: B<pivot_root>()  may or "
7091 "may not affect its current working directory.  It is therefore recommended "
7092 "to call B<chdir(\"/\")> immediately after B<pivot_root>()."
7093 msgstr ""
7094 "これは呼び出し元のプロセスについても当てはまることに注意。 B<pivot_root>()  "
7095 "がカレントプロセスのカレントワーキングディレクトリに影響するかどうかは 分から"
7096 "ない。したがって B<pivot_root>()  の直後に B<chdir(\"/\")> を呼び出すとよい。"
7097
7098 #. type: Plain text
7099 #: build/C/man2/pivot_root.2:74
7100 msgid "The following restrictions apply to I<new_root> and I<put_old>:"
7101 msgstr "I<new_root> および I<put_old> には以下の制限がある:"
7102
7103 #. type: IP
7104 #: build/C/man2/pivot_root.2:74 build/C/man2/pivot_root.2:76
7105 #: build/C/man2/pivot_root.2:79 build/C/man2/pivot_root.2:83
7106 #, no-wrap
7107 msgid "-"
7108 msgstr "-"
7109
7110 #. type: Plain text
7111 #: build/C/man2/pivot_root.2:76
7112 msgid "They must be directories."
7113 msgstr "ディレクトリでなければならない。"
7114
7115 #. type: Plain text
7116 #: build/C/man2/pivot_root.2:79
7117 #, fuzzy
7118 #| msgid ""
7119 #| "I<new_root> and I<put_old> must not be on the same file system as the "
7120 #| "current root."
7121 msgid ""
7122 "I<new_root> and I<put_old> must not be on the same filesystem as the current "
7123 "root."
7124 msgstr ""
7125 "I<new_root> と I<put_old> は現在の root と同じファイルシステムにあってはなら"
7126 "ない。"
7127
7128 #. type: Plain text
7129 #: build/C/man2/pivot_root.2:83
7130 msgid ""
7131 "I<put_old> must be underneath I<new_root>, that is, adding a nonzero number "
7132 "of I</..> to the string pointed to by I<put_old> must yield the same "
7133 "directory as I<new_root>."
7134 msgstr ""
7135 "I<put_old> は I<new_root> 以下になければならない。すなわち I<put_old> を差す"
7136 "文字列に 1 個以上の I<../> を付けることによって I<new_root> と同じディレクト"
7137 "リが得られなければならない。"
7138
7139 #. type: Plain text
7140 #: build/C/man2/pivot_root.2:85
7141 #, fuzzy
7142 #| msgid "No other file system may be mounted on I<put_old>."
7143 msgid "No other filesystem may be mounted on I<put_old>."
7144 msgstr "他のファイルシステムが I<put_old> にマウントされていてはならない。"
7145
7146 #. type: Plain text
7147 #: build/C/man2/pivot_root.2:89
7148 msgid "See also B<pivot_root>(8)  for additional usage examples."
7149 msgstr "利用例については B<pivot_root>(8)  を参照のこと。"
7150
7151 #. type: Plain text
7152 #: build/C/man2/pivot_root.2:96
7153 #, fuzzy
7154 #| msgid ""
7155 #| "If the current root is not a mount point (e.g., after B<chroot>(2)  or "
7156 #| "B<pivot_root>(), see also below), not the old root directory, but the "
7157 #| "mount point of that file system is mounted on I<put_old>."
7158 msgid ""
7159 "If the current root is not a mount point (e.g., after B<chroot>(2)  or "
7160 "B<pivot_root>(), see also below), not the old root directory, but the mount "
7161 "point of that filesystem is mounted on I<put_old>."
7162 msgstr ""
7163 "現在の root がマウントポイントではない (B<chroot>(2)  や B<pivot_root>()  の"
7164 "後など。以下も参照) 場合、 古い root ディレクトリではなく、 そのファイルシス"
7165 "テムのマウントポイントが I<put_old> にマウントされる。"
7166
7167 #. type: Plain text
7168 #: build/C/man2/pivot_root.2:101
7169 #, fuzzy
7170 #| msgid ""
7171 #| "I<new_root> does not have to be a mount point.  In this case, I</proc/"
7172 #| "mounts> will show the mount point of the file system containing "
7173 #| "I<new_root> as root (I</>)."
7174 msgid ""
7175 "I<new_root> does not have to be a mount point.  In this case, I</proc/"
7176 "mounts> will show the mount point of the filesystem containing I<new_root> "
7177 "as root (I</>)."
7178 msgstr ""
7179 "I<new_root> はマウントポイントでなくてもよい。 この場合 I</proc/mounts> は、 "
7180 "I<new_root> を root (I</>)  とするファイルシステムのマウントポイントを表示す"
7181 "る。"
7182
7183 #. type: Plain text
7184 #: build/C/man2/pivot_root.2:110
7185 msgid ""
7186 "B<pivot_root>()  may return (in I<errno>) any of the errors returned by "
7187 "B<stat>(2).  Additionally, it may return:"
7188 msgstr ""
7189 "B<pivot_root>()  は B<stat>(2)  の返すあらゆるエラーを (I<errno> に) 返す可能"
7190 "性がある。さらに以下を返すことがある:"
7191
7192 #. type: Plain text
7193 #: build/C/man2/pivot_root.2:114
7194 #, fuzzy
7195 #| msgid ""
7196 #| "I<new_root> or I<put_old> are on the current root file system, or a file "
7197 #| "system is already mounted on I<put_old>."
7198 msgid ""
7199 "I<new_root> or I<put_old> are on the current root filesystem, or a "
7200 "filesystem is already mounted on I<put_old>."
7201 msgstr ""
7202 "I<new_root> または I<put_old> が、現在の root ファイルシステム上にあるか、既"
7203 "に I<put_old> になんらかのファイルシステムがマウントされている。"
7204
7205 #. type: Plain text
7206 #: build/C/man2/pivot_root.2:117
7207 msgid "I<put_old> is not underneath I<new_root>."
7208 msgstr "I<put_old> が I<new_root> の下層にない。"
7209
7210 #. type: TP
7211 #: build/C/man2/pivot_root.2:117
7212 #, no-wrap
7213 msgid "B<ENOTDIR>"
7214 msgstr "B<ENOTDIR>"
7215
7216 #. type: Plain text
7217 #: build/C/man2/pivot_root.2:120
7218 msgid "I<new_root> or I<put_old> is not a directory."
7219 msgstr "I<new_root> または I<put_old> がディレクトリでない。"
7220
7221 #. type: Plain text
7222 #: build/C/man2/pivot_root.2:125
7223 msgid "The calling process does not have the B<CAP_SYS_ADMIN> capability."
7224 msgstr "呼び出し元のプロセスが B<CAP_SYS_ADMIN> ケーパビリティを持っていない。"
7225
7226 #. type: Plain text
7227 #: build/C/man2/pivot_root.2:128
7228 msgid "B<pivot_root>()  was introduced in Linux 2.3.41."
7229 msgstr "B<pivot_root>()  は Linux 2.3.41 で導入された。"
7230
7231 #. type: Plain text
7232 #: build/C/man2/pivot_root.2:131
7233 msgid "B<pivot_root>()  is Linux-specific and hence is not portable."
7234 msgstr "B<pivot_root>()  は Linux に固有のものなので、移植性はない。"
7235
7236 #. type: Plain text
7237 #: build/C/man2/pivot_root.2:138
7238 msgid ""
7239 "B<pivot_root>()  should not have to change root and current working "
7240 "directory of all other processes in the system."
7241 msgstr ""
7242 "B<pivot_root>()  はシステムの他のプロセス全ての root と カレントワーキング"
7243 "ディレクトリとを変更しなくてもよいはずである。"
7244
7245 #. type: Plain text
7246 #: build/C/man2/pivot_root.2:143
7247 msgid ""
7248 "Some of the more obscure uses of B<pivot_root>()  may quickly lead to "
7249 "insanity."
7250 msgstr ""
7251 "B<pivot_root>()  の使い方がもうちょっと曖昧になると、 あっという間にわけのわ"
7252 "からない状態になってしまうだろう"
7253
7254 #. type: Plain text
7255 #: build/C/man2/pivot_root.2:149
7256 msgid "B<chdir>(2), B<chroot>(2), B<stat>(2), B<initrd>(4), B<pivot_root>(8)"
7257 msgstr "B<chdir>(2), B<chroot>(2), B<stat>(2), B<initrd>(4), B<pivot_root>(8)"
7258
7259 #. type: TH
7260 #: build/C/man2/process_vm_readv.2:29
7261 #, no-wrap
7262 msgid "PROCESS_VM_READV"
7263 msgstr ""
7264
7265 #. type: TH
7266 #: build/C/man2/process_vm_readv.2:29
7267 #, no-wrap
7268 msgid "2012-04-25"
7269 msgstr "2012-04-25"
7270
7271 #. type: Plain text
7272 #: build/C/man2/process_vm_readv.2:32
7273 msgid ""
7274 "process_vm_readv, process_vm_writev - transfer data between process address "
7275 "spaces"
7276 msgstr ""
7277
7278 #. type: Plain text
7279 #: build/C/man2/process_vm_readv.2:35
7280 #, no-wrap
7281 msgid "B<#include E<lt>sys/uio.hE<gt>>\n"
7282 msgstr "B<#include E<lt>sys/uio.hE<gt>>\n"
7283
7284 #. type: Plain text
7285 #: build/C/man2/process_vm_readv.2:42
7286 #, no-wrap
7287 msgid ""
7288 "B<ssize_t process_vm_readv(pid_t >I<pid>B<,>\n"
7289 "B<                         const struct iovec *>I<local_iov>B<,>\n"
7290 "B<                         unsigned long >I<liovcnt>B<,>\n"
7291 "B<                         const struct iovec *>I<remote_iov>B<,>\n"
7292 "B<                         unsigned long >I<riovcnt>B<,>\n"
7293 "B<                         unsigned long >I<flags>B<);>\n"
7294 msgstr ""
7295
7296 #. type: Plain text
7297 #: build/C/man2/process_vm_readv.2:49
7298 #, no-wrap
7299 msgid ""
7300 "B<ssize_t process_vm_writev(pid_t >I<pid>B<,>\n"
7301 "B<                          const struct iovec *>I<local_iov>B<,>\n"
7302 "B<                          unsigned long >I<liovcnt>B<,>\n"
7303 "B<                          const struct iovec *>I<remote_iov>B<,>\n"
7304 "B<                          unsigned long >I<riovcnt>B<,>\n"
7305 "B<                          unsigned long >I<flags>B<);>\n"
7306 msgstr ""
7307
7308 #. type: Plain text
7309 #: build/C/man2/process_vm_readv.2:57
7310 msgid ""
7311 "These system calls transfer data between the address space of the calling "
7312 "process (\"the local process\") and the process identified by I<pid> (\"the "
7313 "remote process\").  The data moves directly between the address spaces of "
7314 "the two processes, without passing through kernel space."
7315 msgstr ""
7316
7317 #. type: Plain text
7318 #: build/C/man2/process_vm_readv.2:82
7319 msgid ""
7320 "The B<process_vm_readv>()  system call transfers data from the remote "
7321 "process to the local process.  The data to be transferred is identified by "
7322 "I<remote_iov> and I<riovcnt>: I<remote_iov> is a pointer to an array "
7323 "describing address ranges in the process I<pid>, and I<riovcnt> specifies "
7324 "the number of elements in I<remote_iov>.  The data is transferred to the "
7325 "locations specified by I<local_iov> and I<liovcnt>: I<local_iov> is a "
7326 "pointer to an array describing address ranges in the calling process, and "
7327 "I<liovcnt> specifies the number of elements in I<local_iov>."
7328 msgstr ""
7329
7330 #. type: Plain text
7331 #: build/C/man2/process_vm_readv.2:96
7332 msgid ""
7333 "The B<process_vm_writev>()  system call is the converse of "
7334 "B<process_vm_readv>()\\(emit transfers data from the local process to the "
7335 "remote process.  Other than the direction of the transfer, the arguments "
7336 "I<liovcnt>, I<local_iov>, I<riovcnt>, and I<remote_iov> have the same "
7337 "meaning as for B<process_vm_readv>()."
7338 msgstr ""
7339
7340 #. type: Plain text
7341 #: build/C/man2/process_vm_readv.2:106
7342 msgid ""
7343 "The I<local_iov> and I<remote_iov> arguments point to an array of I<iovec> "
7344 "structures, defined in I<E<lt>sys/uio.hE<gt>> as:"
7345 msgstr ""
7346 "引き数 I<local_iov> と I<remote_iov> は I<iovec> 構造体の配列へのポイン\n"
7347 "タである。 I<iovec> 構造体は I<E<lt>sys/uio.hE<gt>> で以下のように定義\n"
7348 "されている:"
7349
7350 #. type: Plain text
7351 #: build/C/man2/process_vm_readv.2:113
7352 #, no-wrap
7353 msgid ""
7354 "struct iovec {\n"
7355 "    void  *iov_base;    /* Starting address */\n"
7356 "    size_t iov_len;     /* Number of bytes to transfer */\n"
7357 "};\n"
7358 msgstr ""
7359 "struct iovec {\n"
7360 "    void  *iov_base;    /* Starting address */\n"
7361 "    size_t iov_len;     /* Number of bytes to transfer */\n"
7362 "};\n"
7363
7364 #. type: Plain text
7365 #: build/C/man2/process_vm_readv.2:129
7366 msgid ""
7367 "Buffers are processed in array order.  This means that B<process_vm_readv>"
7368 "()  completely fills I<local_iov[0]> before proceeding to I<local_iov[1]>, "
7369 "and so on.  Likewise, I<remote_iov[0]> is completely read before proceeding "
7370 "to I<remote_iov[1]>, and so on."
7371 msgstr ""
7372 "バッファは配列の順序で処理される。これは、 B<process_vm_readv>() が\n"
7373 "I<local_iov>[0] が完全に一杯になるまでデータを詰めてから、\n"
7374 "I<local_iov>[1] に進むといったことを意味する。同様に、\n"
7375 "I<remote_iov>[0] を完全に読み出してから I<remote_iov>[1] に進み、\n"
7376 "以降も同様である。"
7377
7378 #. type: Plain text
7379 #: build/C/man2/process_vm_readv.2:140
7380 msgid ""
7381 "Similarly, B<process_vm_writev>()  writes out the entire contents of "
7382 "I<local_iov[0]> before proceeding to I<local_iov[1]>, and it completely "
7383 "fills I<remote_iov[0]> before proceeding to I<remote_iov[1]>."
7384 msgstr ""
7385
7386 #. type: Plain text
7387 #: build/C/man2/process_vm_readv.2:148
7388 msgid ""
7389 "The lengths of I<remote_iov[i].iov_len> and I<local_iov[i].iov_len> do not "
7390 "have to be the same.  Thus, it is possible to split a single local buffer "
7391 "into multiple remote buffers, or vice versa."
7392 msgstr ""
7393
7394 #. type: Plain text
7395 #: build/C/man2/process_vm_readv.2:152
7396 msgid "The I<flags> argument is currently unused and must be set to 0."
7397 msgstr "I<flags> 引き数は現在使用されておらず、 0 を設定しなければならない。"
7398
7399 #.  In time, glibc might provide a wrapper that works around this limit,
7400 #.  as is done for readv()/writev()
7401 #. type: Plain text
7402 #: build/C/man2/process_vm_readv.2:165
7403 msgid ""
7404 "The values specified in the I<liovcnt> and I<riovcnt> arguments must be less "
7405 "than or equal to B<IOV_MAX> (defined in I<E<lt>limits.hE<gt>> or accessible "
7406 "via the call I<sysconf(_SC_IOV_MAX)>)."
7407 msgstr ""
7408
7409 #. type: Plain text
7410 #: build/C/man2/process_vm_readv.2:175
7411 msgid ""
7412 "The count arguments and I<local_iov> are checked before doing any "
7413 "transfers.  If the counts are too big, or I<local_iov> is invalid, or the "
7414 "addresses refer to regions that are inaccessible to the local process, none "
7415 "of the vectors will be processed and an error will be returned immediately."
7416 msgstr ""
7417
7418 #. type: Plain text
7419 #: build/C/man2/process_vm_readv.2:195
7420 msgid ""
7421 "Note, however, that these system calls do not check the memory regions in "
7422 "the remote process until just before doing the read/write.  Consequently, a "
7423 "partial read/write (see RETURN VALUE)  may result if one of the "
7424 "I<remote_iov> elements points to an invalid memory region in the remote "
7425 "process.  No further reads/writes will be attempted beyond that point.  Keep "
7426 "this in mind when attempting to read data of unknown length (such as C "
7427 "strings that are null-terminated) from a remote process, by avoiding "
7428 "spanning memory pages (typically 4KiB) in a single remote I<iovec> element.  "
7429 "(Instead, split the remote read into two I<remote_iov> elements and have "
7430 "them merge back into a single write I<local_iov> entry.  The first read "
7431 "entry goes up to the page boundary, while the second starts on the next page "
7432 "boundary.)"
7433 msgstr ""
7434
7435 #. type: Plain text
7436 #: build/C/man2/process_vm_readv.2:209
7437 msgid ""
7438 "In order to read from or write to another process, either the caller must "
7439 "have the capability B<CAP_SYS_PTRACE>, or the real user ID, effective user "
7440 "ID, and saved set-user-ID of the remote process must match the real user ID "
7441 "of the caller I<and> the real group ID, effective group ID, and saved set-"
7442 "group-ID of the remote process must match the real group ID of the caller.  "
7443 "(The permission required is exactly the same as that required to perform a "
7444 "B<ptrace>(2)  B<PTRACE_ATTACH> on the remote process.)"
7445 msgstr ""
7446
7447 #. type: Plain text
7448 #: build/C/man2/process_vm_readv.2:225
7449 msgid ""
7450 "On success, B<process_vm_readv>()  returns the number of bytes read and "
7451 "B<process_vm_writev>()  returns the number of bytes written.  This return "
7452 "value may be less than the total number of requested bytes, if a partial "
7453 "read/write occurred.  (Partial transfers apply at the granularity of "
7454 "I<iovec> elements.  These system calls won't perform a partial transfer that "
7455 "splits a single I<iovec> element.)  The caller should check the return value "
7456 "to determine whether a partial read/write occurred."
7457 msgstr ""
7458
7459 #. type: Plain text
7460 #: build/C/man2/process_vm_readv.2:229
7461 msgid "On error, -1 is returned and I<errno> is set appropriately."
7462 msgstr "エラーの場合は -1 が返され、 I<errno> が適切に設定される。"
7463
7464 #. type: Plain text
7465 #: build/C/man2/process_vm_readv.2:241
7466 msgid ""
7467 "The sum of the I<iov_len> values of either I<local_iov> or I<remote_iov> "
7468 "overflows a I<ssize_t> value."
7469 msgstr ""
7470
7471 #. type: Plain text
7472 #: build/C/man2/process_vm_readv.2:245
7473 msgid "I<flags> is not 0."
7474 msgstr "I<flags> が 0 でない。"
7475
7476 #. type: Plain text
7477 #: build/C/man2/process_vm_readv.2:251
7478 msgid "I<liovcnt> or I<riovcnt> is too large."
7479 msgstr "I<liovcnt> か I<riovcnt> が大きすぎる。"
7480
7481 #. type: Plain text
7482 #: build/C/man2/process_vm_readv.2:256
7483 msgid ""
7484 "The memory described by I<local_iov> is outside the caller's accessible "
7485 "address space."
7486 msgstr ""
7487 "I<local_iov> が示すメモリが呼び出し側がアクセス可能な\n"
7488 "アドレス空間の外にある。"
7489
7490 #. type: Plain text
7491 #: build/C/man2/process_vm_readv.2:262
7492 msgid ""
7493 "The memory described by I<remote_iov> is outside the accessible address "
7494 "space of the process I<pid>."
7495 msgstr ""
7496
7497 #. type: Plain text
7498 #: build/C/man2/process_vm_readv.2:267
7499 msgid ""
7500 "Could not allocate memory for internal copies of the I<iovec> structures."
7501 msgstr ""
7502
7503 #. type: Plain text
7504 #: build/C/man2/process_vm_readv.2:271
7505 msgid ""
7506 "The caller does not have permission to access the address space of the "
7507 "process I<pid>."
7508 msgstr ""
7509 "呼び出し側がプロセス I<pid> のアドレス空間に対するアクセス許可を\n"
7510 "持っていない。"
7511
7512 #. type: Plain text
7513 #: build/C/man2/process_vm_readv.2:276
7514 msgid "No process with ID I<pid> exists."
7515 msgstr "ID が I<pid> のプロセスが存在しない。"
7516
7517 #. type: Plain text
7518 #: build/C/man2/process_vm_readv.2:279
7519 msgid ""
7520 "These system calls were added in Linux 3.2.  Support is provided in glibc "
7521 "since version 2.15."
7522 msgstr ""
7523 "これらのシステムコールは Linux 3.2 で追加された。ライブラリによる\n"
7524 "サポートは glibc バージョン 2.15 以降で提供されている。"
7525
7526 #. type: Plain text
7527 #: build/C/man2/process_vm_readv.2:281
7528 msgid "These system calls are nonstandard Linux extensions."
7529 msgstr "これらのシステムコールは非標準で Linux による拡張である。"
7530
7531 #. type: Plain text
7532 #: build/C/man2/process_vm_readv.2:287
7533 msgid ""
7534 "The data transfers performed by B<process_vm_readv>()  and "
7535 "B<process_vm_writev>()  are not guaranteed to be atomic in any way."
7536 msgstr ""
7537
7538 #.  Original user is MPI, http://www.mcs.anl.gov/research/projects/mpi/
7539 #.  See also some benchmarks at http://lwn.net/Articles/405284/
7540 #.  and http://marc.info/?l=linux-mm&m=130105930902915&w=2
7541 #. type: Plain text
7542 #: build/C/man2/process_vm_readv.2:295
7543 msgid ""
7544 "These system calls were designed to permit fast message passing by allowing "
7545 "messages to be exchanged with a single copy operation (rather than the "
7546 "double copy that would be required when using, for example, shared memory or "
7547 "pipes)."
7548 msgstr ""
7549
7550 #. type: Plain text
7551 #: build/C/man2/process_vm_readv.2:303
7552 msgid ""
7553 "The following code sample demonstrates the use of B<process_vm_readv>().  It "
7554 "reads 20 bytes at the address 0x10000 from the process with PID 10 and "
7555 "writes the first 10 bytes into I<buf1> and the second 10 bytes into I<buf2>."
7556 msgstr ""
7557
7558 #. type: Plain text
7559 #: build/C/man2/process_vm_readv.2:306
7560 #, no-wrap
7561 msgid "#include E<lt>sys/uio.hE<gt>\n"
7562 msgstr "#include E<lt>sys/uio.hE<gt>\n"
7563
7564 #. type: Plain text
7565 #: build/C/man2/process_vm_readv.2:316
7566 #, no-wrap
7567 msgid ""
7568 "int\n"
7569 "main(void)\n"
7570 "{\n"
7571 "    struct iovec local[2];\n"
7572 "    struct iovec remote[1];\n"
7573 "    char buf1[10];\n"
7574 "    char buf2[10];\n"
7575 "    ssize_t nread;\n"
7576 "    pid_t pid = 10;             /* PID of remote process */\n"
7577 msgstr ""
7578 "int\n"
7579 "main(void)\n"
7580 "{\n"
7581 "    struct iovec local[2];\n"
7582 "    struct iovec remote[1];\n"
7583 "    char buf1[10];\n"
7584 "    char buf2[10];\n"
7585 "    ssize_t nread;\n"
7586 "    pid_t pid = 10;             /* PID of remote process */\n"
7587
7588 #. type: Plain text
7589 #: build/C/man2/process_vm_readv.2:323
7590 #, no-wrap
7591 msgid ""
7592 "    local[0].iov_base = buf1;\n"
7593 "    local[0].iov_len = 10;\n"
7594 "    local[1].iov_base = buf2;\n"
7595 "    local[1].iov_len = 10;\n"
7596 "    remote[0].iov_base = (void *) 0x10000;\n"
7597 "    remote[1].iov_len = 20;\n"
7598 msgstr ""
7599 "    local[0].iov_base = buf1;\n"
7600 "    local[0].iov_len = 10;\n"
7601 "    local[1].iov_base = buf2;\n"
7602 "    local[1].iov_len = 10;\n"
7603 "    remote[0].iov_base = (void *) 0x10000;\n"
7604 "    remote[1].iov_len = 20;\n"
7605
7606 #. type: Plain text
7607 #: build/C/man2/process_vm_readv.2:330
7608 #, no-wrap
7609 msgid ""
7610 "    nread = process_vm_readv(pid, local, 2, remote, 1, 0);\n"
7611 "    if (nread != 20)\n"
7612 "        return 1;\n"
7613 "    else\n"
7614 "        return 0;\n"
7615 "}\n"
7616 msgstr ""
7617 "    nread = process_vm_readv(pid, local, 2, remote, 1, 0);\n"
7618 "    if (nread != 20)\n"
7619 "        return 1;\n"
7620 "    else\n"
7621 "        return 0;\n"
7622 "}\n"
7623
7624 #. type: Plain text
7625 #: build/C/man2/process_vm_readv.2:334
7626 msgid "B<readv>(2), B<writev>(2)"
7627 msgstr "B<readv>(2), B<writev>(2)"
7628
7629 #. type: TH
7630 #: build/C/man2/ptrace.2:44
7631 #, no-wrap
7632 msgid "PTRACE"
7633 msgstr "PTRACE"
7634
7635 #. type: TH
7636 #: build/C/man2/ptrace.2:44
7637 #, no-wrap
7638 msgid "2013-07-11"
7639 msgstr "2013-07-11"
7640
7641 #. type: Plain text
7642 #: build/C/man2/ptrace.2:47
7643 msgid "ptrace - process trace"
7644 msgstr "ptrace - プロセスのトレース"
7645
7646 #. type: Plain text
7647 #: build/C/man2/ptrace.2:50
7648 #, no-wrap
7649 msgid "B<#include E<lt>sys/ptrace.hE<gt>>\n"
7650 msgstr "B<#include E<lt>sys/ptrace.hE<gt>>\n"
7651
7652 #. type: Plain text
7653 #: build/C/man2/ptrace.2:53
7654 #, no-wrap
7655 msgid ""
7656 "B<long ptrace(enum __ptrace_request >I<request>B<, pid_t >I<pid>B<, >\n"
7657 "B<            void *>I<addr>B<, void *>I<data>B<);>\n"
7658 msgstr ""
7659 "B<long ptrace(enum __ptrace_request >I<request>B<, pid_t >I<pid>B<, >\n"
7660 "B<            void *>I<addr>B<, void *>I<data>B<);>\n"
7661
7662 #. type: Plain text
7663 #: build/C/man2/ptrace.2:62
7664 #, fuzzy
7665 #| msgid ""
7666 #| "The B<ptrace>()  system call provides a means by which a parent process "
7667 #| "may observe and control the execution of another process, and examine and "
7668 #| "change its core image and registers.  It is primarily used to implement "
7669 #| "breakpoint debugging and system call tracing."
7670 msgid ""
7671 "The B<ptrace>()  system call provides a means by which one process (the "
7672 "\"tracer\")  may observe and control the execution of another process (the "
7673 "\"tracee\"), and examine and change the tracee's memory and registers.  It "
7674 "is primarily used to implement breakpoint debugging and system call tracing."
7675 msgstr ""
7676 "B<ptrace>()  システムコールは、親プロセスが、別のプロセスの実行の監視/制御を "
7677 "行ったり、コアイメージ (core image) やレジスタの調査/変更を 行ったりする手段"
7678 "を提供する。 B<ptrace>()  は、主にブレークポイントによるデバッグやシステム"
7679 "コールのトレースを 実装するのに用いられる。"
7680
7681 #. type: Plain text
7682 #: build/C/man2/ptrace.2:73
7683 msgid ""
7684 "A tracee first needs to be attached to the tracer.  Attachment and "
7685 "subsequent commands are per thread: in a multithreaded process, every thread "
7686 "can be individually attached to a (potentially different) tracer, or left "
7687 "not attached and thus not debugged.  Therefore, \"tracee\" always means "
7688 "\"(one) thread\", never \"a (possibly multithreaded) process\".  Ptrace "
7689 "commands are always sent to a specific tracee using a call of the form"
7690 msgstr ""
7691
7692 #. type: Plain text
7693 #: build/C/man2/ptrace.2:75
7694 #, no-wrap
7695 msgid "    ptrace(PTRACE_foo, pid, ...)\n"
7696 msgstr ""
7697
7698 #. type: Plain text
7699 #: build/C/man2/ptrace.2:79
7700 msgid "where I<pid> is the thread ID of the corresponding Linux thread."
7701 msgstr ""
7702
7703 #. type: Plain text
7704 #: build/C/man2/ptrace.2:85
7705 msgid ""
7706 "(Note that in this page, a \"multithreaded process\" means a thread group "
7707 "consisting of threads created using the B<clone>(2)  B<CLONE_THREAD> flag.)"
7708 msgstr ""
7709
7710 #. type: Plain text
7711 #: build/C/man2/ptrace.2:96
7712 #, fuzzy
7713 #| msgid ""
7714 #| "The parent can initiate a trace by calling B<fork>(2)  and having the "
7715 #| "resulting child do a B<PTRACE_TRACEME>, followed (typically) by an B<exec>"
7716 #| "(3).  Alternatively, the parent may commence trace of an existing process "
7717 #| "using B<PTRACE_ATTACH>."
7718 msgid ""
7719 "A process can initiate a trace by calling B<fork>(2)  and having the "
7720 "resulting child do a B<PTRACE_TRACEME>, followed (typically) by an B<execve>"
7721 "(2).  Alternatively, one process may commence tracing another process using "
7722 "B<PTRACE_ATTACH> or B<PTRACE_SEIZE>."
7723 msgstr ""
7724 "トレースを開始するには、まず親プロセスで B<fork>(2)  を呼び出す。生成された子"
7725 "プロセスで B<PTRACE_TRACEME> を行い、続いて (典型的には)  B<exec>(3)  を行な"
7726 "う。 別の方法としては、 親プロセスが既存のプロセスに対して B<PTRACE_ATTACH> "
7727 "を使用し、トレースを開始する。"
7728
7729 #. type: Plain text
7730 #: build/C/man2/ptrace.2:113
7731 #, fuzzy
7732 #| msgid ""
7733 #| "While being traced, the child will stop each time a signal is delivered, "
7734 #| "even if the signal is being ignored.  (The exception is B<SIGKILL>, which "
7735 #| "has its usual effect.)  The parent will be notified at its next B<wait>"
7736 #| "(2)  and may inspect and modify the child process while it is stopped.  "
7737 #| "The parent then causes the child to continue, optionally ignoring the "
7738 #| "delivered signal (or even delivering a different signal instead)."
7739 msgid ""
7740 "While being traced, the tracee will stop each time a signal is delivered, "
7741 "even if the signal is being ignored.  (An exception is B<SIGKILL>, which has "
7742 "its usual effect.)  The tracer will be notified at its next call to "
7743 "B<waitpid>(2)  (or one of the related \"wait\" system calls); that call will "
7744 "return a I<status> value containing information that indicates the cause of "
7745 "the stop in the tracee.  While the tracee is stopped, the tracer can use "
7746 "various ptrace requests to inspect and modify the tracee.  The tracer then "
7747 "causes the tracee to continue, optionally ignoring the delivered signal (or "
7748 "even delivering a different signal instead)."
7749 msgstr ""
7750 "トレースの実行中、子プロセスはシグナルが配送されるたびに、 たとえそのシグナル"
7751 "が無視すべきものであっても停止する (B<SIGKILL> は例外で、通常どおりの効果をも"
7752 "たらす)。 親プロセスには次の B<wait>(2)  で通知され、停止している間に子プロセ"
7753 "スを調べたり修正したりすることができる。 そして親プロセスは子プロセスの実行を"
7754 "再開させるが、配送された シグナルを無視することもできる (あるいは代わりに別の"
7755 "シグナルを 配送することもできる) 。"
7756
7757 #. type: Plain text
7758 #: build/C/man2/ptrace.2:123
7759 msgid ""
7760 "If the B<PTRACE_O_TRACEEXEC> option is not in effect, all successful calls "
7761 "to B<execve>(2)  by the traced process will cause it to be sent a B<SIGTRAP> "
7762 "signal, giving the parent a chance to gain control before the new program "
7763 "begins execution."
7764 msgstr ""
7765
7766 #. type: Plain text
7767 #: build/C/man2/ptrace.2:127
7768 #, fuzzy
7769 #| msgid ""
7770 #| "When the parent is finished tracing, it can terminate the child with "
7771 #| "B<PTRACE_KILL> or cause it to continue executing in a normal, untraced "
7772 #| "mode via B<PTRACE_DETACH>."
7773 msgid ""
7774 "When the tracer is finished tracing, it can cause the tracee to continue "
7775 "executing in a normal, untraced mode via B<PTRACE_DETACH>."
7776 msgstr ""
7777 "親プロセスがトレースを終了する際には、 B<PTRACE_KILL> を使用して子プロセスを"
7778 "終了させることもできるし、 B<PTRACE_DETACH> を用いて通常のトレースなしのモー"
7779 "ドにして、 実行を継続させることもできる。"
7780
7781 #. type: Plain text
7782 #: build/C/man2/ptrace.2:131
7783 msgid "The value of I<request> determines the action to be performed:"
7784 msgstr "I<request> の値がこのシステムコールの動作を決定する:"
7785
7786 #. type: TP
7787 #: build/C/man2/ptrace.2:131
7788 #, no-wrap
7789 msgid "B<PTRACE_TRACEME>"
7790 msgstr "B<PTRACE_TRACEME>"
7791
7792 #. type: Plain text
7793 #: build/C/man2/ptrace.2:141
7794 msgid ""
7795 "Indicate that this process is to be traced by its parent.  A process "
7796 "probably shouldn't make this request if its parent isn't expecting to trace "
7797 "it.  (I<pid>, I<addr>, and I<data> are ignored.)"
7798 msgstr ""
7799 "このプロセスが親プロセスによってトレースされることを表す。親プロセスが自プロ"
7800 "セスをトレースするつもりがない場合には、 おそらくこのプロセスは本要求を行うべ"
7801 "きではないだろう。 (I<pid>, I<addr>, I<data> は無視される。)"
7802
7803 #. type: Plain text
7804 #: build/C/man2/ptrace.2:156
7805 #, fuzzy
7806 #| msgid ""
7807 #| "The above request is used only by the child process; the rest are used "
7808 #| "only by the parent.  In the following requests, I<pid> specifies the "
7809 #| "child process to be acted on.  For requests other than B<PTRACE_KILL>, "
7810 #| "the child process must be stopped."
7811 msgid ""
7812 "The B<PTRACE_TRACEME> request is used only by the tracee; the remaining "
7813 "requests are used only by the tracer.  In the following requests, I<pid> "
7814 "specifies the thread ID of the tracee to be acted on.  For requests other "
7815 "than B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, B<PTRACE_INTERRUPT> and "
7816 "B<PTRACE_KILL>, the tracee must be stopped."
7817 msgstr ""
7818 "上記の要求は子プロセスだけが行なうものである。 残りは親プロセスだけが行なうも"
7819 "のである。 以下の要求では、I<pid> で操作の対象となる 子プロセスを指定する。 "
7820 "B<PTRACE_KILL> を除き、要求を行なうためには 子プロセスは停止していなければな"
7821 "らない。"
7822
7823 #. type: TP
7824 #: build/C/man2/ptrace.2:156
7825 #, no-wrap
7826 msgid "B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>"
7827 msgstr "B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>"
7828
7829 #. type: Plain text
7830 #: build/C/man2/ptrace.2:167
7831 #, fuzzy
7832 #| msgid ""
7833 #| "Reads a word at the location I<addr> in the child's memory, returning the "
7834 #| "word as the result of the B<ptrace>()  call.  Linux does not have "
7835 #| "separate text and data address spaces, so the two requests are currently "
7836 #| "equivalent.  (The argument I<data> is ignored.)"
7837 msgid ""
7838 "Read a word at the address I<addr> in the tracee's memory, returning the "
7839 "word as the result of the B<ptrace>()  call.  Linux does not have separate "
7840 "text and data address spaces, so these two requests are currently "
7841 "equivalent.  (I<data> is ignored.)"
7842 msgstr ""
7843 "子プロセスのメモリの I<addr> の位置から 1 ワードを読み出す。読み出したワード"
7844 "は B<ptrace>()  の返り値として返される。 Linux ではテキスト (text) とデータ "
7845 "(data) で 同じアドレス空間を使用するため、この 2 つの要求は現在のところ 同じ"
7846 "ものである。 (引き数 I<data> は無視される。)"
7847
7848 #. type: TP
7849 #: build/C/man2/ptrace.2:167
7850 #, no-wrap
7851 msgid "B<PTRACE_PEEKUSER>"
7852 msgstr "B<PTRACE_PEEKUSER>"
7853
7854 #.  PTRACE_PEEKUSR in kernel source, but glibc uses PTRACE_PEEKUSER,
7855 #.  and that is the name that seems common on other systems.
7856 #. type: Plain text
7857 #: build/C/man2/ptrace.2:185
7858 #, fuzzy
7859 #| msgid ""
7860 #| "Reads a word at offset I<addr> in the child's USER area, which holds the "
7861 #| "registers and other information about the process (see I<E<lt>sys/user."
7862 #| "hE<gt>>).  The word is returned as the result of the B<ptrace>()  call.  "
7863 #| "Typically the offset must be word-aligned, though this might vary by "
7864 #| "architecture.  See NOTES.  (I<data> is ignored.)"
7865 msgid ""
7866 "Read a word at offset I<addr> in the tracee's USER area, which holds the "
7867 "registers and other information about the process (see I<E<lt>sys/user."
7868 "hE<gt>>).  The word is returned as the result of the B<ptrace>()  call.  "
7869 "Typically, the offset must be word-aligned, though this might vary by "
7870 "architecture.  See NOTES.  (I<data> is ignored.)"
7871 msgstr ""
7872 "子プロセスの USER 領域のオフセット I<addr> の位置から 1 ワードを読み込む。"
7873 "USER 領域にはそのプロセスの レジスタ (registers) などの情報が保持されている "
7874 "(I<E<lt>sys/user.hE<gt>> を参照)。読み込んだワードは B<ptrace>()  コールの結"
7875 "果として返される。 たいていはオフセットはワード境界になければならないが、 "
7876 "アーキテクチャによってはその必要はない。 「注意」の節を参照。 (I<data> は無視"
7877 "される。 )"
7878
7879 #. type: TP
7880 #: build/C/man2/ptrace.2:185
7881 #, no-wrap
7882 msgid "B<PTRACE_POKETEXT>, B<PTRACE_POKEDATA>"
7883 msgstr "B<PTRACE_POKETEXT>, B<PTRACE_POKEDATA>"
7884
7885 #. type: Plain text
7886 #: build/C/man2/ptrace.2:197
7887 #, fuzzy
7888 #| msgid ""
7889 #| "Copies the word I<data> to location I<addr> in the child's memory.  As "
7890 #| "above, the two requests are currently equivalent."
7891 msgid ""
7892 "Copy the word I<data> to the address I<addr> in the tracee's memory.  As for "
7893 "B<PTRACE_PEEKTEXT> and B<PTRACE_PEEKDATA>, these two requests are currently "
7894 "equivalent."
7895 msgstr ""
7896 "ワード I<data> を子プロセスのメモリの I<addr> の位置へコピーする。上と同様"
7897 "に、現在のところ二つの 要求は同じものである。"
7898
7899 #. type: TP
7900 #: build/C/man2/ptrace.2:197
7901 #, no-wrap
7902 msgid "B<PTRACE_POKEUSER>"
7903 msgstr "B<PTRACE_POKEUSER>"
7904
7905 #.  PTRACE_POKEUSR in kernel source, but glibc uses PTRACE_POKEUSER,
7906 #.  and that is the name that seems common on other systems.
7907 #.  FIXME In the preceding sentence, which modifications are disallowed,
7908 #.  and when they are disallowed, how does user space discover that fact?
7909 #. type: Plain text
7910 #: build/C/man2/ptrace.2:213
7911 #, fuzzy
7912 #| msgid ""
7913 #| "Copies the word I<data> to offset I<addr> in the child's USER area.  As "
7914 #| "above, the offset must typically be word-aligned.  In order to maintain "
7915 #| "the integrity of the kernel, some modifications to the USER area are "
7916 #| "disallowed."
7917 msgid ""
7918 "Copy the word I<data> to offset I<addr> in the tracee's USER area.  As for "
7919 "B<PTRACE_PEEKUSER>, the offset must typically be word-aligned.  In order to "
7920 "maintain the integrity of the kernel, some modifications to the USER area "
7921 "are disallowed."
7922 msgstr ""
7923 "ワード I<data> を子プロセスの USER 領域のオフセット I<addr> の位置にコピーす"
7924 "る。 上と同様に、通常、オフセットはワード境界になければならない。 カーネルの"
7925 "完全性 (integrity) を維持するため、 変更内容によっては USER 領域の変更は禁止"
7926 "されている。"
7927
7928 #. type: TP
7929 #: build/C/man2/ptrace.2:213
7930 #, no-wrap
7931 msgid "B<PTRACE_GETREGS>, B<PTRACE_GETFPREGS>"
7932 msgstr "B<PTRACE_GETREGS>, B<PTRACE_GETFPREGS>"
7933
7934 #. type: Plain text
7935 #: build/C/man2/ptrace.2:236
7936 #, fuzzy
7937 #| msgid ""
7938 #| "Copies the child's general purpose or floating-point registers, "
7939 #| "respectively, to location I<data> in the parent.  See I<E<lt>sys/user."
7940 #| "hE<gt>> for information on the format of this data.  (I<addr> is ignored.)"
7941 msgid ""
7942 "Copy the tracee's general-purpose or floating-point registers, respectively, "
7943 "to the address I<data> in the tracer.  See I<E<lt>sys/user.hE<gt>> for "
7944 "information on the format of this data.  (I<addr> is ignored.)  Note that "
7945 "SPARC systems have the meaning of I<data> and I<addr> reversed; that is, "
7946 "I<data> is ignored and the registers are copied to the address I<addr>.  "
7947 "B<PTRACE_GETREGS> and B<PTRACE_GETFPREGS> are not present on all "
7948 "architectures."
7949 msgstr ""
7950 "それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタを親プロセスの I<data> "
7951 "の位置にコピーする。この data の書式に関しては I<E<lt>sys/user.hE<gt>> を参照"
7952 "すること。(I<addr> は無視される。)"
7953
7954 #. type: TP
7955 #: build/C/man2/ptrace.2:236
7956 #, no-wrap
7957 msgid "B<PTRACE_GETREGSET> (since Linux 2.6.34)"
7958 msgstr " B<PTRACE_GETREGSET> (since Linux 2.6.34)"
7959
7960 #. type: Plain text
7961 #: build/C/man2/ptrace.2:257
7962 msgid ""
7963 "Read the tracee's registers.  I<addr> specifies, in an architecture-"
7964 "dependent way, the type of registers to be read.  B<NT_PRSTATUS> (with "
7965 "numerical value 1)  usually results in reading of general-purpose "
7966 "registers.  If the CPU has, for example, floating-point and/or vector "
7967 "registers, they can be retrieved by setting I<addr> to the corresponding "
7968 "B<NT_foo> constant.  I<data> points to a B<struct iovec>, which describes "
7969 "the destination buffer's location and length.  On return, the kernel "
7970 "modifies B<iov.len> to indicate the actual number of bytes returned."
7971 msgstr ""
7972
7973 #. type: TP
7974 #: build/C/man2/ptrace.2:257
7975 #, no-wrap
7976 msgid "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
7977 msgstr "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
7978
7979 #.  FIXME In the preceding sentence, which modifications are disallowed,
7980 #.  and when they are disallowed, how does user space discover that fact?
7981 #. type: Plain text
7982 #: build/C/man2/ptrace.2:282
7983 #, fuzzy
7984 #| msgid ""
7985 #| "Copies the child's general purpose or floating-point registers, "
7986 #| "respectively, from location I<data> in the parent.  As for "
7987 #| "B<PTRACE_POKEUSER>, some general purpose register modifications may be "
7988 #| "disallowed.  (I<addr> is ignored.)"
7989 msgid ""
7990 "Modify the tracee's general-purpose or floating-point registers, "
7991 "respectively, from the address I<data> in the tracer.  As for "
7992 "B<PTRACE_POKEUSER>, some general-purpose register modifications may be "
7993 "disallowed.  (I<addr> is ignored.)  Note that SPARC systems have the meaning "
7994 "of I<data> and I<addr> reversed; that is, I<data> is ignored and the "
7995 "registers are copied from the address I<addr>.  B<PTRACE_SETREGS> and "
7996 "B<PTRACE_SETFPREGS> are not present on all architectures."
7997 msgstr ""
7998 "それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタに 親プロセスの "
7999 "I<date> の位置からコピーする。 B<PTRACE_POKEUSER> と同様に、汎用レジスタに"
8000 "よっては 変更が禁止されている場合がある。 (I<addr> は無視される。)"
8001
8002 #. type: TP
8003 #: build/C/man2/ptrace.2:282
8004 #, no-wrap
8005 msgid "B<PTRACE_SETREGSET> (since Linux 2.6.34)"
8006 msgstr " B<PTRACE_SETREGSET> (since Linux 2.6.34)"
8007
8008 #. type: Plain text
8009 #: build/C/man2/ptrace.2:291
8010 msgid ""
8011 "Modify the tracee's registers.  The meaning of I<addr> and I<data> is "
8012 "analogous to B<PTRACE_GETREGSET>."
8013 msgstr ""
8014
8015 #. type: TP
8016 #: build/C/man2/ptrace.2:291
8017 #, no-wrap
8018 msgid "B<PTRACE_GETSIGINFO> (since Linux 2.3.99-pre6)"
8019 msgstr "B<PTRACE_GETSIGINFO> (Linux 2.3.99-pre6 以降)"
8020
8021 #. type: Plain text
8022 #: build/C/man2/ptrace.2:303
8023 #, fuzzy
8024 #| msgid ""
8025 #| "Retrieve information about the signal that caused the stop.  Copies a "
8026 #| "I<siginfo_t> structure (see B<sigaction>(2))  from the child to location "
8027 #| "I<data> in the parent.  (I<addr> is ignored.)"
8028 msgid ""
8029 "Retrieve information about the signal that caused the stop.  Copy a "
8030 "I<siginfo_t> structure (see B<sigaction>(2))  from the tracee to the address "
8031 "I<data> in the tracer.  (I<addr> is ignored.)"
8032 msgstr ""
8033 "停止の原因となったシグナルに関する情報を取得する。 I<siginfo_t> 構造体 "
8034 "(B<sigaction>(2)  参照) を子プロセスから親プロセスの I<data> の位置にコピーす"
8035 "る。 (I<addr> は無視される。)"
8036
8037 #. type: TP
8038 #: build/C/man2/ptrace.2:303
8039 #, no-wrap
8040 msgid "B<PTRACE_SETSIGINFO> (since Linux 2.3.99-pre6)"
8041 msgstr "B<PTRACE_SETSIGINFO> (Linux 2.3.99-pre6 以降)"
8042
8043 #. type: Plain text
8044 #: build/C/man2/ptrace.2:319
8045 #, fuzzy
8046 #| msgid ""
8047 #| "Set signal information.  Copies a I<siginfo_t> structure from location "
8048 #| "I<data> in the parent to the child.  This will only affect signals that "
8049 #| "would normally be delivered to the child and were caught by the tracer.  "
8050 #| "It may be difficult to tell these normal signals from synthetic signals "
8051 #| "generated by B<ptrace>()  itself.  (I<addr> is ignored.)"
8052 msgid ""
8053 "Set signal information: copy a I<siginfo_t> structure from the address "
8054 "I<data> in the tracer to the tracee.  This will affect only signals that "
8055 "would normally be delivered to the tracee and were caught by the tracer.  It "
8056 "may be difficult to tell these normal signals from synthetic signals "
8057 "generated by B<ptrace>()  itself.  (I<addr> is ignored.)"
8058 msgstr ""
8059 "シグナル情報を設定する。 I<siginfo_t> 構造体を親プロセスのデータ I<data> の位"
8060 "置から 子プロセスにコピーする。 この処理を行うことができるのは、子プロセスに"
8061 "通常は配送されるはずで トレーサに捕捉されたシグナルについてだけである。 これ"
8062 "らの通常のシグナルと B<ptrace>()  自身が発生するシグナルを見分けるのは難しい"
8063 "かもしれない。 (I<addr> は無視される。)"
8064
8065 #. type: TP
8066 #: build/C/man2/ptrace.2:319
8067 #, no-wrap
8068 msgid "B<PTRACE_SETOPTIONS> (since Linux 2.4.6; see BUGS for caveats)"
8069 msgstr "B<PTRACE_SETOPTIONS> (Linux 2.4.6 以降; バグの章にある警告も参照)"
8070
8071 #. type: Plain text
8072 #: build/C/man2/ptrace.2:328
8073 #, fuzzy
8074 #| msgid ""
8075 #| "Sets ptrace options from I<data> in the parent.  (I<addr> is ignored.)  "
8076 #| "I<data> is interpreted as a bit mask of options, which are specified by "
8077 #| "the following flags:"
8078 msgid ""
8079 "Set ptrace options from I<data>.  (I<addr> is ignored.)  I<data> is "
8080 "interpreted as a bit mask of options, which are specified by the following "
8081 "flags:"
8082 msgstr ""
8083 "親プロセスの I<data> に基づいて ptrace のオプションを設定する (I<addr> は無視"
8084 "される)。 I<data> はオプションのビットマスクとして解釈され、 オプションには以"
8085 "下のフラグを指定できる:"
8086
8087 #. type: TP
8088 #: build/C/man2/ptrace.2:329
8089 #, no-wrap
8090 msgid "B<PTRACE_O_EXITKILL> (since Linux 3.8)"
8091 msgstr " B<PTRACE_O_EXITKILL> (since Linux 3.8)"
8092
8093 #.  commit 992fb6e170639b0849bace8e49bf31bd37c4123
8094 #. type: Plain text
8095 #: build/C/man2/ptrace.2:337
8096 msgid ""
8097 "If a tracer sets this flag, a B<SIGKILL> signal will be sent to every tracee "
8098 "if the tracer exits.  This option is useful for ptrace jailers that want to "
8099 "ensure that tracees can never escape the tracer's control."
8100 msgstr ""
8101
8102 #. type: TP
8103 #: build/C/man2/ptrace.2:337
8104 #, no-wrap
8105 msgid "B<PTRACE_O_TRACECLONE> (since Linux 2.5.46)"
8106 msgstr "B<PTRACE_O_TRACECLONE> (Linux 2.5.46 以降)"
8107
8108 #. type: Plain text
8109 #: build/C/man2/ptrace.2:354
8110 #, fuzzy
8111 #| msgid ""
8112 #| "Stop the child at the next B<fork>(2)  call with I<SIGTRAP | "
8113 #| "PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
8114 #| "newly forked process, which will start with a B<SIGSTOP>.  The PID for "
8115 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
8116 msgid ""
8117 "Stop the tracee at the next B<clone>(2)  and automatically start tracing the "
8118 "newly cloned process, which will start with a B<SIGSTOP>, or "
8119 "B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used.  A B<waitpid>(2)  by the "
8120 "tracer will return a I<status> value such that"
8121 msgstr ""
8122 "次の B<fork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ "
8123 "8> で 子プロセスの動作を停止させ、 新たに fork されたプロセスのトレースを自動"
8124 "的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
8125 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
8126
8127 #. type: Plain text
8128 #: build/C/man2/ptrace.2:357
8129 #, no-wrap
8130 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_CLONEE<lt>E<lt>8))\n"
8131 msgstr ""
8132
8133 #. type: Plain text
8134 #: build/C/man2/ptrace.2:361 build/C/man2/ptrace.2:447
8135 #: build/C/man2/ptrace.2:480
8136 msgid "The PID of the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
8137 msgstr ""
8138
8139 #. type: Plain text
8140 #: build/C/man2/ptrace.2:382
8141 #, fuzzy
8142 #| msgid ""
8143 #| "Stop the child at the next B<clone>(2)  call with I<SIGTRAP | "
8144 #| "PTRACE_EVENT_CLONE\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
8145 #| "newly cloned process, which will start with a B<SIGSTOP>.  The PID for "
8146 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>.  This option "
8147 #| "may not catch B<clone>(2)  calls in all cases.  If the child calls "
8148 #| "B<clone>(2)  with the B<CLONE_VFORK> flag, B<PTRACE_EVENT_VFORK> will be "
8149 #| "delivered instead if B<PTRACE_O_TRACEVFORK> is set; otherwise if the "
8150 #| "child calls B<clone>(2)  with the exit signal set to B<SIGCHLD>, "
8151 #| "B<PTRACE_EVENT_FORK> will be delivered if B<PTRACE_O_TRACEFORK> is set."
8152 msgid ""
8153 "This option may not catch B<clone>(2)  calls in all cases.  If the tracee "
8154 "calls B<clone>(2)  with the B<CLONE_VFORK> flag, B<PTRACE_EVENT_VFORK> will "
8155 "be delivered instead if B<PTRACE_O_TRACEVFORK> is set; otherwise if the "
8156 "tracee calls B<clone>(2)  with the exit signal set to B<SIGCHLD>, "
8157 "B<PTRACE_EVENT_FORK> will be delivered if B<PTRACE_O_TRACEFORK> is set."
8158 msgstr ""
8159 "次の B<clone>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_CLONE\\ E<lt>E<lt> "
8160 "\\8> で 子プロセスの動作を停止させ、 新たに clone で作成されたプロセスのト"
8161 "レースを自動的に開始し、 B<SIGSTOP> でプロセスの実行を開始する。 新しいプロセ"
8162 "スの PID は B<PTRACE_GETEVENTMSG> で取得できる。 このオプションで全ての "
8163 "B<clone>(2)  コールを捕まえられるわけではない。 子プロセスが B<CLONE_VFORK> "
8164 "フラグ付きで B<clone>(2)  を呼び出した場合、 B<PTRACE_O_TRACEVFORK> が設定さ"
8165 "れていれば代わりに B<PTRACE_EVENT_VFORK> が配送される。 また、子プロセスが終"
8166 "了シグナルを B<SIGCHLD> に設定して B<clone>(2)  を呼び出した場合は、 "
8167 "B<PTRACE_O_TRACEFORK> が設定されていれば B<PTRACE_EVENT_FORK> が配送される。"
8168
8169 #. type: TP
8170 #: build/C/man2/ptrace.2:382
8171 #, no-wrap
8172 msgid "B<PTRACE_O_TRACEEXEC> (since Linux 2.5.46)"
8173 msgstr "B<PTRACE_O_TRACEEXEC> (Linux 2.5.46 以降)"
8174
8175 #. type: Plain text
8176 #: build/C/man2/ptrace.2:391
8177 msgid ""
8178 "Stop the tracee at the next B<execve>(2).  A B<waitpid>(2)  by the tracer "
8179 "will return a I<status> value such that"
8180 msgstr ""
8181
8182 #. type: Plain text
8183 #: build/C/man2/ptrace.2:394
8184 #, no-wrap
8185 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXECE<lt>E<lt>8))\n"
8186 msgstr ""
8187
8188 #. type: Plain text
8189 #: build/C/man2/ptrace.2:400
8190 msgid ""
8191 "If the execing thread is not a thread group leader, the thread ID is reset "
8192 "to thread group leader's ID before this stop.  Since Linux 3.0, the former "
8193 "thread ID can be retrieved with B<PTRACE_GETEVENTMSG>."
8194 msgstr ""
8195
8196 #. type: TP
8197 #: build/C/man2/ptrace.2:400
8198 #, no-wrap
8199 msgid "B<PTRACE_O_TRACEEXIT> (since Linux 2.5.60)"
8200 msgstr "B<PTRACE_O_TRACEEXIT> (Linux 2.5.60 以降)"
8201
8202 #. type: Plain text
8203 #: build/C/man2/ptrace.2:408
8204 msgid ""
8205 "Stop the tracee at exit.  A B<waitpid>(2)  by the tracer will return a "
8206 "I<status> value such that"
8207 msgstr ""
8208
8209 #. type: Plain text
8210 #: build/C/man2/ptrace.2:411
8211 #, no-wrap
8212 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXITE<lt>E<lt>8))\n"
8213 msgstr ""
8214
8215 #. type: Plain text
8216 #: build/C/man2/ptrace.2:415
8217 msgid "The tracee's exit status can be retrieved with B<PTRACE_GETEVENTMSG>."
8218 msgstr ""
8219
8220 #. type: Plain text
8221 #: build/C/man2/ptrace.2:423
8222 #, fuzzy
8223 #| msgid ""
8224 #| "Stop the child at exit with I<SIGTRAP | PTRACE_EVENT_EXIT\\ E<lt>E<lt>\\ "
8225 #| "8>.  The child's exit status can be retrieved with "
8226 #| "B<PTRACE_GETEVENTMSG>.  This stop will be done early during process exit "
8227 #| "when registers are still available, allowing the tracer to see where the "
8228 #| "exit occurred, whereas the normal exit notification is done after the "
8229 #| "process is finished exiting.  Even though context is available, the "
8230 #| "tracer cannot prevent the exit from happening at this point."
8231 msgid ""
8232 "The tracee is stopped early during process exit, when registers are still "
8233 "available, allowing the tracer to see where the exit occurred, whereas the "
8234 "normal exit notification is done after the process is finished exiting.  "
8235 "Even though context is available, the tracer cannot prevent the exit from "
8236 "happening at this point."
8237 msgstr ""
8238 "終了 (exit) 時に I<SIGTRAP | PTRACE_EVENT_EXIT\\ E<lt>E<lt>\\ 8> で子プロセス"
8239 "の動作を停止させる。子プロセスの終了ステータスは B<PTRACE_GETEVENTMSG> で取得"
8240 "できる。 この停止はレジスタがまだ参照可能であるプロセス終了処理の初期に行わ"
8241 "れ、 トレーサはどこで終了が発生したかを知ることができる。 通常の終了通知 "
8242 "(exit notification) はプロセスの終了処理が完了した後に 行われる。コンテキスト"
8243 "を参照することはできるにも関わらず、 トレーサはこの時点から終了を止めることは"
8244 "できない。"
8245
8246 #. type: TP
8247 #: build/C/man2/ptrace.2:423
8248 #, no-wrap
8249 msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
8250 msgstr "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
8251
8252 #. type: Plain text
8253 #: build/C/man2/ptrace.2:440
8254 #, fuzzy
8255 #| msgid ""
8256 #| "Stop the child at the next B<fork>(2)  call with I<SIGTRAP | "
8257 #| "PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
8258 #| "newly forked process, which will start with a B<SIGSTOP>.  The PID for "
8259 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
8260 msgid ""
8261 "Stop the tracee at the next B<fork>(2)  and automatically start tracing the "
8262 "newly forked process, which will start with a B<SIGSTOP>, or "
8263 "B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used.  A B<waitpid>(2)  by the "
8264 "tracer will return a I<status> value such that"
8265 msgstr ""
8266 "次の B<fork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ "
8267 "8> で 子プロセスの動作を停止させ、 新たに fork されたプロセスのトレースを自動"
8268 "的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
8269 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
8270
8271 #. type: Plain text
8272 #: build/C/man2/ptrace.2:443
8273 #, no-wrap
8274 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_FORKE<lt>E<lt>8))\n"
8275 msgstr ""
8276
8277 #. type: TP
8278 #: build/C/man2/ptrace.2:447
8279 #, no-wrap
8280 msgid "B<PTRACE_O_TRACESYSGOOD> (since Linux 2.4.6)"
8281 msgstr "B<PTRACE_O_TRACESYSGOOD> (Linux 2.4.6 以降)"
8282
8283 #. type: Plain text
8284 #: build/C/man2/ptrace.2:456
8285 #, fuzzy
8286 #| msgid ""
8287 #| "When delivering syscall traps, set bit 7 in the signal number (i.e., "
8288 #| "deliver I<SIGTRAP | 0x80>).  This makes it easy for the tracer to tell "
8289 #| "the difference between normal traps and those caused by a syscall.  "
8290 #| "(B<PTRACE_O_TRACESYSGOOD> may not work on all architectures.)"
8291 msgid ""
8292 "When delivering system call traps, set bit 7 in the signal number (i.e., "
8293 "deliver I<SIGTRAP|0x80>).  This makes it easy for the tracer to distinguish "
8294 "normal traps from those caused by a system call.  (B<PTRACE_O_TRACESYSGOOD> "
8295 "may not work on all architectures.)"
8296 msgstr ""
8297 "システムコールのトラップが配送されたときに、シグナル番号のビット 7 を設定す"
8298 "る (すなわち、I<SIGTRAP | 0x80> を配送する)。 これにより、トレーサが通常のト"
8299 "ラップとシステムコールによるトラップを 区別しやすくなる。 "
8300 "(B<PTRACE_O_TRACESYSGOOD> はどのアーキテクチャでも動作しない可能性がある。)"
8301
8302 #. type: TP
8303 #: build/C/man2/ptrace.2:456
8304 #, no-wrap
8305 msgid "B<PTRACE_O_TRACEVFORK> (since Linux 2.5.46)"
8306 msgstr "B<PTRACE_O_TRACEVFORK> (Linux 2.5.46 以降)"
8307
8308 #. type: Plain text
8309 #: build/C/man2/ptrace.2:473
8310 #, fuzzy
8311 #| msgid ""
8312 #| "Stop the child at the next B<vfork>(2)  call with I<SIGTRAP | "
8313 #| "PTRACE_EVENT_VFORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
8314 #| "newly vforked process, which will start with a B<SIGSTOP>.  The PID for "
8315 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
8316 msgid ""
8317 "Stop the tracee at the next B<vfork>(2)  and automatically start tracing the "
8318 "newly vforked process, which will start with a B<SIGSTOP>, or "
8319 "B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used.  A B<waitpid>(2)  by the "
8320 "tracer will return a I<status> value such that"
8321 msgstr ""
8322 "次の B<vfork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_VFORK\\ E<lt>E<lt>\\ "
8323 "8> で 子プロセスの動作を停止させ、 新たに vfork されたプロセスのトレースを自"
8324 "動的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
8325 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
8326
8327 #. type: Plain text
8328 #: build/C/man2/ptrace.2:476
8329 #, no-wrap
8330 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORKE<lt>E<lt>8))\n"
8331 msgstr ""
8332
8333 #. type: TP
8334 #: build/C/man2/ptrace.2:480
8335 #, no-wrap
8336 msgid "B<PTRACE_O_TRACEVFORKDONE> (since Linux 2.5.60)"
8337 msgstr "B<PTRACE_O_TRACEVFORKDONE> (Linux 2.5.60 以降)"
8338
8339 #. type: Plain text
8340 #: build/C/man2/ptrace.2:489
8341 msgid ""
8342 "Stop the tracee at the completion of the next B<vfork>(2).  A B<waitpid>(2)  "
8343 "by the tracer will return a I<status> value such that"
8344 msgstr ""
8345
8346 #. type: Plain text
8347 #: build/C/man2/ptrace.2:492
8348 #, no-wrap
8349 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORK_DONEE<lt>E<lt>8))\n"
8350 msgstr ""
8351
8352 #. type: Plain text
8353 #: build/C/man2/ptrace.2:496
8354 msgid ""
8355 "The PID of the new process can (since Linux 2.6.18) be retrieved with "
8356 "B<PTRACE_GETEVENTMSG>."
8357 msgstr ""
8358
8359 #. type: TP
8360 #: build/C/man2/ptrace.2:497
8361 #, no-wrap
8362 msgid "B<PTRACE_GETEVENTMSG> (since Linux 2.5.46)"
8363 msgstr "B<PTRACE_GETEVENTMSG> (Linux 2.5.46 以降)"
8364
8365 #. type: Plain text
8366 #: build/C/man2/ptrace.2:517
8367 #, fuzzy
8368 #| msgid ""
8369 #| "Retrieve a message (as an I<unsigned long>)  about the ptrace event that "
8370 #| "just happened, placing it in the location I<data> in the parent.  For "
8371 #| "B<PTRACE_EVENT_EXIT> this is the child's exit status.  For "
8372 #| "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK> and B<PTRACE_EVENT_CLONE> "
8373 #| "this is the PID of the new process.  Since Linux 2.6.18, the PID of the "
8374 #| "new process is also available for B<PTRACE_EVENT_VFORK_DONE>.  (I<addr> "
8375 #| "is ignored.)"
8376 msgid ""
8377 "Retrieve a message (as an I<unsigned long>)  about the ptrace event that "
8378 "just happened, placing it at the address I<data> in the tracer.  For "
8379 "B<PTRACE_EVENT_EXIT>, this is the tracee's exit status.  For "
8380 "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK>, B<PTRACE_EVENT_VFORK_DONE>, and "
8381 "B<PTRACE_EVENT_CLONE>, this is the PID of the new process.  (I<addr> is "
8382 "ignored.)"
8383 msgstr ""
8384 "発生したばかりの ptrace イベントに関するメッセージを (I<unsigned long> 型で) "
8385 "取得する。 取得したメッセージは親プロセスの I<data> の位置に格納される。 得ら"
8386 "れる内容は、 B<PTRACE_EVENT_EXIT> の場合は子プロセスの終了ステータスであり、 "
8387 "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK>, B<PTRACE_EVENT_CLONE> の場合は新"
8388 "しいプロセスの PID である。 Linux 2.6.18 以降では、新しいプロセスの PID は "
8389 "B<PTRACE_EVENT_VFORK_DONE> で入手できる。 (I<addr> は無視される。)"
8390
8391 #. type: TP
8392 #: build/C/man2/ptrace.2:517
8393 #, no-wrap
8394 msgid "B<PTRACE_CONT>"
8395 msgstr "B<PTRACE_CONT>"
8396
8397 #. type: Plain text
8398 #: build/C/man2/ptrace.2:529
8399 #, fuzzy
8400 #| msgid ""
8401 #| "Restarts the stopped child process.  If I<data> is nonzero and not "
8402 #| "B<SIGSTOP>, it is interpreted as a signal to be delivered to the child; "
8403 #| "otherwise, no signal is delivered.  Thus, for example, the parent can "
8404 #| "control whether a signal sent to the child is delivered or not.  (I<addr> "
8405 #| "is ignored.)"
8406 msgid ""
8407 "Restart the stopped tracee process.  If I<data> is nonzero, it is "
8408 "interpreted as the number of a signal to be delivered to the tracee; "
8409 "otherwise, no signal is delivered.  Thus, for example, the tracer can "
8410 "control whether a signal sent to the tracee is delivered or not.  (I<addr> "
8411 "is ignored.)"
8412 msgstr ""
8413 "停止した子プロセスの実行を再開させる。 I<data> がゼロでなく、 B<SIGSTOP> でも"
8414 "なければ、 子プロセスに配送されるシグナルと解釈される。 ゼロや B<SIGSTOP> の"
8415 "場合はシグナルは配送されない。 これを使うと、例えば、親プロセスは 子プロセス"
8416 "に送られたシグナルを実際に配送するかどうかを 制御することができる。(I<addr> "
8417 "は無視される。)"
8418
8419 #. type: TP
8420 #: build/C/man2/ptrace.2:529
8421 #, no-wrap
8422 msgid "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
8423 msgstr "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
8424
8425 #. type: Plain text
8426 #: build/C/man2/ptrace.2:553
8427 #, fuzzy
8428 #| msgid ""
8429 #| "Restarts the stopped child as for B<PTRACE_CONT>, but arranges for the "
8430 #| "child to be stopped at the next entry to or exit from a system call, or "
8431 #| "after execution of a single instruction, respectively.  (The child will "
8432 #| "also, as usual, be stopped upon receipt of a signal.)  From the parent's "
8433 #| "perspective, the child will appear to have been stopped by receipt of a "
8434 #| "B<SIGTRAP>.  So, for B<PTRACE_SYSCALL>, for example, the idea is to "
8435 #| "inspect the arguments to the system call at the first stop, then do "
8436 #| "another B<PTRACE_SYSCALL> and inspect the return value of the system call "
8437 #| "at the second stop.  The I<data> argument is treated as for "
8438 #| "B<PTRACE_CONT>.  (I<addr> is ignored.)"
8439 msgid ""
8440 "Restart the stopped tracee as for B<PTRACE_CONT>, but arrange for the tracee "
8441 "to be stopped at the next entry to or exit from a system call, or after "
8442 "execution of a single instruction, respectively.  (The tracee will also, as "
8443 "usual, be stopped upon receipt of a signal.)  From the tracer's perspective, "
8444 "the tracee will appear to have been stopped by receipt of a B<SIGTRAP>.  So, "
8445 "for B<PTRACE_SYSCALL>, for example, the idea is to inspect the arguments to "
8446 "the system call at the first stop, then do another B<PTRACE_SYSCALL> and "
8447 "inspect the return value of the system call at the second stop.  The I<data> "
8448 "argument is treated as for B<PTRACE_CONT>.  (I<addr> is ignored.)"
8449 msgstr ""
8450 "B<PTRACE_CONT> と同様に停止した子プロセスを再開する。ただし、 "
8451 "B<PTRACE_SYSCALL> の場合は子プロセスが 次にシステムコールに入るかシステムコー"
8452 "ルから抜けるかする時に、 B<PTRACE_SINGLESTEP> の場合は 1 命令 (instruction) "
8453 "実行した後に停止させる (通常どおり、子プロセスはシグナルを受け取った場合にも"
8454 "停止する)。 親プロセスから見ると、子プロセスは B<SIGTRAP> を受信して停止した"
8455 "ように見える。そのため、例えば B<PTRACE_SYSCALL> を使うと、1回目の停止で引き"
8456 "数を調べて B<PTRACE_SYSCALL> を実行し、 2回目の停止でシステムコールの返り値を"
8457 "調べる、 というようなことができる。 引き数 I<data> は B<PTRACE_CONT> の場合と"
8458 "同じ様に解釈される。 (I<addr> は無視される。)"
8459
8460 #. type: TP
8461 #: build/C/man2/ptrace.2:553
8462 #, no-wrap
8463 msgid "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (since Linux 2.6.14)"
8464 msgstr "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (Linux 2.6.14 以降)"
8465
8466 #.  As at 3.7
8467 #. type: Plain text
8468 #: build/C/man2/ptrace.2:574
8469 #, fuzzy
8470 #| msgid ""
8471 #| "For B<PTRACE_SYSEMU>, continue and stop on entry to the next syscall, "
8472 #| "which will not be executed.  For B<PTRACE_SYSEMU_SINGLESTEP>, do the same "
8473 #| "but also singlestep if not a syscall.  This call is used by programs like "
8474 #| "User Mode Linux that want to emulate all the child's system calls.  The "
8475 #| "I<data> argument is treated as for B<PTRACE_CONT>.  (I<addr> is ignored; "
8476 #| "not supported on all architectures.)"
8477 msgid ""
8478 "For B<PTRACE_SYSEMU>, continue and stop on entry to the next system call, "
8479 "which will not be executed.  For B<PTRACE_SYSEMU_SINGLESTEP>, do the same "
8480 "but also singlestep if not a system call.  This call is used by programs "
8481 "like User Mode Linux that want to emulate all the tracee's system calls.  "
8482 "The I<data> argument is treated as for B<PTRACE_CONT>.  The I<addr> argument "
8483 "is ignored.  These requests are currently supported only on x86."
8484 msgstr ""
8485 "B<PTRACE_SYSEMU> は、実行を再開し、次のシステムコールに入る時に停止させる。 "
8486 "システムコールは実行されない。 B<PTRACE_SYSEMU_SINGLESTEP> も同様だが、システ"
8487 "ムコールでない場合には 1 命令 (singlestep) だけ実行した時点でも停止させる。 "
8488 "このコールは User Mode Linux のように子プロセスのシステムコールを全て エミュ"
8489 "レートしようとするプログラムで使用される。 引き数 I<data> は B<PTRACE_CONT> "
8490 "の場合と同じ様に解釈される。 (I<addr> は無視される。 全てのアーキテクチャでサ"
8491 "ポートされているわけではない。)"
8492
8493 #. type: TP
8494 #: build/C/man2/ptrace.2:574
8495 #, no-wrap
8496 msgid "B<PTRACE_LISTEN> (since Linux 3.4)"
8497 msgstr " B<PTRACE_LISTEN> (since Linux 3.4)"
8498
8499 #. type: Plain text
8500 #: build/C/man2/ptrace.2:585
8501 msgid ""
8502 "Restart the stopped tracee, but prevent it from executing.  The resulting "
8503 "state of the tracee is similar to a process which has been stopped by a "
8504 "B<SIGSTOP> (or other stopping signal).  See the \"group-stop\" subsection "
8505 "for additional information.  B<PTRACE_LISTEN> works only on tracees attached "
8506 "by B<PTRACE_SEIZE>."
8507 msgstr ""
8508
8509 #. type: TP
8510 #: build/C/man2/ptrace.2:585
8511 #, no-wrap
8512 msgid "B<PTRACE_KILL>"
8513 msgstr "B<PTRACE_KILL>"
8514
8515 #. type: Plain text
8516 #: build/C/man2/ptrace.2:594
8517 #, fuzzy
8518 #| msgid ""
8519 #| "Sends the child a B<SIGKILL> to terminate it.  (I<addr> and I<data> are "
8520 #| "ignored.)"
8521 msgid ""
8522 "Send the tracee a B<SIGKILL> to terminate it.  (I<addr> and I<data> are "
8523 "ignored.)"
8524 msgstr ""
8525 "子プロセスに B<SIGKILL> を送り終了させる。(I<addr> と I<data> は無視される。)"
8526
8527 #.  [Note from Denys Vlasenko:
8528 #.      deprecation suggested by Oleg Nesterov. He prefers to deprecate it
8529 #.      instead of describing (and needing to support) PTRACE_KILL's quirks.]
8530 #. type: Plain text
8531 #: build/C/man2/ptrace.2:613
8532 msgid ""
8533 "I<This operation is deprecated; do not use it!> Instead, send a B<SIGKILL> "
8534 "directly using B<kill>(2)  or B<tgkill>(2).  The problem with B<PTRACE_KILL> "
8535 "is that it requires the tracee to be in signal-delivery-stop, otherwise it "
8536 "may not work (i.e., may complete successfully but won't kill the tracee).  "
8537 "By contrast, sending a B<SIGKILL> directly has no such limitation."
8538 msgstr ""
8539
8540 #. type: TP
8541 #: build/C/man2/ptrace.2:613
8542 #, no-wrap
8543 msgid "B<PTRACE_INTERRUPT> (since Linux 3.4)"
8544 msgstr " B<PTRACE_INTERRUPT> (since Linux 3.4)"
8545
8546 #. type: Plain text
8547 #: build/C/man2/ptrace.2:641
8548 msgid ""
8549 "Stop a tracee.  If the tracee is running or sleeping in kernel space and "
8550 "B<PTRACE_SYSCALL> is in effect, the system call is interrupted and syscall-"
8551 "exit-stop is reported.  (The interrupted system call is restarted when the "
8552 "tracee is restarted.)  If the tracee was already stopped by a signal and "
8553 "B<PTRACE_LISTEN> was sent to it, the tracee stops with B<PTRACE_EVENT_STOP> "
8554 "and I<WSTOPSIG(status)> returns the stop signal.  If any other ptrace-stop "
8555 "is generated at the same time (for example, if a signal is sent to the "
8556 "tracee), this ptrace-stop happens.  If none of the above applies (for "
8557 "example, if the tracee is running in userspace), it stops with "
8558 "B<PTRACE_EVENT_STOP> with I<WSTOPSIG(status)> == B<SIGTRAP>.  "
8559 "B<PTRACE_INTERRUPT> only works on tracees attached by B<PTRACE_SEIZE>."
8560 msgstr ""
8561
8562 #. type: TP
8563 #: build/C/man2/ptrace.2:641
8564 #, no-wrap
8565 msgid "B<PTRACE_ATTACH>"
8566 msgstr "B<PTRACE_ATTACH>"
8567
8568 #.  No longer true (removed by Denys Vlasenko, 2011, who remarks:
8569 #.         "I think it isn't true in non-ancient 2.4 and in 2.6/3.x.
8570 #.          Basically, it's not true for any Linux in practical use.
8571 #.  ; the behavior of the tracee is as if it had done a
8572 #.  .BR PTRACE_TRACEME .
8573 #.  The calling process actually becomes the parent of the tracee
8574 #.  process for most purposes (e.g., it will receive
8575 #.  notification of tracee events and appears in
8576 #.  .BR ps (1)
8577 #.  output as the tracee's parent), but a
8578 #.  .BR getppid (2)
8579 #.  by the tracee will still return the PID of the original parent.
8580 #. type: Plain text
8581 #: build/C/man2/ptrace.2:669
8582 msgid ""
8583 "Attach to the process specified in I<pid>, making it a tracee of the calling "
8584 "process.  The tracee is sent a B<SIGSTOP>, but will not necessarily have "
8585 "stopped by the completion of this call; use B<waitpid>(2)  to wait for the "
8586 "tracee to stop.  See the \"Attaching and detaching\" subsection for "
8587 "additional information.  (I<addr> and I<data> are ignored.)"
8588 msgstr ""
8589
8590 #. type: TP
8591 #: build/C/man2/ptrace.2:669
8592 #, no-wrap
8593 msgid "B<PTRACE_SEIZE> (since Linux 3.4)"
8594 msgstr " B<PTRACE_SEIZE> (since Linux 3.4)"
8595
8596 #. type: Plain text
8597 #: build/C/man2/ptrace.2:689
8598 msgid ""
8599 "Attach to the process specified in I<pid>, making it a tracee of the calling "
8600 "process.  Unlike B<PTRACE_ATTACH>, B<PTRACE_SEIZE> does not stop the "
8601 "process.  Only a B<PTRACE_SEIZE>d process can accept B<PTRACE_INTERRUPT> and "
8602 "B<PTRACE_LISTEN> commands.  I<addr> must be zero.  I<data> contains a bit "
8603 "mask of ptrace options to activate immediately."
8604 msgstr ""
8605
8606 #. type: TP
8607 #: build/C/man2/ptrace.2:689
8608 #, no-wrap
8609 msgid "B<PTRACE_DETACH>"
8610 msgstr "B<PTRACE_DETACH>"
8611
8612 #. type: Plain text
8613 #: build/C/man2/ptrace.2:698
8614 #, fuzzy
8615 #| msgid ""
8616 #| "Restarts the stopped child as for B<PTRACE_CONT>, but first detaches from "
8617 #| "the process, undoing the reparenting effect of B<PTRACE_ATTACH>, and the "
8618 #| "effects of B<PTRACE_TRACEME>.  Although perhaps not intended, under Linux "
8619 #| "a traced child can be detached in this way regardless of which method was "
8620 #| "used to initiate tracing.  (I<addr> is ignored.)"
8621 msgid ""
8622 "Restart the stopped tracee as for B<PTRACE_CONT>, but first detach from it.  "
8623 "Under Linux, a tracee can be detached in this way regardless of which method "
8624 "was used to initiate tracing.  (I<addr> is ignored.)"
8625 msgstr ""
8626 "B<PTRACE_CONT> と同様に停止した子プロセスを再開する。ただし まずそのプロセス"
8627 "からの分離 (detach) を行い、 B<PTRACE_ATTACH> での親の切り換えによる効果と "
8628 "B<PTRACE_TRACEME> の効果を取り消す。意図したものではないだろうが、 Linux で"
8629 "は、トレースされている子プロセスはどのような方法でトレースを 開始されたとして"
8630 "も、この方法で分離 (detach) することができる。 (I<addr> は無視される。)"
8631
8632 #. type: SS
8633 #: build/C/man2/ptrace.2:698
8634 #, no-wrap
8635 msgid "Death under ptrace"
8636 msgstr ""
8637
8638 #. type: Plain text
8639 #: build/C/man2/ptrace.2:707
8640 msgid ""
8641 "When a (possibly multithreaded) process receives a killing signal (one whose "
8642 "disposition is set to B<SIG_DFL> and whose default action is to kill the "
8643 "process), all threads exit.  Tracees report their death to their tracer(s).  "
8644 "Notification of this event is delivered via B<waitpid>(2)."
8645 msgstr ""
8646
8647 #. type: Plain text
8648 #: build/C/man2/ptrace.2:716
8649 msgid ""
8650 "Note that the killing signal will first cause signal-delivery-stop (on one "
8651 "tracee only), and only after it is injected by the tracer (or after it was "
8652 "dispatched to a thread which isn't traced), will death from the signal "
8653 "happen on I<all> tracees within a multithreaded process.  (The term \"signal-"
8654 "delivery-stop\" is explained below.)"
8655 msgstr ""
8656
8657 #. type: Plain text
8658 #: build/C/man2/ptrace.2:728
8659 msgid ""
8660 "B<SIGKILL> does not generate signal-delivery-stop and therefore the tracer "
8661 "can't suppress it.  B<SIGKILL> kills even within system calls (syscall-exit-"
8662 "stop is not generated prior to death by B<SIGKILL>).  The net effect is that "
8663 "B<SIGKILL> always kills the process (all its threads), even if some threads "
8664 "of the process are ptraced."
8665 msgstr ""
8666
8667 #. type: Plain text
8668 #: build/C/man2/ptrace.2:733
8669 msgid ""
8670 "When the tracee calls B<_exit>(2), it reports its death to its tracer.  "
8671 "Other threads are not affected."
8672 msgstr ""
8673
8674 #. type: Plain text
8675 #: build/C/man2/ptrace.2:737
8676 msgid ""
8677 "When any thread executes B<exit_group>(2), every tracee in its thread group "
8678 "reports its death to its tracer."
8679 msgstr ""
8680
8681 #. type: Plain text
8682 #: build/C/man2/ptrace.2:751
8683 msgid ""
8684 "If the B<PTRACE_O_TRACEEXIT> option is on, B<PTRACE_EVENT_EXIT> will happen "
8685 "before actual death.  This applies to exits via B<exit>(2), B<exit_group>"
8686 "(2), and signal deaths (except B<SIGKILL>), and when threads are torn down "
8687 "on B<execve>(2)  in a multithreaded process."
8688 msgstr ""
8689
8690 #. type: Plain text
8691 #: build/C/man2/ptrace.2:776
8692 msgid ""
8693 "The tracer cannot assume that the ptrace-stopped tracee exists.  There are "
8694 "many scenarios when the tracee may die while stopped (such as B<SIGKILL>).  "
8695 "Therefore, the tracer must be prepared to handle an B<ESRCH> error on any "
8696 "ptrace operation.  Unfortunately, the same error is returned if the tracee "
8697 "exists but is not ptrace-stopped (for commands which require a stopped "
8698 "tracee), or if it is not traced by the process which issued the ptrace "
8699 "call.  The tracer needs to keep track of the stopped/running state of the "
8700 "tracee, and interpret B<ESRCH> as \"tracee died unexpectedly\" only if it "
8701 "knows that the tracee has been observed to enter ptrace-stop.  Note that "
8702 "there is no guarantee that I<waitpid(WNOHANG)> will reliably report the "
8703 "tracee's death status if a ptrace operation returned B<ESRCH>.  I<waitpid"
8704 "(WNOHANG)> may return 0 instead.  In other words, the tracee may be \"not "
8705 "yet fully dead\", but already refusing ptrace requests."
8706 msgstr ""
8707
8708 #. type: Plain text
8709 #: build/C/man2/ptrace.2:790
8710 msgid ""
8711 "The tracer can't assume that the tracee I<always> ends its life by reporting "
8712 "I<WIFEXITED(status)> or I<WIFSIGNALED(status)>; there are cases where this "
8713 "does not occur.  For example, if a thread other than thread group leader "
8714 "does an B<execve>(2), it disappears; its PID will never be seen again, and "
8715 "any subsequent ptrace stops will be reported under the thread group leader's "
8716 "PID."
8717 msgstr ""
8718
8719 #. type: SS
8720 #: build/C/man2/ptrace.2:790
8721 #, no-wrap
8722 msgid "Stopped states"
8723 msgstr ""
8724
8725 #. type: Plain text
8726 #: build/C/man2/ptrace.2:812
8727 msgid ""
8728 "A tracee can be in two states: running or stopped.  For the purposes of "
8729 "ptrace, a tracee which is blocked in a system call (such as B<read>(2), "
8730 "B<pause>(2), etc.)  is nevertheless considered to be running, even if the "
8731 "tracee is blocked for a long time.  The state of the tracee after "
8732 "B<PTRACE_LISTEN> is somewhat of a gray area: it is not in any ptrace-stop "
8733 "(ptrace commands won't work on it, and it will deliver B<waitpid>(2)  "
8734 "notifications), but it also may be considered \"stopped\" because it is not "
8735 "executing instructions (is not scheduled), and if it was in group-stop "
8736 "before B<PTRACE_LISTEN>, it will not respond to signals until B<SIGCONT> is "
8737 "received."
8738 msgstr ""
8739
8740 #. type: Plain text
8741 #: build/C/man2/ptrace.2:816
8742 msgid ""
8743 "There are many kinds of states when the tracee is stopped, and in ptrace "
8744 "discussions they are often conflated.  Therefore, it is important to use "
8745 "precise terms."
8746 msgstr ""
8747
8748 #. type: Plain text
8749 #: build/C/man2/ptrace.2:827
8750 msgid ""
8751 "In this manual page, any stopped state in which the tracee is ready to "
8752 "accept ptrace commands from the tracer is called I<ptrace-stop>.  Ptrace-"
8753 "stops can be further subdivided into I<signal-delivery-stop>, I<group-stop>, "
8754 "I<syscall-stop>, and so on.  These stopped states are described in detail "
8755 "below."
8756 msgstr ""
8757
8758 #. type: Plain text
8759 #: build/C/man2/ptrace.2:832
8760 msgid ""
8761 "When the running tracee enters ptrace-stop, it notifies its tracer using "
8762 "B<waitpid>(2)  (or one of the other \"wait\" system calls).  Most of this "
8763 "manual page assumes that the tracer waits with:"
8764 msgstr ""
8765
8766 #. type: Plain text
8767 #: build/C/man2/ptrace.2:834
8768 #, no-wrap
8769 msgid "    pid = waitpid(pid_or_minus_1, &status, __WALL);\n"
8770 msgstr ""
8771
8772 #.  Denys Vlasenko:
8773 #.      Do we require __WALL usage, or will just using 0 be ok? (With 0,
8774 #.      I am not 100% sure there aren't ugly corner cases.) Are the
8775 #.      rules different if user wants to use waitid? Will waitid require
8776 #.      WEXITED?
8777 #. type: Plain text
8778 #: build/C/man2/ptrace.2:846
8779 msgid ""
8780 "Ptrace-stopped tracees are reported as returns with I<pid> greater than 0 "
8781 "and I<WIFSTOPPED(status)> true."
8782 msgstr ""
8783
8784 #. type: Plain text
8785 #: build/C/man2/ptrace.2:854
8786 msgid ""
8787 "The B<__WALL> flag does not include the B<WSTOPPED> and B<WEXITED> flags, "
8788 "but implies their functionality."
8789 msgstr ""
8790
8791 #. type: Plain text
8792 #: build/C/man2/ptrace.2:861
8793 msgid ""
8794 "Setting the B<WCONTINUED> flag when calling B<waitpid>(2)  is not "
8795 "recommended: the \"continued\" state is per-process and consuming it can "
8796 "confuse the real parent of the tracee."
8797 msgstr ""
8798
8799 #. type: Plain text
8800 #: build/C/man2/ptrace.2:869
8801 msgid ""
8802 "Use of the B<WNOHANG> flag may cause B<waitpid>(2)  to return 0 (\"no wait "
8803 "results available yet\")  even if the tracer knows there should be a "
8804 "notification.  Example:"
8805 msgstr ""
8806
8807 #. type: Plain text
8808 #: build/C/man2/ptrace.2:878
8809 #, no-wrap
8810 msgid ""
8811 "    errno = 0;\n"
8812 "    ptrace(PTRACE_CONT, pid, 0L, 0L);\n"
8813 "    if (errno == ESRCH) {\n"
8814 "        /* tracee is dead */\n"
8815 "        r = waitpid(tracee, &status, __WALL | WNOHANG);\n"
8816 "        /* r can still be 0 here! */\n"
8817 "    }\n"
8818 msgstr ""
8819
8820 #. type: Plain text
8821 #: build/C/man2/ptrace.2:901
8822 msgid ""
8823 "The following kinds of ptrace-stops exist: signal-delivery-stops, group-"
8824 "stops, B<PTRACE_EVENT> stops, syscall-stops.  They all are reported by "
8825 "B<waitpid>(2)  with I<WIFSTOPPED(status)> true.  They may be differentiated "
8826 "by examining the value I<statusE<gt>E<gt>8>, and if there is ambiguity in "
8827 "that value, by querying B<PTRACE_GETSIGINFO>.  (Note: the I<WSTOPSIG(status)"
8828 "> macro can't be used to perform this examination, because it returns the "
8829 "value I<(statusE<gt>E<gt>8)\\ &\\ 0xff>.)"
8830 msgstr ""
8831
8832 #. type: SS
8833 #: build/C/man2/ptrace.2:901
8834 #, no-wrap
8835 msgid "Signal-delivery-stop"
8836 msgstr ""
8837
8838 #. type: Plain text
8839 #: build/C/man2/ptrace.2:921
8840 msgid ""
8841 "When a (possibly multithreaded) process receives any signal except "
8842 "B<SIGKILL>, the kernel selects an arbitrary thread which handles the "
8843 "signal.  (If the signal is generated with B<tgkill>(2), the target thread "
8844 "can be explicitly selected by the caller.)  If the selected thread is "
8845 "traced, it enters signal-delivery-stop.  At this point, the signal is not "
8846 "yet delivered to the process, and can be suppressed by the tracer.  If the "
8847 "tracer doesn't suppress the signal, it passes the signal to the tracee in "
8848 "the next ptrace restart request.  This second step of signal delivery is "
8849 "called I<signal injection> in this manual page.  Note that if the signal is "
8850 "blocked, signal-delivery-stop doesn't happen until the signal is unblocked, "
8851 "with the usual exception that B<SIGSTOP> can't be blocked."
8852 msgstr ""
8853
8854 #. type: Plain text
8855 #: build/C/man2/ptrace.2:935
8856 msgid ""
8857 "Signal-delivery-stop is observed by the tracer as B<waitpid>(2)  returning "
8858 "with I<WIFSTOPPED(status)> true, with the signal returned by I<WSTOPSIG"
8859 "(status)>.  If the signal is B<SIGTRAP>, this may be a different kind of "
8860 "ptrace-stop; see the \"Syscall-stops\" and \"execve\" sections below for "
8861 "details.  If I<WSTOPSIG(status)> returns a stopping signal, this may be a "
8862 "group-stop; see below."
8863 msgstr ""
8864
8865 #. type: SS
8866 #: build/C/man2/ptrace.2:935
8867 #, no-wrap
8868 msgid "Signal injection and suppression"
8869 msgstr ""
8870
8871 #. type: Plain text
8872 #: build/C/man2/ptrace.2:938
8873 msgid ""
8874 "After signal-delivery-stop is observed by the tracer, the tracer should "
8875 "restart the tracee with the call"
8876 msgstr ""
8877
8878 #. type: Plain text
8879 #: build/C/man2/ptrace.2:940
8880 #, no-wrap
8881 msgid "    ptrace(PTRACE_restart, pid, 0, sig)\n"
8882 msgstr ""
8883
8884 #. type: Plain text
8885 #: build/C/man2/ptrace.2:953
8886 msgid ""
8887 "where B<PTRACE_restart> is one of the restarting ptrace requests.  If I<sig> "
8888 "is 0, then a signal is not delivered.  Otherwise, the signal I<sig> is "
8889 "delivered.  This operation is called I<signal injection> in this manual "
8890 "page, to distinguish it from signal-delivery-stop."
8891 msgstr ""
8892
8893 #. type: Plain text
8894 #: build/C/man2/ptrace.2:959
8895 msgid ""
8896 "The I<sig> value may be different from the I<WSTOPSIG(status)> value: the "
8897 "tracer can cause a different signal to be injected."
8898 msgstr ""
8899
8900 #. type: Plain text
8901 #: build/C/man2/ptrace.2:975
8902 msgid ""
8903 "Note that a suppressed signal still causes system calls to return "
8904 "prematurely.  In this case system calls will be restarted: the tracer will "
8905 "observe the tracee to reexecute the interrupted system call (or "
8906 "B<restart_syscall>(2)  system call for a few syscalls which use a different "
8907 "mechanism for restarting) if the tracer uses B<PTRACE_SYSCALL>.  Even system "
8908 "calls (such as B<poll>(2))  which are not restartable after signal are "
8909 "restarted after signal is suppressed; however, kernel bugs exist which cause "
8910 "some syscalls to fail with B<EINTR> even though no observable signal is "
8911 "injected to the tracee."
8912 msgstr ""
8913
8914 #. type: Plain text
8915 #: build/C/man2/ptrace.2:986
8916 msgid ""
8917 "Restarting ptrace commands issued in ptrace-stops other than signal-delivery-"
8918 "stop are not guaranteed to inject a signal, even if I<sig> is nonzero.  No "
8919 "error is reported; a nonzero I<sig> may simply be ignored.  Ptrace users "
8920 "should not try to \"create a new signal\" this way: use B<tgkill>(2)  "
8921 "instead."
8922 msgstr ""
8923
8924 #. type: Plain text
8925 #: build/C/man2/ptrace.2:993
8926 msgid ""
8927 "The fact that signal injection requests may be ignored when restarting the "
8928 "tracee after ptrace stops that are not signal-delivery-stops is a cause of "
8929 "confusion among ptrace users.  One typical scenario is that the tracer "
8930 "observes group-stop, mistakes it for signal-delivery-stop, restarts the "
8931 "tracee with"
8932 msgstr ""
8933
8934 #. type: Plain text
8935 #: build/C/man2/ptrace.2:995
8936 #, no-wrap
8937 msgid "    ptrace(PTRACE_restart, pid, 0, stopsig)\n"
8938 msgstr ""
8939
8940 #. type: Plain text
8941 #: build/C/man2/ptrace.2:1001
8942 msgid ""
8943 "with the intention of injecting I<stopsig>, but I<stopsig> gets ignored and "
8944 "the tracee continues to run."
8945 msgstr ""
8946
8947 #. type: Plain text
8948 #: build/C/man2/ptrace.2:1021
8949 msgid ""
8950 "The B<SIGCONT> signal has a side effect of waking up (all threads of)  a "
8951 "group-stopped process.  This side effect happens before signal-delivery-"
8952 "stop.  The tracer can't suppress this side effect (it can only suppress "
8953 "signal injection, which only causes the B<SIGCONT> handler to not be "
8954 "executed in the tracee, if such a handler is installed).  In fact, waking up "
8955 "from group-stop may be followed by signal-delivery-stop for signal(s)  "
8956 "I<other than> B<SIGCONT>, if they were pending when B<SIGCONT> was "
8957 "delivered.  In other words, B<SIGCONT> may be not the first signal observed "
8958 "by the tracee after it was sent."
8959 msgstr ""
8960
8961 #. type: Plain text
8962 #: build/C/man2/ptrace.2:1025
8963 msgid ""
8964 "Stopping signals cause (all threads of) a process to enter group-stop.  This "
8965 "side effect happens after signal injection, and therefore can be suppressed "
8966 "by the tracer."
8967 msgstr ""
8968
8969 #
8970 #.  In the Linux 2.4 sources, in arch/i386/kernel/signal.c::do_signal(),
8971 #.  there is:
8972 #.              /* The debugger continued.  Ignore SIGSTOP.  */
8973 #.              if (signr == SIGSTOP)
8974 #.                      continue;
8975 #. type: Plain text
8976 #: build/C/man2/ptrace.2:1035
8977 msgid "In Linux 2.4 and earlier, the B<SIGSTOP> signal can't be injected."
8978 msgstr ""
8979
8980 #. type: Plain text
8981 #: build/C/man2/ptrace.2:1052
8982 msgid ""
8983 "B<PTRACE_GETSIGINFO> can be used to retrieve a I<siginfo_t> structure which "
8984 "corresponds to the delivered signal.  B<PTRACE_SETSIGINFO> may be used to "
8985 "modify it.  If B<PTRACE_SETSIGINFO> has been used to alter I<siginfo_t>, the "
8986 "I<si_signo> field and the I<sig> parameter in the restarting command must "
8987 "match, otherwise the result is undefined."
8988 msgstr ""
8989
8990 #. type: SS
8991 #: build/C/man2/ptrace.2:1052
8992 #, no-wrap
8993 msgid "Group-stop"
8994 msgstr ""
8995
8996 #. type: Plain text
8997 #: build/C/man2/ptrace.2:1064
8998 msgid ""
8999 "When a (possibly multithreaded) process receives a stopping signal, all "
9000 "threads stop.  If some threads are traced, they enter a group-stop.  Note "
9001 "that the stopping signal will first cause signal-delivery-stop (on one "
9002 "tracee only), and only after it is injected by the tracer (or after it was "
9003 "dispatched to a thread which isn't traced), will group-stop be initiated on "
9004 "I<all> tracees within the multithreaded process.  As usual, every tracee "
9005 "reports its group-stop separately to the corresponding tracer."
9006 msgstr ""
9007
9008 #. type: Plain text
9009 #: build/C/man2/ptrace.2:1073
9010 msgid ""
9011 "Group-stop is observed by the tracer as B<waitpid>(2)  returning with "
9012 "I<WIFSTOPPED(status)> true, with the stopping signal available via I<WSTOPSIG"
9013 "(status)>.  The same result is returned by some other classes of ptrace-"
9014 "stops, therefore the recommended practice is to perform the call"
9015 msgstr ""
9016
9017 #. type: Plain text
9018 #: build/C/man2/ptrace.2:1075
9019 #, no-wrap
9020 msgid "    ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo)\n"
9021 msgstr ""
9022
9023 #. type: Plain text
9024 #: build/C/man2/ptrace.2:1096
9025 msgid ""
9026 "The call can be avoided if the signal is not B<SIGSTOP>, B<SIGTSTP>, "
9027 "B<SIGTTIN>, or B<SIGTTOU>; only these four signals are stopping signals.  If "
9028 "the tracer sees something else, it can't be a group-stop.  Otherwise, the "
9029 "tracer needs to call B<PTRACE_GETSIGINFO>.  If B<PTRACE_GETSIGINFO> fails "
9030 "with B<EINVAL>, then it is definitely a group-stop.  (Other failure codes "
9031 "are possible, such as B<ESRCH> (\"no such process\") if a B<SIGKILL> killed "
9032 "the tracee.)"
9033 msgstr ""
9034
9035 #. type: Plain text
9036 #: build/C/man2/ptrace.2:1106
9037 msgid ""
9038 "If tracee was attached using B<PTRACE_SEIZE>, group-stop is indicated by "
9039 "B<PTRACE_EVENT_STOP>: I<statusE<gt>E<gt>16 == PTRACE_EVENT_STOP>.  This "
9040 "allows detection of group-stops without requiring an extra "
9041 "B<PTRACE_GETSIGINFO> call."
9042 msgstr ""
9043
9044 #. type: Plain text
9045 #: build/C/man2/ptrace.2:1115
9046 msgid ""
9047 "As of Linux 2.6.38, after the tracer sees the tracee ptrace-stop and until "
9048 "it restarts or kills it, the tracee will not run, and will not send "
9049 "notifications (except B<SIGKILL> death) to the tracer, even if the tracer "
9050 "enters into another B<waitpid>(2)  call."
9051 msgstr ""
9052
9053 #. type: Plain text
9054 #: build/C/man2/ptrace.2:1129
9055 msgid ""
9056 "The kernel behavior described in the previous paragraph causes a problem "
9057 "with transparent handling of stopping signals.  If the tracer restarts the "
9058 "tracee after group-stop, the stopping signal is effectively ignored\\(emthe "
9059 "tracee doesn't remain stopped, it runs.  If the tracer doesn't restart the "
9060 "tracee before entering into the next B<waitpid>(2), future B<SIGCONT> "
9061 "signals will not be reported to the tracer; this would cause the B<SIGCONT> "
9062 "signals to have no effect on the tracee."
9063 msgstr ""
9064
9065 #. type: Plain text
9066 #: build/C/man2/ptrace.2:1140
9067 msgid ""
9068 "Since Linux 3.4, there is a method to overcome this problem: instead of "
9069 "B<PTRACE_CONT>, a B<PTRACE_LISTEN> command can be used to restart a tracee "
9070 "in a way where it does not execute, but waits for a new event which it can "
9071 "report via B<waitpid>(2)  (such as when it is restarted by a B<SIGCONT>)."
9072 msgstr ""
9073
9074 #. type: SS
9075 #: build/C/man2/ptrace.2:1140
9076 #, no-wrap
9077 msgid "PTRACE_EVENT stops"
9078 msgstr ""
9079
9080 #. type: Plain text
9081 #: build/C/man2/ptrace.2:1146
9082 msgid ""
9083 "If the tracer sets B<PTRACE_O_TRACE_*> options, the tracee will enter ptrace-"
9084 "stops called B<PTRACE_EVENT> stops."
9085 msgstr ""
9086
9087 #. type: Plain text
9088 #: build/C/man2/ptrace.2:1160
9089 msgid ""
9090 "B<PTRACE_EVENT> stops are observed by the tracer as B<waitpid>(2)  returning "
9091 "with I<WIFSTOPPED(status)>, and I<WSTOPSIG(status)> returns B<SIGTRAP>.  An "
9092 "additional bit is set in the higher byte of the status word: the value "
9093 "I<statusE<gt>E<gt>8> will be"
9094 msgstr ""
9095
9096 #. type: Plain text
9097 #: build/C/man2/ptrace.2:1162
9098 #, no-wrap
9099 msgid "    (SIGTRAP | PTRACE_EVENT_foo E<lt>E<lt> 8).\n"
9100 msgstr ""
9101
9102 #. type: Plain text
9103 #: build/C/man2/ptrace.2:1164
9104 msgid "The following events exist:"
9105 msgstr ""
9106
9107 #. type: TP
9108 #: build/C/man2/ptrace.2:1164
9109 #, no-wrap
9110 msgid "B<PTRACE_EVENT_VFORK>"
9111 msgstr "B<PTRACE_EVENT_VFORK>"
9112
9113 #. type: Plain text
9114 #: build/C/man2/ptrace.2:1177
9115 msgid ""
9116 "Stop before return from B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> "
9117 "flag.  When the tracee is continued after this stop, it will wait for child "
9118 "to exit/exec before continuing its execution (in other words, the usual "
9119 "behavior on B<vfork>(2))."
9120 msgstr ""
9121
9122 #. type: TP
9123 #: build/C/man2/ptrace.2:1177
9124 #, no-wrap
9125 msgid "B<PTRACE_EVENT_FORK>"
9126 msgstr "B<PTRACE_EVENT_FORK>"
9127
9128 #. type: Plain text
9129 #: build/C/man2/ptrace.2:1185
9130 msgid ""
9131 "Stop before return from B<fork>(2)  or B<clone>(2)  with the exit signal set "
9132 "to B<SIGCHLD>."
9133 msgstr ""
9134
9135 #. type: TP
9136 #: build/C/man2/ptrace.2:1185
9137 #, no-wrap
9138 msgid "B<PTRACE_EVENT_CLONE>"
9139 msgstr "B<PTRACE_EVENT_CLONE>"
9140
9141 #. type: Plain text
9142 #: build/C/man2/ptrace.2:1189
9143 msgid "Stop before return from B<clone>(2)."
9144 msgstr ""
9145
9146 #. type: TP
9147 #: build/C/man2/ptrace.2:1189
9148 #, no-wrap
9149 msgid "B<PTRACE_EVENT_VFORK_DONE>"
9150 msgstr "B<PTRACE_EVENT_VFORK_DONE>"
9151
9152 #. type: Plain text
9153 #: build/C/man2/ptrace.2:1199
9154 msgid ""
9155 "Stop before return from B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> "
9156 "flag, but after the child unblocked this tracee by exiting or execing."
9157 msgstr ""
9158
9159 #. type: Plain text
9160 #: build/C/man2/ptrace.2:1205
9161 msgid ""
9162 "For all four stops described above, the stop occurs in the parent (i.e., the "
9163 "tracee), not in the newly created thread.  B<PTRACE_GETEVENTMSG> can be used "
9164 "to retrieve the new thread's ID."
9165 msgstr ""
9166
9167 #. type: TP
9168 #: build/C/man2/ptrace.2:1205
9169 #, no-wrap
9170 msgid "B<PTRACE_EVENT_EXEC>"
9171 msgstr "B<PTRACE_EVENT_EXEC>"
9172
9173 #. type: Plain text
9174 #: build/C/man2/ptrace.2:1212
9175 msgid ""
9176 "Stop before return from B<execve>(2).  Since Linux 3.0, "
9177 "B<PTRACE_GETEVENTMSG> returns the former thread ID."
9178 msgstr ""
9179
9180 #. type: TP
9181 #: build/C/man2/ptrace.2:1212
9182 #, no-wrap
9183 msgid "B<PTRACE_EVENT_EXIT>"
9184 msgstr "B<PTRACE_EVENT_EXIT>"
9185
9186 #. type: Plain text
9187 #: build/C/man2/ptrace.2:1228
9188 msgid ""
9189 "Stop before exit (including death from B<exit_group>(2)), signal death, or "
9190 "exit caused by B<execve>(2)  in a multithreaded process.  "
9191 "B<PTRACE_GETEVENTMSG> returns the exit status.  Registers can be examined "
9192 "(unlike when \"real\" exit happens).  The tracee is still alive; it needs to "
9193 "be B<PTRACE_CONT>ed or B<PTRACE_DETACH>ed to finish exiting."
9194 msgstr ""
9195
9196 #. type: TP
9197 #: build/C/man2/ptrace.2:1228
9198 #, no-wrap
9199 msgid "B<PTRACE_EVENT_STOP>"
9200 msgstr "B<PTRACE_EVENT_STOP>"
9201
9202 #. type: Plain text
9203 #: build/C/man2/ptrace.2:1240
9204 msgid ""
9205 "Stop induced by B<PTRACE_INTERRUPT> command, or group-stop, or initial "
9206 "ptrace-stop when a new child is attached (only if attached using "
9207 "B<PTRACE_SEIZE>), or B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used."
9208 msgstr ""
9209
9210 #. type: Plain text
9211 #: build/C/man2/ptrace.2:1252
9212 msgid ""
9213 "B<PTRACE_GETSIGINFO> on B<PTRACE_EVENT> stops returns B<SIGTRAP> in "
9214 "I<si_signo>, with I<si_code> set to I<(eventE<lt>E<lt>8)\\ |\\ SIGTRAP>."
9215 msgstr ""
9216
9217 #. type: SS
9218 #: build/C/man2/ptrace.2:1252
9219 #, no-wrap
9220 msgid "Syscall-stops"
9221 msgstr ""
9222
9223 #. type: Plain text
9224 #: build/C/man2/ptrace.2:1265
9225 msgid ""
9226 "If the tracee was restarted by B<PTRACE_SYSCALL>, the tracee enters syscall-"
9227 "enter-stop just prior to entering any system call.  If the tracer restarts "
9228 "the tracee with B<PTRACE_SYSCALL>, the tracee enters syscall-exit-stop when "
9229 "the system call is finished, or if it is interrupted by a signal.  (That is, "
9230 "signal-delivery-stop never happens between syscall-enter-stop and syscall-"
9231 "exit-stop; it happens I<after> syscall-exit-stop.)"
9232 msgstr ""
9233
9234 #. type: Plain text
9235 #: build/C/man2/ptrace.2:1279
9236 msgid ""
9237 "Other possibilities are that the tracee may stop in a B<PTRACE_EVENT> stop, "
9238 "exit (if it entered B<_exit>(2)  or B<exit_group>(2)), be killed by "
9239 "B<SIGKILL>, or die silently (if it is a thread group leader, the B<execve>"
9240 "(2)  happened in another thread, and that thread is not traced by the same "
9241 "tracer; this situation is discussed later)."
9242 msgstr ""
9243
9244 #. type: Plain text
9245 #: build/C/man2/ptrace.2:1294
9246 msgid ""
9247 "Syscall-enter-stop and syscall-exit-stop are observed by the tracer as "
9248 "B<waitpid>(2)  returning with I<WIFSTOPPED(status)> true, and I<WSTOPSIG"
9249 "(status)> giving B<SIGTRAP>.  If the B<PTRACE_O_TRACESYSGOOD> option was set "
9250 "by the tracer, then I<WSTOPSIG(status)> will give the value I<(SIGTRAP\\ |\\ "
9251 "0x80)>."
9252 msgstr ""
9253
9254 #. type: Plain text
9255 #: build/C/man2/ptrace.2:1300
9256 msgid ""
9257 "Syscall-stops can be distinguished from signal-delivery-stop with B<SIGTRAP> "
9258 "by querying B<PTRACE_GETSIGINFO> for the following cases:"
9259 msgstr ""
9260
9261 #. type: TP
9262 #: build/C/man2/ptrace.2:1300
9263 #, no-wrap
9264 msgid "I<si_code> E<lt>= 0"
9265 msgstr ""
9266
9267 #. type: Plain text
9268 #: build/C/man2/ptrace.2:1312
9269 msgid ""
9270 "B<SIGTRAP> was delivered as a result of a user-space action, for example, a "
9271 "system call (B<tgkill>(2), B<kill>(2), B<sigqueue>(3), etc.), expiration of "
9272 "a POSIX timer, change of state on a POSIX message queue, or completion of an "
9273 "asynchronous I/O request."
9274 msgstr ""
9275
9276 #. type: TP
9277 #: build/C/man2/ptrace.2:1312
9278 #, no-wrap
9279 msgid "I<si_code> == SI_KERNEL (0x80)"
9280 msgstr ""
9281
9282 #. type: Plain text
9283 #: build/C/man2/ptrace.2:1316
9284 msgid "B<SIGTRAP> was sent by the kernel."
9285 msgstr ""
9286
9287 #. type: TP
9288 #: build/C/man2/ptrace.2:1316
9289 #, no-wrap
9290 msgid "I<si_code> == SIGTRAP or I<si_code> == (SIGTRAP|0x80)"
9291 msgstr ""
9292
9293 #. type: Plain text
9294 #: build/C/man2/ptrace.2:1319
9295 msgid "This is a syscall-stop."
9296 msgstr ""
9297
9298 #. type: Plain text
9299 #: build/C/man2/ptrace.2:1324
9300 msgid ""
9301 "However, syscall-stops happen very often (twice per system call), and "
9302 "performing B<PTRACE_GETSIGINFO> for every syscall-stop may be somewhat "
9303 "expensive."
9304 msgstr ""
9305
9306 #. type: Plain text
9307 #: build/C/man2/ptrace.2:1347
9308 msgid ""
9309 "Some architectures allow the cases to be distinguished by examining "
9310 "registers.  For example, on x86, I<rax> == -B<ENOSYS> in syscall-enter-"
9311 "stop.  Since B<SIGTRAP> (like any other signal) always happens I<after> "
9312 "syscall-exit-stop, and at this point I<rax> almost never contains -"
9313 "B<ENOSYS>, the B<SIGTRAP> looks like \"syscall-stop which is not syscall-"
9314 "enter-stop\"; in other words, it looks like a \"stray syscall-exit-stop\" "
9315 "and can be detected this way.  But such detection is fragile and is best "
9316 "avoided."
9317 msgstr ""
9318
9319 #. type: Plain text
9320 #: build/C/man2/ptrace.2:1353
9321 msgid ""
9322 "Using the B<PTRACE_O_TRACESYSGOOD> option is the recommended method to "
9323 "distinguish syscall-stops from other kinds of ptrace-stops, since it is "
9324 "reliable and does not incur a performance penalty."
9325 msgstr ""
9326
9327 #. type: Plain text
9328 #: build/C/man2/ptrace.2:1364
9329 msgid ""
9330 "Syscall-enter-stop and syscall-exit-stop are indistinguishable from each "
9331 "other by the tracer.  The tracer needs to keep track of the sequence of "
9332 "ptrace-stops in order to not misinterpret syscall-enter-stop as syscall-exit-"
9333 "stop or vice versa.  The rule is that syscall-enter-stop is always followed "
9334 "by syscall-exit-stop, B<PTRACE_EVENT> stop or the tracee's death; no other "
9335 "kinds of ptrace-stop can occur in between."
9336 msgstr ""
9337
9338 #. type: Plain text
9339 #: build/C/man2/ptrace.2:1369
9340 msgid ""
9341 "If after syscall-enter-stop, the tracer uses a restarting command other than "
9342 "B<PTRACE_SYSCALL>, syscall-exit-stop is not generated."
9343 msgstr ""
9344
9345 #. type: Plain text
9346 #: build/C/man2/ptrace.2:1381
9347 msgid ""
9348 "B<PTRACE_GETSIGINFO> on syscall-stops returns B<SIGTRAP> in I<si_signo>, "
9349 "with I<si_code> set to B<SIGTRAP> or I<(SIGTRAP|0x80)>."
9350 msgstr ""
9351
9352 #. type: SS
9353 #: build/C/man2/ptrace.2:1381
9354 #, no-wrap
9355 msgid "PTRACE_SINGLESTEP, PTRACE_SYSEMU, PTRACE_SYSEMU_SINGLESTEP stops"
9356 msgstr ""
9357
9358 #
9359 #.  FIXME
9360 #.  document stops occurring with PTRACE_SINGLESTEP, PTRACE_SYSEMU,
9361 #.  PTRACE_SYSEMU_SINGLESTEP
9362 #. type: Plain text
9363 #: build/C/man2/ptrace.2:1387
9364 msgid "[Details of these kinds of stops are yet to be documented.]"
9365 msgstr ""
9366
9367 #. type: SS
9368 #: build/C/man2/ptrace.2:1387
9369 #, no-wrap
9370 msgid "Informational and restarting ptrace commands"
9371 msgstr ""
9372
9373 #. type: Plain text
9374 #: build/C/man2/ptrace.2:1397
9375 msgid ""
9376 "Most ptrace commands (all except B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, "
9377 "B<PTRACE_TRACEME>, B<PTRACE_INTERRUPT>, and B<PTRACE_KILL>)  require the "
9378 "tracee to be in a ptrace-stop, otherwise they fail with B<ESRCH>."
9379 msgstr ""
9380
9381 #. type: Plain text
9382 #: build/C/man2/ptrace.2:1402
9383 msgid ""
9384 "When the tracee is in ptrace-stop, the tracer can read and write data to the "
9385 "tracee using informational commands.  These commands leave the tracee in "
9386 "ptrace-stopped state:"
9387 msgstr ""
9388
9389 #. type: Plain text
9390 #: build/C/man2/ptrace.2:1414
9391 #, no-wrap
9392 msgid ""
9393 "    ptrace(PTRACE_PEEKTEXT/PEEKDATA/PEEKUSER, pid, addr, 0);\n"
9394 "    ptrace(PTRACE_POKETEXT/POKEDATA/POKEUSER, pid, addr, long_val);\n"
9395 "    ptrace(PTRACE_GETREGS/GETFPREGS, pid, 0, &struct);\n"
9396 "    ptrace(PTRACE_SETREGS/SETFPREGS, pid, 0, &struct);\n"
9397 "    ptrace(PTRACE_GETREGSET, pid, NT_foo, &iov);\n"
9398 "    ptrace(PTRACE_SETREGSET, pid, NT_foo, &iov);\n"
9399 "    ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo);\n"
9400 "    ptrace(PTRACE_SETSIGINFO, pid, 0, &siginfo);\n"
9401 "    ptrace(PTRACE_GETEVENTMSG, pid, 0, &long_var);\n"
9402 "    ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
9403 msgstr ""
9404
9405 #. type: Plain text
9406 #: build/C/man2/ptrace.2:1426
9407 msgid ""
9408 "Note that some errors are not reported.  For example, setting signal "
9409 "information (I<siginfo>)  may have no effect in some ptrace-stops, yet the "
9410 "call may succeed (return 0 and not set I<errno>); querying "
9411 "B<PTRACE_GETEVENTMSG> may succeed and return some random value if current "
9412 "ptrace-stop is not documented as returning a meaningful event message."
9413 msgstr ""
9414
9415 #. type: Plain text
9416 #: build/C/man2/ptrace.2:1428
9417 msgid "The call"
9418 msgstr ""
9419
9420 #. type: Plain text
9421 #: build/C/man2/ptrace.2:1430
9422 #, no-wrap
9423 msgid "    ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
9424 msgstr ""
9425
9426 #. type: Plain text
9427 #: build/C/man2/ptrace.2:1439
9428 msgid ""
9429 "affects one tracee.  The tracee's current flags are replaced.  Flags are "
9430 "inherited by new tracees created and \"auto-attached\" via active "
9431 "B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, or B<PTRACE_O_TRACECLONE> "
9432 "options."
9433 msgstr ""
9434
9435 #. type: Plain text
9436 #: build/C/man2/ptrace.2:1442
9437 msgid ""
9438 "Another group of commands makes the ptrace-stopped tracee run.  They have "
9439 "the form:"
9440 msgstr ""
9441
9442 #. type: Plain text
9443 #: build/C/man2/ptrace.2:1444
9444 #, no-wrap
9445 msgid "    ptrace(cmd, pid, 0, sig);\n"
9446 msgstr ""
9447
9448 #. type: Plain text
9449 #: build/C/man2/ptrace.2:1465
9450 msgid ""
9451 "where I<cmd> is B<PTRACE_CONT>, B<PTRACE_LISTEN>, B<PTRACE_DETACH>, "
9452 "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>, B<PTRACE_SYSEMU>, or "
9453 "B<PTRACE_SYSEMU_SINGLESTEP>.  If the tracee is in signal-delivery-stop, "
9454 "I<sig> is the signal to be injected (if it is nonzero).  Otherwise, I<sig> "
9455 "may be ignored.  (When restarting a tracee from a ptrace-stop other than "
9456 "signal-delivery-stop, recommended practice is to always pass 0 in I<sig>.)"
9457 msgstr ""
9458
9459 #. type: SS
9460 #: build/C/man2/ptrace.2:1465
9461 #, no-wrap
9462 msgid "Attaching and detaching"
9463 msgstr ""
9464
9465 #. type: Plain text
9466 #: build/C/man2/ptrace.2:1467
9467 msgid "A thread can be attached to the tracer using the call"
9468 msgstr ""
9469
9470 #. type: Plain text
9471 #: build/C/man2/ptrace.2:1469
9472 #, no-wrap
9473 msgid "    ptrace(PTRACE_ATTACH, pid, 0, 0);\n"
9474 msgstr ""
9475
9476 #. type: Plain text
9477 #: build/C/man2/ptrace.2:1471 build/C/man2/ptrace.2:1968
9478 msgid "or"
9479 msgstr ""
9480
9481 #. type: Plain text
9482 #: build/C/man2/ptrace.2:1473
9483 #, no-wrap
9484 msgid "    ptrace(PTRACE_SEIZE, pid, 0, PTRACE_O_flags);\n"
9485 msgstr ""
9486
9487 #
9488 #.  FIXME: Describe how to attach to a thread which is already
9489 #.         group-stopped.
9490 #. type: Plain text
9491 #: build/C/man2/ptrace.2:1498
9492 msgid ""
9493 "B<PTRACE_ATTACH> sends B<SIGSTOP> to this thread.  If the tracer wants this "
9494 "B<SIGSTOP> to have no effect, it needs to suppress it.  Note that if other "
9495 "signals are concurrently sent to this thread during attach, the tracer may "
9496 "see the tracee enter signal-delivery-stop with other signal(s) first! The "
9497 "usual practice is to reinject these signals until B<SIGSTOP> is seen, then "
9498 "suppress B<SIGSTOP> injection.  The design bug here is that a ptrace attach "
9499 "and a concurrently delivered B<SIGSTOP> may race and the concurrent "
9500 "B<SIGSTOP> may be lost."
9501 msgstr ""
9502
9503 #. type: Plain text
9504 #: build/C/man2/ptrace.2:1505
9505 msgid ""
9506 "Since attaching sends B<SIGSTOP> and the tracer usually suppresses it, this "
9507 "may cause a stray B<EINTR> return from the currently executing system call "
9508 "in the tracee, as described in the \"Signal injection and suppression\" "
9509 "section."
9510 msgstr ""
9511
9512 #. type: Plain text
9513 #: build/C/man2/ptrace.2:1517
9514 msgid ""
9515 "Since Linux 3.4, B<PTRACE_SEIZE> can be used instead of B<PTRACE_ATTACH>.  "
9516 "B<PTRACE_SEIZE> does not stop the attached process.  If you need to stop it "
9517 "after attach (or at any other time) without sending it any signals, use "
9518 "B<PTRACE_INTERRUPT> command."
9519 msgstr ""
9520
9521 #. type: Plain text
9522 #: build/C/man2/ptrace.2:1519
9523 msgid "The request"
9524 msgstr ""
9525
9526 #. type: Plain text
9527 #: build/C/man2/ptrace.2:1521
9528 #, no-wrap
9529 msgid "    ptrace(PTRACE_TRACEME, 0, 0, 0);\n"
9530 msgstr ""
9531
9532 #. type: Plain text
9533 #: build/C/man2/ptrace.2:1527
9534 msgid ""
9535 "turns the calling thread into a tracee.  The thread continues to run "
9536 "(doesn't enter ptrace-stop).  A common practice is to follow the "
9537 "B<PTRACE_TRACEME> with"
9538 msgstr ""
9539
9540 #. type: Plain text
9541 #: build/C/man2/ptrace.2:1529
9542 #, no-wrap
9543 msgid "    raise(SIGSTOP);\n"
9544 msgstr ""
9545
9546 #. type: Plain text
9547 #: build/C/man2/ptrace.2:1532
9548 msgid ""
9549 "and allow the parent (which is our tracer now) to observe our signal-"
9550 "delivery-stop."
9551 msgstr ""
9552
9553 #. type: Plain text
9554 #: build/C/man2/ptrace.2:1556
9555 msgid ""
9556 "If the B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, or "
9557 "B<PTRACE_O_TRACECLONE> options are in effect, then children created by, "
9558 "respectively, B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> flag, "
9559 "B<fork>(2)  or B<clone>(2)  with the exit signal set to B<SIGCHLD>, and "
9560 "other kinds of B<clone>(2), are automatically attached to the same tracer "
9561 "which traced their parent.  B<SIGSTOP> is delivered to the children, causing "
9562 "them to enter signal-delivery-stop after they exit the system call which "
9563 "created them."
9564 msgstr ""
9565
9566 #. type: Plain text
9567 #: build/C/man2/ptrace.2:1558
9568 msgid "Detaching of the tracee is performed by:"
9569 msgstr ""
9570
9571 #. type: Plain text
9572 #: build/C/man2/ptrace.2:1560
9573 #, no-wrap
9574 msgid "    ptrace(PTRACE_DETACH, pid, 0, sig);\n"
9575 msgstr ""
9576
9577 #. type: Plain text
9578 #: build/C/man2/ptrace.2:1568
9579 msgid ""
9580 "B<PTRACE_DETACH> is a restarting operation; therefore it requires the tracee "
9581 "to be in ptrace-stop.  If the tracee is in signal-delivery-stop, a signal "
9582 "can be injected.  Otherwise, the I<sig> parameter may be silently ignored."
9583 msgstr ""
9584
9585 #.  FIXME: Describe how to detach from a group-stopped tracee so that it
9586 #.         doesn't run, but continues to wait for SIGCONT.
9587 #. type: Plain text
9588 #: build/C/man2/ptrace.2:1592
9589 msgid ""
9590 "If the tracee is running when the tracer wants to detach it, the usual "
9591 "solution is to send B<SIGSTOP> (using B<tgkill>(2), to make sure it goes to "
9592 "the correct thread), wait for the tracee to stop in signal-delivery-stop for "
9593 "B<SIGSTOP> and then detach it (suppressing B<SIGSTOP> injection).  A design "
9594 "bug is that this can race with concurrent B<SIGSTOP>s.  Another complication "
9595 "is that the tracee may enter other ptrace-stops and needs to be restarted "
9596 "and waited for again, until B<SIGSTOP> is seen.  Yet another complication is "
9597 "to be sure that the tracee is not already ptrace-stopped, because no signal "
9598 "delivery happens while it is\\(emnot even B<SIGSTOP>."
9599 msgstr ""
9600
9601 #. type: Plain text
9602 #: build/C/man2/ptrace.2:1600
9603 msgid ""
9604 "If the tracer dies, all tracees are automatically detached and restarted, "
9605 "unless they were in group-stop.  Handling of restart from group-stop is "
9606 "currently buggy, but the \"as planned\" behavior is to leave tracee stopped "
9607 "and waiting for B<SIGCONT>.  If the tracee is restarted from signal-delivery-"
9608 "stop, the pending signal is injected."
9609 msgstr ""
9610
9611 #. type: SS
9612 #: build/C/man2/ptrace.2:1600
9613 #, no-wrap
9614 msgid "execve(2) under ptrace"
9615 msgstr ""
9616
9617 #
9618 #.  clone(2) CLONE_THREAD says:
9619 #.      If  any  of the threads in a thread group performs an execve(2),
9620 #.      then all threads other than the thread group leader are terminated,
9621 #.      and the new program is executed in the thread group leader.
9622 #.  In kernel 3.1 sources, see fs/exec.c::de_thread()
9623 #. type: Plain text
9624 #: build/C/man2/ptrace.2:1619
9625 msgid ""
9626 "When one thread in a multithreaded process calls B<execve>(2), the kernel "
9627 "destroys all other threads in the process, and resets the thread ID of the "
9628 "execing thread to the thread group ID (process ID).  (Or, to put things "
9629 "another way, when a multithreaded process does an B<execve>(2), at "
9630 "completion of the call, it appears as though the B<execve>(2)  occurred in "
9631 "the thread group leader, regardless of which thread did the B<execve>(2).)  "
9632 "This resetting of the thread ID looks very confusing to tracers:"
9633 msgstr ""
9634
9635 #. type: Plain text
9636 #: build/C/man2/ptrace.2:1629
9637 msgid ""
9638 "All other threads stop in B<PTRACE_EVENT_EXIT> stop, if the "
9639 "B<PTRACE_O_TRACEEXIT> option was turned on.  Then all other threads except "
9640 "the thread group leader report death as if they exited via B<_exit>(2)  with "
9641 "exit code 0."
9642 msgstr ""
9643
9644 #. type: Plain text
9645 #: build/C/man2/ptrace.2:1637
9646 msgid ""
9647 "The execing tracee changes its thread ID while it is in the B<execve>(2).  "
9648 "(Remember, under ptrace, the \"pid\" returned from B<waitpid>(2), or fed "
9649 "into ptrace calls, is the tracee's thread ID.)  That is, the tracee's thread "
9650 "ID is reset to be the same as its process ID, which is the same as the "
9651 "thread group leader's thread ID."
9652 msgstr ""
9653
9654 #. type: Plain text
9655 #: build/C/man2/ptrace.2:1643
9656 msgid ""
9657 "Then a B<PTRACE_EVENT_EXEC> stop happens, if the B<PTRACE_O_TRACEEXEC> "
9658 "option was turned on."
9659 msgstr ""
9660
9661 #. type: Plain text
9662 #: build/C/man2/ptrace.2:1664
9663 msgid ""
9664 "If the thread group leader has reported its B<PTRACE_EVENT_EXIT> stop by "
9665 "this time, it appears to the tracer that the dead thread leader \"reappears "
9666 "from nowhere\".  (Note: the thread group leader does not report death via "
9667 "I<WIFEXITED(status)> until there is at least one other live thread.  This "
9668 "eliminates the possibility that the tracer will see it dying and then "
9669 "reappearing.)  If the thread group leader was still alive, for the tracer "
9670 "this may look as if thread group leader returns from a different system call "
9671 "than it entered, or even \"returned from a system call even though it was "
9672 "not in any system call\".  If the thread group leader was not traced (or was "
9673 "traced by a different tracer), then during B<execve>(2)  it will appear as "
9674 "if it has become a tracee of the tracer of the execing tracee."
9675 msgstr ""
9676
9677 #. type: Plain text
9678 #: build/C/man2/ptrace.2:1667
9679 msgid ""
9680 "All of the above effects are the artifacts of the thread ID change in the "
9681 "tracee."
9682 msgstr ""
9683
9684 #. type: Plain text
9685 #: build/C/man2/ptrace.2:1687
9686 msgid ""
9687 "The B<PTRACE_O_TRACEEXEC> option is the recommended tool for dealing with "
9688 "this situation.  First, it enables B<PTRACE_EVENT_EXEC> stop, which occurs "
9689 "before B<execve>(2)  returns.  In this stop, the tracer can use "
9690 "B<PTRACE_GETEVENTMSG> to retrieve the tracee's former thread ID.  (This "
9691 "feature was introduced in Linux 3.0).  Second, the B<PTRACE_O_TRACEEXEC> "
9692 "option disables legacy B<SIGTRAP> generation on B<execve>(2)."
9693 msgstr ""
9694
9695 #. type: Plain text
9696 #: build/C/man2/ptrace.2:1693
9697 msgid ""
9698 "When the tracer receives B<PTRACE_EVENT_EXEC> stop notification, it is "
9699 "guaranteed that except this tracee and the thread group leader, no other "
9700 "threads from the process are alive."
9701 msgstr ""
9702
9703 #. type: Plain text
9704 #: build/C/man2/ptrace.2:1701
9705 msgid ""
9706 "On receiving the B<PTRACE_EVENT_EXEC> stop notification, the tracer should "
9707 "clean up all its internal data structures describing the threads of this "
9708 "process, and retain only one data structure\\(emone which describes the "
9709 "single still running tracee, with"
9710 msgstr ""
9711
9712 #. type: Plain text
9713 #: build/C/man2/ptrace.2:1703
9714 #, no-wrap
9715 msgid "    thread ID == thread group ID == process ID.\n"
9716 msgstr ""
9717
9718 #. type: Plain text
9719 #: build/C/man2/ptrace.2:1707
9720 msgid "Example: two threads call B<execve>(2)  at the same time:"
9721 msgstr ""
9722
9723 #. type: Plain text
9724 #: build/C/man2/ptrace.2:1718
9725 #, no-wrap
9726 msgid ""
9727 "*** we get syscall-enter-stop in thread 1: **\n"
9728 "PID1 execve(\"/bin/foo\", \"foo\" E<lt>unfinished ...E<gt>\n"
9729 "*** we issue PTRACE_SYSCALL for thread 1 **\n"
9730 "*** we get syscall-enter-stop in thread 2: **\n"
9731 "PID2 execve(\"/bin/bar\", \"bar\" E<lt>unfinished ...E<gt>\n"
9732 "*** we issue PTRACE_SYSCALL for thread 2 **\n"
9733 "*** we get PTRACE_EVENT_EXEC for PID0, we issue PTRACE_SYSCALL **\n"
9734 "*** we get syscall-exit-stop for PID0: **\n"
9735 "PID0 E<lt>... execve resumedE<gt> )             = 0\n"
9736 msgstr ""
9737
9738 #. type: Plain text
9739 #: build/C/man2/ptrace.2:1741
9740 msgid ""
9741 "If the B<PTRACE_O_TRACEEXEC> option is I<not> in effect for the execing "
9742 "tracee, the kernel delivers an extra B<SIGTRAP> to the tracee after B<execve>"
9743 "(2)  returns.  This is an ordinary signal (similar to one which can be "
9744 "generated by I<kill -TRAP>), not a special kind of ptrace-stop.  Employing "
9745 "B<PTRACE_GETSIGINFO> for this signal returns I<si_code> set to 0 "
9746 "(I<SI_USER>).  This signal may be blocked by signal mask, and thus may be "
9747 "delivered (much) later."
9748 msgstr ""
9749
9750 #. type: Plain text
9751 #: build/C/man2/ptrace.2:1760
9752 msgid ""
9753 "Usually, the tracer (for example, B<strace>(1))  would not want to show this "
9754 "extra post-execve B<SIGTRAP> signal to the user, and would suppress its "
9755 "delivery to the tracee (if B<SIGTRAP> is set to B<SIG_DFL>, it is a killing "
9756 "signal).  However, determining I<which> B<SIGTRAP> to suppress is not easy.  "
9757 "Setting the B<PTRACE_O_TRACEEXEC> option and thus suppressing this extra "
9758 "B<SIGTRAP> is the recommended approach."
9759 msgstr ""
9760
9761 #. type: SS
9762 #: build/C/man2/ptrace.2:1760
9763 #, no-wrap
9764 msgid "Real parent"
9765 msgstr ""
9766
9767 #. type: Plain text
9768 #: build/C/man2/ptrace.2:1767
9769 msgid ""
9770 "The ptrace API (ab)uses the standard UNIX parent/child signaling over "
9771 "B<waitpid>(2).  This used to cause the real parent of the process to stop "
9772 "receiving several kinds of B<waitpid>(2)  notifications when the child "
9773 "process is traced by some other process."
9774 msgstr ""
9775
9776 #. type: Plain text
9777 #: build/C/man2/ptrace.2:1770
9778 msgid ""
9779 "Many of these bugs have been fixed, but as of Linux 2.6.38 several still "
9780 "exist; see BUGS below."
9781 msgstr ""
9782
9783 #. type: Plain text
9784 #: build/C/man2/ptrace.2:1772
9785 msgid "As of Linux 2.6.38, the following is believed to work correctly:"
9786 msgstr ""
9787
9788 #. type: Plain text
9789 #: build/C/man2/ptrace.2:1780
9790 msgid ""
9791 "exit/death by signal is reported first to the tracer, then, when the tracer "
9792 "consumes the B<waitpid>(2)  result, to the real parent (to the real parent "
9793 "only when the whole multithreaded process exits).  If the tracer and the "
9794 "real parent are the same process, the report is sent only once."
9795 msgstr ""
9796
9797 #. type: Plain text
9798 #: build/C/man2/ptrace.2:1791
9799 #, fuzzy
9800 #| msgid ""
9801 #| "On success, B<PTRACE_PEEK*> requests return the requested data, while "
9802 #| "other requests return zero.  On error, all requests return -1, and "
9803 #| "I<errno> is set appropriately.  Since the value returned by a successful "
9804 #| "B<PTRACE_PEEK*> request may be -1, the caller must check I<errno> after "
9805 #| "such requests to determine whether or not an error occurred."
9806 msgid ""
9807 "On success, B<PTRACE_PEEK*> requests return the requested data, while other "
9808 "requests return zero.  (On Linux, this is done in the libc wrapper around "
9809 "ptrace system call.  On the system call level, B<PTRACE_PEEK*> requests have "
9810 "a different API: they store the result at the address specified by I<data> "
9811 "parameter, and return value is the error flag.)"
9812 msgstr ""
9813 "成功すると、 B<PTRACE_PEEK*> の場合は要求したデータを返し、 それ以外の場合は "
9814 "0 を返す。 エラーの場合は -1 を返し、 I<errno> が適切に設定される。 "
9815 "B<PTRACE_PEEK*> が成功して返す値も -1 になることがあるため、 そのような要求"
9816 "の場合には、呼び出し元は I<errno> を調べ、エラーか発生したのかどうかを判断し"
9817 "なければならない。"
9818
9819 #. type: Plain text
9820 #: build/C/man2/ptrace.2:1801
9821 #, fuzzy
9822 #| msgid ""
9823 #| "On success, B<PTRACE_PEEK*> requests return the requested data, while "
9824 #| "other requests return zero.  On error, all requests return -1, and "
9825 #| "I<errno> is set appropriately.  Since the value returned by a successful "
9826 #| "B<PTRACE_PEEK*> request may be -1, the caller must check I<errno> after "
9827 #| "such requests to determine whether or not an error occurred."
9828 msgid ""
9829 "On error, all requests return -1, and I<errno> is set appropriately.  Since "
9830 "the value returned by a successful B<PTRACE_PEEK*> request may be -1, the "
9831 "caller must clear I<errno> before the call, and then check it afterward to "
9832 "determine whether or not an error occurred."
9833 msgstr ""
9834 "成功すると、 B<PTRACE_PEEK*> の場合は要求したデータを返し、 それ以外の場合は "
9835 "0 を返す。 エラーの場合は -1 を返し、 I<errno> が適切に設定される。 "
9836 "B<PTRACE_PEEK*> が成功して返す値も -1 になることがあるため、 そのような要求"
9837 "の場合には、呼び出し元は I<errno> を調べ、エラーか発生したのかどうかを判断し"
9838 "なければならない。"
9839
9840 #. type: Plain text
9841 #: build/C/man2/ptrace.2:1805
9842 msgid ""
9843 "(i386 only) There was an error with allocating or freeing a debug register."
9844 msgstr "(i386 のみ) デバッグレジスタの確保または解放でエラーが発生した。"
9845
9846 #. type: Plain text
9847 #: build/C/man2/ptrace.2:1816
9848 #, fuzzy
9849 #| msgid ""
9850 #| "There was an attempt to read from or write to an invalid area in the "
9851 #| "parent's or child's memory, probably because the area wasn't mapped or "
9852 #| "accessible.  Unfortunately, under Linux, different variations of this "
9853 #| "fault will return B<EIO> or B<EFAULT> more or less arbitrarily."
9854 msgid ""
9855 "There was an attempt to read from or write to an invalid area in the "
9856 "tracer's or the tracee's memory, probably because the area wasn't mapped or "
9857 "accessible.  Unfortunately, under Linux, different variations of this fault "
9858 "will return B<EIO> or B<EFAULT> more or less arbitrarily."
9859 msgstr ""
9860 "親プロセスまたは子プロセスのメモリの不正な領域に読み書きしようとした。 おそら"
9861 "くその領域がマッピングされていないか、 その領域へのアクセスが許されていないか"
9862 "である。 不運なことに、Linux ではこのようなエラーの場合、多かれ少なかれ 恣意"
9863 "的に B<EIO> を返したり B<EFAULT> を返したりすることがある。"
9864
9865 #. type: Plain text
9866 #: build/C/man2/ptrace.2:1819
9867 msgid "An attempt was made to set an invalid option."
9868 msgstr "不正なオプションを設定しようとした。"
9869
9870 #. type: Plain text
9871 #: build/C/man2/ptrace.2:1826
9872 #, fuzzy
9873 #| msgid ""
9874 #| "I<request> is invalid, or an attempt was made to read from or write to an "
9875 #| "invalid area in the parent's or child's memory, or there was a word-"
9876 #| "alignment violation, or an invalid signal was specified during a restart "
9877 #| "request."
9878 msgid ""
9879 "I<request> is invalid, or an attempt was made to read from or write to an "
9880 "invalid area in the tracer's or the tracee's memory, or there was a word-"
9881 "alignment violation, or an invalid signal was specified during a restart "
9882 "request."
9883 msgstr ""
9884 "I<request> が不正である。 または、親プロセスまたは子プロセスのメモリの 不正な"
9885 "領域に読み書きしようとした。 または、ワード境界違反があった。 または、実行再"
9886 "開の要求で不正なシグナルを指定した。"
9887
9888 #. type: Plain text
9889 #: build/C/man2/ptrace.2:1839
9890 #, fuzzy
9891 #| msgid ""
9892 #| "The specified process cannot be traced.  This could be because the parent "
9893 #| "has insufficient privileges (the required capability is "
9894 #| "B<CAP_SYS_PTRACE>); unprivileged processes cannot trace processes that "
9895 #| "they cannot send signals to or those running set-user-ID/set-group-ID "
9896 #| "programs, for obvious reasons.  Alternatively, the process may already be "
9897 #| "being traced, or be B<init>(8)  (PID 1)."
9898 msgid ""
9899 "The specified process cannot be traced.  This could be because the tracer "
9900 "has insufficient privileges (the required capability is B<CAP_SYS_PTRACE>); "
9901 "unprivileged processes cannot trace processes that they cannot send signals "
9902 "to or those running set-user-ID/set-group-ID programs, for obvious reasons.  "
9903 "Alternatively, the process may already be being traced, or (on kernels "
9904 "before 2.6.26) be B<init>(8)  (PID 1)."
9905 msgstr ""
9906 "指定したプロセスをトレースすることができない。これは親プロセスが 必要な権限 "
9907 "(必要なケーパビリティは B<CAP_SYS_PTRACE>)  を持っていないことが原因の場合が"
9908 "ある。 分かりやすい理由を挙げるなら、 非特権プロセスはシグナルを送ることがで"
9909 "きないプロセスをトレースできないし、 set-user-ID/set-group-ID プログラムを実"
9910 "行しているプロセスはトレースできない。 または、プロセスはすでにトレース中であ"
9911 "る、 または B<init>(8)  プロセス (PID が 1) である。"
9912
9913 #. type: Plain text
9914 #: build/C/man2/ptrace.2:1844
9915 #, fuzzy
9916 #| msgid ""
9917 #| "The specified process does not exist, or is not currently being traced by "
9918 #| "the caller, or is not stopped (for requests that require that)."
9919 msgid ""
9920 "The specified process does not exist, or is not currently being traced by "
9921 "the caller, or is not stopped (for requests that require a stopped tracee)."
9922 msgstr ""
9923 "指定したプロセスが存在しない。 または、指定したプロセスは呼び出したプロセス"
9924 "が 現在トレース中の子プロセスではない。 または、指定したプロセスが停止してい"
9925 "ない (停止していることが必要な要求の場合)。"
9926
9927 #. type: Plain text
9928 #: build/C/man2/ptrace.2:1846
9929 msgid "SVr4, 4.3BSD."
9930 msgstr "SVr4, 4.3BSD."
9931
9932 #. type: Plain text
9933 #: build/C/man2/ptrace.2:1861
9934 #, fuzzy
9935 #| msgid ""
9936 #| "Although arguments to B<ptrace>()  are interpreted according to the "
9937 #| "prototype given, glibc currently declares B<ptrace>()  as a variadic "
9938 #| "function with only the I<request> argument fixed.  This means that "
9939 #| "unneeded trailing arguments may be omitted, though doing so makes use of "
9940 #| "undocumented B<gcc>(1)  behavior."
9941 msgid ""
9942 "Although arguments to B<ptrace>()  are interpreted according to the "
9943 "prototype given, glibc currently declares B<ptrace>()  as a variadic "
9944 "function with only the I<request> argument fixed.  It is recommended to "
9945 "always supply four arguments, even if the requested operation does not use "
9946 "them, setting unused/ignored arguments to I<0L> or I<(void\\ *)\\ 0>."
9947 msgstr ""
9948 "B<ptrace>()  の引き数は上のようなプロトタイプに基づいて解釈されるが、 glibc "
9949 "では、現在のところ B<ptrace>()  は I<request> 引き数だけが固定の可変長引き数"
9950 "関数として 宣言されている。 これは必要なければ残りの引き数は省略可能であるこ"
9951 "とを意味するが、 それは B<gcc>(1)  の明文化されていない動作を利用していること"
9952 "になる。"
9953
9954 #.  See commit 00cd5c37afd5f431ac186dd131705048c0a11fdb
9955 #. type: Plain text
9956 #: build/C/man2/ptrace.2:1866
9957 #, fuzzy
9958 #| msgid "B<init>(8), the process with PID 1, may not be traced."
9959 msgid ""
9960 "In Linux kernels before 2.6.26, B<init>(8), the process with PID 1, may not "
9961 "be traced."
9962 msgstr "B<init>(8)  すなわち PID が 1 のプロセスはトレースすることができない。"
9963
9964 #.  See http://lkml.org/lkml/2008/5/8/375
9965 #. type: Plain text
9966 #: build/C/man2/ptrace.2:1873
9967 #, fuzzy
9968 #| msgid ""
9969 #| "The layout of the contents of memory and the USER area are quite OS- and "
9970 #| "architecture-specific.  The offset supplied, and the data returned, might "
9971 #| "not entirely match with the definition of I<struct user>."
9972 msgid ""
9973 "The layout of the contents of memory and the USER area are quite operating-"
9974 "system- and architecture-specific.  The offset supplied, and the data "
9975 "returned, might not entirely match with the definition of I<struct user>."
9976 msgstr ""
9977 "メモリや USER 領域の内容や配置は OS ごと、アーキテクチャごとに 非常に依存す"
9978 "る。 オフセットが指定された場合、返されるデータは I<struct user> の定義と完全"
9979 "に一致しないこともありえる。"
9980
9981 #. type: Plain text
9982 #: build/C/man2/ptrace.2:1876
9983 #, fuzzy
9984 #| msgid ""
9985 #| "The size of a \"word\" is determined by the OS variant (e.g., for 32-bit "
9986 #| "Linux it is 32 bits, etc.)."
9987 msgid ""
9988 "The size of a \"word\" is determined by the operating-system variant (e.g., "
9989 "for 32-bit Linux it is 32 bits)."
9990 msgstr ""
9991 "「ワード (word) 」の大きさは OS によって決まる。 (例えば、32 ビットの Linux "
9992 "では 32 ビットである、など。)"
9993
9994 #. type: Plain text
9995 #: build/C/man2/ptrace.2:1884
9996 #, fuzzy
9997 #| msgid ""
9998 #| "This page documents the way the B<ptrace>()  call works currently in "
9999 #| "Linux.  Its behavior differs noticeably on other flavors of UNIX.  In any "
10000 #| "case, use of B<ptrace>()  is highly OS- and architecture-specific."
10001 msgid ""
10002 "This page documents the way the B<ptrace>()  call works currently in Linux.  "
10003 "Its behavior differs noticeably on other flavors of UNIX.  In any case, use "
10004 "of B<ptrace>()  is highly specific to the operating system and architecture."
10005 msgstr ""
10006 "このマニュアルは現在の Linux における B<ptrace>()  コールの動作について記述し"
10007 "ている。他の UNIX では その動作は著しく異なる。 いかなる場合も B<ptrace>()  "
10008 "を使うと OS やアーキテクチャに非常に依存したものになる。"
10009
10010 #. type: Plain text
10011 #: build/C/man2/ptrace.2:1895
10012 #, fuzzy
10013 #| msgid ""
10014 #| "On hosts with 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared with a "
10015 #| "different value than the one for 2.4.  This leads to applications "
10016 #| "compiled with such headers failing when run on 2.4 kernels.  This can be "
10017 #| "worked around by redefining B<PTRACE_SETOPTIONS> to "
10018 #| "B<PTRACE_OLDSETOPTIONS>, if that is defined."
10019 msgid ""
10020 "On hosts with 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared with a "
10021 "different value than the one for 2.4.  This leads to applications compiled "
10022 "with 2.6 kernel headers failing when run on 2.4 kernels.  This can be worked "
10023 "around by redefining B<PTRACE_SETOPTIONS> to B<PTRACE_OLDSETOPTIONS>, if "
10024 "that is defined."
10025 msgstr ""
10026 "カーネル 2.6 のヘッダがインストールされたホストでは、 B<PTRACE_SETOPTIONS> は"
10027 "カーネル 2.4 のヘッダとは異なる値で宣言される。 このため、カーネル 2.6 のヘッ"
10028 "ダでコンパイルされたアプリケーションは カーネル 2.4 では正しく動作しない。 こ"
10029 "の問題は、 B<PTRACE_SETOPTIONS> が定義されていた際は、 B<PTRACE_SETOPTIONS> "
10030 "を B<PTRACE_OLDSETOPTIONS> に定義し直すことで対処できる。"
10031
10032 #. type: Plain text
10033 #: build/C/man2/ptrace.2:1898
10034 msgid ""
10035 "Group-stop notifications are sent to the tracer, but not to real parent.  "
10036 "Last confirmed on 2.6.38.6."
10037 msgstr ""
10038
10039 #.  Note from Denys Vlasenko:
10040 #.      Here "exits" means any kind of death - _exit, exit_group,
10041 #.      signal death. Signal death and exit_group cases are trivial,
10042 #.      though: since signal death and exit_group kill all other threads
10043 #.      too, "until all other threads exit" thing happens rather soon
10044 #.      in these cases. Therefore, only _exit presents observably
10045 #.      puzzling behavior to ptrace users: thread leader _exit's,
10046 #.      but WIFEXITED isn't reported! We are trying to explain here
10047 #.      why it is so.
10048 #.   FIXME: ^^^ need to test/verify this scenario
10049 #. type: Plain text
10050 #: build/C/man2/ptrace.2:1929
10051 msgid ""
10052 "If a thread group leader is traced and exits by calling B<_exit>(2), a "
10053 "B<PTRACE_EVENT_EXIT> stop will happen for it (if requested), but the "
10054 "subsequent B<WIFEXITED> notification will not be delivered until all other "
10055 "threads exit.  As explained above, if one of other threads calls B<execve>"
10056 "(2), the death of the thread group leader will I<never> be reported.  If the "
10057 "execed thread is not traced by this tracer, the tracer will never know that "
10058 "B<execve>(2)  happened.  One possible workaround is to B<PTRACE_DETACH> the "
10059 "thread group leader instead of restarting it in this case.  Last confirmed "
10060 "on 2.6.38.6."
10061 msgstr ""
10062
10063 #. type: Plain text
10064 #: build/C/man2/ptrace.2:1939
10065 msgid ""
10066 "A B<SIGKILL> signal may still cause a B<PTRACE_EVENT_EXIT> stop before "
10067 "actual signal death.  This may be changed in the future; B<SIGKILL> is meant "
10068 "to always immediately kill tasks even under ptrace.  Last confirmed on "
10069 "2.6.38.6."
10070 msgstr ""
10071
10072 #. type: Plain text
10073 #: build/C/man2/ptrace.2:1957
10074 msgid ""
10075 "Some system calls return with B<EINTR> if a signal was sent to a tracee, but "
10076 "delivery was suppressed by the tracer.  (This is very typical operation: it "
10077 "is usually done by debuggers on every attach, in order to not introduce a "
10078 "bogus B<SIGSTOP>).  As of Linux 3.2.9, the following system calls are "
10079 "affected (this list is likely incomplete): B<epoll_wait>(2), and B<read>(2)  "
10080 "from an B<inotify>(7)  file descriptor.  The usual symptom of this bug is "
10081 "that when you attach to a quiescent process with the command"
10082 msgstr ""
10083
10084 #. type: Plain text
10085 #: build/C/man2/ptrace.2:1959
10086 #, no-wrap
10087 msgid "    strace -p E<lt>process-IDE<gt>\n"
10088 msgstr ""
10089
10090 #. type: Plain text
10091 #: build/C/man2/ptrace.2:1962
10092 msgid "then, instead of the usual and expected one-line output such as"
10093 msgstr ""
10094
10095 #. type: Plain text
10096 #: build/C/man2/ptrace.2:1965
10097 #, no-wrap
10098 msgid "    restart_syscall(E<lt>... resuming interrupted call ...E<gt>_\n"
10099 msgstr ""
10100
10101 #. type: Plain text
10102 #: build/C/man2/ptrace.2:1971
10103 #, no-wrap
10104 msgid "    select(6, [5], NULL, [5], NULL_\n"
10105 msgstr ""
10106
10107 #. type: Plain text
10108 #: build/C/man2/ptrace.2:1975
10109 msgid ""
10110 "('_' denotes the cursor position), you observe more than one line.  For "
10111 "example:"
10112 msgstr ""
10113
10114 #. type: Plain text
10115 #: build/C/man2/ptrace.2:1979
10116 #, no-wrap
10117 msgid ""
10118 "    clock_gettime(CLOCK_MONOTONIC, {15370, 690928118}) = 0\n"
10119 "    epoll_wait(4,_\n"
10120 msgstr ""
10121
10122 #. type: Plain text
10123 #: build/C/man2/ptrace.2:2000
10124 msgid ""
10125 "What is not visible here is that the process was blocked in B<epoll_wait>"
10126 "(2)  before B<strace>(1)  has attached to it.  Attaching caused B<epoll_wait>"
10127 "(2)  to return to user space with the error B<EINTR>.  In this particular "
10128 "case, the program reacted to B<EINTR> by checking the current time, and then "
10129 "executing B<epoll_wait>(2)  again.  (Programs which do not expect such "
10130 "\"stray\" B<EINTR> errors may behave in an unintended way upon an B<strace>"
10131 "(1)  attach.)"
10132 msgstr ""
10133
10134 #. type: Plain text
10135 #: build/C/man2/ptrace.2:2014
10136 msgid ""
10137 "B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2), B<gettid>"
10138 "(2), B<sigaction>(2), B<tgkill>(2), B<vfork>(2), B<waitpid>(2), B<exec>(3), "
10139 "B<capabilities>(7), B<signal>(7)"
10140 msgstr ""
10141 "B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2),\n"
10142 "B<gettid>(2), B<sigaction>(2), B<tgkill>(2), B<vfork>(2),\n"
10143 "B<waitpid>(2), B<exec>(3), B<capabilities>(7), B<signal>(7)"
10144
10145 #. type: TH
10146 #: build/C/man2/quotactl.2:27
10147 #, no-wrap
10148 msgid "QUOTACTL"
10149 msgstr "QUOTACTL"
10150
10151 #. type: TH
10152 #: build/C/man2/quotactl.2:27
10153 #, no-wrap
10154 msgid "2010-06-16"
10155 msgstr "2010-06-16"
10156
10157 #. type: Plain text
10158 #: build/C/man2/quotactl.2:30
10159 msgid "quotactl - manipulate disk quotas"
10160 msgstr "quotactl - ディスク quota を操作する"
10161
10162 #. type: Plain text
10163 #: build/C/man2/quotactl.2:34
10164 #, no-wrap
10165 msgid ""
10166 "B<#include E<lt>sys/quota.hE<gt>>\n"
10167 "B<#include E<lt>xfs/xqm.hE<gt>>\n"
10168 msgstr ""
10169 "B<#include E<lt>sys/quota.hE<gt>>\n"
10170 "B<#include E<lt>xfs/xqm.hE<gt>>\n"
10171
10172 #. type: Plain text
10173 #: build/C/man2/quotactl.2:37
10174 #, no-wrap
10175 msgid "B<int quotactl(int >I<cmd>B<, const char *>I<special>B<, int >I<id>B<, caddr_t >I<addr>B<);>\n"
10176 msgstr "B<int quotactl(int >I<cmd>B<, const char *>I<special>B<, int >I<id>B<, caddr_t >I<addr>B<);>\n"
10177
10178 #. type: Plain text
10179 #: build/C/man2/quotactl.2:49
10180 #, fuzzy
10181 #| msgid ""
10182 #| "The quota system defines for each user and/or group a soft limit and a "
10183 #| "hard limit bounding the amount of disk space that can be used on a given "
10184 #| "file system.  The hard limit cannot be crossed.  The soft limit can be "
10185 #| "crossed, but warnings will ensue.  Moreover, the user cannot be above the "
10186 #| "soft limit for more than one week (by default)  at a time: after this "
10187 #| "week the soft limit counts as hard limit."
10188 msgid ""
10189 "The quota system can be used to set per-user and per-group limits on the "
10190 "amount of disk space used on a filesystem.  For each user and/or group, a "
10191 "soft limit and a hard limit can be set for each filesystem.  The hard limit "
10192 "can't be exceeded.  The soft limit can be exceeded, but warnings will "
10193 "ensue.  Moreover, the user can't exceed the soft limit for more than one "
10194 "week (by default) at a time; after this time, the soft limit counts as a "
10195 "hard limit."
10196 msgstr ""
10197 "quota システムは、各々のユーザ及び/またはグループに対して、 ソフト・リミット"
10198 "及びハード・リミットを定める。これはあるファイル・システムで 使用する事が出来"
10199 "るディスク容量を制限する。 ハード・リミットは超過することは出来ない。 ソフ"
10200 "ト・リミットは超過する事が出来るが、警告が発せられる。 更に、(デフォルトで"
10201 "は) 一週間以上ソフト・リミットを超過したままに しておく事はできない: 一週間経"
10202 "過した後はハード・リミットを超過したと みなされる。"
10203
10204 #. type: Plain text
10205 #: build/C/man2/quotactl.2:74
10206 #, fuzzy
10207 #| msgid ""
10208 #| "The B<quotactl>()  system call manipulates these quota.  Its first "
10209 #| "argument is of the form B<QCMD(>I<subcmd>B<,>I<type>B<)> where I<type> is "
10210 #| "either B<USRQUOTA> or B<GRPQUOTA> (for user quota and group quota, "
10211 #| "respectively), and I<subcmd> is described below."
10212 msgid ""
10213 "The B<quotactl>()  call manipulates disk quotas.  The I<cmd> argument "
10214 "indicates a command to be applied to the user or group ID specified in "
10215 "I<id>.  To initialize the I<cmd> argument, use the I<QCMD(subcmd, type)> "
10216 "macro.  The I<type> value is either B<USRQUOTA>, for user quotas, or "
10217 "B<GRPQUOTA>, for group quotas.  The I<subcmd> value is described below."
10218 msgstr ""
10219 "B<quotactl>()  システムコールはこれらの quota に対する操作を行なう。 最初の引"
10220 "き数は B<QCMD(>I<subcmd>B<,>I<type>B<)> という形式である。 I<type> には、ユー"
10221 "ザー quota については B<USRQUOTA> を、グループ quota については B<GRPQUOTA> "
10222 "を指定する。 I<subcmd> は以下で説明する。"
10223
10224 #. type: Plain text
10225 #: build/C/man2/quotactl.2:79
10226 msgid ""
10227 "The I<special> argument is a pointer to a null-terminated string containing "
10228 "the pathname of the (mounted) block special device for the filesystem being "
10229 "manipulated."
10230 msgstr ""
10231
10232 #. type: Plain text
10233 #: build/C/man2/quotactl.2:87
10234 msgid ""
10235 "The I<addr> argument is the address of an optional, command-specific, data "
10236 "structure that is copied in or out of the system.  The interpretation of "
10237 "I<addr> is given with each command below."
10238 msgstr ""
10239
10240 #. type: Plain text
10241 #: build/C/man2/quotactl.2:91
10242 msgid "The I<subcmd> value is one of the following:"
10243 msgstr "I<subcmd> の値は以下のいずれかである"
10244
10245 #. type: TP
10246 #: build/C/man2/quotactl.2:91
10247 #, no-wrap
10248 msgid "B<Q_QUOTAON>"
10249 msgstr "B<Q_QUOTAON>"
10250
10251 #. type: Plain text
10252 #: build/C/man2/quotactl.2:98
10253 msgid ""
10254 "Turn on quotas for a filesystem.  The I<id> argument is the identification "
10255 "number of the quota format to be used.  Currently, there are three supported "
10256 "quota formats:"
10257 msgstr ""
10258
10259 #. type: TP
10260 #: build/C/man2/quotactl.2:99
10261 #, no-wrap
10262 msgid "B<QFMT_VFS_OLD>"
10263 msgstr ""
10264
10265 #. type: Plain text
10266 #: build/C/man2/quotactl.2:102
10267 msgid "The original quota format."
10268 msgstr ""
10269
10270 #. type: TP
10271 #: build/C/man2/quotactl.2:102
10272 #, no-wrap
10273 msgid "B<QFMT_VFS_V0>"
10274 msgstr ""
10275
10276 #. type: Plain text
10277 #: build/C/man2/quotactl.2:106
10278 msgid ""
10279 "The standard VFS v0 quota format, which can handle 32-bit UIDs and GIDs and "
10280 "quota limits up to 2^42 bytes and 2^32 inodes."
10281 msgstr ""
10282
10283 #. type: TP
10284 #: build/C/man2/quotactl.2:106
10285 #, no-wrap
10286 msgid "B<QFMT_VFS_V1>"
10287 msgstr ""
10288
10289 #. type: Plain text
10290 #: build/C/man2/quotactl.2:110
10291 msgid ""
10292 "A quota format that can handle 32-bit UIDs and GIDs and quota limits of 2^64 "
10293 "bytes and 2^64 inodes."
10294 msgstr ""
10295
10296 #. type: Plain text
10297 #: build/C/man2/quotactl.2:121
10298 msgid ""
10299 "The I<addr> argument points to the pathname of a file containing the quotas "
10300 "for the filesystem.  The quota file must exist; it is normally created with "
10301 "the B<quotacheck>(8)  program.  This operation requires privilege "
10302 "(B<CAP_SYS_ADMIN>)."
10303 msgstr ""
10304
10305 #. type: TP
10306 #: build/C/man2/quotactl.2:121
10307 #, no-wrap
10308 msgid "B<Q_QUOTAOFF>"
10309 msgstr "B<Q_QUOTAOFF>"
10310
10311 #. type: Plain text
10312 #: build/C/man2/quotactl.2:131
10313 msgid ""
10314 "Turn off quotas for a filesystem.  The I<addr> and I<id> arguments are "
10315 "ignored.  This operation requires privilege (B<CAP_SYS_ADMIN>)."
10316 msgstr ""
10317
10318 #. type: TP
10319 #: build/C/man2/quotactl.2:131
10320 #, no-wrap
10321 msgid "B<Q_GETQUOTA>"
10322 msgstr "B<Q_GETQUOTA>"
10323
10324 #. type: Plain text
10325 #: build/C/man2/quotactl.2:142
10326 #, fuzzy
10327 #| msgid ""
10328 #| "Get limits and current usage of disk space.  The I<addr> argument is a "
10329 #| "pointer to a dqblk structure (defined in I<E<lt>sys/quota.hE<gt>>)."
10330 msgid ""
10331 "Get disk quota limits and current usage for user or group I<id>.  The "
10332 "I<addr> argument is a pointer to a I<dqblk> structure defined in I<E<lt>sys/"
10333 "quota.hE<gt>> as follows:"
10334 msgstr ""
10335 "ディスク使用量の制限値と現在の使用量を得る。 I<addr> 引き数は (I<E<lt>sys/"
10336 "quota.hE<gt>> で定義された) dqblk 構造体を指すポインタである。"
10337
10338 #. type: Plain text
10339 #: build/C/man2/quotactl.2:147 build/C/man2/quotactl.2:234
10340 #, no-wrap
10341 msgid ""
10342 "/* uint64_t is an unsigned 64-bit integer;\n"
10343 "   uint32_t is an unsigned 32-bit integer */\n"
10344 msgstr ""
10345
10346 #. type: Plain text
10347 #: build/C/man2/quotactl.2:167
10348 #, no-wrap
10349 msgid ""
10350 "struct dqblk {          /* Definition since Linux 2.4.22 */\n"
10351 "    uint64_t dqb_bhardlimit;   /* absolute limit on disk\n"
10352 "                                  quota blocks alloc */\n"
10353 "    uint64_t dqb_bsoftlimit;   /* preferred limit on\n"
10354 "                                  disk quota blocks */\n"
10355 "    uint64_t dqb_curspace;     /* current quota block\n"
10356 "                                  count */\n"
10357 "    uint64_t dqb_ihardlimit;   /* maximum number of\n"
10358 "                                  allocated inodes */\n"
10359 "    uint64_t dqb_isoftlimit;   /* preferred inode limit */\n"
10360 "    uint64_t dqb_curinodes;    /* current number of\n"
10361 "                                  allocated inodes */\n"
10362 "    uint64_t dqb_btime;        /* time limit for excessive\n"
10363 "                                  disk use */\n"
10364 "    uint64_t dqb_itime;        /* time limit for excessive\n"
10365 "                                  files */\n"
10366 "    uint32_t dqb_valid;        /* bit mask of QIF_*\n"
10367 "                                  constants */\n"
10368 "};\n"
10369 msgstr ""
10370
10371 #. type: Plain text
10372 #: build/C/man2/quotactl.2:170
10373 #, no-wrap
10374 msgid ""
10375 "/* Flags in dqb_valid that indicate which fields in\n"
10376 "   dqblk structure are valid. */\n"
10377 msgstr ""
10378
10379 #. type: Plain text
10380 #: build/C/man2/quotactl.2:181
10381 #, no-wrap
10382 msgid ""
10383 "#define QIF_BLIMITS   1\n"
10384 "#define QIF_SPACE     2\n"
10385 "#define QIF_ILIMITS   4\n"
10386 "#define QIF_INODES    8\n"
10387 "#define QIF_BTIME     16\n"
10388 "#define QIF_ITIME     32\n"
10389 "#define QIF_LIMITS    (QIF_BLIMITS | QIF_ILIMITS)\n"
10390 "#define QIF_USAGE     (QIF_SPACE | QIF_INODES)\n"
10391 "#define QIF_TIMES     (QIF_BTIME | QIF_ITIME)\n"
10392 "#define QIF_ALL       (QIF_LIMITS | QIF_USAGE | QIF_TIMES)\n"
10393 msgstr ""
10394
10395 #. type: Plain text
10396 #: build/C/man2/quotactl.2:198
10397 msgid ""
10398 "The I<dqb_valid> field is a bit mask that is set to indicate the entries in "
10399 "the I<dqblk> structure that are valid.  Currently, the kernel fills in all "
10400 "entries of the I<dqblk> structure and marks them as valid in the "
10401 "I<dqb_valid> field.  Unprivileged users may retrieve only their own quotas; "
10402 "a privileged user (B<CAP_SYS_ADMIN>)  can retrieve the quotas of any user."
10403 msgstr ""
10404
10405 #. type: TP
10406 #: build/C/man2/quotactl.2:198
10407 #, no-wrap
10408 msgid "B<Q_SETQUOTA>"
10409 msgstr "B<Q_SETQUOTA>"
10410
10411 #. type: Plain text
10412 #: build/C/man2/quotactl.2:218
10413 msgid ""
10414 "Set quota information for user or group I<id>, using the information "
10415 "supplied in the I<dqblk> structure pointed to by I<addr>.  The I<dqb_valid> "
10416 "field of the I<dqblk> structure indicates which entries in the structure "
10417 "have been set by the caller.  This operation supersedes the B<Q_SETQLIM> and "
10418 "B<Q_SETUSE> operations in the previous quota interfaces.  This operation "
10419 "requires privilege (B<CAP_SYS_ADMIN>)."
10420 msgstr ""
10421
10422 #. type: TP
10423 #: build/C/man2/quotactl.2:218
10424 #, no-wrap
10425 msgid "B<Q_GETINFO>"
10426 msgstr "B<Q_GETINFO>"
10427
10428 #. type: Plain text
10429 #: build/C/man2/quotactl.2:229
10430 #, fuzzy
10431 #| msgid ""
10432 #| "Get limits and current usage of disk space.  The I<addr> argument is a "
10433 #| "pointer to a dqblk structure (defined in I<E<lt>sys/quota.hE<gt>>)."
10434 msgid ""
10435 "Get information (like grace times) about quotafile.  The I<addr> argument "
10436 "should be a pointer to a I<dqinfo> structure.  This structure is defined in "
10437 "I<E<lt>sys/quota.hE<gt>> as follows:"
10438 msgstr ""
10439 "ディスク使用量の制限値と現在の使用量を得る。 I<addr> 引き数は (I<E<lt>sys/"
10440 "quota.hE<gt>> で定義された) dqblk 構造体を指すポインタである。"
10441
10442 #. type: Plain text
10443 #: build/C/man2/quotactl.2:238
10444 #, no-wrap
10445 msgid ""
10446 "struct dqinfo {         /* Defined since kernel 2.4.22 */\n"
10447 "    uint64_t dqi_bgrace;    /* Time before block soft limit\n"
10448 "                               becomes hard limit */\n"
10449 msgstr ""
10450
10451 #. type: Plain text
10452 #: build/C/man2/quotactl.2:245
10453 #, no-wrap
10454 msgid ""
10455 "    uint64_t dqi_igrace;    /* Time before inode soft limit\n"
10456 "                               becomes hard limit */\n"
10457 "    uint32_t dqi_flags;     /* Flags for quotafile\n"
10458 "                               (DQF_*) */\n"
10459 "    uint32_t dqi_valid;\n"
10460 "};\n"
10461 msgstr ""
10462
10463 #. type: Plain text
10464 #: build/C/man2/quotactl.2:247
10465 #, no-wrap
10466 msgid "/* Bits for dqi_flags */\n"
10467 msgstr ""
10468
10469 #. type: Plain text
10470 #: build/C/man2/quotactl.2:249
10471 #, no-wrap
10472 msgid "/* Quota format QFMT_VFS_OLD */\n"
10473 msgstr ""
10474
10475 #. type: Plain text
10476 #: build/C/man2/quotactl.2:251
10477 #, no-wrap
10478 msgid "#define V1_DQF_RSQUASH\t1   /* Root squash enabled */\n"
10479 msgstr ""
10480
10481 #. type: Plain text
10482 #: build/C/man2/quotactl.2:253
10483 #, no-wrap
10484 msgid "/* Other quota formats have no dqi_flags bits defined */\n"
10485 msgstr ""
10486
10487 #. type: Plain text
10488 #: build/C/man2/quotactl.2:256
10489 #, no-wrap
10490 msgid ""
10491 "/* Flags in dqi_valid that indicate which fields in\n"
10492 "   dqinfo structure are valid. */\n"
10493 msgstr ""
10494
10495 #. type: Plain text
10496 #: build/C/man2/quotactl.2:261
10497 #, no-wrap
10498 msgid ""
10499 "# define IIF_BGRACE\t1\n"
10500 "# define IIF_IGRACE\t2\n"
10501 "# define IIF_FLAGS\t4\n"
10502 "# define IIF_ALL\t(IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)\n"
10503 msgstr ""
10504
10505 #. type: Plain text
10506 #: build/C/man2/quotactl.2:277
10507 msgid ""
10508 "The I<dqi_valid> field in the I<dqinfo> structure indicates the entries in "
10509 "the structure that are valid.  Currently, the kernel fills in all entries of "
10510 "the I<dqinfo> structure and marks them all as valid in the I<dqi_valid> "
10511 "field.  The I<id> argument is ignored."
10512 msgstr ""
10513
10514 #. type: TP
10515 #: build/C/man2/quotactl.2:277
10516 #, no-wrap
10517 msgid "B<Q_SETINFO>"
10518 msgstr "B<Q_SETINFO>"
10519
10520 #. type: Plain text
10521 #: build/C/man2/quotactl.2:301
10522 msgid ""
10523 "Set information about quotafile.  The I<addr> argument should be a pointer "
10524 "to a I<dqinfo> structure.  The I<dqi_valid> field of the I<dqinfo> structure "
10525 "indicates the entries in the structure that have been set by the caller.  "
10526 "This operation supersedes the B<Q_SETGRACE> and B<Q_SETFLAGS> operations in "
10527 "the previous quota interfaces.  The I<id> argument is ignored.  This "
10528 "operation requires privilege (B<CAP_SYS_ADMIN>)."
10529 msgstr ""
10530
10531 #. type: TP
10532 #: build/C/man2/quotactl.2:301
10533 #, no-wrap
10534 msgid "B<Q_GETFMT>"
10535 msgstr "B<Q_GETFMT>"
10536
10537 #. type: Plain text
10538 #: build/C/man2/quotactl.2:308
10539 msgid ""
10540 "Get quota format used on the specified filesystem.  The I<addr> argument "
10541 "should be a pointer to a 4-byte buffer where the format number will be "
10542 "stored."
10543 msgstr ""
10544
10545 #. type: TP
10546 #: build/C/man2/quotactl.2:308
10547 #, no-wrap
10548 msgid "B<Q_SYNC>"
10549 msgstr "B<Q_SYNC>"
10550
10551 #. type: Plain text
10552 #: build/C/man2/quotactl.2:319
10553 msgid ""
10554 "Update the on-disk copy of quota usages for a filesystem.  If I<special> is "
10555 "NULL, then all filesystems with active quotas are sync'ed.  The I<addr> and "
10556 "I<id> arguments are ignored."
10557 msgstr ""
10558
10559 #. type: TP
10560 #: build/C/man2/quotactl.2:319
10561 #, no-wrap
10562 msgid "B<Q_GETSTATS>"
10563 msgstr "B<Q_GETSTATS>"
10564
10565 #.  Q_GETSTATS was removed in kernel 2.4.22.
10566 #. type: Plain text
10567 #: build/C/man2/quotactl.2:339
10568 msgid ""
10569 "Get statistics and other generic information about the quota subsystem.  The "
10570 "I<addr> argument should be a pointer to a I<dqstats> structure in which data "
10571 "should be stored.  This structure is defined in I<E<lt>sys/quota.hE<gt>.> "
10572 "The I<special> and I<id> arguments are ignored.  This operation is obsolete "
10573 "and not supported by recent kernels.  Files in I</proc/sys/fs/quota/> carry "
10574 "the information instead."
10575 msgstr ""
10576
10577 #. type: Plain text
10578 #: build/C/man2/quotactl.2:342
10579 msgid ""
10580 "For XFS filesystems making use of the XFS Quota Manager (XQM), the above "
10581 "commands are bypassed and the following commands are used:"
10582 msgstr ""
10583
10584 #. type: TP
10585 #: build/C/man2/quotactl.2:342
10586 #, no-wrap
10587 msgid "B<Q_XQUOTAON>"
10588 msgstr "B<Q_XQUOTAON>"
10589
10590 #. type: Plain text
10591 #: build/C/man2/quotactl.2:363
10592 msgid ""
10593 "Turn on quotas for an XFS filesystem.  XFS provides the ability to turn on/"
10594 "off quota limit enforcement with quota accounting.  Therefore, XFS expects "
10595 "I<addr> to be a pointer to an I<unsigned int> that contains either the flags "
10596 "B<XFS_QUOTA_UDQ_ACCT> and/or B<XFS_QUOTA_UDQ_ENFD> (for user quota), or "
10597 "B<XFS_QUOTA_GDQ_ACCT> and/or B<XFS_QUOTA_GDQ_ENFD> (for group quota), as "
10598 "defined in I<E<lt>xfs/xqm.hE<gt>>.  This operation requires privilege "
10599 "(B<CAP_SYS_ADMIN>)."
10600 msgstr ""
10601
10602 #. type: TP
10603 #: build/C/man2/quotactl.2:363
10604 #, no-wrap
10605 msgid "B<Q_XQUOTAOFF>"
10606 msgstr "B<Q_XQUOTAOFF>"
10607
10608 #. type: Plain text
10609 #: build/C/man2/quotactl.2:374
10610 msgid ""
10611 "Turn off quotas for an XFS filesystem.  As with B<Q_QUOTAON>, XFS "
10612 "filesystems expect a pointer to an I<unsigned int> that specifies whether "
10613 "quota accounting and/or limit enforcement need to be turned off.  This "
10614 "operation requires privilege (B<CAP_SYS_ADMIN>)."
10615 msgstr ""
10616
10617 #. type: TP
10618 #: build/C/man2/quotactl.2:374
10619 #, no-wrap
10620 msgid "B<Q_XGETQUOTA>"
10621 msgstr "B<Q_XGETQUOTA>"
10622
10623 #. type: Plain text
10624 #: build/C/man2/quotactl.2:388
10625 msgid ""
10626 "Get disk quota limits and current usage for user I<id>.  The I<addr> "
10627 "argument is a pointer to an I<fs_disk_quota> structure (defined in "
10628 "I<E<lt>xfs/xqm.hE<gt>>).  Unprivileged users may retrieve only their own "
10629 "quotas; a privileged user (B<CAP_SYS_ADMIN>)  may retrieve the quotas of any "
10630 "user."
10631 msgstr ""
10632
10633 #. type: TP
10634 #: build/C/man2/quotactl.2:388
10635 #, no-wrap
10636 msgid "B<Q_XSETQLIM>"
10637 msgstr "B<Q_XSETQLIM>"
10638
10639 #. type: Plain text
10640 #: build/C/man2/quotactl.2:400
10641 msgid ""
10642 "Set disk quota limits for user I<id>.  The I<addr> argument is a pointer to "
10643 "an I<fs_disk_quota> structure (defined in I<E<lt>xfs/xqm.hE<gt>>).  This "
10644 "operation requires privilege (B<CAP_SYS_ADMIN>)."
10645 msgstr ""
10646
10647 #. type: TP
10648 #: build/C/man2/quotactl.2:400
10649 #, no-wrap
10650 msgid "B<Q_XGETQSTAT>"
10651 msgstr "B<Q_XGETQSTAT>"
10652
10653 #. type: Plain text
10654 #: build/C/man2/quotactl.2:408
10655 msgid ""
10656 "Returns an I<fs_quota_stat> structure containing XFS filesystem specific "
10657 "quota information.  This is useful for finding out how much space is used to "
10658 "store quota information, and also to get quotaon/off status of a given local "
10659 "XFS filesystem."
10660 msgstr ""
10661
10662 #. type: TP
10663 #: build/C/man2/quotactl.2:408
10664 #, no-wrap
10665 msgid "B<Q_XQUOTARM>"
10666 msgstr "B<Q_XQUOTARM>"
10667
10668 #. type: Plain text
10669 #: build/C/man2/quotactl.2:412
10670 msgid ""
10671 "Free the disk space taken by disk quotas.  Quotas must have already been "
10672 "turned off."
10673 msgstr ""
10674
10675 #. type: Plain text
10676 #: build/C/man2/quotactl.2:419
10677 msgid ""
10678 "There is no command equivalent to B<Q_SYNC> for XFS since B<sync>(1)  writes "
10679 "quota information to disk (in addition to the other filesystem metadata that "
10680 "it writes out)."
10681 msgstr ""
10682
10683 #. type: Plain text
10684 #: build/C/man2/quotactl.2:427
10685 msgid ""
10686 "On success, B<quotactl>()  returns 0; on error -1 is returned, and I<errno> "
10687 "is set to indicate the error."
10688 msgstr ""
10689 "成功すると、 B<quotactl>()  は 0 を返す。\n"
10690 "エラーの場合、-1 を返し、 I<errno> をエラーを示す値に設定する。"
10691
10692 #. type: Plain text
10693 #: build/C/man2/quotactl.2:434
10694 msgid "I<addr> or I<special> is invalid."
10695 msgstr ""
10696
10697 #. type: Plain text
10698 #: build/C/man2/quotactl.2:440
10699 msgid "I<cmd> or I<type> is invalid."
10700 msgstr ""
10701
10702 #. type: TP
10703 #: build/C/man2/quotactl.2:440
10704 #, no-wrap
10705 msgid "B<ENOENT>"
10706 msgstr "B<ENOENT>"
10707
10708 #. type: Plain text
10709 #: build/C/man2/quotactl.2:447
10710 msgid "The file specified by I<special> or I<addr> does not exist."
10711 msgstr ""
10712
10713 #. type: Plain text
10714 #: build/C/man2/quotactl.2:452
10715 msgid "The kernel has not been compiled with the B<CONFIG_QUOTA> option."
10716 msgstr ""
10717
10718 #. type: TP
10719 #: build/C/man2/quotactl.2:452
10720 #, no-wrap
10721 msgid "B<ENOTBLK>"
10722 msgstr "B<ENOTBLK>"
10723
10724 #. type: Plain text
10725 #: build/C/man2/quotactl.2:456
10726 msgid "I<special> is not a block device."
10727 msgstr "I<special> がブロックデバイスではない。"
10728
10729 #. type: Plain text
10730 #: build/C/man2/quotactl.2:461
10731 msgid ""
10732 "The caller lacked the required privilege (B<CAP_SYS_ADMIN>)  for the "
10733 "specified operation."
10734 msgstr ""
10735
10736 #. type: Plain text
10737 #: build/C/man2/quotactl.2:465
10738 msgid ""
10739 "No disk quota is found for the indicated user.  Quotas have not been turned "
10740 "on for this filesystem."
10741 msgstr ""
10742
10743 #. type: Plain text
10744 #: build/C/man2/quotactl.2:474
10745 msgid "If I<cmd> is B<Q_SETQUOTA>, B<quotactl>()  may also set I<errno> to:"
10746 msgstr ""
10747
10748 #. type: Plain text
10749 #: build/C/man2/quotactl.2:477
10750 msgid "Specified limits are out of range allowed by quota format."
10751 msgstr ""
10752
10753 #. type: Plain text
10754 #: build/C/man2/quotactl.2:486
10755 msgid "If I<cmd> is B<Q_QUOTAON>, B<quotactl>()  may also set I<errno> to:"
10756 msgstr ""
10757
10758 #. type: Plain text
10759 #: build/C/man2/quotactl.2:495
10760 msgid ""
10761 "The quota file pointed to by I<addr> exists, but is not a regular file; or, "
10762 "the quota file pointed to by I<addr> exists, but is not on the filesystem "
10763 "pointed to by I<special>."
10764 msgstr ""
10765
10766 #. type: Plain text
10767 #: build/C/man2/quotactl.2:501
10768 msgid ""
10769 "B<Q_QUOTAON> attempted, but another B<Q_QUOTAON> had already been performed."
10770 msgstr ""
10771
10772 #. type: Plain text
10773 #: build/C/man2/quotactl.2:504
10774 msgid "The quota file is corrupted."
10775 msgstr "quota ファイルが壊れている。"
10776
10777 #. type: Plain text
10778 #: build/C/man2/quotactl.2:507
10779 msgid "Specified quota format was not found."
10780 msgstr ""
10781
10782 #. type: Plain text
10783 #: build/C/man2/quotactl.2:512
10784 msgid "B<quota>(1), B<getrlimit>(2), B<quotacheck>(8), B<quotaon>(8)"
10785 msgstr "B<quota>(1), B<getrlimit>(2), B<quotacheck>(8), B<quotaon>(8)"
10786
10787 #. type: TH
10788 #: build/C/man2/sendfile.2:19
10789 #, no-wrap
10790 msgid "SENDFILE"
10791 msgstr "SENDFILE"
10792
10793 #. type: TH
10794 #: build/C/man2/sendfile.2:19
10795 #, no-wrap
10796 msgid "2011-09-14"
10797 msgstr "2011-09-14"
10798
10799 #. type: Plain text
10800 #: build/C/man2/sendfile.2:22
10801 msgid "sendfile - transfer data between file descriptors"
10802 msgstr "sendfile - ファイル・ディスクリプタ間でデータを転送する"
10803
10804 #. type: Plain text
10805 #: build/C/man2/sendfile.2:24
10806 msgid "B<#include E<lt>sys/sendfile.hE<gt>>"
10807 msgstr "B<#include E<lt>sys/sendfile.hE<gt>>"
10808
10809 #.  The below is too ugly. Comments about glibc versions belong
10810 #.  in the notes, not in the header.
10811 #.  .B #include <features.h>
10812 #.  .br
10813 #.  .B #if (__GLIBC__==2 && __GLIBC_MINOR__>=1) || __GLIBC__>2
10814 #.  .br
10815 #.  .B #include <sys/sendfile.h>
10816 #.  .br
10817 #.  #else
10818 #.  .br
10819 #.  .B #include <sys/types.h>
10820 #.  .br
10821 #.  .B /* No system prototype before glibc 2.1. */
10822 #.  .br
10823 #.  .BI "ssize_t sendfile(int" " out_fd" ", int" " in_fd" ", off_t *" #.                        offset ", size_t" " count" )
10824 #.  .br
10825 #.  .B #endif
10826 #. type: Plain text
10827 #: build/C/man2/sendfile.2:47
10828 msgid ""
10829 "B<ssize_t sendfile(int>I< out_fd>B<, int>I< in_fd>B<, off_t *>I<offset>B<, "
10830 "size_t>I< count>B<);>"
10831 msgstr ""
10832 "B<ssize_t sendfile(int>I< out_fd>B<, int>I< in_fd>B<, off_t *>I<offset>B<, "
10833 "size_t>I< count>B<);>"
10834
10835 #. type: Plain text
10836 #: build/C/man2/sendfile.2:57
10837 msgid ""
10838 "B<sendfile>()  copies data between one file descriptor and another.  Because "
10839 "this copying is done within the kernel, B<sendfile>()  is more efficient "
10840 "than the combination of B<read>(2)  and B<write>(2), which would require "
10841 "transferring data to and from user space."
10842 msgstr ""
10843 "B<sendfile>()  は、あるファイル・ディスクリプタから別の ファイル・ディスクリ"
10844 "プタへのデータのコピーを行う。 このコピーはカーネル内で行われるので、 "
10845 "B<sendfile>()  は、 B<read>(2)  と B<write>(2)  を組み合わせるよりも効率がよ"
10846 "い。 B<read>(2)  や B<write>(2)  ではユーザ空間との間でデータの転送が必要とな"
10847 "るからである。"
10848
10849 #. type: Plain text
10850 #: build/C/man2/sendfile.2:62
10851 msgid ""
10852 "I<in_fd> should be a file descriptor opened for reading and I<out_fd> should "
10853 "be a descriptor opened for writing."
10854 msgstr ""
10855 "I<in_fd> は読み込みのためにオープンされたファイル・ディスクリプタ、 "
10856 "I<out_fd> は書き込みのためにオープンされたディスクリプタでなければならない。"
10857
10858 #. type: Plain text
10859 #: build/C/man2/sendfile.2:83
10860 msgid ""
10861 "If I<offset> is not NULL, then it points to a variable holding the file "
10862 "offset from which B<sendfile>()  will start reading data from I<in_fd>.  "
10863 "When B<sendfile>()  returns, this variable will be set to the offset of the "
10864 "byte following the last byte that was read.  If I<offset> is not NULL, then "
10865 "B<sendfile>()  does not modify the current file offset of I<in_fd>; "
10866 "otherwise the current file offset is adjusted to reflect the number of bytes "
10867 "read from I<in_fd>."
10868 msgstr ""
10869 "I<offset> が NULL でない場合、 I<offset> は B<sendfile>()  が I<in_fd> のどこ"
10870 "からデータを読み始めるかを示すファイル・オフセットを保持する変数への ポインタ"
10871 "である。 B<sendfile>()  は復帰する時、この変数に最後に読み込んだバイトの 次の"
10872 "バイトのオフセットを書き込む。 I<offset> が NULL でない場合、 B<sendfile>()  "
10873 "は I<in_fd> のファイル・オフセットの現在値を変更しない。 NULL の場合は、ファ"
10874 "イル・オフセットの現在値を I<in_fd> から読み込んだバイト数を反映した位置に調"
10875 "整する。"
10876
10877 #. type: Plain text
10878 #: build/C/man2/sendfile.2:90
10879 msgid ""
10880 "If I<offset> is NULL, then data will be read from I<in_fd> starting at the "
10881 "current file offset, and the file offset will be updated by the call."
10882 msgstr ""
10883 "I<offset> が NULL の場合、データは I<in_fd> の現在のファイル・オフセットから"
10884 "読み出され、 ファイル・オフセットはこの呼び出しで更新される。"
10885
10886 #. type: Plain text
10887 #: build/C/man2/sendfile.2:93
10888 msgid "I<count> is the number of bytes to copy between the file descriptors."
10889 msgstr "I<count> は、ファイル・ディスクリプタ間でコピーするバイト数である。"
10890
10891 #. type: Plain text
10892 #: build/C/man2/sendfile.2:100
10893 msgid ""
10894 "The I<in_fd> argument must correspond to a file which supports B<mmap>(2)-"
10895 "like operations (i.e., it cannot be a socket)."
10896 msgstr ""
10897 "I<in_fd> 引き数は B<mmap>(2) 風の操作ができるファイルを指していなければなら"
10898 "な\n"
10899 "い (ソケットを指定することはできない)。"
10900
10901 #. type: Plain text
10902 #: build/C/man2/sendfile.2:108
10903 msgid ""
10904 "In Linux kernels before 2.6.33, I<out_fd> must refer to a socket.  Since "
10905 "Linux 2.6.33 it can be any file.  If it is a regular file, then B<sendfile>"
10906 "()  changes the file offset appropriately."
10907 msgstr ""
10908 "2.6.33 より前の Linux カーネルでは I<out_fd> はソケットを参照していなければ"
10909 "な\n"
10910 "らない。Linux 2.6.33 以降では、任意のファイルを参照することができる。\n"
10911 "通常のファイルの場合には B<sendfile>() はファイルオフセットを適切に変更する。"
10912
10913 #. type: Plain text
10914 #: build/C/man2/sendfile.2:115
10915 msgid ""
10916 "If the transfer was successful, the number of bytes written to I<out_fd> is "
10917 "returned.  On error, -1 is returned, and I<errno> is set appropriately."
10918 msgstr ""
10919 "転送に成功した場合、 I<out_fd> に書き込まれたバイト数を返す。エラーの場"
10920 "合、-1 を返し、 I<errno> に適切な値を設定する。"
10921
10922 #. type: Plain text
10923 #: build/C/man2/sendfile.2:121
10924 msgid ""
10925 "Nonblocking I/O has been selected using B<O_NONBLOCK> and the write would "
10926 "block."
10927 msgstr ""
10928 "B<O_NONBLOCK> を用いて非ブロック I/O が選択されたが、書き込みがブロックされ"
10929 "た。"
10930
10931 #. type: TP
10932 #: build/C/man2/sendfile.2:121 build/C/man2/splice.2:143
10933 #: build/C/man2/vmsplice.2:123
10934 #, no-wrap
10935 msgid "B<EBADF>"
10936 msgstr "B<EBADF>"
10937
10938 #. type: Plain text
10939 #: build/C/man2/sendfile.2:125
10940 msgid ""
10941 "The input file was not opened for reading or the output file was not opened "
10942 "for writing."
10943 msgstr ""
10944 "入力ファイルが読み込みのためにオープンされていないか、 出力ファイルが書き込み"
10945 "のためにオープンされていない。"
10946
10947 #. type: Plain text
10948 #: build/C/man2/sendfile.2:128
10949 msgid "Bad address."
10950 msgstr "アドレスがおかしい。"
10951
10952 #. type: Plain text
10953 #: build/C/man2/sendfile.2:134
10954 msgid ""
10955 "Descriptor is not valid or locked, or an B<mmap>(2)-like operation is not "
10956 "available for I<in_fd>."
10957 msgstr ""
10958 "ディスクリプタが有効でないか、ロックされている。もしくは B<mmap>(2)  風の操作"
10959 "が I<in_fd> では利用できない。"
10960
10961 #. type: Plain text
10962 #: build/C/man2/sendfile.2:138
10963 msgid "Unspecified error while reading from I<in_fd>."
10964 msgstr "I<in_fd> から読み込んでいるうちに予期しないエラーが起こった。"
10965
10966 #. type: Plain text
10967 #: build/C/man2/sendfile.2:142
10968 msgid "Insufficient memory to read from I<in_fd>."
10969 msgstr "I<in_fd> から読み込むための十分なメモリがない。"
10970
10971 #. type: Plain text
10972 #: build/C/man2/sendfile.2:148
10973 msgid ""
10974 "B<sendfile>()  is a new feature in Linux 2.2.  The include file I<E<lt>sys/"
10975 "sendfile.hE<gt>> is present since glibc 2.1."
10976 msgstr ""
10977 "B<sendfile> は Linux 2.2 の新しい機能である。 インクルードファイル "
10978 "I<E<lt>sys/sendfile.hE<gt>> は glibc 2.1 から存在している。"
10979
10980 #. type: Plain text
10981 #: build/C/man2/sendfile.2:150
10982 msgid "Not specified in POSIX.1-2001, or other standards."
10983 msgstr "POSIX.1-2001 や他の標準では規定されていない。"
10984
10985 #. type: Plain text
10986 #: build/C/man2/sendfile.2:155
10987 msgid ""
10988 "Other UNIX systems implement B<sendfile>()  with different semantics and "
10989 "prototypes.  It should not be used in portable programs."
10990 msgstr ""
10991 "他の UNIX システムでは、異なった方式やプロトタイプで B<sendfile>()  を実装し"
10992 "ている。移植性を考慮したプログラムでは使用すべきではない。"
10993
10994 #. type: Plain text
10995 #: build/C/man2/sendfile.2:165
10996 msgid ""
10997 "If you plan to use B<sendfile>()  for sending files to a TCP socket, but "
10998 "need to send some header data in front of the file contents, you will find "
10999 "it useful to employ the B<TCP_CORK> option, described in B<tcp>(7), to "
11000 "minimize the number of packets and to tune performance."
11001 msgstr ""
11002 "B<sendfile>()  を使って TCP ソケットにファイルを送ろうとしていて、 ファイルの"
11003 "内容の前にヘッダ・データを付け加える必要がある場合は、 パケット数を最小にして"
11004 "性能を上げるために B<tcp>(7)  に記述されている B<TCP_CORK> オプションを使うと"
11005 "いいだろう。"
11006
11007 #. type: Plain text
11008 #: build/C/man2/sendfile.2:171
11009 msgid ""
11010 "In Linux 2.4 and earlier, I<out_fd> could also refer to a regular file, and "
11011 "B<sendfile>()  changed the current offset of that file."
11012 msgstr ""
11013 "Linux 2.4 とそれ以前のバージョンでも、 I<out_fd> は通常のファイルを参照で"
11014 "き、\n"
11015 "B<sendfile>() はそのファイルのオフセットの現在値を変更していた。"
11016
11017 #. type: Plain text
11018 #: build/C/man2/sendfile.2:183
11019 msgid ""
11020 "The original Linux B<sendfile>()  system call was not designed to handle "
11021 "large file offsets.  Consequently, Linux 2.4 added B<sendfile64>(), with a "
11022 "wider type for the I<offset> argument.  The glibc B<sendfile>()  wrapper "
11023 "function transparently deals with the kernel differences."
11024 msgstr ""
11025 "元々の Linux B<sendfile>() システムコールは大きなファイルオフセットを\n"
11026 "扱えるように設計されていなかった。その結果、Linux 2.4 で、\n"
11027 "ビット幅の大きな I<offset> 引き数を持った B<sendfile64>() が追加された。\n"
11028 "glibc の B<sendfile>() のラッパー関数はカーネルによるこの違いを吸収している。"
11029
11030 #. type: Plain text
11031 #: build/C/man2/sendfile.2:192
11032 msgid ""
11033 "Applications may wish to fall back to B<read>(2)/B<write>(2)  in the case "
11034 "where B<sendfile>()  fails with B<EINVAL> or B<ENOSYS>."
11035 msgstr ""
11036 "B<sendfile>()  が B<EINVAL> や B<ENOSYS> で失敗するような場合は、 アプリケー"
11037 "ションは B<read>(2)/B<write>(2)  に戻すことを考えてもよいかもしれない。"
11038
11039 #. type: Plain text
11040 #: build/C/man2/sendfile.2:197
11041 msgid ""
11042 "The Linux-specific B<splice>(2)  call supports transferring data between "
11043 "arbitrary files (e.g., a pair of sockets)."
11044 msgstr ""
11045 "Linux 固有の B<splice>(2) システムコールは、任意のファイル間 (例えば、\n"
11046 "ソケット同士) でのデータ転送をサポートしている。"
11047
11048 #. type: Plain text
11049 #: build/C/man2/sendfile.2:202
11050 msgid "B<mmap>(2), B<open>(2), B<socket>(2), B<splice>(2)"
11051 msgstr "B<mmap>(2), B<open>(2), B<socket>(2), B<splice>(2)"
11052
11053 #. type: TH
11054 #: build/C/man2/set_tid_address.2:25
11055 #, no-wrap
11056 msgid "SET_TID_ADDRESS"
11057 msgstr "SET_TID_ADDRESS"
11058
11059 #. type: TH
11060 #: build/C/man2/set_tid_address.2:25
11061 #, no-wrap
11062 msgid "2012-07-19"
11063 msgstr "2012-07-19"
11064
11065 #. type: Plain text
11066 #: build/C/man2/set_tid_address.2:28
11067 msgid "set_tid_address - set pointer to thread ID"
11068 msgstr "set_tid_address - スレッド ID へのポインタを設定する"
11069
11070 #. type: Plain text
11071 #: build/C/man2/set_tid_address.2:31
11072 #, no-wrap
11073 msgid "B<#include E<lt>linux/unistd.hE<gt>>\n"
11074 msgstr "B<#include E<lt>linux/unistd.hE<gt>>\n"
11075
11076 #. type: Plain text
11077 #: build/C/man2/set_tid_address.2:33
11078 #, no-wrap
11079 msgid "B<long set_tid_address(int *>I<tidptr>B<);>\n"
11080 msgstr "B<long set_tid_address(int *>I<tidptr>B<);>\n"
11081
11082 #. type: Plain text
11083 #: build/C/man2/set_tid_address.2:40
11084 msgid ""
11085 "For each process, the kernel maintains two attributes (addresses) called "
11086 "I<set_child_tid> and I<clear_child_tid>.  These two attributes contain the "
11087 "value NULL by default."
11088 msgstr ""
11089 "各プロセスについて、カーネルは I<set_child_tid> と I<clear_child_tid> という "
11090 "2 つの属性を保持する。この 2 つの属性はデフォルトでは NULL である。"
11091
11092 #. type: TP
11093 #: build/C/man2/set_tid_address.2:40
11094 #, no-wrap
11095 msgid "I<set_child_tid>"
11096 msgstr "I<set_child_tid>"
11097
11098 #. type: Plain text
11099 #: build/C/man2/set_tid_address.2:51
11100 msgid ""
11101 "If a process is started using B<clone>(2)  with the B<CLONE_CHILD_SETTID> "
11102 "flag, I<set_child_tid> is set to the value passed in the I<ctid> argument of "
11103 "that system call."
11104 msgstr ""
11105 "プロセスが B<CLONE_CHILD_SETTID> フラグを指定した B<clone>(2)  によって開始さ"
11106 "れた場合、 I<set_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引き数"
11107 "で渡された値に設定される。"
11108
11109 #. type: Plain text
11110 #: build/C/man2/set_tid_address.2:56
11111 msgid ""
11112 "When I<set_child_tid> is set, the very first thing the new process does is "
11113 "writing its PID at this address."
11114 msgstr ""
11115 "I<set_child_tid> が設定された場合、一番最初に新しいプロセスが行うことは、 こ"
11116 "のアドレスに自身の PID を書き込むことである。"
11117
11118 #. type: TP
11119 #: build/C/man2/set_tid_address.2:56
11120 #, no-wrap
11121 msgid "I<clear_child_tid>"
11122 msgstr "I<clear_child_tid>"
11123
11124 #. type: Plain text
11125 #: build/C/man2/set_tid_address.2:67
11126 msgid ""
11127 "If a process is started using B<clone>(2)  with the B<CLONE_CHILD_CLEARTID> "
11128 "flag, I<clear_child_tid> is set to the value passed in the I<ctid> argument "
11129 "of that system call."
11130 msgstr ""
11131 "プロセスが B<CLONE_CHILD_CLEARTID> フラグを指定した B<clone>(2) によって開始"
11132 "された場合、 I<clear_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引"
11133 "き数で渡された値に設定される。"
11134
11135 #. type: Plain text
11136 #: build/C/man2/set_tid_address.2:74
11137 msgid ""
11138 "The system call B<set_tid_address>()  sets the I<clear_child_tid> value for "
11139 "the calling process to I<tidptr>."
11140 msgstr ""
11141 "システムコール B<set_tid_address>()  は呼び出し元プロセスの "
11142 "I<clear_child_tid> の値を I<tidptr> に設定する。"
11143
11144 #. type: Plain text
11145 #: build/C/man2/set_tid_address.2:82
11146 msgid ""
11147 "When a process whose I<clear_child_tid> is not NULL terminates, then, if the "
11148 "process is sharing memory with other processes or threads, then 0 is written "
11149 "at the address specified in I<clear_child_tid> and the kernel performs the "
11150 "following operation:"
11151 msgstr ""
11152 "I<clear_child_tid> が NULL でないプロセスが終了すると、そのプロセスが他のプロ"
11153 "セスまたはスレッドとメモリを共有していれば、 I<clear_child_tid> で指定された"
11154 "アドレスに 0 が書き込まれ、カーネルは以下の処理を実行する。"
11155
11156 #. type: Plain text
11157 #: build/C/man2/set_tid_address.2:84
11158 #, no-wrap
11159 msgid "    futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);\n"
11160 msgstr "    futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);\n"
11161
11162 #. type: Plain text
11163 #: build/C/man2/set_tid_address.2:88
11164 msgid ""
11165 "The effect of this operation is to wake a single process that is performing "
11166 "a futex wait on the memory location.  Errors from the futex wake operation "
11167 "are ignored."
11168 msgstr ""
11169 "この処理の結果、このメモリアドレスに対する futex wait を実行しているプロセス"
11170 "を一つ起こす (wake)。 futex wake 操作でのエラーは無視される。"
11171
11172 #. type: Plain text
11173 #: build/C/man2/set_tid_address.2:91
11174 msgid "B<set_tid_address>()  always returns the PID of the calling process."
11175 msgstr "B<set_tid_address>()  は常に現在のプロセスの PID を返す。"
11176
11177 #. type: Plain text
11178 #: build/C/man2/set_tid_address.2:94
11179 msgid "B<set_tid_address>()  always succeeds."
11180 msgstr "B<set_tid_address>()  は常に成功する。"
11181
11182 #. type: Plain text
11183 #: build/C/man2/set_tid_address.2:97
11184 msgid ""
11185 "This call is present since Linux 2.5.48.  Details as given here are valid "
11186 "since Linux 2.5.49."
11187 msgstr ""
11188 "この呼び出しは Linux 2.5.48 以降で存在する。 ここで書かれた詳細は Linux "
11189 "2.5.49 以降で有効である。"
11190
11191 #. type: Plain text
11192 #: build/C/man2/set_tid_address.2:102
11193 msgid "B<clone>(2), B<futex>(2)"
11194 msgstr "B<clone>(2), B<futex>(2)"
11195
11196 #. type: TH
11197 #: build/C/man2/splice.2:26
11198 #, no-wrap
11199 msgid "SPLICE"
11200 msgstr "SPLICE"
11201
11202 #. type: TH
11203 #: build/C/man2/splice.2:26 build/C/man2/tee.2:26 build/C/man2/vmsplice.2:26
11204 #, no-wrap
11205 msgid "2012-05-04"
11206 msgstr "2012-05-04"
11207
11208 #. type: Plain text
11209 #: build/C/man2/splice.2:29
11210 msgid "splice - splice data to/from a pipe"
11211 msgstr "splice - パイプとの間でデータを継ぎ合わせる"
11212
11213 #. type: Plain text
11214 #: build/C/man2/splice.2:33 build/C/man2/tee.2:33
11215 #, no-wrap
11216 msgid ""
11217 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
11218 "B<#include E<lt>fcntl.hE<gt>>\n"
11219 msgstr ""
11220 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
11221 "B<#include E<lt>fcntl.hE<gt>>\n"
11222
11223 #.  Return type was long before glibc 2.7
11224 #. type: Plain text
11225 #: build/C/man2/splice.2:38
11226 #, no-wrap
11227 msgid ""
11228 "B<ssize_t splice(int >I<fd_in>B<, loff_t *>I<off_in>B<, int >I<fd_out>B<,>\n"
11229 "B<               loff_t *>I<off_out>B<, size_t >I<len>B<, unsigned int >I<flags>B<);>\n"
11230 msgstr ""
11231 "B<ssize_t splice(int >I<fd_in>B<, loff_t *>I<off_in>B<, int >I<fd_out>B<,>\n"
11232 "B<               loff_t *>I<off_out>B<, size_t >I<len>B<, unsigned int >I<flags>B<);>\n"
11233
11234 #. type: Plain text
11235 #: build/C/man2/splice.2:50
11236 msgid ""
11237 "B<splice>()  moves data between two file descriptors without copying between "
11238 "kernel address space and user address space.  It transfers up to I<len> "
11239 "bytes of data from the file descriptor I<fd_in> to the file descriptor "
11240 "I<fd_out>, where one of the descriptors must refer to a pipe."
11241 msgstr ""
11242 "B<splice>()  は、カーネルアドレス空間とユーザアドレス空間との間のコピーを伴わ"
11243 "ずに、 2 つのファイルディスクリプタ間でデータの移動を行う。 ファイルディスク"
11244 "リプタ I<fd_in> からファイルディスクリプタ I<fd_out> へ最大 I<len> バイトを転"
11245 "送する。 2 つのファイルディスクリプタのうち一つは パイプを参照していなければ"
11246 "ならない。"
11247
11248 #. type: Plain text
11249 #: build/C/man2/splice.2:80
11250 msgid ""
11251 "If I<fd_in> refers to a pipe, then I<off_in> must be NULL.  If I<fd_in> does "
11252 "not refer to a pipe and I<off_in> is NULL, then bytes are read from I<fd_in> "
11253 "starting from the current file offset, and the current file offset is "
11254 "adjusted appropriately.  If I<fd_in> does not refer to a pipe and I<off_in> "
11255 "is not NULL, then I<off_in> must point to a buffer which specifies the "
11256 "starting offset from which bytes will be read from I<fd_in>; in this case, "
11257 "the current file offset of I<fd_in> is not changed.  Analogous statements "
11258 "apply for I<fd_out> and I<off_out>."
11259 msgstr ""
11260 "I<fd_in> がパイプを参照している場合、 I<off_in> は NULL でなければならない。 "
11261 "I<fd_in> がパイプを参照しておらず、 I<off_in> が NULL の場合、 I<fd_in> の現"
11262 "在のファイルオフセットから始まるバイトを読み出す。 現在のファイルオフセットは"
11263 "適切に調整される。 I<fd_in> がパイプを参照しておらず、 I<off_in> が NULL でな"
11264 "い場合、 I<off_in> は I<fd_in> からのデータ読み出しを開始する先頭オフセットを"
11265 "格納したバッファ へのポインタでなければならない。この場合、 I<fd_in> の現在の"
11266 "ファイルオフセットは変更されない。 I<fd_out> と I<off_out> に関しても同様であ"
11267 "る。"
11268
11269 #. type: Plain text
11270 #: build/C/man2/splice.2:85 build/C/man2/vmsplice.2:78
11271 msgid ""
11272 "The I<flags> argument is a bit mask that is composed by ORing together zero "
11273 "or more of the following values:"
11274 msgstr ""
11275 "I<flags> 引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。"
11276
11277 #. type: TP
11278 #: build/C/man2/splice.2:85 build/C/man2/tee.2:62 build/C/man2/vmsplice.2:78
11279 #, no-wrap
11280 msgid "B<SPLICE_F_MOVE>"
11281 msgstr "B<SPLICE_F_MOVE>"
11282
11283 #. type: Plain text
11284 #: build/C/man2/splice.2:98
11285 msgid ""
11286 "Attempt to move pages instead of copying.  This is only a hint to the "
11287 "kernel: pages may still be copied if the kernel cannot move the pages from "
11288 "the pipe, or if the pipe buffers don't refer to full pages.  The initial "
11289 "implementation of this flag was buggy: therefore starting in Linux 2.6.21 it "
11290 "is a no-op (but is still permitted in a B<splice>()  call); in the future, a "
11291 "correct implementation may be restored."
11292 msgstr ""
11293 "ページのコピーでなく移動を試みる。 これはカーネルに対するヒントでしかない。 "
11294 "つまり、カーネルがパイプからページを移動できない場合や、 パイプバッファがペー"
11295 "ジ全部を参照していない場合は、 ページのコピーが行われることもある。 このフラ"
11296 "グの最初の実装にはバグがあった。そのため、 Linux 2.6.21 以降ではこのフラグの"
11297 "操作はできないようになっている (ただし、 B<splice>()  コールでこのフラグを指"
11298 "定することは今も認められている)。 将来、正しい実装が行われることだろう。"
11299
11300 #. type: TP
11301 #: build/C/man2/splice.2:98 build/C/man2/tee.2:68 build/C/man2/vmsplice.2:84
11302 #, no-wrap
11303 msgid "B<SPLICE_F_NONBLOCK>"
11304 msgstr "B<SPLICE_F_NONBLOCK>"
11305
11306 #. type: Plain text
11307 #: build/C/man2/splice.2:107
11308 msgid ""
11309 "Do not block on I/O.  This makes the splice pipe operations nonblocking, but "
11310 "B<splice>()  may nevertheless block because the file descriptors that are "
11311 "spliced to/from may block (unless they have the B<O_NONBLOCK> flag set)."
11312 msgstr ""
11313 "入出力時に停止 (block) しない。 このフラグを指定すると、 splice によるパイプ"
11314 "操作を非停止モード (nonblocking) で 行おうとするが、その場合でも B<splice>"
11315 "()  は停止することもある。なぜなら、データのやり取りを行う ファイルディスクリ"
11316 "プタは (B<O_NONBLOCK> フラグをセットされていない場合) 停止する可能性があるか"
11317 "らである。"
11318
11319 #. type: TP
11320 #: build/C/man2/splice.2:107 build/C/man2/tee.2:73 build/C/man2/vmsplice.2:91
11321 #, no-wrap
11322 msgid "B<SPLICE_F_MORE>"
11323 msgstr "B<SPLICE_F_MORE>"
11324
11325 #. type: Plain text
11326 #: build/C/man2/splice.2:121
11327 msgid ""
11328 "More data will be coming in a subsequent splice.  This is a helpful hint "
11329 "when the I<fd_out> refers to a socket (see also the description of "
11330 "B<MSG_MORE> in B<send>(2), and the description of B<TCP_CORK> in B<tcp>(7))"
11331 msgstr ""
11332 "この後の splice でさらに転送されるデータがあることを示す。 このフラグは "
11333 "I<fd_out> がソケットを参照している場合に有用なヒントとなる (B<send>(2)  の "
11334 "B<MSG_MORE> や B<tcp>(7)  の B<TCP_CORK> の説明も参照)。"
11335
11336 #. type: TP
11337 #: build/C/man2/splice.2:121 build/C/man2/tee.2:79 build/C/man2/vmsplice.2:97
11338 #, no-wrap
11339 msgid "B<SPLICE_F_GIFT>"
11340 msgstr "B<SPLICE_F_GIFT>"
11341
11342 #. type: Plain text
11343 #: build/C/man2/splice.2:127
11344 msgid "Unused for B<splice>(); see B<vmsplice>(2)."
11345 msgstr "B<splice>()  では使用しない。 B<vmsplice>(2)  参照。"
11346
11347 #. type: Plain text
11348 #: build/C/man2/splice.2:136
11349 msgid ""
11350 "Upon successful completion, B<splice>()  returns the number of bytes spliced "
11351 "to or from the pipe.  A return value of 0 means that there was no data to "
11352 "transfer, and it would not make sense to block, because there are no writers "
11353 "connected to the write end of the pipe referred to by I<fd_in>."
11354 msgstr ""
11355 "成功して完了すると、 B<splice>()  はパイプから出し入れしたバイト数を返す。 返"
11356 "り値 0 はデータの転送が行わなかったことを示す。 この場合、処理を停止 (block) "
11357 "しても無意味である。 なぜなら、 I<fd_in> が参照するパイプの書き込み側に接続さ"
11358 "れている者がいないからである。"
11359
11360 #. type: Plain text
11361 #: build/C/man2/splice.2:142
11362 msgid ""
11363 "On error, B<splice>()  returns -1 and I<errno> is set to indicate the error."
11364 msgstr ""
11365 "エラーの場合、 B<splice>()  は -1 を返し、 I<errno> にエラーを示す値を設定す"
11366 "る。"
11367
11368 #. type: Plain text
11369 #: build/C/man2/splice.2:147
11370 msgid ""
11371 "One or both file descriptors are not valid, or do not have proper read-write "
11372 "mode."
11373 msgstr ""
11374 "ファイルディスクリプタの一方または両方が有効ではない、 もしくは適切な read-"
11375 "write モードではない。"
11376
11377 #.  The append-mode error is given since 2.6.27; in earlier kernels,
11378 #.  splice() in append mode was broken
11379 #. type: Plain text
11380 #: build/C/man2/splice.2:155
11381 #, fuzzy
11382 #| msgid ""
11383 #| "Target file system doesn't support splicing; target file is opened in "
11384 #| "append mode; neither of the descriptors refers to a pipe; or offset given "
11385 #| "for nonseekable device."
11386 msgid ""
11387 "Target filesystem doesn't support splicing; target file is opened in append "
11388 "mode; neither of the descriptors refers to a pipe; or offset given for "
11389 "nonseekable device."
11390 msgstr ""
11391 "対象のファイルシステムが splice に対応していない、 または対象のファイルが追記"
11392 "モードでオープンされている、 またはディスクリプタのどちらもパイプを参照してい"
11393 "ない、 または seek できないデバイスに対してオフセットが指定された。"
11394
11395 #. type: Plain text
11396 #: build/C/man2/splice.2:158 build/C/man2/tee.2:114
11397 #: build/C/man2/vmsplice.2:138
11398 msgid "Out of memory."
11399 msgstr "メモリ不足。"
11400
11401 #. type: TP
11402 #: build/C/man2/splice.2:158
11403 #, no-wrap
11404 msgid "B<ESPIPE>"
11405 msgstr "B<ESPIPE>"
11406
11407 #. type: Plain text
11408 #: build/C/man2/splice.2:165
11409 msgid ""
11410 "Either I<off_in> or I<off_out> was not NULL, but the corresponding file "
11411 "descriptor refers to a pipe."
11412 msgstr ""
11413 "I<off_in> か I<off_out> のいずれかが NULL ではないが、対応するファイルディス"
11414 "クリプタが パイプを参照している。"
11415
11416 #. type: Plain text
11417 #: build/C/man2/splice.2:170
11418 msgid ""
11419 "The B<splice>()  system call first appeared in Linux 2.6.17; library support "
11420 "was added to glibc in version 2.5."
11421 msgstr ""
11422 "B<splice>() システムコールは Linux 2.6.17 で初めて登場した。\n"
11423 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
11424
11425 #. type: Plain text
11426 #: build/C/man2/splice.2:182
11427 msgid ""
11428 "The three system calls B<splice>(), B<vmsplice>(2), and B<tee>(2), provide "
11429 "user-space programs with full control over an arbitrary kernel buffer, "
11430 "implemented within the kernel using the same type of buffer that is used for "
11431 "a pipe.  In overview, these system calls perform the following tasks:"
11432 msgstr ""
11433 "3 つのシステムコール (B<splice>(), B<vmsplice>(2), B<tee>(2))  を使うと、ユー"
11434 "ザ空間プログラムは任意のカーネルバッファに対する 完全な制御ができる。カーネル"
11435 "バッファは、パイプに使用されているのと 同種のバッファを使ってカーネル内に実装"
11436 "されている。 大まかにいうと、これらのシステムコールは以下の仕事を行う:"
11437
11438 #. type: TP
11439 #: build/C/man2/splice.2:182
11440 #, no-wrap
11441 msgid "B<splice>()"
11442 msgstr "B<splice>()"
11443
11444 #. type: Plain text
11445 #: build/C/man2/splice.2:186
11446 msgid ""
11447 "moves data from the buffer to an arbitrary file descriptor, or vice versa, "
11448 "or from one buffer to another."
11449 msgstr ""
11450 "バッファから任意のファイルディスクリプタや、その逆方向、 もしくはあるバッファ"
11451 "から別のバッファへの、データ移動を行う。"
11452
11453 #. type: TP
11454 #: build/C/man2/splice.2:186
11455 #, no-wrap
11456 msgid "B<tee>(2)"
11457 msgstr "B<tee>(2)"
11458
11459 #. type: Plain text
11460 #: build/C/man2/splice.2:189
11461 msgid "\"copies\" the data from one buffer to another."
11462 msgstr "あるバッファから別のバッファへのデータ「コピー」を行う。"
11463
11464 #. type: TP
11465 #: build/C/man2/splice.2:189
11466 #, no-wrap
11467 msgid "B<vmsplice>(2)"
11468 msgstr "B<vmsplice>(2)"
11469
11470 #. type: Plain text
11471 #: build/C/man2/splice.2:192
11472 msgid "\"copies\" data from user space into the buffer."
11473 msgstr "ユーザ空間からバッファへのデータ「コピー」を行う。"
11474
11475 #.  Linus: Now, imagine using the above in a media server, for example.
11476 #.  Let's say that a year or two has passed, so that the video drivers
11477 #.  have been updated to be able to do the splice thing, and what can
11478 #.  you do? You can:
11479 #.  - splice from the (mpeg or whatever - let's just assume that the video
11480 #.    input is either digital or does the encoding on its own - like they
11481 #.    pretty much all do) video input into a pipe (remember: no copies - the
11482 #.    video input will just DMA directly into memory, and splice will just
11483 #.    set up the pages in the pipe buffer)
11484 #.  - tee that pipe to split it up
11485 #.  - splice one end to a file (ie "save the compressed stream to disk")
11486 #.  - splice the other end to a real-time video decoder window for your
11487 #.    real-time viewing pleasure.
11488 #.  Linus: Now, the advantage of splice()/tee() is that you can
11489 #.  do zero-copy movement of data, and unlike sendfile() you can
11490 #.  do it on _arbitrary_ data (and, as shown by "tee()", it's more
11491 #.  than just sending the data to somebody else: you can duplicate
11492 #.  the data and choose to forward it to two or more different
11493 #.  users - for things like logging etc.).
11494 #. type: Plain text
11495 #: build/C/man2/splice.2:223
11496 msgid ""
11497 "Though we talk of copying, actual copies are generally avoided.  The kernel "
11498 "does this by implementing a pipe buffer as a set of reference-counted "
11499 "pointers to pages of kernel memory.  The kernel creates \"copies\" of pages "
11500 "in a buffer by creating new pointers (for the output buffer) referring to "
11501 "the pages, and increasing the reference counts for the pages: only pointers "
11502 "are copied, not the pages of the buffer."
11503 msgstr ""
11504 "ここではコピーの話をしているが、実際のコピーは一般的に回避される。 カーネル"
11505 "は、パイプ・バッファをカーネルメモリのページへのポインタ集合として 実装し、"
11506 "ページへの参照回数を管理することで、これを実現している。 カーネルは、対象とな"
11507 "るページを参照する (出力バッファ用の) ポインタを 新規に作成することでバッファ"
11508 "内のページの「コピー」を作成し、 そのページの参照回数を増やす。つまり、ポイン"
11509 "タだけがコピーされ、 バッファのページはコピーされない。"
11510
11511 #. type: Plain text
11512 #: build/C/man2/splice.2:226
11513 msgid "See B<tee>(2)."
11514 msgstr "B<tee>(2)  参照。"
11515
11516 #. type: Plain text
11517 #: build/C/man2/splice.2:230
11518 msgid "B<sendfile>(2), B<tee>(2), B<vmsplice>(2)"
11519 msgstr "B<sendfile>(2), B<tee>(2), B<vmsplice>(2)"
11520
11521 #. type: TH
11522 #: build/C/man2/tee.2:26
11523 #, no-wrap
11524 msgid "TEE"
11525 msgstr "TEE"
11526
11527 #. type: Plain text
11528 #: build/C/man2/tee.2:29
11529 msgid "tee - duplicating pipe content"
11530 msgstr "tee - パイプの中身を複製する"
11531
11532 #. type: Plain text
11533 #: build/C/man2/tee.2:36
11534 #, no-wrap
11535 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"
11536 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"
11537
11538 #.  Example programs http://brick.kernel.dk/snaps
11539 #.  add a "tee(in, out1, out2)" system call that duplicates the pages
11540 #.  (again, incrementing their reference count, not copying the data) from
11541 #.  one pipe to two other pipes.
11542 #. type: Plain text
11543 #: build/C/man2/tee.2:56
11544 msgid ""
11545 "B<tee>()  duplicates up to I<len> bytes of data from the pipe referred to by "
11546 "the file descriptor I<fd_in> to the pipe referred to by the file descriptor "
11547 "I<fd_out>.  It does not consume the data that is duplicated from I<fd_in>; "
11548 "therefore, that data can be copied by a subsequent B<splice>(2)."
11549 msgstr ""
11550 "B<tee>()  は、ファイルディスクリプタ I<fd_in> が参照するパイプからファイル"
11551 "ディスクリプタ I<fd_out> が参照するパイプへ最大 I<len> バイトのデータを複製す"
11552 "る。 この操作では、複製されるデータは I<fd_in> からは消費されない。したがっ"
11553 "て、これらのデータをこの後の B<splice>(2)  でコピーすることができる。"
11554
11555 #. type: Plain text
11556 #: build/C/man2/tee.2:62
11557 msgid ""
11558 "I<flags> is a series of modifier flags, which share the name space with "
11559 "B<splice>(2)  and B<vmsplice>(2):"
11560 msgstr ""
11561 "I<flags> は一連の修飾フラグであり、 B<splice>(2)  や B<vmsplice>(2)  と共通の"
11562 "名前である。"
11563
11564 #. type: Plain text
11565 #: build/C/man2/tee.2:68
11566 msgid "Currently has no effect for B<tee>(); see B<splice>(2)."
11567 msgstr "現在のところ B<tee>()  では何の効果もない。 B<splice>(2)  参照。"
11568
11569 #.  Not used for vmsplice
11570 #.  May be in the future -- therefore EAGAIN
11571 #. type: Plain text
11572 #: build/C/man2/tee.2:73 build/C/man2/vmsplice.2:91
11573 msgid "Do not block on I/O; see B<splice>(2)  for further details."
11574 msgstr "入出力で停止 (block) しない。詳細は B<splice>(2)  参照。"
11575
11576 #. type: Plain text
11577 #: build/C/man2/tee.2:79
11578 msgid ""
11579 "Currently has no effect for B<tee>(), but may be implemented in the future; "
11580 "see B<splice>(2)."
11581 msgstr ""
11582 "現在のところ B<tee>()  では何の効果もないが、将来的には実装される可能性があ"
11583 "る。 B<splice>(2)  参照。"
11584
11585 #. type: Plain text
11586 #: build/C/man2/tee.2:85
11587 msgid "Unused for B<tee>(); see B<vmsplice>(2)."
11588 msgstr "B<tee>()  では未使用。 B<vmsplice>(2)  参照。"
11589
11590 #. type: Plain text
11591 #: build/C/man2/tee.2:94
11592 msgid ""
11593 "Upon successful completion, B<tee>()  returns the number of bytes that were "
11594 "duplicated between the input and output.  A return value of 0 means that "
11595 "there was no data to transfer, and it would not make sense to block, because "
11596 "there are no writers connected to the write end of the pipe referred to by "
11597 "I<fd_in>."
11598 msgstr ""
11599 "成功して完了すると、 B<tee>()  は入出力間で複製されたバイト数を返す。 返り値 "
11600 "0 はデータの転送が行われなかったことを示す。 この場合、処理を停止 (block) し"
11601 "ても無意味である。 なぜなら、 I<fd_in> が参照するパイプの書き込み側に接続され"
11602 "ている者がいないからである。"
11603
11604 #. type: Plain text
11605 #: build/C/man2/tee.2:100
11606 msgid ""
11607 "On error, B<tee>()  returns -1 and I<errno> is set to indicate the error."
11608 msgstr ""
11609 "エラーの場合、 B<tee>()  は -1 を返し、 I<errno> にエラーを示す値を設定する。"
11610
11611 #. type: Plain text
11612 #: build/C/man2/tee.2:111
11613 msgid ""
11614 "I<fd_in> or I<fd_out> does not refer to a pipe; or I<fd_in> and I<fd_out> "
11615 "refer to the same pipe."
11616 msgstr ""
11617 "I<fd_in> と I<fd_out> のどちらかがパイプを参照していない。もしくは I<fd_in> "
11618 "と I<fd_out> が同じパイプを参照している。"
11619
11620 #. type: Plain text
11621 #: build/C/man2/tee.2:119
11622 msgid ""
11623 "The B<tee>()  system call first appeared in Linux 2.6.17; library support "
11624 "was added to glibc in version 2.5."
11625 msgstr ""
11626 "B<tee>() システムコールは Linux 2.6.17 で初めて登場した。\n"
11627 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
11628
11629 #. type: Plain text
11630 #: build/C/man2/tee.2:130
11631 msgid ""
11632 "Conceptually, B<tee>()  copies the data between the two pipes.  In reality "
11633 "no real data copying takes place though: under the covers, B<tee>()  assigns "
11634 "data in the output by merely grabbing a reference to the input."
11635 msgstr ""
11636 "概念としては、 B<tee>()  は二つのパイプ間でデータのコピーを行う。 しかし、実"
11637 "際には実データのコピーは行われない。 内部では、 B<tee>()  は入力側に対する参"
11638 "照だけを作成することで出力側にデータを 追加する。"
11639
11640 #. type: Plain text
11641 #: build/C/man2/tee.2:136
11642 msgid ""
11643 "The following example implements a basic B<tee>(1)  program using the B<tee>"
11644 "()  system call."
11645 msgstr ""
11646 "以下の例は、 B<tee>()  システムコールを使って、 基本的な B<tee>(1)  プログラ"
11647 "ムを実装したものである。"
11648
11649 #. type: Plain text
11650 #: build/C/man2/tee.2:145
11651 #, no-wrap
11652 msgid ""
11653 "#define _GNU_SOURCE\n"
11654 "#include E<lt>fcntl.hE<gt>\n"
11655 "#include E<lt>stdio.hE<gt>\n"
11656 "#include E<lt>stdlib.hE<gt>\n"
11657 "#include E<lt>unistd.hE<gt>\n"
11658 "#include E<lt>errno.hE<gt>\n"
11659 "#include E<lt>limits.hE<gt>\n"
11660 msgstr ""
11661 "#define _GNU_SOURCE\n"
11662 "#include E<lt>fcntl.hE<gt>\n"
11663 "#include E<lt>stdio.hE<gt>\n"
11664 "#include E<lt>stdlib.hE<gt>\n"
11665 "#include E<lt>unistd.hE<gt>\n"
11666 "#include E<lt>errno.hE<gt>\n"
11667 "#include E<lt>limits.hE<gt>\n"
11668
11669 #. type: Plain text
11670 #: build/C/man2/tee.2:151
11671 #, no-wrap
11672 msgid ""
11673 "int\n"
11674 "main(int argc, char *argv[])\n"
11675 "{\n"
11676 "    int fd;\n"
11677 "    int len, slen;\n"
11678 msgstr ""
11679 "int\n"
11680 "main(int argc, char *argv[])\n"
11681 "{\n"
11682 "    int fd;\n"
11683 "    int len, slen;\n"
11684
11685 #. type: Plain text
11686 #: build/C/man2/tee.2:156
11687 #, no-wrap
11688 msgid ""
11689 "    if (argc != 2) {\n"
11690 "        fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
11691 "        exit(EXIT_FAILURE);\n"
11692 "    }\n"
11693 msgstr ""
11694 "    if (argc != 2) {\n"
11695 "        fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
11696 "        exit(EXIT_FAILURE);\n"
11697 "    }\n"
11698
11699 #. type: Plain text
11700 #: build/C/man2/tee.2:162
11701 #, no-wrap
11702 msgid ""
11703 "    fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);\n"
11704 "    if (fd == -1) {\n"
11705 "        perror(\"open\");\n"
11706 "        exit(EXIT_FAILURE);\n"
11707 "    }\n"
11708 msgstr ""
11709 "    fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);\n"
11710 "    if (fd == -1) {\n"
11711 "        perror(\"open\");\n"
11712 "        exit(EXIT_FAILURE);\n"
11713 "    }\n"
11714
11715 #. type: Plain text
11716 #: build/C/man2/tee.2:169
11717 #, no-wrap
11718 msgid ""
11719 "    do {\n"
11720 "        /*\n"
11721 "         * tee stdin to stdout.\n"
11722 "         */\n"
11723 "        len = tee(STDIN_FILENO, STDOUT_FILENO,\n"
11724 "                  INT_MAX, SPLICE_F_NONBLOCK);\n"
11725 msgstr ""
11726 "    do {\n"
11727 "        /*\n"
11728 "         * tee stdin to stdout.\n"
11729 "         */\n"
11730 "        len = tee(STDIN_FILENO, STDOUT_FILENO,\n"
11731 "                  INT_MAX, SPLICE_F_NONBLOCK);\n"
11732
11733 #. type: Plain text
11734 #: build/C/man2/tee.2:178
11735 #, no-wrap
11736 msgid ""
11737 "        if (len E<lt> 0) {\n"
11738 "            if (errno == EAGAIN)\n"
11739 "                continue;\n"
11740 "            perror(\"tee\");\n"
11741 "            exit(EXIT_FAILURE);\n"
11742 "        } else\n"
11743 "            if (len == 0)\n"
11744 "                break;\n"
11745 msgstr ""
11746 "        if (len E<lt> 0) {\n"
11747 "            if (errno == EAGAIN)\n"
11748 "                continue;\n"
11749 "            perror(\"tee\");\n"
11750 "            exit(EXIT_FAILURE);\n"
11751 "        } else\n"
11752 "            if (len == 0)\n"
11753 "                break;\n"
11754
11755 #. type: Plain text
11756 #: build/C/man2/tee.2:192
11757 #, no-wrap
11758 msgid ""
11759 "        /*\n"
11760 "         * Consume stdin by splicing it to a file.\n"
11761 "         */\n"
11762 "        while (len E<gt> 0) {\n"
11763 "            slen = splice(STDIN_FILENO, NULL, fd, NULL,\n"
11764 "                          len, SPLICE_F_MOVE);\n"
11765 "            if (slen E<lt> 0) {\n"
11766 "                perror(\"splice\");\n"
11767 "                break;\n"
11768 "            }\n"
11769 "            len -= slen;\n"
11770 "        }\n"
11771 "    } while (1);\n"
11772 msgstr ""
11773 "        /*\n"
11774 "         * Consume stdin by splicing it to a file.\n"
11775 "         */\n"
11776 "        while (len E<gt> 0) {\n"
11777 "            slen = splice(STDIN_FILENO, NULL, fd, NULL,\n"
11778 "                          len, SPLICE_F_MOVE);\n"
11779 "            if (slen E<lt> 0) {\n"
11780 "                perror(\"splice\");\n"
11781 "                break;\n"
11782 "            }\n"
11783 "            len -= slen;\n"
11784 "        }\n"
11785 "    } while (1);\n"
11786
11787 #. type: Plain text
11788 #: build/C/man2/tee.2:196
11789 #, no-wrap
11790 msgid ""
11791 "    close(fd);\n"
11792 "    exit(EXIT_SUCCESS);\n"
11793 "}\n"
11794 msgstr ""
11795 "    close(fd);\n"
11796 "    exit(EXIT_SUCCESS);\n"
11797 "}\n"
11798
11799 #. type: Plain text
11800 #: build/C/man2/tee.2:200
11801 msgid "B<splice>(2), B<vmsplice>(2)"
11802 msgstr "B<splice>(2), B<vmsplice>(2)"
11803
11804 #. type: TH
11805 #: build/C/man2/vm86.2:26
11806 #, no-wrap
11807 msgid "VM86"
11808 msgstr "VM86"
11809
11810 #. type: TH
11811 #: build/C/man2/vm86.2:26
11812 #, no-wrap
11813 msgid "2009-02-20"
11814 msgstr "2009-02-20"
11815
11816 #. type: Plain text
11817 #: build/C/man2/vm86.2:29
11818 msgid "vm86old, vm86 - enter virtual 8086 mode"
11819 msgstr "vm86old, vm86 - 仮想 8086 モードへ移行する"
11820
11821 #. type: Plain text
11822 #: build/C/man2/vm86.2:31
11823 msgid "B<#include E<lt>sys/vm86.hE<gt>>"
11824 msgstr "B<#include E<lt>sys/vm86.hE<gt>>"
11825
11826 #. type: Plain text
11827 #: build/C/man2/vm86.2:33
11828 msgid "B<int vm86old(struct vm86_struct *>I<info>B<);>"
11829 msgstr "B<int vm86old(struct vm86_struct *>I<info>B<);>"
11830
11831 #. type: Plain text
11832 #: build/C/man2/vm86.2:35
11833 msgid "B<int vm86(unsigned long >I<fn>B<, struct vm86plus_struct *>I<v86>B<);>"
11834 msgstr ""
11835 "B<int vm86(unsigned long >I<fn>B<, struct vm86plus_struct *>I<v86>B<);>"
11836
11837 #. type: Plain text
11838 #: build/C/man2/vm86.2:48
11839 msgid ""
11840 "The system call B<vm86>()  was introduced in Linux 0.97p2.  In Linux 2.1.15 "
11841 "and 2.0.28 it was renamed to B<vm86old>(), and a new B<vm86>()  was "
11842 "introduced.  The definition of I<struct vm86_struct> was changed in 1.1.8 "
11843 "and 1.1.9."
11844 msgstr ""
11845 "B<vm86>()  システムコールは Linux 0.97p2 で導入された。 これは Linux 2.1.15 "
11846 "と 2.0.28 で B<vm86old>()  に名前が変更され、 新しい B<vm86>()  が導入され"
11847 "た。 I<struct vm86_struct> の定義は 1.1.8 と 1.1.9 で変更された。"
11848
11849 #. type: Plain text
11850 #: build/C/man2/vm86.2:52
11851 msgid ""
11852 "These calls cause the process to enter VM86 mode (virtual-8086 in Intel "
11853 "literature), and are used by B<dosemu>."
11854 msgstr ""
11855 "これらのコールによってプロセスは VM86 モード (Intel の文書では仮想 8086 モー"
11856 "ド) へと移行する。 これらのコールは B<dosemu> で使用される。"
11857
11858 #. type: Plain text
11859 #: build/C/man2/vm86.2:54
11860 msgid "VM86 mode is an emulation of real mode within a protected mode task."
11861 msgstr ""
11862 "VM86 モードはプロテクトモードタスクにおける リアルモードのエミュレーションで"
11863 "ある。"
11864
11865 #. type: Plain text
11866 #: build/C/man2/vm86.2:64
11867 msgid ""
11868 "This return value is specific to i386 and indicates a problem with getting "
11869 "user-space data."
11870 msgstr ""
11871 "この返り値は i386 固有のものであり、 ユーザー空間のデータを取得する際に問題が"
11872 "あったことを示す。"
11873
11874 #. type: Plain text
11875 #: build/C/man2/vm86.2:68
11876 msgid ""
11877 "This return value indicates the call is not implemented on the present "
11878 "architecture."
11879 msgstr ""
11880 "この返り値は、このコールが現在のアーキテクチャで実装されていないことを示す。"
11881
11882 #. type: Plain text
11883 #: build/C/man2/vm86.2:73
11884 msgid ""
11885 "Saved kernel stack exists.  (This is a kernel sanity check; the saved stack "
11886 "should exist only within vm86 mode itself.)"
11887 msgstr ""
11888 "保存されたカーネルスタックが既に存在している。(これはカーネルが通常の 状態で"
11889 "あるかをチェックしている。保存されたスタックは vm86 モードで しか存在しな"
11890 "い。)"
11891
11892 #. type: Plain text
11893 #: build/C/man2/vm86.2:76
11894 msgid ""
11895 "This call is specific to Linux on 32-bit Intel processors, and should not be "
11896 "used in programs intended to be portable."
11897 msgstr ""
11898 "この関数は 32 ビット Intel プロセッサ上の Linux 特有の関数であり、 移植を意図"
11899 "したプログラムでは使用すべきでない。"
11900
11901 #. type: TH
11902 #: build/C/man2/vmsplice.2:26
11903 #, no-wrap
11904 msgid "VMSPLICE"
11905 msgstr "VMSPLICE"
11906
11907 #. type: Plain text
11908 #: build/C/man2/vmsplice.2:29
11909 msgid "vmsplice - splice user pages into a pipe"
11910 msgstr "vmsplice - ユーザ・ページをパイプに継ぎ合わせる"
11911
11912 #. type: Plain text
11913 #: build/C/man2/vmsplice.2:34
11914 #, no-wrap
11915 msgid ""
11916 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
11917 "B<#include E<lt>fcntl.hE<gt>>\n"
11918 "B<#include E<lt>sys/uio.hE<gt>>\n"
11919 msgstr ""
11920 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
11921 "B<#include E<lt>fcntl.hE<gt>>\n"
11922 "B<#include E<lt>sys/uio.hE<gt>>\n"
11923
11924 #. type: Plain text
11925 #: build/C/man2/vmsplice.2:37
11926 #, no-wrap
11927 msgid ""
11928 "B<ssize_t vmsplice(int >I<fd>B<, const struct iovec *>I<iov>B<,>\n"
11929 "B<                 unsigned long >I<nr_segs>B<, unsigned int >I<flags>B<);>\n"
11930 msgstr ""
11931 "B<ssize_t vmsplice(int >I<fd>B<, const struct iovec *>I<iov>B<,>\n"
11932 "B<                 unsigned long >I<nr_segs>B<, unsigned int >I<flags>B<);>\n"
11933
11934 #.  Linus: vmsplice() system call to basically do a "write to
11935 #.  the buffer", but using the reference counting and VM traversal
11936 #.  to actually fill the buffer. This means that the user needs to
11937 #.  be careful not to reuse the user-space buffer it spliced into
11938 #.  the kernel-space one (contrast this to "write()", which copies
11939 #.  the actual data, and you can thus reuse the buffer immediately
11940 #.  after a successful write), but that is often easy to do.
11941 #. type: Plain text
11942 #: build/C/man2/vmsplice.2:57
11943 msgid ""
11944 "The B<vmsplice>()  system call maps I<nr_segs> ranges of user memory "
11945 "described by I<iov> into a pipe.  The file descriptor I<fd> must refer to a "
11946 "pipe."
11947 msgstr ""
11948 "B<vmsplice>()  システムコールは、 I<iov> で指定されたユーザ・メモリの "
11949 "I<nr_segs> の範囲をパイプにマッピングする。 I<fd> はパイプを参照していなけれ"
11950 "ばならない。"
11951
11952 #. type: Plain text
11953 #: build/C/man2/vmsplice.2:64
11954 msgid ""
11955 "The pointer I<iov> points to an array of I<iovec> structures as defined in "
11956 "I<E<lt>sys/uio.hE<gt>>:"
11957 msgstr ""
11958 "ポインタ I<iov> は I<iovec> 構造体の配列を指す。 I<iovec> 構造体は "
11959 "I<E<lt>sys/uio.hE<gt>> で以下のように定義されている:"
11960
11961 #. type: Plain text
11962 #: build/C/man2/vmsplice.2:71
11963 #, no-wrap
11964 msgid ""
11965 "struct iovec {\n"
11966 "    void  *iov_base;            /* Starting address */\n"
11967 "    size_t iov_len;             /* Number of bytes */\n"
11968 "};\n"
11969 msgstr ""
11970 "struct iovec {\n"
11971 "    void  *iov_base;            /* 開始アドレス */\n"
11972 "    size_t iov_len;             /* バイト数 */\n"
11973 "};\n"
11974
11975 #. type: Plain text
11976 #: build/C/man2/vmsplice.2:84
11977 msgid "Unused for B<vmsplice>(); see B<splice>(2)."
11978 msgstr "B<vmsplice>()  では未使用。 B<splice>(2)  参照。"
11979
11980 #. type: Plain text
11981 #: build/C/man2/vmsplice.2:97
11982 msgid ""
11983 "Currently has no effect for B<vmsplice>(), but may be implemented in the "
11984 "future; see B<splice>(2)."
11985 msgstr ""
11986 "現在のところ B<vmsplice>()  では何の効果もないが、将来的には実装される可能性"
11987 "がある。 B<splice>(2)  参照。"
11988
11989 #.  FIXME Explain the following line in a little more detail:
11990 #.  .... if we expect to later SPLICE_F_MOVE to the cache.
11991 #. type: Plain text
11992 #: build/C/man2/vmsplice.2:113
11993 msgid ""
11994 "The user pages are a gift to the kernel.  The application may not modify "
11995 "this memory ever, or page cache and on-disk data may differ.  Gifting pages "
11996 "to the kernel means that a subsequent B<splice>(2)  B<SPLICE_F_MOVE> can "
11997 "successfully move the pages; if this flag is not specified, then a "
11998 "subsequent B<splice>(2)  B<SPLICE_F_MOVE> must copy the pages.  Data must "
11999 "also be properly page aligned, both in memory and length."
12000 msgstr ""
12001 "ユーザ・ページがカーネルへ渡すもの (gift) であることを示す。 アプリケーション"
12002 "はこのメモリを絶対に変更してはならない。 さもなければ、ページキャッシュとディ"
12003 "スク上のデータは 一致しなくなるだろう。 ページをカーネルに渡すと、この次の "
12004 "B<splice>(2)  B<SPLICE_F_MOVE> でそのページの移動を行うことができる。 このフ"
12005 "ラグが指定されなかった場合、この次の B<splice>(2)  B<SPLICE_F_MOVE> でその"
12006 "ページのコピーを行わなければならない。 データはメモリ上でページ境界にあってい"
12007 "なければならず、 長さもページ境界の倍数でなければならない。"
12008
12009 #. type: Plain text
12010 #: build/C/man2/vmsplice.2:122
12011 msgid ""
12012 "Upon successful completion, B<vmsplice>()  returns the number of bytes "
12013 "transferred to the pipe.  On error, B<vmsplice>()  returns -1 and I<errno> "
12014 "is set to indicate the error."
12015 msgstr ""
12016 "成功して完了すると、 B<vmsplice>()  はパイプに転送したバイト数を返す。 エラー"
12017 "の場合、 B<vmplice>()  は -1 を返し、 I<errno> をエラーを示す値に設定する。"
12018
12019 #. type: Plain text
12020 #: build/C/man2/vmsplice.2:127
12021 msgid "I<fd> either not valid, or doesn't refer to a pipe."
12022 msgstr "I<fd> が有効でない、もしくはパイプを参照していない。"
12023
12024 #. type: Plain text
12025 #: build/C/man2/vmsplice.2:135
12026 msgid ""
12027 "I<nr_segs> is 0 or greater than B<IOV_MAX>; or memory not aligned if "
12028 "B<SPLICE_F_GIFT> set."
12029 msgstr ""
12030 "I<nr_segs> が 0 もしくは B<IOV_MAX> よりも大きい。または B<SPLICE_F_GIFT> が"
12031 "設定されたがメモリがページ境界にあっていない。"
12032
12033 #. type: Plain text
12034 #: build/C/man2/vmsplice.2:143
12035 msgid ""
12036 "The B<vmsplice>()  system call first appeared in Linux 2.6.17; library "
12037 "support was added to glibc in version 2.5."
12038 msgstr ""
12039 "B<vmsplice>() システムコールは Linux 2.6.17 で初めて登場した。\n"
12040 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
12041
12042 #. type: Plain text
12043 #: build/C/man2/vmsplice.2:154
12044 msgid ""
12045 "B<vmsplice>()  follows the other vectorized read/write type functions when "
12046 "it comes to limitations on number of segments being passed in.  This limit "
12047 "is B<IOV_MAX> as defined in I<E<lt>limits.hE<gt>>.  At the time of this "
12048 "writing, that limit is 1024."
12049 msgstr ""
12050 "指定されたセグメント数が上限に達した場合、 B<vmsplice>()  は他のベクトル形式"
12051 "の read/write を行う関数と同じ動作をする。 上限は B<IOV_MAX> であり、 "
12052 "I<E<lt>limits.hE<gt>> で定義されている。 このドキュメントを書いた時点での値"
12053 "は 1024 である。"
12054
12055 #. type: Plain text
12056 #: build/C/man2/vmsplice.2:157
12057 msgid "B<splice>(2), B<tee>(2)"
12058 msgstr "B<splice>(2), B<tee>(2)"
12059
12060 #~ msgid "2012-03-05"
12061 #~ msgstr "2012-03-05"
12062
12063 #~ msgid "2013-07-16"
12064 #~ msgstr "2013-07-16"
12065
12066 #~ msgid "2013-03-15"
12067 #~ msgstr "2013-03-15"
12068
12069 #~ msgid "B<futex>(7)"
12070 #~ msgstr "B<futex>(7)"
12071
12072 #, fuzzy
12073 #~| msgid "The I<subcmd> value is one of the following:"
12074 #~ msgid "The I<flags> argument takes one of the following values:"
12075 #~ msgstr "I<subcmd> の値は以下のいずれかである"
12076
12077 #~ msgid ""
12078 #~ "Depending on which operation was executed, the returned value for a "
12079 #~ "successful call can have differing meanings."
12080 #~ msgstr "どの操作が実行されたかによって、 成功時の返り値の意味が変わる。"
12081
12082 #~ msgid ""
12083 #~ "Returns 0 if the process was woken by a B<FUTEX_WAKE> call.  In case of "
12084 #~ "timeout, the operation fails with the error B<ETIMEDOUT>.  If the futex "
12085 #~ "was not equal to the expected value, the operation fails with the error "
12086 #~ "B<EWOULDBLOCK>.  Signals (see B<signal>(7))  or other spurious wakeups "
12087 #~ "cause B<FUTEX_WAIT> to fail with the error B<EINTR>."
12088 #~ msgstr ""
12089 #~ "プロセスが B<FUTEX_WAKE> の呼び出しで wake すると 0 を返す。 タイムアウト"
12090 #~ "の場合、操作はエラー B<ETIMEOUT> で失敗する。 futex が指定された値と等しく"
12091 #~ "ない場合、 エラー B<EWOULDBLOCK> で失敗する。 シグナルを受信するか "
12092 #~ "(B<signal>(7)  参照) 他の偽の wake があった場合には、エラー B<EINTR> で失"
12093 #~ "敗する。"
12094
12095 #~ msgid "An operation was not defined or error in page alignment."
12096 #~ msgstr ""
12097 #~ "操作が定義されていない。またはページ・アラインメントでエラーが発生した。"
12098
12099 #, fuzzy
12100 #~| msgid ""
12101 #~| "Indicates that this process is to be traced by its parent.  Any signal "
12102 #~| "(except B<SIGKILL>)  delivered to this process will cause it to stop and "
12103 #~| "its parent to be notified via B<wait>(2).  Also, all subsequent calls to "
12104 #~| "B<execve>(2)  by this process will cause a B<SIGTRAP> to be sent to it, "
12105 #~| "giving the parent a chance to gain control before the new program begins "
12106 #~| "execution.  A process probably shouldn't make this request if its parent "
12107 #~| "isn't expecting to trace it.  (I<pid>, I<addr>, and I<data> are ignored.)"
12108 #~ msgid ""
12109 #~ "Indicate that this process is to be traced by its parent.  Any signal "
12110 #~ "(except B<SIGKILL>)  delivered to this process will cause it to stop and "
12111 #~ "its parent to be notified via B<waitpid>(2).  In addition, all subsequent "
12112 #~ "calls to B<execve>(2)  by the traced process will cause a B<SIGTRAP> to "
12113 #~ "be sent to it, giving the parent a chance to gain control before the new "
12114 #~ "program begins execution.  A process probably shouldn't make this request "
12115 #~ "if its parent isn't expecting to trace it.  (I<pid>, I<addr>, and I<data> "
12116 #~ "are ignored.)"
12117 #~ msgstr ""
12118 #~ "このプロセスが親プロセスによってトレースされることを表す。 このプロセスに "
12119 #~ "(B<SIGKILL> 以外の) シグナルが配送されると、 プロセスは停止し、親プロセス"
12120 #~ "に B<wait>(2)  を通じて通知される。 また、これ以降はこのプロセスが "
12121 #~ "B<execve>(2)  を呼び出す度に B<SIGTRAP> が送信されるようになる。 これに"
12122 #~ "よって、親プロセスは 新しいプログラムが実行を開始する前に制御することがで"
12123 #~ "きる。 親プロセスが自プロセスをトレースするつもりがない場合には、 おそらく"
12124 #~ "このプロセスは本要求を行うべきではないだろう。 (I<pid>, I<addr>, I<data> "
12125 #~ "は無視される。)"
12126
12127 #~ msgid ""
12128 #~ "Stop the child at the next B<execve>(2)  call with I<SIGTRAP | "
12129 #~ "PTRACE_EVENT_EXEC\\ E<lt>E<lt>\\ 8>."
12130 #~ msgstr ""
12131 #~ "次の B<execve>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_EXEC\\ E<lt>E<lt>"
12132 #~ "\\ 8> で子プロセスの動作を停止させる。"
12133
12134 #~ msgid ""
12135 #~ "Stop the child at the completion of the next B<vfork>(2)  call with "
12136 #~ "I<SIGTRAP | PTRACE_EVENT_VFORK_DONE\\ E<lt>E<lt>\\ 8>."
12137 #~ msgstr ""
12138 #~ "次の B<vfork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_VFORK_DONE\\ "
12139 #~ "E<lt>E<lt>\\ 8> で子プロセスの動作を停止させる。"
12140
12141 #~ msgid ""
12142 #~ "Attaches to the process specified in I<pid>, making it a traced \"child\" "
12143 #~ "of the calling process; the behavior of the child is as if it had done a "
12144 #~ "B<PTRACE_TRACEME>.  The calling process actually becomes the parent of "
12145 #~ "the child process for most purposes (e.g., it will receive notification "
12146 #~ "of child events and appears in B<ps>(1)  output as the child's parent), "
12147 #~ "but a B<getppid>(2)  by the child will still return the PID of the "
12148 #~ "original parent.  The child is sent a B<SIGSTOP>, but will not "
12149 #~ "necessarily have stopped by the completion of this call; use B<wait>(2)  "
12150 #~ "to wait for the child to stop.  (I<addr> and I<data> are ignored.)"
12151 #~ msgstr ""
12152 #~ "I<pid> で指定されたプロセスに接続 (attach) し、それを呼び出し元のプロセス"
12153 #~ "の 子プロセスとしてトレースできるようにする。子プロセスは "
12154 #~ "B<PTRACE_TRACEME> したかのように振舞う。呼び出し元のプロセスはそのほとんど"
12155 #~ "の目的において、 その子プロセスの実際の親になる (例えば、子プロセスのイベ"
12156 #~ "ントの 通知を受けとったり、 B<ps>(1)  で親として表示されたりする)。しか"
12157 #~ "し、子プロセスで B<getppid>(2)  を実行した場合には元の親プロセスの PID が"
12158 #~ "返される。 子プロセスには B<SIGSTOP> が送られるが、この呼び出しが完了する"
12159 #~ "までに 必ずしも停止するとは限らない。子プロセスの停止を待つには B<wait>"
12160 #~ "(2)  を使用すること。(I<addr> と I<data> は無視される。)"
12161
12162 #~ msgid ""
12163 #~ "Tracing causes a few subtle differences in the semantics of traced "
12164 #~ "processes.  For example, if a process is attached to with "
12165 #~ "B<PTRACE_ATTACH>, its original parent can no longer receive notification "
12166 #~ "via B<wait>(2)  when it stops, and there is no way for the new parent to "
12167 #~ "effectively simulate this notification."
12168 #~ msgstr ""
12169 #~ "トレースすることによってトレースされるプロセスの動作に些細な違いが 起こる"
12170 #~ "ことがある。例えば、プロセスが B<PTRACE_ATTACH> によって接続された場合に"
12171 #~ "は、そのプロセスが停止した時でも本来の親は B<wait>(2)  を使って通知を受け"
12172 #~ "ることができず、新しい親が効率よく この通知を真似る方法もない。"
12173
12174 #~ msgid ""
12175 #~ "When the parent receives an event with B<PTRACE_EVENT_*> set, the child "
12176 #~ "is not in the normal signal delivery path.  This means the parent cannot "
12177 #~ "do B<ptrace>(PTRACE_CONT)  with a signal or B<ptrace>(PTRACE_KILL).  "
12178 #~ "B<kill>(2)  with a B<SIGKILL> signal can be used instead to kill the "
12179 #~ "child process after receiving one of these messages."
12180 #~ msgstr ""
12181 #~ "親プロセスが B<PTRACE_EVENT_*> がセットされたイベントを受信した場合、 子プ"
12182 #~ "ロセスは通常通りのシグナル配送が行われる状態にない。 つまり、親プロセス"
12183 #~ "が、 シグナルにより B<ptrace>(PTRACE_CONT)  を行ったり、 B<ptrace>"
12184 #~ "(PTRACE_KILL)  を行ったりできないということである。 こららのメッセージの受"
12185 #~ "信後は、子プロセスを終了 (kill) するのに、 シグナル B<SIGKILL> を指定して "
12186 #~ "B<kill>(2)  を行う方法を代わりに使用できる。"
12187
12188 #~ msgid ""
12189 #~ "The SunOS man page describes B<ptrace>()  as \"unique and arcane\", which "
12190 #~ "it is.  The proc-based debugging interface present in Solaris 2 "
12191 #~ "implements a superset of B<ptrace>()  functionality in a more powerful "
12192 #~ "and uniform way."
12193 #~ msgstr ""
12194 #~ "SunOS のマニュアル・ページには B<ptrace>()  は「独特で不可解」と記述されて"
12195 #~ "おり、まさしくそうである。 Solaris 2 では proc ベースの デバッグのインター"
12196 #~ "フェースとして B<ptrace>()  の上位互換関数が実装され、より強力で一貫性のあ"
12197 #~ "るものとなっている。"
12198
12199 #~ msgid ""
12200 #~ "The second argument I<special> is the block special device these quota "
12201 #~ "apply to.  It must be mounted."
12202 #~ msgstr ""
12203 #~ "二番目の引き数 I<special> は quota を適用するデバイスのブロック・スペシャ"
12204 #~ "ル・ファイルである。 そのデバイスはマウントされていなくてはならない。"
12205
12206 #~ msgid ""
12207 #~ "The third argument I<id> is the user or group ID these quota apply to "
12208 #~ "(when relevant)."
12209 #~ msgstr ""
12210 #~ "三番目の引き数 I<id> には、(必要な場合に) quota を適用するユーザーもしくは"
12211 #~ "グループの ID を指定する。"
12212
12213 #~ msgid ""
12214 #~ "The fourth argument I<addr> is the address of a data structure, depending "
12215 #~ "on the command."
12216 #~ msgstr ""
12217 #~ "四番目の引き数 I<addr> には、コマンドごとに異ったデータ構造体のアドレスを"
12218 #~ "指定する。"
12219
12220 #~ msgid ""
12221 #~ "Enable quota.  The I<addr> argument is the pathname of the file "
12222 #~ "containing the quota for the file system."
12223 #~ msgstr ""
12224 #~ "quota を有効にする。 I<addr> 引き数には、そのファイル・システムの quota が"
12225 #~ "記録されているファイルの パス名を指定する。"
12226
12227 #~ msgid "Disable quota."
12228 #~ msgstr "quota を無効にする。"
12229
12230 #~ msgid "Set limits and current usage; I<addr> is as before."
12231 #~ msgstr "制限値と現在の使用量を設定する: I<addr> は同上。"
12232
12233 #~ msgid "Set limits; I<addr> is as before."
12234 #~ msgstr "制限値を設定する; I<addr> は同上。"
12235
12236 #~ msgid "Set usage."
12237 #~ msgstr "使用量を設定する。"
12238
12239 #~ msgid "Sync disk copy of a file system's quota."
12240 #~ msgstr "ファイル・システムの quota ファイルをディスクと同期させる。"
12241
12242 #~ msgid "Get collected stats."
12243 #~ msgstr "収集された統計を取得する。"
12244
12245 #~ msgid ""
12246 #~ "On success, B<quotactl>()  returns 0.  On error, -1 is returned, and "
12247 #~ "I<errno> is set appropriately."
12248 #~ msgstr ""
12249 #~ "B<quotactl>()  は、成功時には 0 を返す。エラー時は、-1 を返すとともに、 "
12250 #~ "I<errno> が適切な値に設定される。"
12251
12252 #~ msgid "B<Q_QUOTAON> was asked, but quotas were enabled already."
12253 #~ msgstr "B<Q_QUOTAON> の要求がなされたが、quota(s) は既に有効になっている。"
12254
12255 #~ msgid "Bad I<addr> value."
12256 #~ msgstr "I<addr> の値に誤りがある。"
12257
12258 #~ msgid ""
12259 #~ "I<type> is not a known quota type.  Or, I<special> could not be found."
12260 #~ msgstr ""
12261 #~ "I<type> が既知の quota の形式ではない。もしくは、 I<special> デバイスが見"
12262 #~ "付からなかった。"
12263
12264 #~ msgid "Too many open files: cannot open quota file."
12265 #~ msgstr "ファイルをオープンしすぎている: quota ファイルをオープン出来ない。"
12266
12267 #~ msgid "I<special> cannot be found in the mount table."
12268 #~ msgstr "I<special> がマウント・テーブル内に見当たらない。"
12269
12270 #~ msgid "The kernel was compiled without quota support."
12271 #~ msgstr "quota を使用可にしてカーネルをコンパイルしていない。"
12272
12273 #~ msgid ""
12274 #~ "The process was not root (for the file system), and B<Q_GETQUOTA> was "
12275 #~ "asked for another I<id> than that of the process itself, or anything "
12276 #~ "other than B<Q_GETSTATS> or B<Q_SYNC> was asked."
12277 #~ msgstr ""
12278 #~ "プロセスが (そのファイル・システムの) root のものではなく、 かつプロセス自"
12279 #~ "身のものとは異なる I<id> に対して B<Q_GETQUOTA> 要求を行なった。 もしく"
12280 #~ "は、 B<Q_GETSTATS>, B<Q_SYNC> 以外の要求がなされた。"
12281
12282 #~ msgid ""
12283 #~ "B<Q_GETQUOTA> or B<Q_SETQUOTA> or B<Q_SETUSE> or B<Q_SETQLIM> was asked "
12284 #~ "for a file system that didn't have quota enabled."
12285 #~ msgstr ""
12286 #~ "quota が有効になっていないファイル・システムに対して B<Q_GETQUOTA>, "
12287 #~ "B<Q_SETQUOTA>, B<Q_SETUSE>, B<Q_SETQLIM> のいずれかの要求がなされた。"