OSDN Git Service

(split) LDP: Translate snapshot
[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-07-15 16:08+0900\n"
10 "PO-Revision-Date: 2013-07-24 02:16+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 "B<arch_prctl>()  関数はアーキテクチャ固有のプロセス状態またはスレッド状態を設定する。 I<code> は副機能を選択し、引き数 I<addr> を副機能に渡す。 I<addr> は、\"set\" 操作では I<unsigned long> として、\"get\" 操作では I<unsigned long\\ *> として解釈される。"
144
145 #. type: Plain text
146 #: build/C/man2/arch_prctl.2:54
147 msgid "Subfunctions for x86-64 are:"
148 msgstr "x86-64 の副機能は以下の通り:"
149
150 #. type: TP
151 #: build/C/man2/arch_prctl.2:54
152 #, no-wrap
153 msgid "B<ARCH_SET_FS>"
154 msgstr "B<ARCH_SET_FS>"
155
156 #. type: Plain text
157 #: build/C/man2/arch_prctl.2:60
158 msgid "Set the 64-bit base for the I<FS> register to I<addr>."
159 msgstr "I<FS> レジスタの 64 ビットベースを I<addr> に設定する。"
160
161 #. type: TP
162 #: build/C/man2/arch_prctl.2:60
163 #, no-wrap
164 msgid "B<ARCH_GET_FS>"
165 msgstr "B<ARCH_GET_FS>"
166
167 #. type: Plain text
168 #: build/C/man2/arch_prctl.2:68
169 msgid ""
170 "Return the 64-bit base value for the I<FS> register of the current thread in "
171 "the I<unsigned long> pointed to by I<addr>."
172 msgstr ""
173 "現在のスレッドの I<FS> レジスタの 64 ビットベース値を、 I<addr> が指す "
174 "I<unsigned long> の領域に格納する。"
175
176 #. type: TP
177 #: build/C/man2/arch_prctl.2:68
178 #, no-wrap
179 msgid "B<ARCH_SET_GS>"
180 msgstr "B<ARCH_SET_GS>"
181
182 #. type: Plain text
183 #: build/C/man2/arch_prctl.2:74
184 msgid "Set the 64-bit base for the I<GS> register to I<addr>."
185 msgstr "I<GS> レジスタの 64 ビットベースを I<addr> に設定する。"
186
187 #. type: TP
188 #: build/C/man2/arch_prctl.2:74
189 #, no-wrap
190 msgid "B<ARCH_GET_GS>"
191 msgstr "B<ARCH_GET_GS>"
192
193 #. type: Plain text
194 #: build/C/man2/arch_prctl.2:82
195 msgid ""
196 "Return the 64-bit base value for the I<GS> register of the current thread in "
197 "the I<unsigned long> pointed to by I<addr>."
198 msgstr ""
199 "現在のスレッドの I<GS> レジスタの 64 ビットベース値を、 I<addr> が指す "
200 "I<unsigned long> の領域に格納する。"
201
202 #. type: SH
203 #: build/C/man2/arch_prctl.2:82 build/C/man2/futex.2:209
204 #: build/C/man2/get_robust_list.2:77 build/C/man2/getunwind.2:81
205 #: build/C/man2/kexec_load.2:114 build/C/man2/lookup_dcookie.2:43
206 #: build/C/man2/modify_ldt.2:98 build/C/man2/nfsservctl.2:51
207 #: build/C/man2/pciconfig_read.2:50 build/C/man2/perf_event_open.2:1964
208 #: build/C/man2/perfmonctl.2:190 build/C/man2/personality.2:57
209 #: build/C/man2/pivot_root.2:101 build/C/man2/process_vm_readv.2:209
210 #: build/C/man2/ptrace.2:1714 build/C/man2/quotactl.2:419
211 #: build/C/man2/sendfile.2:108 build/C/man2/set_tid_address.2:88
212 #: build/C/man2/splice.2:127 build/C/man2/tee.2:85 build/C/man2/vm86.2:54
213 #: build/C/man2/vmsplice.2:113
214 #, no-wrap
215 msgid "RETURN VALUE"
216 msgstr "返り値"
217
218 #. type: Plain text
219 #: build/C/man2/arch_prctl.2:88
220 msgid ""
221 "On success, B<arch_prctl>()  returns 0; on error, -1 is returned, and "
222 "I<errno> is set to indicate the error."
223 msgstr ""
224 "成功すると、 B<arch_prctl>()  は 0 を返す。エラーの場合、-1 を返し、 "
225 "I<errno> をエラーを示す値に設定する。"
226
227 #. type: SH
228 #: build/C/man2/arch_prctl.2:88 build/C/man2/futex.2:234
229 #: build/C/man2/get_robust_list.2:84 build/C/man2/getunwind.2:88
230 #: build/C/man2/kexec_load.2:121 build/C/man2/lookup_dcookie.2:50
231 #: build/C/man2/modify_ldt.2:108 build/C/man2/pciconfig_read.2:77
232 #: build/C/man2/perf_event_open.2:1970 build/C/man2/personality.2:64
233 #: build/C/man2/pivot_root.2:105 build/C/man2/process_vm_readv.2:229
234 #: build/C/man2/ptrace.2:1728 build/C/man2/quotactl.2:427
235 #: build/C/man2/sendfile.2:115 build/C/man2/set_tid_address.2:91
236 #: build/C/man2/splice.2:142 build/C/man2/tee.2:100 build/C/man2/vm86.2:59
237 #: build/C/man2/vmsplice.2:122
238 #, no-wrap
239 msgid "ERRORS"
240 msgstr "エラー"
241
242 #. type: TP
243 #: build/C/man2/arch_prctl.2:89 build/C/man2/futex.2:249
244 #: build/C/man2/get_robust_list.2:111 build/C/man2/lookup_dcookie.2:51
245 #: build/C/man2/modify_ldt.2:109 build/C/man2/process_vm_readv.2:251
246 #: build/C/man2/process_vm_readv.2:256 build/C/man2/ptrace.2:1732
247 #: build/C/man2/quotactl.2:428 build/C/man2/sendfile.2:125
248 #: build/C/man2/vm86.2:60
249 #, no-wrap
250 msgid "B<EFAULT>"
251 msgstr "B<EFAULT>"
252
253 #. type: Plain text
254 #: build/C/man2/arch_prctl.2:93
255 msgid ""
256 "I<addr> points to an unmapped address or is outside the process address "
257 "space."
258 msgstr ""
259 "I<addr> がアンマップされたアドレスを指しているか、プロセスのアドレス空間の外"
260 "にある。"
261
262 #. type: TP
263 #: build/C/man2/arch_prctl.2:93 build/C/man2/futex.2:261
264 #: build/C/man2/get_robust_list.2:88 build/C/man2/kexec_load.2:126
265 #: build/C/man2/lookup_dcookie.2:54 build/C/man2/modify_ldt.2:113
266 #: build/C/man2/pciconfig_read.2:78 build/C/man2/perf_event_open.2:1971
267 #: build/C/man2/personality.2:65 build/C/man2/pivot_root.2:114
268 #: build/C/man2/process_vm_readv.2:230 build/C/man2/process_vm_readv.2:241
269 #: build/C/man2/process_vm_readv.2:245 build/C/man2/ptrace.2:1743
270 #: build/C/man2/quotactl.2:434 build/C/man2/quotactl.2:501
271 #: build/C/man2/sendfile.2:128 build/C/man2/splice.2:147
272 #: build/C/man2/tee.2:101 build/C/man2/vmsplice.2:127
273 #, no-wrap
274 msgid "B<EINVAL>"
275 msgstr "B<EINVAL>"
276
277 #. type: Plain text
278 #: build/C/man2/arch_prctl.2:97
279 msgid "I<code> is not a valid subcommand."
280 msgstr "I<code> が有効なサブコマンドでない。"
281
282 #. type: TP
283 #: build/C/man2/arch_prctl.2:97 build/C/man2/get_robust_list.2:98
284 #: build/C/man2/kexec_load.2:133 build/C/man2/lookup_dcookie.2:65
285 #: build/C/man2/pciconfig_read.2:105 build/C/man2/pivot_root.2:120
286 #: build/C/man2/process_vm_readv.2:267 build/C/man2/ptrace.2:1753
287 #: build/C/man2/quotactl.2:456 build/C/man2/vm86.2:68
288 #, no-wrap
289 msgid "B<EPERM>"
290 msgstr "B<EPERM>"
291
292 #.  .SH AUTHOR
293 #.  Man page written by Andi Kleen.
294 #. type: Plain text
295 #: build/C/man2/arch_prctl.2:103
296 msgid "I<addr> is outside the process address space."
297 msgstr "I<addr> がプロセスのアドレス空間の外にある。"
298
299 #. type: SH
300 #: build/C/man2/arch_prctl.2:103 build/C/man2/futex.2:296
301 #: build/C/man2/getunwind.2:96 build/C/man2/kexec_load.2:142
302 #: build/C/man2/lookup_dcookie.2:78 build/C/man2/modify_ldt.2:130
303 #: build/C/man2/nfsservctl.2:56 build/C/man2/outb.2:87
304 #: build/C/man2/pciconfig_read.2:112 build/C/man2/perf_event_open.2:1989
305 #: build/C/man2/perfmonctl.2:199 build/C/man2/personality.2:68
306 #: build/C/man2/pivot_root.2:128 build/C/man2/process_vm_readv.2:279
307 #: build/C/man2/ptrace.2:1771 build/C/man2/sendfile.2:148
308 #: build/C/man2/set_tid_address.2:97 build/C/man2/splice.2:170
309 #: build/C/man2/tee.2:119 build/C/man2/vm86.2:73 build/C/man2/vmsplice.2:143
310 #, no-wrap
311 msgid "CONFORMING TO"
312 msgstr "準拠"
313
314 #. type: Plain text
315 #: build/C/man2/arch_prctl.2:107
316 msgid ""
317 "B<arch_prctl>()  is a Linux/x86-64 extension and should not be used in "
318 "programs intended to be portable."
319 msgstr ""
320 "B<arch_prctl>()  は Linux/x86-64 拡張であり、移植性を意図したプログラムでは使"
321 "うべきでない。"
322
323 #. type: SH
324 #: build/C/man2/arch_prctl.2:107 build/C/man2/futex.2:298
325 #: build/C/man2/get_robust_list.2:119 build/C/man2/getunwind.2:99
326 #: build/C/man2/kexec_load.2:144 build/C/man2/lookup_dcookie.2:81
327 #: build/C/man2/modify_ldt.2:133 build/C/man2/perf_event_open.2:1994
328 #: build/C/man2/perfmonctl.2:202 build/C/man2/pivot_root.2:131
329 #: build/C/man2/process_vm_readv.2:281 build/C/man2/ptrace.2:1773
330 #: build/C/man2/sendfile.2:155 build/C/man2/splice.2:172
331 #: build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145
332 #, no-wrap
333 msgid "NOTES"
334 msgstr "注意"
335
336 #. type: Plain text
337 #: build/C/man2/arch_prctl.2:110
338 msgid ""
339 "B<arch_prctl>()  is supported only on Linux/x86-64 for 64-bit programs "
340 "currently."
341 msgstr ""
342 "B<arch_prctl>()  は現在のところ Linux/x86-64 上の 64 ビットプログラムでのみサ"
343 "ポートされている。"
344
345 #. type: Plain text
346 #: build/C/man2/arch_prctl.2:112
347 msgid "The 64-bit base changes when a new 32-bit segment selector is loaded."
348 msgstr ""
349 "新しい 32 ビットセグメントセレクタがロードされた場合、 64 ビットベースは変更"
350 "される。"
351
352 #. type: Plain text
353 #: build/C/man2/arch_prctl.2:115
354 msgid "B<ARCH_SET_GS> is disabled in some kernels."
355 msgstr "B<ARCH_SET_GS> が無効にされているカーネルもある。"
356
357 #. type: Plain text
358 #: build/C/man2/arch_prctl.2:130
359 msgid ""
360 "Context switches for 64-bit segment bases are rather expensive.  It may be a "
361 "faster alternative to set a 32-bit base using a segment selector by setting "
362 "up an LDT with B<modify_ldt>(2)  or using the B<set_thread_area>(2)  system "
363 "call in kernel 2.5 or later.  B<arch_prctl>()  is needed only when you want "
364 "to set bases that are larger than 4GB.  Memory in the first 2GB of address "
365 "space can be allocated by using B<mmap>(2)  with the B<MAP_32BIT> flag."
366 msgstr ""
367 "64 ビットセグメントベースのコンテキストスイッチは、やや高価である。 LDT を "
368 "B<modify_ldt>(2)  で設定してセグメントセレクタを使うか、 (カーネル 2.5 以降"
369 "の)  B<set_thread_area>(2)  システムコールを使うことにより、 32 ビットベース"
370 "を設定するという高速な代替手段もある。 4GB より大きなベースを設定したい場合に"
371 "のみ、 B<arch_prctl>()  が必要である。 アドレス空間の最初の 2GB にあるメモリ"
372 "は、 B<mmap>(2)  に B<MAP_32BIT> フラグを指定して割り当てることができる。"
373
374 #. type: Plain text
375 #: build/C/man2/arch_prctl.2:135
376 msgid ""
377 "As of version 2.7, glibc provides no prototype for B<arch_prctl>().  You "
378 "have to declare it yourself for now.  This may be fixed in future glibc "
379 "versions."
380 msgstr ""
381 "バージョン 2.7 時点では、glibc には B<arch_prctl>()  のプロトタイプがない。 "
382 "今のところユーザは自分自身で宣言する必要がある。 これは将来の glibc のバー"
383 "ジョンで修正されるかもしれない。"
384
385 #. type: Plain text
386 #: build/C/man2/arch_prctl.2:138
387 msgid "I<FS> may be already used by the threading library."
388 msgstr "I<FS> はスレッドライブラリで既に使われているかもしれない。"
389
390 #. type: SH
391 #: build/C/man2/arch_prctl.2:138 build/C/man2/futex.2:312
392 #: build/C/man2/get_robust_list.2:128 build/C/man2/getunwind.2:111
393 #: build/C/man2/kexec_load.2:159 build/C/man2/modify_ldt.2:136
394 #: build/C/man2/outb.2:96 build/C/man2/pciconfig_read.2:114
395 #: build/C/man2/perf_event_open.2:2108 build/C/man2/perfmonctl.2:205
396 #: build/C/man2/pivot_root.2:143 build/C/man2/process_vm_readv.2:331
397 #: build/C/man2/ptrace.2:1927 build/C/man2/quotactl.2:507
398 #: build/C/man2/sendfile.2:197 build/C/man2/set_tid_address.2:99
399 #: build/C/man2/splice.2:226 build/C/man2/tee.2:197
400 #: build/C/man2/vmsplice.2:154
401 #, no-wrap
402 msgid "SEE ALSO"
403 msgstr "関連項目"
404
405 #. type: Plain text
406 #: build/C/man2/arch_prctl.2:143
407 msgid "B<mmap>(2), B<modify_ldt>(2), B<prctl>(2), B<set_thread_area>(2)"
408 msgstr "B<mmap>(2), B<modify_ldt>(2), B<prctl>(2), B<set_thread_area>(2)"
409
410 #. type: Plain text
411 #: build/C/man2/arch_prctl.2:145
412 msgid "AMD X86-64 Programmer's manual"
413 msgstr "AMD X86-64 Programmer's manual"
414
415 #. type: SH
416 #: build/C/man2/arch_prctl.2:145 build/C/man2/futex.2:325
417 #: build/C/man2/get_robust_list.2:137 build/C/man2/getunwind.2:113
418 #: build/C/man2/kexec_load.2:162 build/C/man2/lookup_dcookie.2:88
419 #: build/C/man2/modify_ldt.2:138 build/C/man2/nfsservctl.2:58
420 #: build/C/man2/outb.2:99 build/C/man2/pciconfig_read.2:116
421 #: build/C/man2/perf_event_open.2:2114 build/C/man2/perfmonctl.2:209
422 #: build/C/man2/personality.2:72 build/C/man2/pivot_root.2:149
423 #: build/C/man2/process_vm_readv.2:334 build/C/man2/ptrace.2:1941
424 #: build/C/man2/quotactl.2:512 build/C/man2/sendfile.2:203
425 #: build/C/man2/set_tid_address.2:102 build/C/man2/splice.2:230
426 #: build/C/man2/tee.2:200 build/C/man2/vm86.2:76 build/C/man2/vmsplice.2:157
427 #, no-wrap
428 msgid "COLOPHON"
429 msgstr "この文書について"
430
431 #. type: Plain text
432 #: build/C/man2/arch_prctl.2:152 build/C/man2/futex.2:332
433 #: build/C/man2/get_robust_list.2:144 build/C/man2/getunwind.2:120
434 #: build/C/man2/kexec_load.2:169 build/C/man2/lookup_dcookie.2:95
435 #: build/C/man2/modify_ldt.2:145 build/C/man2/nfsservctl.2:65
436 #: build/C/man2/outb.2:106 build/C/man2/pciconfig_read.2:123
437 #: build/C/man2/perf_event_open.2:2121 build/C/man2/perfmonctl.2:216
438 #: build/C/man2/personality.2:79 build/C/man2/pivot_root.2:156
439 #: build/C/man2/process_vm_readv.2:341 build/C/man2/ptrace.2:1948
440 #: build/C/man2/quotactl.2:519 build/C/man2/sendfile.2:210
441 #: build/C/man2/set_tid_address.2:109 build/C/man2/splice.2:237
442 #: build/C/man2/tee.2:207 build/C/man2/vm86.2:83 build/C/man2/vmsplice.2:164
443 msgid ""
444 "This page is part of release 3.52 of the Linux I<man-pages> project.  A "
445 "description of the project, and information about reporting bugs, can be "
446 "found at \\%http://www.kernel.org/doc/man-pages/."
447 msgstr ""
448 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.52 の一部\n"
449 "である。プロジェクトの説明とバグ報告に関する情報は\n"
450 "http://www.kernel.org/doc/man-pages/ に書かれている。"
451
452 #. type: TH
453 #: build/C/man2/futex.2:53
454 #, no-wrap
455 msgid "FUTEX"
456 msgstr "FUTEX"
457
458 #. type: TH
459 #: build/C/man2/futex.2:53
460 #, no-wrap
461 msgid "2013-03-15"
462 msgstr "2013-03-15"
463
464 #. type: Plain text
465 #: build/C/man2/futex.2:56
466 msgid "futex - fast user-space locking"
467 msgstr "futex - 高速ユーザ空間ロック"
468
469 #. type: Plain text
470 #: build/C/man2/futex.2:61
471 #, no-wrap
472 msgid ""
473 "B<#include E<lt>linux/futex.hE<gt>>\n"
474 "B<#include E<lt>sys/time.hE<gt>>\n"
475 msgstr ""
476 "B<#include E<lt>linux/futex.hE<gt>>\n"
477 "B<#include E<lt>sys/time.hE<gt>>\n"
478
479 #. type: Plain text
480 #: build/C/man2/futex.2:64
481 #, no-wrap
482 msgid "B<int futex(int *>I<uaddr>B<, int >I<op>B<, int >I<val>B<, const struct timespec *>I<timeout>B<,>\n"
483 msgstr "B<int futex(int *>I<uaddr>B<, int >I<op>B<, int >I<val>B<, const struct timespec *>I<timeout>B<,>\n"
484
485 #.  int *? void *? u32 *?
486 #. type: Plain text
487 #: build/C/man2/futex.2:67
488 #, no-wrap
489 msgid "B<          int *>I<uaddr2>B<, int >I<val3>B<);>\n"
490 msgstr "B<          int *>I<uaddr2>B<, int >I<val3>B<);>\n"
491
492 #. type: Plain text
493 #: build/C/man2/futex.2:84
494 msgid ""
495 "The B<futex>()  system call provides a method for a program to wait for a "
496 "value at a given address to change, and a method to wake up anyone waiting "
497 "on a particular address (while the addresses for the same memory in separate "
498 "processes may not be equal, the kernel maps them internally so the same "
499 "memory mapped in different locations will correspond for B<futex>()  "
500 "calls).  This system call is typically used to implement the contended case "
501 "of a lock in shared memory, as described in B<futex>(7)."
502 msgstr ""
503 "B<futex>()  システムコールは、 指定したアドレスの値が変更されるのをプログラム"
504 "が待つ手段や 特定のアドレスに対して待機中のプロセスを wake (起床) させる手段"
505 "を提供する (プロセスが異なれば同じメモリに対するアドレスも同じではないかもし"
506 "れないが、 カーネルは異なる位置にマップされた同じメモリを B<futex>()  で使え"
507 "るよう内部でマップする)。 通常は、このシステムコールは B<futex>(7)  に書かれ"
508 "ているように、 共有メモリ中のロックが競合する場合の処理を実装するのに用いられ"
509 "る。"
510
511 #. type: Plain text
512 #: build/C/man2/futex.2:91
513 msgid ""
514 "When a B<futex>(7)  operation did not finish uncontended in user space, a "
515 "call needs to be made to the kernel to arbitrate.  Arbitration can either "
516 "mean putting the calling process to sleep or, conversely, waking a waiting "
517 "process."
518 msgstr ""
519 "B<futex>(7)  の操作がユーザ空間で競合なく完了しなかった場合、 カーネルに仲裁"
520 "させるためにシステムコールを呼ぶ必要がある。 仲裁というのは、呼び出しプロセス"
521 "を sleep (起床待ち) させたり、反対に 待ちプロセスを wake させたりすることを意"
522 "味する。"
523
524 #. type: Plain text
525 #: build/C/man2/futex.2:98
526 msgid ""
527 "Callers of this function are expected to adhere to the semantics as set out "
528 "in B<futex>(7).  As these semantics involve writing nonportable assembly "
529 "instructions, this in turn probably means that most users will in fact be "
530 "library authors and not general application developers."
531 msgstr ""
532 "この関数を呼び出すプロセスは B<futex>(7)  に記述されているセマンティクスに忠"
533 "実であることが要求される。 このセマンティクスには移植不可能なアセンブリ命令を"
534 "書くことが含まれる。 このことは言い換えると futex のユーザのほとんどは実際は"
535 "ライブラリの作者であり、 一般アプリケーションの開発者ではないということであ"
536 "る。"
537
538 #. type: Plain text
539 #: build/C/man2/futex.2:106
540 msgid ""
541 "The I<uaddr> argument needs to point to an aligned integer which stores the "
542 "counter.  The operation to execute is passed via the I<op> argument, along "
543 "with a value I<val>."
544 msgstr ""
545 "I<uaddr> 引き数は、カウンタを格納する、 アラインメントの揃った int 型変数を指"
546 "している必要がある。 実行する操作は I<op> 引き数を介して、値 I<val> とともに"
547 "渡される。"
548
549 #. type: Plain text
550 #: build/C/man2/futex.2:108
551 msgid "Five operations are currently defined:"
552 msgstr "現在のところ 5 つの操作が定義されている:"
553
554 #. type: TP
555 #: build/C/man2/futex.2:108 build/C/man2/futex.2:216
556 #, no-wrap
557 msgid "B<FUTEX_WAIT>"
558 msgstr "B<FUTEX_WAIT>"
559
560 #. type: Plain text
561 #: build/C/man2/futex.2:126
562 msgid ""
563 "This operation atomically verifies that the futex address I<uaddr> still "
564 "contains the value I<val>, and sleeps awaiting B<FUTEX_WAKE> on this futex "
565 "address.  If the I<timeout> argument is non-NULL, its contents describe the "
566 "minimum duration of the wait, which is infinite otherwise.  The arguments "
567 "I<uaddr2> and I<val3> are ignored."
568 msgstr ""
569 "この操作は futex アドレス I<uaddr> に指定された値 I<val> がまだ格納されている"
570 "かどうかを不可分操作で検証し、 sleep 状態で この futex アドレスに対して "
571 "B<FUTEX_WAKE> が実行されるのを待つ。 I<timeout> 引き数が NULL でない場合、そ"
572 "の内容は 待ち時間の最大値を表す。NULL の場合は無限大を表す。 引き数 "
573 "I<uaddr2> と I<val3> は無視される。"
574
575 #. type: Plain text
576 #: build/C/man2/futex.2:134
577 msgid ""
578 "For B<futex>(7), this call is executed if decrementing the count gave a "
579 "negative value (indicating contention), and will sleep until another process "
580 "releases the futex and executes the B<FUTEX_WAKE> operation."
581 msgstr ""
582 "B<futex>(7)  に照らし合わせると、この呼び出しは カウントのデクリメントで負の"
583 "値 (競合を表す) になった場合に実行され、 別のプロセスがその futex を解放し "
584 "B<FUTEX_WAKE> の操作を実行するまで sleep する。"
585
586 #. type: TP
587 #: build/C/man2/futex.2:134 build/C/man2/futex.2:222
588 #, no-wrap
589 msgid "B<FUTEX_WAKE>"
590 msgstr "B<FUTEX_WAKE>"
591
592 #. type: Plain text
593 #: build/C/man2/futex.2:145
594 msgid ""
595 "This operation wakes at most I<val> processes waiting on this futex address "
596 "(i.e., inside B<FUTEX_WAIT>).  The arguments I<timeout>, I<uaddr2> and "
597 "I<val3> are ignored."
598 msgstr ""
599 "この操作では指定した futex アドレスに対して待ち状態の (すなわち "
600 "B<FUTEX_WAIT> 中の) 最大 I<val> 個のプロセスを wake させる。 引き数 "
601 "I<timeout>, I<uaddr2>, I<val3> は無視される。"
602
603 #. type: Plain text
604 #: build/C/man2/futex.2:151
605 msgid ""
606 "For B<futex>(7), this is executed if incrementing the count showed that "
607 "there were waiters, once the futex value has been set to 1 (indicating that "
608 "it is available)."
609 msgstr ""
610 "B<futex>(4) に照らし合わせると、 この操作は カウントのインクリメントで待ちプ"
611 "ロセスがあると判明し、 futex 値が 1 に設定された (利用可能であることを表す) "
612 "場合に実行される。"
613
614 #. type: TP
615 #: build/C/man2/futex.2:151
616 #, no-wrap
617 msgid "B<FUTEX_FD> (present up to and including Linux 2.6.25)"
618 msgstr "B<FUTEX_FD> (Linux 2.6.25 以前)"
619
620 #.  , suitable for .BR poll (2).
621 #. type: Plain text
622 #: build/C/man2/futex.2:167
623 msgid ""
624 "To support asynchronous wakeups, this operation associates a file descriptor "
625 "with a futex.  If another process executes a B<FUTEX_WAKE>, the process will "
626 "receive the signal number that was passed in I<val>.  The calling process "
627 "must close the returned file descriptor after use.  The arguments "
628 "I<timeout>, I<uaddr2> and I<val3> are ignored."
629 msgstr ""
630 "非同期の wake に対応するため、この操作はファイルディスクリプタを futex に 関"
631 "連づける。 別のプロセスが B<FUTEX_WAKE> を実行すると、プロセスは I<val> で渡"
632 "されたシグナル番号のシグナルを受信する。 呼び出しプロセスは使用後、返された"
633 "ファイルディスクリプタを クローズしなければならない。 引き数 I<timeout>, "
634 "I<uaddr2>, I<val3> は無視される。"
635
636 #. type: Plain text
637 #: build/C/man2/futex.2:172
638 msgid ""
639 "To prevent race conditions, the caller should test if the futex has been "
640 "upped after B<FUTEX_FD> returns."
641 msgstr ""
642 "競合状態を防止するため、呼び出しプロセスは B<FUTEX_FD> が返ったあと futex が "
643 "up されたかどうかを確認しなければならない。"
644
645 #. type: Plain text
646 #: build/C/man2/futex.2:176
647 msgid ""
648 "Because it was inherently racy, B<FUTEX_FD> has been removed from Linux "
649 "2.6.26 onward."
650 msgstr ""
651 "B<FUTEX_FD> はもともと競合が起きやすかったため、 Linux 2.6.26 以降で削除され"
652 "ている。"
653
654 #. type: TP
655 #: build/C/man2/futex.2:176
656 #, no-wrap
657 msgid "B<FUTEX_REQUEUE> (since Linux 2.5.70)"
658 msgstr "B<FUTEX_REQUEUE> (Linux 2.5.70 以降)"
659
660 #. type: Plain text
661 #: build/C/man2/futex.2:191
662 msgid ""
663 "This operation was introduced in order to avoid a \"thundering herd\" effect "
664 "when B<FUTEX_WAKE> is used and all processes woken up need to acquire "
665 "another futex.  This call wakes up I<val> processes, and requeues all other "
666 "waiters on the futex at address I<uaddr2>.  The arguments I<timeout> and "
667 "I<val3> are ignored."
668 msgstr ""
669 "この操作は、 B<FUTEX_WAKE> が使われていて、かつ wake されている全てのプロセス"
670 "が 他の futex を取得する必要がある場合に、 「獣の群れの暴走 (thundering "
671 "herd)」効果を避けるために導入された。 この呼び出しは I<val> 個のプロセスを "
672 "wake し、アドレス I<uaddr2> で futex を待っている他の全てのプロセスを再度"
673 "キューにいれる。 引き数 I<timeout> と I<val3> は無視される。"
674
675 #. type: TP
676 #: build/C/man2/futex.2:191
677 #, no-wrap
678 msgid "B<FUTEX_CMP_REQUEUE> (since Linux 2.6.7)"
679 msgstr "B<FUTEX_CMP_REQUEUE> (Linux 2.6.7 以降)"
680
681 #. type: Plain text
682 #: build/C/man2/futex.2:209
683 msgid ""
684 "There was a race in the intended use of B<FUTEX_REQUEUE>, so "
685 "B<FUTEX_CMP_REQUEUE> was introduced.  This is similar to B<FUTEX_REQUEUE>, "
686 "but first checks whether the location I<uaddr> still contains the value "
687 "I<val3>.  If not, the operation fails with the error B<EAGAIN>.  The "
688 "argument I<timeout> is ignored."
689 msgstr ""
690 "故意に B<FUTEX_REQUEUE> を使う場合に競合が起こるため、 B<FUTEX_CMP_REQUEUE> "
691 "が導入された。これは B<FUTEX_REQUEUE> と似ているが、場所 I<uaddr> に値 "
692 "I<val3> がまだ保持されているかを最初にチェックする。 保持されていない場合、操"
693 "作はエラー B<EAGAIN> で失敗する。引き数 I<timeout> は無視される。"
694
695 #. type: Plain text
696 #: build/C/man2/futex.2:216
697 msgid ""
698 "In the event of an error, all operations return -1, and set I<errno> to "
699 "indicate the error.  The return value on success depends on the operation, "
700 "as described in the following list:"
701 msgstr ""
702 "エラーの場合、全ての操作で -1 が返り、 I<errno> がエラーの内容を示す値に設定"
703 "される。成功時の返り値は操作によって異なり、以下のリストに書かれている通りで"
704 "ある。"
705
706 #. type: Plain text
707 #: build/C/man2/futex.2:222
708 msgid ""
709 "Returns 0 if the process was woken by a B<FUTEX_WAKE> call.  See ERRORS for "
710 "the various possible error returns."
711 msgstr ""
712 "そのプロセスが B<FUTEX_WAKE> により wake された場合 0 を返す。発生する可能性"
713 "があるエラーについては「エラー」の節を参照。"
714
715 #. type: Plain text
716 #: build/C/man2/futex.2:225 build/C/man2/futex.2:231 build/C/man2/futex.2:234
717 msgid "Returns the number of processes woken up."
718 msgstr "wake したプロセスの数を返す。"
719
720 #. type: TP
721 #: build/C/man2/futex.2:225
722 #, no-wrap
723 msgid "B<FUTEX_FD>"
724 msgstr "B<FUTEX_FD>"
725
726 #. type: Plain text
727 #: build/C/man2/futex.2:228
728 msgid "Returns the new file descriptor associated with the futex."
729 msgstr "futex に関連づけられた新たなファイルディスクリプタを返す。"
730
731 #. type: TP
732 #: build/C/man2/futex.2:228
733 #, no-wrap
734 msgid "B<FUTEX_REQUEUE>"
735 msgstr "B<FUTEX_REQUEUE>"
736
737 #. type: TP
738 #: build/C/man2/futex.2:231
739 #, no-wrap
740 msgid "B<FUTEX_CMP_REQUEUE>"
741 msgstr "B<FUTEX_CMP_REQUEUE>"
742
743 #. type: TP
744 #: build/C/man2/futex.2:235 build/C/man2/quotactl.2:486
745 #, no-wrap
746 msgid "B<EACCES>"
747 msgstr "B<EACCES>"
748
749 #. type: Plain text
750 #: build/C/man2/futex.2:238
751 msgid "No read access to futex memory."
752 msgstr "futex メモリに読み込みアクセス権がなかった。"
753
754 #. type: TP
755 #: build/C/man2/futex.2:238 build/C/man2/sendfile.2:116
756 #, no-wrap
757 msgid "B<EAGAIN>"
758 msgstr "B<EAGAIN>"
759
760 #. type: Plain text
761 #: build/C/man2/futex.2:249
762 msgid ""
763 "B<FUTEX_CMP_REQUEUE> detected that the value pointed to by I<uaddr> is not "
764 "equal to the expected value I<val3>.  (This probably indicates a race; use "
765 "the safe B<FUTEX_WAKE> now.)"
766 msgstr ""
767 "B<FUTEX_CMP_REQUEUE> で、I<uaddr> が指す値が期待値 I<val3> と異なる状況が検出"
768 "された。 (これは競合を示しているかもしれない。この場合は安全な B<FUTEX_WAKE> "
769 "を使うこと。)"
770
771 #. type: Plain text
772 #: build/C/man2/futex.2:254
773 msgid "Error retrieving I<timeout> information from user space."
774 msgstr "ユーザ空間から I<timeout> の情報を取得する際にエラーが発生した。"
775
776 #. type: TP
777 #: build/C/man2/futex.2:254
778 #, no-wrap
779 msgid "B<EINTR>"
780 msgstr "B<EINTR>"
781
782 #. type: Plain text
783 #: build/C/man2/futex.2:261
784 msgid ""
785 "A B<FUTEX_WAIT> operation was interrupted by a signal (see B<signal>(7))  or "
786 "a spurious wakeup."
787 msgstr ""
788 "B<FUTEX_WAIT> 操作がシグナル (B<signal>(7) 参照) もしくは偽の wakeup により中"
789 "断された。"
790
791 #. type: Plain text
792 #: build/C/man2/futex.2:264
793 msgid "Invalid argument."
794 msgstr "無効な引き数。"
795
796 #. type: TP
797 #: build/C/man2/futex.2:264
798 #, no-wrap
799 msgid "B<ENFILE>"
800 msgstr "B<ENFILE>"
801
802 #. type: Plain text
803 #: build/C/man2/futex.2:267
804 msgid "The system limit on the total number of open files has been reached."
805 msgstr "オープンされているファイルの総数がシステムの制限に達した。"
806
807 #. type: TP
808 #: build/C/man2/futex.2:267 build/C/man2/modify_ldt.2:126
809 #: build/C/man2/pciconfig_read.2:93 build/C/man2/quotactl.2:447
810 #: build/C/man2/vm86.2:64
811 #, no-wrap
812 msgid "B<ENOSYS>"
813 msgstr "B<ENOSYS>"
814
815 #. type: Plain text
816 #: build/C/man2/futex.2:271
817 msgid "Invalid operation specified in I<op>."
818 msgstr "I<op> に無効な操作が指定された。"
819
820 #. type: TP
821 #: build/C/man2/futex.2:271
822 #, no-wrap
823 msgid "B<ETIMEDOUT>"
824 msgstr "B<ETIMEDOUT>"
825
826 #. type: Plain text
827 #: build/C/man2/futex.2:276
828 msgid "Timeout during the B<FUTEX_WAIT> operation."
829 msgstr "B<FUTEX_WAIT> 操作でタイムアウトが発生した。"
830
831 #. type: TP
832 #: build/C/man2/futex.2:276
833 #, no-wrap
834 msgid "B<EWOULDBLOCK>"
835 msgstr "B<EWOULDBLOCK>"
836
837 #. type: Plain text
838 #: build/C/man2/futex.2:286
839 msgid ""
840 "I<op> was B<FUTEX_WAIT> and the value pointed to by I<uaddr> was not equal "
841 "to the expected value I<val> at the time of the call."
842 msgstr ""
843 "I<op> が B<FUTEX_WAIT> で、その呼び出しにおいて I<uaddr> が指す値が期待値 "
844 "I<val> と異なっていた。"
845
846 #. type: SH
847 #: build/C/man2/futex.2:286 build/C/man2/get_robust_list.2:115
848 #: build/C/man2/getunwind.2:94 build/C/man2/kexec_load.2:138
849 #: build/C/man2/lookup_dcookie.2:73 build/C/man2/perfmonctl.2:196
850 #: build/C/man2/pivot_root.2:125 build/C/man2/process_vm_readv.2:276
851 #: build/C/man2/sendfile.2:142 build/C/man2/set_tid_address.2:94
852 #: build/C/man2/splice.2:165 build/C/man2/tee.2:114
853 #: build/C/man2/vmsplice.2:138
854 #, no-wrap
855 msgid "VERSIONS"
856 msgstr "バージョン"
857
858 #. type: Plain text
859 #: build/C/man2/futex.2:296
860 msgid ""
861 "Initial futex support was merged in Linux 2.5.7 but with different semantics "
862 "from what was described above.  A 4-argument system call with the semantics "
863 "described in this page was introduced in Linux 2.5.40.  In Linux 2.5.70 one "
864 "argument was added.  In Linux 2.6.7 a sixth argument was added\\(emmessy, "
865 "especially on the s390 architecture."
866 msgstr ""
867 "最初の futex 対応は Linux 2.5.7 で組み込まれたが、 上記のセマンティクスとは異"
868 "なる。 4 つの引き数のここに書かれているセマンティクスを持つ システムコール"
869 "は、Linux 2.5.40 で導入された。 Linux 2.5.70 では 1 つの引き数が追加された。 "
870 "Linux 2.6.7 では 6 番目の引き数が追加された。 これは汚く、s390 アーキテクチャ"
871 "上の特別のものである。"
872
873 #. type: Plain text
874 #: build/C/man2/futex.2:298 build/C/man2/kexec_load.2:144
875 #: build/C/man2/set_tid_address.2:99 build/C/man2/splice.2:172
876 #: build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145
877 msgid "This system call is Linux-specific."
878 msgstr "このシステムコールは Linux 固有である。"
879
880 #.  .SH "AUTHORS"
881 #.  .PP
882 #.  Futexes were designed and worked on by
883 #.  Hubertus Franke (IBM Thomas J. Watson Research Center),
884 #.  Matthew Kirkwood, Ingo Molnar (Red Hat)
885 #.  and Rusty Russell (IBM Linux Technology Center).
886 #.  This page written by bert hubert.
887 #. type: Plain text
888 #: build/C/man2/futex.2:312
889 msgid ""
890 "To reiterate, bare futexes are not intended as an easy-to-use abstraction "
891 "for end-users.  (There is no wrapper function for this system call in "
892 "glibc.)  Implementors are expected to be assembly literate and to have read "
893 "the sources of the futex user-space library referenced below."
894 msgstr ""
895 "繰り返すが、裸の futex はエンドユーザが容易に使うことのできる概念として 意図"
896 "されたものではない (glibc にはこのシステムコールに対するラッパー関数はな"
897 "い)。 実装者は、アセンブリ言語に慣れており、以下に挙げる futex ユーザ空間ライ"
898 "ブラリの ソースを読み終えていることが要求される。"
899
900 #. type: Plain text
901 #: build/C/man2/futex.2:314
902 msgid "B<futex>(7)"
903 msgstr "B<futex>(7)"
904
905 #. type: Plain text
906 #: build/C/man2/futex.2:317
907 msgid ""
908 "I<Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux> (proceedings "
909 "of the Ottawa Linux Symposium 2002), online at"
910 msgstr ""
911 "I<Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux> (proceedings "
912 "of the Ottawa Linux Symposium 2002), online at"
913
914 #. type: Plain text
915 #: build/C/man2/futex.2:320
916 msgid ""
917 "E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> "
918 "E<.UE>"
919 msgstr ""
920 "E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> "
921 "E<.UE>"
922
923 #. type: Plain text
924 #: build/C/man2/futex.2:322
925 msgid "Futex example library, futex-*.tar.bz2 at"
926 msgstr "futex の使用例ライブラリ, futex-*.tar.bz2"
927
928 #. type: Plain text
929 #: build/C/man2/futex.2:325
930 msgid ""
931 "E<.UR ftp://ftp.nl.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> "
932 "E<.UE>"
933 msgstr ""
934 "E<.UR ftp://ftp.nl.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> "
935 "E<.UE>"
936
937 #. type: TH
938 #: build/C/man2/get_robust_list.2:29
939 #, no-wrap
940 msgid "GET_ROBUST_LIST"
941 msgstr "GET_ROBUST_LIST"
942
943 #. type: TH
944 #: build/C/man2/get_robust_list.2:29 build/C/man2/kexec_load.2:26
945 #: build/C/man2/modify_ldt.2:24 build/C/man2/pivot_root.2:10
946 #, no-wrap
947 msgid "2012-07-13"
948 msgstr "2012-07-13"
949
950 #. type: TH
951 #: build/C/man2/get_robust_list.2:29
952 #, no-wrap
953 msgid "Linux System Calls"
954 msgstr ""
955
956 #. type: Plain text
957 #: build/C/man2/get_robust_list.2:32
958 msgid "get_robust_list, set_robust_list - get/set list of robust futexes"
959 msgstr ""
960
961 #. type: Plain text
962 #: build/C/man2/get_robust_list.2:36
963 #, no-wrap
964 msgid ""
965 "B<#include E<lt>linux/futex.hE<gt>>\n"
966 "B<#include E<lt>syscall.hE<gt>>\n"
967 msgstr ""
968 "B<#include E<lt>linux/futex.hE<gt>>\n"
969 "B<#include E<lt>syscall.hE<gt>>\n"
970
971 #. type: Plain text
972 #: build/C/man2/get_robust_list.2:40
973 #, no-wrap
974 msgid ""
975 "B<long get_robust_list(int >I<pid>B<, struct robust_list_head **>I<head_ptr>B<,>\n"
976 "B<\t\t\t  size_t *>I<len_ptr>B<);>\n"
977 "B<long set_robust_list(struct robust_list_head *>I<head>B<, size_t >I<len>B<);>\n"
978 msgstr ""
979
980 #. type: Plain text
981 #: build/C/man2/get_robust_list.2:44
982 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
983 msgstr ""
984 "I<注意>: これらのシステムコールには glibc ラッパー関数は存在しない。 「注意」"
985 "の節を参照。"
986
987 #. type: Plain text
988 #: build/C/man2/get_robust_list.2:49
989 msgid ""
990 "The robust futex implementation needs to maintain per-thread lists of robust "
991 "futexes which are unlocked when the thread exits.  These lists are managed "
992 "in user space; the kernel is notified about only the location of the head of "
993 "the list."
994 msgstr ""
995
996 #. type: Plain text
997 #: build/C/man2/get_robust_list.2:65
998 msgid ""
999 "The B<get_robust_list>()  system call returns the head of the robust futex "
1000 "list of the thread whose thread ID is specified in I<pid>.  If I<pid> is 0, "
1001 "the head of the list for the calling thread is returned.  The list head is "
1002 "stored in the location pointed to by I<head_ptr>.  The size of the object "
1003 "pointed to by I<**head_ptr> is stored in I<len_ptr>."
1004 msgstr ""
1005
1006 #. type: Plain text
1007 #: build/C/man2/get_robust_list.2:77
1008 msgid ""
1009 "The B<set_robust_list>()  system call requests the kernel to record the head "
1010 "of the list of robust futexes owned by the calling thread.  The I<head> "
1011 "argument is the list head to record.  The I<len> argument should be I<sizeof"
1012 "(*head)>."
1013 msgstr ""
1014
1015 #. type: Plain text
1016 #: build/C/man2/get_robust_list.2:84
1017 msgid ""
1018 "The B<set_robust_list>()  and B<get_robust_list>()  system calls return zero "
1019 "when the operation is successful, an error code otherwise."
1020 msgstr ""
1021
1022 #. type: Plain text
1023 #: build/C/man2/get_robust_list.2:88
1024 msgid ""
1025 "The B<set_robust_list>()  system call can fail with the following error:"
1026 msgstr ""
1027
1028 #. type: Plain text
1029 #: build/C/man2/get_robust_list.2:94
1030 msgid ""
1031 "I<len> does not match the size of structure B<struct robust_list_head> "
1032 "expected by kernel."
1033 msgstr ""
1034
1035 #. type: Plain text
1036 #: build/C/man2/get_robust_list.2:98
1037 msgid ""
1038 "The B<get_robust_list>()  system call can fail with the following errors:"
1039 msgstr ""
1040
1041 #. type: Plain text
1042 #: build/C/man2/get_robust_list.2:106
1043 msgid ""
1044 "The calling process does not have permission to see the robust futex list of "
1045 "the thread with the thread ID I<pid>, and does not have the "
1046 "B<CAP_SYS_PTRACE> capability."
1047 msgstr ""
1048
1049 #. type: TP
1050 #: build/C/man2/get_robust_list.2:106 build/C/man2/process_vm_readv.2:271
1051 #: build/C/man2/ptrace.2:1766 build/C/man2/quotactl.2:461
1052 #: build/C/man2/quotactl.2:504
1053 #, no-wrap
1054 msgid "B<ESRCH>"
1055 msgstr "B<ESRCH>"
1056
1057 #. type: Plain text
1058 #: build/C/man2/get_robust_list.2:111
1059 msgid "No thread with the thread ID I<pid> could be found."
1060 msgstr ""
1061
1062 #. type: Plain text
1063 #: build/C/man2/get_robust_list.2:115
1064 msgid ""
1065 "The head of the robust futex list can't be stored at the location I<head>."
1066 msgstr ""
1067
1068 #. type: Plain text
1069 #: build/C/man2/get_robust_list.2:119
1070 msgid ""
1071 "These system calls were added in Linux 2.6.17.  No library support is "
1072 "provided; use B<syscall>(2)."
1073 msgstr ""
1074 "これらのシステムコールは Linux 2.6.17 で追加された。ライブラリによる\n"
1075 "サポートは提供されていない。 B<syscall>(2) を使うこと。"
1076
1077 #. type: Plain text
1078 #: build/C/man2/get_robust_list.2:124
1079 msgid ""
1080 "These system calls are not needed by normal applications.  No support for "
1081 "them is provided in glibc.  In the unlikely event that you want to call them "
1082 "directly, use B<syscall>(2)."
1083 msgstr ""
1084 "通常のアプリケーションでは、これらのシステムコールは必要ではない。 glibc によ"
1085 "るサポートは提供されていない。おそらくないと思うが、このシステムコールを直接"
1086 "呼び出したい場合は B<syscall>(2) を使うこと。"
1087
1088 #. type: Plain text
1089 #: build/C/man2/get_robust_list.2:128
1090 msgid ""
1091 "A thread can have only one robust futex list; therefore applications that "
1092 "wish to use this functionality should use the robust mutexes provided by "
1093 "glibc."
1094 msgstr ""
1095
1096 #.  .BR pthread_mutexattr_setrobust_np (3)
1097 #. type: Plain text
1098 #: build/C/man2/get_robust_list.2:131
1099 msgid "B<futex>(2)"
1100 msgstr "B<futex>(2)"
1101
1102 #.  http://lwn.net/Articles/172149/
1103 #. type: Plain text
1104 #: build/C/man2/get_robust_list.2:137
1105 msgid ""
1106 "I<Documentation/robust-futexes.txt> and I<Documentation/robust-futex-ABI."
1107 "txt> in the Linux kernel source tree"
1108 msgstr ""
1109
1110 #. type: TH
1111 #: build/C/man2/getunwind.2:27
1112 #, no-wrap
1113 msgid "GETUNWIND"
1114 msgstr ""
1115
1116 #. type: TH
1117 #: build/C/man2/getunwind.2:27 build/C/man2/perfmonctl.2:27
1118 #, no-wrap
1119 msgid "2013-02-13"
1120 msgstr "2013-02-13"
1121
1122 #. type: Plain text
1123 #: build/C/man2/getunwind.2:30
1124 msgid "getunwind - copy the unwind data to caller's buffer"
1125 msgstr ""
1126
1127 #. type: Plain text
1128 #: build/C/man2/getunwind.2:34
1129 #, no-wrap
1130 msgid ""
1131 "B<#include E<lt>syscall.hE<gt>>\n"
1132 "B<#include E<lt>linux/unwind.hE<gt>>\n"
1133 msgstr ""
1134 "B<#include E<lt>syscall.hE<gt>>\n"
1135 "B<#include E<lt>linux/unwind.hE<gt>>\n"
1136
1137 #. type: Plain text
1138 #: build/C/man2/getunwind.2:36
1139 #, no-wrap
1140 msgid "B<long getunwind(void >I<*buf>B<, size_t >I<buf_size>B<);>\n"
1141 msgstr ""
1142
1143 #. type: Plain text
1144 #: build/C/man2/getunwind.2:40 build/C/man2/kexec_load.2:39
1145 #: build/C/man2/modify_ldt.2:36 build/C/man2/perf_event_open.2:42
1146 #: build/C/man2/perfmonctl.2:39 build/C/man2/pivot_root.2:18
1147 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
1148 msgstr ""
1149 "I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
1150 "を参照。"
1151
1152 #. type: Plain text
1153 #: build/C/man2/getunwind.2:42
1154 msgid "I<Note: this function is obsolete.>"
1155 msgstr ""
1156
1157 #. type: Plain text
1158 #: build/C/man2/getunwind.2:52
1159 msgid ""
1160 "The IA-64-specific B<getunwind>()  system call copies the kernel's call "
1161 "frame unwind data into the buffer pointed to by I<buf> and returns the size "
1162 "of the unwind data; this data describes the gate page (kernel code that is "
1163 "mapped into user space)."
1164 msgstr ""
1165
1166 #. type: Plain text
1167 #: build/C/man2/getunwind.2:64
1168 msgid ""
1169 "The size of the buffer I<buf> is specified in I<buf_size>.  The data is "
1170 "copied only if I<buf_size> is greater than or equal to the size of the "
1171 "unwind data and I<buf> is not NULL; otherwise, no data is copied, and the "
1172 "call succeeds, returning the size that would be needed to store the unwind "
1173 "data."
1174 msgstr ""
1175
1176 #. type: Plain text
1177 #: build/C/man2/getunwind.2:68
1178 msgid ""
1179 "The first part of the unwind data contains an unwind table.  The rest "
1180 "contains the associated unwind information, in no particular order.  The "
1181 "unwind table contains entries of the following form:"
1182 msgstr ""
1183
1184 #. type: Plain text
1185 #: build/C/man2/getunwind.2:73
1186 #, no-wrap
1187 msgid ""
1188 "\tu64 start;      (64-bit address of start of function)\n"
1189 "\tu64 end;        (64-bit address of end of function)\n"
1190 "\tu64 info;       (BUF-relative offset to unwind info)\n"
1191 msgstr ""
1192
1193 #. type: Plain text
1194 #: build/C/man2/getunwind.2:81
1195 msgid ""
1196 "An entry whose I<start> value is zero indicates the end of the table.  For "
1197 "more information about the format, see the I<IA-64 Software Conventions and "
1198 "Runtime Architecture> manual."
1199 msgstr ""
1200
1201 #. type: Plain text
1202 #: build/C/man2/getunwind.2:88
1203 msgid ""
1204 "On success, B<getunwind>()  returns the size of unwind table.  On error, -1 "
1205 "is returned and I<errno> is set to indicate the error."
1206 msgstr ""
1207
1208 #. type: Plain text
1209 #: build/C/man2/getunwind.2:94
1210 msgid ""
1211 "B<getunwind>()  fails with the error B<EFAULT> if the unwind info can't be "
1212 "stored in the space specified by I<buf>."
1213 msgstr ""
1214
1215 #. type: Plain text
1216 #: build/C/man2/getunwind.2:96
1217 msgid "This system call is available since Linux 2.4."
1218 msgstr ""
1219
1220 #. type: Plain text
1221 #: build/C/man2/getunwind.2:99
1222 msgid ""
1223 "This system call is Linux specific, and is available only on the IA-64 "
1224 "architecture."
1225 msgstr ""
1226
1227 #. type: Plain text
1228 #: build/C/man2/getunwind.2:107
1229 msgid ""
1230 "This system call has been deprecated.  The modern way to obtain the kernel's "
1231 "unwind data is via the gate DSO.  The address of the ELF header for this DSO "
1232 "is passed to user level via B<AT_SYSINFO_EHDR> (see B<getauxval>(3))."
1233 msgstr ""
1234
1235 #. type: Plain text
1236 #: build/C/man2/getunwind.2:111
1237 msgid ""
1238 "Glibc does not provide a wrapper for this system call; in the unlikely event "
1239 "that you want to call it, use B<syscall>(2)."
1240 msgstr ""
1241 "glibc はこのシステムコールに対するラッパー関数を提供していない。おそらくない"
1242 "と思うが、このシステムコールを呼び出したい場合は B<syscall>(2) を使うこと。"
1243
1244 #. type: Plain text
1245 #: build/C/man2/getunwind.2:113
1246 msgid "B<getauxval>(3)"
1247 msgstr "B<getauxval>(3)"
1248
1249 #. type: TH
1250 #: build/C/man2/kexec_load.2:26
1251 #, no-wrap
1252 msgid "KEXEC_LOAD"
1253 msgstr "KEXEC_LOAD"
1254
1255 #. type: Plain text
1256 #: build/C/man2/kexec_load.2:29
1257 msgid "kexec_load - load a new kernel for later execution"
1258 msgstr "kexec_load - 新しいカーネルを後で実行するためにロードする"
1259
1260 #. type: Plain text
1261 #: build/C/man2/kexec_load.2:31
1262 msgid "B<#include E<lt>linux/kexec.hE<gt>>"
1263 msgstr "B<#include E<lt>linux/kexec.hE<gt>>"
1264
1265 #. type: Plain text
1266 #: build/C/man2/kexec_load.2:33
1267 msgid ""
1268 "B<long kexec_load(unsigned long >I<entry>B<, unsigned long >I<nr_segments>B<,"
1269 ">"
1270 msgstr ""
1271 "B<long kexec_load(unsigned long >I<entry>B<, unsigned long >I<nr_segments>B<,"
1272 ">"
1273
1274 #. type: Plain text
1275 #: build/C/man2/kexec_load.2:36
1276 msgid "B< struct kexec_segment *>I<segments>B<, unsigned long >I<flags>B<);>"
1277 msgstr "B< struct kexec_segment *>I<segments>B<, unsigned long >I<flags>B<);>"
1278
1279 #. type: Plain text
1280 #: build/C/man2/kexec_load.2:44
1281 msgid ""
1282 "The B<kexec_load>()  system call loads a new kernel that can be executed "
1283 "later by B<reboot>(2)."
1284 msgstr ""
1285 "B<kexec_load>() システムコールは、新しいカーネルをロードし、\n"
1286 "その後の B<reboot>(2) で実行できるようにする。"
1287
1288 #. type: Plain text
1289 #: build/C/man2/kexec_load.2:50
1290 msgid ""
1291 "The I<flags> argument is a mask whose high-order bits control the operation "
1292 "of the call.  The following values can be specified in I<flags>:"
1293 msgstr ""
1294 "I<flags> 引き数はマスクビットで、\n"
1295 "その上位ビットでシステムコールの呼び出しの動作を制御する。\n"
1296 "I<flags> には以下の値を指定できる。"
1297
1298 #. type: TP
1299 #: build/C/man2/kexec_load.2:50
1300 #, no-wrap
1301 msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
1302 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
1303
1304 #.  FIXME figure out how this is really used
1305 #. type: Plain text
1306 #: build/C/man2/kexec_load.2:54
1307 msgid "Execute the new kernel automatically on a system crash."
1308 msgstr "システムのクラッシュ時に、新しいカーネルを自動的に実行する。"
1309
1310 #. type: TP
1311 #: build/C/man2/kexec_load.2:54
1312 #, no-wrap
1313 msgid "B<KEXEC_PRESERVE_CONTEXT> (since Linux 2.6.27)"
1314 msgstr "B<KEXEC_PRESERVE_CONTEXT> (Linux 2.6.27 以降)"
1315
1316 #. type: Plain text
1317 #: build/C/man2/kexec_load.2:64
1318 msgid ""
1319 "Preserve the system hardware and software states before executing the new "
1320 "kernel.  This could be used for system suspend.  This flag is available only "
1321 "if the kernel was configured with B<CONFIG_KEXEC_JUMP>, and is effective "
1322 "only if I<nr_segments> is greater than 0."
1323 msgstr ""
1324 "新しいカーネルを実行する前に、\n"
1325 "システムのハードウェアとソフトウェアの状態を保存する。\n"
1326 "システムの中断時 (suspend) などで使用できる。\n"
1327 "このフラグは、カーネルの設定で B<CONFIG_KEXEC_JUMP> が有効の場合のみ\n"
1328 "利用可能であり、 I<nr_segments> が 0 より大きい場合のみ効果がある。"
1329
1330 #. type: Plain text
1331 #: build/C/man2/kexec_load.2:84
1332 msgid ""
1333 "The low-order bits of I<flags> contain the architecture of the to-be-"
1334 "executed kernel.  Specify (OR) the constant B<KEXEC_ARCH_DEFAULT> to use the "
1335 "current architecture, or one of the following architecture constants "
1336 "B<KEXEC_ARCH_386>, B<KEXEC_ARCH_X86_64>, B<KEXEC_ARCH_PPC>, "
1337 "B<KEXEC_ARCH_PPC64>, B<KEXEC_ARCH_IA_64>, B<KEXEC_ARCH_ARM>, "
1338 "B<KEXEC_ARCH_S390>, B<KEXEC_ARCH_SH>, B<KEXEC_ARCH_MIPS>, and "
1339 "B<KEXEC_ARCH_MIPS_LE>.  The architecture must be executable on the CPU of "
1340 "the system."
1341 msgstr ""
1342 "I<flags> の下位ビットには、実行されるカーネルのアーキテクチャが入る。\n"
1343 "現在のアーキテクチャを使うことを意味する定数 B<KEXEC_ARCH_DEFAULT> か、\n"
1344 "アーキテクチャ定数 B<KEXEC_ARCH_386>, B<KEXEC_ARCH_X86_64>,\n"
1345 "B<KEXEC_ARCH_PPC>, B<KEXEC_ARCH_PPC64>, B<KEXEC_ARCH_IA_64>,\n"
1346 "B<KEXEC_ARCH_ARM>, B<KEXEC_ARCH_S390>, B<KEXEC_ARCH_SH>,\n"
1347 "B<KEXEC_ARCH_MIPS>, B<KEXEC_ARCH_MIPS_LE> の\n"
1348 "いずれか一つを (OR で) 指定する。指定するアーキテクチャは、\n"
1349 "システムの CPU で実行可能なものでなければならない。"
1350
1351 #. type: Plain text
1352 #: build/C/man2/kexec_load.2:98
1353 msgid ""
1354 "The I<entry> argument is the physical entry address in the kernel image.  "
1355 "The I<nr_segments> argument is the number of segments pointed to by the "
1356 "I<segments> pointer.  The I<segments> argument is an array of "
1357 "I<kexec_segment> structures which define the kernel layout:"
1358 msgstr ""
1359 "I<entry> 引き数は、カーネルイメージの物理エントリーアドレスである。\n"
1360 "I<nr_segments> 引き数は、 I<segments> ポインタが指すセグメントの\n"
1361 "数である。 I<segments> 引き数は I<kexec_segment> 構造体の配列で、\n"
1362 "この構造体によりカーネルの配置が定義される。"
1363
1364 #. type: Plain text
1365 #: build/C/man2/kexec_load.2:107
1366 #, no-wrap
1367 msgid ""
1368 "struct kexec_segment {\n"
1369 "    void   *buf;        /* Buffer in user space */\n"
1370 "    size_t  bufsz;      /* Buffer length in user space */\n"
1371 "    void   *mem;        /* Physical address of kernel */\n"
1372 "    size_t  memsz;      /* Physical address length */\n"
1373 "};\n"
1374 msgstr ""
1375 "struct kexec_segment {\n"
1376 "    void   *buf;        /* Buffer in user space */\n"
1377 "    size_t  bufsz;      /* Buffer length in user space */\n"
1378 "    void   *mem;        /* Physical address of kernel */\n"
1379 "    size_t  memsz;      /* Physical address length */\n"
1380 "};\n"
1381
1382 #.  FIXME elaborate on the following:
1383 #. type: Plain text
1384 #: build/C/man2/kexec_load.2:114
1385 msgid ""
1386 "The kernel image defined by I<segments> is copied from the calling process "
1387 "into previously reserved memory."
1388 msgstr ""
1389 "I<segments> で定義されたカーネルイメージは、\n"
1390 "呼び出したプロセスから予約済みメモリにコピーされる。"
1391
1392 #. type: Plain text
1393 #: build/C/man2/kexec_load.2:121
1394 msgid ""
1395 "On success, B<kexec_load>()  returns 0.  On error, -1 is returned and "
1396 "I<errno> is set to indicate the error."
1397 msgstr ""
1398 "成功すると、 B<kexec_load> は 0 を返す。\n"
1399 "エラーの場合、 -1 が返り、 I<errno> にエラーを示す値が設定される。"
1400
1401 #. type: TP
1402 #: build/C/man2/kexec_load.2:122 build/C/man2/pivot_root.2:110
1403 #: build/C/man2/ptrace.2:1729 build/C/man2/quotactl.2:495
1404 #, no-wrap
1405 msgid "B<EBUSY>"
1406 msgstr "B<EBUSY>"
1407
1408 #. type: Plain text
1409 #: build/C/man2/kexec_load.2:126
1410 msgid ""
1411 "Another crash kernel is already being loaded or a crash kernel is already in "
1412 "use."
1413 msgstr ""
1414 "別のクラッシュカーネルがすでにロードされているか、\n"
1415 "クラッシュカーネルがすでに使用されている。"
1416
1417 #.  KEXEC_SEGMENT_MAX == 16
1418 #. type: Plain text
1419 #: build/C/man2/kexec_load.2:133
1420 msgid "I<flags> is invalid; or I<nr_segments> is too large"
1421 msgstr "I<flags> が無効である。 I<nr_segments> が大きすぎる。"
1422
1423 #. type: Plain text
1424 #: build/C/man2/kexec_load.2:138
1425 msgid "The caller does not have the B<CAP_SYS_BOOT> capability."
1426 msgstr "呼び出し側が B<CAP_SYS_BOOT> ケーパビリティを持っていない。"
1427
1428 #. type: Plain text
1429 #: build/C/man2/kexec_load.2:142
1430 msgid "The B<kexec_load>()  system call first appeared in Linux 2.6.13."
1431 msgstr "B<kexec_load>() システムコールは Linux 2.6.13 で初めて登場した。"
1432
1433 #. type: Plain text
1434 #: build/C/man2/kexec_load.2:149
1435 msgid ""
1436 "Currently, there is no glibc support for B<kexec_load>().  Call it using "
1437 "B<syscall>(2)."
1438 msgstr ""
1439 "現在のところ、 B<kexec_load>() は glibc ではサポートされていない。\n"
1440 "B<syscall>(2) を使って呼び出すこと。"
1441
1442 #.  FIXME Andi submitted a patch for this.
1443 #.  Check if it got accepted later.
1444 #. type: Plain text
1445 #: build/C/man2/kexec_load.2:156
1446 msgid ""
1447 "The required constants are in the Linux kernel source file I<linux/kexec.h>, "
1448 "which is not currently exported to glibc.  Therefore, these constants must "
1449 "be defined manually."
1450 msgstr ""
1451 "必要な定数は Linux カーネルのソースファイル I<linux/kexec.h> で定義されてい"
1452 "る\n"
1453 "が、現在のところ glibc には公開されていない。\n"
1454 "そのため、これらの定数は手動で定義しなければならない。"
1455
1456 #. type: Plain text
1457 #: build/C/man2/kexec_load.2:159
1458 msgid ""
1459 "This system call is available only if the kernel was configured with "
1460 "B<CONFIG_KEXEC>."
1461 msgstr ""
1462 "このシステムコールは、カーネルの設定で B<CONFIG_KEXEC> が有効になって\n"
1463 "いる場合にのみ利用できる。"
1464
1465 #. type: Plain text
1466 #: build/C/man2/kexec_load.2:162
1467 msgid "B<reboot>(2), B<syscall>(2)"
1468 msgstr "B<reboot>(2), B<syscall>(2)"
1469
1470 #. type: TH
1471 #: build/C/man2/lookup_dcookie.2:27
1472 #, no-wrap
1473 msgid "LOOKUP_DCOOKIE"
1474 msgstr "LOOKUP_DCOOKIE"
1475
1476 #. type: TH
1477 #: build/C/man2/lookup_dcookie.2:27
1478 #, no-wrap
1479 msgid "2004-06-17"
1480 msgstr "2004-06-17"
1481
1482 #. type: Plain text
1483 #: build/C/man2/lookup_dcookie.2:30
1484 msgid "lookup_dcookie - return a directory entry's path"
1485 msgstr "lookup_dcookie - ディレクトリ・エントリのパス名を返す"
1486
1487 #. type: Plain text
1488 #: build/C/man2/lookup_dcookie.2:32
1489 msgid ""
1490 "B<int lookup_dcookie(u64 >I<cookie>B<, char *>I<buffer>B<, size_t >I<len>B<);"
1491 ">"
1492 msgstr ""
1493 "B<int lookup_dcookie(u64 >I<cookie>B<, char *>I<buffer>B<, size_t >I<len>B<);"
1494 ">"
1495
1496 #. type: Plain text
1497 #: build/C/man2/lookup_dcookie.2:38
1498 msgid ""
1499 "Look up the full path of the directory entry specified by the value "
1500 "I<cookie>.  The cookie is an opaque identifier uniquely identifying a "
1501 "particular directory entry.  The buffer given is filled in with the full "
1502 "path of the directory entry."
1503 msgstr ""
1504 "I<cookie> 値で指定されたディレクトリ・エントリのフルパス名を検索する。 "
1505 "cookie は、個々のディレクトリ・エントリを区別する内部識別子 (opaque "
1506 "identifier) である。引き数で指定されたバッファに、ディレクトリ・エントリの フ"
1507 "ルパス名が格納される。"
1508
1509 #. type: Plain text
1510 #: build/C/man2/lookup_dcookie.2:43
1511 msgid ""
1512 "For B<lookup_dcookie>()  to return successfully, the kernel must still hold "
1513 "a cookie reference to the directory entry."
1514 msgstr ""
1515 "B<lookup_dcookie>()  が正常に値を返すためには、カーネルがディレクトリ・エント"
1516 "リへの cookie 参照を 保持していなければならない。"
1517
1518 #. type: Plain text
1519 #: build/C/man2/lookup_dcookie.2:50
1520 msgid ""
1521 "On success, B<lookup_dcookie>()  returns the length of the path string "
1522 "copied into the buffer.  On error, -1 is returned, and I<errno> is set "
1523 "appropriately."
1524 msgstr ""
1525 "成功した場合、 B<lookup_dcookie>()  はバッファにコピーしたパス文字列の長さを"
1526 "返す。 エラーの場合は -1 を返し、 I<errno> に適切な値を設定する。"
1527
1528 #. type: Plain text
1529 #: build/C/man2/lookup_dcookie.2:54
1530 msgid "The buffer was not valid."
1531 msgstr "バッファが有効でなかった。"
1532
1533 #. type: Plain text
1534 #: build/C/man2/lookup_dcookie.2:58
1535 msgid ""
1536 "The kernel has no registered cookie/directory entry mappings at the time of "
1537 "lookup, or the cookie does not refer to a valid directory entry."
1538 msgstr ""
1539 "検索が行われた時、cookie とディレクトリ・エントリのマッピングがカーネルに 登"
1540 "録されていなかったか、または cookie が有効なディレクトリ・エントリを 参照して"
1541 "いない。"
1542
1543 #. type: TP
1544 #: build/C/man2/lookup_dcookie.2:58
1545 #, no-wrap
1546 msgid "B<ENAMETOOLONG>"
1547 msgstr "B<ENAMETOOLONG>"
1548
1549 #. type: Plain text
1550 #: build/C/man2/lookup_dcookie.2:61
1551 msgid "The name could not fit in the buffer."
1552 msgstr "名前がバッファに入り切らなかった。"
1553
1554 #. type: TP
1555 #: build/C/man2/lookup_dcookie.2:61 build/C/man2/process_vm_readv.2:262
1556 #: build/C/man2/sendfile.2:138 build/C/man2/splice.2:155
1557 #: build/C/man2/tee.2:111 build/C/man2/vmsplice.2:135
1558 #, no-wrap
1559 msgid "B<ENOMEM>"
1560 msgstr "B<ENOMEM>"
1561
1562 #. type: Plain text
1563 #: build/C/man2/lookup_dcookie.2:65
1564 msgid ""
1565 "The kernel could not allocate memory for the temporary buffer holding the "
1566 "path."
1567 msgstr ""
1568 "カーネルが、パス名を保持する一時バッファ用のメモリを割り当てることが できな"
1569 "かった。"
1570
1571 #. type: Plain text
1572 #: build/C/man2/lookup_dcookie.2:70
1573 msgid ""
1574 "The process does not have the capability B<CAP_SYS_ADMIN> required to look "
1575 "up cookie values."
1576 msgstr ""
1577 "プロセスが cookie 値を検索するのに必要なケーパビリティ B<CAP_SYS_ADMIN> を"
1578 "持っていない。"
1579
1580 #. type: TP
1581 #: build/C/man2/lookup_dcookie.2:70 build/C/man2/quotactl.2:474
1582 #, no-wrap
1583 msgid "B<ERANGE>"
1584 msgstr "B<ERANGE>"
1585
1586 #. type: Plain text
1587 #: build/C/man2/lookup_dcookie.2:73
1588 msgid ""
1589 "The buffer was not large enough to hold the path of the directory entry."
1590 msgstr ""
1591 "バッファが、ディレクトリ・エントリのパス名を収容するのに 十分な大きさではな"
1592 "かった。"
1593
1594 #. type: Plain text
1595 #: build/C/man2/lookup_dcookie.2:78
1596 msgid ""
1597 "Available since Linux 2.5.43.  The B<ENAMETOOLONG> error return was added in "
1598 "2.5.70."
1599 msgstr ""
1600 "Linux 2.5.43 以降で利用できる。 エラー B<ENAMETOOLONG> を返す仕様は 2.5.70 で"
1601 "追加された。"
1602
1603 #. type: Plain text
1604 #: build/C/man2/lookup_dcookie.2:81
1605 msgid "B<lookup_dcookie>()  is Linux-specific."
1606 msgstr "B<lookup_dcookie>()  は Linux 独自の関数である。"
1607
1608 #. type: Plain text
1609 #: build/C/man2/lookup_dcookie.2:85
1610 msgid ""
1611 "B<lookup_dcookie>()  is a special-purpose system call, currently used only "
1612 "by the oprofile profiler.  It relies on a kernel driver to register cookies "
1613 "for directory entries."
1614 msgstr ""
1615 "B<lookup_dcookie>()  は特殊な用途に使われるシステムコールで、現在のところ "
1616 "oprofile profiler で 使われているだけである。"
1617
1618 #. type: Plain text
1619 #: build/C/man2/lookup_dcookie.2:88
1620 msgid ""
1621 "The path returned may be suffixed by the string \" (deleted)\" if the "
1622 "directory entry has been removed."
1623 msgstr ""
1624 "指定されたディレクトリ・エントリが削除されていた場合、返されるパス名の最後に "
1625 "\" (deleted)\" という文字列が付加されることがある。"
1626
1627 #. type: TH
1628 #: build/C/man2/modify_ldt.2:24
1629 #, no-wrap
1630 msgid "MODIFY_LDT"
1631 msgstr "MODIFY_LDT"
1632
1633 #. type: Plain text
1634 #: build/C/man2/modify_ldt.2:27
1635 msgid "modify_ldt - get or set ldt"
1636 msgstr "modify_ldt - ldt を設定または取得する"
1637
1638 #. type: Plain text
1639 #: build/C/man2/modify_ldt.2:30
1640 #, no-wrap
1641 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1642 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1643
1644 #. type: Plain text
1645 #: build/C/man2/modify_ldt.2:32
1646 #, no-wrap
1647 msgid "B<int modify_ldt(int >I<func>B<, void *>I<ptr>B<, unsigned long >I<bytecount>B<);>\n"
1648 msgstr "B<int modify_ldt(int >I<func>B<, void *>I<ptr>B<, unsigned long >I<bytecount>B<);>\n"
1649
1650 #. type: Plain text
1651 #: build/C/man2/modify_ldt.2:41
1652 msgid ""
1653 "B<modify_ldt>()  reads or writes the local descriptor table (ldt) for a "
1654 "process.  The ldt is a per-process memory management table used by the i386 "
1655 "processor.  For more information on this table, see an Intel 386 processor "
1656 "handbook."
1657 msgstr ""
1658 "B<modify_ldt>()  はプロセスのローカル・ディスクリプタ・テーブル (local "
1659 "descriptor table; ldt)  を読み書きする。 ldt は i386 プロセッサで使用されるプ"
1660 "ロセスごとのメモリ管理テーブルである。 このテーブルに関してのより詳しい情報"
1661 "は Intel 386 processor handbook を 参照すること。"
1662
1663 #. type: Plain text
1664 #: build/C/man2/modify_ldt.2:51
1665 msgid ""
1666 "When I<func> is 0, B<modify_ldt>()  reads the ldt into the memory pointed to "
1667 "by I<ptr>.  The number of bytes read is the smaller of I<bytecount> and the "
1668 "actual size of the ldt."
1669 msgstr ""
1670 "I<func> が 0 ならば、 B<modify_ldt>()  は ldt を I<ptr> が指しているメモリに"
1671 "読み込む。 読み込むバイト数は実際の ldt のサイズか I<bytecount> より小さい方"
1672 "である。"
1673
1674 #.  FIXME ? say something about func == 2 and func == 0x11?
1675 #.  In Linux 2.4, func == 2 returned "the default ldt"
1676 #.  In Linux 2.6, func == 2 is a nop, returning a zeroed out structure.
1677 #.  Linux 2.4 and 2.6 implement an operation for func == 0x11
1678 #. type: Plain text
1679 #: build/C/man2/modify_ldt.2:69
1680 msgid ""
1681 "When I<func> is 1, B<modify_ldt>()  modifies one ldt entry.  I<ptr> points "
1682 "to a I<user_desc> structure and I<bytecount> must equal the size of this "
1683 "structure."
1684 msgstr ""
1685 "I<func> が 1 ならば、 B<modify_ldt>()  は ldt エントリの一つを変更する。 "
1686 "I<ptr> は I<user_desc> 構造体を指し、 I<bytecount> はこの構造体の大きさに等し"
1687 "くなければならない。"
1688
1689 #. type: Plain text
1690 #: build/C/man2/modify_ldt.2:73
1691 msgid "The I<user_desc> structure is defined in I<E<lt>asm/ldt.hE<gt>> as:"
1692 msgstr ""
1693 "I<user_desc> 構造体は I<E<lt>asm/ldt.hE<gt>> で以下のように定義されている:"
1694
1695 #. type: Plain text
1696 #: build/C/man2/modify_ldt.2:87
1697 #, no-wrap
1698 msgid ""
1699 "struct user_desc {\n"
1700 "    unsigned int  entry_number;\n"
1701 "    unsigned long base_addr;\n"
1702 "    unsigned int  limit;\n"
1703 "    unsigned int  seg_32bit:1;\n"
1704 "    unsigned int  contents:2;\n"
1705 "    unsigned int  read_exec_only:1;\n"
1706 "    unsigned int  limit_in_pages:1;\n"
1707 "    unsigned int  seg_not_present:1;\n"
1708 "    unsigned int  useable:1;\n"
1709 "};\n"
1710 msgstr ""
1711 "struct user_desc {\n"
1712 "    unsigned int  entry_number;\n"
1713 "    unsigned long base_addr;\n"
1714 "    unsigned int  limit;\n"
1715 "    unsigned int  seg_32bit:1;\n"
1716 "    unsigned int  contents:2;\n"
1717 "    unsigned int  read_exec_only:1;\n"
1718 "    unsigned int  limit_in_pages:1;\n"
1719 "    unsigned int  seg_not_present:1;\n"
1720 "    unsigned int  useable:1;\n"
1721 "};\n"
1722
1723 #.  .PP
1724 #.  The ldt is specific for the calling process. Any attempts to change
1725 #.  the ldt to include the address space of another process or the kernel
1726 #.  will result in a segmentation violation when trying to access the memory
1727 #.  outside of the process address space. The memory protection is enforced
1728 #.  at the paging layer.
1729 #. type: Plain text
1730 #: build/C/man2/modify_ldt.2:98
1731 msgid "In Linux 2.4 and earlier, this structure was named I<modify_ldt_ldt_s>."
1732 msgstr ""
1733 "Linux 2.4 以前では、この構造体は I<modify_ldt_ldt_s> という名前であった。"
1734
1735 #. type: Plain text
1736 #: build/C/man2/modify_ldt.2:108
1737 msgid ""
1738 "On success, B<modify_ldt>()  returns either the actual number of bytes read "
1739 "(for reading)  or 0 (for writing).  On failure, B<modify_ldt>()  returns -1 "
1740 "and sets I<errno> to indicate the error."
1741 msgstr ""
1742 "成功した場合は、 B<modify_ldt>()  は (読み込みの場合は) 実際に読み込んだバイ"
1743 "ト数、 または (書き込みの場合は) 0 を返す。 失敗した場合は B<modify_ldt>()  "
1744 "は -1 を返し、 I<errno> をエラーを示す値に設定する。"
1745
1746 #. type: Plain text
1747 #: build/C/man2/modify_ldt.2:113
1748 msgid "I<ptr> points outside the address space."
1749 msgstr "I<ptr> がアドレス空間の外を指している。"
1750
1751 #. type: Plain text
1752 #: build/C/man2/modify_ldt.2:126
1753 msgid ""
1754 "I<ptr> is 0, or I<func> is 1 and I<bytecount> is not equal to the size of "
1755 "the structure I<modify_ldt_ldt_s>, or I<func> is 1 and the new ldt entry has "
1756 "invalid values."
1757 msgstr ""
1758 "I<ptr> が 0 である、 または I<func> が 1 で I<bytecount> が "
1759 "I<modify_ldt_ldt_s> 構造体のサイズと等しくないか、 I<func> が 1 で新しい ldt "
1760 "エントリが無効な値である。"
1761
1762 #. type: Plain text
1763 #: build/C/man2/modify_ldt.2:130
1764 msgid "I<func> is neither 0 nor 1."
1765 msgstr "I<func> が 0 でも 1 でもない。"
1766
1767 #. type: Plain text
1768 #: build/C/man2/modify_ldt.2:133
1769 msgid ""
1770 "This call is Linux-specific and should not be used in programs intended to "
1771 "be portable."
1772 msgstr ""
1773 "このコールは Linux 特有であり、移植を意図したプログラムでは 使用してはいけな"
1774 "い。"
1775
1776 #. type: Plain text
1777 #: build/C/man2/modify_ldt.2:136 build/C/man2/perfmonctl.2:205
1778 #: build/C/man2/pivot_root.2:134
1779 msgid ""
1780 "Glibc does not provide a wrapper for this system call; call it using "
1781 "B<syscall>(2)."
1782 msgstr ""
1783 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
1784 "(2)  を使って呼び出すこと。"
1785
1786 #. type: Plain text
1787 #: build/C/man2/modify_ldt.2:138
1788 msgid "B<vm86>(2)"
1789 msgstr "B<vm86>(2)"
1790
1791 #. type: TH
1792 #: build/C/man2/nfsservctl.2:8
1793 #, no-wrap
1794 msgid "NFSSERVCTL"
1795 msgstr "NFSSERVCTL"
1796
1797 #. type: TH
1798 #: build/C/man2/nfsservctl.2:8
1799 #, no-wrap
1800 msgid "2012-03-05"
1801 msgstr "2012-03-05"
1802
1803 #. type: Plain text
1804 #: build/C/man2/nfsservctl.2:11
1805 msgid "nfsservctl - syscall interface to kernel nfs daemon"
1806 msgstr "nfsservctl - カーネル nfs デーモンのためのインターフェース"
1807
1808 #. type: Plain text
1809 #: build/C/man2/nfsservctl.2:14
1810 #, no-wrap
1811 msgid "B<#include E<lt>linux/nfsd/syscall.hE<gt>>\n"
1812 msgstr "B<#include E<lt>linux/nfsd/syscall.hE<gt>>\n"
1813
1814 #. type: Plain text
1815 #: build/C/man2/nfsservctl.2:17
1816 #, no-wrap
1817 msgid ""
1818 "B<long nfsservctl(int >I<cmd>B<, struct nfsctl_arg *>I<argp>B<,>\n"
1819 "B<                union nfsctl_res *>I<resp>B<);>\n"
1820 msgstr ""
1821 "B<long nfsservctl(int >I<cmd>B<, struct nfsctl_arg *>I<argp>B<,>\n"
1822 "B<                union nfsctl_res *>I<resp>B<);>\n"
1823
1824 #. type: Plain text
1825 #: build/C/man2/nfsservctl.2:21
1826 msgid "I<Note>: Since Linux 3.1, this system call no longer exists."
1827 msgstr "I<注意>: Linux 3.1 以降では、このシステムコールはもはや存在しない。"
1828
1829 #. type: Plain text
1830 #: build/C/man2/nfsservctl.2:33
1831 #, no-wrap
1832 msgid ""
1833 "/*\n"
1834 " * These are the commands understood by nfsctl().\n"
1835 " */\n"
1836 "#define NFSCTL_SVC          0    /* This is a server process. */\n"
1837 "#define NFSCTL_ADDCLIENT    1    /* Add an NFS client. */\n"
1838 "#define NFSCTL_DELCLIENT    2    /* Remove an NFS client. */\n"
1839 "#define NFSCTL_EXPORT       3    /* export a file system. */\n"
1840 "#define NFSCTL_UNEXPORT     4    /* unexport a file system. */\n"
1841 "#define NFSCTL_UGIDUPDATE   5    /* update a client's UID/GID map. */\n"
1842 "#define NFSCTL_GETFH        6    /* get an fh (used by mountd) */\n"
1843 msgstr ""
1844 "/*\n"
1845 " * nfsctl() によって理解されるコマンド\n"
1846 " */\n"
1847 "#define NFSCTL_SVC          0    /* サーバープロセス */\n"
1848 "#define NFSCTL_ADDCLIENT    1    /* NFS クライアントを追加 */\n"
1849 "#define NFSCTL_DELCLIENT    2    /* NFS クライアンドを削除 */\n"
1850 "#define NFSCTL_EXPORT       3    /* ファイルシステムのエクスポート */\n"
1851 "#define NFSCTL_UNEXPORT     4    /* ファイルシステムのアンエクスポート */\n"
1852 "#define NFSCTL_UGIDUPDATE   5    /* UID/GID マップの更新 */\n"
1853 "#define NFSCTL_GETFH        6    /* (mountd で使用される) fh の取得 */\n"
1854
1855 #. type: Plain text
1856 #: build/C/man2/nfsservctl.2:45
1857 #, no-wrap
1858 msgid ""
1859 "struct nfsctl_arg {\n"
1860 "    int                       ca_version;     /* safeguard */\n"
1861 "    union {\n"
1862 "        struct nfsctl_svc     u_svc;\n"
1863 "        struct nfsctl_client  u_client;\n"
1864 "        struct nfsctl_export  u_export;\n"
1865 "        struct nfsctl_uidmap  u_umap;\n"
1866 "        struct nfsctl_fhparm  u_getfh;\n"
1867 "        unsigned int          u_debug;\n"
1868 "    } u;\n"
1869 "}\n"
1870 msgstr ""
1871 "struct nfsctl_arg {\n"
1872 "    int                       ca_version;     /* safeguard */\n"
1873 "    union {\n"
1874 "        struct nfsctl_svc     u_svc;\n"
1875 "        struct nfsctl_client  u_client;\n"
1876 "        struct nfsctl_export  u_export;\n"
1877 "        struct nfsctl_uidmap  u_umap;\n"
1878 "        struct nfsctl_fhparm  u_getfh;\n"
1879 "        unsigned int          u_debug;\n"
1880 "    } u;\n"
1881 "}\n"
1882
1883 #. type: Plain text
1884 #: build/C/man2/nfsservctl.2:50
1885 #, no-wrap
1886 msgid ""
1887 "union nfsctl_res {\n"
1888 "        struct knfs_fh          cr_getfh;\n"
1889 "        unsigned int            cr_debug;\n"
1890 "};\n"
1891 msgstr ""
1892 "union nfsctl_res {\n"
1893 "        struct knfs_fh          cr_getfh;\n"
1894 "        unsigned int            cr_debug;\n"
1895 "};\n"
1896
1897 #. type: Plain text
1898 #: build/C/man2/nfsservctl.2:56 build/C/man2/pivot_root.2:105
1899 #: build/C/man2/vm86.2:59
1900 msgid ""
1901 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1902 "appropriately."
1903 msgstr ""
1904 "成功した場合は 0 が返される。エラーの場合は -1 が返され、 I<errno> が適切に設"
1905 "定される。"
1906
1907 #. type: Plain text
1908 #: build/C/man2/nfsservctl.2:58
1909 msgid "This call is Linux-specific."
1910 msgstr "このコールは Linux 特有である。"
1911
1912 #. type: TH
1913 #: build/C/man2/outb.2:26
1914 #, no-wrap
1915 msgid "OUTB"
1916 msgstr "OUTB"
1917
1918 #. type: TH
1919 #: build/C/man2/outb.2:26
1920 #, no-wrap
1921 msgid "2012-12-31"
1922 msgstr "2012-12-31"
1923
1924 #. type: Plain text
1925 #: build/C/man2/outb.2:31
1926 msgid ""
1927 "outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, "
1928 "outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - port I/O"
1929 msgstr ""
1930 "outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, "
1931 "outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ポート入出力"
1932
1933 #. type: Plain text
1934 #: build/C/man2/outb.2:34
1935 #, no-wrap
1936 msgid "B<#include E<lt>sys/io.hE<gt>>\n"
1937 msgstr "B<#include E<lt>sys/io.hE<gt>>\n"
1938
1939 #. type: Plain text
1940 #: build/C/man2/outb.2:41
1941 #, no-wrap
1942 msgid ""
1943 "B<unsigned char inb(unsigned short int >I<port>B<);>\n"
1944 "B<unsigned char inb_p(unsigned short int >I<port>B<);>\n"
1945 "B<unsigned short int inw(unsigned short int >I<port>B<);>\n"
1946 "B<unsigned short int inw_p(unsigned short int >I<port>B<);>\n"
1947 "B<unsigned int inl(unsigned short int >I<port>B<);>\n"
1948 "B<unsigned int inl_p(unsigned short int >I<port>B<);>\n"
1949 msgstr ""
1950 "B<unsigned char inb(unsigned short int >I<port>B<);>\n"
1951 "B<unsigned char inb_p(unsigned short int >I<port>B<);>\n"
1952 "B<unsigned short int inw(unsigned short int >I<port>B<);>\n"
1953 "B<unsigned short int inw_p(unsigned short int >I<port>B<);>\n"
1954 "B<unsigned int inl(unsigned short int >I<port>B<);>\n"
1955 "B<unsigned int inl_p(unsigned short int >I<port>B<);>\n"
1956
1957 #. type: Plain text
1958 #: build/C/man2/outb.2:48
1959 #, no-wrap
1960 msgid ""
1961 "B<void outb(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1962 "B<void outb_p(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1963 "B<void outw(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1964 "B<void outw_p(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1965 "B<void outl(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1966 "B<void outl_p(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1967 msgstr ""
1968 "B<void outb(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1969 "B<void outb_p(unsigned char >I<value>B<, unsigned short int >I<port>B<);>\n"
1970 "B<void outw(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1971 "B<void outw_p(unsigned short int >I<value>B<, unsigned short int >I<port>B<);>\n"
1972 "B<void outl(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1973 "B<void outl_p(unsigned int >I<value>B<, unsigned short int >I<port>B<);>\n"
1974
1975 #. type: Plain text
1976 #: build/C/man2/outb.2:61
1977 #, no-wrap
1978 msgid ""
1979 "B<void insb(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1980 "B<           unsigned long int >I<count>B<);>\n"
1981 "B<void insw(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1982 "B<           unsigned long int >I<count>B<);>\n"
1983 "B<void insl(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1984 "B<           unsigned long int >I<count>B<);>\n"
1985 "B<void outsb(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
1986 "B<           unsigned long int >I<count>B<);>\n"
1987 "B<void outsw(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
1988 "B<           unsigned long int >I<count>B<);>\n"
1989 "B<void outsl(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
1990 "B<           unsigned long int >I<count>B<);>\n"
1991 msgstr ""
1992 "B<void insb(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1993 "B<           unsigned long int >I<count>B<);>\n"
1994 "B<void insw(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1995 "B<           unsigned long int >I<count>B<);>\n"
1996 "B<void insl(unsigned short int >I<port>B<, void *>I<addr>B<,>\n"
1997 "B<           unsigned long int >I<count>B<);>\n"
1998 "B<void outsb(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
1999 "B<           unsigned long int >I<count>B<);>\n"
2000 "B<void outsw(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2001 "B<           unsigned long int >I<count>B<);>\n"
2002 "B<void outsl(unsigned short int >I<port>B<, const void *>I<addr>B<,>\n"
2003 "B<           unsigned long int >I<count>B<);>\n"
2004
2005 #. type: Plain text
2006 #: build/C/man2/outb.2:67
2007 msgid ""
2008 "This family of functions is used to do low-level port input and output.  The "
2009 "out* functions do port output, the in* functions do port input; the b-suffix "
2010 "functions are byte-width and the w-suffix functions word-width; the _p-"
2011 "suffix functions pause until the I/O completes."
2012 msgstr ""
2013 "この一連の関数はポートに対する低レベルの入出力に使用する。 out* 関数はポート"
2014 "出力、in* 関数はポート入力を行う。 語尾に b がついている関数はバイト単位、w "
2015 "がついている関数はワード単位である。 _p がついている関数は I/O が終了するまで"
2016 "待つ。"
2017
2018 #.  , given the following information
2019 #.  in addition to that given in
2020 #.  .BR outb (9).
2021 #. type: Plain text
2022 #: build/C/man2/outb.2:73
2023 msgid ""
2024 "They are primarily designed for internal kernel use, but can be used from "
2025 "user space."
2026 msgstr ""
2027 "これらの関数はもともとカーネル内部での使用を想定して設計されているが、 ユー"
2028 "ザー空間からでも使用できる。"
2029
2030 #. type: Plain text
2031 #: build/C/man2/outb.2:78
2032 msgid ""
2033 "You must compile with B<-O> or B<-O2> or similar.  The functions are defined "
2034 "as inline macros, and will not be substituted in without optimization "
2035 "enabled, causing unresolved references at link time."
2036 msgstr ""
2037 "B<-O> や B<-O2> などを指定してコンパイルしなければならない。 これらの関数はイ"
2038 "ンライン・マクロとして定義されており、 最適化を行わないと関数の展開が行われ"
2039 "ず、 リンクの時に「解決できない参照(unresolved reference)」が発生する。"
2040
2041 #. type: Plain text
2042 #: build/C/man2/outb.2:87
2043 msgid ""
2044 "You use B<ioperm>(2)  or alternatively B<iopl>(2)  to tell the kernel to "
2045 "allow the user space application to access the I/O ports in question.  "
2046 "Failure to do this will cause the application to receive a segmentation "
2047 "fault."
2048 msgstr ""
2049 "ユーザー空間のアプリケーションが I/O ポートにアクセスすることを カーネルに教"
2050 "えるために B<ioperm>(2)  もしくは B<iopl>(2)  を使用すること。これを忘れると"
2051 "アプリケーションはセグメンテーション違反 (segmentation fault) を受けとること"
2052 "になる。"
2053
2054 #. type: Plain text
2055 #: build/C/man2/outb.2:96
2056 msgid ""
2057 "B<outb>()  and friends are hardware-specific.  The I<value> argument is "
2058 "passed first and the I<port> argument is passed second, which is the "
2059 "opposite order from most DOS implementations."
2060 msgstr ""
2061 "B<outb>()  とその仲間はハードウェア特有である。 I<value> 引数が最初に渡さ"
2062 "れ、 I<port> 引数が二番目に渡される。 この順序はほとんどの DOS での実装とは逆"
2063 "である。"
2064
2065 #. type: Plain text
2066 #: build/C/man2/outb.2:99
2067 msgid "B<ioperm>(2), B<iopl>(2)"
2068 msgstr "B<ioperm>(2), B<iopl>(2)"
2069
2070 #. type: TH
2071 #: build/C/man2/pciconfig_read.2:8
2072 #, no-wrap
2073 msgid "PCICONFIG_READ"
2074 msgstr "PCICONFIG_READ"
2075
2076 #. type: TH
2077 #: build/C/man2/pciconfig_read.2:8
2078 #, no-wrap
2079 msgid "2003-07-14"
2080 msgstr "2003-07-14"
2081
2082 #. type: Plain text
2083 #: build/C/man2/pciconfig_read.2:11
2084 msgid ""
2085 "pciconfig_read, pciconfig_write, pciconfig_iobase - pci device information "
2086 "handling"
2087 msgstr ""
2088 "pciconfig_read, pciconfig_write, pciconfig_iobase - pci デバイス情報を扱う"
2089
2090 #. type: Plain text
2091 #: build/C/man2/pciconfig_read.2:14
2092 #, no-wrap
2093 msgid "B<#include E<lt>pci.hE<gt>>\n"
2094 msgstr "B<#include E<lt>pci.hE<gt>>\n"
2095
2096 #. type: Plain text
2097 #: build/C/man2/pciconfig_read.2:21
2098 #, no-wrap
2099 msgid ""
2100 "B<int pciconfig_read(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2101 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2102 "B<int pciconfig_write(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2103 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2104 "B<int pciconfig_iobase(long >I<which>B<, unsigned long >I<bus>B<,>\n"
2105 "B<          unsigned long >I<devfn>B<);>\n"
2106 msgstr ""
2107 "B<int pciconfig_read(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2108 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2109 "B<int pciconfig_write(unsigned long >I<bus>B<, unsigned long >I<dfn>B<,>\n"
2110 "B<          unsigned long >I<off>B<, unsigned long >I<len>B<, void *>I<buf>B<);>\n"
2111 "B<int pciconfig_iobase(long >I<which>B<, unsigned long >I<bus>B<,>\n"
2112 "B<          unsigned long >I<devfn>B<);>\n"
2113
2114 #. type: Plain text
2115 #: build/C/man2/pciconfig_read.2:27
2116 msgid ""
2117 "Most of the interaction with PCI devices is already handled by the kernel "
2118 "PCI layer, and thus these calls should not normally need to be accessed from "
2119 "user space."
2120 msgstr ""
2121 "PCI デバイスとのやり取り (interaction) は カーネル PCI レイヤですでに処理され"
2122 "ているので、 通常はこららの関数をユーザ空間からアクセスする必要はない。"
2123
2124 #. type: TP
2125 #: build/C/man2/pciconfig_read.2:27 build/C/man2/pciconfig_read.2:51
2126 #, no-wrap
2127 msgid "B<pciconfig_read>()"
2128 msgstr "B<pciconfig_read>()"
2129
2130 #. type: Plain text
2131 #: build/C/man2/pciconfig_read.2:36
2132 msgid "Reads to I<buf> from device I<dev> at offset I<off> value."
2133 msgstr "デバイス I<dev> のオフセット I<off> の値を I<buf> に読み込む。"
2134
2135 #. type: TP
2136 #: build/C/man2/pciconfig_read.2:36 build/C/man2/pciconfig_read.2:57
2137 #, no-wrap
2138 msgid "B<pciconfig_write>()"
2139 msgstr "B<pciconfig_write>()"
2140
2141 #. type: Plain text
2142 #: build/C/man2/pciconfig_read.2:45
2143 msgid "Writes from I<buf> to device I<dev> at offset I<off> value."
2144 msgstr "デバイス I<dev> のオフセット I<off> に I<buf> の値を書き込む。"
2145
2146 #. type: TP
2147 #: build/C/man2/pciconfig_read.2:45 build/C/man2/pciconfig_read.2:63
2148 #, no-wrap
2149 msgid "B<pciconfig_iobase>()"
2150 msgstr "B<pciconfig_iobase>()"
2151
2152 #. type: Plain text
2153 #: build/C/man2/pciconfig_read.2:50
2154 msgid ""
2155 "You pass it a bus/devfn pair and get a physical address for either the "
2156 "memory offset (for things like prep, this is 0xc0000000), the IO base for "
2157 "PIO cycles, or the ISA holes if any."
2158 msgstr ""
2159 "bus/devfn ペアをこの関数に渡し、 メモリオフセット (prep のようなものでは、こ"
2160 "の値は 0xc0000000 である) と PIO サイクルの IO ベースの物理アドレスを取得す"
2161 "る。 また、もしあるならば ISA hole の物理アドレスを取得する。"
2162
2163 #. type: Plain text
2164 #: build/C/man2/pciconfig_read.2:57 build/C/man2/pciconfig_read.2:63
2165 msgid ""
2166 "On success zero is returned.  On error, -1 is returned and I<errno> is set "
2167 "appropriately."
2168 msgstr ""
2169 "成功した場合、0 が返される。 エラーの場合、-1 が返され、 I<errno> が適切に設"
2170 "定される。"
2171
2172 #. type: Plain text
2173 #: build/C/man2/pciconfig_read.2:77
2174 msgid ""
2175 "Returns information on locations of various I/O regions in physical memory "
2176 "according to the I<which> value.  Values for I<which> are: "
2177 "B<IOBASE_BRIDGE_NUMBER>, B<IOBASE_MEMORY>, B<IOBASE_IO>, B<IOBASE_ISA_IO>, "
2178 "B<IOBASE_ISA_MEM>."
2179 msgstr ""
2180 "I<which> の値に基づいて、物理メモリ内の様々な I/O 領域の位置情報が返される。 "
2181 "I<which> の値は、 B<IOBASE_BRIDGE_NUMBER>, B<IOBASE_MEMORY>, B<IOBASE_IO>, "
2182 "B<IOBASE_ISA_IO>, B<IOBASE_ISA_MEM> である。"
2183
2184 #. type: Plain text
2185 #: build/C/man2/pciconfig_read.2:84
2186 msgid "I<len> value is invalid.  This does not apply to B<pciconfig_iobase>()."
2187 msgstr ""
2188 "I<len> の値が無効である。 このエラーは B<pciconfig_iobase>()  には適用されな"
2189 "い。"
2190
2191 #. type: TP
2192 #: build/C/man2/pciconfig_read.2:84 build/C/man2/ptrace.2:1746
2193 #: build/C/man2/sendfile.2:134
2194 #, no-wrap
2195 msgid "B<EIO>"
2196 msgstr "B<EIO>"
2197
2198 #. type: Plain text
2199 #: build/C/man2/pciconfig_read.2:87
2200 msgid "I/O error."
2201 msgstr "I/O エラー。"
2202
2203 #. type: TP
2204 #: build/C/man2/pciconfig_read.2:87
2205 #, no-wrap
2206 msgid "B<ENODEV>"
2207 msgstr "B<ENODEV>"
2208
2209 #. type: Plain text
2210 #: build/C/man2/pciconfig_read.2:93
2211 msgid ""
2212 "For B<pciconfig_iobase>(), \"hose\" value is NULL.  For the other calls, "
2213 "could not find a slot."
2214 msgstr ""
2215 "B<pciconfig_iobase>()  の場合、でホース (hose) の値が NULL である。 他の呼び"
2216 "出しの場合、スロット (slot) が見つからない。"
2217
2218 #. type: Plain text
2219 #: build/C/man2/pciconfig_read.2:98
2220 msgid "The system has not implemented these calls (B<CONFIG_PCI> not defined)."
2221 msgstr ""
2222 "このシステムはこれらの呼び出しを実装していない。 (B<CONFIG_PCI> が定義されて"
2223 "いない)。"
2224
2225 #. type: TP
2226 #: build/C/man2/pciconfig_read.2:98
2227 #, no-wrap
2228 msgid "B<EOPNOTSUPP>"
2229 msgstr "B<EOPNOTSUPP>"
2230
2231 #. type: Plain text
2232 #: build/C/man2/pciconfig_read.2:105
2233 msgid ""
2234 "This return value is valid only for B<pciconfig_iobase>().  It is returned "
2235 "if the value for I<which> is invalid."
2236 msgstr ""
2237 "この返り値は B<pciconfig_iobase>()  でのみ有効である。 このエラーは I<which> "
2238 "の値が無効であるときに返される。"
2239
2240 #. type: Plain text
2241 #: build/C/man2/pciconfig_read.2:112
2242 msgid ""
2243 "User does not have the B<CAP_SYS_ADMIN> capability.  This does not apply to "
2244 "B<pciconfig_iobase>()."
2245 msgstr ""
2246 "ユーザが B<CAP_SYS_ADMIN> 権限を持っていない。 このエラーは "
2247 "B<pciconfig_iobase>()  には適用されない。"
2248
2249 #. type: Plain text
2250 #: build/C/man2/pciconfig_read.2:114
2251 msgid "These calls are Linux-specific, available since Linux 2.0.26/2.1.11."
2252 msgstr ""
2253 "これらの呼び出しは Linux 特有のものであり、 Linux 2.0.26/2.1.11 から使用可能"
2254 "である。"
2255
2256 #. type: Plain text
2257 #: build/C/man2/pciconfig_read.2:116
2258 msgid "B<capabilities>(7)"
2259 msgstr "B<capabilities>(7)"
2260
2261 #. type: TH
2262 #: build/C/man2/perf_event_open.2:27
2263 #, no-wrap
2264 msgid "PERF_EVENT_OPEN"
2265 msgstr "PERF_EVENT_OPEN"
2266
2267 #. type: TH
2268 #: build/C/man2/perf_event_open.2:27
2269 #, no-wrap
2270 msgid "2013-07-02"
2271 msgstr "2013-07-02"
2272
2273 #. type: Plain text
2274 #: build/C/man2/perf_event_open.2:30
2275 msgid "perf_event_open - set up performance monitoring"
2276 msgstr ""
2277
2278 #. type: Plain text
2279 #: build/C/man2/perf_event_open.2:34
2280 #, no-wrap
2281 msgid ""
2282 "B<#include E<lt>linux/perf_event.hE<gt>>\n"
2283 "B<#include E<lt>linux/hw_breakpoint.hE<gt>>\n"
2284 msgstr ""
2285 "B<#include E<lt>linux/perf_event.hE<gt>>\n"
2286 "B<#include E<lt>linux/hw_breakpoint.hE<gt>>\n"
2287
2288 #. type: Plain text
2289 #: build/C/man2/perf_event_open.2:38
2290 #, no-wrap
2291 msgid ""
2292 "B<int perf_event_open(struct perf_event_attr *>I<attr>B<,>\n"
2293 "B<                    pid_t >I<pid>B<, int >I<cpu>B<, int >I<group_fd>B<,>\n"
2294 "B<                    unsigned long >I<flags>B<);>\n"
2295 msgstr ""
2296 "B<int perf_event_open(struct perf_event_attr *>I<attr>B<,>\n"
2297 "B<                    pid_t >I<pid>B<, int >I<cpu>B<, int >I<group_fd>B<,>\n"
2298 "B<                    unsigned long >I<flags>B<);>\n"
2299
2300 #. type: Plain text
2301 #: build/C/man2/perf_event_open.2:47
2302 msgid ""
2303 "Given a list of parameters, B<perf_event_open>()  returns a file descriptor, "
2304 "for use in subsequent system calls (B<read>(2), B<mmap>(2), B<prctl>(2), "
2305 "B<fcntl>(2), etc.)."
2306 msgstr ""
2307
2308 #. type: Plain text
2309 #: build/C/man2/perf_event_open.2:55
2310 msgid ""
2311 "A call to B<perf_event_open>()  creates a file descriptor that allows "
2312 "measuring performance information.  Each file descriptor corresponds to one "
2313 "event that is measured; these can be grouped together to measure multiple "
2314 "events simultaneously."
2315 msgstr ""
2316
2317 #. type: Plain text
2318 #: build/C/man2/perf_event_open.2:62
2319 msgid ""
2320 "Events can be enabled and disabled in two ways: via B<ioctl>(2)  and via "
2321 "B<prctl>(2)B<.> When an event is disabled it does not count or generate "
2322 "overflows but does continue to exist and maintain its count value."
2323 msgstr ""
2324
2325 #. type: Plain text
2326 #: build/C/man2/perf_event_open.2:76
2327 msgid ""
2328 "Events come in two flavors: counting and sampled.  A I<counting> event is "
2329 "one that is used for counting the aggregate number of events that occur.  In "
2330 "general, counting event results are gathered with a B<read>(2)  call.  A "
2331 "I<sampling> event periodically writes measurements to a buffer that can then "
2332 "be accessed via B<mmap>(2)B<.>"
2333 msgstr ""
2334
2335 #. type: SS
2336 #: build/C/man2/perf_event_open.2:76
2337 #, no-wrap
2338 msgid "Arguments"
2339 msgstr ""
2340
2341 #. type: Plain text
2342 #: build/C/man2/perf_event_open.2:90
2343 msgid ""
2344 "The argument I<pid> allows events to be attached to processes in various "
2345 "ways.  If I<pid> is 0, measurements happen on the current thread, if I<pid> "
2346 "is greater than 0, the process indicated by I<pid> is measured, and if "
2347 "I<pid> is -1, all processes are counted."
2348 msgstr ""
2349
2350 #. type: Plain text
2351 #: build/C/man2/perf_event_open.2:101
2352 msgid ""
2353 "The I<cpu> argument allows measurements to be specific to a CPU.  If I<cpu> "
2354 "is greater than or equal to 0, measurements are restricted to the specified "
2355 "CPU; if I<cpu> is -1, the events are measured on all CPUs."
2356 msgstr ""
2357
2358 #. type: Plain text
2359 #: build/C/man2/perf_event_open.2:107
2360 msgid ""
2361 "Note that the combination of I<pid> == -1 and I<cpu> == -1 is not valid."
2362 msgstr ""
2363
2364 #. type: Plain text
2365 #: build/C/man2/perf_event_open.2:115
2366 msgid ""
2367 "A I<pid> E<gt> 0 and I<cpu> == -1 setting measures per-process and follows "
2368 "that process to whatever CPU the process gets scheduled to.  Per-process "
2369 "events can be created by any user."
2370 msgstr ""
2371
2372 #. type: Plain text
2373 #: build/C/man2/perf_event_open.2:126
2374 msgid ""
2375 "A I<pid> == -1 and I<cpu> E<gt>= 0 setting is per-CPU and measures all "
2376 "processes on the specified CPU.  Per-CPU events need the B<CAP_SYS_ADMIN> "
2377 "capability or a I</proc/sys/kernel/perf_event_paranoid> value of less than 1."
2378 msgstr ""
2379
2380 #. type: Plain text
2381 #: build/C/man2/perf_event_open.2:148
2382 msgid ""
2383 "The I<group_fd> argument allows event groups to be created.  An event group "
2384 "has one event which is the group leader.  The leader is created first, with "
2385 "I<group_fd> = -1.  The rest of the group members are created with subsequent "
2386 "B<perf_event_open>()  calls with I<group_fd> being set to the fd of the "
2387 "group leader.  (A single event on its own is created with I<group_fd> = -1 "
2388 "and is considered to be a group with only 1 member.)  An event group is "
2389 "scheduled onto the CPU as a unit: it will be put onto the CPU only if all of "
2390 "the events in the group can be put onto the CPU.  This means that the values "
2391 "of the member events can be meaningfully compared, added, divided (to get "
2392 "ratios), etc., with each other, since they have counted events for the same "
2393 "set of executed instructions."
2394 msgstr ""
2395
2396 #. type: Plain text
2397 #: build/C/man2/perf_event_open.2:152
2398 #, fuzzy
2399 #| msgid ""
2400 #| "The I<flags> argument is a bit mask that is composed by ORing together "
2401 #| "zero or more of the following values:"
2402 msgid ""
2403 "The I<flags> argument is formed by ORing together zero or more of the "
2404 "following values:"
2405 msgstr ""
2406 "I<flags> 引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。"
2407
2408 #. type: TP
2409 #: build/C/man2/perf_event_open.2:152
2410 #, no-wrap
2411 msgid "B<PERF_FLAG_FD_NO_GROUP>"
2412 msgstr ""
2413
2414 #.  FIXME The following sentence is unclear
2415 #.  FIXME So, why is it useful?
2416 #. type: Plain text
2417 #: build/C/man2/perf_event_open.2:159
2418 msgid ""
2419 "This flag allows creating an event as part of an event group but having no "
2420 "group leader.  It is unclear why this is useful."
2421 msgstr ""
2422
2423 #. type: TP
2424 #: build/C/man2/perf_event_open.2:159
2425 #, no-wrap
2426 msgid "B<PERF_FLAG_FD_OUTPUT>"
2427 msgstr ""
2428
2429 #. type: Plain text
2430 #: build/C/man2/perf_event_open.2:162
2431 msgid "This flag re-routes the output from an event to the group leader."
2432 msgstr ""
2433
2434 #. type: TP
2435 #: build/C/man2/perf_event_open.2:162
2436 #, fuzzy, no-wrap
2437 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
2438 msgid "B<PERF_FLAG_PID_CGROUP> (Since Linux 2.6.39)."
2439 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
2440
2441 #. type: Plain text
2442 #: build/C/man2/perf_event_open.2:185
2443 msgid ""
2444 "This flag activates per-container system-wide monitoring.  A container is an "
2445 "abstraction that isolates a set of resources for finer grain control (CPUs, "
2446 "memory, etc...).  In this mode, the event is measured only if the thread "
2447 "running on the monitored CPU belongs to the designated container (cgroup).  "
2448 "The cgroup is identified by passing a file descriptor opened on its "
2449 "directory in the cgroupfs filesystem.  For instance, if the cgroup to "
2450 "monitor is called I<test>, then a file descriptor opened on I</dev/cgroup/"
2451 "test> (assuming cgroupfs is mounted on I</dev/cgroup>)  must be passed as "
2452 "the I<pid> parameter.  cgroup monitoring is available only for system-wide "
2453 "events and may therefore require extra permissions."
2454 msgstr ""
2455
2456 #. type: Plain text
2457 #: build/C/man2/perf_event_open.2:190
2458 msgid ""
2459 "The I<perf_event_attr> structure provides detailed configuration information "
2460 "for the event being created."
2461 msgstr ""
2462
2463 #. type: Plain text
2464 #: build/C/man2/perf_event_open.2:197
2465 #, no-wrap
2466 msgid ""
2467 "struct perf_event_attr {\n"
2468 "    __u32     type;         /* Type of event */\n"
2469 "    __u32     size;         /* Size of attribute structure */\n"
2470 "    __u64     config;       /* Type-specific configuration */\n"
2471 msgstr ""
2472
2473 #. type: Plain text
2474 #: build/C/man2/perf_event_open.2:202
2475 #, no-wrap
2476 msgid ""
2477 "    union {\n"
2478 "        __u64 sample_period;    /* Period of sampling */\n"
2479 "        __u64 sample_freq;      /* Frequency of sampling */\n"
2480 "    };\n"
2481 msgstr ""
2482
2483 #. type: Plain text
2484 #: build/C/man2/perf_event_open.2:205
2485 #, no-wrap
2486 msgid ""
2487 "    __u64     sample_type;  /* Specifies values included in sample */\n"
2488 "    __u64     read_format;  /* Specifies values returned in read */\n"
2489 msgstr ""
2490
2491 #. type: Plain text
2492 #: build/C/man2/perf_event_open.2:231
2493 #, no-wrap
2494 msgid ""
2495 "    __u64     disabled       : 1,   /* off by default */\n"
2496 "              inherit        : 1,   /* children inherit it */\n"
2497 "              pinned         : 1,   /* must always be on PMU */\n"
2498 "              exclusive      : 1,   /* only group on PMU */\n"
2499 "              exclude_user   : 1,   /* don't count user */\n"
2500 "              exclude_kernel : 1,   /* don't count kernel */\n"
2501 "              exclude_hv     : 1,   /* don't count hypervisor */\n"
2502 "              exclude_idle   : 1,   /* don't count when idle */\n"
2503 "              mmap           : 1,   /* include mmap data */\n"
2504 "              comm           : 1,   /* include comm data */\n"
2505 "              freq           : 1,   /* use freq, not period */\n"
2506 "              inherit_stat   : 1,   /* per task counts */\n"
2507 "              enable_on_exec : 1,   /* next exec enables */\n"
2508 "              task           : 1,   /* trace fork/exit */\n"
2509 "              watermark      : 1,   /* wakeup_watermark */\n"
2510 "              precise_ip     : 2,   /* skid constraint */\n"
2511 "              mmap_data      : 1,   /* non-exec mmap data */\n"
2512 "              sample_id_all  : 1,   /* sample_type all events */\n"
2513 "              exclude_host   : 1,   /* don't count in host */\n"
2514 "              exclude_guest  : 1,   /* don't count in guest */\n"
2515 "              exclude_callchain_kernel : 1,\n"
2516 "                                    /* exclude kernel callchains */\n"
2517 "              exclude_callchain_user   : 1,\n"
2518 "\t                            /* exclude user callchains */\n"
2519 "              __reserved_1   : 41;\n"
2520 msgstr ""
2521
2522 #. type: Plain text
2523 #: build/C/man2/perf_event_open.2:236
2524 #, no-wrap
2525 msgid ""
2526 "    union {\n"
2527 "        __u32 wakeup_events;    /* wakeup every n events */\n"
2528 "        __u32 wakeup_watermark; /* bytes before wakeup */\n"
2529 "    };\n"
2530 msgstr ""
2531
2532 #. type: Plain text
2533 #: build/C/man2/perf_event_open.2:238
2534 #, no-wrap
2535 msgid "    __u32     bp_type;          /* breakpoint type */\n"
2536 msgstr ""
2537
2538 #. type: Plain text
2539 #: build/C/man2/perf_event_open.2:243
2540 #, no-wrap
2541 msgid ""
2542 "    union {\n"
2543 "        __u64 bp_addr;          /* breakpoint address */\n"
2544 "        __u64 config1;          /* extension of config */\n"
2545 "    };\n"
2546 msgstr ""
2547
2548 #. type: Plain text
2549 #: build/C/man2/perf_event_open.2:253
2550 #, no-wrap
2551 msgid ""
2552 "    union {\n"
2553 "        __u64 bp_len;           /* breakpoint length */\n"
2554 "        __u64 config2;          /* extension of config1 */\n"
2555 "    };\n"
2556 "    __u64   branch_sample_type; /* enum perf_branch_sample_type */\n"
2557 "    __u64   sample_regs_user;   /* user regs to dump on samples */\n"
2558 "    __u32   sample_stack_user;  /* size of stack to dump on\n"
2559 "                                   samples */\n"
2560 "    __u32   __reserved_2;       /* Align to u64 */\n"
2561 msgstr ""
2562
2563 #. type: Plain text
2564 #: build/C/man2/perf_event_open.2:255
2565 #, no-wrap
2566 msgid "};\n"
2567 msgstr ""
2568
2569 #. type: Plain text
2570 #: build/C/man2/perf_event_open.2:261
2571 msgid ""
2572 "The fields of the I<perf_event_attr> structure are described in more detail "
2573 "below:"
2574 msgstr ""
2575
2576 #. type: TP
2577 #: build/C/man2/perf_event_open.2:261 build/C/man2/perf_event_open.2:1297
2578 #, no-wrap
2579 msgid "I<type>"
2580 msgstr ""
2581
2582 #. type: Plain text
2583 #: build/C/man2/perf_event_open.2:265
2584 msgid ""
2585 "This field specifies the overall event type.  It has one of the following "
2586 "values:"
2587 msgstr ""
2588
2589 #. type: TP
2590 #: build/C/man2/perf_event_open.2:266
2591 #, no-wrap
2592 msgid "B<PERF_TYPE_HARDWARE>"
2593 msgstr ""
2594
2595 #. type: Plain text
2596 #: build/C/man2/perf_event_open.2:273
2597 msgid ""
2598 "This indicates one of the \"generalized\" hardware events provided by the "
2599 "kernel.  See the I<config> field definition for more details."
2600 msgstr ""
2601
2602 #. type: TP
2603 #: build/C/man2/perf_event_open.2:273
2604 #, no-wrap
2605 msgid "B<PERF_TYPE_SOFTWARE>"
2606 msgstr ""
2607
2608 #. type: Plain text
2609 #: build/C/man2/perf_event_open.2:277
2610 msgid ""
2611 "This indicates one of the software-defined events provided by the kernel "
2612 "(even if no hardware support is available)."
2613 msgstr ""
2614
2615 #. type: TP
2616 #: build/C/man2/perf_event_open.2:277
2617 #, no-wrap
2618 msgid "B<PERF_TYPE_TRACEPOINT>"
2619 msgstr "B<PERF_TYPE_TRACEPOINT>"
2620
2621 #. type: Plain text
2622 #: build/C/man2/perf_event_open.2:281
2623 msgid ""
2624 "This indicates a tracepoint provided by the kernel tracepoint infrastructure."
2625 msgstr ""
2626
2627 #. type: TP
2628 #: build/C/man2/perf_event_open.2:281
2629 #, no-wrap
2630 msgid "B<PERF_TYPE_HW_CACHE>"
2631 msgstr ""
2632
2633 #. type: Plain text
2634 #: build/C/man2/perf_event_open.2:287
2635 msgid ""
2636 "This indicates a hardware cache event.  This has a special encoding, "
2637 "described in the I<config> field definition."
2638 msgstr ""
2639
2640 #. type: TP
2641 #: build/C/man2/perf_event_open.2:287
2642 #, no-wrap
2643 msgid "B<PERF_TYPE_RAW>"
2644 msgstr ""
2645
2646 #. type: Plain text
2647 #: build/C/man2/perf_event_open.2:291
2648 msgid ""
2649 "This indicates a \"raw\" implementation-specific event in the I<config> "
2650 "field."
2651 msgstr ""
2652
2653 #. type: TP
2654 #: build/C/man2/perf_event_open.2:291
2655 #, fuzzy, no-wrap
2656 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
2657 msgid "B<PERF_TYPE_BREAKPOINT> (Since Linux 2.6.33)"
2658 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
2659
2660 #. type: Plain text
2661 #: build/C/man2/perf_event_open.2:296
2662 msgid ""
2663 "This indicates a hardware breakpoint as provided by the CPU.  Breakpoints "
2664 "can be read/write accesses to an address as well as execution of an "
2665 "instruction address."
2666 msgstr ""
2667
2668 #. type: TP
2669 #: build/C/man2/perf_event_open.2:296
2670 #, no-wrap
2671 msgid "dynamic PMU"
2672 msgstr ""
2673
2674 #. type: Plain text
2675 #: build/C/man2/perf_event_open.2:315
2676 msgid ""
2677 "Since Linux 2.6.39, B<perf_event_open>()  can support multiple PMUs.  To "
2678 "enable this, a value exported by the kernel can be used in the I<type> field "
2679 "to indicate which PMU to use.  The value to use can be found in the sysfs "
2680 "filesystem: there is a subdirectory per PMU instance under I</sys/bus/"
2681 "event_source/devices>.  In each sub-directory there is a I<type> file whose "
2682 "content is an integer that can be used in the I<type> field.  For instance, "
2683 "I</sys/bus/event_source/devices/cpu/type> contains the value for the core "
2684 "CPU PMU, which is usually 4."
2685 msgstr ""
2686
2687 #. type: TP
2688 #: build/C/man2/perf_event_open.2:316 build/C/man2/perf_event_open.2:1734
2689 #, no-wrap
2690 msgid "I<size>"
2691 msgstr ""
2692
2693 #. type: Plain text
2694 #: build/C/man2/perf_event_open.2:325
2695 msgid ""
2696 "The size of the I<perf_event_attr> structure for forward/backward "
2697 "compatibility.  Set this using I<sizeof(struct perf_event_attr)> to allow "
2698 "the kernel to see the struct size at the time of compilation."
2699 msgstr ""
2700
2701 #. type: Plain text
2702 #: build/C/man2/perf_event_open.2:340
2703 msgid ""
2704 "The related define B<PERF_ATTR_SIZE_VER0> is set to 64; this was the size of "
2705 "the first published struct.  B<PERF_ATTR_SIZE_VER1> is 72, corresponding to "
2706 "the addition of breakpoints in Linux 2.6.33.  B<PERF_ATTR_SIZE_VER2> is 80 "
2707 "corresponding to the addition of branch sampling in Linux 3.4.  "
2708 "B<PERF_ATR_SIZE_VER3> is 96 corresponding to the addition of "
2709 "I<sample_regs_user> and I<sample_stack_user> in Linux 3.7."
2710 msgstr ""
2711
2712 #. type: TP
2713 #: build/C/man2/perf_event_open.2:340
2714 #, no-wrap
2715 msgid "I<config>"
2716 msgstr ""
2717
2718 #. type: Plain text
2719 #: build/C/man2/perf_event_open.2:351
2720 msgid ""
2721 "This specifies which event you want, in conjunction with the I<type> field.  "
2722 "The I<config1> and I<config2> fields are also taken into account in cases "
2723 "where 64 bits is not enough to fully specify the event.  The encoding of "
2724 "these fields are event dependent."
2725 msgstr ""
2726
2727 #. type: Plain text
2728 #: build/C/man2/perf_event_open.2:357
2729 msgid ""
2730 "The most significant bit (bit 63) of I<config> signifies CPU-specific (raw) "
2731 "counter configuration data; if the most significant bit is unset, the next 7 "
2732 "bits are an event type and the rest of the bits are the event identifier."
2733 msgstr ""
2734
2735 #. type: Plain text
2736 #: build/C/man2/perf_event_open.2:368
2737 msgid ""
2738 "There are various ways to set the I<config> field that are dependent on the "
2739 "value of the previously described I<type> field.  What follows are various "
2740 "possible settings for I<config> separated out by I<type>."
2741 msgstr ""
2742
2743 #. type: Plain text
2744 #: build/C/man2/perf_event_open.2:378
2745 msgid ""
2746 "If I<type> is B<PERF_TYPE_HARDWARE>, we are measuring one of the generalized "
2747 "hardware CPU events.  Not all of these are available on all platforms.  Set "
2748 "I<config> to one of the following:"
2749 msgstr ""
2750
2751 #. type: TP
2752 #: build/C/man2/perf_event_open.2:379
2753 #, no-wrap
2754 msgid "B<PERF_COUNT_HW_CPU_CYCLES>"
2755 msgstr ""
2756
2757 #. type: Plain text
2758 #: build/C/man2/perf_event_open.2:383
2759 msgid "Total cycles.  Be wary of what happens during CPU frequency scaling"
2760 msgstr ""
2761
2762 #. type: TP
2763 #: build/C/man2/perf_event_open.2:383
2764 #, no-wrap
2765 msgid "B<PERF_COUNT_HW_INSTRUCTIONS>"
2766 msgstr ""
2767
2768 #. type: Plain text
2769 #: build/C/man2/perf_event_open.2:388
2770 msgid ""
2771 "Retired instructions.  Be careful, these can be affected by various issues, "
2772 "most notably hardware interrupt counts"
2773 msgstr ""
2774
2775 #. type: TP
2776 #: build/C/man2/perf_event_open.2:388
2777 #, no-wrap
2778 msgid "B<PERF_COUNT_HW_CACHE_REFERENCES>"
2779 msgstr ""
2780
2781 #. type: Plain text
2782 #: build/C/man2/perf_event_open.2:395
2783 msgid ""
2784 "Cache accesses.  Usually this indicates Last Level Cache accesses but this "
2785 "may vary depending on your CPU.  This may include prefetches and coherency "
2786 "messages; again this depends on the design of your CPU."
2787 msgstr ""
2788
2789 #. type: TP
2790 #: build/C/man2/perf_event_open.2:395
2791 #, no-wrap
2792 msgid "B<PERF_COUNT_HW_CACHE_MISSES>"
2793 msgstr ""
2794
2795 #. type: Plain text
2796 #: build/C/man2/perf_event_open.2:402
2797 msgid ""
2798 "Cache misses.  Usually this indicates Last Level Cache misses; this is "
2799 "intended to be used in conjunction with the "
2800 "B<PERF_COUNT_HW_CACHE_REFERENCES> event to calculate cache miss rates."
2801 msgstr ""
2802
2803 #. type: TP
2804 #: build/C/man2/perf_event_open.2:402
2805 #, no-wrap
2806 msgid "B<PERF_COUNT_HW_BRANCH_INSTRUCTIONS>"
2807 msgstr ""
2808
2809 #. type: Plain text
2810 #: build/C/man2/perf_event_open.2:407
2811 msgid ""
2812 "Retired branch instructions.  Prior to Linux 2.6.34, this used the wrong "
2813 "event on AMD processors."
2814 msgstr ""
2815
2816 #. type: TP
2817 #: build/C/man2/perf_event_open.2:407
2818 #, no-wrap
2819 msgid "B<PERF_COUNT_HW_BRANCH_MISSES>"
2820 msgstr ""
2821
2822 #. type: Plain text
2823 #: build/C/man2/perf_event_open.2:410
2824 msgid "Mispredicted branch instructions."
2825 msgstr ""
2826
2827 #. type: TP
2828 #: build/C/man2/perf_event_open.2:410
2829 #, no-wrap
2830 msgid "B<PERF_COUNT_HW_BUS_CYCLES>"
2831 msgstr ""
2832
2833 #. type: Plain text
2834 #: build/C/man2/perf_event_open.2:413
2835 msgid "Bus cycles, which can be different from total cycles."
2836 msgstr ""
2837
2838 #. type: TP
2839 #: build/C/man2/perf_event_open.2:413
2840 #, fuzzy, no-wrap
2841 #| msgid "B<PTRACE_O_TRACEVFORKDONE> (since Linux 2.5.60)"
2842 msgid "B<PERF_COUNT_HW_STALLED_CYCLES_FRONTEND> (Since Linux 3.0)"
2843 msgstr "B<PTRACE_O_TRACEVFORKDONE> (Linux 2.5.60 以降)"
2844
2845 #. type: Plain text
2846 #: build/C/man2/perf_event_open.2:416
2847 msgid "Stalled cycles during issue."
2848 msgstr ""
2849
2850 #. type: TP
2851 #: build/C/man2/perf_event_open.2:416
2852 #, no-wrap
2853 msgid "B<PERF_COUNT_HW_STALLED_CYCLES_BACKEND> (Since Linux 3.0)"
2854 msgstr ""
2855
2856 #. type: Plain text
2857 #: build/C/man2/perf_event_open.2:419
2858 msgid "Stalled cycles during retirement."
2859 msgstr ""
2860
2861 #. type: TP
2862 #: build/C/man2/perf_event_open.2:419
2863 #, fuzzy, no-wrap
2864 #| msgid "B<PTRACE_O_TRACECLONE> (since Linux 2.5.46)"
2865 msgid "B<PERF_COUNT_HW_REF_CPU_CYCLES> (Since Linux 3.3)"
2866 msgstr "B<PTRACE_O_TRACECLONE> (Linux 2.5.46 以降)"
2867
2868 #. type: Plain text
2869 #: build/C/man2/perf_event_open.2:422
2870 msgid "Total cycles; not affected by CPU frequency scaling."
2871 msgstr ""
2872
2873 #. type: Plain text
2874 #: build/C/man2/perf_event_open.2:432
2875 msgid ""
2876 "If I<type> is B<PERF_TYPE_SOFTWARE>, we are measuring software events "
2877 "provided by the kernel.  Set I<config> to one of the following:"
2878 msgstr ""
2879
2880 #. type: TP
2881 #: build/C/man2/perf_event_open.2:433
2882 #, no-wrap
2883 msgid "B<PERF_COUNT_SW_CPU_CLOCK>"
2884 msgstr ""
2885
2886 #. type: Plain text
2887 #: build/C/man2/perf_event_open.2:436
2888 msgid "This reports the CPU clock, a high-resolution per-CPU timer."
2889 msgstr ""
2890
2891 #. type: TP
2892 #: build/C/man2/perf_event_open.2:436
2893 #, no-wrap
2894 msgid "B<PERF_COUNT_SW_TASK_CLOCK>"
2895 msgstr ""
2896
2897 #. type: Plain text
2898 #: build/C/man2/perf_event_open.2:439
2899 msgid "This reports a clock count specific to the task that is running."
2900 msgstr ""
2901
2902 #. type: TP
2903 #: build/C/man2/perf_event_open.2:439
2904 #, no-wrap
2905 msgid "B<PERF_COUNT_SW_PAGE_FAULTS>"
2906 msgstr ""
2907
2908 #. type: Plain text
2909 #: build/C/man2/perf_event_open.2:442
2910 msgid "This reports the number of page faults."
2911 msgstr ""
2912
2913 #. type: TP
2914 #: build/C/man2/perf_event_open.2:442
2915 #, no-wrap
2916 msgid "B<PERF_COUNT_SW_CONTEXT_SWITCHES>"
2917 msgstr ""
2918
2919 #. type: Plain text
2920 #: build/C/man2/perf_event_open.2:447
2921 msgid ""
2922 "This counts context switches.  Until Linux 2.6.34, these were all reported "
2923 "as user-space events, after that they are reported as happening in the "
2924 "kernel."
2925 msgstr ""
2926
2927 #. type: TP
2928 #: build/C/man2/perf_event_open.2:447
2929 #, no-wrap
2930 msgid "B<PERF_COUNT_SW_CPU_MIGRATIONS>"
2931 msgstr ""
2932
2933 #. type: Plain text
2934 #: build/C/man2/perf_event_open.2:451
2935 msgid "This reports the number of times the process has migrated to a new CPU."
2936 msgstr ""
2937
2938 #. type: TP
2939 #: build/C/man2/perf_event_open.2:451
2940 #, no-wrap
2941 msgid "B<PERF_COUNT_SW_PAGE_FAULTS_MIN>"
2942 msgstr ""
2943
2944 #. type: Plain text
2945 #: build/C/man2/perf_event_open.2:455
2946 msgid ""
2947 "This counts the number of minor page faults.  These did not require disk I/O "
2948 "to handle."
2949 msgstr ""
2950
2951 #. type: TP
2952 #: build/C/man2/perf_event_open.2:455
2953 #, no-wrap
2954 msgid "B<PERF_COUNT_SW_PAGE_FAULTS_MAJ>"
2955 msgstr ""
2956
2957 #. type: Plain text
2958 #: build/C/man2/perf_event_open.2:459
2959 msgid ""
2960 "This counts the number of major page faults.  These required disk I/O to "
2961 "handle."
2962 msgstr ""
2963
2964 #. type: TP
2965 #: build/C/man2/perf_event_open.2:459
2966 #, fuzzy, no-wrap
2967 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
2968 msgid "B<PERF_COUNT_SW_ALIGNMENT_FAULTS> (Since Linux 2.6.33)"
2969 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
2970
2971 #. type: Plain text
2972 #: build/C/man2/perf_event_open.2:465
2973 msgid ""
2974 "This counts the number of alignment faults.  These happen when unaligned "
2975 "memory accesses happen; the kernel can handle these but it reduces "
2976 "performance.  This happens only on some architectures (never on x86)."
2977 msgstr ""
2978
2979 #. type: TP
2980 #: build/C/man2/perf_event_open.2:465
2981 #, fuzzy, no-wrap
2982 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
2983 msgid "B<PERF_COUNT_SW_EMULATION_FAULTS> (Since Linux 2.6.33)"
2984 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
2985
2986 #. type: Plain text
2987 #: build/C/man2/perf_event_open.2:471
2988 msgid ""
2989 "This counts the number of emulation faults.  The kernel sometimes traps on "
2990 "unimplemented instructions and emulates them for user space.  This can "
2991 "negatively impact performance."
2992 msgstr ""
2993
2994 #. type: Plain text
2995 #: build/C/man2/perf_event_open.2:484
2996 msgid ""
2997 "If I<type> is B<PERF_TYPE_TRACEPOINT>, then we are measuring kernel "
2998 "tracepoints.  The value to use in I<config> can be obtained from under "
2999 "debugfs I<tracing/events/*/*/id> if ftrace is enabled in the kernel."
3000 msgstr ""
3001
3002 #. type: Plain text
3003 #: build/C/man2/perf_event_open.2:495
3004 msgid ""
3005 "If I<type> is B<PERF_TYPE_HW_CACHE>, then we are measuring a hardware CPU "
3006 "cache event.  To calculate the appropriate I<config> value use the following "
3007 "equation:"
3008 msgstr ""
3009
3010 #. type: Plain text
3011 #: build/C/man2/perf_event_open.2:500
3012 #, no-wrap
3013 msgid ""
3014 "    (perf_hw_cache_id) | (perf_hw_cache_op_id E<lt>E<lt> 8) |\n"
3015 "    (perf_hw_cache_op_result_id E<lt>E<lt> 16)\n"
3016 msgstr ""
3017
3018 #. type: Plain text
3019 #: build/C/man2/perf_event_open.2:505
3020 msgid "where I<perf_hw_cache_id> is one of:"
3021 msgstr ""
3022
3023 #. type: TP
3024 #: build/C/man2/perf_event_open.2:506
3025 #, no-wrap
3026 msgid "B<PERF_COUNT_HW_CACHE_L1D>"
3027 msgstr ""
3028
3029 #. type: Plain text
3030 #: build/C/man2/perf_event_open.2:509
3031 msgid "for measuring Level 1 Data Cache"
3032 msgstr ""
3033
3034 #. type: TP
3035 #: build/C/man2/perf_event_open.2:509
3036 #, no-wrap
3037 msgid "B<PERF_COUNT_HW_CACHE_L1I>"
3038 msgstr ""
3039
3040 #. type: Plain text
3041 #: build/C/man2/perf_event_open.2:512
3042 msgid "for measuring Level 1 Instruction Cache"
3043 msgstr ""
3044
3045 #. type: TP
3046 #: build/C/man2/perf_event_open.2:512
3047 #, no-wrap
3048 msgid "B<PERF_COUNT_HW_CACHE_LL>"
3049 msgstr ""
3050
3051 #. type: Plain text
3052 #: build/C/man2/perf_event_open.2:515
3053 msgid "for measuring Last-Level Cache"
3054 msgstr ""
3055
3056 #. type: TP
3057 #: build/C/man2/perf_event_open.2:515
3058 #, no-wrap
3059 msgid "B<PERF_COUNT_HW_CACHE_DTLB>"
3060 msgstr ""
3061
3062 #. type: Plain text
3063 #: build/C/man2/perf_event_open.2:518
3064 msgid "for measuring the Data TLB"
3065 msgstr ""
3066
3067 #. type: TP
3068 #: build/C/man2/perf_event_open.2:518
3069 #, no-wrap
3070 msgid "B<PERF_COUNT_HW_CACHE_ITLB>"
3071 msgstr ""
3072
3073 #. type: Plain text
3074 #: build/C/man2/perf_event_open.2:521
3075 msgid "for measuring the Instruction TLB"
3076 msgstr ""
3077
3078 #. type: TP
3079 #: build/C/man2/perf_event_open.2:521
3080 #, no-wrap
3081 msgid "B<PERF_COUNT_HW_CACHE_BPU>"
3082 msgstr ""
3083
3084 #. type: Plain text
3085 #: build/C/man2/perf_event_open.2:524
3086 msgid "for measuring the branch prediction unit"
3087 msgstr ""
3088
3089 #. type: TP
3090 #: build/C/man2/perf_event_open.2:524
3091 #, fuzzy, no-wrap
3092 #| msgid "B<PTRACE_O_TRACEVFORKDONE> (since Linux 2.5.60)"
3093 msgid "B<PERF_COUNT_HW_CACHE_NODE> (Since Linux 3.0)"
3094 msgstr "B<PTRACE_O_TRACEVFORKDONE> (Linux 2.5.60 以降)"
3095
3096 #. type: Plain text
3097 #: build/C/man2/perf_event_open.2:527
3098 msgid "for measuring local memory accesses"
3099 msgstr ""
3100
3101 #. type: Plain text
3102 #: build/C/man2/perf_event_open.2:532
3103 msgid "and I<perf_hw_cache_op_id> is one of"
3104 msgstr ""
3105
3106 #. type: TP
3107 #: build/C/man2/perf_event_open.2:533
3108 #, no-wrap
3109 msgid "B<PERF_COUNT_HW_CACHE_OP_READ>"
3110 msgstr ""
3111
3112 #. type: Plain text
3113 #: build/C/man2/perf_event_open.2:536
3114 msgid "for read accesses"
3115 msgstr ""
3116
3117 #. type: TP
3118 #: build/C/man2/perf_event_open.2:536
3119 #, no-wrap
3120 msgid "B<PERF_COUNT_HW_CACHE_OP_WRITE>"
3121 msgstr ""
3122
3123 #. type: Plain text
3124 #: build/C/man2/perf_event_open.2:539
3125 msgid "for write accesses"
3126 msgstr ""
3127
3128 #. type: TP
3129 #: build/C/man2/perf_event_open.2:539
3130 #, no-wrap
3131 msgid "B<PERF_COUNT_HW_CACHE_OP_PREFETCH>"
3132 msgstr ""
3133
3134 #. type: Plain text
3135 #: build/C/man2/perf_event_open.2:542
3136 msgid "for prefetch accesses"
3137 msgstr ""
3138
3139 #. type: Plain text
3140 #: build/C/man2/perf_event_open.2:547
3141 msgid "and I<perf_hw_cache_op_result_id> is one of"
3142 msgstr ""
3143
3144 #. type: TP
3145 #: build/C/man2/perf_event_open.2:548
3146 #, no-wrap
3147 msgid "B<PERF_COUNT_HW_CACHE_RESULT_ACCESS>"
3148 msgstr ""
3149
3150 #. type: Plain text
3151 #: build/C/man2/perf_event_open.2:551
3152 msgid "to measure accesses"
3153 msgstr ""
3154
3155 #. type: TP
3156 #: build/C/man2/perf_event_open.2:551
3157 #, no-wrap
3158 msgid "B<PERF_COUNT_HW_CACHE_RESULT_MISS>"
3159 msgstr ""
3160
3161 #. type: Plain text
3162 #: build/C/man2/perf_event_open.2:554
3163 msgid "to measure misses"
3164 msgstr ""
3165
3166 #. type: Plain text
3167 #: build/C/man2/perf_event_open.2:572
3168 msgid ""
3169 "If I<type> is B<PERF_TYPE_RAW>, then a custom \"raw\" I<config> value is "
3170 "needed.  Most CPUs support events that are not covered by the \"generalized"
3171 "\" events.  These are implementation defined; see your CPU manual (for "
3172 "example the Intel Volume 3B documentation or the AMD BIOS and Kernel "
3173 "Developer Guide).  The libpfm4 library can be used to translate from the "
3174 "name in the architectural manuals to the raw hex value B<perf_event_open>()  "
3175 "expects in this field."
3176 msgstr ""
3177
3178 #. type: Plain text
3179 #: build/C/man2/perf_event_open.2:581
3180 msgid ""
3181 "If I<type> is B<PERF_TYPE_BREAKPOINT>, then leave I<config> set to zero.  "
3182 "Its parameters are set in other places."
3183 msgstr ""
3184
3185 #. type: TP
3186 #: build/C/man2/perf_event_open.2:582
3187 #, no-wrap
3188 msgid "I<sample_period>, I<sample_freq>"
3189 msgstr ""
3190
3191 #. type: Plain text
3192 #: build/C/man2/perf_event_open.2:594
3193 msgid ""
3194 "A \"sampling\" counter is one that generates an interrupt every N events, "
3195 "where N is given by I<sample_period>.  A sampling counter has "
3196 "I<sample_period> E<gt> 0.  When an overflow interrupt occurs, requested data "
3197 "is recorded in the mmap buffer.  The I<sample_type> field controls what data "
3198 "is recorded on each interrupt."
3199 msgstr ""
3200
3201 #. type: Plain text
3202 #: build/C/man2/perf_event_open.2:604
3203 msgid ""
3204 "I<sample_freq> can be used if you wish to use frequency rather than period.  "
3205 "In this case you set the I<freq> flag.  The kernel will adjust the sampling "
3206 "period to try and achieve the desired rate.  The rate of adjustment is a "
3207 "timer tick."
3208 msgstr ""
3209
3210 #. type: TP
3211 #: build/C/man2/perf_event_open.2:604
3212 #, no-wrap
3213 msgid "I<sample_type>"
3214 msgstr ""
3215
3216 #. type: Plain text
3217 #: build/C/man2/perf_event_open.2:616
3218 msgid ""
3219 "The various bits in this field specify which values to include in the "
3220 "sample.  They will be recorded in a ring-buffer, which is available to user "
3221 "space using B<mmap>(2).  The order in which the values are saved in the "
3222 "sample are documented in the MMAP Layout subsection below; it is not the "
3223 "I<enum perf_event_sample_format> order."
3224 msgstr ""
3225
3226 #. type: TP
3227 #: build/C/man2/perf_event_open.2:617
3228 #, no-wrap
3229 msgid "B<PERF_SAMPLE_IP>"
3230 msgstr ""
3231
3232 #. type: Plain text
3233 #: build/C/man2/perf_event_open.2:620
3234 msgid "Records instruction pointer."
3235 msgstr ""
3236
3237 #. type: TP
3238 #: build/C/man2/perf_event_open.2:620
3239 #, no-wrap
3240 msgid "B<PERF_SAMPLE_TID>"
3241 msgstr ""
3242
3243 #. type: Plain text
3244 #: build/C/man2/perf_event_open.2:623
3245 msgid "Records the process and thread IDs."
3246 msgstr ""
3247
3248 #. type: TP
3249 #: build/C/man2/perf_event_open.2:623
3250 #, no-wrap
3251 msgid "B<PERF_SAMPLE_TIME>"
3252 msgstr ""
3253
3254 #. type: Plain text
3255 #: build/C/man2/perf_event_open.2:626
3256 msgid "Records a timestamp."
3257 msgstr ""
3258
3259 #. type: TP
3260 #: build/C/man2/perf_event_open.2:626
3261 #, no-wrap
3262 msgid "B<PERF_SAMPLE_ADDR>"
3263 msgstr ""
3264
3265 #. type: Plain text
3266 #: build/C/man2/perf_event_open.2:629
3267 msgid "Records an address, if applicable."
3268 msgstr ""
3269
3270 #. type: TP
3271 #: build/C/man2/perf_event_open.2:629
3272 #, no-wrap
3273 msgid "B<PERF_SAMPLE_READ>"
3274 msgstr ""
3275
3276 #. type: Plain text
3277 #: build/C/man2/perf_event_open.2:632
3278 msgid ""
3279 "Record counter values for all events in a group, not just the group leader."
3280 msgstr ""
3281
3282 #. type: TP
3283 #: build/C/man2/perf_event_open.2:632
3284 #, no-wrap
3285 msgid "B<PERF_SAMPLE_CALLCHAIN>"
3286 msgstr ""
3287
3288 #. type: Plain text
3289 #: build/C/man2/perf_event_open.2:635
3290 msgid "Records the callchain (stack backtrace)."
3291 msgstr ""
3292
3293 #. type: TP
3294 #: build/C/man2/perf_event_open.2:635
3295 #, no-wrap
3296 msgid "B<PERF_SAMPLE_ID>"
3297 msgstr ""
3298
3299 #. type: Plain text
3300 #: build/C/man2/perf_event_open.2:638
3301 msgid "Records a unique ID for the opened event's group leader."
3302 msgstr ""
3303
3304 #. type: TP
3305 #: build/C/man2/perf_event_open.2:638
3306 #, no-wrap
3307 msgid "B<PERF_SAMPLE_CPU>"
3308 msgstr ""
3309
3310 #. type: Plain text
3311 #: build/C/man2/perf_event_open.2:641
3312 msgid "Records CPU number."
3313 msgstr ""
3314
3315 #. type: TP
3316 #: build/C/man2/perf_event_open.2:641
3317 #, no-wrap
3318 msgid "B<PERF_SAMPLE_PERIOD>"
3319 msgstr ""
3320
3321 #. type: Plain text
3322 #: build/C/man2/perf_event_open.2:644
3323 msgid "Records the current sampling period."
3324 msgstr ""
3325
3326 #. type: TP
3327 #: build/C/man2/perf_event_open.2:644
3328 #, no-wrap
3329 msgid "B<PERF_SAMPLE_STREAM_ID>"
3330 msgstr ""
3331
3332 #. type: Plain text
3333 #: build/C/man2/perf_event_open.2:651
3334 msgid ""
3335 "Records a unique ID for the opened event.  Unlike B<PERF_SAMPLE_ID> the "
3336 "actual ID is returned, not the group leader.  This ID is the same as the one "
3337 "returned by PERF_FORMAT_ID."
3338 msgstr ""
3339
3340 #. type: TP
3341 #: build/C/man2/perf_event_open.2:651
3342 #, no-wrap
3343 msgid "B<PERF_SAMPLE_RAW>"
3344 msgstr ""
3345
3346 #. type: Plain text
3347 #: build/C/man2/perf_event_open.2:655
3348 msgid ""
3349 "Records additional data, if applicable.  Usually returned by tracepoint "
3350 "events."
3351 msgstr ""
3352
3353 #. type: TP
3354 #: build/C/man2/perf_event_open.2:655
3355 #, fuzzy, no-wrap
3356 #| msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
3357 msgid "B<PERF_SAMPLE_BRANCH_STACK> (Since Linux 3.4)"
3358 msgstr "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
3359
3360 #. type: Plain text
3361 #: build/C/man2/perf_event_open.2:659
3362 msgid "Records the branch stack.  See branch_sample_type."
3363 msgstr ""
3364
3365 #. type: TP
3366 #: build/C/man2/perf_event_open.2:659
3367 #, fuzzy, no-wrap
3368 #| msgid "B<FUTEX_CMP_REQUEUE> (since Linux 2.6.7)"
3369 msgid "B<PERF_SAMPLE_REGS_USER> (Since Linux 3.7)"
3370 msgstr "B<FUTEX_CMP_REQUEUE> (Linux 2.6.7 以降)"
3371
3372 #. type: Plain text
3373 #: build/C/man2/perf_event_open.2:663
3374 msgid ""
3375 "Records the current user-level CPU register state (the values in the process "
3376 "before the kernel was called)."
3377 msgstr ""
3378
3379 #. type: TP
3380 #: build/C/man2/perf_event_open.2:663
3381 #, fuzzy, no-wrap
3382 #| msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
3383 msgid "B<PERF_SAMPLE_STACK_USER> (Since Linux 3.7)"
3384 msgstr "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
3385
3386 #. type: Plain text
3387 #: build/C/man2/perf_event_open.2:666
3388 msgid "Records the user level stack, allowing stack unwinding."
3389 msgstr ""
3390
3391 #. type: TP
3392 #: build/C/man2/perf_event_open.2:666
3393 #, fuzzy, no-wrap
3394 #| msgid "B<FUTEX_CMP_REQUEUE> (since Linux 2.6.7)"
3395 msgid "B<PERF_SAMPLE_WEIGHT> (Since Linux 3.10)"
3396 msgstr "B<FUTEX_CMP_REQUEUE> (Linux 2.6.7 以降)"
3397
3398 #. type: Plain text
3399 #: build/C/man2/perf_event_open.2:672
3400 msgid ""
3401 "Records a hardware provided weight value that expresses how costly the "
3402 "sampled event was.  This allows the hardware to highlight expensive events "
3403 "in a profile."
3404 msgstr ""
3405
3406 #. type: TP
3407 #: build/C/man2/perf_event_open.2:672
3408 #, fuzzy, no-wrap
3409 #| msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
3410 msgid "B<PERF_SAMPLE_DATA_SRC> (Since Linux 3.10)"
3411 msgstr "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
3412
3413 #. type: Plain text
3414 #: build/C/man2/perf_event_open.2:678
3415 msgid ""
3416 "Records the data source: where in the memory hierarchy the data associated "
3417 "with the sampled instruction came from.  This is only available if the "
3418 "underlying hardware supports this feature."
3419 msgstr ""
3420
3421 #. type: TP
3422 #: build/C/man2/perf_event_open.2:679
3423 #, no-wrap
3424 msgid "I<read_format>"
3425 msgstr ""
3426
3427 #. type: Plain text
3428 #: build/C/man2/perf_event_open.2:686
3429 msgid ""
3430 "This field specifies the format of the data returned by B<read>(2)  on a "
3431 "B<perf_event_open>()  file descriptor."
3432 msgstr ""
3433
3434 #. type: TP
3435 #: build/C/man2/perf_event_open.2:687
3436 #, no-wrap
3437 msgid "B<PERF_FORMAT_TOTAL_TIME_ENABLED>"
3438 msgstr ""
3439
3440 #. type: Plain text
3441 #: build/C/man2/perf_event_open.2:694
3442 msgid ""
3443 "Adds the 64-bit I<time_enabled> field.  This can be used to calculate "
3444 "estimated totals if the PMU is overcommitted and multiplexing is happening."
3445 msgstr ""
3446
3447 #. type: TP
3448 #: build/C/man2/perf_event_open.2:694
3449 #, no-wrap
3450 msgid "B<PERF_FORMAT_TOTAL_TIME_RUNNING>"
3451 msgstr ""
3452
3453 #. type: Plain text
3454 #: build/C/man2/perf_event_open.2:701
3455 msgid ""
3456 "Adds the 64-bit I<time_running> field.  This can be used to calculate "
3457 "estimated totals if the PMU is overcommitted and multiplexing is happening."
3458 msgstr ""
3459
3460 #. type: TP
3461 #: build/C/man2/perf_event_open.2:701
3462 #, no-wrap
3463 msgid "B<PERF_FORMAT_ID>"
3464 msgstr ""
3465
3466 #. type: Plain text
3467 #: build/C/man2/perf_event_open.2:704
3468 msgid "Adds a 64-bit unique value that corresponds to the event group."
3469 msgstr ""
3470
3471 #. type: TP
3472 #: build/C/man2/perf_event_open.2:704
3473 #, no-wrap
3474 msgid "B<PERF_FORMAT_GROUP>"
3475 msgstr ""
3476
3477 #. type: Plain text
3478 #: build/C/man2/perf_event_open.2:707
3479 msgid "Allows all counter values in an event group to be read with one read."
3480 msgstr ""
3481
3482 #. type: TP
3483 #: build/C/man2/perf_event_open.2:708
3484 #, no-wrap
3485 msgid "I<disabled>"
3486 msgstr ""
3487
3488 #. type: Plain text
3489 #: build/C/man2/perf_event_open.2:718
3490 msgid ""
3491 "The I<disabled> bit specifies whether the counter starts out disabled or "
3492 "enabled.  If disabled, the event can later be enabled by B<ioctl>(2), "
3493 "B<prctl>(2), or I<enable_on_exec>."
3494 msgstr ""
3495
3496 #. type: TP
3497 #: build/C/man2/perf_event_open.2:718
3498 #, no-wrap
3499 msgid "I<inherit>"
3500 msgstr ""
3501
3502 #. type: Plain text
3503 #: build/C/man2/perf_event_open.2:727
3504 msgid ""
3505 "The I<inherit> bit specifies that this counter should count events of child "
3506 "tasks as well as the task specified.  This applies only to new children, not "
3507 "to any existing children at the time the counter is created (nor to any new "
3508 "children of existing children)."
3509 msgstr ""
3510
3511 #. type: Plain text
3512 #: build/C/man2/perf_event_open.2:732
3513 msgid ""
3514 "Inherit does not work for some combinations of I<read_format>s, such as "
3515 "B<PERF_FORMAT_GROUP>."
3516 msgstr ""
3517
3518 #. type: TP
3519 #: build/C/man2/perf_event_open.2:732
3520 #, no-wrap
3521 msgid "I<pinned>"
3522 msgstr ""
3523
3524 #. type: Plain text
3525 #: build/C/man2/perf_event_open.2:745
3526 msgid ""
3527 "The I<pinned> bit specifies that the counter should always be on the CPU if "
3528 "at all possible.  It applies only to hardware counters and only to group "
3529 "leaders.  If a pinned counter cannot be put onto the CPU (e.g., because "
3530 "there are not enough hardware counters or because of a conflict with some "
3531 "other event), then the counter goes into an 'error' state, where reads "
3532 "return end-of-file (i.e., B<read>(2)  returns 0) until the counter is "
3533 "subsequently enabled or disabled."
3534 msgstr ""
3535
3536 #. type: TP
3537 #: build/C/man2/perf_event_open.2:745
3538 #, no-wrap
3539 msgid "I<exclusive>"
3540 msgstr ""
3541
3542 #. type: Plain text
3543 #: build/C/man2/perf_event_open.2:754
3544 msgid ""
3545 "The I<exclusive> bit specifies that when this counter's group is on the CPU, "
3546 "it should be the only group using the CPU's counters.  In the future this "
3547 "may allow monitoring programs to support PMU features that need to run alone "
3548 "so that they do not disrupt other hardware counters."
3549 msgstr ""
3550
3551 #. type: TP
3552 #: build/C/man2/perf_event_open.2:754
3553 #, no-wrap
3554 msgid "I<exclude_user>"
3555 msgstr ""
3556
3557 #. type: Plain text
3558 #: build/C/man2/perf_event_open.2:757
3559 msgid ""
3560 "If this bit is set, the count excludes events that happen in user space."
3561 msgstr ""
3562
3563 #. type: TP
3564 #: build/C/man2/perf_event_open.2:757
3565 #, no-wrap
3566 msgid "I<exclude_kernel>"
3567 msgstr ""
3568
3569 #. type: Plain text
3570 #: build/C/man2/perf_event_open.2:760
3571 msgid ""
3572 "If this bit is set, the count excludes events that happen in kernel-space."
3573 msgstr ""
3574
3575 #. type: TP
3576 #: build/C/man2/perf_event_open.2:760
3577 #, no-wrap
3578 msgid "I<exclude_hv>"
3579 msgstr ""
3580
3581 #. type: Plain text
3582 #: build/C/man2/perf_event_open.2:768
3583 msgid ""
3584 "If this bit is set, the count excludes events that happen in the "
3585 "hypervisor.  This is mainly for PMUs that have built-in support for handling "
3586 "this (such as POWER).  Extra support is needed for handling hypervisor "
3587 "measurements on most machines."
3588 msgstr ""
3589
3590 #. type: TP
3591 #: build/C/man2/perf_event_open.2:768
3592 #, no-wrap
3593 msgid "I<exclude_idle>"
3594 msgstr ""
3595
3596 #. type: Plain text
3597 #: build/C/man2/perf_event_open.2:771
3598 msgid "If set, don't count when the CPU is idle."
3599 msgstr ""
3600
3601 #. type: TP
3602 #: build/C/man2/perf_event_open.2:771
3603 #, no-wrap
3604 msgid "I<mmap>"
3605 msgstr ""
3606
3607 #. type: Plain text
3608 #: build/C/man2/perf_event_open.2:776
3609 msgid "The I<mmap> bit enables recording of exec mmap events."
3610 msgstr ""
3611
3612 #. type: TP
3613 #: build/C/man2/perf_event_open.2:776
3614 #, no-wrap
3615 msgid "I<comm>"
3616 msgstr ""
3617
3618 #. type: Plain text
3619 #: build/C/man2/perf_event_open.2:787
3620 msgid ""
3621 "The I<comm> bit enables tracking of process command name as modified by the "
3622 "I<exec>(2)  and I<prctl>(PR_SET_NAME)  system calls.  Unfortunately for "
3623 "tools, there is no way to distinguish one system call versus the other."
3624 msgstr ""
3625
3626 #. type: TP
3627 #: build/C/man2/perf_event_open.2:787
3628 #, no-wrap
3629 msgid "I<freq>"
3630 msgstr ""
3631
3632 #. type: Plain text
3633 #: build/C/man2/perf_event_open.2:794
3634 msgid ""
3635 "If this bit is set, then I<sample_frequency> not I<sample_period> is used "
3636 "when setting up the sampling interval."
3637 msgstr ""
3638
3639 #. type: TP
3640 #: build/C/man2/perf_event_open.2:794
3641 #, no-wrap
3642 msgid "I<inherit_stat>"
3643 msgstr ""
3644
3645 #. type: Plain text
3646 #: build/C/man2/perf_event_open.2:801
3647 msgid ""
3648 "This bit enables saving of event counts on context switch for inherited "
3649 "tasks.  This is meaningful only if the I<inherit> field is set."
3650 msgstr ""
3651
3652 #. type: TP
3653 #: build/C/man2/perf_event_open.2:801
3654 #, no-wrap
3655 msgid "I<enable_on_exec>"
3656 msgstr ""
3657
3658 #. type: Plain text
3659 #: build/C/man2/perf_event_open.2:806
3660 msgid ""
3661 "If this bit is set, a counter is automatically enabled after a call to "
3662 "B<exec>(2)."
3663 msgstr ""
3664
3665 #. type: TP
3666 #: build/C/man2/perf_event_open.2:806
3667 #, no-wrap
3668 msgid "I<task>"
3669 msgstr ""
3670
3671 #. type: Plain text
3672 #: build/C/man2/perf_event_open.2:810
3673 msgid ""
3674 "If this bit is set, then fork/exit notifications are included in the ring "
3675 "buffer."
3676 msgstr ""
3677
3678 #. type: TP
3679 #: build/C/man2/perf_event_open.2:810
3680 #, no-wrap
3681 msgid "I<watermark>"
3682 msgstr ""
3683
3684 #. type: Plain text
3685 #: build/C/man2/perf_event_open.2:818
3686 msgid ""
3687 "If set, have a sampling interrupt happen when we cross the "
3688 "I<wakeup_watermark> boundary.  Otherwise interrupts happen after "
3689 "I<wakeup_events> samples."
3690 msgstr ""
3691
3692 #. type: TP
3693 #: build/C/man2/perf_event_open.2:818
3694 #, fuzzy, no-wrap
3695 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
3696 msgid "I<precise_ip> (Since Linux 2.6.35)"
3697 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
3698
3699 #. type: Plain text
3700 #: build/C/man2/perf_event_open.2:828
3701 msgid ""
3702 "This controls the amount of skid.  Skid is how many instructions execute "
3703 "between an event of interest happening and the kernel being able to stop and "
3704 "record the event.  Smaller skid is better and allows more accurate reporting "
3705 "of which events correspond to which instructions, but hardware is often "
3706 "limited with how small this can be."
3707 msgstr ""
3708
3709 #. type: Plain text
3710 #: build/C/man2/perf_event_open.2:830
3711 #, fuzzy
3712 #| msgid "The I<subcmd> value is one of the following:"
3713 msgid "The values of this are the following:"
3714 msgstr "I<subcmd> の値は以下のいずれかである"
3715
3716 #. type: TP
3717 #: build/C/man2/perf_event_open.2:831
3718 #, no-wrap
3719 msgid "0 -"
3720 msgstr ""
3721
3722 #. type: Plain text
3723 #: build/C/man2/perf_event_open.2:835
3724 msgid "B<SAMPLE_IP> can have arbitrary skid"
3725 msgstr ""
3726
3727 #. type: TP
3728 #: build/C/man2/perf_event_open.2:835
3729 #, no-wrap
3730 msgid "1 -"
3731 msgstr ""
3732
3733 #. type: Plain text
3734 #: build/C/man2/perf_event_open.2:839
3735 msgid "B<SAMPLE_IP> must have constant skid"
3736 msgstr ""
3737
3738 #. type: TP
3739 #: build/C/man2/perf_event_open.2:839
3740 #, no-wrap
3741 msgid "2 -"
3742 msgstr ""
3743
3744 #. type: Plain text
3745 #: build/C/man2/perf_event_open.2:843
3746 msgid "B<SAMPLE_IP> requested to have 0 skid"
3747 msgstr ""
3748
3749 #. type: TP
3750 #: build/C/man2/perf_event_open.2:843
3751 #, no-wrap
3752 msgid "3 -"
3753 msgstr ""
3754
3755 #. type: Plain text
3756 #: build/C/man2/perf_event_open.2:849
3757 msgid "B<SAMPLE_IP> must have 0 skid.  See also B<PERF_RECORD_MISC_EXACT_IP>."
3758 msgstr ""
3759
3760 #. type: TP
3761 #: build/C/man2/perf_event_open.2:850
3762 #, fuzzy, no-wrap
3763 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
3764 msgid "I<mmap_data> (Since Linux 2.6.36)"
3765 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
3766
3767 #. type: Plain text
3768 #: build/C/man2/perf_event_open.2:856
3769 msgid ""
3770 "The counterpart of the I<mmap> field, but enables including data mmap events "
3771 "in the ring-buffer."
3772 msgstr ""
3773
3774 #. type: TP
3775 #: build/C/man2/perf_event_open.2:856
3776 #, fuzzy, no-wrap
3777 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
3778 msgid "I<sample_id_all> (Since Linux 2.6.38)"
3779 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
3780
3781 #. type: Plain text
3782 #: build/C/man2/perf_event_open.2:864
3783 msgid ""
3784 "If set, then TID, TIME, ID, CPU, and STREAM_ID can additionally be included "
3785 "in non-B<PERF_RECORD_SAMPLE>s if the corresponding I<sample_type> is "
3786 "selected."
3787 msgstr ""
3788
3789 #. type: TP
3790 #: build/C/man2/perf_event_open.2:864
3791 #, no-wrap
3792 msgid "I<exclude_host> (Since Linux 3.2)"
3793 msgstr ""
3794
3795 #. type: Plain text
3796 #: build/C/man2/perf_event_open.2:867
3797 msgid "Do not measure time spent in VM host"
3798 msgstr ""
3799
3800 #. type: TP
3801 #: build/C/man2/perf_event_open.2:867
3802 #, no-wrap
3803 msgid "I<exclude_guest> (Since Linux 3.2)"
3804 msgstr ""
3805
3806 #. type: Plain text
3807 #: build/C/man2/perf_event_open.2:870
3808 msgid "Do not measure time spent in VM guest"
3809 msgstr ""
3810
3811 #. type: TP
3812 #: build/C/man2/perf_event_open.2:870
3813 #, no-wrap
3814 msgid "I<exclude_callchain_kernel> (Since Linux 3.7)"
3815 msgstr ""
3816
3817 #. type: Plain text
3818 #: build/C/man2/perf_event_open.2:873
3819 msgid "Do not include kernel callchains."
3820 msgstr ""
3821
3822 #. type: TP
3823 #: build/C/man2/perf_event_open.2:873
3824 #, no-wrap
3825 msgid "I<exclude_callchain_user> (Since Linux 3.7)"
3826 msgstr ""
3827
3828 #. type: Plain text
3829 #: build/C/man2/perf_event_open.2:876
3830 msgid "Do not include user callchains."
3831 msgstr ""
3832
3833 #. type: TP
3834 #: build/C/man2/perf_event_open.2:876
3835 #, no-wrap
3836 msgid "I<wakeup_events>, I<wakeup_watermark>"
3837 msgstr ""
3838
3839 #. type: Plain text
3840 #: build/C/man2/perf_event_open.2:886
3841 msgid ""
3842 "This union sets how many samples (I<wakeup_events>)  or bytes "
3843 "(I<wakeup_watermark>)  happen before an overflow signal happens.  Which one "
3844 "is used is selected by the I<watermark> bitflag."
3845 msgstr ""
3846
3847 #. type: Plain text
3848 #: build/C/man2/perf_event_open.2:896
3849 msgid ""
3850 "I<wakeup_events> only counts B<PERF_RECORD_SAMPLE> record types.  To receive "
3851 "a signal for every incoming B<PERF_RECORD> type set I<wakeup_watermark> to 1."
3852 msgstr ""
3853
3854 #. type: TP
3855 #: build/C/man2/perf_event_open.2:896
3856 #, fuzzy, no-wrap
3857 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
3858 msgid "I<bp_type> (Since Linux 2.6.33)"
3859 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
3860
3861 #. type: Plain text
3862 #: build/C/man2/perf_event_open.2:900
3863 msgid "This chooses the breakpoint type.  It is one of:"
3864 msgstr ""
3865
3866 #. type: TP
3867 #: build/C/man2/perf_event_open.2:901
3868 #, no-wrap
3869 msgid "B<HW_BREAKPOINT_EMPTY>"
3870 msgstr ""
3871
3872 #. type: Plain text
3873 #: build/C/man2/perf_event_open.2:904
3874 msgid "no breakpoint"
3875 msgstr ""
3876
3877 #. type: TP
3878 #: build/C/man2/perf_event_open.2:904
3879 #, no-wrap
3880 msgid "B<HW_BREAKPOINT_R>"
3881 msgstr ""
3882
3883 #. type: Plain text
3884 #: build/C/man2/perf_event_open.2:907
3885 msgid "count when we read the memory location"
3886 msgstr ""
3887
3888 #. type: TP
3889 #: build/C/man2/perf_event_open.2:907
3890 #, no-wrap
3891 msgid "B<HW_BREAKPOINT_W>"
3892 msgstr ""
3893
3894 #. type: Plain text
3895 #: build/C/man2/perf_event_open.2:910
3896 msgid "count when we write the memory location"
3897 msgstr ""
3898
3899 #. type: TP
3900 #: build/C/man2/perf_event_open.2:910
3901 #, no-wrap
3902 msgid "B<HW_BREAKPOINT_RW>"
3903 msgstr ""
3904
3905 #. type: Plain text
3906 #: build/C/man2/perf_event_open.2:913
3907 msgid "count when we read or write the memory location"
3908 msgstr ""
3909
3910 #. type: TP
3911 #: build/C/man2/perf_event_open.2:913
3912 #, no-wrap
3913 msgid "B<HW_BREAKPOINT_X>"
3914 msgstr ""
3915
3916 #. type: Plain text
3917 #: build/C/man2/perf_event_open.2:916
3918 msgid "count when we execute code at the memory location"
3919 msgstr ""
3920
3921 #. type: Plain text
3922 #: build/C/man2/perf_event_open.2:925
3923 msgid ""
3924 "The values can be combined via a bitwise or, but the combination of "
3925 "B<HW_BREAKPOINT_R> or B<HW_BREAKPOINT_W> with B<HW_BREAKPOINT_X> is not "
3926 "allowed."
3927 msgstr ""
3928
3929 #. type: TP
3930 #: build/C/man2/perf_event_open.2:926
3931 #, fuzzy, no-wrap
3932 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
3933 msgid "I<bp_addr> (Since Linux 2.6.33)"
3934 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
3935
3936 #. type: Plain text
3937 #: build/C/man2/perf_event_open.2:933
3938 msgid ""
3939 "I<bp_addr> address of the breakpoint.  For execution breakpoints this is the "
3940 "memory address of the instruction of interest; for read and write "
3941 "breakpoints it is the memory address of the memory location of interest."
3942 msgstr ""
3943
3944 #. type: TP
3945 #: build/C/man2/perf_event_open.2:933
3946 #, fuzzy, no-wrap
3947 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
3948 msgid "I<config1> (Since Linux 2.6.39)"
3949 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
3950
3951 #. type: Plain text
3952 #: build/C/man2/perf_event_open.2:940
3953 msgid ""
3954 "I<config1> is used for setting events that need an extra register or "
3955 "otherwise do not fit in the regular config field.  Raw OFFCORE_EVENTS on "
3956 "Nehalem/Westmere/SandyBridge use this field on 3.3 and later kernels."
3957 msgstr ""
3958
3959 #. type: TP
3960 #: build/C/man2/perf_event_open.2:940
3961 #, fuzzy, no-wrap
3962 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
3963 msgid "I<bp_len> (Since Linux 2.6.33)"
3964 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
3965
3966 #. type: Plain text
3967 #: build/C/man2/perf_event_open.2:954
3968 msgid ""
3969 "I<bp_len> is the length of the breakpoint being measured if I<type> is "
3970 "B<PERF_TYPE_BREAKPOINT>.  Options are B<HW_BREAKPOINT_LEN_1>, "
3971 "B<HW_BREAKPOINT_LEN_2>, B<HW_BREAKPOINT_LEN_4>, B<HW_BREAKPOINT_LEN_8>.  For "
3972 "an execution breakpoint, set this to I<sizeof(long)>."
3973 msgstr ""
3974
3975 #. type: TP
3976 #: build/C/man2/perf_event_open.2:954
3977 #, fuzzy, no-wrap
3978 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
3979 msgid "I<config2> (Since Linux 2.6.39)"
3980 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
3981
3982 #. type: Plain text
3983 #: build/C/man2/perf_event_open.2:961
3984 msgid "I<config2> is a further extension of the I<config1> field."
3985 msgstr ""
3986
3987 #. type: TP
3988 #: build/C/man2/perf_event_open.2:961
3989 #, no-wrap
3990 msgid "I<branch_sample_type> (Since Linux 3.4)"
3991 msgstr ""
3992
3993 #. type: Plain text
3994 #: build/C/man2/perf_event_open.2:965
3995 msgid ""
3996 "This is used with the CPUs hardware branch sampling, if available.  It can "
3997 "have one of the following values:"
3998 msgstr ""
3999
4000 #. type: TP
4001 #: build/C/man2/perf_event_open.2:966
4002 #, no-wrap
4003 msgid "B<PERF_SAMPLE_BRANCH_USER>"
4004 msgstr ""
4005
4006 #. type: Plain text
4007 #: build/C/man2/perf_event_open.2:969
4008 msgid "Branch target is in user space"
4009 msgstr ""
4010
4011 #. type: TP
4012 #: build/C/man2/perf_event_open.2:969
4013 #, no-wrap
4014 msgid "B<PERF_SAMPLE_BRANCH_KERNEL>"
4015 msgstr ""
4016
4017 #. type: Plain text
4018 #: build/C/man2/perf_event_open.2:972
4019 msgid "Branch target is in kernel space"
4020 msgstr ""
4021
4022 #. type: TP
4023 #: build/C/man2/perf_event_open.2:972
4024 #, no-wrap
4025 msgid "B<PERF_SAMPLE_BRANCH_HV>"
4026 msgstr ""
4027
4028 #. type: Plain text
4029 #: build/C/man2/perf_event_open.2:975
4030 msgid "Branch target is in hypervisor"
4031 msgstr ""
4032
4033 #. type: TP
4034 #: build/C/man2/perf_event_open.2:975
4035 #, no-wrap
4036 msgid "B<PERF_SAMPLE_BRANCH_ANY>"
4037 msgstr ""
4038
4039 #. type: Plain text
4040 #: build/C/man2/perf_event_open.2:978
4041 msgid "Any branch type."
4042 msgstr ""
4043
4044 #. type: TP
4045 #: build/C/man2/perf_event_open.2:978
4046 #, no-wrap
4047 msgid "B<PERF_SAMPLE_BRANCH_ANY_CALL>"
4048 msgstr ""
4049
4050 #. type: Plain text
4051 #: build/C/man2/perf_event_open.2:981
4052 msgid "Any call branch"
4053 msgstr ""
4054
4055 #. type: TP
4056 #: build/C/man2/perf_event_open.2:981
4057 #, no-wrap
4058 msgid "B<PERF_SAMPLE_BRANCH_ANY_RETURN>"
4059 msgstr ""
4060
4061 #. type: Plain text
4062 #: build/C/man2/perf_event_open.2:984
4063 msgid "Any return branch"
4064 msgstr ""
4065
4066 #. type: TP
4067 #: build/C/man2/perf_event_open.2:984
4068 #, no-wrap
4069 msgid "B<PERF_SAMPLE_BRANCH_IND_CALL>"
4070 msgstr ""
4071
4072 #. type: Plain text
4073 #: build/C/man2/perf_event_open.2:987
4074 msgid "Indirect calls"
4075 msgstr ""
4076
4077 #. type: TP
4078 #: build/C/man2/perf_event_open.2:987
4079 #, no-wrap
4080 msgid "B<PERF_SAMPLE_BRANCH_PLM_ALL>"
4081 msgstr ""
4082
4083 #. type: Plain text
4084 #: build/C/man2/perf_event_open.2:990
4085 msgid "User, kernel, and hv"
4086 msgstr ""
4087
4088 #. type: TP
4089 #: build/C/man2/perf_event_open.2:991
4090 #, no-wrap
4091 msgid "I<sample_regs_user> (Since Linux 3.7)"
4092 msgstr ""
4093
4094 #. type: Plain text
4095 #: build/C/man2/perf_event_open.2:997
4096 msgid ""
4097 "This bitmask defines the set of user CPU registers to dump on samples.  The "
4098 "layout of the register mask is architecture specific and described in the "
4099 "kernel header I<arch/ARCH/include/uapi/asm/perf_regs.h>."
4100 msgstr ""
4101
4102 #. type: TP
4103 #: build/C/man2/perf_event_open.2:997
4104 #, no-wrap
4105 msgid "I<sample_stack_user> (Since Linux 3.7)"
4106 msgstr ""
4107
4108 #. type: Plain text
4109 #: build/C/man2/perf_event_open.2:1002
4110 msgid ""
4111 "This defines the size of the user stack to dump if B<PERF_SAMPLE_STACK_USER> "
4112 "is specified."
4113 msgstr ""
4114
4115 #. type: SS
4116 #: build/C/man2/perf_event_open.2:1002
4117 #, no-wrap
4118 msgid "Reading results"
4119 msgstr ""
4120
4121 #. type: Plain text
4122 #: build/C/man2/perf_event_open.2:1012
4123 msgid ""
4124 "Once a B<perf_event_open>()  file descriptor has been opened, the values of "
4125 "the events can be read from the file descriptor.  The values that are there "
4126 "are specified by the I<read_format> field in the I<attr> structure at open "
4127 "time."
4128 msgstr ""
4129
4130 #. type: Plain text
4131 #: build/C/man2/perf_event_open.2:1017
4132 msgid ""
4133 "If you attempt to read into a buffer that is not big enough to hold the data "
4134 "B<ENOSPC> is returned"
4135 msgstr ""
4136
4137 #. type: Plain text
4138 #: build/C/man2/perf_event_open.2:1019
4139 msgid "Here is the layout of the data returned by a read:"
4140 msgstr ""
4141
4142 #. type: IP
4143 #: build/C/man2/perf_event_open.2:1019 build/C/man2/perf_event_open.2:1037
4144 #: build/C/man2/ptrace.2:1553 build/C/man2/ptrace.2:1563
4145 #: build/C/man2/ptrace.2:1571 build/C/man2/ptrace.2:1577
4146 #: build/C/man2/ptrace.2:1706
4147 #, no-wrap
4148 msgid "*"
4149 msgstr ""
4150
4151 #. type: Plain text
4152 #: build/C/man2/perf_event_open.2:1023
4153 msgid ""
4154 "If B<PERF_FORMAT_GROUP> was specified to allow reading all events in a group "
4155 "at once:"
4156 msgstr ""
4157
4158 #. type: Plain text
4159 #: build/C/man2/perf_event_open.2:1035
4160 #, no-wrap
4161 msgid ""
4162 "struct read_format {\n"
4163 "    u64 nr;            /* The number of events */\n"
4164 "    u64 time_enabled;  /* if PERF_FORMAT_TOTAL_TIME_ENABLED */\n"
4165 "    u64 time_running;  /* if PERF_FORMAT_TOTAL_TIME_RUNNING */\n"
4166 "    struct\n"
4167 "        u64 value;     /* The value of the event */\n"
4168 "        u64 id;        /* if PERF_FORMAT_ID */\n"
4169 "    } values[nr];\n"
4170 "};\n"
4171 msgstr ""
4172
4173 #. type: Plain text
4174 #: build/C/man2/perf_event_open.2:1043
4175 msgid "If B<PERF_FORMAT_GROUP> was I<not> specified:"
4176 msgstr ""
4177
4178 #. type: Plain text
4179 #: build/C/man2/perf_event_open.2:1052
4180 #, no-wrap
4181 msgid ""
4182 "struct read_format {\n"
4183 "    u64 value;         /* The value of the event */\n"
4184 "    u64 time_enabled;  /* if PERF_FORMAT_TOTAL_TIME_ENABLED */\n"
4185 "    u64 time_running;  /* if PERF_FORMAT_TOTAL_TIME_RUNNING */\n"
4186 "    u64 id;            /* if PERF_FORMAT_ID */\n"
4187 "};\n"
4188 msgstr ""
4189
4190 #. type: Plain text
4191 #: build/C/man2/perf_event_open.2:1056
4192 msgid "The values read are as follows:"
4193 msgstr ""
4194
4195 #. type: TP
4196 #: build/C/man2/perf_event_open.2:1056
4197 #, no-wrap
4198 msgid "I<nr>"
4199 msgstr ""
4200
4201 #. type: Plain text
4202 #: build/C/man2/perf_event_open.2:1062
4203 msgid ""
4204 "The number of events in this file descriptor.  Only available if "
4205 "B<PERF_FORMAT_GROUP> was specified."
4206 msgstr ""
4207
4208 #. type: TP
4209 #: build/C/man2/perf_event_open.2:1062
4210 #, no-wrap
4211 msgid "I<time_enabled>, I<time_running>"
4212 msgstr ""
4213
4214 #. type: Plain text
4215 #: build/C/man2/perf_event_open.2:1074
4216 msgid ""
4217 "Total time the event was enabled and running.  Normally these are the same.  "
4218 "If more events are started than available counter slots on the PMU, then "
4219 "multiplexing happens and events run only part of the time.  In that case the "
4220 "I<time_enabled> and I<time running> values can be used to scale an estimated "
4221 "value for the count."
4222 msgstr ""
4223
4224 #. type: TP
4225 #: build/C/man2/perf_event_open.2:1074
4226 #, no-wrap
4227 msgid "I<value>"
4228 msgstr ""
4229
4230 #. type: Plain text
4231 #: build/C/man2/perf_event_open.2:1077
4232 msgid "An unsigned 64-bit value containing the counter result."
4233 msgstr ""
4234
4235 #. type: TP
4236 #: build/C/man2/perf_event_open.2:1077 build/C/man2/perf_event_open.2:1341
4237 #: build/C/man2/perf_event_open.2:1478
4238 #, no-wrap
4239 msgid "I<id>"
4240 msgstr ""
4241
4242 #. type: Plain text
4243 #: build/C/man2/perf_event_open.2:1083
4244 msgid ""
4245 "A globally unique value for this particular event, only there if "
4246 "B<PERF_FORMAT_ID> was specified in I<read_format>."
4247 msgstr ""
4248
4249 #. type: SS
4250 #: build/C/man2/perf_event_open.2:1083
4251 #, no-wrap
4252 msgid "MMAP layout"
4253 msgstr ""
4254
4255 #. type: Plain text
4256 #: build/C/man2/perf_event_open.2:1093
4257 msgid ""
4258 "When using B<perf_event_open>()  in sampled mode, asynchronous events (like "
4259 "counter overflow or B<PROT_EXEC> mmap tracking)  are logged into a ring-"
4260 "buffer.  This ring-buffer is created and accessed through B<mmap>(2)."
4261 msgstr ""
4262
4263 #. type: Plain text
4264 #: build/C/man2/perf_event_open.2:1099
4265 msgid ""
4266 "The mmap size should be 1+2^n pages, where the first page is a metadata page "
4267 "(I<struct perf_event_mmap_page>)  that contains various bits of information "
4268 "such as where the ring-buffer head is."
4269 msgstr ""
4270
4271 #. type: Plain text
4272 #: build/C/man2/perf_event_open.2:1102
4273 msgid ""
4274 "Before kernel 2.6.39, there is a bug that means you must allocate a mmap "
4275 "ring buffer when sampling even if you do not plan to access it."
4276 msgstr ""
4277
4278 #. type: Plain text
4279 #: build/C/man2/perf_event_open.2:1104
4280 msgid "The structure of the first metadata mmap page is as follows:"
4281 msgstr ""
4282
4283 #. type: Plain text
4284 #: build/C/man2/perf_event_open.2:1128
4285 #, no-wrap
4286 msgid ""
4287 "struct perf_event_mmap_page {\n"
4288 "    __u32 version;          /* version number of this structure */\n"
4289 "    __u32 compat_version;   /* lowest version this is compat with */\n"
4290 "    __u32 lock;             /* seqlock for synchronization */\n"
4291 "    __u32 index;            /* hardware counter identifier */\n"
4292 "    __s64 offset;           /* add to hardware counter value */\n"
4293 "    __u64 time_enabled;     /* time event active */\n"
4294 "    __u64 time_running;     /* time event on CPU */\n"
4295 "    union {\n"
4296 "        __u64   capabilities;\n"
4297 "        __u64   cap_usr_time  : 1,\n"
4298 "                cap_usr_rdpmc : 1,\n"
4299 "    };\n"
4300 "    __u16   pmc_width;\n"
4301 "    __u16   time_shift;\n"
4302 "    __u32   time_mult;\n"
4303 "    __u64   time_offset;\n"
4304 "    __u64   __reserved[120];   /* Pad to 1k */\n"
4305 "    __u64   data_head;         /* head in the data section */\n"
4306 "    __u64   data_tail;         /* user-space written tail */\n"
4307 "}\n"
4308 msgstr ""
4309
4310 #. type: Plain text
4311 #: build/C/man2/perf_event_open.2:1134
4312 msgid ""
4313 "The following looks at the fields in the I<perf_event_mmap_page> structure "
4314 "in more detail:"
4315 msgstr ""
4316
4317 #. type: TP
4318 #: build/C/man2/perf_event_open.2:1134
4319 #, no-wrap
4320 msgid "I<version>"
4321 msgstr ""
4322
4323 #. type: Plain text
4324 #: build/C/man2/perf_event_open.2:1137
4325 msgid "Version number of this structure."
4326 msgstr ""
4327
4328 #. type: TP
4329 #: build/C/man2/perf_event_open.2:1137
4330 #, no-wrap
4331 msgid "I<compat_version>"
4332 msgstr ""
4333
4334 #. type: Plain text
4335 #: build/C/man2/perf_event_open.2:1140
4336 msgid "The lowest version this is compatible with."
4337 msgstr ""
4338
4339 #. type: TP
4340 #: build/C/man2/perf_event_open.2:1140
4341 #, no-wrap
4342 msgid "I<lock>"
4343 msgstr ""
4344
4345 #. type: Plain text
4346 #: build/C/man2/perf_event_open.2:1143
4347 msgid "A seqlock for synchronization."
4348 msgstr ""
4349
4350 #. type: TP
4351 #: build/C/man2/perf_event_open.2:1143
4352 #, no-wrap
4353 msgid "I<index>"
4354 msgstr ""
4355
4356 #. type: Plain text
4357 #: build/C/man2/perf_event_open.2:1146
4358 msgid "A unique hardware counter identifier."
4359 msgstr ""
4360
4361 #. type: TP
4362 #: build/C/man2/perf_event_open.2:1146
4363 #, no-wrap
4364 msgid "I<offset>"
4365 msgstr ""
4366
4367 #.  FIXME clarify
4368 #. type: Plain text
4369 #: build/C/man2/perf_event_open.2:1150
4370 msgid "Add this to hardware counter value??"
4371 msgstr ""
4372
4373 #. type: TP
4374 #: build/C/man2/perf_event_open.2:1150
4375 #, no-wrap
4376 msgid "I<time_enabled>"
4377 msgstr ""
4378
4379 #. type: Plain text
4380 #: build/C/man2/perf_event_open.2:1153
4381 msgid "Time the event was active."
4382 msgstr ""
4383
4384 #. type: TP
4385 #: build/C/man2/perf_event_open.2:1153
4386 #, no-wrap
4387 msgid "I<time_running>"
4388 msgstr ""
4389
4390 #. type: Plain text
4391 #: build/C/man2/perf_event_open.2:1156
4392 msgid "Time the event was running."
4393 msgstr ""
4394
4395 #. type: TP
4396 #: build/C/man2/perf_event_open.2:1156
4397 #, no-wrap
4398 msgid "I<cap_usr_time>"
4399 msgstr ""
4400
4401 #. type: Plain text
4402 #: build/C/man2/perf_event_open.2:1159
4403 msgid "User time capability"
4404 msgstr ""
4405
4406 #. type: TP
4407 #: build/C/man2/perf_event_open.2:1159
4408 #, no-wrap
4409 msgid "I<cap_usr_rdpmc>"
4410 msgstr ""
4411
4412 #. type: Plain text
4413 #: build/C/man2/perf_event_open.2:1164
4414 msgid ""
4415 "If the hardware supports user-space read of performance counters without "
4416 "syscall (this is the \"rdpmc\" instruction on x86), then the following code "
4417 "can be used to do a read:"
4418 msgstr ""
4419
4420 #. type: Plain text
4421 #: build/C/man2/perf_event_open.2:1171
4422 #, no-wrap
4423 msgid ""
4424 "u32 seq, time_mult, time_shift, idx, width;\n"
4425 "u64 count, enabled, running;\n"
4426 "u64 cyc, time_offset;\n"
4427 "s64 pmc = 0;\n"
4428 msgstr ""
4429
4430 #. type: Plain text
4431 #: build/C/man2/perf_event_open.2:1177
4432 #, no-wrap
4433 msgid ""
4434 "do {\n"
4435 "    seq = pc-E<gt>lock;\n"
4436 "    barrier();\n"
4437 "    enabled = pc-E<gt>time_enabled;\n"
4438 "    running = pc-E<gt>time_running;\n"
4439 msgstr ""
4440
4441 #. type: Plain text
4442 #: build/C/man2/perf_event_open.2:1184
4443 #, no-wrap
4444 msgid ""
4445 "    if (pc-E<gt>cap_usr_time && enabled != running) {\n"
4446 "        cyc = rdtsc();\n"
4447 "        time_offset = pc-E<gt>time_offset;\n"
4448 "        time_mult   = pc-E<gt>time_mult;\n"
4449 "        time_shift  = pc-E<gt>time_shift;\n"
4450 "    }\n"
4451 msgstr ""
4452
4453 #. type: Plain text
4454 #: build/C/man2/perf_event_open.2:1187
4455 #, no-wrap
4456 msgid ""
4457 "    idx = pc-E<gt>index;\n"
4458 "    count = pc-E<gt>offset;\n"
4459 msgstr ""
4460
4461 #. type: Plain text
4462 #: build/C/man2/perf_event_open.2:1192
4463 #, no-wrap
4464 msgid ""
4465 "    if (pc-E<gt>cap_usr_rdpmc && idx) {\n"
4466 "        width = pc-E<gt>pmc_width;\n"
4467 "        pmc = rdpmc(idx - 1);\n"
4468 "    }\n"
4469 msgstr ""
4470
4471 #. type: Plain text
4472 #: build/C/man2/perf_event_open.2:1195
4473 #, no-wrap
4474 msgid ""
4475 "    barrier();\n"
4476 "} while (pc-E<gt>lock != seq);\n"
4477 msgstr ""
4478
4479 #. type: TP
4480 #: build/C/man2/perf_event_open.2:1197
4481 #, no-wrap
4482 msgid "I<pmc_width>"
4483 msgstr ""
4484
4485 #. type: Plain text
4486 #: build/C/man2/perf_event_open.2:1204
4487 msgid ""
4488 "If I<cap_usr_rdpmc>, this field provides the bit-width of the value read "
4489 "using the rdpmc or equivalent instruction.  This can be used to sign extend "
4490 "the result like:"
4491 msgstr ""
4492
4493 #. type: Plain text
4494 #: build/C/man2/perf_event_open.2:1210
4495 #, no-wrap
4496 msgid ""
4497 "pmc E<lt>E<lt>= 64 - pmc_width;\n"
4498 "pmc E<gt>E<gt>= 64 - pmc_width; // signed shift right\n"
4499 "count += pmc;\n"
4500 msgstr ""
4501
4502 #. type: TP
4503 #: build/C/man2/perf_event_open.2:1212
4504 #, no-wrap
4505 msgid "I<time_shift>, I<time_mult>, I<time_offset>"
4506 msgstr ""
4507
4508 #. type: Plain text
4509 #: build/C/man2/perf_event_open.2:1219
4510 msgid ""
4511 "If I<cap_usr_time>, these fields can be used to compute the time delta since "
4512 "time_enabled (in nanoseconds) using rdtsc or similar."
4513 msgstr ""
4514
4515 #. type: Plain text
4516 #: build/C/man2/perf_event_open.2:1227
4517 #, no-wrap
4518 msgid ""
4519 "    u64 quot, rem;\n"
4520 "    u64 delta;\n"
4521 "    quot = (cyc E<gt>E<gt> time_shift);\n"
4522 "    rem = cyc & ((1 E<lt>E<lt> time_shift) - 1);\n"
4523 "    delta = time_offset + quot * time_mult +\n"
4524 "            ((rem * time_mult) E<gt>E<gt> time_shift);\n"
4525 msgstr ""
4526
4527 #. type: Plain text
4528 #: build/C/man2/perf_event_open.2:1239
4529 msgid ""
4530 "Where I<time_offset>, I<time_mult>, I<time_shift>, and I<cyc> are read in "
4531 "the seqcount loop described above.  This delta can then be added to enabled "
4532 "and possible running (if idx), improving the scaling:"
4533 msgstr ""
4534
4535 #. type: Plain text
4536 #: build/C/man2/perf_event_open.2:1247
4537 #, no-wrap
4538 msgid ""
4539 "    enabled += delta;\n"
4540 "    if (idx)\n"
4541 "        running += delta;\n"
4542 "    quot = count / running;\n"
4543 "    rem  = count % running;\n"
4544 "    count = quot * enabled + (rem * enabled) / running;\n"
4545 msgstr ""
4546
4547 #. type: TP
4548 #: build/C/man2/perf_event_open.2:1248
4549 #, no-wrap
4550 msgid "I<data_head>"
4551 msgstr ""
4552
4553 #. type: Plain text
4554 #: build/C/man2/perf_event_open.2:1254
4555 msgid ""
4556 "This points to the head of the data section.  The value continuously "
4557 "increases, it does not wrap.  The value needs to be manually wrapped by the "
4558 "size of the mmap buffer before accessing the samples."
4559 msgstr ""
4560
4561 #. type: Plain text
4562 #: build/C/man2/perf_event_open.2:1257
4563 msgid ""
4564 "On SMP-capable platforms, after reading the data_head value, user space "
4565 "should issue an rmb()."
4566 msgstr ""
4567
4568 #. type: TP
4569 #: build/C/man2/perf_event_open.2:1257
4570 #, no-wrap
4571 msgid "I<data_tail;>"
4572 msgstr ""
4573
4574 #. type: Plain text
4575 #: build/C/man2/perf_event_open.2:1265
4576 msgid ""
4577 "When the mapping is B<PROT_WRITE>, the I<data_tail> value should be written "
4578 "by user space to reflect the last read data.  In this case the kernel will "
4579 "not over-write unread data."
4580 msgstr ""
4581
4582 #. type: Plain text
4583 #: build/C/man2/perf_event_open.2:1267
4584 msgid "The following 2^n ring-buffer pages have the layout described below."
4585 msgstr ""
4586
4587 #. type: Plain text
4588 #: build/C/man2/perf_event_open.2:1281
4589 msgid ""
4590 "If I<perf_event_attr.sample_id_all> is set, then all event types will have "
4591 "the sample_type selected fields related to where/when (identity)  an event "
4592 "took place (TID, TIME, ID, CPU, STREAM_ID) described in "
4593 "B<PERF_RECORD_SAMPLE> below, it will be stashed just after the "
4594 "I<perf_event_header> and the fields already present for the existing fields, "
4595 "i.e., at the end of the payload.  That way a newer perf.data file will be "
4596 "supported by older perf tools, with these new optional fields being ignored."
4597 msgstr ""
4598
4599 #. type: Plain text
4600 #: build/C/man2/perf_event_open.2:1283
4601 msgid "The mmap values start with a header:"
4602 msgstr ""
4603
4604 #. type: Plain text
4605 #: build/C/man2/perf_event_open.2:1291
4606 #, no-wrap
4607 msgid ""
4608 "struct perf_event_header {\n"
4609 "    __u32   type;\n"
4610 "    __u16   misc;\n"
4611 "    __u16   size;\n"
4612 "};\n"
4613 msgstr ""
4614
4615 #. type: Plain text
4616 #: build/C/man2/perf_event_open.2:1297
4617 msgid "Below, we describe the I<perf_event_header> fields in more detail."
4618 msgstr ""
4619
4620 #. type: Plain text
4621 #: build/C/man2/perf_event_open.2:1306
4622 msgid ""
4623 "The I<type> value is one of the below.  The values in the corresponding "
4624 "record (that follows the header)  depend on the I<type> selected as shown."
4625 msgstr ""
4626
4627 #. type: TP
4628 #: build/C/man2/perf_event_open.2:1307
4629 #, no-wrap
4630 msgid "B<PERF_RECORD_MMAP>"
4631 msgstr ""
4632
4633 #. type: Plain text
4634 #: build/C/man2/perf_event_open.2:1314
4635 msgid ""
4636 "The MMAP events record the B<PROT_EXEC> mappings so that we can correlate "
4637 "user-space IPs to code.  They have the following structure:"
4638 msgstr ""
4639
4640 #. type: Plain text
4641 #: build/C/man2/perf_event_open.2:1325
4642 #, no-wrap
4643 msgid ""
4644 "struct {\n"
4645 "    struct perf_event_header header;\n"
4646 "    u32    pid, tid;\n"
4647 "    u64    addr;\n"
4648 "    u64    len;\n"
4649 "    u64    pgoff;\n"
4650 "    char   filename[];\n"
4651 "};\n"
4652 msgstr ""
4653
4654 #. type: TP
4655 #: build/C/man2/perf_event_open.2:1327
4656 #, no-wrap
4657 msgid "B<PERF_RECORD_LOST>"
4658 msgstr ""
4659
4660 #. type: Plain text
4661 #: build/C/man2/perf_event_open.2:1330
4662 msgid "This record indicates when events are lost."
4663 msgstr ""
4664
4665 #. type: Plain text
4666 #: build/C/man2/perf_event_open.2:1338
4667 #, no-wrap
4668 msgid ""
4669 "struct {\n"
4670 "    struct perf_event_header header;\n"
4671 "    u64 id;\n"
4672 "    u64 lost;\n"
4673 "};\n"
4674 msgstr ""
4675
4676 #. type: Plain text
4677 #: build/C/man2/perf_event_open.2:1344
4678 msgid "is the unique event ID for the samples that were lost."
4679 msgstr ""
4680
4681 #. type: TP
4682 #: build/C/man2/perf_event_open.2:1344
4683 #, no-wrap
4684 msgid "I<lost>"
4685 msgstr ""
4686
4687 #. type: Plain text
4688 #: build/C/man2/perf_event_open.2:1347
4689 #, fuzzy
4690 #| msgid "Returns the number of processes woken up."
4691 msgid "is the number of events that were lost."
4692 msgstr "wake したプロセスの数を返す。"
4693
4694 #. type: TP
4695 #: build/C/man2/perf_event_open.2:1348
4696 #, no-wrap
4697 msgid "B<PERF_RECORD_COMM>"
4698 msgstr ""
4699
4700 #. type: Plain text
4701 #: build/C/man2/perf_event_open.2:1351
4702 msgid "This record indicates a change in the process name."
4703 msgstr ""
4704
4705 #. type: Plain text
4706 #: build/C/man2/perf_event_open.2:1359
4707 #, no-wrap
4708 msgid ""
4709 "struct {\n"
4710 "    struct perf_event_header header;\n"
4711 "    u32 pid, tid;\n"
4712 "    char comm[];\n"
4713 "};\n"
4714 msgstr ""
4715
4716 #. type: TP
4717 #: build/C/man2/perf_event_open.2:1361
4718 #, no-wrap
4719 msgid "B<PERF_RECORD_EXIT>"
4720 msgstr "B<PERF_RECORD_EXIT>"
4721
4722 #. type: Plain text
4723 #: build/C/man2/perf_event_open.2:1364
4724 msgid "This record indicates a process exit event."
4725 msgstr ""
4726
4727 #. type: Plain text
4728 #: build/C/man2/perf_event_open.2:1373 build/C/man2/perf_event_open.2:1401
4729 #, no-wrap
4730 msgid ""
4731 "struct {\n"
4732 "    struct perf_event_header header;\n"
4733 "    u32 pid, ppid;\n"
4734 "    u32 tid, ptid;\n"
4735 "    u64 time;\n"
4736 "};\n"
4737 msgstr ""
4738
4739 #. type: TP
4740 #: build/C/man2/perf_event_open.2:1375
4741 #, no-wrap
4742 msgid "B<PERF_RECORD_THROTTLE>, B<PERF_RECORD_UNTHROTTLE>"
4743 msgstr ""
4744
4745 #. type: Plain text
4746 #: build/C/man2/perf_event_open.2:1378
4747 msgid "This record indicates a throttle/unthrottle event."
4748 msgstr ""
4749
4750 #. type: Plain text
4751 #: build/C/man2/perf_event_open.2:1387
4752 #, no-wrap
4753 msgid ""
4754 "struct {\n"
4755 "    struct perf_event_header header;\n"
4756 "    u64 time;\n"
4757 "    u64 id;\n"
4758 "    u64 stream_id;\n"
4759 "};\n"
4760 msgstr ""
4761
4762 #. type: TP
4763 #: build/C/man2/perf_event_open.2:1389
4764 #, fuzzy, no-wrap
4765 #| msgid "B<PTRACE_EVENT_FORK>"
4766 msgid "B<PERF_RECORD_FORK>"
4767 msgstr "B<PTRACE_EVENT_FORK>"
4768
4769 #. type: Plain text
4770 #: build/C/man2/perf_event_open.2:1392
4771 msgid "This record indicates a fork event."
4772 msgstr ""
4773
4774 #. type: TP
4775 #: build/C/man2/perf_event_open.2:1403
4776 #, no-wrap
4777 msgid "B<PERF_RECORD_READ>"
4778 msgstr ""
4779
4780 #. type: Plain text
4781 #: build/C/man2/perf_event_open.2:1406
4782 msgid "This record indicates a read event."
4783 msgstr ""
4784
4785 #. type: Plain text
4786 #: build/C/man2/perf_event_open.2:1414
4787 #, no-wrap
4788 msgid ""
4789 "struct {\n"
4790 "    struct perf_event_header header;\n"
4791 "    u32 pid, tid;\n"
4792 "    struct read_format values;\n"
4793 "};\n"
4794 msgstr ""
4795
4796 #. type: TP
4797 #: build/C/man2/perf_event_open.2:1416
4798 #, no-wrap
4799 msgid "B<PERF_RECORD_SAMPLE>"
4800 msgstr ""
4801
4802 #. type: Plain text
4803 #: build/C/man2/perf_event_open.2:1419
4804 msgid "This record indicates a sample."
4805 msgstr ""
4806
4807 #. type: Plain text
4808 #: build/C/man2/perf_event_open.2:1449
4809 #, no-wrap
4810 msgid ""
4811 "struct {\n"
4812 "    struct perf_event_header header;\n"
4813 "    u64   ip;         /* if PERF_SAMPLE_IP */\n"
4814 "    u32   pid, tid;   /* if PERF_SAMPLE_TID */\n"
4815 "    u64   time;       /* if PERF_SAMPLE_TIME */\n"
4816 "    u64   addr;       /* if PERF_SAMPLE_ADDR */\n"
4817 "    u64   id;         /* if PERF_SAMPLE_ID */\n"
4818 "    u64   stream_id;  /* if PERF_SAMPLE_STREAM_ID */\n"
4819 "    u32   cpu, res;   /* if PERF_SAMPLE_CPU */\n"
4820 "    u64   period;     /* if PERF_SAMPLE_PERIOD */\n"
4821 "    struct read_format v; /* if PERF_SAMPLE_READ */\n"
4822 "    u64   nr;         /* if PERF_SAMPLE_CALLCHAIN */\n"
4823 "    u64   ips[nr];    /* if PERF_SAMPLE_CALLCHAIN */\n"
4824 "    u32   size;       /* if PERF_SAMPLE_RAW */\n"
4825 "    char  data[size]; /* if PERF_SAMPLE_RAW */\n"
4826 "    u64   bnr;        /* if PERF_SAMPLE_BRANCH_STACK */\n"
4827 "    struct perf_branch_entry lbr[bnr];\n"
4828 "                      /* if PERF_SAMPLE_BRANCH_STACK */\n"
4829 "    u64   abi;        /* if PERF_SAMPLE_REGS_USER */\n"
4830 "    u64   regs[weight(mask)];\n"
4831 "                      /* if PERF_SAMPLE_REGS_USER */\n"
4832 "    u64   size;       /* if PERF_SAMPLE_STACK_USER */\n"
4833 "    char  data[size]; /* if PERF_SAMPLE_STACK_USER */\n"
4834 "    u64   dyn_size;   /* if PERF_SAMPLE_STACK_USER */\n"
4835 "    u64   weight;     /* if PERF_SAMPLE_WEIGHT */\n"
4836 "    u64   data_src;   /* if PERF_SAMPLE_DATA_SRC */\n"
4837 "};\n"
4838 msgstr ""
4839
4840 #. type: TP
4841 #: build/C/man2/perf_event_open.2:1451
4842 #, no-wrap
4843 msgid "I<ip>"
4844 msgstr ""
4845
4846 #. type: Plain text
4847 #: build/C/man2/perf_event_open.2:1457
4848 msgid ""
4849 "If B<PERF_SAMPLE_IP> is enabled, then a 64-bit instruction pointer value is "
4850 "included."
4851 msgstr ""
4852
4853 #. type: TP
4854 #: build/C/man2/perf_event_open.2:1457
4855 #, no-wrap
4856 msgid "I<pid>, I<tid>"
4857 msgstr ""
4858
4859 #. type: Plain text
4860 #: build/C/man2/perf_event_open.2:1463
4861 msgid ""
4862 "If B<PERF_SAMPLE_TID> is enabled, then a 32-bit process ID and 32-bit thread "
4863 "ID are included."
4864 msgstr ""
4865
4866 #. type: TP
4867 #: build/C/man2/perf_event_open.2:1463
4868 #, no-wrap
4869 msgid "I<time>"
4870 msgstr ""
4871
4872 #. type: Plain text
4873 #: build/C/man2/perf_event_open.2:1471
4874 msgid ""
4875 "If B<PERF_SAMPLE_TIME> is enabled, then a 64-bit timestamp is included.  "
4876 "This is obtained via local_clock() which is a hardware timestamp if "
4877 "available and the jiffies value if not."
4878 msgstr ""
4879
4880 #. type: TP
4881 #: build/C/man2/perf_event_open.2:1471
4882 #, no-wrap
4883 msgid "I<addr>"
4884 msgstr ""
4885
4886 #. type: Plain text
4887 #: build/C/man2/perf_event_open.2:1478
4888 msgid ""
4889 "If B<PERF_SAMPLE_ADDR> is enabled, then a 64-bit address is included.  This "
4890 "is usually the address of a tracepoint, breakpoint, or software event; "
4891 "otherwise the value is 0."
4892 msgstr ""
4893
4894 #. type: Plain text
4895 #: build/C/man2/perf_event_open.2:1486
4896 msgid ""
4897 "If B<PERF_SAMPLE_ID> is enabled, a 64-bit unique ID is included.  If the "
4898 "event is a member of an event group, the group leader ID is returned.  This "
4899 "ID is the same as the one returned by B<PERF_FORMAT_ID>."
4900 msgstr ""
4901
4902 #. type: TP
4903 #: build/C/man2/perf_event_open.2:1486
4904 #, no-wrap
4905 msgid "I<stream_id>"
4906 msgstr ""
4907
4908 #. type: Plain text
4909 #: build/C/man2/perf_event_open.2:1496
4910 msgid ""
4911 "If B<PERF_SAMPLE_STREAM_ID> is enabled, a 64-bit unique ID is included.  "
4912 "Unlike B<PERF_SAMPLE_ID> the actual ID is returned, not the group leader.  "
4913 "This ID is the same as the one returned by B<PERF_FORMAT_ID>."
4914 msgstr ""
4915
4916 #. type: TP
4917 #: build/C/man2/perf_event_open.2:1496
4918 #, no-wrap
4919 msgid "I<cpu>, I<res>"
4920 msgstr ""
4921
4922 #. type: Plain text
4923 #: build/C/man2/perf_event_open.2:1503
4924 msgid ""
4925 "If B<PERF_SAMPLE_CPU> is enabled, this is a 32-bit value indicating which "
4926 "CPU was being used, in addition to a reserved (unused)  32-bit value."
4927 msgstr ""
4928
4929 #. type: TP
4930 #: build/C/man2/perf_event_open.2:1503
4931 #, no-wrap
4932 msgid "I<period>"
4933 msgstr ""
4934
4935 #. type: Plain text
4936 #: build/C/man2/perf_event_open.2:1509
4937 msgid ""
4938 "If B<PERF_SAMPLE_PERIOD> is enabled, a 64-bit value indicating the current "
4939 "sampling period is written."
4940 msgstr ""
4941
4942 #. type: TP
4943 #: build/C/man2/perf_event_open.2:1509
4944 #, no-wrap
4945 msgid "I<v>"
4946 msgstr ""
4947
4948 #. type: Plain text
4949 #: build/C/man2/perf_event_open.2:1520
4950 msgid ""
4951 "If B<PERF_SAMPLE_READ> is enabled, a structure of type read_format is "
4952 "included which has values for all events in the event group.  The values "
4953 "included depend on the I<read_format> value used at B<perf_event_open>()  "
4954 "time."
4955 msgstr ""
4956
4957 #. type: TP
4958 #: build/C/man2/perf_event_open.2:1520
4959 #, no-wrap
4960 msgid "I<nr>, I<ips[nr]>"
4961 msgstr ""
4962
4963 #. type: Plain text
4964 #: build/C/man2/perf_event_open.2:1528
4965 msgid ""
4966 "If B<PERF_SAMPLE_CALLCHAIN> is enabled, then a 64-bit number is included "
4967 "which indicates how many following 64-bit instruction pointers will follow.  "
4968 "This is the current callchain."
4969 msgstr ""
4970
4971 #. type: TP
4972 #: build/C/man2/perf_event_open.2:1528
4973 #, no-wrap
4974 msgid "I<size>, I<data[size]>"
4975 msgstr ""
4976
4977 #. type: Plain text
4978 #: build/C/man2/perf_event_open.2:1535
4979 msgid ""
4980 "If B<PERF_SAMPLE_RAW> is enabled, then a 32-bit value indicating size is "
4981 "included followed by an array of 8-bit values of length size.  The values "
4982 "are padded with 0 to have 64-bit alignment."
4983 msgstr ""
4984
4985 #. type: Plain text
4986 #: build/C/man2/perf_event_open.2:1540
4987 msgid ""
4988 "This RAW record data is opaque with respect to the ABI.  The ABI doesn't "
4989 "make any promises with respect to the stability of its content, it may vary "
4990 "depending on event, hardware, and kernel version."
4991 msgstr ""
4992
4993 #. type: TP
4994 #: build/C/man2/perf_event_open.2:1540
4995 #, no-wrap
4996 msgid "I<bnr>, I<lbr[bnr]>"
4997 msgstr ""
4998
4999 #. type: Plain text
5000 #: build/C/man2/perf_event_open.2:1551
5001 msgid ""
5002 "If B<PERF_SAMPLE_BRANCH_STACK> is enabled, then a 64-bit value indicating "
5003 "the number of records is included, followed by I<bnr> I<perf_branch_entry> "
5004 "structures.  These structures have from, to, and flags values indicating the "
5005 "from and to addresses from the branches on the callstack."
5006 msgstr ""
5007
5008 #. type: TP
5009 #: build/C/man2/perf_event_open.2:1551
5010 #, no-wrap
5011 msgid "I<abi>, I<regs[weight(mask)]>"
5012 msgstr ""
5013
5014 #. type: Plain text
5015 #: build/C/man2/perf_event_open.2:1556
5016 msgid ""
5017 "If B<PERF_SAMPLE_REGS_USER> is enabled, then the user CPU registers are "
5018 "recorded."
5019 msgstr ""
5020
5021 #. type: Plain text
5022 #: build/C/man2/perf_event_open.2:1562
5023 msgid ""
5024 "The I<abi> field is one of B<PERF_SAMPLE_REGS_ABI_NONE>, "
5025 "B<PERF_SAMPLE_REGS_ABI_32> or B<PERF_SAMPLE_REGS_ABI_64>."
5026 msgstr ""
5027
5028 #. type: Plain text
5029 #: build/C/man2/perf_event_open.2:1572
5030 msgid ""
5031 "The I<regs> field is an array of the CPU registers that were specified by "
5032 "the I<sample_regs_user> attr field.  The number of values is the number of "
5033 "bits set in the I<sample_regs_user> bitmask."
5034 msgstr ""
5035
5036 #. type: TP
5037 #: build/C/man2/perf_event_open.2:1572
5038 #, no-wrap
5039 msgid "I<size>, I<data[size]>, I<dyn_size>"
5040 msgstr ""
5041
5042 #. type: Plain text
5043 #: build/C/man2/perf_event_open.2:1587
5044 msgid ""
5045 "If B<PERF_SAMPLE_STACK_USER> is enabled, then record the user stack to "
5046 "enable backtracing.  I<size> is the size requested by the user in "
5047 "I<stack_user_size> or else the maximum record size.  I<data> is the stack "
5048 "data.  I<dyn_size> is the amount of data actually dumped (can be less than "
5049 "I<size> )."
5050 msgstr ""
5051
5052 #. type: TP
5053 #: build/C/man2/perf_event_open.2:1587
5054 #, no-wrap
5055 msgid "I<weight>"
5056 msgstr ""
5057
5058 #. type: Plain text
5059 #: build/C/man2/perf_event_open.2:1595
5060 msgid ""
5061 "If B<PERF_SAMPLE_WEIGHT> is enabled, then a 64 bit value provided by the "
5062 "hardwre is recorded that indicates how costly the event was.  This allows "
5063 "expensive events to stand out more clearly in profiles."
5064 msgstr ""
5065
5066 #. type: TP
5067 #: build/C/man2/perf_event_open.2:1595
5068 #, no-wrap
5069 msgid "I<data_src>"
5070 msgstr ""
5071
5072 #. type: Plain text
5073 #: build/C/man2/perf_event_open.2:1601
5074 msgid ""
5075 "If B<PERF_SAMPLE_DATA_SRC> is enabled, then a 64 bit value is recorded that "
5076 "is made up of the following fields:"
5077 msgstr ""
5078
5079 #. type: TP
5080 #: build/C/man2/perf_event_open.2:1602
5081 #, no-wrap
5082 msgid "I<mem_op>"
5083 msgstr ""
5084
5085 #. type: Plain text
5086 #: build/C/man2/perf_event_open.2:1615
5087 msgid ""
5088 "type of opcode, a bitwise combination of B<PERF_MEM_OP_NA> (not available), "
5089 "B<PERF_MEM_OP_LOAD> (load instruction), B<PERF_MEM_OP_STORE> (store "
5090 "instruction), B<PERF_MEM_OP_PFETCH> (prefetch), and B<PERF_MEM_OP_EXEC> "
5091 "(executable code)."
5092 msgstr ""
5093
5094 #. type: TP
5095 #: build/C/man2/perf_event_open.2:1615
5096 #, no-wrap
5097 msgid "I<mem_lvl>"
5098 msgstr ""
5099
5100 #. type: Plain text
5101 #: build/C/man2/perf_event_open.2:1646
5102 msgid ""
5103 "memory hierarchy level hit or miss, a bitwise combination of "
5104 "B<PERF_MEM_LVL_NA> (not available), B<PERF_MEM_LVL_HIT> (hit), "
5105 "B<PERF_MEM_LVL_MISS> (miss), B<PERF_MEM_LVL_L1> (level 1 cache), "
5106 "B<PERF_MEM_LVL_LFB> (line fill buffer), B<PERF_MEM_LVL_L2> (level 2 cache), "
5107 "B<PERF_MEM_LVL_L3> (level 3 cache), B<PERF_MEM_LVL_LOC_RAM> (local DRAM), "
5108 "B<PERF_MEM_LVL_REM_RAM1> (remote DRAM 1 hop), B<PERF_MEM_LVL_REM_RAM2> "
5109 "(remote DRAM 2 hops), B<PERF_MEM_LVL_REM_CCE1> (remote cache 1 hop), "
5110 "B<PERF_MEM_LVL_REM_CCE2> (remote Cache 2 hops), B<PERF_MEM_LVL_IO> (I/O "
5111 "memory), and B<PERF_MEM_LVL_UNC> (uncached memory)."
5112 msgstr ""
5113
5114 #. type: TP
5115 #: build/C/man2/perf_event_open.2:1646
5116 #, no-wrap
5117 msgid "I<mem_snoop>"
5118 msgstr ""
5119
5120 #. type: Plain text
5121 #: build/C/man2/perf_event_open.2:1659
5122 msgid ""
5123 "snoop mode, a bitwise combination of B<PERF_MEM_SNOOP_NA> (not available), "
5124 "B<PERF_MEM_SNOOP_NONE> (no snoop), B<PERF_MEM_SNOOP_HIT> (snoop hit), "
5125 "B<PERF_MEM_SNOOP_MISS> (snoop miss), and B<PERF_MEM_SNOOP_HITM> (snoop hit "
5126 "modified)."
5127 msgstr ""
5128
5129 #. type: TP
5130 #: build/C/man2/perf_event_open.2:1659
5131 #, no-wrap
5132 msgid "I<mem_lock>"
5133 msgstr ""
5134
5135 #. type: Plain text
5136 #: build/C/man2/perf_event_open.2:1666
5137 msgid ""
5138 "lock instruction, a bitwise combination of B<PERF_MEM_LOCK_NA> (not "
5139 "available) and B<PERF_MEM_LOCK_LOCKED> (locked transaction)."
5140 msgstr ""
5141
5142 #. type: TP
5143 #: build/C/man2/perf_event_open.2:1666
5144 #, no-wrap
5145 msgid "I<mem_dtlb>"
5146 msgstr ""
5147
5148 #. type: Plain text
5149 #: build/C/man2/perf_event_open.2:1683
5150 msgid ""
5151 "tlb access hit or miss, a bitwise combination of B<PERF_MEM_TLB_NA> (not "
5152 "available), B<PERF_MEM_TLB_HIT> (hit), B<PERF_MEM_TLB_MISS> (miss), "
5153 "B<PERF_MEM_TLB_L1> (level 1 TLB), B<PERF_MEM_TLB_L2> (level 2 TLB), "
5154 "B<PERF_MEM_TLB_WK> (hardware walker), and B<PERF_MEM_TLB_OS> (OS fault "
5155 "handler)."
5156 msgstr ""
5157
5158 #. type: TP
5159 #: build/C/man2/perf_event_open.2:1686
5160 #, no-wrap
5161 msgid "I<misc>"
5162 msgstr ""
5163
5164 #. type: Plain text
5165 #: build/C/man2/perf_event_open.2:1691
5166 msgid "The I<misc> field contains additional information about the sample."
5167 msgstr ""
5168
5169 #. type: Plain text
5170 #: build/C/man2/perf_event_open.2:1696
5171 msgid ""
5172 "The CPU mode can be determined from this value by masking with "
5173 "B<PERF_RECORD_MISC_CPUMODE_MASK> and looking for one of the following (note "
5174 "these are not bit masks, only one can be set at a time):"
5175 msgstr ""
5176
5177 #. type: TP
5178 #: build/C/man2/perf_event_open.2:1697
5179 #, no-wrap
5180 msgid "B<PERF_RECORD_MISC_CPUMODE_UNKNOWN>"
5181 msgstr ""
5182
5183 #. type: Plain text
5184 #: build/C/man2/perf_event_open.2:1700
5185 msgid "Unknown CPU mode."
5186 msgstr ""
5187
5188 #. type: TP
5189 #: build/C/man2/perf_event_open.2:1700
5190 #, no-wrap
5191 msgid "B<PERF_RECORD_MISC_KERNEL>"
5192 msgstr ""
5193
5194 #. type: Plain text
5195 #: build/C/man2/perf_event_open.2:1703
5196 msgid "Sample happened in the kernel."
5197 msgstr ""
5198
5199 #. type: TP
5200 #: build/C/man2/perf_event_open.2:1703
5201 #, no-wrap
5202 msgid "B<PERF_RECORD_MISC_USER>"
5203 msgstr ""
5204
5205 #. type: Plain text
5206 #: build/C/man2/perf_event_open.2:1706
5207 msgid "Sample happened in user code."
5208 msgstr ""
5209
5210 #. type: TP
5211 #: build/C/man2/perf_event_open.2:1706
5212 #, no-wrap
5213 msgid "B<PERF_RECORD_MISC_HYPERVISOR>"
5214 msgstr ""
5215
5216 #. type: Plain text
5217 #: build/C/man2/perf_event_open.2:1709
5218 msgid "Sample happened in the hypervisor."
5219 msgstr ""
5220
5221 #. type: TP
5222 #: build/C/man2/perf_event_open.2:1709
5223 #, no-wrap
5224 msgid "B<PERF_RECORD_MISC_GUEST_KERNEL>"
5225 msgstr ""
5226
5227 #. type: Plain text
5228 #: build/C/man2/perf_event_open.2:1712
5229 msgid "Sample happened in the guest kernel."
5230 msgstr ""
5231
5232 #. type: TP
5233 #: build/C/man2/perf_event_open.2:1712
5234 #, no-wrap
5235 msgid "B<PERF_RECORD_MISC_GUEST_USER>"
5236 msgstr ""
5237
5238 #. type: Plain text
5239 #: build/C/man2/perf_event_open.2:1715
5240 msgid "Sample happened in guest user code."
5241 msgstr ""
5242
5243 #. type: Plain text
5244 #: build/C/man2/perf_event_open.2:1718
5245 msgid "In addition, one of the following bits can be set:"
5246 msgstr ""
5247
5248 #. type: TP
5249 #: build/C/man2/perf_event_open.2:1719
5250 #, fuzzy, no-wrap
5251 #| msgid "B<PERF_RECORD_EXIT>"
5252 msgid "B<PERF_RECORD_MISC_MMAP_DATA>"
5253 msgstr "B<PERF_RECORD_EXIT>"
5254
5255 #. type: Plain text
5256 #: build/C/man2/perf_event_open.2:1723
5257 msgid ""
5258 "This is set when the mapping is not executable; otherwise the mapping is "
5259 "executable."
5260 msgstr ""
5261
5262 #. type: TP
5263 #: build/C/man2/perf_event_open.2:1723
5264 #, no-wrap
5265 msgid "B<PERF_RECORD_MISC_EXACT_IP>"
5266 msgstr ""
5267
5268 #. type: Plain text
5269 #: build/C/man2/perf_event_open.2:1731
5270 msgid ""
5271 "This indicates that the content of B<PERF_SAMPLE_IP> points to the actual "
5272 "instruction that triggered the event.  See also I<perf_event_attr."
5273 "precise_ip>."
5274 msgstr ""
5275
5276 #. type: TP
5277 #: build/C/man2/perf_event_open.2:1731
5278 #, no-wrap
5279 msgid "B<PERF_RECORD_MISC_EXT_RESERVED>"
5280 msgstr ""
5281
5282 #. type: Plain text
5283 #: build/C/man2/perf_event_open.2:1734
5284 msgid "This indicates there is extended data available (currently not used)."
5285 msgstr ""
5286
5287 #. type: Plain text
5288 #: build/C/man2/perf_event_open.2:1737
5289 msgid "This indicates the size of the record."
5290 msgstr ""
5291
5292 #. type: SS
5293 #: build/C/man2/perf_event_open.2:1738
5294 #, no-wrap
5295 msgid "Signal overflow"
5296 msgstr ""
5297
5298 #. type: Plain text
5299 #: build/C/man2/perf_event_open.2:1747
5300 msgid ""
5301 "Events can be set to deliver a signal when a threshold is crossed.  The "
5302 "signal handler is set up using the B<poll>(2), B<select>(2), B<epoll>(2)  "
5303 "and B<fcntl>(2), system calls."
5304 msgstr ""
5305
5306 #. type: Plain text
5307 #: build/C/man2/perf_event_open.2:1751
5308 msgid ""
5309 "To generate signals, sampling must be enabled (I<sample_period> must have a "
5310 "non-zero value)."
5311 msgstr ""
5312
5313 #. type: Plain text
5314 #: build/C/man2/perf_event_open.2:1753
5315 msgid "There are two ways to generate signals."
5316 msgstr ""
5317
5318 #. type: Plain text
5319 #: build/C/man2/perf_event_open.2:1763
5320 msgid ""
5321 "The first is to set a I<wakeup_events> or I<wakeup_watermark> value that "
5322 "will generate a signal if a certain number of samples or bytes have been "
5323 "written to the mmap ring buffer.  In this case a signal of type B<POLL_IN> "
5324 "is sent."
5325 msgstr ""
5326
5327 #. type: Plain text
5328 #: build/C/man2/perf_event_open.2:1775
5329 msgid ""
5330 "The other way is by use of the B<PERF_EVENT_IOC_REFRESH> ioctl.  This ioctl "
5331 "adds to a counter that decrements each time the event overflows.  When non-"
5332 "zero, a B<POLL_IN> signal is sent on overflow, but once the value reaches 0, "
5333 "a signal is sent of type B<POLL_HUP> and the underlying event is disabled."
5334 msgstr ""
5335
5336 #.  FIXME(Vince) : Find out when this was introduced
5337 #. type: Plain text
5338 #: build/C/man2/perf_event_open.2:1781
5339 msgid ""
5340 "Note: on newer kernels (definitely noticed with 3.2)  a signal is provided "
5341 "for every overflow, even if I<wakeup_events> is not set."
5342 msgstr ""
5343
5344 #. type: SS
5345 #: build/C/man2/perf_event_open.2:1781
5346 #, no-wrap
5347 msgid "rdpmc instruction"
5348 msgstr ""
5349
5350 #. type: Plain text
5351 #: build/C/man2/perf_event_open.2:1788
5352 msgid ""
5353 "Starting with Linux 3.4 on x86, you can use the I<rdpmc> instruction to get "
5354 "low-latency reads without having to enter the kernel.  Note that using "
5355 "I<rdpmc> is not necessarily faster than other methods for reading event "
5356 "values."
5357 msgstr ""
5358
5359 #. type: Plain text
5360 #: build/C/man2/perf_event_open.2:1793
5361 msgid ""
5362 "Support for this can be detected with the I<cap_usr_rdpmc> field in the mmap "
5363 "page; documentation on how to calculate event values can be found in that "
5364 "section."
5365 msgstr ""
5366
5367 #. type: SS
5368 #: build/C/man2/perf_event_open.2:1793
5369 #, no-wrap
5370 msgid "perf_event ioctl calls"
5371 msgstr ""
5372
5373 #. type: Plain text
5374 #: build/C/man2/perf_event_open.2:1798
5375 msgid "Various ioctls act on B<perf_event_open>()  file descriptors"
5376 msgstr ""
5377
5378 #. type: TP
5379 #: build/C/man2/perf_event_open.2:1798
5380 #, fuzzy, no-wrap
5381 #| msgid "B<PTRACE_EVENT_CLONE>"
5382 msgid "B<PERF_EVENT_IOC_ENABLE>"
5383 msgstr "B<PTRACE_EVENT_CLONE>"
5384
5385 #. type: Plain text
5386 #: build/C/man2/perf_event_open.2:1802
5387 msgid ""
5388 "Enables the individual event or event group specified by the file descriptor "
5389 "argument."
5390 msgstr ""
5391
5392 #. type: Plain text
5393 #: build/C/man2/perf_event_open.2:1807
5394 msgid ""
5395 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
5396 "events in a group are enabled, even if the event specified is not the group "
5397 "leader."
5398 msgstr ""
5399
5400 #. type: TP
5401 #: build/C/man2/perf_event_open.2:1807
5402 #, fuzzy, no-wrap
5403 #| msgid "B<PTRACE_EVENT_CLONE>"
5404 msgid "B<PERF_EVENT_IOC_DISABLE>"
5405 msgstr "B<PTRACE_EVENT_CLONE>"
5406
5407 #. type: Plain text
5408 #: build/C/man2/perf_event_open.2:1811
5409 msgid ""
5410 "Disables the individual counter or event group specified by the file "
5411 "descriptor argument."
5412 msgstr ""
5413
5414 #. type: Plain text
5415 #: build/C/man2/perf_event_open.2:1818
5416 msgid ""
5417 "Enabling or disabling the leader of a group enables or disables the entire "
5418 "group; that is, while the group leader is disabled, none of the counters in "
5419 "the group will count.  Enabling or disabling a member of a group other than "
5420 "the leader affects only that counter; disabling a non-leader stops that "
5421 "counter from counting but doesn't affect any other counter."
5422 msgstr ""
5423
5424 #. type: Plain text
5425 #: build/C/man2/perf_event_open.2:1823
5426 msgid ""
5427 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
5428 "events in a group are disabled, even if the event specified is not the group "
5429 "leader."
5430 msgstr ""
5431
5432 #. type: TP
5433 #: build/C/man2/perf_event_open.2:1823
5434 #, fuzzy, no-wrap
5435 #| msgid "B<PTRACE_EVENT_FORK>"
5436 msgid "B<PERF_EVENT_IOC_REFRESH>"
5437 msgstr "B<PTRACE_EVENT_FORK>"
5438
5439 #. type: Plain text
5440 #: build/C/man2/perf_event_open.2:1837
5441 msgid ""
5442 "Non-inherited overflow counters can use this to enable a counter for a "
5443 "number of overflows specified by the argument, after which it is disabled.  "
5444 "Subsequent calls of this ioctl add the argument value to the current count.  "
5445 "A signal with B<POLL_IN> set will happen on each overflow until the count "
5446 "reaches 0; when that happens a signal with POLL_HUP set is sent and the "
5447 "event is disabled.  Using an argument of 0 is considered undefined behavior."
5448 msgstr ""
5449
5450 #. type: TP
5451 #: build/C/man2/perf_event_open.2:1837
5452 #, fuzzy, no-wrap
5453 #| msgid "B<PTRACE_EVENT_FORK>"
5454 msgid "B<PERF_EVENT_IOC_RESET>"
5455 msgstr "B<PTRACE_EVENT_FORK>"
5456
5457 #. type: Plain text
5458 #: build/C/man2/perf_event_open.2:1847
5459 msgid ""
5460 "Reset the event count specified by the file descriptor argumentto zero.  "
5461 "This resets only the counts; there is no way to reset the multiplexing "
5462 "I<time_enabled> or I<time_running> values."
5463 msgstr ""
5464
5465 #. type: Plain text
5466 #: build/C/man2/perf_event_open.2:1852
5467 msgid ""
5468 "If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
5469 "events in a group are reset, even if the event specified is not the group "
5470 "leader."
5471 msgstr ""
5472
5473 #. type: Plain text
5474 #: build/C/man2/perf_event_open.2:1859
5475 msgid ""
5476 "If the B<PERF_IOC_FLAG_GROUP> bit is not set, then the behavior is somwhat "
5477 "unexpected: when sent to a group leader only the leader is reset (children "
5478 "are left alone); when sent to a child all events in a group are reset."
5479 msgstr ""
5480
5481 #. type: TP
5482 #: build/C/man2/perf_event_open.2:1859
5483 #, fuzzy, no-wrap
5484 #| msgid "B<PTRACE_EVENT_FORK>"
5485 msgid "B<PERF_EVENT_IOC_PERIOD>"
5486 msgstr "B<PTRACE_EVENT_FORK>"
5487
5488 #. type: Plain text
5489 #: build/C/man2/perf_event_open.2:1863
5490 msgid ""
5491 "IOC_PERIOD is the command to update the period; it does not update the "
5492 "current period but instead defers until next."
5493 msgstr ""
5494
5495 #. type: Plain text
5496 #: build/C/man2/perf_event_open.2:1866
5497 msgid ""
5498 "The argument is a pointer to a 64-bit value containing the desired new "
5499 "period."
5500 msgstr ""
5501
5502 #. type: TP
5503 #: build/C/man2/perf_event_open.2:1866
5504 #, no-wrap
5505 msgid "B<PERF_EVENT_IOC_SET_OUTPUT>"
5506 msgstr ""
5507
5508 #. type: Plain text
5509 #: build/C/man2/perf_event_open.2:1871
5510 msgid ""
5511 "This tells the kernel to report event notifications to the specified file "
5512 "descriptor rather than the default one.  The file descriptors must all be on "
5513 "the same CPU."
5514 msgstr ""
5515
5516 #. type: Plain text
5517 #: build/C/man2/perf_event_open.2:1874
5518 msgid ""
5519 "The argument specifies the desired file descriptor, or -1 if output should "
5520 "be ignored."
5521 msgstr ""
5522
5523 #. type: TP
5524 #: build/C/man2/perf_event_open.2:1874
5525 #, fuzzy, no-wrap
5526 #| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
5527 msgid "B<PERF_EVENT_IOC_SET_FILTER> (Since Linux 2.6.33)"
5528 msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
5529
5530 #. type: Plain text
5531 #: build/C/man2/perf_event_open.2:1877
5532 msgid "This adds an ftrace filter to this event."
5533 msgstr ""
5534
5535 #. type: Plain text
5536 #: build/C/man2/perf_event_open.2:1879
5537 msgid "The argument is a pointer to the desired ftrace filter."
5538 msgstr ""
5539
5540 #. type: SS
5541 #: build/C/man2/perf_event_open.2:1879
5542 #, no-wrap
5543 msgid "Using prctl"
5544 msgstr ""
5545
5546 #. type: Plain text
5547 #: build/C/man2/perf_event_open.2:1892
5548 msgid ""
5549 "A process can enable or disable all the event groups that are attached to it "
5550 "using the B<prctl>(2)  B<PR_TASK_PERF_EVENTS_ENABLE> and "
5551 "B<PR_TASK_PERF_EVENTS_DISABLE> operations.  This applies to all counters on "
5552 "the current process, whether created by this process or by another, and does "
5553 "not affect any counters that this process has created on other processes.  "
5554 "It enables or disables only the group leaders, not any other members in the "
5555 "groups."
5556 msgstr ""
5557
5558 #. type: SS
5559 #: build/C/man2/perf_event_open.2:1892
5560 #, no-wrap
5561 msgid "perf_event related configuration files"
5562 msgstr ""
5563
5564 #. type: Plain text
5565 #: build/C/man2/perf_event_open.2:1895
5566 msgid "Files in I</proc/sys/kernel/>"
5567 msgstr ""
5568
5569 #. type: TP
5570 #: build/C/man2/perf_event_open.2:1896
5571 #, no-wrap
5572 msgid "I</proc/sys/kernel/perf_event_paranoid>"
5573 msgstr ""
5574
5575 #. type: Plain text
5576 #: build/C/man2/perf_event_open.2:1902
5577 msgid ""
5578 "The I<perf_event_paranoid> file can be set to restrict access to the "
5579 "performance counters."
5580 msgstr ""
5581
5582 #. type: Plain text
5583 #: build/C/man2/perf_event_open.2:1904
5584 msgid "2 - only allow user-space measurements"
5585 msgstr ""
5586
5587 #. type: Plain text
5588 #: build/C/man2/perf_event_open.2:1906
5589 msgid "1 - (default) allow both kernel and user measurements"
5590 msgstr ""
5591
5592 #. type: Plain text
5593 #: build/C/man2/perf_event_open.2:1908
5594 msgid "0 - allow access to CPU-specific data but not raw tracepoint samples"
5595 msgstr ""
5596
5597 #. type: Plain text
5598 #: build/C/man2/perf_event_open.2:1910
5599 msgid "-1 - no restrictions"
5600 msgstr ""
5601
5602 #. type: Plain text
5603 #: build/C/man2/perf_event_open.2:1915
5604 msgid ""
5605 "The existence of the I<perf_event_paranoid> file is the official method for "
5606 "determining if a kernel supports B<perf_event_open>()."
5607 msgstr ""
5608
5609 #. type: TP
5610 #: build/C/man2/perf_event_open.2:1915
5611 #, no-wrap
5612 msgid "I</proc/sys/kernel/perf_event_max_sample_rate>"
5613 msgstr ""
5614
5615 #. type: Plain text
5616 #: build/C/man2/perf_event_open.2:1924
5617 msgid ""
5618 "This sets the maximum sample rate.  Setting this too high can allow users to "
5619 "sample at a rate that impacts overall machine performance and potentially "
5620 "lock up the machine.  The default value is 100000 (samples per second)."
5621 msgstr ""
5622
5623 #. type: TP
5624 #: build/C/man2/perf_event_open.2:1924
5625 #, no-wrap
5626 msgid "I</proc/sys/kernel/perf_event_mlock_kb>"
5627 msgstr ""
5628
5629 #. type: Plain text
5630 #: build/C/man2/perf_event_open.2:1929
5631 msgid ""
5632 "Maximum number of pages an unprivileged user can mlock (2) .  The default is "
5633 "516 (kB)."
5634 msgstr ""
5635
5636 #. type: Plain text
5637 #: build/C/man2/perf_event_open.2:1932
5638 msgid "Files in I</sys/bus/event_source/devices/>"
5639 msgstr ""
5640
5641 #. type: Plain text
5642 #: build/C/man2/perf_event_open.2:1938
5643 msgid ""
5644 "Since Linux 2.6.34 the kernel supports having multiple PMUs available for "
5645 "monitoring.  Information on how to program these PMUs can be found under I</"
5646 "sys/bus/event_source/devices/>.  Each subdirectory corresponds to a "
5647 "different PMU."
5648 msgstr ""
5649
5650 #. type: TP
5651 #: build/C/man2/perf_event_open.2:1938
5652 #, no-wrap
5653 msgid "I</sys/bus/event_source/devices/*/type>"
5654 msgstr ""
5655
5656 #. type: Plain text
5657 #: build/C/man2/perf_event_open.2:1943
5658 msgid ""
5659 "This contains an integer that can be used in the I<type> field of "
5660 "perf_event_attr to indicate you wish to use this PMU."
5661 msgstr ""
5662
5663 #. type: TP
5664 #: build/C/man2/perf_event_open.2:1943
5665 #, no-wrap
5666 msgid "I</sys/bus/event_source/devices/*/rdpmc>"
5667 msgstr ""
5668
5669 #. type: Plain text
5670 #: build/C/man2/perf_event_open.2:1946 build/C/man2/perf_event_open.2:1963
5671 msgid "[To be documented]"
5672 msgstr ""
5673
5674 #. type: TP
5675 #: build/C/man2/perf_event_open.2:1946
5676 #, no-wrap
5677 msgid "I</sys/bus/event_source/devices/*/format/>"
5678 msgstr ""
5679
5680 #. type: Plain text
5681 #: build/C/man2/perf_event_open.2:1951
5682 msgid ""
5683 "This sub-directory contains information on what bits in the I<config> field "
5684 "of perf_event_attr correspond to."
5685 msgstr ""
5686
5687 #. type: TP
5688 #: build/C/man2/perf_event_open.2:1951
5689 #, no-wrap
5690 msgid "I</sys/bus/event_source/devices/*/events/>"
5691 msgstr ""
5692
5693 #. type: Plain text
5694 #: build/C/man2/perf_event_open.2:1960
5695 msgid ""
5696 "This sub-directory contains files with pre-defined events.  The contents are "
5697 "strings describing the event settings expressed in terms of the fields found "
5698 "in the I<./format/> directory.  These are not necessarily complete lists of "
5699 "all events supported by a PMU, but usually a subset of events deemed useful "
5700 "or interesting."
5701 msgstr ""
5702
5703 #. type: TP
5704 #: build/C/man2/perf_event_open.2:1960
5705 #, no-wrap
5706 msgid "I</sys/bus/event_source/devices/*/uevent>"
5707 msgstr ""
5708
5709 #. type: Plain text
5710 #: build/C/man2/perf_event_open.2:1970
5711 msgid ""
5712 "B<perf_event_open>()  returns the new file descriptor, or -1 if an error "
5713 "occurred (in which case, I<errno> is set appropriately)."
5714 msgstr ""
5715
5716 #. type: Plain text
5717 #: build/C/man2/perf_event_open.2:1974
5718 msgid "Returned if the specified event is not available."
5719 msgstr ""
5720
5721 #. type: TP
5722 #: build/C/man2/perf_event_open.2:1974
5723 #, no-wrap
5724 msgid "B<ENOSPC>"
5725 msgstr "B<ENOSPC>"
5726
5727 #. type: Plain text
5728 #: build/C/man2/perf_event_open.2:1984
5729 msgid ""
5730 "Prior to Linux 3.3, if there was not enough room for the event, B<ENOSPC> "
5731 "was returned.  Linus did not like this, and this was changed to B<EINVAL>.  "
5732 "B<ENOSPC> is still returned if you try to read results into too small of a "
5733 "buffer."
5734 msgstr ""
5735
5736 #. type: SH
5737 #: build/C/man2/perf_event_open.2:1984
5738 #, no-wrap
5739 msgid "VERSION"
5740 msgstr "バージョン"
5741
5742 #. type: Plain text
5743 #: build/C/man2/perf_event_open.2:1989
5744 msgid ""
5745 "B<perf_event_open>()  was introduced in Linux 2.6.31 but was called "
5746 "B<perf_counter_open>()B<.> It was renamed in Linux 2.6.32."
5747 msgstr ""
5748
5749 #. type: Plain text
5750 #: build/C/man2/perf_event_open.2:1994
5751 #, fuzzy
5752 #| msgid ""
5753 #| "B<personality>()  is Linux-specific and should not be used in programs "
5754 #| "intended to be portable."
5755 msgid ""
5756 "This B<perf_event_open>()  system call Linux- specific and should not be "
5757 "used in programs intended to be portable."
5758 msgstr ""
5759 "B<personality>()  は Linux 固有であり、移植を意図したプログラムで使用すべきで"
5760 "はない。"
5761
5762 #. type: Plain text
5763 #: build/C/man2/perf_event_open.2:1998
5764 #, fuzzy
5765 #| msgid ""
5766 #| "Glibc does not provide a wrapper for this system call; call it using "
5767 #| "B<syscall>(2)."
5768 msgid ""
5769 "Glibc does not provide a wrapper for this system call; call it using "
5770 "B<syscall>(2).  See the example below."
5771 msgstr ""
5772 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
5773 "(2)  を使って呼び出すこと。"
5774
5775 #. type: Plain text
5776 #: build/C/man2/perf_event_open.2:2004
5777 msgid ""
5778 "The official way of knowing if B<perf_event_open>()  support is enabled is "
5779 "checking for the existence of the file I</proc/sys/kernel/"
5780 "perf_event_paranoid>."
5781 msgstr ""
5782
5783 #. type: SH
5784 #: build/C/man2/perf_event_open.2:2004 build/C/man2/pivot_root.2:134
5785 #: build/C/man2/ptrace.2:1811
5786 #, no-wrap
5787 msgid "BUGS"
5788 msgstr "バグ"
5789
5790 #. type: Plain text
5791 #: build/C/man2/perf_event_open.2:2011
5792 msgid ""
5793 "The B<F_SETOWN_EX> option to B<fcntl>(2)  is needed to properly get overflow "
5794 "signals in threads.  This was introduced in Linux 2.6.32."
5795 msgstr ""
5796
5797 #. type: Plain text
5798 #: build/C/man2/perf_event_open.2:2019
5799 msgid ""
5800 "Prior to Linux 2.6.33 (at least for x86) the kernel did not check if events "
5801 "could be scheduled together until read time.  The same happens on all known "
5802 "kernels if the NMI watchdog is enabled.  This means to see if a given set of "
5803 "events works you have to B<perf_event_open>(), start, then read before you "
5804 "know for sure you can get valid measurements."
5805 msgstr ""
5806
5807 #. type: Plain text
5808 #: build/C/man2/perf_event_open.2:2023
5809 msgid ""
5810 "Prior to Linux 2.6.34 event constraints were not enforced by the kernel.  In "
5811 "that case, some events would silently return \"0\" if the kernel scheduled "
5812 "them in an improper counter slot."
5813 msgstr ""
5814
5815 #. type: Plain text
5816 #: build/C/man2/perf_event_open.2:2026
5817 msgid ""
5818 "Prior to Linux 2.6.34 there was a bug when multiplexing where the wrong "
5819 "results could be returned."
5820 msgstr ""
5821
5822 #. type: Plain text
5823 #: build/C/man2/perf_event_open.2:2029
5824 msgid ""
5825 "Kernels from Linux 2.6.35 to Linux 2.6.39 can quickly crash the kernel if "
5826 "\"inherit\" is enabled and many threads are started."
5827 msgstr ""
5828
5829 #. type: Plain text
5830 #: build/C/man2/perf_event_open.2:2033
5831 msgid ""
5832 "Prior to Linux 2.6.35, B<PERF_FORMAT_GROUP> did not work with attached "
5833 "processes."
5834 msgstr ""
5835
5836 #. type: Plain text
5837 #: build/C/man2/perf_event_open.2:2038
5838 msgid ""
5839 "In older Linux 2.6 versions, refreshing an event group leader refreshed all "
5840 "siblings, and refreshing with a parameter of 0 enabled infinite refresh.  "
5841 "This behavior is unsupported and should not be relied on."
5842 msgstr ""
5843
5844 #. type: Plain text
5845 #: build/C/man2/perf_event_open.2:2044
5846 msgid ""
5847 "There is a bug in the kernel code between Linux 2.6.36 and Linux 3.0 that "
5848 "ignores the \"watermark\" field and acts as if a wakeup_event was chosen if "
5849 "the union has a non-zero value in it."
5850 msgstr ""
5851
5852 #. type: Plain text
5853 #: build/C/man2/perf_event_open.2:2049
5854 msgid ""
5855 "Always double-check your results! Various generalized events have had wrong "
5856 "values.  For example, retired branches measured the wrong thing on AMD "
5857 "machines until Linux 2.6.35."
5858 msgstr ""
5859
5860 #. type: SH
5861 #: build/C/man2/perf_event_open.2:2049 build/C/man2/process_vm_readv.2:295
5862 #: build/C/man2/splice.2:223 build/C/man2/tee.2:130
5863 #, no-wrap
5864 msgid "EXAMPLE"
5865 msgstr "例"
5866
5867 #. type: Plain text
5868 #: build/C/man2/perf_event_open.2:2053
5869 msgid ""
5870 "The following is a short example that measures the total instruction count "
5871 "of a call to B<printf>(3)."
5872 msgstr ""
5873
5874 #. type: Plain text
5875 #: build/C/man2/perf_event_open.2:2062
5876 #, no-wrap
5877 msgid ""
5878 "#include E<lt>stdlib.hE<gt>\n"
5879 "#include E<lt>stdio.hE<gt>\n"
5880 "#include E<lt>unistd.hE<gt>\n"
5881 "#include E<lt>string.hE<gt>\n"
5882 "#include E<lt>sys/ioctl.hE<gt>\n"
5883 "#include E<lt>linux/perf_event.hE<gt>\n"
5884 "#include E<lt>asm/unistd.hE<gt>\n"
5885 msgstr ""
5886 "#include E<lt>stdlib.hE<gt>\n"
5887 "#include E<lt>stdio.hE<gt>\n"
5888 "#include E<lt>unistd.hE<gt>\n"
5889 "#include E<lt>string.hE<gt>\n"
5890 "#include E<lt>sys/ioctl.hE<gt>\n"
5891 "#include E<lt>linux/perf_event.hE<gt>\n"
5892 "#include E<lt>asm/unistd.hE<gt>\n"
5893
5894 #. type: Plain text
5895 #: build/C/man2/perf_event_open.2:2068
5896 #, no-wrap
5897 msgid ""
5898 "long\n"
5899 "perf_event_open(struct perf_event_attr *hw_event, pid_t pid,\n"
5900 "                int cpu, int group_fd, unsigned long flags)\n"
5901 "{\n"
5902 "    int ret;\n"
5903 msgstr ""
5904
5905 #. type: Plain text
5906 #: build/C/man2/perf_event_open.2:2073
5907 #, no-wrap
5908 msgid ""
5909 "    ret = syscall(__NR_perf_event_open, hw_event, pid, cpu,\n"
5910 "                   group_fd, flags);\n"
5911 "    return ret;\n"
5912 "}\n"
5913 msgstr ""
5914
5915 #. type: Plain text
5916 #: build/C/man2/perf_event_open.2:2080
5917 #, no-wrap
5918 msgid ""
5919 "int\n"
5920 "main(int argc, char **argv)\n"
5921 "{\n"
5922 "    struct perf_event_attr pe;\n"
5923 "    long long count;\n"
5924 "    int fd;\n"
5925 msgstr ""
5926 "int\n"
5927 "main(int argc, char **argv)\n"
5928 "{\n"
5929 "    struct perf_event_attr pe;\n"
5930 "    long long count;\n"
5931 "    int fd;\n"
5932
5933 #. type: Plain text
5934 #: build/C/man2/perf_event_open.2:2088
5935 #, no-wrap
5936 msgid ""
5937 "    memset(&pe, 0, sizeof(struct perf_event_attr));\n"
5938 "    pe.type = PERF_TYPE_HARDWARE;\n"
5939 "    pe.size = sizeof(struct perf_event_attr);\n"
5940 "    pe.config = PERF_COUNT_HW_INSTRUCTIONS;\n"
5941 "    pe.disabled = 1;\n"
5942 "    pe.exclude_kernel = 1;\n"
5943 "    pe.exclude_hv = 1;\n"
5944 msgstr ""
5945
5946 #. type: Plain text
5947 #: build/C/man2/perf_event_open.2:2094
5948 #, no-wrap
5949 msgid ""
5950 "    fd = perf_event_open(&pe, 0, -1, -1, 0);\n"
5951 "    if (fd == -1) {\n"
5952 "       fprintf(stderr, \"Error opening leader %llx\\en\", pe.config);\n"
5953 "       exit(EXIT_FAILURE);\n"
5954 "    }\n"
5955 msgstr ""
5956 "    fd = perf_event_open(&pe, 0, -1, -1, 0);\n"
5957 "    if (fd == -1) {\n"
5958 "       fprintf(stderr, \"Error opening leader %llx\\en\", pe.config);\n"
5959 "       exit(EXIT_FAILURE);\n"
5960 "    }\n"
5961
5962 #. type: Plain text
5963 #: build/C/man2/perf_event_open.2:2097
5964 #, no-wrap
5965 msgid ""
5966 "    ioctl(fd, PERF_EVENT_IOC_RESET, 0);\n"
5967 "    ioctl(fd, PERF_EVENT_IOC_ENABLE, 0);\n"
5968 msgstr ""
5969
5970 #. type: Plain text
5971 #: build/C/man2/perf_event_open.2:2099
5972 #, no-wrap
5973 msgid "    printf(\"Measuring instruction count for this printf\\en\");\n"
5974 msgstr ""
5975
5976 #. type: Plain text
5977 #: build/C/man2/perf_event_open.2:2102
5978 #, no-wrap
5979 msgid ""
5980 "    ioctl(fd, PERF_EVENT_IOC_DISABLE, 0);\n"
5981 "    read(fd, &count, sizeof(long long));\n"
5982 msgstr ""
5983
5984 #. type: Plain text
5985 #: build/C/man2/perf_event_open.2:2104
5986 #, no-wrap
5987 msgid "    printf(\"Used %lld instructions\\en\", count);\n"
5988 msgstr ""
5989
5990 #. type: Plain text
5991 #: build/C/man2/perf_event_open.2:2107
5992 #, no-wrap
5993 msgid ""
5994 "    close(fd);\n"
5995 "}\n"
5996 msgstr ""
5997
5998 #. type: Plain text
5999 #: build/C/man2/perf_event_open.2:2114
6000 msgid "B<fcntl>(2), B<mmap>(2), B<open>(2), B<prctl>(2), B<read>(2)"
6001 msgstr "B<fcntl>(2), B<mmap>(2), B<open>(2), B<prctl>(2), B<read>(2)"
6002
6003 #. type: TH
6004 #: build/C/man2/perfmonctl.2:27
6005 #, no-wrap
6006 msgid "PERFMONCTL"
6007 msgstr ""
6008
6009 #. type: Plain text
6010 #: build/C/man2/perfmonctl.2:30
6011 msgid "perfmonctl - interface to IA-64 performance monitoring unit"
6012 msgstr ""
6013
6014 #. type: Plain text
6015 #: build/C/man2/perfmonctl.2:34
6016 #, no-wrap
6017 msgid ""
6018 "B<#include E<lt>syscall.hE<gt>>\n"
6019 "B<#include E<lt>perfmon.hE<gt>>\n"
6020 msgstr ""
6021 "B<#include E<lt>syscall.hE<gt>>\n"
6022 "B<#include E<lt>perfmon.hE<gt>>\n"
6023
6024 #. type: Plain text
6025 #: build/C/man2/perfmonctl.2:36
6026 #, no-wrap
6027 msgid "B<long perfmonctl(int >I<fd>B<, int >I<cmd>B<, void *>I<arg>B<, int >I<narg>B<);>\n"
6028 msgstr "B<long perfmonctl(int >I<fd>B<, int >I<cmd>B<, void *>I<arg>B<, int >I<narg>B<);>\n"
6029
6030 #. type: Plain text
6031 #: build/C/man2/perfmonctl.2:47
6032 msgid ""
6033 "The IA-64-specific B<perfmonctl>()  system call provides an interface to the "
6034 "PMU (performance monitoring unit).  The PMU consists of PMD (performance "
6035 "monitoring data) registers and PMC (performance monitoring control) "
6036 "registers, which gather hardware statistics."
6037 msgstr ""
6038
6039 #. type: Plain text
6040 #: build/C/man2/perfmonctl.2:57
6041 msgid ""
6042 "B<perfmonctl>()  applies the operation I<cmd> to the input arguments "
6043 "specified by I<arg>.  The number of arguments is defined by I<narg>.  The "
6044 "I<fd> argument specifies the perfmon context to operate on."
6045 msgstr ""
6046
6047 #. type: Plain text
6048 #: build/C/man2/perfmonctl.2:61
6049 msgid "Supported values for I<cmd> are:"
6050 msgstr ""
6051
6052 #. type: TP
6053 #: build/C/man2/perfmonctl.2:61
6054 #, no-wrap
6055 msgid "B<PFM_CREATE_CONTEXT>"
6056 msgstr "B<PFM_CREATE_CONTEXT>"
6057
6058 #. type: Plain text
6059 #: build/C/man2/perfmonctl.2:65
6060 #, no-wrap
6061 msgid "B<perfmonctl(int >I<fd>B<, PFM_CREATE_CONTEXT, pfarg_context_t *>I<ctxt>B<, 1);>\n"
6062 msgstr ""
6063
6064 #. type: Plain text
6065 #: build/C/man2/perfmonctl.2:67
6066 msgid "Set up a context."
6067 msgstr ""
6068
6069 #. type: Plain text
6070 #: build/C/man2/perfmonctl.2:74
6071 msgid ""
6072 "The I<fd> parameter is ignored.  A new perfmon context is created as "
6073 "specified in I<ctxt> and its file descriptor is returned in I<ctxt-"
6074 "E<gt>ctx_fd>."
6075 msgstr ""
6076
6077 #. type: Plain text
6078 #: build/C/man2/perfmonctl.2:86
6079 msgid ""
6080 "The file descriptor can be used in subsequent calls to B<perfmonctl>()  and "
6081 "can be used to read event notifications (type I<pfm_msg_t>)  using B<read>"
6082 "(2).  The file descriptor is pollable using B<select>(2), B<poll>(2), and "
6083 "B<epoll>(7)."
6084 msgstr ""
6085
6086 #. type: Plain text
6087 #: build/C/man2/perfmonctl.2:90
6088 msgid ""
6089 "The context can be destroyed by calling B<close>(2)  on the file descriptor."
6090 msgstr ""
6091
6092 #. type: TP
6093 #: build/C/man2/perfmonctl.2:90
6094 #, no-wrap
6095 msgid "B<PFM_WRITE_PMCS>"
6096 msgstr ""
6097
6098 #. type: Plain text
6099 #: build/C/man2/perfmonctl.2:95
6100 #, no-wrap
6101 msgid "B<perfmonctl(int >I<fd>B<, PFM_WRITE_PMCS, pfarg_reg_t *>I<pmcs>B<, n);>\n"
6102 msgstr ""
6103
6104 #. type: Plain text
6105 #: build/C/man2/perfmonctl.2:97
6106 msgid "Set PMC registers."
6107 msgstr ""
6108
6109 #. type: TP
6110 #: build/C/man2/perfmonctl.2:97
6111 #, no-wrap
6112 msgid "B<PFM_WRITE_PMDS>"
6113 msgstr ""
6114
6115 #. type: Plain text
6116 #: build/C/man2/perfmonctl.2:101
6117 #, no-wrap
6118 msgid "B<perfmonctl(int >I<fd>B<, PFM_WRITE_PMDS, pfarg_reg_t *>I<pmds>B<, n);>\n"
6119 msgstr ""
6120
6121 #.  pfm_write_pmds()
6122 #. type: Plain text
6123 #: build/C/man2/perfmonctl.2:104
6124 msgid "Set PMD registers."
6125 msgstr ""
6126
6127 #. type: TP
6128 #: build/C/man2/perfmonctl.2:104
6129 #, no-wrap
6130 msgid "B<PFM_READ_PMDS>"
6131 msgstr ""
6132
6133 #. type: Plain text
6134 #: build/C/man2/perfmonctl.2:109
6135 #, no-wrap
6136 msgid "B<perfmonctl(int >I<fd>B<, PFM_READ_PMDS, pfarg_reg_t *>I<pmds>B<, n);>\n"
6137 msgstr ""
6138
6139 #. type: Plain text
6140 #: build/C/man2/perfmonctl.2:111
6141 msgid "Read PMD registers."
6142 msgstr ""
6143
6144 #. type: TP
6145 #: build/C/man2/perfmonctl.2:111
6146 #, no-wrap
6147 msgid "B<PFM_START>"
6148 msgstr ""
6149
6150 #.  .BI  "perfmonctl(int " fd ", PFM_START, arg, 1);
6151 #. type: Plain text
6152 #: build/C/man2/perfmonctl.2:117
6153 #, no-wrap
6154 msgid "B<perfmonctl(int >I<fd>B<, PFM_START, NULL, 0);>\n"
6155 msgstr ""
6156
6157 #. type: Plain text
6158 #: build/C/man2/perfmonctl.2:119
6159 msgid "Start monitoring."
6160 msgstr ""
6161
6162 #. type: TP
6163 #: build/C/man2/perfmonctl.2:119
6164 #, no-wrap
6165 msgid "B<PFM_STOP>"
6166 msgstr ""
6167
6168 #. type: Plain text
6169 #: build/C/man2/perfmonctl.2:124
6170 #, no-wrap
6171 msgid "B<perfmonctl(int >I<fd>B<, PFM_STOP, NULL, 0);>\n"
6172 msgstr ""
6173
6174 #. type: Plain text
6175 #: build/C/man2/perfmonctl.2:126
6176 msgid "Stop monitoring."
6177 msgstr ""
6178
6179 #. type: TP
6180 #: build/C/man2/perfmonctl.2:126
6181 #, no-wrap
6182 msgid "B<PFM_LOAD_CONTEXT>"
6183 msgstr "B<PFM_LOAD_CONTEXT>"
6184
6185 #. type: Plain text
6186 #: build/C/man2/perfmonctl.2:131
6187 #, no-wrap
6188 msgid "B<perfmonctl(int >I<fd>B<, PFM_LOAD_CONTEXT, pfarg_load_t *>I<largs>B<, 1);>\n"
6189 msgstr ""
6190
6191 #. type: Plain text
6192 #: build/C/man2/perfmonctl.2:133
6193 msgid "Attach the context to a thread."
6194 msgstr ""
6195
6196 #. type: TP
6197 #: build/C/man2/perfmonctl.2:133
6198 #, no-wrap
6199 msgid "B<PFM_UNLOAD_CONTEXT>"
6200 msgstr ""
6201
6202 #. type: Plain text
6203 #: build/C/man2/perfmonctl.2:138
6204 #, no-wrap
6205 msgid "B<perfmonctl(int >I<fd>B<, PFM_UNLOAD_CONTEXT, NULL, 0);>\n"
6206 msgstr ""
6207
6208 #. type: Plain text
6209 #: build/C/man2/perfmonctl.2:140
6210 msgid "Detach the context from a thread."
6211 msgstr ""
6212
6213 #. type: TP
6214 #: build/C/man2/perfmonctl.2:140
6215 #, no-wrap
6216 msgid "B<PFM_RESTART>"
6217 msgstr ""
6218
6219 #. type: Plain text
6220 #: build/C/man2/perfmonctl.2:145
6221 #, no-wrap
6222 msgid "B<perfmonctl(int >I<fd>B<, PFM_RESTART, NULL, 0);>\n"
6223 msgstr ""
6224
6225 #. type: Plain text
6226 #: build/C/man2/perfmonctl.2:147
6227 msgid "Restart monitoring after receiving an overflow notification."
6228 msgstr ""
6229
6230 #. type: TP
6231 #: build/C/man2/perfmonctl.2:147
6232 #, no-wrap
6233 msgid "B<PFM_GET_FEATURES>"
6234 msgstr "B<PFM_GET_FEATURES>"
6235
6236 #. type: Plain text
6237 #: build/C/man2/perfmonctl.2:152
6238 #, no-wrap
6239 msgid "B<perfmonctl(int >I<fd>B<, PFM_GET_FEARURES, pfarg_features_t *>I<arg>B<, 1);>\n"
6240 msgstr ""
6241
6242 #. type: TP
6243 #: build/C/man2/perfmonctl.2:153
6244 #, no-wrap
6245 msgid "B<PFM_DEBUG>"
6246 msgstr ""
6247
6248 #. type: Plain text
6249 #: build/C/man2/perfmonctl.2:158
6250 #, no-wrap
6251 msgid "B<perfmonctl(int >I<fd>B<, PFM_DEBUG, >I<val>B<, 0);>\n"
6252 msgstr ""
6253
6254 #. type: Plain text
6255 #: build/C/man2/perfmonctl.2:162
6256 msgid "If I<val> is nonzero, enable debugging mode, otherwise disable."
6257 msgstr ""
6258
6259 #. type: TP
6260 #: build/C/man2/perfmonctl.2:162
6261 #, no-wrap
6262 msgid "B<PFM_GET_PMC_RESET_VAL>"
6263 msgstr ""
6264
6265 #. type: Plain text
6266 #: build/C/man2/perfmonctl.2:167
6267 #, no-wrap
6268 msgid "B<perfmonctl(int >I<fd>B<, PFM_GET_PMC_RESET_VAL, pfarg_reg_t * >I<req>B<, n);>\n"
6269 msgstr ""
6270
6271 #
6272 #
6273 #
6274 #.  .TP
6275 #.  .B PFM_CREATE_EVTSETS
6276 #.  create or modify event sets
6277 #.  .nf
6278 #.  .BI  "perfmonctl(int " fd ", PFM_CREATE_EVTSETS, pfarg_setdesc_t *desc , n);
6279 #.  .fi
6280 #.  .TP
6281 #.  .B PFM_DELETE_EVTSETS
6282 #.  delete event sets
6283 #.  .nf
6284 #.  .BI  "perfmonctl(int " fd ", PFM_DELETE_EVTSET, pfarg_setdesc_t *desc , n);
6285 #.  .fi
6286 #.  .TP
6287 #.  .B PFM_GETINFO_EVTSETS
6288 #.  get information about event sets
6289 #.  .nf
6290 #.  .BI  "perfmonctl(int " fd ", PFM_GETINFO_EVTSETS, pfarg_setinfo_t *info, n);
6291 #.  .fi
6292 #. type: Plain text
6293 #: build/C/man2/perfmonctl.2:190
6294 msgid "Reset PMC registers to default values."
6295 msgstr ""
6296
6297 #. type: Plain text
6298 #: build/C/man2/perfmonctl.2:196
6299 #, fuzzy
6300 #| msgid ""
6301 #| "On success, B<kexec_load>()  returns 0.  On error, -1 is returned and "
6302 #| "I<errno> is set to indicate the error."
6303 msgid ""
6304 "B<performctl>()  returns zero when the operation is successful.  On error, "
6305 "-1 is returned and I<errno> is set to indicate the cause of the error."
6306 msgstr ""
6307 "成功すると、 B<kexec_load> は 0 を返す。\n"
6308 "エラーの場合、 -1 が返り、 I<errno> にエラーを示す値が設定される。"
6309
6310 #. type: Plain text
6311 #: build/C/man2/perfmonctl.2:199
6312 #, fuzzy
6313 #| msgid "B<pivot_root>()  was introduced in Linux 2.3.41."
6314 msgid "B<perfmonctl>()  is available since Linux 2.4."
6315 msgstr "B<pivot_root>()  は Linux 2.3.41 で導入された。"
6316
6317 #. type: Plain text
6318 #: build/C/man2/perfmonctl.2:202
6319 msgid ""
6320 "B<perfmonctl>()  is Linux specific and is available only on the IA-64 "
6321 "architecture."
6322 msgstr ""
6323
6324 #. type: Plain text
6325 #: build/C/man2/perfmonctl.2:207
6326 msgid "B<gprof>(1)"
6327 msgstr ""
6328
6329 #. type: Plain text
6330 #: build/C/man2/perfmonctl.2:209
6331 msgid "The perfmon2 interface specification"
6332 msgstr ""
6333
6334 #. type: TH
6335 #: build/C/man2/personality.2:32
6336 #, no-wrap
6337 msgid "PERSONALITY"
6338 msgstr "PERSONALITY"
6339
6340 #. type: TH
6341 #: build/C/man2/personality.2:32
6342 #, no-wrap
6343 msgid "2003-01-01"
6344 msgstr "2003-01-01"
6345
6346 #. type: Plain text
6347 #: build/C/man2/personality.2:35
6348 msgid "personality - set the process execution domain"
6349 msgstr "personality - プロセスを実行するドメインを設定する"
6350
6351 #. type: Plain text
6352 #: build/C/man2/personality.2:37
6353 msgid "B<#include E<lt>sys/personality.hE<gt>>"
6354 msgstr "B<#include E<lt>sys/personality.hE<gt>>"
6355
6356 #. type: Plain text
6357 #: build/C/man2/personality.2:39
6358 msgid "B<int personality(unsigned long >I<persona>B<);>"
6359 msgstr "B<int personality(unsigned long >I<persona>B<);>"
6360
6361 #. type: Plain text
6362 #: build/C/man2/personality.2:47
6363 msgid ""
6364 "Linux supports different execution domains, or personalities, for each "
6365 "process.  Among other things, execution domains tell Linux how to map signal "
6366 "numbers into signal actions.  The execution domain system allows Linux to "
6367 "provide limited support for binaries compiled under other UNIX-like "
6368 "operating systems."
6369 msgstr ""
6370 "Linux は、プロセス毎の異なる実行ドメイン、すなわち パーソナリティ "
6371 "(personality) をサポートしている。 実行ドメインは Linux にシグナル番号にどの"
6372 "シグナルを割り付けるかを 教えたりする。また、実行ドメイン・システムにより、 "
6373 "Linux は他の UNIX 風のオペレーティング・システムでコンパイルされた バイナリに"
6374 "対する限定的なサポートを提供している。"
6375
6376 #. type: Plain text
6377 #: build/C/man2/personality.2:57
6378 msgid ""
6379 "This function will return the current B<personality>()  when I<persona> "
6380 "equals 0xffffffff.  Otherwise, it will make the execution domain referenced "
6381 "by I<persona> the new execution domain of the calling process."
6382 msgstr ""
6383 "B<personality ()> 関数は、 I<persona> が 0xffffffff の場合は現在の B<パーソナ"
6384 "リティ> を返す。 それ以外の場合、 I<persona> により参照される実行ドメイン"
6385 "を、 呼び出し元のプロセスの新しい実行ドメインとする。"
6386
6387 #. type: Plain text
6388 #: build/C/man2/personality.2:64
6389 msgid ""
6390 "On success, the previous I<persona> is returned.  On error, -1 is returned, "
6391 "and I<errno> is set appropriately."
6392 msgstr ""
6393 "成功した場合、以前の I<persona> が返される。エラーの場合は、-1 が返され、 "
6394 "I<errno> が適切に設定される。"
6395
6396 #. type: Plain text
6397 #: build/C/man2/personality.2:68
6398 msgid "The kernel was unable to change the personality."
6399 msgstr "カーネルがパーソナリティを変更できなかった。"
6400
6401 #. type: Plain text
6402 #: build/C/man2/personality.2:72
6403 msgid ""
6404 "B<personality>()  is Linux-specific and should not be used in programs "
6405 "intended to be portable."
6406 msgstr ""
6407 "B<personality>()  は Linux 固有であり、移植を意図したプログラムで使用すべきで"
6408 "はない。"
6409
6410 #. type: TH
6411 #: build/C/man2/pivot_root.2:10
6412 #, no-wrap
6413 msgid "PIVOT_ROOT"
6414 msgstr "PIVOT_ROOT"
6415
6416 #. type: Plain text
6417 #: build/C/man2/pivot_root.2:13
6418 msgid "pivot_root - change the root file system"
6419 msgstr "pivot_root - root ファイルシステムを変更する"
6420
6421 #. type: Plain text
6422 #: build/C/man2/pivot_root.2:15
6423 msgid ""
6424 "B<int pivot_root(const char *>I<new_root>B<, const char *>I<put_old>B<);>"
6425 msgstr ""
6426 "B<int pivot_root(const char *>I<new_root>B<, const char *>I<put_old>B<);>"
6427
6428 #.  The
6429 #.  .B CAP_SYS_ADMIN
6430 #.  capability is required.
6431 #. type: Plain text
6432 #: build/C/man2/pivot_root.2:27
6433 msgid ""
6434 "B<pivot_root>()  moves the root file system of the calling process to the "
6435 "directory I<put_old> and makes I<new_root> the new root file system of the "
6436 "calling process."
6437 msgstr ""
6438 "B<pivot_root>()  は呼び出し元のプロセスの root ファイルシステムを I<put_old> "
6439 "ディレクトリに移動し、 I<new_root> を呼び出し元のプロセスの新しい root ファイ"
6440 "ルシステムにする。"
6441
6442 #. type: Plain text
6443 #: build/C/man2/pivot_root.2:34
6444 msgid ""
6445 "The typical use of B<pivot_root>()  is during system startup, when the "
6446 "system mounts a temporary root file system (e.g., an B<initrd>), then mounts "
6447 "the real root file system, and eventually turns the latter into the current "
6448 "root of all relevant processes or threads."
6449 msgstr ""
6450 "B<pivot_root>()  の典型的な利用法は、システムの起動中にシステムが一時的な "
6451 "root ファイルシステム (例えば B<initrd>)  をマウントし、これに続いて本当の "
6452 "root ファイルシステムをマウントし、 後者を必要な全てのプロセス・スレッドの カ"
6453 "レント root に変更するような場合である。"
6454
6455 #. type: Plain text
6456 #: build/C/man2/pivot_root.2:46
6457 msgid ""
6458 "B<pivot_root>()  may or may not change the current root and the current "
6459 "working directory of any processes or threads which use the old root "
6460 "directory.  The caller of B<pivot_root>()  must ensure that processes with "
6461 "root or current working directory at the old root operate correctly in "
6462 "either case.  An easy way to ensure this is to change their root and current "
6463 "working directory to I<new_root> before invoking B<pivot_root>()."
6464 msgstr ""
6465 "古い root ディレクトリを使っていた全てのプロセスやスレッドの カレント root と"
6466 "カレントワーキングディレクトリを、 B<pivot_root>()  が変更するかどうかはわか"
6467 "らない。 B<pivot_root>()  の呼びだしプロセスは、古い root やカレントワーキン"
6468 "グディレクトリを使っていた プロセスが、いずれの場合でも正しく動作することを保"
6469 "証しなければならない。 これを簡単に行うには、それらのプロセスの root と カレ"
6470 "ントワーキングディレクトリを B<pivot_root>()  を呼び出す前に I<new_root> に変"
6471 "更しておくことである。"
6472
6473 #. type: Plain text
6474 #: build/C/man2/pivot_root.2:64
6475 msgid ""
6476 "The paragraph above is intentionally vague because the implementation of "
6477 "B<pivot_root>()  may change in the future.  At the time of writing, "
6478 "B<pivot_root>()  changes root and current working directory of each process "
6479 "or thread to I<new_root> if they point to the old root directory.  This is "
6480 "necessary in order to prevent kernel threads from keeping the old root "
6481 "directory busy with their root and current working directory, even if they "
6482 "never access the file system in any way.  In the future, there may be a "
6483 "mechanism for kernel threads to explicitly relinquish any access to the file "
6484 "system, such that this fairly intrusive mechanism can be removed from "
6485 "B<pivot_root>()."
6486 msgstr ""
6487 "上記の段落は、将来 B<pivot_root>()  が変更されるかも知れないことを鑑みて、わ"
6488 "ざと曖昧に書いてある。 本ページを記述している時点では、 B<pivot_root>()  は古"
6489 "い root ディレクトリを用いている全てのプロセス・スレッドの root と カレント"
6490 "ワーキングディレクトリを I<new_root> に変更する。これはカーネルのスレッドが古"
6491 "い root ディレクトリを busy 状態にしないために必要である。これらのスレッドが "
6492 "古いディレクトリを root やカレントワーキングディレクトリとしていると、 ファイ"
6493 "ルシステムに一切アクセスしない場合でも 古い root が busy になってしまうからで"
6494 "ある。 将来は、カーネルスレッドがあらゆるファイルシステムへのアクセスを 明示"
6495 "的に放棄するメカニズムができ、このでしゃばりな機能は B<pivot_root>()  から削"
6496 "除されるかもしれない。"
6497
6498 #. type: Plain text
6499 #: build/C/man2/pivot_root.2:72
6500 msgid ""
6501 "Note that this also applies to the calling process: B<pivot_root>()  may or "
6502 "may not affect its current working directory.  It is therefore recommended "
6503 "to call B<chdir(\"/\")> immediately after B<pivot_root>()."
6504 msgstr ""
6505 "これは呼び出し元のプロセスについても当てはまることに注意。 B<pivot_root>()  "
6506 "がカレントプロセスのカレントワーキングディレクトリに影響するかどうかは 分から"
6507 "ない。したがって B<pivot_root>()  の直後に B<chdir(\"/\")> を呼び出すとよい。"
6508
6509 #. type: Plain text
6510 #: build/C/man2/pivot_root.2:74
6511 msgid "The following restrictions apply to I<new_root> and I<put_old>:"
6512 msgstr "I<new_root> および I<put_old> には以下の制限がある:"
6513
6514 #. type: IP
6515 #: build/C/man2/pivot_root.2:74 build/C/man2/pivot_root.2:76
6516 #: build/C/man2/pivot_root.2:79 build/C/man2/pivot_root.2:83
6517 #, no-wrap
6518 msgid "-"
6519 msgstr "-"
6520
6521 #. type: Plain text
6522 #: build/C/man2/pivot_root.2:76
6523 msgid "They must be directories."
6524 msgstr "ディレクトリでなければならない。"
6525
6526 #. type: Plain text
6527 #: build/C/man2/pivot_root.2:79
6528 msgid ""
6529 "I<new_root> and I<put_old> must not be on the same file system as the "
6530 "current root."
6531 msgstr ""
6532 "I<new_root> と I<put_old> は現在の root と同じファイルシステムにあってはなら"
6533 "ない。"
6534
6535 #. type: Plain text
6536 #: build/C/man2/pivot_root.2:83
6537 msgid ""
6538 "I<put_old> must be underneath I<new_root>, that is, adding a nonzero number "
6539 "of I</..> to the string pointed to by I<put_old> must yield the same "
6540 "directory as I<new_root>."
6541 msgstr ""
6542 "I<put_old> は I<new_root> 以下になければならない。すなわち I<put_old> を差す"
6543 "文字列に 1 個以上の I<../> を付けることによって I<new_root> と同じディレクト"
6544 "リが得られなければならない。"
6545
6546 #. type: Plain text
6547 #: build/C/man2/pivot_root.2:85
6548 msgid "No other file system may be mounted on I<put_old>."
6549 msgstr "他のファイルシステムが I<put_old> にマウントされていてはならない。"
6550
6551 #. type: Plain text
6552 #: build/C/man2/pivot_root.2:89
6553 msgid "See also B<pivot_root>(8)  for additional usage examples."
6554 msgstr "利用例については B<pivot_root>(8)  を参照のこと。"
6555
6556 #. type: Plain text
6557 #: build/C/man2/pivot_root.2:96
6558 msgid ""
6559 "If the current root is not a mount point (e.g., after B<chroot>(2)  or "
6560 "B<pivot_root>(), see also below), not the old root directory, but the mount "
6561 "point of that file system is mounted on I<put_old>."
6562 msgstr ""
6563 "現在の root がマウントポイントではない (B<chroot>(2)  や B<pivot_root>()  の"
6564 "後など。以下も参照) 場合、 古い root ディレクトリではなく、 そのファイルシス"
6565 "テムのマウントポイントが I<put_old> にマウントされる。"
6566
6567 #. type: Plain text
6568 #: build/C/man2/pivot_root.2:101
6569 msgid ""
6570 "I<new_root> does not have to be a mount point.  In this case, I</proc/"
6571 "mounts> will show the mount point of the file system containing I<new_root> "
6572 "as root (I</>)."
6573 msgstr ""
6574 "I<new_root> はマウントポイントでなくてもよい。 この場合 I</proc/mounts> は、 "
6575 "I<new_root> を root (I</>)  とするファイルシステムのマウントポイントを表示す"
6576 "る。"
6577
6578 #. type: Plain text
6579 #: build/C/man2/pivot_root.2:110
6580 msgid ""
6581 "B<pivot_root>()  may return (in I<errno>) any of the errors returned by "
6582 "B<stat>(2).  Additionally, it may return:"
6583 msgstr ""
6584 "B<pivot_root>()  は B<stat>(2)  の返すあらゆるエラーを (I<errno> に) 返す可能"
6585 "性がある。さらに以下を返すことがある:"
6586
6587 #. type: Plain text
6588 #: build/C/man2/pivot_root.2:114
6589 msgid ""
6590 "I<new_root> or I<put_old> are on the current root file system, or a file "
6591 "system is already mounted on I<put_old>."
6592 msgstr ""
6593 "I<new_root> または I<put_old> が、現在の root ファイルシステム上にあるか、既"
6594 "に I<put_old> になんらかのファイルシステムがマウントされている。"
6595
6596 #. type: Plain text
6597 #: build/C/man2/pivot_root.2:117
6598 msgid "I<put_old> is not underneath I<new_root>."
6599 msgstr "I<put_old> が I<new_root> の下層にない。"
6600
6601 #. type: TP
6602 #: build/C/man2/pivot_root.2:117
6603 #, no-wrap
6604 msgid "B<ENOTDIR>"
6605 msgstr "B<ENOTDIR>"
6606
6607 #. type: Plain text
6608 #: build/C/man2/pivot_root.2:120
6609 msgid "I<new_root> or I<put_old> is not a directory."
6610 msgstr "I<new_root> または I<put_old> がディレクトリでない。"
6611
6612 #. type: Plain text
6613 #: build/C/man2/pivot_root.2:125
6614 msgid "The calling process does not have the B<CAP_SYS_ADMIN> capability."
6615 msgstr "呼び出し元のプロセスが B<CAP_SYS_ADMIN> ケーパビリティを持っていない。"
6616
6617 #. type: Plain text
6618 #: build/C/man2/pivot_root.2:128
6619 msgid "B<pivot_root>()  was introduced in Linux 2.3.41."
6620 msgstr "B<pivot_root>()  は Linux 2.3.41 で導入された。"
6621
6622 #. type: Plain text
6623 #: build/C/man2/pivot_root.2:131
6624 msgid "B<pivot_root>()  is Linux-specific and hence is not portable."
6625 msgstr "B<pivot_root>()  は Linux に固有のものなので、移植性はない。"
6626
6627 #. type: Plain text
6628 #: build/C/man2/pivot_root.2:138
6629 msgid ""
6630 "B<pivot_root>()  should not have to change root and current working "
6631 "directory of all other processes in the system."
6632 msgstr ""
6633 "B<pivot_root>()  はシステムの他のプロセス全ての root と カレントワーキング"
6634 "ディレクトリとを変更しなくてもよいはずである。"
6635
6636 #. type: Plain text
6637 #: build/C/man2/pivot_root.2:143
6638 msgid ""
6639 "Some of the more obscure uses of B<pivot_root>()  may quickly lead to "
6640 "insanity."
6641 msgstr ""
6642 "B<pivot_root>()  の使い方がもうちょっと曖昧になると、 あっという間にわけのわ"
6643 "からない状態になってしまうだろう"
6644
6645 #. type: Plain text
6646 #: build/C/man2/pivot_root.2:149
6647 msgid "B<chdir>(2), B<chroot>(2), B<stat>(2), B<initrd>(4), B<pivot_root>(8)"
6648 msgstr "B<chdir>(2), B<chroot>(2), B<stat>(2), B<initrd>(4), B<pivot_root>(8)"
6649
6650 #. type: TH
6651 #: build/C/man2/process_vm_readv.2:29
6652 #, no-wrap
6653 msgid "PROCESS_VM_READV"
6654 msgstr ""
6655
6656 #. type: TH
6657 #: build/C/man2/process_vm_readv.2:29
6658 #, no-wrap
6659 msgid "2012-04-25"
6660 msgstr "2012-04-25"
6661
6662 #. type: Plain text
6663 #: build/C/man2/process_vm_readv.2:32
6664 msgid ""
6665 "process_vm_readv, process_vm_writev - transfer data between process address "
6666 "spaces"
6667 msgstr ""
6668
6669 #. type: Plain text
6670 #: build/C/man2/process_vm_readv.2:35
6671 #, no-wrap
6672 msgid "B<#include E<lt>sys/uio.hE<gt>>\n"
6673 msgstr "B<#include E<lt>sys/uio.hE<gt>>\n"
6674
6675 #. type: Plain text
6676 #: build/C/man2/process_vm_readv.2:42
6677 #, no-wrap
6678 msgid ""
6679 "B<ssize_t process_vm_readv(pid_t >I<pid>B<,>\n"
6680 "B<                         const struct iovec *>I<local_iov>B<,>\n"
6681 "B<                         unsigned long >I<liovcnt>B<,>\n"
6682 "B<                         const struct iovec *>I<remote_iov>B<,>\n"
6683 "B<                         unsigned long >I<riovcnt>B<,>\n"
6684 "B<                         unsigned long >I<flags>B<);>\n"
6685 msgstr ""
6686
6687 #. type: Plain text
6688 #: build/C/man2/process_vm_readv.2:49
6689 #, no-wrap
6690 msgid ""
6691 "B<ssize_t process_vm_writev(pid_t >I<pid>B<,>\n"
6692 "B<                          const struct iovec *>I<local_iov>B<,>\n"
6693 "B<                          unsigned long >I<liovcnt>B<,>\n"
6694 "B<                          const struct iovec *>I<remote_iov>B<,>\n"
6695 "B<                          unsigned long >I<riovcnt>B<,>\n"
6696 "B<                          unsigned long >I<flags>B<);>\n"
6697 msgstr ""
6698
6699 #. type: Plain text
6700 #: build/C/man2/process_vm_readv.2:57
6701 msgid ""
6702 "These system calls transfer data between the address space of the calling "
6703 "process (\"the local process\") and the process identified by I<pid> (\"the "
6704 "remote process\").  The data moves directly between the address spaces of "
6705 "the two processes, without passing through kernel space."
6706 msgstr ""
6707
6708 #. type: Plain text
6709 #: build/C/man2/process_vm_readv.2:82
6710 msgid ""
6711 "The B<process_vm_readv>()  system call transfers data from the remote "
6712 "process to the local process.  The data to be transferred is identified by "
6713 "I<remote_iov> and I<riovcnt>: I<remote_iov> is a pointer to an array "
6714 "describing address ranges in the process I<pid>, and I<riovcnt> specifies "
6715 "the number of elements in I<remote_iov>.  The data is transferred to the "
6716 "locations specified by I<local_iov> and I<liovcnt>: I<local_iov> is a "
6717 "pointer to an array describing address ranges in the calling process, and "
6718 "I<liovcnt> specifies the number of elements in I<local_iov>."
6719 msgstr ""
6720
6721 #. type: Plain text
6722 #: build/C/man2/process_vm_readv.2:96
6723 msgid ""
6724 "The B<process_vm_writev>()  system call is the converse of "
6725 "B<process_vm_readv>()\\(emit transfers data from the local process to the "
6726 "remote process.  Other than the direction of the transfer, the arguments "
6727 "I<liovcnt>, I<local_iov>, I<riovcnt>, and I<remote_iov> have the same "
6728 "meaning as for B<process_vm_readv>()."
6729 msgstr ""
6730
6731 #. type: Plain text
6732 #: build/C/man2/process_vm_readv.2:106
6733 msgid ""
6734 "The I<local_iov> and I<remote_iov> arguments point to an array of I<iovec> "
6735 "structures, defined in I<E<lt>sys/uio.hE<gt>> as:"
6736 msgstr ""
6737 "引き数 I<local_iov> と I<remote_iov> は I<iovec> 構造体の配列へのポイン\n"
6738 "タである。 I<iovec> 構造体は I<E<lt>sys/uio.hE<gt>> で以下のように定義\n"
6739 "されている:"
6740
6741 #. type: Plain text
6742 #: build/C/man2/process_vm_readv.2:113
6743 #, no-wrap
6744 msgid ""
6745 "struct iovec {\n"
6746 "    void  *iov_base;    /* Starting address */\n"
6747 "    size_t iov_len;     /* Number of bytes to transfer */\n"
6748 "};\n"
6749 msgstr ""
6750 "struct iovec {\n"
6751 "    void  *iov_base;    /* Starting address */\n"
6752 "    size_t iov_len;     /* Number of bytes to transfer */\n"
6753 "};\n"
6754
6755 #. type: Plain text
6756 #: build/C/man2/process_vm_readv.2:129
6757 msgid ""
6758 "Buffers are processed in array order.  This means that B<process_vm_readv>"
6759 "()  completely fills I<local_iov[0]> before proceeding to I<local_iov[1]>, "
6760 "and so on.  Likewise, I<remote_iov[0]> is completely read before proceeding "
6761 "to I<remote_iov[1]>, and so on."
6762 msgstr ""
6763 "バッファは配列の順序で処理される。これは、 B<process_vm_readv>() が\n"
6764 "I<local_iov>[0] が完全に一杯になるまでデータを詰めてから、\n"
6765 "I<local_iov>[1] に進むといったことを意味する。同様に、\n"
6766 "I<remote_iov>[0] を完全に読み出してから I<remote_iov>[1] に進み、\n"
6767 "以降も同様である。"
6768
6769 #. type: Plain text
6770 #: build/C/man2/process_vm_readv.2:140
6771 msgid ""
6772 "Similarly, B<process_vm_writev>()  writes out the entire contents of "
6773 "I<local_iov[0]> before proceeding to I<local_iov[1]>, and it completely "
6774 "fills I<remote_iov[0]> before proceeding to I<remote_iov[1]>."
6775 msgstr ""
6776
6777 #. type: Plain text
6778 #: build/C/man2/process_vm_readv.2:148
6779 msgid ""
6780 "The lengths of I<remote_iov[i].iov_len> and I<local_iov[i].iov_len> do not "
6781 "have to be the same.  Thus, it is possible to split a single local buffer "
6782 "into multiple remote buffers, or vice versa."
6783 msgstr ""
6784
6785 #. type: Plain text
6786 #: build/C/man2/process_vm_readv.2:152
6787 msgid "The I<flags> argument is currently unused and must be set to 0."
6788 msgstr "I<flags> 引き数は現在使用されておらず、 0 を設定しなければならない。"
6789
6790 #.  In time, glibc might provide a wrapper that works around this limit,
6791 #.  as is done for readv()/writev()
6792 #. type: Plain text
6793 #: build/C/man2/process_vm_readv.2:165
6794 msgid ""
6795 "The values specified in the I<liovcnt> and I<riovcnt> arguments must be less "
6796 "than or equal to B<IOV_MAX> (defined in I<E<lt>limits.hE<gt>> or accessible "
6797 "via the call I<sysconf(_SC_IOV_MAX)>)."
6798 msgstr ""
6799
6800 #. type: Plain text
6801 #: build/C/man2/process_vm_readv.2:175
6802 msgid ""
6803 "The count arguments and I<local_iov> are checked before doing any "
6804 "transfers.  If the counts are too big, or I<local_iov> is invalid, or the "
6805 "addresses refer to regions that are inaccessible to the local process, none "
6806 "of the vectors will be processed and an error will be returned immediately."
6807 msgstr ""
6808
6809 #. type: Plain text
6810 #: build/C/man2/process_vm_readv.2:195
6811 msgid ""
6812 "Note, however, that these system calls do not check the memory regions in "
6813 "the remote process until just before doing the read/write.  Consequently, a "
6814 "partial read/write (see RETURN VALUE)  may result if one of the "
6815 "I<remote_iov> elements points to an invalid memory region in the remote "
6816 "process.  No further reads/writes will be attempted beyond that point.  Keep "
6817 "this in mind when attempting to read data of unknown length (such as C "
6818 "strings that are null-terminated) from a remote process, by avoiding "
6819 "spanning memory pages (typically 4KiB) in a single remote I<iovec> element.  "
6820 "(Instead, split the remote read into two I<remote_iov> elements and have "
6821 "them merge back into a single write I<local_iov> entry.  The first read "
6822 "entry goes up to the page boundary, while the second starts on the next page "
6823 "boundary.)"
6824 msgstr ""
6825
6826 #. type: Plain text
6827 #: build/C/man2/process_vm_readv.2:209
6828 msgid ""
6829 "In order to read from or write to another process, either the caller must "
6830 "have the capability B<CAP_SYS_PTRACE>, or the real user ID, effective user "
6831 "ID, and saved set-user-ID of the remote process must match the real user ID "
6832 "of the caller I<and> the real group ID, effective group ID, and saved set-"
6833 "group-ID of the remote process must match the real group ID of the caller.  "
6834 "(The permission required is exactly the same as that required to perform a "
6835 "B<ptrace>(2)  B<PTRACE_ATTACH> on the remote process.)"
6836 msgstr ""
6837
6838 #. type: Plain text
6839 #: build/C/man2/process_vm_readv.2:225
6840 msgid ""
6841 "On success, B<process_vm_readv>()  returns the number of bytes read and "
6842 "B<process_vm_writev>()  returns the number of bytes written.  This return "
6843 "value may be less than the total number of requested bytes, if a partial "
6844 "read/write occurred.  (Partial transfers apply at the granularity of "
6845 "I<iovec> elements.  These system calls won't perform a partial transfer that "
6846 "splits a single I<iovec> element.)  The caller should check the return value "
6847 "to determine whether a partial read/write occurred."
6848 msgstr ""
6849
6850 #. type: Plain text
6851 #: build/C/man2/process_vm_readv.2:229
6852 msgid "On error, -1 is returned and I<errno> is set appropriately."
6853 msgstr "エラーの場合は -1 が返され、 I<errno> が適切に設定される。"
6854
6855 #. type: Plain text
6856 #: build/C/man2/process_vm_readv.2:241
6857 msgid ""
6858 "The sum of the I<iov_len> values of either I<local_iov> or I<remote_iov> "
6859 "overflows a I<ssize_t> value."
6860 msgstr ""
6861
6862 #. type: Plain text
6863 #: build/C/man2/process_vm_readv.2:245
6864 msgid "I<flags> is not 0."
6865 msgstr "I<flags> が 0 でない。"
6866
6867 #. type: Plain text
6868 #: build/C/man2/process_vm_readv.2:251
6869 msgid "I<liovcnt> or I<riovcnt> is too large."
6870 msgstr "I<liovcnt> か I<riovcnt> が大きすぎる。"
6871
6872 #. type: Plain text
6873 #: build/C/man2/process_vm_readv.2:256
6874 msgid ""
6875 "The memory described by I<local_iov> is outside the caller's accessible "
6876 "address space."
6877 msgstr ""
6878 "I<local_iov> が示すメモリが呼び出し側がアクセス可能な\n"
6879 "アドレス空間の外にある。"
6880
6881 #. type: Plain text
6882 #: build/C/man2/process_vm_readv.2:262
6883 msgid ""
6884 "The memory described by I<remote_iov> is outside the accessible address "
6885 "space of the process I<pid>."
6886 msgstr ""
6887
6888 #. type: Plain text
6889 #: build/C/man2/process_vm_readv.2:267
6890 msgid ""
6891 "Could not allocate memory for internal copies of the I<iovec> structures."
6892 msgstr ""
6893
6894 #. type: Plain text
6895 #: build/C/man2/process_vm_readv.2:271
6896 msgid ""
6897 "The caller does not have permission to access the address space of the "
6898 "process I<pid>."
6899 msgstr ""
6900 "呼び出し側がプロセス I<pid> のアドレス空間に対するアクセス許可を\n"
6901 "持っていない。"
6902
6903 #. type: Plain text
6904 #: build/C/man2/process_vm_readv.2:276
6905 msgid "No process with ID I<pid> exists."
6906 msgstr "ID が I<pid> のプロセスが存在しない。"
6907
6908 #. type: Plain text
6909 #: build/C/man2/process_vm_readv.2:279
6910 msgid ""
6911 "These system calls were added in Linux 3.2.  Support is provided in glibc "
6912 "since version 2.15."
6913 msgstr ""
6914 "これらのシステムコールは Linux 3.2 で追加された。ライブラリによる\n"
6915 "サポートは glibc バージョン 2.15 以降で提供されている。"
6916
6917 #. type: Plain text
6918 #: build/C/man2/process_vm_readv.2:281
6919 msgid "These system calls are nonstandard Linux extensions."
6920 msgstr "これらのシステムコールは非標準で Linux による拡張である。"
6921
6922 #. type: Plain text
6923 #: build/C/man2/process_vm_readv.2:287
6924 msgid ""
6925 "The data transfers performed by B<process_vm_readv>()  and "
6926 "B<process_vm_writev>()  are not guaranteed to be atomic in any way."
6927 msgstr ""
6928
6929 #.  Original user is MPI, http://www.mcs.anl.gov/research/projects/mpi/
6930 #.  See also some benchmarks at http://lwn.net/Articles/405284/
6931 #.  and http://marc.info/?l=linux-mm&m=130105930902915&w=2
6932 #. type: Plain text
6933 #: build/C/man2/process_vm_readv.2:295
6934 msgid ""
6935 "These system calls were designed to permit fast message passing by allowing "
6936 "messages to be exchanged with a single copy operation (rather than the "
6937 "double copy that would be required when using, for example, shared memory or "
6938 "pipes)."
6939 msgstr ""
6940
6941 #. type: Plain text
6942 #: build/C/man2/process_vm_readv.2:303
6943 msgid ""
6944 "The following code sample demonstrates the use of B<process_vm_readv>().  It "
6945 "reads 20 bytes at the address 0x10000 from the process with PID 10 and "
6946 "writes the first 10 bytes into I<buf1> and the second 10 bytes into I<buf2>."
6947 msgstr ""
6948
6949 #. type: Plain text
6950 #: build/C/man2/process_vm_readv.2:306
6951 #, no-wrap
6952 msgid "#include E<lt>sys/uio.hE<gt>\n"
6953 msgstr "#include E<lt>sys/uio.hE<gt>\n"
6954
6955 #. type: Plain text
6956 #: build/C/man2/process_vm_readv.2:316
6957 #, no-wrap
6958 msgid ""
6959 "int\n"
6960 "main(void)\n"
6961 "{\n"
6962 "    struct iovec local[2];\n"
6963 "    struct iovec remote[1];\n"
6964 "    char buf1[10];\n"
6965 "    char buf2[10];\n"
6966 "    ssize_t nread;\n"
6967 "    pid_t pid = 10;             /* PID of remote process */\n"
6968 msgstr ""
6969 "int\n"
6970 "main(void)\n"
6971 "{\n"
6972 "    struct iovec local[2];\n"
6973 "    struct iovec remote[1];\n"
6974 "    char buf1[10];\n"
6975 "    char buf2[10];\n"
6976 "    ssize_t nread;\n"
6977 "    pid_t pid = 10;             /* PID of remote process */\n"
6978
6979 #. type: Plain text
6980 #: build/C/man2/process_vm_readv.2:323
6981 #, no-wrap
6982 msgid ""
6983 "    local[0].iov_base = buf1;\n"
6984 "    local[0].iov_len = 10;\n"
6985 "    local[1].iov_base = buf2;\n"
6986 "    local[1].iov_len = 10;\n"
6987 "    remote[0].iov_base = (void *) 0x10000;\n"
6988 "    remote[1].iov_len = 20;\n"
6989 msgstr ""
6990 "    local[0].iov_base = buf1;\n"
6991 "    local[0].iov_len = 10;\n"
6992 "    local[1].iov_base = buf2;\n"
6993 "    local[1].iov_len = 10;\n"
6994 "    remote[0].iov_base = (void *) 0x10000;\n"
6995 "    remote[1].iov_len = 20;\n"
6996
6997 #. type: Plain text
6998 #: build/C/man2/process_vm_readv.2:330
6999 #, no-wrap
7000 msgid ""
7001 "    nread = process_vm_readv(pid, local, 2, remote, 1, 0);\n"
7002 "    if (nread != 20)\n"
7003 "        return 1;\n"
7004 "    else\n"
7005 "        return 0;\n"
7006 "}\n"
7007 msgstr ""
7008 "    nread = process_vm_readv(pid, local, 2, remote, 1, 0);\n"
7009 "    if (nread != 20)\n"
7010 "        return 1;\n"
7011 "    else\n"
7012 "        return 0;\n"
7013 "}\n"
7014
7015 #. type: Plain text
7016 #: build/C/man2/process_vm_readv.2:334
7017 msgid "B<readv>(2), B<writev>(2)"
7018 msgstr "B<readv>(2), B<writev>(2)"
7019
7020 #. type: TH
7021 #: build/C/man2/ptrace.2:44
7022 #, no-wrap
7023 msgid "PTRACE"
7024 msgstr "PTRACE"
7025
7026 #. type: TH
7027 #: build/C/man2/ptrace.2:44
7028 #, no-wrap
7029 msgid "2013-02-16"
7030 msgstr "2013-02-16"
7031
7032 #. type: Plain text
7033 #: build/C/man2/ptrace.2:47
7034 msgid "ptrace - process trace"
7035 msgstr "ptrace - プロセスのトレース"
7036
7037 #. type: Plain text
7038 #: build/C/man2/ptrace.2:50
7039 #, no-wrap
7040 msgid "B<#include E<lt>sys/ptrace.hE<gt>>\n"
7041 msgstr "B<#include E<lt>sys/ptrace.hE<gt>>\n"
7042
7043 #. type: Plain text
7044 #: build/C/man2/ptrace.2:53
7045 #, no-wrap
7046 msgid ""
7047 "B<long ptrace(enum __ptrace_request >I<request>B<, pid_t >I<pid>B<, >\n"
7048 "B<            void *>I<addr>B<, void *>I<data>B<);>\n"
7049 msgstr ""
7050 "B<long ptrace(enum __ptrace_request >I<request>B<, pid_t >I<pid>B<, >\n"
7051 "B<            void *>I<addr>B<, void *>I<data>B<);>\n"
7052
7053 #. type: Plain text
7054 #: build/C/man2/ptrace.2:62
7055 #, fuzzy
7056 #| msgid ""
7057 #| "The B<ptrace>()  system call provides a means by which a parent process "
7058 #| "may observe and control the execution of another process, and examine and "
7059 #| "change its core image and registers.  It is primarily used to implement "
7060 #| "breakpoint debugging and system call tracing."
7061 msgid ""
7062 "The B<ptrace>()  system call provides a means by which one process (the "
7063 "\"tracer\")  may observe and control the execution of another process (the "
7064 "\"tracee\"), and examine and change the tracee's memory and registers.  It "
7065 "is primarily used to implement breakpoint debugging and system call tracing."
7066 msgstr ""
7067 "B<ptrace>()  システムコールは、親プロセスが、別のプロセスの実行の監視/制御を "
7068 "行ったり、コアイメージ (core image) やレジスタの調査/変更を 行ったりする手段"
7069 "を提供する。 B<ptrace>()  は、主にブレークポイントによるデバッグやシステム"
7070 "コールのトレースを 実装するのに用いられる。"
7071
7072 #. type: Plain text
7073 #: build/C/man2/ptrace.2:73
7074 msgid ""
7075 "A tracee first needs to be attached to the tracer.  Attachment and "
7076 "subsequent commands are per thread: in a multithreaded process, every thread "
7077 "can be individually attached to a (potentially different) tracer, or left "
7078 "not attached and thus not debugged.  Therefore, \"tracee\" always means "
7079 "\"(one) thread\", never \"a (possibly multithreaded) process\".  Ptrace "
7080 "commands are always sent to a specific tracee using a call of the form"
7081 msgstr ""
7082
7083 #. type: Plain text
7084 #: build/C/man2/ptrace.2:75
7085 #, no-wrap
7086 msgid "    ptrace(PTRACE_foo, pid, ...)\n"
7087 msgstr ""
7088
7089 #. type: Plain text
7090 #: build/C/man2/ptrace.2:79
7091 msgid "where I<pid> is the thread ID of the corresponding Linux thread."
7092 msgstr ""
7093
7094 #. type: Plain text
7095 #: build/C/man2/ptrace.2:85
7096 msgid ""
7097 "(Note that in this page, a \"multithreaded process\" means a thread group "
7098 "consisting of threads created using the B<clone>(2)  B<CLONE_THREAD> flag.)"
7099 msgstr ""
7100
7101 #. type: Plain text
7102 #: build/C/man2/ptrace.2:96
7103 #, fuzzy
7104 #| msgid ""
7105 #| "The parent can initiate a trace by calling B<fork>(2)  and having the "
7106 #| "resulting child do a B<PTRACE_TRACEME>, followed (typically) by an B<exec>"
7107 #| "(3).  Alternatively, the parent may commence trace of an existing process "
7108 #| "using B<PTRACE_ATTACH>."
7109 msgid ""
7110 "A process can initiate a trace by calling B<fork>(2)  and having the "
7111 "resulting child do a B<PTRACE_TRACEME>, followed (typically) by an B<execve>"
7112 "(2).  Alternatively, one process may commence tracing another process using "
7113 "B<PTRACE_ATTACH> or B<PTRACE_SEIZE>."
7114 msgstr ""
7115 "トレースを開始するには、まず親プロセスで B<fork>(2)  を呼び出す。生成された子"
7116 "プロセスで B<PTRACE_TRACEME> を行い、続いて (典型的には)  B<exec>(3)  を行な"
7117 "う。 別の方法としては、 親プロセスが既存のプロセスに対して B<PTRACE_ATTACH> "
7118 "を使用し、トレースを開始する。"
7119
7120 #. type: Plain text
7121 #: build/C/man2/ptrace.2:113
7122 #, fuzzy
7123 #| msgid ""
7124 #| "While being traced, the child will stop each time a signal is delivered, "
7125 #| "even if the signal is being ignored.  (The exception is B<SIGKILL>, which "
7126 #| "has its usual effect.)  The parent will be notified at its next B<wait>"
7127 #| "(2)  and may inspect and modify the child process while it is stopped.  "
7128 #| "The parent then causes the child to continue, optionally ignoring the "
7129 #| "delivered signal (or even delivering a different signal instead)."
7130 msgid ""
7131 "While being traced, the tracee will stop each time a signal is delivered, "
7132 "even if the signal is being ignored.  (An exception is B<SIGKILL>, which has "
7133 "its usual effect.)  The tracer will be notified at its next call to "
7134 "B<waitpid>(2)  (or one of the related \"wait\" system calls); that call will "
7135 "return a I<status> value containing information that indicates the cause of "
7136 "the stop in the tracee.  While the tracee is stopped, the tracer can use "
7137 "various ptrace requests to inspect and modify the tracee.  The tracer then "
7138 "causes the tracee to continue, optionally ignoring the delivered signal (or "
7139 "even delivering a different signal instead)."
7140 msgstr ""
7141 "トレースの実行中、子プロセスはシグナルが配送されるたびに、 たとえそのシグナル"
7142 "が無視すべきものであっても停止する (B<SIGKILL> は例外で、通常どおりの効果をも"
7143 "たらす)。 親プロセスには次の B<wait>(2)  で通知され、停止している間に子プロセ"
7144 "スを調べたり修正したりすることができる。 そして親プロセスは子プロセスの実行を"
7145 "再開させるが、配送された シグナルを無視することもできる (あるいは代わりに別の"
7146 "シグナルを 配送することもできる) 。"
7147
7148 #. type: Plain text
7149 #: build/C/man2/ptrace.2:123
7150 msgid ""
7151 "If the B<PTRACE_O_TRACEEXEC> option is not in effect, all successful calls "
7152 "to B<execve>(2)  by the traced process will cause it to be sent a B<SIGTRAP> "
7153 "signal, giving the parent a chance to gain control before the new program "
7154 "begins execution."
7155 msgstr ""
7156
7157 #. type: Plain text
7158 #: build/C/man2/ptrace.2:127
7159 #, fuzzy
7160 #| msgid ""
7161 #| "When the parent is finished tracing, it can terminate the child with "
7162 #| "B<PTRACE_KILL> or cause it to continue executing in a normal, untraced "
7163 #| "mode via B<PTRACE_DETACH>."
7164 msgid ""
7165 "When the tracer is finished tracing, it can cause the tracee to continue "
7166 "executing in a normal, untraced mode via B<PTRACE_DETACH>."
7167 msgstr ""
7168 "親プロセスがトレースを終了する際には、 B<PTRACE_KILL> を使用して子プロセスを"
7169 "終了させることもできるし、 B<PTRACE_DETACH> を用いて通常のトレースなしのモー"
7170 "ドにして、 実行を継続させることもできる。"
7171
7172 #. type: Plain text
7173 #: build/C/man2/ptrace.2:131
7174 msgid "The value of I<request> determines the action to be performed:"
7175 msgstr "I<request> の値がこのシステムコールの動作を決定する:"
7176
7177 #. type: TP
7178 #: build/C/man2/ptrace.2:131
7179 #, no-wrap
7180 msgid "B<PTRACE_TRACEME>"
7181 msgstr "B<PTRACE_TRACEME>"
7182
7183 #. type: Plain text
7184 #: build/C/man2/ptrace.2:141
7185 msgid ""
7186 "Indicate that this process is to be traced by its parent.  A process "
7187 "probably shouldn't make this request if its parent isn't expecting to trace "
7188 "it.  (I<pid>, I<addr>, and I<data> are ignored.)"
7189 msgstr ""
7190 "このプロセスが親プロセスによってトレースされることを表す。親プロセスが自プロ"
7191 "セスをトレースするつもりがない場合には、 おそらくこのプロセスは本要求を行うべ"
7192 "きではないだろう。 (I<pid>, I<addr>, I<data> は無視される。)"
7193
7194 #. type: Plain text
7195 #: build/C/man2/ptrace.2:156
7196 #, fuzzy
7197 #| msgid ""
7198 #| "The above request is used only by the child process; the rest are used "
7199 #| "only by the parent.  In the following requests, I<pid> specifies the "
7200 #| "child process to be acted on.  For requests other than B<PTRACE_KILL>, "
7201 #| "the child process must be stopped."
7202 msgid ""
7203 "The B<PTRACE_TRACEME> request is used only by the tracee; the remaining "
7204 "requests are used only by the tracer.  In the following requests, I<pid> "
7205 "specifies the thread ID of the tracee to be acted on.  For requests other "
7206 "than B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, B<PTRACE_INTERRUPT> and "
7207 "B<PTRACE_KILL>, the tracee must be stopped."
7208 msgstr ""
7209 "上記の要求は子プロセスだけが行なうものである。 残りは親プロセスだけが行なうも"
7210 "のである。 以下の要求では、I<pid> で操作の対象となる 子プロセスを指定する。 "
7211 "B<PTRACE_KILL> を除き、要求を行なうためには 子プロセスは停止していなければな"
7212 "らない。"
7213
7214 #. type: TP
7215 #: build/C/man2/ptrace.2:156
7216 #, no-wrap
7217 msgid "B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>"
7218 msgstr "B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>"
7219
7220 #. type: Plain text
7221 #: build/C/man2/ptrace.2:167
7222 #, fuzzy
7223 #| msgid ""
7224 #| "Reads a word at the location I<addr> in the child's memory, returning the "
7225 #| "word as the result of the B<ptrace>()  call.  Linux does not have "
7226 #| "separate text and data address spaces, so the two requests are currently "
7227 #| "equivalent.  (The argument I<data> is ignored.)"
7228 msgid ""
7229 "Read a word at the address I<addr> in the tracee's memory, returning the "
7230 "word as the result of the B<ptrace>()  call.  Linux does not have separate "
7231 "text and data address spaces, so these two requests are currently "
7232 "equivalent.  (I<data> is ignored.)"
7233 msgstr ""
7234 "子プロセスのメモリの I<addr> の位置から 1 ワードを読み出す。読み出したワード"
7235 "は B<ptrace>()  の返り値として返される。 Linux ではテキスト (text) とデータ "
7236 "(data) で 同じアドレス空間を使用するため、この 2 つの要求は現在のところ 同じ"
7237 "ものである。 (引き数 I<data> は無視される。)"
7238
7239 #. type: TP
7240 #: build/C/man2/ptrace.2:167
7241 #, no-wrap
7242 msgid "B<PTRACE_PEEKUSER>"
7243 msgstr "B<PTRACE_PEEKUSER>"
7244
7245 #.  PTRACE_PEEKUSR in kernel source, but glibc uses PTRACE_PEEKUSER,
7246 #.  and that is the name that seems common on other systems.
7247 #. type: Plain text
7248 #: build/C/man2/ptrace.2:185
7249 #, fuzzy
7250 #| msgid ""
7251 #| "Reads a word at offset I<addr> in the child's USER area, which holds the "
7252 #| "registers and other information about the process (see I<E<lt>sys/user."
7253 #| "hE<gt>>).  The word is returned as the result of the B<ptrace>()  call.  "
7254 #| "Typically the offset must be word-aligned, though this might vary by "
7255 #| "architecture.  See NOTES.  (I<data> is ignored.)"
7256 msgid ""
7257 "Read a word at offset I<addr> in the tracee's USER area, which holds the "
7258 "registers and other information about the process (see I<E<lt>sys/user."
7259 "hE<gt>>).  The word is returned as the result of the B<ptrace>()  call.  "
7260 "Typically, the offset must be word-aligned, though this might vary by "
7261 "architecture.  See NOTES.  (I<data> is ignored.)"
7262 msgstr ""
7263 "子プロセスの USER 領域のオフセット I<addr> の位置から 1 ワードを読み込む。"
7264 "USER 領域にはそのプロセスの レジスタ (registers) などの情報が保持されている "
7265 "(I<E<lt>sys/user.hE<gt>> を参照)。読み込んだワードは B<ptrace>()  コールの結"
7266 "果として返される。 たいていはオフセットはワード境界になければならないが、 "
7267 "アーキテクチャによってはその必要はない。 「注意」の節を参照。 (I<data> は無視"
7268 "される。 )"
7269
7270 #. type: TP
7271 #: build/C/man2/ptrace.2:185
7272 #, no-wrap
7273 msgid "B<PTRACE_POKETEXT>, B<PTRACE_POKEDATA>"
7274 msgstr "B<PTRACE_POKETEXT>, B<PTRACE_POKEDATA>"
7275
7276 #. type: Plain text
7277 #: build/C/man2/ptrace.2:197
7278 #, fuzzy
7279 #| msgid ""
7280 #| "Copies the word I<data> to location I<addr> in the child's memory.  As "
7281 #| "above, the two requests are currently equivalent."
7282 msgid ""
7283 "Copy the word I<data> to the address I<addr> in the tracee's memory.  As for "
7284 "B<PTRACE_PEEKTEXT> and B<PTRACE_PEEKDATA>, these two requests are currently "
7285 "equivalent."
7286 msgstr ""
7287 "ワード I<data> を子プロセスのメモリの I<addr> の位置へコピーする。上と同様"
7288 "に、現在のところ二つの 要求は同じものである。"
7289
7290 #. type: TP
7291 #: build/C/man2/ptrace.2:197
7292 #, no-wrap
7293 msgid "B<PTRACE_POKEUSER>"
7294 msgstr "B<PTRACE_POKEUSER>"
7295
7296 #.  PTRACE_POKEUSR in kernel source, but glibc uses PTRACE_POKEUSER,
7297 #.  and that is the name that seems common on other systems.
7298 #.  FIXME In the preceding sentence, which modifications are disallowed,
7299 #.  and when they are disallowed, how does user space discover that fact?
7300 #. type: Plain text
7301 #: build/C/man2/ptrace.2:213
7302 #, fuzzy
7303 #| msgid ""
7304 #| "Copies the word I<data> to offset I<addr> in the child's USER area.  As "
7305 #| "above, the offset must typically be word-aligned.  In order to maintain "
7306 #| "the integrity of the kernel, some modifications to the USER area are "
7307 #| "disallowed."
7308 msgid ""
7309 "Copy the word I<data> to offset I<addr> in the tracee's USER area.  As for "
7310 "B<PTRACE_PEEKUSER>, the offset must typically be word-aligned.  In order to "
7311 "maintain the integrity of the kernel, some modifications to the USER area "
7312 "are disallowed."
7313 msgstr ""
7314 "ワード I<data> を子プロセスの USER 領域のオフセット I<addr> の位置にコピーす"
7315 "る。 上と同様に、通常、オフセットはワード境界になければならない。 カーネルの"
7316 "完全性 (integrity) を維持するため、 変更内容によっては USER 領域の変更は禁止"
7317 "されている。"
7318
7319 #. type: TP
7320 #: build/C/man2/ptrace.2:213
7321 #, no-wrap
7322 msgid "B<PTRACE_GETREGS>, B<PTRACE_GETFPREGS>"
7323 msgstr "B<PTRACE_GETREGS>, B<PTRACE_GETFPREGS>"
7324
7325 #. type: Plain text
7326 #: build/C/man2/ptrace.2:236
7327 #, fuzzy
7328 #| msgid ""
7329 #| "Copies the child's general purpose or floating-point registers, "
7330 #| "respectively, to location I<data> in the parent.  See I<E<lt>sys/user."
7331 #| "hE<gt>> for information on the format of this data.  (I<addr> is ignored.)"
7332 msgid ""
7333 "Copy the tracee's general-purpose or floating-point registers, respectively, "
7334 "to the address I<data> in the tracer.  See I<E<lt>sys/user.hE<gt>> for "
7335 "information on the format of this data.  (I<addr> is ignored.)  Note that "
7336 "SPARC systems have the meaning of I<data> and I<addr> reversed; that is, "
7337 "I<data> is ignored and the registers are copied to the address I<addr>.  "
7338 "B<PTRACE_GETREGS> and B<PTRACE_GETFPREGS> are not present on all "
7339 "architectures."
7340 msgstr ""
7341 "それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタを親プロセスの I<data> "
7342 "の位置にコピーする。この data の書式に関しては I<E<lt>sys/user.hE<gt>> を参照"
7343 "すること。(I<addr> は無視される。)"
7344
7345 #. type: TP
7346 #: build/C/man2/ptrace.2:236
7347 #, fuzzy, no-wrap
7348 #| msgid "B<PTRACE_GETEVENTMSG> (since Linux 2.5.46)"
7349 msgid "B<PTRACE_GETREGSET> (since Linux 2.6.34)"
7350 msgstr "B<PTRACE_GETEVENTMSG> (Linux 2.5.46 以降)"
7351
7352 #. type: Plain text
7353 #: build/C/man2/ptrace.2:257
7354 msgid ""
7355 "Read the tracee's registers.  I<addr> specifies, in an architecture-"
7356 "dependent way, the type of registers to be read.  B<NT_PRSTATUS> (with "
7357 "numerical value 1)  usually results in reading of general-purpose "
7358 "registers.  If the CPU has, for example, floating-point and/or vector "
7359 "registers, they can be retrieved by setting I<addr> to the corresponding "
7360 "B<NT_foo> constant.  I<data> points to a B<struct iovec>, which describes "
7361 "the destination buffer's location and length.  On return, the kernel "
7362 "modifies B<iov.len> to indicate the actual number of bytes returned."
7363 msgstr ""
7364
7365 #. type: TP
7366 #: build/C/man2/ptrace.2:257
7367 #, no-wrap
7368 msgid "B<PTRACE_GETSIGINFO> (since Linux 2.3.99-pre6)"
7369 msgstr "B<PTRACE_GETSIGINFO> (Linux 2.3.99-pre6 以降)"
7370
7371 #. type: Plain text
7372 #: build/C/man2/ptrace.2:269
7373 #, fuzzy
7374 #| msgid ""
7375 #| "Retrieve information about the signal that caused the stop.  Copies a "
7376 #| "I<siginfo_t> structure (see B<sigaction>(2))  from the child to location "
7377 #| "I<data> in the parent.  (I<addr> is ignored.)"
7378 msgid ""
7379 "Retrieve information about the signal that caused the stop.  Copy a "
7380 "I<siginfo_t> structure (see B<sigaction>(2))  from the tracee to the address "
7381 "I<data> in the tracer.  (I<addr> is ignored.)"
7382 msgstr ""
7383 "停止の原因となったシグナルに関する情報を取得する。 I<siginfo_t> 構造体 "
7384 "(B<sigaction>(2)  参照) を子プロセスから親プロセスの I<data> の位置にコピーす"
7385 "る。 (I<addr> は無視される。)"
7386
7387 #. type: TP
7388 #: build/C/man2/ptrace.2:269
7389 #, no-wrap
7390 msgid "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
7391 msgstr "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
7392
7393 #.  FIXME In the preceding sentence, which modifications are disallowed,
7394 #.  and when they are disallowed, how does user space discover that fact?
7395 #. type: Plain text
7396 #: build/C/man2/ptrace.2:294
7397 #, fuzzy
7398 #| msgid ""
7399 #| "Copies the child's general purpose or floating-point registers, "
7400 #| "respectively, from location I<data> in the parent.  As for "
7401 #| "B<PTRACE_POKEUSER>, some general purpose register modifications may be "
7402 #| "disallowed.  (I<addr> is ignored.)"
7403 msgid ""
7404 "Modify the tracee's general-purpose or floating-point registers, "
7405 "respectively, from the address I<data> in the tracer.  As for "
7406 "B<PTRACE_POKEUSER>, some general-purpose register modifications may be "
7407 "disallowed.  (I<addr> is ignored.)  Note that SPARC systems have the meaning "
7408 "of I<data> and I<addr> reversed; that is, I<data> is ignored and the "
7409 "registers are copied from the address I<addr>.  B<PTRACE_SETREGS> and "
7410 "B<PTRACE_SETFPREGS> are not present on all architectures."
7411 msgstr ""
7412 "それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタに 親プロセスの "
7413 "I<date> の位置からコピーする。 B<PTRACE_POKEUSER> と同様に、汎用レジスタに"
7414 "よっては 変更が禁止されている場合がある。 (I<addr> は無視される。)"
7415
7416 #. type: TP
7417 #: build/C/man2/ptrace.2:294
7418 #, fuzzy, no-wrap
7419 #| msgid "B<PTRACE_GETEVENTMSG> (since Linux 2.5.46)"
7420 msgid "B<PTRACE_SETREGSET> (since Linux 2.6.34)"
7421 msgstr "B<PTRACE_GETEVENTMSG> (Linux 2.5.46 以降)"
7422
7423 #. type: Plain text
7424 #: build/C/man2/ptrace.2:303
7425 msgid ""
7426 "Modify the tracee's registers.  The meaning of I<addr> and I<data> is "
7427 "analogous to B<PTRACE_GETREGSET>."
7428 msgstr ""
7429
7430 #. type: TP
7431 #: build/C/man2/ptrace.2:303
7432 #, no-wrap
7433 msgid "B<PTRACE_SETSIGINFO> (since Linux 2.3.99-pre6)"
7434 msgstr "B<PTRACE_SETSIGINFO> (Linux 2.3.99-pre6 以降)"
7435
7436 #. type: Plain text
7437 #: build/C/man2/ptrace.2:319
7438 #, fuzzy
7439 #| msgid ""
7440 #| "Set signal information.  Copies a I<siginfo_t> structure from location "
7441 #| "I<data> in the parent to the child.  This will only affect signals that "
7442 #| "would normally be delivered to the child and were caught by the tracer.  "
7443 #| "It may be difficult to tell these normal signals from synthetic signals "
7444 #| "generated by B<ptrace>()  itself.  (I<addr> is ignored.)"
7445 msgid ""
7446 "Set signal information: copy a I<siginfo_t> structure from the address "
7447 "I<data> in the tracer to the tracee.  This will affect only signals that "
7448 "would normally be delivered to the tracee and were caught by the tracer.  It "
7449 "may be difficult to tell these normal signals from synthetic signals "
7450 "generated by B<ptrace>()  itself.  (I<addr> is ignored.)"
7451 msgstr ""
7452 "シグナル情報を設定する。 I<siginfo_t> 構造体を親プロセスのデータ I<data> の位"
7453 "置から 子プロセスにコピーする。 この処理を行うことができるのは、子プロセスに"
7454 "通常は配送されるはずで トレーサに捕捉されたシグナルについてだけである。 これ"
7455 "らの通常のシグナルと B<ptrace>()  自身が発生するシグナルを見分けるのは難しい"
7456 "かもしれない。 (I<addr> は無視される。)"
7457
7458 #. type: TP
7459 #: build/C/man2/ptrace.2:319
7460 #, no-wrap
7461 msgid "B<PTRACE_SETOPTIONS> (since Linux 2.4.6; see BUGS for caveats)"
7462 msgstr "B<PTRACE_SETOPTIONS> (Linux 2.4.6 以降; バグの章にある警告も参照)"
7463
7464 #. type: Plain text
7465 #: build/C/man2/ptrace.2:328
7466 #, fuzzy
7467 #| msgid ""
7468 #| "Sets ptrace options from I<data> in the parent.  (I<addr> is ignored.)  "
7469 #| "I<data> is interpreted as a bit mask of options, which are specified by "
7470 #| "the following flags:"
7471 msgid ""
7472 "Set ptrace options from I<data>.  (I<addr> is ignored.)  I<data> is "
7473 "interpreted as a bit mask of options, which are specified by the following "
7474 "flags:"
7475 msgstr ""
7476 "親プロセスの I<data> に基づいて ptrace のオプションを設定する (I<addr> は無視"
7477 "される)。 I<data> はオプションのビットマスクとして解釈され、 オプションには以"
7478 "下のフラグを指定できる:"
7479
7480 #. type: TP
7481 #: build/C/man2/ptrace.2:329
7482 #, fuzzy, no-wrap
7483 #| msgid "B<PTRACE_O_TRACEEXIT> (since Linux 2.5.60)"
7484 msgid "B<PTRACE_O_EXITKILL> (since Linux 3.8)"
7485 msgstr "B<PTRACE_O_TRACEEXIT> (Linux 2.5.60 以降)"
7486
7487 #.  commit 992fb6e170639b0849bace8e49bf31bd37c4123
7488 #. type: Plain text
7489 #: build/C/man2/ptrace.2:337
7490 msgid ""
7491 "If a tracer sets this flag, a B<SIGKILL> signal will be sent to every tracee "
7492 "if the tracer exits.  This option is useful for ptrace jailers that want to "
7493 "ensure that tracees can never escape the tracer's control."
7494 msgstr ""
7495
7496 #. type: TP
7497 #: build/C/man2/ptrace.2:337
7498 #, no-wrap
7499 msgid "B<PTRACE_O_TRACECLONE> (since Linux 2.5.46)"
7500 msgstr "B<PTRACE_O_TRACECLONE> (Linux 2.5.46 以降)"
7501
7502 #. type: Plain text
7503 #: build/C/man2/ptrace.2:349
7504 #, fuzzy
7505 #| msgid ""
7506 #| "Stop the child at the next B<fork>(2)  call with I<SIGTRAP | "
7507 #| "PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
7508 #| "newly forked process, which will start with a B<SIGSTOP>.  The PID for "
7509 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
7510 msgid ""
7511 "Stop the tracee at the next B<clone>(2)  and automatically start tracing the "
7512 "newly cloned process, which will start with a B<SIGSTOP>.  A B<waitpid>(2)  "
7513 "by the tracer will return a I<status> value such that"
7514 msgstr ""
7515 "次の B<fork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ "
7516 "8> で 子プロセスの動作を停止させ、 新たに fork されたプロセスのトレースを自動"
7517 "的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
7518 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
7519
7520 #. type: Plain text
7521 #: build/C/man2/ptrace.2:352
7522 #, no-wrap
7523 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_CLONEE<lt>E<lt>8))\n"
7524 msgstr ""
7525
7526 #. type: Plain text
7527 #: build/C/man2/ptrace.2:356 build/C/man2/ptrace.2:437
7528 #: build/C/man2/ptrace.2:465
7529 msgid "The PID of the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
7530 msgstr ""
7531
7532 #. type: Plain text
7533 #: build/C/man2/ptrace.2:377
7534 #, fuzzy
7535 #| msgid ""
7536 #| "Stop the child at the next B<clone>(2)  call with I<SIGTRAP | "
7537 #| "PTRACE_EVENT_CLONE\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
7538 #| "newly cloned process, which will start with a B<SIGSTOP>.  The PID for "
7539 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>.  This option "
7540 #| "may not catch B<clone>(2)  calls in all cases.  If the child calls "
7541 #| "B<clone>(2)  with the B<CLONE_VFORK> flag, B<PTRACE_EVENT_VFORK> will be "
7542 #| "delivered instead if B<PTRACE_O_TRACEVFORK> is set; otherwise if the "
7543 #| "child calls B<clone>(2)  with the exit signal set to B<SIGCHLD>, "
7544 #| "B<PTRACE_EVENT_FORK> will be delivered if B<PTRACE_O_TRACEFORK> is set."
7545 msgid ""
7546 "This option may not catch B<clone>(2)  calls in all cases.  If the tracee "
7547 "calls B<clone>(2)  with the B<CLONE_VFORK> flag, B<PTRACE_EVENT_VFORK> will "
7548 "be delivered instead if B<PTRACE_O_TRACEVFORK> is set; otherwise if the "
7549 "tracee calls B<clone>(2)  with the exit signal set to B<SIGCHLD>, "
7550 "B<PTRACE_EVENT_FORK> will be delivered if B<PTRACE_O_TRACEFORK> is set."
7551 msgstr ""
7552 "次の B<clone>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_CLONE\\ E<lt>E<lt> "
7553 "\\8> で 子プロセスの動作を停止させ、 新たに clone で作成されたプロセスのト"
7554 "レースを自動的に開始し、 B<SIGSTOP> でプロセスの実行を開始する。 新しいプロセ"
7555 "スの PID は B<PTRACE_GETEVENTMSG> で取得できる。 このオプションで全ての "
7556 "B<clone>(2)  コールを捕まえられるわけではない。 子プロセスが B<CLONE_VFORK> "
7557 "フラグ付きで B<clone>(2)  を呼び出した場合、 B<PTRACE_O_TRACEVFORK> が設定さ"
7558 "れていれば代わりに B<PTRACE_EVENT_VFORK> が配送される。 また、子プロセスが終"
7559 "了シグナルを B<SIGCHLD> に設定して B<clone>(2)  を呼び出した場合は、 "
7560 "B<PTRACE_O_TRACEFORK> が設定されていれば B<PTRACE_EVENT_FORK> が配送される。"
7561
7562 #. type: TP
7563 #: build/C/man2/ptrace.2:377
7564 #, no-wrap
7565 msgid "B<PTRACE_O_TRACEEXEC> (since Linux 2.5.46)"
7566 msgstr "B<PTRACE_O_TRACEEXEC> (Linux 2.5.46 以降)"
7567
7568 #. type: Plain text
7569 #: build/C/man2/ptrace.2:386
7570 msgid ""
7571 "Stop the tracee at the next B<execve>(2).  A B<waitpid>(2)  by the tracer "
7572 "will return a I<status> value such that"
7573 msgstr ""
7574
7575 #. type: Plain text
7576 #: build/C/man2/ptrace.2:389
7577 #, no-wrap
7578 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXECE<lt>E<lt>8))\n"
7579 msgstr ""
7580
7581 #. type: Plain text
7582 #: build/C/man2/ptrace.2:395
7583 msgid ""
7584 "If the execing thread is not a thread group leader, the thread ID is reset "
7585 "to thread group leader's ID before this stop.  Since Linux 3.0, the former "
7586 "thread ID can be retrieved with B<PTRACE_GETEVENTMSG>."
7587 msgstr ""
7588
7589 #. type: TP
7590 #: build/C/man2/ptrace.2:395
7591 #, no-wrap
7592 msgid "B<PTRACE_O_TRACEEXIT> (since Linux 2.5.60)"
7593 msgstr "B<PTRACE_O_TRACEEXIT> (Linux 2.5.60 以降)"
7594
7595 #. type: Plain text
7596 #: build/C/man2/ptrace.2:403
7597 msgid ""
7598 "Stop the tracee at exit.  A B<waitpid>(2)  by the tracer will return a "
7599 "I<status> value such that"
7600 msgstr ""
7601
7602 #. type: Plain text
7603 #: build/C/man2/ptrace.2:406
7604 #, no-wrap
7605 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXITE<lt>E<lt>8))\n"
7606 msgstr ""
7607
7608 #. type: Plain text
7609 #: build/C/man2/ptrace.2:410
7610 msgid "The tracee's exit status can be retrieved with B<PTRACE_GETEVENTMSG>."
7611 msgstr ""
7612
7613 #. type: Plain text
7614 #: build/C/man2/ptrace.2:418
7615 #, fuzzy
7616 #| msgid ""
7617 #| "Stop the child at exit with I<SIGTRAP | PTRACE_EVENT_EXIT\\ E<lt>E<lt>\\ "
7618 #| "8>.  The child's exit status can be retrieved with "
7619 #| "B<PTRACE_GETEVENTMSG>.  This stop will be done early during process exit "
7620 #| "when registers are still available, allowing the tracer to see where the "
7621 #| "exit occurred, whereas the normal exit notification is done after the "
7622 #| "process is finished exiting.  Even though context is available, the "
7623 #| "tracer cannot prevent the exit from happening at this point."
7624 msgid ""
7625 "The tracee is stopped early during process exit, when registers are still "
7626 "available, allowing the tracer to see where the exit occurred, whereas the "
7627 "normal exit notification is done after the process is finished exiting.  "
7628 "Even though context is available, the tracer cannot prevent the exit from "
7629 "happening at this point."
7630 msgstr ""
7631 "終了 (exit) 時に I<SIGTRAP | PTRACE_EVENT_EXIT\\ E<lt>E<lt>\\ 8> で子プロセス"
7632 "の動作を停止させる。子プロセスの終了ステータスは B<PTRACE_GETEVENTMSG> で取得"
7633 "できる。 この停止はレジスタがまだ参照可能であるプロセス終了処理の初期に行わ"
7634 "れ、 トレーサはどこで終了が発生したかを知ることができる。 通常の終了通知 "
7635 "(exit notification) はプロセスの終了処理が完了した後に 行われる。コンテキスト"
7636 "を参照することはできるにも関わらず、 トレーサはこの時点から終了を止めることは"
7637 "できない。"
7638
7639 #. type: TP
7640 #: build/C/man2/ptrace.2:418
7641 #, no-wrap
7642 msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
7643 msgstr "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
7644
7645 #. type: Plain text
7646 #: build/C/man2/ptrace.2:430
7647 #, fuzzy
7648 #| msgid ""
7649 #| "Stop the child at the next B<fork>(2)  call with I<SIGTRAP | "
7650 #| "PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
7651 #| "newly forked process, which will start with a B<SIGSTOP>.  The PID for "
7652 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
7653 msgid ""
7654 "Stop the tracee at the next B<fork>(2)  and automatically start tracing the "
7655 "newly forked process, which will start with a B<SIGSTOP>.  A B<waitpid>(2)  "
7656 "by the tracer will return a I<status> value such that"
7657 msgstr ""
7658 "次の B<fork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ "
7659 "8> で 子プロセスの動作を停止させ、 新たに fork されたプロセスのトレースを自動"
7660 "的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
7661 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
7662
7663 #. type: Plain text
7664 #: build/C/man2/ptrace.2:433
7665 #, no-wrap
7666 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_FORKE<lt>E<lt>8))\n"
7667 msgstr ""
7668
7669 #. type: TP
7670 #: build/C/man2/ptrace.2:437
7671 #, no-wrap
7672 msgid "B<PTRACE_O_TRACESYSGOOD> (since Linux 2.4.6)"
7673 msgstr "B<PTRACE_O_TRACESYSGOOD> (Linux 2.4.6 以降)"
7674
7675 #. type: Plain text
7676 #: build/C/man2/ptrace.2:446
7677 #, fuzzy
7678 #| msgid ""
7679 #| "When delivering syscall traps, set bit 7 in the signal number (i.e., "
7680 #| "deliver I<SIGTRAP | 0x80>).  This makes it easy for the tracer to tell "
7681 #| "the difference between normal traps and those caused by a syscall.  "
7682 #| "(B<PTRACE_O_TRACESYSGOOD> may not work on all architectures.)"
7683 msgid ""
7684 "When delivering system call traps, set bit 7 in the signal number (i.e., "
7685 "deliver I<SIGTRAP|0x80>).  This makes it easy for the tracer to distinguish "
7686 "normal traps from those caused by a system call.  (B<PTRACE_O_TRACESYSGOOD> "
7687 "may not work on all architectures.)"
7688 msgstr ""
7689 "システムコールのトラップが配送されたときに、シグナル番号のビット 7 を設定す"
7690 "る (すなわち、I<SIGTRAP | 0x80> を配送する)。 これにより、トレーサが通常のト"
7691 "ラップとシステムコールによるトラップを 区別しやすくなる。 "
7692 "(B<PTRACE_O_TRACESYSGOOD> はどのアーキテクチャでも動作しない可能性がある。)"
7693
7694 #. type: TP
7695 #: build/C/man2/ptrace.2:446
7696 #, no-wrap
7697 msgid "B<PTRACE_O_TRACEVFORK> (since Linux 2.5.46)"
7698 msgstr "B<PTRACE_O_TRACEVFORK> (Linux 2.5.46 以降)"
7699
7700 #. type: Plain text
7701 #: build/C/man2/ptrace.2:458
7702 #, fuzzy
7703 #| msgid ""
7704 #| "Stop the child at the next B<vfork>(2)  call with I<SIGTRAP | "
7705 #| "PTRACE_EVENT_VFORK\\ E<lt>E<lt>\\ 8> and automatically start tracing the "
7706 #| "newly vforked process, which will start with a B<SIGSTOP>.  The PID for "
7707 #| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
7708 msgid ""
7709 "Stop the tracee at the next B<vfork>(2)  and automatically start tracing the "
7710 "newly vforked process, which will start with a B<SIGSTOP>.  A B<waitpid>(2)  "
7711 "by the tracer will return a I<status> value such that"
7712 msgstr ""
7713 "次の B<vfork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_VFORK\\ E<lt>E<lt>\\ "
7714 "8> で 子プロセスの動作を停止させ、 新たに vfork されたプロセスのトレースを自"
7715 "動的に開始し、 B<SIGSTOP> でそのプロセスの実行を開始する。 新しいプロセスの "
7716 "PID は B<PTRACE_GETEVENTMSG> で取得できる。"
7717
7718 #. type: Plain text
7719 #: build/C/man2/ptrace.2:461
7720 #, no-wrap
7721 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORKE<lt>E<lt>8))\n"
7722 msgstr ""
7723
7724 #. type: TP
7725 #: build/C/man2/ptrace.2:465
7726 #, no-wrap
7727 msgid "B<PTRACE_O_TRACEVFORKDONE> (since Linux 2.5.60)"
7728 msgstr "B<PTRACE_O_TRACEVFORKDONE> (Linux 2.5.60 以降)"
7729
7730 #. type: Plain text
7731 #: build/C/man2/ptrace.2:474
7732 msgid ""
7733 "Stop the tracee at the completion of the next B<vfork>(2).  A B<waitpid>(2)  "
7734 "by the tracer will return a I<status> value such that"
7735 msgstr ""
7736
7737 #. type: Plain text
7738 #: build/C/man2/ptrace.2:477
7739 #, no-wrap
7740 msgid "  statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORK_DONEE<lt>E<lt>8))\n"
7741 msgstr ""
7742
7743 #. type: Plain text
7744 #: build/C/man2/ptrace.2:481
7745 msgid ""
7746 "The PID of the new process can (since Linux 2.6.18) be retrieved with "
7747 "B<PTRACE_GETEVENTMSG>."
7748 msgstr ""
7749
7750 #. type: TP
7751 #: build/C/man2/ptrace.2:482
7752 #, no-wrap
7753 msgid "B<PTRACE_GETEVENTMSG> (since Linux 2.5.46)"
7754 msgstr "B<PTRACE_GETEVENTMSG> (Linux 2.5.46 以降)"
7755
7756 #. type: Plain text
7757 #: build/C/man2/ptrace.2:502
7758 #, fuzzy
7759 #| msgid ""
7760 #| "Retrieve a message (as an I<unsigned long>)  about the ptrace event that "
7761 #| "just happened, placing it in the location I<data> in the parent.  For "
7762 #| "B<PTRACE_EVENT_EXIT> this is the child's exit status.  For "
7763 #| "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK> and B<PTRACE_EVENT_CLONE> "
7764 #| "this is the PID of the new process.  Since Linux 2.6.18, the PID of the "
7765 #| "new process is also available for B<PTRACE_EVENT_VFORK_DONE>.  (I<addr> "
7766 #| "is ignored.)"
7767 msgid ""
7768 "Retrieve a message (as an I<unsigned long>)  about the ptrace event that "
7769 "just happened, placing it at the address I<data> in the tracer.  For "
7770 "B<PTRACE_EVENT_EXIT>, this is the tracee's exit status.  For "
7771 "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK>, B<PTRACE_EVENT_VFORK_DONE>, and "
7772 "B<PTRACE_EVENT_CLONE>, this is the PID of the new process.  (I<addr> is "
7773 "ignored.)"
7774 msgstr ""
7775 "発生したばかりの ptrace イベントに関するメッセージを (I<unsigned long> 型で) "
7776 "取得する。 取得したメッセージは親プロセスの I<data> の位置に格納される。 得ら"
7777 "れる内容は、 B<PTRACE_EVENT_EXIT> の場合は子プロセスの終了ステータスであり、 "
7778 "B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK>, B<PTRACE_EVENT_CLONE> の場合は新"
7779 "しいプロセスの PID である。 Linux 2.6.18 以降では、新しいプロセスの PID は "
7780 "B<PTRACE_EVENT_VFORK_DONE> で入手できる。 (I<addr> は無視される。)"
7781
7782 #. type: TP
7783 #: build/C/man2/ptrace.2:502
7784 #, no-wrap
7785 msgid "B<PTRACE_CONT>"
7786 msgstr "B<PTRACE_CONT>"
7787
7788 #. type: Plain text
7789 #: build/C/man2/ptrace.2:514
7790 #, fuzzy
7791 #| msgid ""
7792 #| "Restarts the stopped child process.  If I<data> is nonzero and not "
7793 #| "B<SIGSTOP>, it is interpreted as a signal to be delivered to the child; "
7794 #| "otherwise, no signal is delivered.  Thus, for example, the parent can "
7795 #| "control whether a signal sent to the child is delivered or not.  (I<addr> "
7796 #| "is ignored.)"
7797 msgid ""
7798 "Restart the stopped tracee process.  If I<data> is nonzero, it is "
7799 "interpreted as the number of a signal to be delivered to the tracee; "
7800 "otherwise, no signal is delivered.  Thus, for example, the tracer can "
7801 "control whether a signal sent to the tracee is delivered or not.  (I<addr> "
7802 "is ignored.)"
7803 msgstr ""
7804 "停止した子プロセスの実行を再開させる。 I<data> がゼロでなく、 B<SIGSTOP> でも"
7805 "なければ、 子プロセスに配送されるシグナルと解釈される。 ゼロや B<SIGSTOP> の"
7806 "場合はシグナルは配送されない。 これを使うと、例えば、親プロセスは 子プロセス"
7807 "に送られたシグナルを実際に配送するかどうかを 制御することができる。(I<addr> "
7808 "は無視される。)"
7809
7810 #. type: TP
7811 #: build/C/man2/ptrace.2:514
7812 #, no-wrap
7813 msgid "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
7814 msgstr "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
7815
7816 #. type: Plain text
7817 #: build/C/man2/ptrace.2:538
7818 #, fuzzy
7819 #| msgid ""
7820 #| "Restarts the stopped child as for B<PTRACE_CONT>, but arranges for the "
7821 #| "child to be stopped at the next entry to or exit from a system call, or "
7822 #| "after execution of a single instruction, respectively.  (The child will "
7823 #| "also, as usual, be stopped upon receipt of a signal.)  From the parent's "
7824 #| "perspective, the child will appear to have been stopped by receipt of a "
7825 #| "B<SIGTRAP>.  So, for B<PTRACE_SYSCALL>, for example, the idea is to "
7826 #| "inspect the arguments to the system call at the first stop, then do "
7827 #| "another B<PTRACE_SYSCALL> and inspect the return value of the system call "
7828 #| "at the second stop.  The I<data> argument is treated as for "
7829 #| "B<PTRACE_CONT>.  (I<addr> is ignored.)"
7830 msgid ""
7831 "Restart the stopped tracee as for B<PTRACE_CONT>, but arrange for the tracee "
7832 "to be stopped at the next entry to or exit from a system call, or after "
7833 "execution of a single instruction, respectively.  (The tracee will also, as "
7834 "usual, be stopped upon receipt of a signal.)  From the tracer's perspective, "
7835 "the tracee will appear to have been stopped by receipt of a B<SIGTRAP>.  So, "
7836 "for B<PTRACE_SYSCALL>, for example, the idea is to inspect the arguments to "
7837 "the system call at the first stop, then do another B<PTRACE_SYSCALL> and "
7838 "inspect the return value of the system call at the second stop.  The I<data> "
7839 "argument is treated as for B<PTRACE_CONT>.  (I<addr> is ignored.)"
7840 msgstr ""
7841 "B<PTRACE_CONT> と同様に停止した子プロセスを再開する。ただし、 "
7842 "B<PTRACE_SYSCALL> の場合は子プロセスが 次にシステムコールに入るかシステムコー"
7843 "ルから抜けるかする時に、 B<PTRACE_SINGLESTEP> の場合は 1 命令 (instruction) "
7844 "実行した後に停止させる (通常どおり、子プロセスはシグナルを受け取った場合にも"
7845 "停止する)。 親プロセスから見ると、子プロセスは B<SIGTRAP> を受信して停止した"
7846 "ように見える。そのため、例えば B<PTRACE_SYSCALL> を使うと、1回目の停止で引き"
7847 "数を調べて B<PTRACE_SYSCALL> を実行し、 2回目の停止でシステムコールの返り値を"
7848 "調べる、 というようなことができる。 引き数 I<data> は B<PTRACE_CONT> の場合と"
7849 "同じ様に解釈される。 (I<addr> は無視される。)"
7850
7851 #. type: TP
7852 #: build/C/man2/ptrace.2:538
7853 #, no-wrap
7854 msgid "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (since Linux 2.6.14)"
7855 msgstr "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (Linux 2.6.14 以降)"
7856
7857 #.  As at 3.7
7858 #. type: Plain text
7859 #: build/C/man2/ptrace.2:559
7860 #, fuzzy
7861 #| msgid ""
7862 #| "For B<PTRACE_SYSEMU>, continue and stop on entry to the next syscall, "
7863 #| "which will not be executed.  For B<PTRACE_SYSEMU_SINGLESTEP>, do the same "
7864 #| "but also singlestep if not a syscall.  This call is used by programs like "
7865 #| "User Mode Linux that want to emulate all the child's system calls.  The "
7866 #| "I<data> argument is treated as for B<PTRACE_CONT>.  (I<addr> is ignored; "
7867 #| "not supported on all architectures.)"
7868 msgid ""
7869 "For B<PTRACE_SYSEMU>, continue and stop on entry to the next system call, "
7870 "which will not be executed.  For B<PTRACE_SYSEMU_SINGLESTEP>, do the same "
7871 "but also singlestep if not a system call.  This call is used by programs "
7872 "like User Mode Linux that want to emulate all the tracee's system calls.  "
7873 "The I<data> argument is treated as for B<PTRACE_CONT>.  The I<addr> argument "
7874 "is ignored.  These requests are currently supported only on x86."
7875 msgstr ""
7876 "B<PTRACE_SYSEMU> は、実行を再開し、次のシステムコールに入る時に停止させる。 "
7877 "システムコールは実行されない。 B<PTRACE_SYSEMU_SINGLESTEP> も同様だが、システ"
7878 "ムコールでない場合には 1 命令 (singlestep) だけ実行した時点でも停止させる。 "
7879 "このコールは User Mode Linux のように子プロセスのシステムコールを全て エミュ"
7880 "レートしようとするプログラムで使用される。 引き数 I<data> は B<PTRACE_CONT> "
7881 "の場合と同じ様に解釈される。 (I<addr> は無視される。 全てのアーキテクチャでサ"
7882 "ポートされているわけではない。)"
7883
7884 #. type: TP
7885 #: build/C/man2/ptrace.2:559
7886 #, fuzzy, no-wrap
7887 #| msgid "B<PTRACE_GETEVENTMSG> (since Linux 2.5.46)"
7888 msgid "B<PTRACE_LISTEN> (since Linux 3.4)"
7889 msgstr "B<PTRACE_GETEVENTMSG> (Linux 2.5.46 以降)"
7890
7891 #. type: Plain text
7892 #: build/C/man2/ptrace.2:570
7893 msgid ""
7894 "Restart the stopped tracee, but prevent it from executing.  The resulting "
7895 "state of the tracee is similar to a process which has been stopped by a "
7896 "B<SIGSTOP> (or other stopping signal).  See the \"group-stop\" subsection "
7897 "for additional information.  B<PTRACE_LISTEN> works only on tracees attached "
7898 "by B<PTRACE_SEIZE>."
7899 msgstr ""
7900
7901 #. type: TP
7902 #: build/C/man2/ptrace.2:570
7903 #, no-wrap
7904 msgid "B<PTRACE_KILL>"
7905 msgstr "B<PTRACE_KILL>"
7906
7907 #. type: Plain text
7908 #: build/C/man2/ptrace.2:579
7909 #, fuzzy
7910 #| msgid ""
7911 #| "Sends the child a B<SIGKILL> to terminate it.  (I<addr> and I<data> are "
7912 #| "ignored.)"
7913 msgid ""
7914 "Send the tracee a B<SIGKILL> to terminate it.  (I<addr> and I<data> are "
7915 "ignored.)"
7916 msgstr ""
7917 "子プロセスに B<SIGKILL> を送り終了させる。(I<addr> と I<data> は無視される。)"
7918
7919 #.  [Note from Denys Vlasenko:
7920 #.      deprecation suggested by Oleg Nesterov. He prefers to deprecate it
7921 #.      instead of describing (and needing to support) PTRACE_KILL's quirks.]
7922 #. type: Plain text
7923 #: build/C/man2/ptrace.2:598
7924 msgid ""
7925 "I<This operation is deprecated; do not use it!> Instead, send a B<SIGKILL> "
7926 "directly using B<kill>(2)  or B<tgkill>(2).  The problem with B<PTRACE_KILL> "
7927 "is that it requires the tracee to be in signal-delivery-stop, otherwise it "
7928 "may not work (i.e., may complete successfully but won't kill the tracee).  "
7929 "By contrast, sending a B<SIGKILL> directly has no such limitation."
7930 msgstr ""
7931
7932 #. type: TP
7933 #: build/C/man2/ptrace.2:598
7934 #, fuzzy, no-wrap
7935 #| msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
7936 msgid "B<PTRACE_INTERRUPT> (since Linux 3.4)"
7937 msgstr "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
7938
7939 #. type: Plain text
7940 #: build/C/man2/ptrace.2:612
7941 msgid ""
7942 "Stop a tracee.  If the tracee is running, it will stop with "
7943 "B<PTRACE_EVENT_STOP>.  If the tracee is already stopped by a signal, or "
7944 "receives a signal in parallel with B<PTRACE_INTERRUPT>, it may report a "
7945 "group-stop or a signal-delivery-stop instead of B<PTRACE_EVENT_STOP>.  "
7946 "B<PTRACE_INTERRUPT> only works on tracees attached by B<PTRACE_SEIZE>."
7947 msgstr ""
7948
7949 #. type: TP
7950 #: build/C/man2/ptrace.2:612
7951 #, no-wrap
7952 msgid "B<PTRACE_ATTACH>"
7953 msgstr "B<PTRACE_ATTACH>"
7954
7955 #.  No longer true (removed by Denys Vlasenko, 2011, who remarks:
7956 #.         "I think it isn't true in non-ancient 2.4 and in 2.6/3.x.
7957 #.          Basically, it's not true for any Linux in practical use.
7958 #.  ; the behavior of the tracee is as if it had done a
7959 #.  .BR PTRACE_TRACEME .
7960 #.  The calling process actually becomes the parent of the tracee
7961 #.  process for most purposes (e.g., it will receive
7962 #.  notification of tracee events and appears in
7963 #.  .BR ps (1)
7964 #.  output as the tracee's parent), but a
7965 #.  .BR getppid (2)
7966 #.  by the tracee will still return the PID of the original parent.
7967 #. type: Plain text
7968 #: build/C/man2/ptrace.2:640
7969 msgid ""
7970 "Attach to the process specified in I<pid>, making it a tracee of the calling "
7971 "process.  The tracee is sent a B<SIGSTOP>, but will not necessarily have "
7972 "stopped by the completion of this call; use B<waitpid>(2)  to wait for the "
7973 "tracee to stop.  See the \"Attaching and detaching\" subsection for "
7974 "additional information.  (I<addr> and I<data> are ignored.)"
7975 msgstr ""
7976
7977 #. type: TP
7978 #: build/C/man2/ptrace.2:640
7979 #, fuzzy, no-wrap
7980 #| msgid "B<PTRACE_O_TRACEEXEC> (since Linux 2.5.46)"
7981 msgid "B<PTRACE_SEIZE> (since Linux 3.4)"
7982 msgstr "B<PTRACE_O_TRACEEXEC> (Linux 2.5.46 以降)"
7983
7984 #. type: Plain text
7985 #: build/C/man2/ptrace.2:660
7986 msgid ""
7987 "Attach to the process specified in I<pid>, making it a tracee of the calling "
7988 "process.  Unlike B<PTRACE_ATTACH>, B<PTRACE_SEIZE> does not stop the "
7989 "process.  Only a B<PTRACE_SEIZE>d process can accept B<PTRACE_INTERRUPT> and "
7990 "B<PTRACE_LISTEN> commands.  I<addr> must be zero.  I<data> contains a bit "
7991 "mask of ptrace options to activate immediately."
7992 msgstr ""
7993
7994 #. type: TP
7995 #: build/C/man2/ptrace.2:660
7996 #, no-wrap
7997 msgid "B<PTRACE_DETACH>"
7998 msgstr "B<PTRACE_DETACH>"
7999
8000 #. type: Plain text
8001 #: build/C/man2/ptrace.2:669
8002 #, fuzzy
8003 #| msgid ""
8004 #| "Restarts the stopped child as for B<PTRACE_CONT>, but first detaches from "
8005 #| "the process, undoing the reparenting effect of B<PTRACE_ATTACH>, and the "
8006 #| "effects of B<PTRACE_TRACEME>.  Although perhaps not intended, under Linux "
8007 #| "a traced child can be detached in this way regardless of which method was "
8008 #| "used to initiate tracing.  (I<addr> is ignored.)"
8009 msgid ""
8010 "Restart the stopped tracee as for B<PTRACE_CONT>, but first detach from it.  "
8011 "Under Linux, a tracee can be detached in this way regardless of which method "
8012 "was used to initiate tracing.  (I<addr> is ignored.)"
8013 msgstr ""
8014 "B<PTRACE_CONT> と同様に停止した子プロセスを再開する。ただし まずそのプロセス"
8015 "からの分離 (detach) を行い、 B<PTRACE_ATTACH> での親の切り換えによる効果と "
8016 "B<PTRACE_TRACEME> の効果を取り消す。意図したものではないだろうが、 Linux で"
8017 "は、トレースされている子プロセスはどのような方法でトレースを 開始されたとして"
8018 "も、この方法で分離 (detach) することができる。 (I<addr> は無視される。)"
8019
8020 #. type: SS
8021 #: build/C/man2/ptrace.2:669
8022 #, no-wrap
8023 msgid "Death under ptrace"
8024 msgstr ""
8025
8026 #. type: Plain text
8027 #: build/C/man2/ptrace.2:678
8028 msgid ""
8029 "When a (possibly multithreaded) process receives a killing signal (one whose "
8030 "disposition is set to B<SIG_DFL> and whose default action is to kill the "
8031 "process), all threads exit.  Tracees report their death to their tracer(s).  "
8032 "Notification of this event is delivered via B<waitpid>(2)."
8033 msgstr ""
8034
8035 #. type: Plain text
8036 #: build/C/man2/ptrace.2:687
8037 msgid ""
8038 "Note that the killing signal will first cause signal-delivery-stop (on one "
8039 "tracee only), and only after it is injected by the tracer (or after it was "
8040 "dispatched to a thread which isn't traced), will death from the signal "
8041 "happen on I<all> tracees within a multithreaded process.  (The term \"signal-"
8042 "delivery-stop\" is explained below.)"
8043 msgstr ""
8044
8045 #. type: Plain text
8046 #: build/C/man2/ptrace.2:699
8047 msgid ""
8048 "B<SIGKILL> does not generate signal-delivery-stop and therefore the tracer "
8049 "can't suppress it.  B<SIGKILL> kills even within system calls (syscall-exit-"
8050 "stop is not generated prior to death by B<SIGKILL>).  The net effect is that "
8051 "B<SIGKILL> always kills the process (all its threads), even if some threads "
8052 "of the process are ptraced."
8053 msgstr ""
8054
8055 #. type: Plain text
8056 #: build/C/man2/ptrace.2:704
8057 msgid ""
8058 "When the tracee calls B<_exit>(2), it reports its death to its tracer.  "
8059 "Other threads are not affected."
8060 msgstr ""
8061
8062 #. type: Plain text
8063 #: build/C/man2/ptrace.2:708
8064 msgid ""
8065 "When any thread executes B<exit_group>(2), every tracee in its thread group "
8066 "reports its death to its tracer."
8067 msgstr ""
8068
8069 #. type: Plain text
8070 #: build/C/man2/ptrace.2:722
8071 msgid ""
8072 "If the B<PTRACE_O_TRACEEXIT> option is on, B<PTRACE_EVENT_EXIT> will happen "
8073 "before actual death.  This applies to exits via B<exit>(2), B<exit_group>"
8074 "(2), and signal deaths (except B<SIGKILL>), and when threads are torn down "
8075 "on B<execve>(2)  in a multithreaded process."
8076 msgstr ""
8077
8078 #. type: Plain text
8079 #: build/C/man2/ptrace.2:747
8080 msgid ""
8081 "The tracer cannot assume that the ptrace-stopped tracee exists.  There are "
8082 "many scenarios when the tracee may die while stopped (such as B<SIGKILL>).  "
8083 "Therefore, the tracer must be prepared to handle an B<ESRCH> error on any "
8084 "ptrace operation.  Unfortunately, the same error is returned if the tracee "
8085 "exists but is not ptrace-stopped (for commands which require a stopped "
8086 "tracee), or if it is not traced by the process which issued the ptrace "
8087 "call.  The tracer needs to keep track of the stopped/running state of the "
8088 "tracee, and interpret B<ESRCH> as \"tracee died unexpectedly\" only if it "
8089 "knows that the tracee has been observed to enter ptrace-stop.  Note that "
8090 "there is no guarantee that I<waitpid(WNOHANG)> will reliably report the "
8091 "tracee's death status if a ptrace operation returned B<ESRCH>.  I<waitpid"
8092 "(WNOHANG)> may return 0 instead.  In other words, the tracee may be \"not "
8093 "yet fully dead\", but already refusing ptrace requests."
8094 msgstr ""
8095
8096 #. type: Plain text
8097 #: build/C/man2/ptrace.2:761
8098 msgid ""
8099 "The tracer can't assume that the tracee I<always> ends its life by reporting "
8100 "I<WIFEXITED(status)> or I<WIFSIGNALED(status)>; there are cases where this "
8101 "does not occur.  For example, if a thread other than thread group leader "
8102 "does an B<execve>(2), it disappears; its PID will never be seen again, and "
8103 "any subsequent ptrace stops will be reported under the thread group leader's "
8104 "PID."
8105 msgstr ""
8106
8107 #. type: SS
8108 #: build/C/man2/ptrace.2:761
8109 #, no-wrap
8110 msgid "Stopped states"
8111 msgstr ""
8112
8113 #. type: Plain text
8114 #: build/C/man2/ptrace.2:763
8115 msgid "A tracee can be in two states: running or stopped."
8116 msgstr ""
8117
8118 #. type: Plain text
8119 #: build/C/man2/ptrace.2:767
8120 msgid ""
8121 "There are many kinds of states when the tracee is stopped, and in ptrace "
8122 "discussions they are often conflated.  Therefore, it is important to use "
8123 "precise terms."
8124 msgstr ""
8125
8126 #. type: Plain text
8127 #: build/C/man2/ptrace.2:778
8128 msgid ""
8129 "In this manual page, any stopped state in which the tracee is ready to "
8130 "accept ptrace commands from the tracer is called I<ptrace-stop>.  Ptrace-"
8131 "stops can be further subdivided into I<signal-delivery-stop>, I<group-stop>, "
8132 "I<syscall-stop>, and so on.  These stopped states are described in detail "
8133 "below."
8134 msgstr ""
8135
8136 #. type: Plain text
8137 #: build/C/man2/ptrace.2:783
8138 msgid ""
8139 "When the running tracee enters ptrace-stop, it notifies its tracer using "
8140 "B<waitpid>(2)  (or one of the other \"wait\" system calls).  Most of this "
8141 "manual page assumes that the tracer waits with:"
8142 msgstr ""
8143
8144 #. type: Plain text
8145 #: build/C/man2/ptrace.2:785
8146 #, no-wrap
8147 msgid "    pid = waitpid(pid_or_minus_1, &status, __WALL);\n"
8148 msgstr ""
8149
8150 #.  Denys Vlasenko:
8151 #.      Do we require __WALL usage, or will just using 0 be ok? (With 0,
8152 #.      I am not 100% sure there aren't ugly corner cases.) Are the
8153 #.      rules different if user wants to use waitid? Will waitid require
8154 #.      WEXITED?
8155 #. type: Plain text
8156 #: build/C/man2/ptrace.2:797
8157 msgid ""
8158 "Ptrace-stopped tracees are reported as returns with I<pid> greater than 0 "
8159 "and I<WIFSTOPPED(status)> true."
8160 msgstr ""
8161
8162 #. type: Plain text
8163 #: build/C/man2/ptrace.2:805
8164 msgid ""
8165 "The B<__WALL> flag does not include the B<WSTOPPED> and B<WEXITED> flags, "
8166 "but implies their functionality."
8167 msgstr ""
8168
8169 #. type: Plain text
8170 #: build/C/man2/ptrace.2:812
8171 msgid ""
8172 "Setting the B<WCONTINUED> flag when calling B<waitpid>(2)  is not "
8173 "recommended: the \"continued\" state is per-process and consuming it can "
8174 "confuse the real parent of the tracee."
8175 msgstr ""
8176
8177 #. type: Plain text
8178 #: build/C/man2/ptrace.2:820
8179 msgid ""
8180 "Use of the B<WNOHANG> flag may cause B<waitpid>(2)  to return 0 (\"no wait "
8181 "results available yet\")  even if the tracer knows there should be a "
8182 "notification.  Example:"
8183 msgstr ""
8184
8185 #. type: Plain text
8186 #: build/C/man2/ptrace.2:829
8187 #, no-wrap
8188 msgid ""
8189 "    errno = 0;\n"
8190 "    ptrace(PTRACE_CONT, pid, 0L, 0L);\n"
8191 "    if (errno == ESRCH) {\n"
8192 "        /* tracee is dead */\n"
8193 "        r = waitpid(tracee, &status, __WALL | WNOHANG);\n"
8194 "        /* r can still be 0 here! */\n"
8195 "    }\n"
8196 msgstr ""
8197
8198 #. type: Plain text
8199 #: build/C/man2/ptrace.2:852
8200 msgid ""
8201 "The following kinds of ptrace-stops exist: signal-delivery-stops, group-"
8202 "stops, B<PTRACE_EVENT> stops, syscall-stops.  They all are reported by "
8203 "B<waitpid>(2)  with I<WIFSTOPPED(status)> true.  They may be differentiated "
8204 "by examining the value I<statusE<gt>E<gt>8>, and if there is ambiguity in "
8205 "that value, by querying B<PTRACE_GETSIGINFO>.  (Note: the I<WSTOPSIG(status)"
8206 "> macro can't be used to perform this examination, because it returns the "
8207 "value I<(statusE<gt>E<gt>8)\\ &\\ 0xff>.)"
8208 msgstr ""
8209
8210 #. type: SS
8211 #: build/C/man2/ptrace.2:852
8212 #, no-wrap
8213 msgid "Signal-delivery-stop"
8214 msgstr ""
8215
8216 #. type: Plain text
8217 #: build/C/man2/ptrace.2:872
8218 msgid ""
8219 "When a (possibly multithreaded) process receives any signal except "
8220 "B<SIGKILL>, the kernel selects an arbitrary thread which handles the "
8221 "signal.  (If the signal is generated with B<tgkill>(2), the target thread "
8222 "can be explicitly selected by the caller.)  If the selected thread is "
8223 "traced, it enters signal-delivery-stop.  At this point, the signal is not "
8224 "yet delivered to the process, and can be suppressed by the tracer.  If the "
8225 "tracer doesn't suppress the signal, it passes the signal to the tracee in "
8226 "the next ptrace restart request.  This second step of signal delivery is "
8227 "called I<signal injection> in this manual page.  Note that if the signal is "
8228 "blocked, signal-delivery-stop doesn't happen until the signal is unblocked, "
8229 "with the usual exception that B<SIGSTOP> can't be blocked."
8230 msgstr ""
8231
8232 #. type: Plain text
8233 #: build/C/man2/ptrace.2:886
8234 msgid ""
8235 "Signal-delivery-stop is observed by the tracer as B<waitpid>(2)  returning "
8236 "with I<WIFSTOPPED(status)> true, with the signal returned by I<WSTOPSIG"
8237 "(status)>.  If the signal is B<SIGTRAP>, this may be a different kind of "
8238 "ptrace-stop; see the \"Syscall-stops\" and \"execve\" sections below for "
8239 "details.  If I<WSTOPSIG(status)> returns a stopping signal, this may be a "
8240 "group-stop; see below."
8241 msgstr ""
8242
8243 #. type: SS
8244 #: build/C/man2/ptrace.2:886
8245 #, no-wrap
8246 msgid "Signal injection and suppression"
8247 msgstr ""
8248
8249 #. type: Plain text
8250 #: build/C/man2/ptrace.2:889
8251 msgid ""
8252 "After signal-delivery-stop is observed by the tracer, the tracer should "
8253 "restart the tracee with the call"
8254 msgstr ""
8255
8256 #. type: Plain text
8257 #: build/C/man2/ptrace.2:891
8258 #, no-wrap
8259 msgid "    ptrace(PTRACE_restart, pid, 0, sig)\n"
8260 msgstr ""
8261
8262 #. type: Plain text
8263 #: build/C/man2/ptrace.2:904
8264 msgid ""
8265 "where B<PTRACE_restart> is one of the restarting ptrace requests.  If I<sig> "
8266 "is 0, then a signal is not delivered.  Otherwise, the signal I<sig> is "
8267 "delivered.  This operation is called I<signal injection> in this manual "
8268 "page, to distinguish it from signal-delivery-stop."
8269 msgstr ""
8270
8271 #. type: Plain text
8272 #: build/C/man2/ptrace.2:910
8273 msgid ""
8274 "The I<sig> value may be different from the I<WSTOPSIG(status)> value: the "
8275 "tracer can cause a different signal to be injected."
8276 msgstr ""
8277
8278 #. type: Plain text
8279 #: build/C/man2/ptrace.2:926
8280 msgid ""
8281 "Note that a suppressed signal still causes system calls to return "
8282 "prematurely.  In this case system calls will be restarted: the tracer will "
8283 "observe the tracee to reexecute the interrupted system call (or "
8284 "B<restart_syscall>(2)  system call for a few syscalls which use a different "
8285 "mechanism for restarting) if the tracer uses B<PTRACE_SYSCALL>.  Even system "
8286 "calls (such as B<poll>(2))  which are not restartable after signal are "
8287 "restarted after signal is suppressed; however, kernel bugs exist which cause "
8288 "some syscalls to fail with B<EINTR> even though no observable signal is "
8289 "injected to the tracee."
8290 msgstr ""
8291
8292 #. type: Plain text
8293 #: build/C/man2/ptrace.2:937
8294 msgid ""
8295 "Restarting ptrace commands issued in ptrace-stops other than signal-delivery-"
8296 "stop are not guaranteed to inject a signal, even if I<sig> is nonzero.  No "
8297 "error is reported; a nonzero I<sig> may simply be ignored.  Ptrace users "
8298 "should not try to \"create a new signal\" this way: use B<tgkill>(2)  "
8299 "instead."
8300 msgstr ""
8301
8302 #. type: Plain text
8303 #: build/C/man2/ptrace.2:944
8304 msgid ""
8305 "The fact that signal injection requests may be ignored when restarting the "
8306 "tracee after ptrace stops that are not signal-delivery-stops is a cause of "
8307 "confusion among ptrace users.  One typical scenario is that the tracer "
8308 "observes group-stop, mistakes it for signal-delivery-stop, restarts the "
8309 "tracee with"
8310 msgstr ""
8311
8312 #. type: Plain text
8313 #: build/C/man2/ptrace.2:946
8314 #, no-wrap
8315 msgid "    ptrace(PTRACE_restart, pid, 0, stopsig)\n"
8316 msgstr ""
8317
8318 #. type: Plain text
8319 #: build/C/man2/ptrace.2:952
8320 msgid ""
8321 "with the intention of injecting I<stopsig>, but I<stopsig> gets ignored and "
8322 "the tracee continues to run."
8323 msgstr ""
8324
8325 #. type: Plain text
8326 #: build/C/man2/ptrace.2:972
8327 msgid ""
8328 "The B<SIGCONT> signal has a side effect of waking up (all threads of)  a "
8329 "group-stopped process.  This side effect happens before signal-delivery-"
8330 "stop.  The tracer can't suppress this side effect (it can only suppress "
8331 "signal injection, which only causes the B<SIGCONT> handler to not be "
8332 "executed in the tracee, if such a handler is installed).  In fact, waking up "
8333 "from group-stop may be followed by signal-delivery-stop for signal(s)  "
8334 "I<other than> B<SIGCONT>, if they were pending when B<SIGCONT> was "
8335 "delivered.  In other words, B<SIGCONT> may be not the first signal observed "
8336 "by the tracee after it was sent."
8337 msgstr ""
8338
8339 #. type: Plain text
8340 #: build/C/man2/ptrace.2:976
8341 msgid ""
8342 "Stopping signals cause (all threads of) a process to enter group-stop.  This "
8343 "side effect happens after signal injection, and therefore can be suppressed "
8344 "by the tracer."
8345 msgstr ""
8346
8347 #
8348 #.  In the Linux 2.4 sources, in arch/i386/kernel/signal.c::do_signal(),
8349 #.  there is:
8350 #.              /* The debugger continued.  Ignore SIGSTOP.  */
8351 #.              if (signr == SIGSTOP)
8352 #.                      continue;
8353 #. type: Plain text
8354 #: build/C/man2/ptrace.2:986
8355 msgid "In Linux 2.4 and earlier, the B<SIGSTOP> signal can't be injected."
8356 msgstr ""
8357
8358 #. type: Plain text
8359 #: build/C/man2/ptrace.2:1003
8360 msgid ""
8361 "B<PTRACE_GETSIGINFO> can be used to retrieve a I<siginfo_t> structure which "
8362 "corresponds to the delivered signal.  B<PTRACE_SETSIGINFO> may be used to "
8363 "modify it.  If B<PTRACE_SETSIGINFO> has been used to alter I<siginfo_t>, the "
8364 "I<si_signo> field and the I<sig> parameter in the restarting command must "
8365 "match, otherwise the result is undefined."
8366 msgstr ""
8367
8368 #. type: SS
8369 #: build/C/man2/ptrace.2:1003
8370 #, no-wrap
8371 msgid "Group-stop"
8372 msgstr ""
8373
8374 #. type: Plain text
8375 #: build/C/man2/ptrace.2:1015
8376 msgid ""
8377 "When a (possibly multithreaded) process receives a stopping signal, all "
8378 "threads stop.  If some threads are traced, they enter a group-stop.  Note "
8379 "that the stopping signal will first cause signal-delivery-stop (on one "
8380 "tracee only), and only after it is injected by the tracer (or after it was "
8381 "dispatched to a thread which isn't traced), will group-stop be initiated on "
8382 "I<all> tracees within the multithreaded process.  As usual, every tracee "
8383 "reports its group-stop separately to the corresponding tracer."
8384 msgstr ""
8385
8386 #. type: Plain text
8387 #: build/C/man2/ptrace.2:1024
8388 msgid ""
8389 "Group-stop is observed by the tracer as B<waitpid>(2)  returning with "
8390 "I<WIFSTOPPED(status)> true, with the stopping signal available via I<WSTOPSIG"
8391 "(status)>.  The same result is returned by some other classes of ptrace-"
8392 "stops, therefore the recommended practice is to perform the call"
8393 msgstr ""
8394
8395 #. type: Plain text
8396 #: build/C/man2/ptrace.2:1026
8397 #, no-wrap
8398 msgid "    ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo)\n"
8399 msgstr ""
8400
8401 #. type: Plain text
8402 #: build/C/man2/ptrace.2:1047
8403 msgid ""
8404 "The call can be avoided if the signal is not B<SIGSTOP>, B<SIGTSTP>, "
8405 "B<SIGTTIN>, or B<SIGTTOU>; only these four signals are stopping signals.  If "
8406 "the tracer sees something else, it can't be a group-stop.  Otherwise, the "
8407 "tracer needs to call B<PTRACE_GETSIGINFO>.  If B<PTRACE_GETSIGINFO> fails "
8408 "with B<EINVAL>, then it is definitely a group-stop.  (Other failure codes "
8409 "are possible, such as B<ESRCH> (\"no such process\") if a B<SIGKILL> killed "
8410 "the tracee.)"
8411 msgstr ""
8412
8413 #. type: Plain text
8414 #: build/C/man2/ptrace.2:1056
8415 msgid ""
8416 "As of Linux 2.6.38, after the tracer sees the tracee ptrace-stop and until "
8417 "it restarts or kills it, the tracee will not run, and will not send "
8418 "notifications (except B<SIGKILL> death) to the tracer, even if the tracer "
8419 "enters into another B<waitpid>(2)  call."
8420 msgstr ""
8421
8422 #. type: Plain text
8423 #: build/C/man2/ptrace.2:1070
8424 msgid ""
8425 "The kernel behavior described in the previous paragraph causes a problem "
8426 "with transparent handling of stopping signals.  If the tracer restarts the "
8427 "tracee after group-stop, the stopping signal is effectively ignored\\(emthe "
8428 "tracee doesn't remain stopped, it runs.  If the tracer doesn't restart the "
8429 "tracee before entering into the next B<waitpid>(2), future B<SIGCONT> "
8430 "signals will not be reported to the tracer; this would cause the B<SIGCONT> "
8431 "signals to have no effect on the tracee."
8432 msgstr ""
8433
8434 #. type: Plain text
8435 #: build/C/man2/ptrace.2:1081
8436 msgid ""
8437 "Since Linux 3.4, there is a method to overcome this problem: instead of "
8438 "B<PTRACE_CONT>, a B<PTRACE_LISTEN> command can be used to restart a tracee "
8439 "in a way where it does not execute, but waits for a new event which it can "
8440 "report via B<waitpid>(2)  (such as when it is restarted by a B<SIGCONT>)."
8441 msgstr ""
8442
8443 #. type: SS
8444 #: build/C/man2/ptrace.2:1081
8445 #, no-wrap
8446 msgid "PTRACE_EVENT stops"
8447 msgstr ""
8448
8449 #. type: Plain text
8450 #: build/C/man2/ptrace.2:1087
8451 msgid ""
8452 "If the tracer sets B<PTRACE_O_TRACE_*> options, the tracee will enter ptrace-"
8453 "stops called B<PTRACE_EVENT> stops."
8454 msgstr ""
8455
8456 #. type: Plain text
8457 #: build/C/man2/ptrace.2:1101
8458 msgid ""
8459 "B<PTRACE_EVENT> stops are observed by the tracer as B<waitpid>(2)  returning "
8460 "with I<WIFSTOPPED(status)>, and I<WSTOPSIG(status)> returns B<SIGTRAP>.  An "
8461 "additional bit is set in the higher byte of the status word: the value "
8462 "I<statusE<gt>E<gt>8> will be"
8463 msgstr ""
8464
8465 #. type: Plain text
8466 #: build/C/man2/ptrace.2:1103
8467 #, no-wrap
8468 msgid "    (SIGTRAP | PTRACE_EVENT_foo E<lt>E<lt> 8).\n"
8469 msgstr ""
8470
8471 #. type: Plain text
8472 #: build/C/man2/ptrace.2:1105
8473 msgid "The following events exist:"
8474 msgstr ""
8475
8476 #. type: TP
8477 #: build/C/man2/ptrace.2:1105
8478 #, no-wrap
8479 msgid "B<PTRACE_EVENT_VFORK>"
8480 msgstr "B<PTRACE_EVENT_VFORK>"
8481
8482 #. type: Plain text
8483 #: build/C/man2/ptrace.2:1118
8484 msgid ""
8485 "Stop before return from B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> "
8486 "flag.  When the tracee is continued after this stop, it will wait for child "
8487 "to exit/exec before continuing its execution (in other words, the usual "
8488 "behavior on B<vfork>(2))."
8489 msgstr ""
8490
8491 #. type: TP
8492 #: build/C/man2/ptrace.2:1118
8493 #, no-wrap
8494 msgid "B<PTRACE_EVENT_FORK>"
8495 msgstr "B<PTRACE_EVENT_FORK>"
8496
8497 #. type: Plain text
8498 #: build/C/man2/ptrace.2:1126
8499 msgid ""
8500 "Stop before return from B<fork>(2)  or B<clone>(2)  with the exit signal set "
8501 "to B<SIGCHLD>."
8502 msgstr ""
8503
8504 #. type: TP
8505 #: build/C/man2/ptrace.2:1126
8506 #, no-wrap
8507 msgid "B<PTRACE_EVENT_CLONE>"
8508 msgstr "B<PTRACE_EVENT_CLONE>"
8509
8510 #. type: Plain text
8511 #: build/C/man2/ptrace.2:1130
8512 msgid "Stop before return from B<clone>(2)."
8513 msgstr ""
8514
8515 #. type: TP
8516 #: build/C/man2/ptrace.2:1130
8517 #, no-wrap
8518 msgid "B<PTRACE_EVENT_VFORK_DONE>"
8519 msgstr "B<PTRACE_EVENT_VFORK_DONE>"
8520
8521 #. type: Plain text
8522 #: build/C/man2/ptrace.2:1140
8523 msgid ""
8524 "Stop before return from B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> "
8525 "flag, but after the child unblocked this tracee by exiting or execing."
8526 msgstr ""
8527
8528 #. type: Plain text
8529 #: build/C/man2/ptrace.2:1146
8530 msgid ""
8531 "For all four stops described above, the stop occurs in the parent (i.e., the "
8532 "tracee), not in the newly created thread.  B<PTRACE_GETEVENTMSG> can be used "
8533 "to retrieve the new thread's ID."
8534 msgstr ""
8535
8536 #. type: TP
8537 #: build/C/man2/ptrace.2:1146
8538 #, no-wrap
8539 msgid "B<PTRACE_EVENT_EXEC>"
8540 msgstr "B<PTRACE_EVENT_EXEC>"
8541
8542 #. type: Plain text
8543 #: build/C/man2/ptrace.2:1153
8544 msgid ""
8545 "Stop before return from B<execve>(2).  Since Linux 3.0, "
8546 "B<PTRACE_GETEVENTMSG> returns the former thread ID."
8547 msgstr ""
8548
8549 #. type: TP
8550 #: build/C/man2/ptrace.2:1153
8551 #, no-wrap
8552 msgid "B<PTRACE_EVENT_EXIT>"
8553 msgstr "B<PTRACE_EVENT_EXIT>"
8554
8555 #. type: Plain text
8556 #: build/C/man2/ptrace.2:1169
8557 msgid ""
8558 "Stop before exit (including death from B<exit_group>(2)), signal death, or "
8559 "exit caused by B<execve>(2)  in a multithreaded process.  "
8560 "B<PTRACE_GETEVENTMSG> returns the exit status.  Registers can be examined "
8561 "(unlike when \"real\" exit happens).  The tracee is still alive; it needs to "
8562 "be B<PTRACE_CONT>ed or B<PTRACE_DETACH>ed to finish exiting."
8563 msgstr ""
8564
8565 #. type: TP
8566 #: build/C/man2/ptrace.2:1169
8567 #, fuzzy, no-wrap
8568 #| msgid "B<PTRACE_EVENT_FORK>"
8569 msgid "B<PTRACE_EVENT_STOP>"
8570 msgstr "B<PTRACE_EVENT_FORK>"
8571
8572 #. type: Plain text
8573 #: build/C/man2/ptrace.2:1174
8574 msgid "Stop induced by B<PTRACE_INTERRUPT> command."
8575 msgstr ""
8576
8577 #. type: Plain text
8578 #: build/C/man2/ptrace.2:1186
8579 msgid ""
8580 "B<PTRACE_GETSIGINFO> on B<PTRACE_EVENT> stops returns B<SIGTRAP> in "
8581 "I<si_signo>, with I<si_code> set to I<(eventE<lt>E<lt>8)\\ |\\ SIGTRAP>."
8582 msgstr ""
8583
8584 #. type: SS
8585 #: build/C/man2/ptrace.2:1186
8586 #, no-wrap
8587 msgid "Syscall-stops"
8588 msgstr ""
8589
8590 #. type: Plain text
8591 #: build/C/man2/ptrace.2:1199
8592 msgid ""
8593 "If the tracee was restarted by B<PTRACE_SYSCALL>, the tracee enters syscall-"
8594 "enter-stop just prior to entering any system call.  If the tracer restarts "
8595 "the tracee with B<PTRACE_SYSCALL>, the tracee enters syscall-exit-stop when "
8596 "the system call is finished, or if it is interrupted by a signal.  (That is, "
8597 "signal-delivery-stop never happens between syscall-enter-stop and syscall-"
8598 "exit-stop; it happens I<after> syscall-exit-stop.)"
8599 msgstr ""
8600
8601 #. type: Plain text
8602 #: build/C/man2/ptrace.2:1213
8603 msgid ""
8604 "Other possibilities are that the tracee may stop in a B<PTRACE_EVENT> stop, "
8605 "exit (if it entered B<_exit>(2)  or B<exit_group>(2)), be killed by "
8606 "B<SIGKILL>, or die silently (if it is a thread group leader, the B<execve>"
8607 "(2)  happened in another thread, and that thread is not traced by the same "
8608 "tracer; this situation is discussed later)."
8609 msgstr ""
8610
8611 #. type: Plain text
8612 #: build/C/man2/ptrace.2:1228
8613 msgid ""
8614 "Syscall-enter-stop and syscall-exit-stop are observed by the tracer as "
8615 "B<waitpid>(2)  returning with I<WIFSTOPPED(status)> true, and I<WSTOPSIG"
8616 "(status)> giving B<SIGTRAP>.  If the B<PTRACE_O_TRACESYSGOOD> option was set "
8617 "by the tracer, then I<WSTOPSIG(status)> will give the value I<(SIGTRAP\\ |\\ "
8618 "0x80)>."
8619 msgstr ""
8620
8621 #. type: Plain text
8622 #: build/C/man2/ptrace.2:1234
8623 msgid ""
8624 "Syscall-stops can be distinguished from signal-delivery-stop with B<SIGTRAP> "
8625 "by querying B<PTRACE_GETSIGINFO> for the following cases:"
8626 msgstr ""
8627
8628 #. type: TP
8629 #: build/C/man2/ptrace.2:1234
8630 #, no-wrap
8631 msgid "I<si_code> E<lt>= 0"
8632 msgstr ""
8633
8634 #. type: Plain text
8635 #: build/C/man2/ptrace.2:1246
8636 msgid ""
8637 "B<SIGTRAP> was delivered as a result of a user-space action, for example, a "
8638 "system call (B<tgkill>(2), B<kill>(2), B<sigqueue>(3), etc.), expiration of "
8639 "a POSIX timer, change of state on a POSIX message queue, or completion of an "
8640 "asynchronous I/O request."
8641 msgstr ""
8642
8643 #. type: TP
8644 #: build/C/man2/ptrace.2:1246
8645 #, no-wrap
8646 msgid "I<si_code> == SI_KERNEL (0x80)"
8647 msgstr ""
8648
8649 #. type: Plain text
8650 #: build/C/man2/ptrace.2:1250
8651 msgid "B<SIGTRAP> was sent by the kernel."
8652 msgstr ""
8653
8654 #. type: TP
8655 #: build/C/man2/ptrace.2:1250
8656 #, no-wrap
8657 msgid "I<si_code> == SIGTRAP or I<si_code> == (SIGTRAP|0x80)"
8658 msgstr ""
8659
8660 #. type: Plain text
8661 #: build/C/man2/ptrace.2:1253
8662 msgid "This is a syscall-stop."
8663 msgstr ""
8664
8665 #. type: Plain text
8666 #: build/C/man2/ptrace.2:1258
8667 msgid ""
8668 "However, syscall-stops happen very often (twice per system call), and "
8669 "performing B<PTRACE_GETSIGINFO> for every syscall-stop may be somewhat "
8670 "expensive."
8671 msgstr ""
8672
8673 #. type: Plain text
8674 #: build/C/man2/ptrace.2:1281
8675 msgid ""
8676 "Some architectures allow the cases to be distinguished by examining "
8677 "registers.  For example, on x86, I<rax> == -B<ENOSYS> in syscall-enter-"
8678 "stop.  Since B<SIGTRAP> (like any other signal) always happens I<after> "
8679 "syscall-exit-stop, and at this point I<rax> almost never contains -"
8680 "B<ENOSYS>, the B<SIGTRAP> looks like \"syscall-stop which is not syscall-"
8681 "enter-stop\"; in other words, it looks like a \"stray syscall-exit-stop\" "
8682 "and can be detected this way.  But such detection is fragile and is best "
8683 "avoided."
8684 msgstr ""
8685
8686 #. type: Plain text
8687 #: build/C/man2/ptrace.2:1287
8688 msgid ""
8689 "Using the B<PTRACE_O_TRACESYSGOOD> option is the recommended method to "
8690 "distinguish syscall-stops from other kinds of ptrace-stops, since it is "
8691 "reliable and does not incur a performance penalty."
8692 msgstr ""
8693
8694 #. type: Plain text
8695 #: build/C/man2/ptrace.2:1298
8696 msgid ""
8697 "Syscall-enter-stop and syscall-exit-stop are indistinguishable from each "
8698 "other by the tracer.  The tracer needs to keep track of the sequence of "
8699 "ptrace-stops in order to not misinterpret syscall-enter-stop as syscall-exit-"
8700 "stop or vice versa.  The rule is that syscall-enter-stop is always followed "
8701 "by syscall-exit-stop, B<PTRACE_EVENT> stop or the tracee's death; no other "
8702 "kinds of ptrace-stop can occur in between."
8703 msgstr ""
8704
8705 #. type: Plain text
8706 #: build/C/man2/ptrace.2:1303
8707 msgid ""
8708 "If after syscall-enter-stop, the tracer uses a restarting command other than "
8709 "B<PTRACE_SYSCALL>, syscall-exit-stop is not generated."
8710 msgstr ""
8711
8712 #. type: Plain text
8713 #: build/C/man2/ptrace.2:1315
8714 msgid ""
8715 "B<PTRACE_GETSIGINFO> on syscall-stops returns B<SIGTRAP> in I<si_signo>, "
8716 "with I<si_code> set to B<SIGTRAP> or I<(SIGTRAP|0x80)>."
8717 msgstr ""
8718
8719 #. type: SS
8720 #: build/C/man2/ptrace.2:1315
8721 #, no-wrap
8722 msgid "PTRACE_SINGLESTEP, PTRACE_SYSEMU, PTRACE_SYSEMU_SINGLESTEP stops"
8723 msgstr ""
8724
8725 #
8726 #.  FIXME
8727 #.  document stops occurring with PTRACE_SINGLESTEP, PTRACE_SYSEMU,
8728 #.  PTRACE_SYSEMU_SINGLESTEP
8729 #. type: Plain text
8730 #: build/C/man2/ptrace.2:1321
8731 msgid "[Details of these kinds of stops are yet to be documented.]"
8732 msgstr ""
8733
8734 #. type: SS
8735 #: build/C/man2/ptrace.2:1321
8736 #, no-wrap
8737 msgid "Informational and restarting ptrace commands"
8738 msgstr ""
8739
8740 #. type: Plain text
8741 #: build/C/man2/ptrace.2:1331
8742 msgid ""
8743 "Most ptrace commands (all except B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, "
8744 "B<PTRACE_TRACEME>, B<PTRACE_INTERRUPT>, and B<PTRACE_KILL>)  require the "
8745 "tracee to be in a ptrace-stop, otherwise they fail with B<ESRCH>."
8746 msgstr ""
8747
8748 #. type: Plain text
8749 #: build/C/man2/ptrace.2:1336
8750 msgid ""
8751 "When the tracee is in ptrace-stop, the tracer can read and write data to the "
8752 "tracee using informational commands.  These commands leave the tracee in "
8753 "ptrace-stopped state:"
8754 msgstr ""
8755
8756 #. type: Plain text
8757 #: build/C/man2/ptrace.2:1348
8758 #, no-wrap
8759 msgid ""
8760 "    ptrace(PTRACE_PEEKTEXT/PEEKDATA/PEEKUSER, pid, addr, 0);\n"
8761 "    ptrace(PTRACE_POKETEXT/POKEDATA/POKEUSER, pid, addr, long_val);\n"
8762 "    ptrace(PTRACE_GETREGS/GETFPREGS, pid, 0, &struct);\n"
8763 "    ptrace(PTRACE_SETREGS/SETFPREGS, pid, 0, &struct);\n"
8764 "    ptrace(PTRACE_GETREGSET, pid, NT_foo, &iov);\n"
8765 "    ptrace(PTRACE_SETREGSET, pid, NT_foo, &iov);\n"
8766 "    ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo);\n"
8767 "    ptrace(PTRACE_SETSIGINFO, pid, 0, &siginfo);\n"
8768 "    ptrace(PTRACE_GETEVENTMSG, pid, 0, &long_var);\n"
8769 "    ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
8770 msgstr ""
8771
8772 #. type: Plain text
8773 #: build/C/man2/ptrace.2:1360
8774 msgid ""
8775 "Note that some errors are not reported.  For example, setting signal "
8776 "information (I<siginfo>)  may have no effect in some ptrace-stops, yet the "
8777 "call may succeed (return 0 and not set I<errno>); querying "
8778 "B<PTRACE_GETEVENTMSG> may succeed and return some random value if current "
8779 "ptrace-stop is not documented as returning a meaningful event message."
8780 msgstr ""
8781
8782 #. type: Plain text
8783 #: build/C/man2/ptrace.2:1362
8784 msgid "The call"
8785 msgstr ""
8786
8787 #. type: Plain text
8788 #: build/C/man2/ptrace.2:1364
8789 #, no-wrap
8790 msgid "    ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
8791 msgstr ""
8792
8793 #. type: Plain text
8794 #: build/C/man2/ptrace.2:1373
8795 msgid ""
8796 "affects one tracee.  The tracee's current flags are replaced.  Flags are "
8797 "inherited by new tracees created and \"auto-attached\" via active "
8798 "B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, or B<PTRACE_O_TRACECLONE> "
8799 "options."
8800 msgstr ""
8801
8802 #. type: Plain text
8803 #: build/C/man2/ptrace.2:1376
8804 msgid ""
8805 "Another group of commands makes the ptrace-stopped tracee run.  They have "
8806 "the form:"
8807 msgstr ""
8808
8809 #. type: Plain text
8810 #: build/C/man2/ptrace.2:1378
8811 #, no-wrap
8812 msgid "    ptrace(cmd, pid, 0, sig);\n"
8813 msgstr ""
8814
8815 #. type: Plain text
8816 #: build/C/man2/ptrace.2:1399
8817 msgid ""
8818 "where I<cmd> is B<PTRACE_CONT>, B<PTRACE_LISTEN>, B<PTRACE_DETACH>, "
8819 "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>, B<PTRACE_SYSEMU>, or "
8820 "B<PTRACE_SYSEMU_SINGLESTEP>.  If the tracee is in signal-delivery-stop, "
8821 "I<sig> is the signal to be injected (if it is nonzero).  Otherwise, I<sig> "
8822 "may be ignored.  (When restarting a tracee from a ptrace-stop other than "
8823 "signal-delivery-stop, recommended practice is to always pass 0 in I<sig>.)"
8824 msgstr ""
8825
8826 #. type: SS
8827 #: build/C/man2/ptrace.2:1399
8828 #, no-wrap
8829 msgid "Attaching and detaching"
8830 msgstr ""
8831
8832 #. type: Plain text
8833 #: build/C/man2/ptrace.2:1401
8834 msgid "A thread can be attached to the tracer using the call"
8835 msgstr ""
8836
8837 #. type: Plain text
8838 #: build/C/man2/ptrace.2:1403
8839 #, no-wrap
8840 msgid "    ptrace(PTRACE_ATTACH, pid, 0, 0);\n"
8841 msgstr ""
8842
8843 #. type: Plain text
8844 #: build/C/man2/ptrace.2:1405 build/C/man2/ptrace.2:1895
8845 msgid "or"
8846 msgstr ""
8847
8848 #. type: Plain text
8849 #: build/C/man2/ptrace.2:1407
8850 #, no-wrap
8851 msgid "    ptrace(PTRACE_SEIZE, pid, 0, PTRACE_O_flags);\n"
8852 msgstr ""
8853
8854 #
8855 #.  FIXME: Describe how to attach to a thread which is already
8856 #.         group-stopped.
8857 #. type: Plain text
8858 #: build/C/man2/ptrace.2:1432
8859 msgid ""
8860 "B<PTRACE_ATTACH> sends B<SIGSTOP> to this thread.  If the tracer wants this "
8861 "B<SIGSTOP> to have no effect, it needs to suppress it.  Note that if other "
8862 "signals are concurrently sent to this thread during attach, the tracer may "
8863 "see the tracee enter signal-delivery-stop with other signal(s) first! The "
8864 "usual practice is to reinject these signals until B<SIGSTOP> is seen, then "
8865 "suppress B<SIGSTOP> injection.  The design bug here is that a ptrace attach "
8866 "and a concurrently delivered B<SIGSTOP> may race and the concurrent "
8867 "B<SIGSTOP> may be lost."
8868 msgstr ""
8869
8870 #. type: Plain text
8871 #: build/C/man2/ptrace.2:1439
8872 msgid ""
8873 "Since attaching sends B<SIGSTOP> and the tracer usually suppresses it, this "
8874 "may cause a stray B<EINTR> return from the currently executing system call "
8875 "in the tracee, as described in the \"Signal injection and suppression\" "
8876 "section."
8877 msgstr ""
8878
8879 #. type: Plain text
8880 #: build/C/man2/ptrace.2:1451
8881 msgid ""
8882 "Since Linux 3.4, B<PTRACE_SEIZE> can be used instead of B<PTRACE_ATTACH>.  "
8883 "B<PTRACE_SEIZE> does not stop the attached process.  If you need to stop it "
8884 "after attach (or at any other time) without sending it any signals, use "
8885 "B<PTRACE_INTERRUPT> command."
8886 msgstr ""
8887
8888 #. type: Plain text
8889 #: build/C/man2/ptrace.2:1453
8890 msgid "The request"
8891 msgstr ""
8892
8893 #. type: Plain text
8894 #: build/C/man2/ptrace.2:1455
8895 #, no-wrap
8896 msgid "    ptrace(PTRACE_TRACEME, 0, 0, 0);\n"
8897 msgstr ""
8898
8899 #. type: Plain text
8900 #: build/C/man2/ptrace.2:1461
8901 msgid ""
8902 "turns the calling thread into a tracee.  The thread continues to run "
8903 "(doesn't enter ptrace-stop).  A common practice is to follow the "
8904 "B<PTRACE_TRACEME> with"
8905 msgstr ""
8906
8907 #. type: Plain text
8908 #: build/C/man2/ptrace.2:1463
8909 #, no-wrap
8910 msgid "    raise(SIGSTOP);\n"
8911 msgstr ""
8912
8913 #. type: Plain text
8914 #: build/C/man2/ptrace.2:1466
8915 msgid ""
8916 "and allow the parent (which is our tracer now) to observe our signal-"
8917 "delivery-stop."
8918 msgstr ""
8919
8920 #. type: Plain text
8921 #: build/C/man2/ptrace.2:1490
8922 msgid ""
8923 "If the B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, or "
8924 "B<PTRACE_O_TRACECLONE> options are in effect, then children created by, "
8925 "respectively, B<vfork>(2)  or B<clone>(2)  with the B<CLONE_VFORK> flag, "
8926 "B<fork>(2)  or B<clone>(2)  with the exit signal set to B<SIGCHLD>, and "
8927 "other kinds of B<clone>(2), are automatically attached to the same tracer "
8928 "which traced their parent.  B<SIGSTOP> is delivered to the children, causing "
8929 "them to enter signal-delivery-stop after they exit the system call which "
8930 "created them."
8931 msgstr ""
8932
8933 #. type: Plain text
8934 #: build/C/man2/ptrace.2:1492
8935 msgid "Detaching of the tracee is performed by:"
8936 msgstr ""
8937
8938 #. type: Plain text
8939 #: build/C/man2/ptrace.2:1494
8940 #, no-wrap
8941 msgid "    ptrace(PTRACE_DETACH, pid, 0, sig);\n"
8942 msgstr ""
8943
8944 #. type: Plain text
8945 #: build/C/man2/ptrace.2:1502
8946 msgid ""
8947 "B<PTRACE_DETACH> is a restarting operation; therefore it requires the tracee "
8948 "to be in ptrace-stop.  If the tracee is in signal-delivery-stop, a signal "
8949 "can be injected.  Otherwise, the I<sig> parameter may be silently ignored."
8950 msgstr ""
8951
8952 #.  FIXME: Describe how to detach from a group-stopped tracee so that it
8953 #.         doesn't run, but continues to wait for SIGCONT.
8954 #. type: Plain text
8955 #: build/C/man2/ptrace.2:1526
8956 msgid ""
8957 "If the tracee is running when the tracer wants to detach it, the usual "
8958 "solution is to send B<SIGSTOP> (using B<tgkill>(2), to make sure it goes to "
8959 "the correct thread), wait for the tracee to stop in signal-delivery-stop for "
8960 "B<SIGSTOP> and then detach it (suppressing B<SIGSTOP> injection).  A design "
8961 "bug is that this can race with concurrent B<SIGSTOP>s.  Another complication "
8962 "is that the tracee may enter other ptrace-stops and needs to be restarted "
8963 "and waited for again, until B<SIGSTOP> is seen.  Yet another complication is "
8964 "to be sure that the tracee is not already ptrace-stopped, because no signal "
8965 "delivery happens while it is\\(emnot even B<SIGSTOP>."
8966 msgstr ""
8967
8968 #. type: Plain text
8969 #: build/C/man2/ptrace.2:1534
8970 msgid ""
8971 "If the tracer dies, all tracees are automatically detached and restarted, "
8972 "unless they were in group-stop.  Handling of restart from group-stop is "
8973 "currently buggy, but the \"as planned\" behavior is to leave tracee stopped "
8974 "and waiting for B<SIGCONT>.  If the tracee is restarted from signal-delivery-"
8975 "stop, the pending signal is injected."
8976 msgstr ""
8977
8978 #. type: SS
8979 #: build/C/man2/ptrace.2:1534
8980 #, no-wrap
8981 msgid "execve(2) under ptrace"
8982 msgstr ""
8983
8984 #
8985 #.  clone(2) CLONE_THREAD says:
8986 #.      If  any  of the threads in a thread group performs an execve(2),
8987 #.      then all threads other than the thread group leader are terminated,
8988 #.      and the new program is executed in the thread group leader.
8989 #.  In kernel 3.1 sources, see fs/exec.c::de_thread()
8990 #. type: Plain text
8991 #: build/C/man2/ptrace.2:1553
8992 msgid ""
8993 "When one thread in a multithreaded process calls B<execve>(2), the kernel "
8994 "destroys all other threads in the process, and resets the thread ID of the "
8995 "execing thread to the thread group ID (process ID).  (Or, to put things "
8996 "another way, when a multithreaded process does an B<execve>(2), at "
8997 "completion of the call, it appears as though the B<execve>(2)  occurred in "
8998 "the thread group leader, regardless of which thread did the B<execve>(2).)  "
8999 "This resetting of the thread ID looks very confusing to tracers:"
9000 msgstr ""
9001
9002 #. type: Plain text
9003 #: build/C/man2/ptrace.2:1563
9004 msgid ""
9005 "All other threads stop in B<PTRACE_EVENT_EXIT> stop, if the "
9006 "B<PTRACE_O_TRACEEXIT> option was turned on.  Then all other threads except "
9007 "the thread group leader report death as if they exited via B<_exit>(2)  with "
9008 "exit code 0."
9009 msgstr ""
9010
9011 #. type: Plain text
9012 #: build/C/man2/ptrace.2:1571
9013 msgid ""
9014 "The execing tracee changes its thread ID while it is in the B<execve>(2).  "
9015 "(Remember, under ptrace, the \"pid\" returned from B<waitpid>(2), or fed "
9016 "into ptrace calls, is the tracee's thread ID.)  That is, the tracee's thread "
9017 "ID is reset to be the same as its process ID, which is the same as the "
9018 "thread group leader's thread ID."
9019 msgstr ""
9020
9021 #. type: Plain text
9022 #: build/C/man2/ptrace.2:1577
9023 msgid ""
9024 "Then a B<PTRACE_EVENT_EXEC> stop happens, if the B<PTRACE_O_TRACEEXEC> "
9025 "option was turned on."
9026 msgstr ""
9027
9028 #. type: Plain text
9029 #: build/C/man2/ptrace.2:1598
9030 msgid ""
9031 "If the thread group leader has reported its B<PTRACE_EVENT_EXIT> stop by "
9032 "this time, it appears to the tracer that the dead thread leader \"reappears "
9033 "from nowhere\".  (Note: the thread group leader does not report death via "
9034 "I<WIFEXITED(status)> until there is at least one other live thread.  This "
9035 "eliminates the possibility that the tracer will see it dying and then "
9036 "reappearing.)  If the thread group leader was still alive, for the tracer "
9037 "this may look as if thread group leader returns from a different system call "
9038 "than it entered, or even \"returned from a system call even though it was "
9039 "not in any system call\".  If the thread group leader was not traced (or was "
9040 "traced by a different tracer), then during B<execve>(2)  it will appear as "
9041 "if it has become a tracee of the tracer of the execing tracee."
9042 msgstr ""
9043
9044 #. type: Plain text
9045 #: build/C/man2/ptrace.2:1601
9046 msgid ""
9047 "All of the above effects are the artifacts of the thread ID change in the "
9048 "tracee."
9049 msgstr ""
9050
9051 #. type: Plain text
9052 #: build/C/man2/ptrace.2:1621
9053 msgid ""
9054 "The B<PTRACE_O_TRACEEXEC> option is the recommended tool for dealing with "
9055 "this situation.  First, it enables B<PTRACE_EVENT_EXEC> stop, which occurs "
9056 "before B<execve>(2)  returns.  In this stop, the tracer can use "
9057 "B<PTRACE_GETEVENTMSG> to retrieve the tracee's former thread ID.  (This "
9058 "feature was introduced in Linux 3.0).  Second, the B<PTRACE_O_TRACEEXEC> "
9059 "option disables legacy B<SIGTRAP> generation on B<execve>(2)."
9060 msgstr ""
9061
9062 #. type: Plain text
9063 #: build/C/man2/ptrace.2:1627
9064 msgid ""
9065 "When the tracer receives B<PTRACE_EVENT_EXEC> stop notification, it is "
9066 "guaranteed that except this tracee and the thread group leader, no other "
9067 "threads from the process are alive."
9068 msgstr ""
9069
9070 #. type: Plain text
9071 #: build/C/man2/ptrace.2:1635
9072 msgid ""
9073 "On receiving the B<PTRACE_EVENT_EXEC> stop notification, the tracer should "
9074 "clean up all its internal data structures describing the threads of this "
9075 "process, and retain only one data structure\\(emone which describes the "
9076 "single still running tracee, with"
9077 msgstr ""
9078
9079 #. type: Plain text
9080 #: build/C/man2/ptrace.2:1637
9081 #, no-wrap
9082 msgid "    thread ID == thread group ID == process ID.\n"
9083 msgstr ""
9084
9085 #. type: Plain text
9086 #: build/C/man2/ptrace.2:1641
9087 msgid "Example: two threads call B<execve>(2)  at the same time:"
9088 msgstr ""
9089
9090 #. type: Plain text
9091 #: build/C/man2/ptrace.2:1652
9092 #, no-wrap
9093 msgid ""
9094 "*** we get syscall-enter-stop in thread 1: **\n"
9095 "PID1 execve(\"/bin/foo\", \"foo\" E<lt>unfinished ...E<gt>\n"
9096 "*** we issue PTRACE_SYSCALL for thread 1 **\n"
9097 "*** we get syscall-enter-stop in thread 2: **\n"
9098 "PID2 execve(\"/bin/bar\", \"bar\" E<lt>unfinished ...E<gt>\n"
9099 "*** we issue PTRACE_SYSCALL for thread 2 **\n"
9100 "*** we get PTRACE_EVENT_EXEC for PID0, we issue PTRACE_SYSCALL **\n"
9101 "*** we get syscall-exit-stop for PID0: **\n"
9102 "PID0 E<lt>... execve resumedE<gt> )             = 0\n"
9103 msgstr ""
9104
9105 #. type: Plain text
9106 #: build/C/man2/ptrace.2:1675
9107 msgid ""
9108 "If the B<PTRACE_O_TRACEEXEC> option is I<not> in effect for the execing "
9109 "tracee, the kernel delivers an extra B<SIGTRAP> to the tracee after B<execve>"
9110 "(2)  returns.  This is an ordinary signal (similar to one which can be "
9111 "generated by I<kill -TRAP>), not a special kind of ptrace-stop.  Employing "
9112 "B<PTRACE_GETSIGINFO> for this signal returns I<si_code> set to 0 "
9113 "(I<SI_USER>).  This signal may be blocked by signal mask, and thus may be "
9114 "delivered (much) later."
9115 msgstr ""
9116
9117 #. type: Plain text
9118 #: build/C/man2/ptrace.2:1694
9119 msgid ""
9120 "Usually, the tracer (for example, B<strace>(1))  would not want to show this "
9121 "extra post-execve B<SIGTRAP> signal to the user, and would suppress its "
9122 "delivery to the tracee (if B<SIGTRAP> is set to B<SIG_DFL>, it is a killing "
9123 "signal).  However, determining I<which> B<SIGTRAP> to suppress is not easy.  "
9124 "Setting the B<PTRACE_O_TRACEEXEC> option and thus suppressing this extra "
9125 "B<SIGTRAP> is the recommended approach."
9126 msgstr ""
9127
9128 #. type: SS
9129 #: build/C/man2/ptrace.2:1694
9130 #, no-wrap
9131 msgid "Real parent"
9132 msgstr ""
9133
9134 #. type: Plain text
9135 #: build/C/man2/ptrace.2:1701
9136 msgid ""
9137 "The ptrace API (ab)uses the standard UNIX parent/child signaling over "
9138 "B<waitpid>(2).  This used to cause the real parent of the process to stop "
9139 "receiving several kinds of B<waitpid>(2)  notifications when the child "
9140 "process is traced by some other process."
9141 msgstr ""
9142
9143 #. type: Plain text
9144 #: build/C/man2/ptrace.2:1704
9145 msgid ""
9146 "Many of these bugs have been fixed, but as of Linux 2.6.38 several still "
9147 "exist; see BUGS below."
9148 msgstr ""
9149
9150 #. type: Plain text
9151 #: build/C/man2/ptrace.2:1706
9152 msgid "As of Linux 2.6.38, the following is believed to work correctly:"
9153 msgstr ""
9154
9155 #. type: Plain text
9156 #: build/C/man2/ptrace.2:1714
9157 msgid ""
9158 "exit/death by signal is reported first to the tracer, then, when the tracer "
9159 "consumes the B<waitpid>(2)  result, to the real parent (to the real parent "
9160 "only when the whole multithreaded process exits).  If the tracer and the "
9161 "real parent are the same process, the report is sent only once."
9162 msgstr ""
9163
9164 #. type: Plain text
9165 #: build/C/man2/ptrace.2:1728
9166 #, fuzzy
9167 #| msgid ""
9168 #| "On success, B<PTRACE_PEEK*> requests return the requested data, while "
9169 #| "other requests return zero.  On error, all requests return -1, and "
9170 #| "I<errno> is set appropriately.  Since the value returned by a successful "
9171 #| "B<PTRACE_PEEK*> request may be -1, the caller must check I<errno> after "
9172 #| "such requests to determine whether or not an error occurred."
9173 msgid ""
9174 "On success, B<PTRACE_PEEK*> requests return the requested data, while other "
9175 "requests return zero.  On error, all requests return -1, and I<errno> is set "
9176 "appropriately.  Since the value returned by a successful B<PTRACE_PEEK*> "
9177 "request may be -1, the caller must clear I<errno> before the call, and then "
9178 "check it afterward to determine whether or not an error occurred."
9179 msgstr ""
9180 "成功すると、 B<PTRACE_PEEK*> の場合は要求したデータを返し、 それ以外の場合は "
9181 "0 を返す。 エラーの場合は -1 を返し、 I<errno> が適切に設定される。 "
9182 "B<PTRACE_PEEK*> が成功して返す値も -1 になることがあるため、 そのような要求"
9183 "の場合には、呼び出し元は I<errno> を調べ、エラーか発生したのかどうかを判断し"
9184 "なければならない。"
9185
9186 #. type: Plain text
9187 #: build/C/man2/ptrace.2:1732
9188 msgid ""
9189 "(i386 only) There was an error with allocating or freeing a debug register."
9190 msgstr "(i386 のみ) デバッグレジスタの確保または解放でエラーが発生した。"
9191
9192 #. type: Plain text
9193 #: build/C/man2/ptrace.2:1743
9194 #, fuzzy
9195 #| msgid ""
9196 #| "There was an attempt to read from or write to an invalid area in the "
9197 #| "parent's or child's memory, probably because the area wasn't mapped or "
9198 #| "accessible.  Unfortunately, under Linux, different variations of this "
9199 #| "fault will return B<EIO> or B<EFAULT> more or less arbitrarily."
9200 msgid ""
9201 "There was an attempt to read from or write to an invalid area in the "
9202 "tracer's or the tracee's memory, probably because the area wasn't mapped or "
9203 "accessible.  Unfortunately, under Linux, different variations of this fault "
9204 "will return B<EIO> or B<EFAULT> more or less arbitrarily."
9205 msgstr ""
9206 "親プロセスまたは子プロセスのメモリの不正な領域に読み書きしようとした。 おそら"
9207 "くその領域がマッピングされていないか、 その領域へのアクセスが許されていないか"
9208 "である。 不運なことに、Linux ではこのようなエラーの場合、多かれ少なかれ 恣意"
9209 "的に B<EIO> を返したり B<EFAULT> を返したりすることがある。"
9210
9211 #. type: Plain text
9212 #: build/C/man2/ptrace.2:1746
9213 msgid "An attempt was made to set an invalid option."
9214 msgstr "不正なオプションを設定しようとした。"
9215
9216 #. type: Plain text
9217 #: build/C/man2/ptrace.2:1753
9218 #, fuzzy
9219 #| msgid ""
9220 #| "I<request> is invalid, or an attempt was made to read from or write to an "
9221 #| "invalid area in the parent's or child's memory, or there was a word-"
9222 #| "alignment violation, or an invalid signal was specified during a restart "
9223 #| "request."
9224 msgid ""
9225 "I<request> is invalid, or an attempt was made to read from or write to an "
9226 "invalid area in the tracer's or the tracee's memory, or there was a word-"
9227 "alignment violation, or an invalid signal was specified during a restart "
9228 "request."
9229 msgstr ""
9230 "I<request> が不正である。 または、親プロセスまたは子プロセスのメモリの 不正な"
9231 "領域に読み書きしようとした。 または、ワード境界違反があった。 または、実行再"
9232 "開の要求で不正なシグナルを指定した。"
9233
9234 #. type: Plain text
9235 #: build/C/man2/ptrace.2:1766
9236 #, fuzzy
9237 #| msgid ""
9238 #| "The specified process cannot be traced.  This could be because the parent "
9239 #| "has insufficient privileges (the required capability is "
9240 #| "B<CAP_SYS_PTRACE>); unprivileged processes cannot trace processes that "
9241 #| "they cannot send signals to or those running set-user-ID/set-group-ID "
9242 #| "programs, for obvious reasons.  Alternatively, the process may already be "
9243 #| "being traced, or be B<init>(8)  (PID 1)."
9244 msgid ""
9245 "The specified process cannot be traced.  This could be because the tracer "
9246 "has insufficient privileges (the required capability is B<CAP_SYS_PTRACE>); "
9247 "unprivileged processes cannot trace processes that they cannot send signals "
9248 "to or those running set-user-ID/set-group-ID programs, for obvious reasons.  "
9249 "Alternatively, the process may already be being traced, or (on kernels "
9250 "before 2.6.26) be B<init>(8)  (PID 1)."
9251 msgstr ""
9252 "指定したプロセスをトレースすることができない。これは親プロセスが 必要な権限 "
9253 "(必要なケーパビリティは B<CAP_SYS_PTRACE>)  を持っていないことが原因の場合が"
9254 "ある。 分かりやすい理由を挙げるなら、 非特権プロセスはシグナルを送ることがで"
9255 "きないプロセスをトレースできないし、 set-user-ID/set-group-ID プログラムを実"
9256 "行しているプロセスはトレースできない。 または、プロセスはすでにトレース中であ"
9257 "る、 または B<init>(8)  プロセス (PID が 1) である。"
9258
9259 #. type: Plain text
9260 #: build/C/man2/ptrace.2:1771
9261 #, fuzzy
9262 #| msgid ""
9263 #| "The specified process does not exist, or is not currently being traced by "
9264 #| "the caller, or is not stopped (for requests that require that)."
9265 msgid ""
9266 "The specified process does not exist, or is not currently being traced by "
9267 "the caller, or is not stopped (for requests that require a stopped tracee)."
9268 msgstr ""
9269 "指定したプロセスが存在しない。 または、指定したプロセスは呼び出したプロセス"
9270 "が 現在トレース中の子プロセスではない。 または、指定したプロセスが停止してい"
9271 "ない (停止していることが必要な要求の場合)。"
9272
9273 #. type: Plain text
9274 #: build/C/man2/ptrace.2:1773
9275 msgid "SVr4, 4.3BSD."
9276 msgstr "SVr4, 4.3BSD."
9277
9278 #. type: Plain text
9279 #: build/C/man2/ptrace.2:1788
9280 #, fuzzy
9281 #| msgid ""
9282 #| "Although arguments to B<ptrace>()  are interpreted according to the "
9283 #| "prototype given, glibc currently declares B<ptrace>()  as a variadic "
9284 #| "function with only the I<request> argument fixed.  This means that "
9285 #| "unneeded trailing arguments may be omitted, though doing so makes use of "
9286 #| "undocumented B<gcc>(1)  behavior."
9287 msgid ""
9288 "Although arguments to B<ptrace>()  are interpreted according to the "
9289 "prototype given, glibc currently declares B<ptrace>()  as a variadic "
9290 "function with only the I<request> argument fixed.  It is recommended to "
9291 "always supply four arguments, even if the requested operation does not use "
9292 "them, setting unused/ignored arguments to I<0L> or I<(void\\ *)\\ 0>."
9293 msgstr ""
9294 "B<ptrace>()  の引き数は上のようなプロトタイプに基づいて解釈されるが、 glibc "
9295 "では、現在のところ B<ptrace>()  は I<request> 引き数だけが固定の可変長引き数"
9296 "関数として 宣言されている。 これは必要なければ残りの引き数は省略可能であるこ"
9297 "とを意味するが、 それは B<gcc>(1)  の明文化されていない動作を利用していること"
9298 "になる。"
9299
9300 #.  See commit 00cd5c37afd5f431ac186dd131705048c0a11fdb
9301 #. type: Plain text
9302 #: build/C/man2/ptrace.2:1793
9303 #, fuzzy
9304 #| msgid "B<init>(8), the process with PID 1, may not be traced."
9305 msgid ""
9306 "In Linux kernels before 2.6.26, B<init>(8), the process with PID 1, may not "
9307 "be traced."
9308 msgstr "B<init>(8)  すなわち PID が 1 のプロセスはトレースすることができない。"
9309
9310 #.  See http://lkml.org/lkml/2008/5/8/375
9311 #. type: Plain text
9312 #: build/C/man2/ptrace.2:1800
9313 #, fuzzy
9314 #| msgid ""
9315 #| "The layout of the contents of memory and the USER area are quite OS- and "
9316 #| "architecture-specific.  The offset supplied, and the data returned, might "
9317 #| "not entirely match with the definition of I<struct user>."
9318 msgid ""
9319 "The layout of the contents of memory and the USER area are quite operating-"
9320 "system- and architecture-specific.  The offset supplied, and the data "
9321 "returned, might not entirely match with the definition of I<struct user>."
9322 msgstr ""
9323 "メモリや USER 領域の内容や配置は OS ごと、アーキテクチャごとに 非常に依存す"
9324 "る。 オフセットが指定された場合、返されるデータは I<struct user> の定義と完全"
9325 "に一致しないこともありえる。"
9326
9327 #. type: Plain text
9328 #: build/C/man2/ptrace.2:1803
9329 #, fuzzy
9330 #| msgid ""
9331 #| "The size of a \"word\" is determined by the OS variant (e.g., for 32-bit "
9332 #| "Linux it is 32 bits, etc.)."
9333 msgid ""
9334 "The size of a \"word\" is determined by the operating-system variant (e.g., "
9335 "for 32-bit Linux it is 32 bits)."
9336 msgstr ""
9337 "「ワード (word) 」の大きさは OS によって決まる。 (例えば、32 ビットの Linux "
9338 "では 32 ビットである、など。)"
9339
9340 #. type: Plain text
9341 #: build/C/man2/ptrace.2:1811
9342 #, fuzzy
9343 #| msgid ""
9344 #| "This page documents the way the B<ptrace>()  call works currently in "
9345 #| "Linux.  Its behavior differs noticeably on other flavors of UNIX.  In any "
9346 #| "case, use of B<ptrace>()  is highly OS- and architecture-specific."
9347 msgid ""
9348 "This page documents the way the B<ptrace>()  call works currently in Linux.  "
9349 "Its behavior differs noticeably on other flavors of UNIX.  In any case, use "
9350 "of B<ptrace>()  is highly specific to the operating system and architecture."
9351 msgstr ""
9352 "このマニュアルは現在の Linux における B<ptrace>()  コールの動作について記述し"
9353 "ている。他の UNIX では その動作は著しく異なる。 いかなる場合も B<ptrace>()  "
9354 "を使うと OS やアーキテクチャに非常に依存したものになる。"
9355
9356 #. type: Plain text
9357 #: build/C/man2/ptrace.2:1822
9358 #, fuzzy
9359 #| msgid ""
9360 #| "On hosts with 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared with a "
9361 #| "different value than the one for 2.4.  This leads to applications "
9362 #| "compiled with such headers failing when run on 2.4 kernels.  This can be "
9363 #| "worked around by redefining B<PTRACE_SETOPTIONS> to "
9364 #| "B<PTRACE_OLDSETOPTIONS>, if that is defined."
9365 msgid ""
9366 "On hosts with 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared with a "
9367 "different value than the one for 2.4.  This leads to applications compiled "
9368 "with 2.6 kernel headers failing when run on 2.4 kernels.  This can be worked "
9369 "around by redefining B<PTRACE_SETOPTIONS> to B<PTRACE_OLDSETOPTIONS>, if "
9370 "that is defined."
9371 msgstr ""
9372 "カーネル 2.6 のヘッダがインストールされたホストでは、 B<PTRACE_SETOPTIONS> は"
9373 "カーネル 2.4 のヘッダとは異なる値で宣言される。 このため、カーネル 2.6 のヘッ"
9374 "ダでコンパイルされたアプリケーションは カーネル 2.4 では正しく動作しない。 こ"
9375 "の問題は、 B<PTRACE_SETOPTIONS> が定義されていた際は、 B<PTRACE_SETOPTIONS> "
9376 "を B<PTRACE_OLDSETOPTIONS> に定義し直すことで対処できる。"
9377
9378 #. type: Plain text
9379 #: build/C/man2/ptrace.2:1825
9380 msgid ""
9381 "Group-stop notifications are sent to the tracer, but not to real parent.  "
9382 "Last confirmed on 2.6.38.6."
9383 msgstr ""
9384
9385 #.  Note from Denys Vlasenko:
9386 #.      Here "exits" means any kind of death - _exit, exit_group,
9387 #.      signal death. Signal death and exit_group cases are trivial,
9388 #.      though: since signal death and exit_group kill all other threads
9389 #.      too, "until all other threads exit" thing happens rather soon
9390 #.      in these cases. Therefore, only _exit presents observably
9391 #.      puzzling behavior to ptrace users: thread leader _exit's,
9392 #.      but WIFEXITED isn't reported! We are trying to explain here
9393 #.      why it is so.
9394 #.   FIXME: ^^^ need to test/verify this scenario
9395 #. type: Plain text
9396 #: build/C/man2/ptrace.2:1856
9397 msgid ""
9398 "If a thread group leader is traced and exits by calling B<_exit>(2), a "
9399 "B<PTRACE_EVENT_EXIT> stop will happen for it (if requested), but the "
9400 "subsequent B<WIFEXITED> notification will not be delivered until all other "
9401 "threads exit.  As explained above, if one of other threads calls B<execve>"
9402 "(2), the death of the thread group leader will I<never> be reported.  If the "
9403 "execed thread is not traced by this tracer, the tracer will never know that "
9404 "B<execve>(2)  happened.  One possible workaround is to B<PTRACE_DETACH> the "
9405 "thread group leader instead of restarting it in this case.  Last confirmed "
9406 "on 2.6.38.6."
9407 msgstr ""
9408
9409 #. type: Plain text
9410 #: build/C/man2/ptrace.2:1866
9411 msgid ""
9412 "A B<SIGKILL> signal may still cause a B<PTRACE_EVENT_EXIT> stop before "
9413 "actual signal death.  This may be changed in the future; B<SIGKILL> is meant "
9414 "to always immediately kill tasks even under ptrace.  Last confirmed on "
9415 "2.6.38.6."
9416 msgstr ""
9417
9418 #. type: Plain text
9419 #: build/C/man2/ptrace.2:1884
9420 msgid ""
9421 "Some system calls return with B<EINTR> if a signal was sent to a tracee, but "
9422 "delivery was suppressed by the tracer.  (This is very typical operation: it "
9423 "is usually done by debuggers on every attach, in order to not introduce a "
9424 "bogus B<SIGSTOP>).  As of Linux 3.2.9, the following system calls are "
9425 "affected (this list is likely incomplete): B<epoll_wait>(2), and B<read>(2)  "
9426 "from an B<inotify>(7)  file descriptor.  The usual symptom of this bug is "
9427 "that when you attach to a quiescent process with the command"
9428 msgstr ""
9429
9430 #. type: Plain text
9431 #: build/C/man2/ptrace.2:1886
9432 #, no-wrap
9433 msgid "    strace -p E<lt>process-IDE<gt>\n"
9434 msgstr ""
9435
9436 #. type: Plain text
9437 #: build/C/man2/ptrace.2:1889
9438 msgid "then, instead of the usual and expected one-line output such as"
9439 msgstr ""
9440
9441 #. type: Plain text
9442 #: build/C/man2/ptrace.2:1892
9443 #, no-wrap
9444 msgid "    restart_syscall(E<lt>... resuming interrupted call ...E<gt>_\n"
9445 msgstr ""
9446
9447 #. type: Plain text
9448 #: build/C/man2/ptrace.2:1898
9449 #, no-wrap
9450 msgid "    select(6, [5], NULL, [5], NULL_\n"
9451 msgstr ""
9452
9453 #. type: Plain text
9454 #: build/C/man2/ptrace.2:1902
9455 msgid ""
9456 "('_' denotes the cursor position), you observe more than one line.  For "
9457 "example:"
9458 msgstr ""
9459
9460 #. type: Plain text
9461 #: build/C/man2/ptrace.2:1906
9462 #, no-wrap
9463 msgid ""
9464 "    clock_gettime(CLOCK_MONOTONIC, {15370, 690928118}) = 0\n"
9465 "    epoll_wait(4,_\n"
9466 msgstr ""
9467
9468 #. type: Plain text
9469 #: build/C/man2/ptrace.2:1927
9470 msgid ""
9471 "What is not visible here is that the process was blocked in B<epoll_wait>"
9472 "(2)  before B<strace>(1)  has attached to it.  Attaching caused B<epoll_wait>"
9473 "(2)  to return to user space with the error B<EINTR>.  In this particular "
9474 "case, the program reacted to B<EINTR> by checking the current time, and then "
9475 "executing B<epoll_wait>(2)  again.  (Programs which do not expect such "
9476 "\"stray\" B<EINTR> errors may behave in an unintended way upon an B<strace>"
9477 "(1)  attach.)"
9478 msgstr ""
9479
9480 #. type: Plain text
9481 #: build/C/man2/ptrace.2:1941
9482 msgid ""
9483 "B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2), B<gettid>"
9484 "(2), B<sigaction>(2), B<tgkill>(2), B<vfork>(2), B<waitpid>(2), B<exec>(3), "
9485 "B<capabilities>(7), B<signal>(7)"
9486 msgstr ""
9487 "B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2),\n"
9488 "B<gettid>(2), B<sigaction>(2), B<tgkill>(2), B<vfork>(2),\n"
9489 "B<waitpid>(2), B<exec>(3), B<capabilities>(7), B<signal>(7)"
9490
9491 #. type: TH
9492 #: build/C/man2/quotactl.2:27
9493 #, no-wrap
9494 msgid "QUOTACTL"
9495 msgstr "QUOTACTL"
9496
9497 #. type: TH
9498 #: build/C/man2/quotactl.2:27
9499 #, no-wrap
9500 msgid "2010-06-16"
9501 msgstr "2010-06-16"
9502
9503 #. type: Plain text
9504 #: build/C/man2/quotactl.2:30
9505 msgid "quotactl - manipulate disk quotas"
9506 msgstr "quotactl - ディスク quota を操作する"
9507
9508 #. type: Plain text
9509 #: build/C/man2/quotactl.2:34
9510 #, no-wrap
9511 msgid ""
9512 "B<#include E<lt>sys/quota.hE<gt>>\n"
9513 "B<#include E<lt>xfs/xqm.hE<gt>>\n"
9514 msgstr ""
9515 "B<#include E<lt>sys/quota.hE<gt>>\n"
9516 "B<#include E<lt>xfs/xqm.hE<gt>>\n"
9517
9518 #. type: Plain text
9519 #: build/C/man2/quotactl.2:37
9520 #, no-wrap
9521 msgid "B<int quotactl(int >I<cmd>B<, const char *>I<special>B<, int >I<id>B<, caddr_t >I<addr>B<);>\n"
9522 msgstr "B<int quotactl(int >I<cmd>B<, const char *>I<special>B<, int >I<id>B<, caddr_t >I<addr>B<);>\n"
9523
9524 #. type: Plain text
9525 #: build/C/man2/quotactl.2:49
9526 #, fuzzy
9527 #| msgid ""
9528 #| "The quota system defines for each user and/or group a soft limit and a "
9529 #| "hard limit bounding the amount of disk space that can be used on a given "
9530 #| "file system.  The hard limit cannot be crossed.  The soft limit can be "
9531 #| "crossed, but warnings will ensue.  Moreover, the user cannot be above the "
9532 #| "soft limit for more than one week (by default)  at a time: after this "
9533 #| "week the soft limit counts as hard limit."
9534 msgid ""
9535 "The quota system can be used to set per-user and per-group limits on the "
9536 "amount of disk space used on a file system.  For each user and/or group, a "
9537 "soft limit and a hard limit can be set for each file system.  The hard limit "
9538 "can't be exceeded.  The soft limit can be exceeded, but warnings will "
9539 "ensue.  Moreover, the user can't exceed the soft limit for more than one "
9540 "week (by default) at a time; after this time, the soft limit counts as a "
9541 "hard limit."
9542 msgstr ""
9543 "quota システムは、各々のユーザ及び/またはグループに対して、 ソフト・リミット"
9544 "及びハード・リミットを定める。これはあるファイル・システムで 使用する事が出来"
9545 "るディスク容量を制限する。 ハード・リミットは超過することは出来ない。 ソフ"
9546 "ト・リミットは超過する事が出来るが、警告が発せられる。 更に、(デフォルトで"
9547 "は) 一週間以上ソフト・リミットを超過したままに しておく事はできない: 一週間経"
9548 "過した後はハード・リミットを超過したと みなされる。"
9549
9550 #. type: Plain text
9551 #: build/C/man2/quotactl.2:74
9552 #, fuzzy
9553 #| msgid ""
9554 #| "The B<quotactl>()  system call manipulates these quota.  Its first "
9555 #| "argument is of the form B<QCMD(>I<subcmd>B<,>I<type>B<)> where I<type> is "
9556 #| "either B<USRQUOTA> or B<GRPQUOTA> (for user quota and group quota, "
9557 #| "respectively), and I<subcmd> is described below."
9558 msgid ""
9559 "The B<quotactl>()  call manipulates disk quotas.  The I<cmd> argument "
9560 "indicates a command to be applied to the user or group ID specified in "
9561 "I<id>.  To initialize the I<cmd> argument, use the I<QCMD(subcmd, type)> "
9562 "macro.  The I<type> value is either B<USRQUOTA>, for user quotas, or "
9563 "B<GRPQUOTA>, for group quotas.  The I<subcmd> value is described below."
9564 msgstr ""
9565 "B<quotactl>()  システムコールはこれらの quota に対する操作を行なう。 最初の引"
9566 "き数は B<QCMD(>I<subcmd>B<,>I<type>B<)> という形式である。 I<type> には、ユー"
9567 "ザー quota については B<USRQUOTA> を、グループ quota については B<GRPQUOTA> "
9568 "を指定する。 I<subcmd> は以下で説明する。"
9569
9570 #. type: Plain text
9571 #: build/C/man2/quotactl.2:79
9572 msgid ""
9573 "The I<special> argument is a pointer to a null-terminated string containing "
9574 "the pathname of the (mounted) block special device for the file system being "
9575 "manipulated."
9576 msgstr ""
9577
9578 #. type: Plain text
9579 #: build/C/man2/quotactl.2:87
9580 msgid ""
9581 "The I<addr> argument is the address of an optional, command-specific, data "
9582 "structure that is copied in or out of the system.  The interpretation of "
9583 "I<addr> is given with each command below."
9584 msgstr ""
9585
9586 #. type: Plain text
9587 #: build/C/man2/quotactl.2:91
9588 msgid "The I<subcmd> value is one of the following:"
9589 msgstr "I<subcmd> の値は以下のいずれかである"
9590
9591 #. type: TP
9592 #: build/C/man2/quotactl.2:91
9593 #, no-wrap
9594 msgid "B<Q_QUOTAON>"
9595 msgstr "B<Q_QUOTAON>"
9596
9597 #. type: Plain text
9598 #: build/C/man2/quotactl.2:98
9599 msgid ""
9600 "Turn on quotas for a file system.  The I<id> argument is the identification "
9601 "number of the quota format to be used.  Currently, there are three supported "
9602 "quota formats:"
9603 msgstr ""
9604
9605 #. type: TP
9606 #: build/C/man2/quotactl.2:99
9607 #, no-wrap
9608 msgid "B<QFMT_VFS_OLD>"
9609 msgstr ""
9610
9611 #. type: Plain text
9612 #: build/C/man2/quotactl.2:102
9613 msgid "The original quota format."
9614 msgstr ""
9615
9616 #. type: TP
9617 #: build/C/man2/quotactl.2:102
9618 #, no-wrap
9619 msgid "B<QFMT_VFS_V0>"
9620 msgstr ""
9621
9622 #. type: Plain text
9623 #: build/C/man2/quotactl.2:106
9624 msgid ""
9625 "The standard VFS v0 quota format, which can handle 32-bit UIDs and GIDs and "
9626 "quota limits up to 2^42 bytes and 2^32 inodes."
9627 msgstr ""
9628
9629 #. type: TP
9630 #: build/C/man2/quotactl.2:106
9631 #, no-wrap
9632 msgid "B<QFMT_VFS_V1>"
9633 msgstr ""
9634
9635 #. type: Plain text
9636 #: build/C/man2/quotactl.2:110
9637 msgid ""
9638 "A quota format that can handle 32-bit UIDs and GIDs and quota limits of 2^64 "
9639 "bytes and 2^64 inodes."
9640 msgstr ""
9641
9642 #. type: Plain text
9643 #: build/C/man2/quotactl.2:121
9644 msgid ""
9645 "The I<addr> argument points to the pathname of a file containing the quotas "
9646 "for the file system.  The quota file must exist; it is normally created with "
9647 "the B<quotacheck>(8)  program.  This operation requires privilege "
9648 "(B<CAP_SYS_ADMIN>)."
9649 msgstr ""
9650
9651 #. type: TP
9652 #: build/C/man2/quotactl.2:121
9653 #, no-wrap
9654 msgid "B<Q_QUOTAOFF>"
9655 msgstr "B<Q_QUOTAOFF>"
9656
9657 #. type: Plain text
9658 #: build/C/man2/quotactl.2:131
9659 msgid ""
9660 "Turn off quotas for a file system.  The I<addr> and I<id> arguments are "
9661 "ignored.  This operation requires privilege (B<CAP_SYS_ADMIN>)."
9662 msgstr ""
9663
9664 #. type: TP
9665 #: build/C/man2/quotactl.2:131
9666 #, no-wrap
9667 msgid "B<Q_GETQUOTA>"
9668 msgstr "B<Q_GETQUOTA>"
9669
9670 #. type: Plain text
9671 #: build/C/man2/quotactl.2:142
9672 #, fuzzy
9673 #| msgid ""
9674 #| "Get limits and current usage of disk space.  The I<addr> argument is a "
9675 #| "pointer to a dqblk structure (defined in I<E<lt>sys/quota.hE<gt>>)."
9676 msgid ""
9677 "Get disk quota limits and current usage for user or group I<id>.  The "
9678 "I<addr> argument is a pointer to a I<dqblk> structure defined in I<E<lt>sys/"
9679 "quota.hE<gt>> as follows:"
9680 msgstr ""
9681 "ディスク使用量の制限値と現在の使用量を得る。 I<addr> 引き数は (I<E<lt>sys/"
9682 "quota.hE<gt>> で定義された) dqblk 構造体を指すポインタである。"
9683
9684 #. type: Plain text
9685 #: build/C/man2/quotactl.2:147 build/C/man2/quotactl.2:234
9686 #, no-wrap
9687 msgid ""
9688 "/* uint64_t is an unsigned 64-bit integer;\n"
9689 "   uint32_t is an unsigned 32-bit integer */\n"
9690 msgstr ""
9691
9692 #. type: Plain text
9693 #: build/C/man2/quotactl.2:167
9694 #, no-wrap
9695 msgid ""
9696 "struct dqblk {          /* Definition since Linux 2.4.22 */\n"
9697 "    uint64_t dqb_bhardlimit;   /* absolute limit on disk\n"
9698 "                                  quota blocks alloc */\n"
9699 "    uint64_t dqb_bsoftlimit;   /* preferred limit on\n"
9700 "                                  disk quota blocks */\n"
9701 "    uint64_t dqb_curspace;     /* current quota block\n"
9702 "                                  count */\n"
9703 "    uint64_t dqb_ihardlimit;   /* maximum number of\n"
9704 "                                  allocated inodes */\n"
9705 "    uint64_t dqb_isoftlimit;   /* preferred inode limit */\n"
9706 "    uint64_t dqb_curinodes;    /* current number of\n"
9707 "                                  allocated inodes */\n"
9708 "    uint64_t dqb_btime;        /* time limit for excessive\n"
9709 "                                  disk use */\n"
9710 "    uint64_t dqb_itime;        /* time limit for excessive\n"
9711 "                                  files */\n"
9712 "    uint32_t dqb_valid;        /* bit mask of QIF_*\n"
9713 "                                  constants */\n"
9714 "};\n"
9715 msgstr ""
9716
9717 #. type: Plain text
9718 #: build/C/man2/quotactl.2:170
9719 #, no-wrap
9720 msgid ""
9721 "/* Flags in dqb_valid that indicate which fields in\n"
9722 "   dqblk structure are valid. */\n"
9723 msgstr ""
9724
9725 #. type: Plain text
9726 #: build/C/man2/quotactl.2:181
9727 #, no-wrap
9728 msgid ""
9729 "#define QIF_BLIMITS   1\n"
9730 "#define QIF_SPACE     2\n"
9731 "#define QIF_ILIMITS   4\n"
9732 "#define QIF_INODES    8\n"
9733 "#define QIF_BTIME     16\n"
9734 "#define QIF_ITIME     32\n"
9735 "#define QIF_LIMITS    (QIF_BLIMITS | QIF_ILIMITS)\n"
9736 "#define QIF_USAGE     (QIF_SPACE | QIF_INODES)\n"
9737 "#define QIF_TIMES     (QIF_BTIME | QIF_ITIME)\n"
9738 "#define QIF_ALL       (QIF_LIMITS | QIF_USAGE | QIF_TIMES)\n"
9739 msgstr ""
9740
9741 #. type: Plain text
9742 #: build/C/man2/quotactl.2:198
9743 msgid ""
9744 "The I<dqb_valid> field is a bit mask that is set to indicate the entries in "
9745 "the I<dqblk> structure that are valid.  Currently, the kernel fills in all "
9746 "entries of the I<dqblk> structure and marks them as valid in the "
9747 "I<dqb_valid> field.  Unprivileged users may retrieve only their own quotas; "
9748 "a privileged user (B<CAP_SYS_ADMIN>)  can retrieve the quotas of any user."
9749 msgstr ""
9750
9751 #. type: TP
9752 #: build/C/man2/quotactl.2:198
9753 #, no-wrap
9754 msgid "B<Q_SETQUOTA>"
9755 msgstr "B<Q_SETQUOTA>"
9756
9757 #. type: Plain text
9758 #: build/C/man2/quotactl.2:218
9759 msgid ""
9760 "Set quota information for user or group I<id>, using the information "
9761 "supplied in the I<dqblk> structure pointed to by I<addr>.  The I<dqb_valid> "
9762 "field of the I<dqblk> structure indicates which entries in the structure "
9763 "have been set by the caller.  This operation supersedes the B<Q_SETQLIM> and "
9764 "B<Q_SETUSE> operations in the previous quota interfaces.  This operation "
9765 "requires privilege (B<CAP_SYS_ADMIN>)."
9766 msgstr ""
9767
9768 #. type: TP
9769 #: build/C/man2/quotactl.2:218
9770 #, no-wrap
9771 msgid "B<Q_GETINFO>"
9772 msgstr "B<Q_GETINFO>"
9773
9774 #. type: Plain text
9775 #: build/C/man2/quotactl.2:229
9776 #, fuzzy
9777 #| msgid ""
9778 #| "Get limits and current usage of disk space.  The I<addr> argument is a "
9779 #| "pointer to a dqblk structure (defined in I<E<lt>sys/quota.hE<gt>>)."
9780 msgid ""
9781 "Get information (like grace times) about quotafile.  The I<addr> argument "
9782 "should be a pointer to a I<dqinfo> structure.  This structure is defined in "
9783 "I<E<lt>sys/quota.hE<gt>> as follows:"
9784 msgstr ""
9785 "ディスク使用量の制限値と現在の使用量を得る。 I<addr> 引き数は (I<E<lt>sys/"
9786 "quota.hE<gt>> で定義された) dqblk 構造体を指すポインタである。"
9787
9788 #. type: Plain text
9789 #: build/C/man2/quotactl.2:238
9790 #, no-wrap
9791 msgid ""
9792 "struct dqinfo {         /* Defined since kernel 2.4.22 */\n"
9793 "    uint64_t dqi_bgrace;    /* Time before block soft limit\n"
9794 "                               becomes hard limit */\n"
9795 msgstr ""
9796
9797 #. type: Plain text
9798 #: build/C/man2/quotactl.2:245
9799 #, no-wrap
9800 msgid ""
9801 "    uint64_t dqi_igrace;    /* Time before inode soft limit\n"
9802 "                               becomes hard limit */\n"
9803 "    uint32_t dqi_flags;     /* Flags for quotafile\n"
9804 "                               (DQF_*) */\n"
9805 "    uint32_t dqi_valid;\n"
9806 "};\n"
9807 msgstr ""
9808
9809 #. type: Plain text
9810 #: build/C/man2/quotactl.2:247
9811 #, no-wrap
9812 msgid "/* Bits for dqi_flags */\n"
9813 msgstr ""
9814
9815 #. type: Plain text
9816 #: build/C/man2/quotactl.2:249
9817 #, no-wrap
9818 msgid "/* Quota format QFMT_VFS_OLD */\n"
9819 msgstr ""
9820
9821 #. type: Plain text
9822 #: build/C/man2/quotactl.2:251
9823 #, no-wrap
9824 msgid "#define V1_DQF_RSQUASH\t1   /* Root squash enabled */\n"
9825 msgstr ""
9826
9827 #. type: Plain text
9828 #: build/C/man2/quotactl.2:253
9829 #, no-wrap
9830 msgid "/* Other quota formats have no dqi_flags bits defined */\n"
9831 msgstr ""
9832
9833 #. type: Plain text
9834 #: build/C/man2/quotactl.2:256
9835 #, no-wrap
9836 msgid ""
9837 "/* Flags in dqi_valid that indicate which fields in\n"
9838 "   dqinfo structure are valid. */\n"
9839 msgstr ""
9840
9841 #. type: Plain text
9842 #: build/C/man2/quotactl.2:261
9843 #, no-wrap
9844 msgid ""
9845 "# define IIF_BGRACE\t1\n"
9846 "# define IIF_IGRACE\t2\n"
9847 "# define IIF_FLAGS\t4\n"
9848 "# define IIF_ALL\t(IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)\n"
9849 msgstr ""
9850
9851 #. type: Plain text
9852 #: build/C/man2/quotactl.2:277
9853 msgid ""
9854 "The I<dqi_valid> field in the I<dqinfo> structure indicates the entries in "
9855 "the structure that are valid.  Currently, the kernel fills in all entries of "
9856 "the I<dqinfo> structure and marks them all as valid in the I<dqi_valid> "
9857 "field.  The I<id> argument is ignored."
9858 msgstr ""
9859
9860 #. type: TP
9861 #: build/C/man2/quotactl.2:277
9862 #, no-wrap
9863 msgid "B<Q_SETINFO>"
9864 msgstr "B<Q_SETINFO>"
9865
9866 #. type: Plain text
9867 #: build/C/man2/quotactl.2:301
9868 msgid ""
9869 "Set information about quotafile.  The I<addr> argument should be a pointer "
9870 "to a I<dqinfo> structure.  The I<dqi_valid> field of the I<dqinfo> structure "
9871 "indicates the entries in the structure that have been set by the caller.  "
9872 "This operation supersedes the B<Q_SETGRACE> and B<Q_SETFLAGS> operations in "
9873 "the previous quota interfaces.  The I<id> argument is ignored.  This "
9874 "operation requires privilege (B<CAP_SYS_ADMIN>)."
9875 msgstr ""
9876
9877 #. type: TP
9878 #: build/C/man2/quotactl.2:301
9879 #, no-wrap
9880 msgid "B<Q_GETFMT>"
9881 msgstr "B<Q_GETFMT>"
9882
9883 #. type: Plain text
9884 #: build/C/man2/quotactl.2:308
9885 msgid ""
9886 "Get quota format used on the specified file system.  The I<addr> argument "
9887 "should be a pointer to a 4-byte buffer where the format number will be "
9888 "stored."
9889 msgstr ""
9890
9891 #. type: TP
9892 #: build/C/man2/quotactl.2:308
9893 #, no-wrap
9894 msgid "B<Q_SYNC>"
9895 msgstr "B<Q_SYNC>"
9896
9897 #. type: Plain text
9898 #: build/C/man2/quotactl.2:319
9899 msgid ""
9900 "Update the on-disk copy of quota usages for a file system.  If I<special> is "
9901 "NULL, then all file systems with active quotas are sync'ed.  The I<addr> and "
9902 "I<id> arguments are ignored."
9903 msgstr ""
9904
9905 #. type: TP
9906 #: build/C/man2/quotactl.2:319
9907 #, no-wrap
9908 msgid "B<Q_GETSTATS>"
9909 msgstr "B<Q_GETSTATS>"
9910
9911 #.  Q_GETSTATS was removed in kernel 2.4.22.
9912 #. type: Plain text
9913 #: build/C/man2/quotactl.2:339
9914 msgid ""
9915 "Get statistics and other generic information about the quota subsystem.  The "
9916 "I<addr> argument should be a pointer to a I<dqstats> structure in which data "
9917 "should be stored.  This structure is defined in I<E<lt>sys/quota.hE<gt>.> "
9918 "The I<special> and I<id> arguments are ignored.  This operation is obsolete "
9919 "and not supported by recent kernels.  Files in I</proc/sys/fs/quota/> carry "
9920 "the information instead."
9921 msgstr ""
9922
9923 #. type: Plain text
9924 #: build/C/man2/quotactl.2:342
9925 msgid ""
9926 "For XFS file systems making use of the XFS Quota Manager (XQM), the above "
9927 "commands are bypassed and the following commands are used:"
9928 msgstr ""
9929
9930 #. type: TP
9931 #: build/C/man2/quotactl.2:342
9932 #, no-wrap
9933 msgid "B<Q_XQUOTAON>"
9934 msgstr "B<Q_XQUOTAON>"
9935
9936 #. type: Plain text
9937 #: build/C/man2/quotactl.2:363
9938 msgid ""
9939 "Turn on quotas for an XFS file system.  XFS provides the ability to turn on/"
9940 "off quota limit enforcement with quota accounting.  Therefore, XFS expects "
9941 "I<addr> to be a pointer to an I<unsigned int> that contains either the flags "
9942 "B<XFS_QUOTA_UDQ_ACCT> and/or B<XFS_QUOTA_UDQ_ENFD> (for user quota), or "
9943 "B<XFS_QUOTA_GDQ_ACCT> and/or B<XFS_QUOTA_GDQ_ENFD> (for group quota), as "
9944 "defined in I<E<lt>xfs/xqm.hE<gt>>.  This operation requires privilege "
9945 "(B<CAP_SYS_ADMIN>)."
9946 msgstr ""
9947
9948 #. type: TP
9949 #: build/C/man2/quotactl.2:363
9950 #, no-wrap
9951 msgid "B<Q_XQUOTAOFF>"
9952 msgstr "B<Q_XQUOTAOFF>"
9953
9954 #. type: Plain text
9955 #: build/C/man2/quotactl.2:374
9956 msgid ""
9957 "Turn off quotas for an XFS file system.  As with B<Q_QUOTAON>, XFS file "
9958 "systems expect a pointer to an I<unsigned int> that specifies whether quota "
9959 "accounting and/or limit enforcement need to be turned off.  This operation "
9960 "requires privilege (B<CAP_SYS_ADMIN>)."
9961 msgstr ""
9962
9963 #. type: TP
9964 #: build/C/man2/quotactl.2:374
9965 #, no-wrap
9966 msgid "B<Q_XGETQUOTA>"
9967 msgstr "B<Q_XGETQUOTA>"
9968
9969 #. type: Plain text
9970 #: build/C/man2/quotactl.2:388
9971 msgid ""
9972 "Get disk quota limits and current usage for user I<id>.  The I<addr> "
9973 "argument is a pointer to an I<fs_disk_quota> structure (defined in "
9974 "I<E<lt>xfs/xqm.hE<gt>>).  Unprivileged users may retrieve only their own "
9975 "quotas; a privileged user (B<CAP_SYS_ADMIN>)  may retrieve the quotas of any "
9976 "user."
9977 msgstr ""
9978
9979 #. type: TP
9980 #: build/C/man2/quotactl.2:388
9981 #, no-wrap
9982 msgid "B<Q_XSETQLIM>"
9983 msgstr "B<Q_XSETQLIM>"
9984
9985 #. type: Plain text
9986 #: build/C/man2/quotactl.2:400
9987 msgid ""
9988 "Set disk quota limits for user I<id>.  The I<addr> argument is a pointer to "
9989 "an I<fs_disk_quota> structure (defined in I<E<lt>xfs/xqm.hE<gt>>).  This "
9990 "operation requires privilege (B<CAP_SYS_ADMIN>)."
9991 msgstr ""
9992
9993 #. type: TP
9994 #: build/C/man2/quotactl.2:400
9995 #, no-wrap
9996 msgid "B<Q_XGETQSTAT>"
9997 msgstr "B<Q_XGETQSTAT>"
9998
9999 #. type: Plain text
10000 #: build/C/man2/quotactl.2:408
10001 msgid ""
10002 "Returns an I<fs_quota_stat> structure containing XFS file system specific "
10003 "quota information.  This is useful for finding out how much space is used to "
10004 "store quota information, and also to get quotaon/off status of a given local "
10005 "XFS file system."
10006 msgstr ""
10007
10008 #. type: TP
10009 #: build/C/man2/quotactl.2:408
10010 #, no-wrap
10011 msgid "B<Q_XQUOTARM>"
10012 msgstr "B<Q_XQUOTARM>"
10013
10014 #. type: Plain text
10015 #: build/C/man2/quotactl.2:412
10016 msgid ""
10017 "Free the disk space taken by disk quotas.  Quotas must have already been "
10018 "turned off."
10019 msgstr ""
10020
10021 #. type: Plain text
10022 #: build/C/man2/quotactl.2:419
10023 msgid ""
10024 "There is no command equivalent to B<Q_SYNC> for XFS since B<sync>(1)  writes "
10025 "quota information to disk (in addition to the other file system metadata "
10026 "that it writes out)."
10027 msgstr ""
10028
10029 #. type: Plain text
10030 #: build/C/man2/quotactl.2:427
10031 msgid ""
10032 "On success, B<quotactl>()  returns 0; on error -1 is returned, and I<errno> "
10033 "is set to indicate the error."
10034 msgstr ""
10035 "成功すると、 B<quotactl>()  は 0 を返す。\n"
10036 "エラーの場合、-1 を返し、 I<errno> をエラーを示す値に設定する。"
10037
10038 #. type: Plain text
10039 #: build/C/man2/quotactl.2:434
10040 msgid "I<addr> or I<special> is invalid."
10041 msgstr ""
10042
10043 #. type: Plain text
10044 #: build/C/man2/quotactl.2:440
10045 msgid "I<cmd> or I<type> is invalid."
10046 msgstr ""
10047
10048 #. type: TP
10049 #: build/C/man2/quotactl.2:440
10050 #, no-wrap
10051 msgid "B<ENOENT>"
10052 msgstr "B<ENOENT>"
10053
10054 #. type: Plain text
10055 #: build/C/man2/quotactl.2:447
10056 msgid "The file specified by I<special> or I<addr> does not exist."
10057 msgstr ""
10058
10059 #. type: Plain text
10060 #: build/C/man2/quotactl.2:452
10061 msgid "The kernel has not been compiled with the B<CONFIG_QUOTA> option."
10062 msgstr ""
10063
10064 #. type: TP
10065 #: build/C/man2/quotactl.2:452
10066 #, no-wrap
10067 msgid "B<ENOTBLK>"
10068 msgstr "B<ENOTBLK>"
10069
10070 #. type: Plain text
10071 #: build/C/man2/quotactl.2:456
10072 msgid "I<special> is not a block device."
10073 msgstr "I<special> がブロックデバイスではない。"
10074
10075 #. type: Plain text
10076 #: build/C/man2/quotactl.2:461
10077 msgid ""
10078 "The caller lacked the required privilege (B<CAP_SYS_ADMIN>)  for the "
10079 "specified operation."
10080 msgstr ""
10081
10082 #. type: Plain text
10083 #: build/C/man2/quotactl.2:465
10084 msgid ""
10085 "No disk quota is found for the indicated user.  Quotas have not been turned "
10086 "on for this file system."
10087 msgstr ""
10088
10089 #. type: Plain text
10090 #: build/C/man2/quotactl.2:474
10091 msgid "If I<cmd> is B<Q_SETQUOTA>, B<quotactl>()  may also set I<errno> to:"
10092 msgstr ""
10093
10094 #. type: Plain text
10095 #: build/C/man2/quotactl.2:477
10096 msgid "Specified limits are out of range allowed by quota format."
10097 msgstr ""
10098
10099 #. type: Plain text
10100 #: build/C/man2/quotactl.2:486
10101 msgid "If I<cmd> is B<Q_QUOTAON>, B<quotactl>()  may also set I<errno> to:"
10102 msgstr ""
10103
10104 #. type: Plain text
10105 #: build/C/man2/quotactl.2:495
10106 msgid ""
10107 "The quota file pointed to by I<addr> exists, but is not a regular file; or, "
10108 "the quota file pointed to by I<addr> exists, but is not on the file system "
10109 "pointed to by I<special>."
10110 msgstr ""
10111
10112 #. type: Plain text
10113 #: build/C/man2/quotactl.2:501
10114 msgid ""
10115 "B<Q_QUOTAON> attempted, but another B<Q_QUOTAON> had already been performed."
10116 msgstr ""
10117
10118 #. type: Plain text
10119 #: build/C/man2/quotactl.2:504
10120 msgid "The quota file is corrupted."
10121 msgstr "quota ファイルが壊れている。"
10122
10123 #. type: Plain text
10124 #: build/C/man2/quotactl.2:507
10125 msgid "Specified quota format was not found."
10126 msgstr ""
10127
10128 #. type: Plain text
10129 #: build/C/man2/quotactl.2:512
10130 msgid "B<quota>(1), B<getrlimit>(2), B<quotacheck>(8), B<quotaon>(8)"
10131 msgstr "B<quota>(1), B<getrlimit>(2), B<quotacheck>(8), B<quotaon>(8)"
10132
10133 #. type: TH
10134 #: build/C/man2/sendfile.2:19
10135 #, no-wrap
10136 msgid "SENDFILE"
10137 msgstr "SENDFILE"
10138
10139 #. type: TH
10140 #: build/C/man2/sendfile.2:19
10141 #, no-wrap
10142 msgid "2011-09-14"
10143 msgstr "2011-09-14"
10144
10145 #. type: Plain text
10146 #: build/C/man2/sendfile.2:22
10147 msgid "sendfile - transfer data between file descriptors"
10148 msgstr "sendfile - ファイル・ディスクリプタ間でデータを転送する"
10149
10150 #. type: Plain text
10151 #: build/C/man2/sendfile.2:24
10152 msgid "B<#include E<lt>sys/sendfile.hE<gt>>"
10153 msgstr "B<#include E<lt>sys/sendfile.hE<gt>>"
10154
10155 #.  The below is too ugly. Comments about glibc versions belong
10156 #.  in the notes, not in the header.
10157 #.  .B #include <features.h>
10158 #.  .br
10159 #.  .B #if (__GLIBC__==2 && __GLIBC_MINOR__>=1) || __GLIBC__>2
10160 #.  .br
10161 #.  .B #include <sys/sendfile.h>
10162 #.  .br
10163 #.  #else
10164 #.  .br
10165 #.  .B #include <sys/types.h>
10166 #.  .br
10167 #.  .B /* No system prototype before glibc 2.1. */
10168 #.  .br
10169 #.  .BI "ssize_t sendfile(int" " out_fd" ", int" " in_fd" ", off_t *" #.                        offset ", size_t" " count" )
10170 #.  .br
10171 #.  .B #endif
10172 #. type: Plain text
10173 #: build/C/man2/sendfile.2:47
10174 msgid ""
10175 "B<ssize_t sendfile(int>I< out_fd>B<, int>I< in_fd>B<, off_t *>I<offset>B<, "
10176 "size_t>I< count>B<);>"
10177 msgstr ""
10178 "B<ssize_t sendfile(int>I< out_fd>B<, int>I< in_fd>B<, off_t *>I<offset>B<, "
10179 "size_t>I< count>B<);>"
10180
10181 #. type: Plain text
10182 #: build/C/man2/sendfile.2:57
10183 msgid ""
10184 "B<sendfile>()  copies data between one file descriptor and another.  Because "
10185 "this copying is done within the kernel, B<sendfile>()  is more efficient "
10186 "than the combination of B<read>(2)  and B<write>(2), which would require "
10187 "transferring data to and from user space."
10188 msgstr ""
10189 "B<sendfile>()  は、あるファイル・ディスクリプタから別の ファイル・ディスクリ"
10190 "プタへのデータのコピーを行う。 このコピーはカーネル内で行われるので、 "
10191 "B<sendfile>()  は、 B<read>(2)  と B<write>(2)  を組み合わせるよりも効率がよ"
10192 "い。 B<read>(2)  や B<write>(2)  ではユーザ空間との間でデータの転送が必要とな"
10193 "るからである。"
10194
10195 #. type: Plain text
10196 #: build/C/man2/sendfile.2:62
10197 msgid ""
10198 "I<in_fd> should be a file descriptor opened for reading and I<out_fd> should "
10199 "be a descriptor opened for writing."
10200 msgstr ""
10201 "I<in_fd> は読み込みのためにオープンされたファイル・ディスクリプタ、 "
10202 "I<out_fd> は書き込みのためにオープンされたディスクリプタでなければならない。"
10203
10204 #. type: Plain text
10205 #: build/C/man2/sendfile.2:83
10206 msgid ""
10207 "If I<offset> is not NULL, then it points to a variable holding the file "
10208 "offset from which B<sendfile>()  will start reading data from I<in_fd>.  "
10209 "When B<sendfile>()  returns, this variable will be set to the offset of the "
10210 "byte following the last byte that was read.  If I<offset> is not NULL, then "
10211 "B<sendfile>()  does not modify the current file offset of I<in_fd>; "
10212 "otherwise the current file offset is adjusted to reflect the number of bytes "
10213 "read from I<in_fd>."
10214 msgstr ""
10215 "I<offset> が NULL でない場合、 I<offset> は B<sendfile>()  が I<in_fd> のどこ"
10216 "からデータを読み始めるかを示すファイル・オフセットを保持する変数への ポインタ"
10217 "である。 B<sendfile>()  は復帰する時、この変数に最後に読み込んだバイトの 次の"
10218 "バイトのオフセットを書き込む。 I<offset> が NULL でない場合、 B<sendfile>()  "
10219 "は I<in_fd> のファイル・オフセットの現在値を変更しない。 NULL の場合は、ファ"
10220 "イル・オフセットの現在値を I<in_fd> から読み込んだバイト数を反映した位置に調"
10221 "整する。"
10222
10223 #. type: Plain text
10224 #: build/C/man2/sendfile.2:90
10225 msgid ""
10226 "If I<offset> is NULL, then data will be read from I<in_fd> starting at the "
10227 "current file offset, and the file offset will be updated by the call."
10228 msgstr ""
10229 "I<offset> が NULL の場合、データは I<in_fd> の現在のファイル・オフセットから"
10230 "読み出され、 ファイル・オフセットはこの呼び出しで更新される。"
10231
10232 #. type: Plain text
10233 #: build/C/man2/sendfile.2:93
10234 msgid "I<count> is the number of bytes to copy between the file descriptors."
10235 msgstr "I<count> は、ファイル・ディスクリプタ間でコピーするバイト数である。"
10236
10237 #. type: Plain text
10238 #: build/C/man2/sendfile.2:100
10239 msgid ""
10240 "The I<in_fd> argument must correspond to a file which supports B<mmap>(2)-"
10241 "like operations (i.e., it cannot be a socket)."
10242 msgstr ""
10243 "I<in_fd> 引き数は B<mmap>(2) 風の操作ができるファイルを指していなければなら"
10244 "な\n"
10245 "い (ソケットを指定することはできない)。"
10246
10247 #. type: Plain text
10248 #: build/C/man2/sendfile.2:108
10249 msgid ""
10250 "In Linux kernels before 2.6.33, I<out_fd> must refer to a socket.  Since "
10251 "Linux 2.6.33 it can be any file.  If it is a regular file, then B<sendfile>"
10252 "()  changes the file offset appropriately."
10253 msgstr ""
10254 "2.6.33 より前の Linux カーネルでは I<out_fd> はソケットを参照していなければ"
10255 "な\n"
10256 "らない。Linux 2.6.33 以降では、任意のファイルを参照することができる。\n"
10257 "通常のファイルの場合には B<sendfile>() はファイルオフセットを適切に変更する。"
10258
10259 #. type: Plain text
10260 #: build/C/man2/sendfile.2:115
10261 msgid ""
10262 "If the transfer was successful, the number of bytes written to I<out_fd> is "
10263 "returned.  On error, -1 is returned, and I<errno> is set appropriately."
10264 msgstr ""
10265 "転送に成功した場合、 I<out_fd> に書き込まれたバイト数を返す。エラーの場"
10266 "合、-1 を返し、 I<errno> に適切な値を設定する。"
10267
10268 #. type: Plain text
10269 #: build/C/man2/sendfile.2:121
10270 msgid ""
10271 "Nonblocking I/O has been selected using B<O_NONBLOCK> and the write would "
10272 "block."
10273 msgstr ""
10274 "B<O_NONBLOCK> を用いて非ブロック I/O が選択されたが、書き込みがブロックされ"
10275 "た。"
10276
10277 #. type: TP
10278 #: build/C/man2/sendfile.2:121 build/C/man2/splice.2:143
10279 #: build/C/man2/vmsplice.2:123
10280 #, no-wrap
10281 msgid "B<EBADF>"
10282 msgstr "B<EBADF>"
10283
10284 #. type: Plain text
10285 #: build/C/man2/sendfile.2:125
10286 msgid ""
10287 "The input file was not opened for reading or the output file was not opened "
10288 "for writing."
10289 msgstr ""
10290 "入力ファイルが読み込みのためにオープンされていないか、 出力ファイルが書き込み"
10291 "のためにオープンされていない。"
10292
10293 #. type: Plain text
10294 #: build/C/man2/sendfile.2:128
10295 msgid "Bad address."
10296 msgstr "アドレスがおかしい。"
10297
10298 #. type: Plain text
10299 #: build/C/man2/sendfile.2:134
10300 msgid ""
10301 "Descriptor is not valid or locked, or an B<mmap>(2)-like operation is not "
10302 "available for I<in_fd>."
10303 msgstr ""
10304 "ディスクリプタが有効でないか、ロックされている。もしくは B<mmap>(2)  風の操作"
10305 "が I<in_fd> では利用できない。"
10306
10307 #. type: Plain text
10308 #: build/C/man2/sendfile.2:138
10309 msgid "Unspecified error while reading from I<in_fd>."
10310 msgstr "I<in_fd> から読み込んでいるうちに予期しないエラーが起こった。"
10311
10312 #. type: Plain text
10313 #: build/C/man2/sendfile.2:142
10314 msgid "Insufficient memory to read from I<in_fd>."
10315 msgstr "I<in_fd> から読み込むための十分なメモリがない。"
10316
10317 #. type: Plain text
10318 #: build/C/man2/sendfile.2:148
10319 msgid ""
10320 "B<sendfile>()  is a new feature in Linux 2.2.  The include file I<E<lt>sys/"
10321 "sendfile.hE<gt>> is present since glibc 2.1."
10322 msgstr ""
10323 "B<sendfile> は Linux 2.2 の新しい機能である。 インクルードファイル "
10324 "I<E<lt>sys/sendfile.hE<gt>> は glibc 2.1 から存在している。"
10325
10326 #. type: Plain text
10327 #: build/C/man2/sendfile.2:150
10328 msgid "Not specified in POSIX.1-2001, or other standards."
10329 msgstr "POSIX.1-2001 や他の標準では規定されていない。"
10330
10331 #. type: Plain text
10332 #: build/C/man2/sendfile.2:155
10333 msgid ""
10334 "Other UNIX systems implement B<sendfile>()  with different semantics and "
10335 "prototypes.  It should not be used in portable programs."
10336 msgstr ""
10337 "他の UNIX システムでは、異なった方式やプロトタイプで B<sendfile>()  を実装し"
10338 "ている。移植性を考慮したプログラムでは使用すべきではない。"
10339
10340 #. type: Plain text
10341 #: build/C/man2/sendfile.2:165
10342 msgid ""
10343 "If you plan to use B<sendfile>()  for sending files to a TCP socket, but "
10344 "need to send some header data in front of the file contents, you will find "
10345 "it useful to employ the B<TCP_CORK> option, described in B<tcp>(7), to "
10346 "minimize the number of packets and to tune performance."
10347 msgstr ""
10348 "B<sendfile>()  を使って TCP ソケットにファイルを送ろうとしていて、 ファイルの"
10349 "内容の前にヘッダ・データを付け加える必要がある場合は、 パケット数を最小にして"
10350 "性能を上げるために B<tcp>(7)  に記述されている B<TCP_CORK> オプションを使うと"
10351 "いいだろう。"
10352
10353 #. type: Plain text
10354 #: build/C/man2/sendfile.2:171
10355 msgid ""
10356 "In Linux 2.4 and earlier, I<out_fd> could also refer to a regular file, and "
10357 "B<sendfile>()  changed the current offset of that file."
10358 msgstr ""
10359 "Linux 2.4 とそれ以前のバージョンでも、 I<out_fd> は通常のファイルを参照で"
10360 "き、\n"
10361 "B<sendfile>() はそのファイルのオフセットの現在値を変更していた。"
10362
10363 #. type: Plain text
10364 #: build/C/man2/sendfile.2:183
10365 msgid ""
10366 "The original Linux B<sendfile>()  system call was not designed to handle "
10367 "large file offsets.  Consequently, Linux 2.4 added B<sendfile64>(), with a "
10368 "wider type for the I<offset> argument.  The glibc B<sendfile>()  wrapper "
10369 "function transparently deals with the kernel differences."
10370 msgstr ""
10371 "元々の Linux B<sendfile>() システムコールは大きなファイルオフセットを\n"
10372 "扱えるように設計されていなかった。その結果、Linux 2.4 で、\n"
10373 "ビット幅の大きな I<offset> 引き数を持った B<sendfile64>() が追加された。\n"
10374 "glibc の B<sendfile>() のラッパー関数はカーネルによるこの違いを吸収している。"
10375
10376 #. type: Plain text
10377 #: build/C/man2/sendfile.2:192
10378 msgid ""
10379 "Applications may wish to fall back to B<read>(2)/B<write>(2)  in the case "
10380 "where B<sendfile>()  fails with B<EINVAL> or B<ENOSYS>."
10381 msgstr ""
10382 "B<sendfile>()  が B<EINVAL> や B<ENOSYS> で失敗するような場合は、 アプリケー"
10383 "ションは B<read>(2)/B<write>(2)  に戻すことを考えてもよいかもしれない。"
10384
10385 #. type: Plain text
10386 #: build/C/man2/sendfile.2:197
10387 msgid ""
10388 "The Linux-specific B<splice>(2)  call supports transferring data between "
10389 "arbitrary files (e.g., a pair of sockets)."
10390 msgstr ""
10391 "Linux 固有の B<splice>(2) システムコールは、任意のファイル間 (例えば、\n"
10392 "ソケット同士) でのデータ転送をサポートしている。"
10393
10394 #. type: Plain text
10395 #: build/C/man2/sendfile.2:202
10396 msgid "B<mmap>(2), B<open>(2), B<socket>(2), B<splice>(2)"
10397 msgstr "B<mmap>(2), B<open>(2), B<socket>(2), B<splice>(2)"
10398
10399 #. type: TH
10400 #: build/C/man2/set_tid_address.2:25
10401 #, no-wrap
10402 msgid "SET_TID_ADDRESS"
10403 msgstr "SET_TID_ADDRESS"
10404
10405 #. type: TH
10406 #: build/C/man2/set_tid_address.2:25
10407 #, no-wrap
10408 msgid "2012-07-19"
10409 msgstr "2012-07-19"
10410
10411 #. type: Plain text
10412 #: build/C/man2/set_tid_address.2:28
10413 msgid "set_tid_address - set pointer to thread ID"
10414 msgstr "set_tid_address - スレッド ID へのポインタを設定する"
10415
10416 #. type: Plain text
10417 #: build/C/man2/set_tid_address.2:31
10418 #, no-wrap
10419 msgid "B<#include E<lt>linux/unistd.hE<gt>>\n"
10420 msgstr "B<#include E<lt>linux/unistd.hE<gt>>\n"
10421
10422 #. type: Plain text
10423 #: build/C/man2/set_tid_address.2:33
10424 #, no-wrap
10425 msgid "B<long set_tid_address(int *>I<tidptr>B<);>\n"
10426 msgstr "B<long set_tid_address(int *>I<tidptr>B<);>\n"
10427
10428 #. type: Plain text
10429 #: build/C/man2/set_tid_address.2:40
10430 msgid ""
10431 "For each process, the kernel maintains two attributes (addresses) called "
10432 "I<set_child_tid> and I<clear_child_tid>.  These two attributes contain the "
10433 "value NULL by default."
10434 msgstr ""
10435 "各プロセスについて、カーネルは I<set_child_tid> と I<clear_child_tid> という "
10436 "2 つの属性を保持する。この 2 つの属性はデフォルトでは NULL である。"
10437
10438 #. type: TP
10439 #: build/C/man2/set_tid_address.2:40
10440 #, no-wrap
10441 msgid "I<set_child_tid>"
10442 msgstr "I<set_child_tid>"
10443
10444 #. type: Plain text
10445 #: build/C/man2/set_tid_address.2:51
10446 msgid ""
10447 "If a process is started using B<clone>(2)  with the B<CLONE_CHILD_SETTID> "
10448 "flag, I<set_child_tid> is set to the value passed in the I<ctid> argument of "
10449 "that system call."
10450 msgstr ""
10451 "プロセスが B<CLONE_CHILD_SETTID> フラグを指定した B<clone>(2)  によって開始さ"
10452 "れた場合、 I<set_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引き数"
10453 "で渡された値に設定される。"
10454
10455 #. type: Plain text
10456 #: build/C/man2/set_tid_address.2:56
10457 msgid ""
10458 "When I<set_child_tid> is set, the very first thing the new process does is "
10459 "writing its PID at this address."
10460 msgstr ""
10461 "I<set_child_tid> が設定された場合、一番最初に新しいプロセスが行うことは、 こ"
10462 "のアドレスに自身の PID を書き込むことである。"
10463
10464 #. type: TP
10465 #: build/C/man2/set_tid_address.2:56
10466 #, no-wrap
10467 msgid "I<clear_child_tid>"
10468 msgstr "I<clear_child_tid>"
10469
10470 #. type: Plain text
10471 #: build/C/man2/set_tid_address.2:67
10472 msgid ""
10473 "If a process is started using B<clone>(2)  with the B<CLONE_CHILD_CLEARTID> "
10474 "flag, I<clear_child_tid> is set to the value passed in the I<ctid> argument "
10475 "of that system call."
10476 msgstr ""
10477 "プロセスが B<CLONE_CHILD_CLEARTID> フラグを指定した B<clone>(2) によって開始"
10478 "された場合、 I<clear_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引"
10479 "き数で渡された値に設定される。"
10480
10481 #. type: Plain text
10482 #: build/C/man2/set_tid_address.2:74
10483 msgid ""
10484 "The system call B<set_tid_address>()  sets the I<clear_child_tid> value for "
10485 "the calling process to I<tidptr>."
10486 msgstr ""
10487 "システムコール B<set_tid_address>()  は呼び出し元プロセスの "
10488 "I<clear_child_tid> の値を I<tidptr> に設定する。"
10489
10490 #. type: Plain text
10491 #: build/C/man2/set_tid_address.2:82
10492 msgid ""
10493 "When a process whose I<clear_child_tid> is not NULL terminates, then, if the "
10494 "process is sharing memory with other processes or threads, then 0 is written "
10495 "at the address specified in I<clear_child_tid> and the kernel performs the "
10496 "following operation:"
10497 msgstr ""
10498 "I<clear_child_tid> が NULL でないプロセスが終了すると、そのプロセスが他のプロ"
10499 "セスまたはスレッドとメモリを共有していれば、 I<clear_child_tid> で指定された"
10500 "アドレスに 0 が書き込まれ、カーネルは以下の処理を実行する。"
10501
10502 #. type: Plain text
10503 #: build/C/man2/set_tid_address.2:84
10504 #, no-wrap
10505 msgid "    futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);\n"
10506 msgstr "    futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);\n"
10507
10508 #. type: Plain text
10509 #: build/C/man2/set_tid_address.2:88
10510 msgid ""
10511 "The effect of this operation is to wake a single process that is performing "
10512 "a futex wait on the memory location.  Errors from the futex wake operation "
10513 "are ignored."
10514 msgstr ""
10515 "この処理の結果、このメモリアドレスに対する futex wait を実行しているプロセス"
10516 "を一つ起こす (wake)。 futex wake 操作でのエラーは無視される。"
10517
10518 #. type: Plain text
10519 #: build/C/man2/set_tid_address.2:91
10520 msgid "B<set_tid_address>()  always returns the PID of the calling process."
10521 msgstr "B<set_tid_address>()  は常に現在のプロセスの PID を返す。"
10522
10523 #. type: Plain text
10524 #: build/C/man2/set_tid_address.2:94
10525 msgid "B<set_tid_address>()  always succeeds."
10526 msgstr "B<set_tid_address>()  は常に成功する。"
10527
10528 #. type: Plain text
10529 #: build/C/man2/set_tid_address.2:97
10530 msgid ""
10531 "This call is present since Linux 2.5.48.  Details as given here are valid "
10532 "since Linux 2.5.49."
10533 msgstr ""
10534 "この呼び出しは Linux 2.5.48 以降で存在する。 ここで書かれた詳細は Linux "
10535 "2.5.49 以降で有効である。"
10536
10537 #. type: Plain text
10538 #: build/C/man2/set_tid_address.2:102
10539 msgid "B<clone>(2), B<futex>(2)"
10540 msgstr "B<clone>(2), B<futex>(2)"
10541
10542 #. type: TH
10543 #: build/C/man2/splice.2:26
10544 #, no-wrap
10545 msgid "SPLICE"
10546 msgstr "SPLICE"
10547
10548 #. type: TH
10549 #: build/C/man2/splice.2:26 build/C/man2/tee.2:26 build/C/man2/vmsplice.2:26
10550 #, no-wrap
10551 msgid "2012-05-04"
10552 msgstr "2012-05-04"
10553
10554 #. type: Plain text
10555 #: build/C/man2/splice.2:29
10556 msgid "splice - splice data to/from a pipe"
10557 msgstr "splice - パイプとの間でデータを継ぎ合わせる"
10558
10559 #. type: Plain text
10560 #: build/C/man2/splice.2:33 build/C/man2/tee.2:33
10561 #, no-wrap
10562 msgid ""
10563 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
10564 "B<#include E<lt>fcntl.hE<gt>>\n"
10565 msgstr ""
10566 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
10567 "B<#include E<lt>fcntl.hE<gt>>\n"
10568
10569 #.  Return type was long before glibc 2.7
10570 #. type: Plain text
10571 #: build/C/man2/splice.2:38
10572 #, no-wrap
10573 msgid ""
10574 "B<ssize_t splice(int >I<fd_in>B<, loff_t *>I<off_in>B<, int >I<fd_out>B<,>\n"
10575 "B<               loff_t *>I<off_out>B<, size_t >I<len>B<, unsigned int >I<flags>B<);>\n"
10576 msgstr ""
10577 "B<ssize_t splice(int >I<fd_in>B<, loff_t *>I<off_in>B<, int >I<fd_out>B<,>\n"
10578 "B<               loff_t *>I<off_out>B<, size_t >I<len>B<, unsigned int >I<flags>B<);>\n"
10579
10580 #. type: Plain text
10581 #: build/C/man2/splice.2:50
10582 msgid ""
10583 "B<splice>()  moves data between two file descriptors without copying between "
10584 "kernel address space and user address space.  It transfers up to I<len> "
10585 "bytes of data from the file descriptor I<fd_in> to the file descriptor "
10586 "I<fd_out>, where one of the descriptors must refer to a pipe."
10587 msgstr ""
10588 "B<splice>()  は、カーネルアドレス空間とユーザアドレス空間との間のコピーを伴わ"
10589 "ずに、 2 つのファイルディスクリプタ間でデータの移動を行う。 ファイルディスク"
10590 "リプタ I<fd_in> からファイルディスクリプタ I<fd_out> へ最大 I<len> バイトを転"
10591 "送する。 2 つのファイルディスクリプタのうち一つは パイプを参照していなければ"
10592 "ならない。"
10593
10594 #. type: Plain text
10595 #: build/C/man2/splice.2:80
10596 msgid ""
10597 "If I<fd_in> refers to a pipe, then I<off_in> must be NULL.  If I<fd_in> does "
10598 "not refer to a pipe and I<off_in> is NULL, then bytes are read from I<fd_in> "
10599 "starting from the current file offset, and the current file offset is "
10600 "adjusted appropriately.  If I<fd_in> does not refer to a pipe and I<off_in> "
10601 "is not NULL, then I<off_in> must point to a buffer which specifies the "
10602 "starting offset from which bytes will be read from I<fd_in>; in this case, "
10603 "the current file offset of I<fd_in> is not changed.  Analogous statements "
10604 "apply for I<fd_out> and I<off_out>."
10605 msgstr ""
10606 "I<fd_in> がパイプを参照している場合、 I<off_in> は NULL でなければならない。 "
10607 "I<fd_in> がパイプを参照しておらず、 I<off_in> が NULL の場合、 I<fd_in> の現"
10608 "在のファイルオフセットから始まるバイトを読み出す。 現在のファイルオフセットは"
10609 "適切に調整される。 I<fd_in> がパイプを参照しておらず、 I<off_in> が NULL でな"
10610 "い場合、 I<off_in> は I<fd_in> からのデータ読み出しを開始する先頭オフセットを"
10611 "格納したバッファ へのポインタでなければならない。この場合、 I<fd_in> の現在の"
10612 "ファイルオフセットは変更されない。 I<fd_out> と I<off_out> に関しても同様であ"
10613 "る。"
10614
10615 #. type: Plain text
10616 #: build/C/man2/splice.2:85 build/C/man2/vmsplice.2:78
10617 msgid ""
10618 "The I<flags> argument is a bit mask that is composed by ORing together zero "
10619 "or more of the following values:"
10620 msgstr ""
10621 "I<flags> 引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。"
10622
10623 #. type: TP
10624 #: build/C/man2/splice.2:85 build/C/man2/tee.2:62 build/C/man2/vmsplice.2:78
10625 #, no-wrap
10626 msgid "B<SPLICE_F_MOVE>"
10627 msgstr "B<SPLICE_F_MOVE>"
10628
10629 #. type: Plain text
10630 #: build/C/man2/splice.2:98
10631 msgid ""
10632 "Attempt to move pages instead of copying.  This is only a hint to the "
10633 "kernel: pages may still be copied if the kernel cannot move the pages from "
10634 "the pipe, or if the pipe buffers don't refer to full pages.  The initial "
10635 "implementation of this flag was buggy: therefore starting in Linux 2.6.21 it "
10636 "is a no-op (but is still permitted in a B<splice>()  call); in the future, a "
10637 "correct implementation may be restored."
10638 msgstr ""
10639 "ページのコピーでなく移動を試みる。 これはカーネルに対するヒントでしかない。 "
10640 "つまり、カーネルがパイプからページを移動できない場合や、 パイプバッファがペー"
10641 "ジ全部を参照していない場合は、 ページのコピーが行われることもある。 このフラ"
10642 "グの最初の実装にはバグがあった。そのため、 Linux 2.6.21 以降ではこのフラグの"
10643 "操作はできないようになっている (ただし、 B<splice>()  コールでこのフラグを指"
10644 "定することは今も認められている)。 将来、正しい実装が行われることだろう。"
10645
10646 #. type: TP
10647 #: build/C/man2/splice.2:98 build/C/man2/tee.2:68 build/C/man2/vmsplice.2:84
10648 #, no-wrap
10649 msgid "B<SPLICE_F_NONBLOCK>"
10650 msgstr "B<SPLICE_F_NONBLOCK>"
10651
10652 #. type: Plain text
10653 #: build/C/man2/splice.2:107
10654 msgid ""
10655 "Do not block on I/O.  This makes the splice pipe operations nonblocking, but "
10656 "B<splice>()  may nevertheless block because the file descriptors that are "
10657 "spliced to/from may block (unless they have the B<O_NONBLOCK> flag set)."
10658 msgstr ""
10659 "入出力時に停止 (block) しない。 このフラグを指定すると、 splice によるパイプ"
10660 "操作を非停止モード (nonblocking) で 行おうとするが、その場合でも B<splice>"
10661 "()  は停止することもある。なぜなら、データのやり取りを行う ファイルディスクリ"
10662 "プタは (B<O_NONBLOCK> フラグをセットされていない場合) 停止する可能性があるか"
10663 "らである。"
10664
10665 #. type: TP
10666 #: build/C/man2/splice.2:107 build/C/man2/tee.2:73 build/C/man2/vmsplice.2:91
10667 #, no-wrap
10668 msgid "B<SPLICE_F_MORE>"
10669 msgstr "B<SPLICE_F_MORE>"
10670
10671 #. type: Plain text
10672 #: build/C/man2/splice.2:121
10673 msgid ""
10674 "More data will be coming in a subsequent splice.  This is a helpful hint "
10675 "when the I<fd_out> refers to a socket (see also the description of "
10676 "B<MSG_MORE> in B<send>(2), and the description of B<TCP_CORK> in B<tcp>(7))"
10677 msgstr ""
10678 "この後の splice でさらに転送されるデータがあることを示す。 このフラグは "
10679 "I<fd_out> がソケットを参照している場合に有用なヒントとなる (B<send>(2)  の "
10680 "B<MSG_MORE> や B<tcp>(7)  の B<TCP_CORK> の説明も参照)。"
10681
10682 #. type: TP
10683 #: build/C/man2/splice.2:121 build/C/man2/tee.2:79 build/C/man2/vmsplice.2:97
10684 #, no-wrap
10685 msgid "B<SPLICE_F_GIFT>"
10686 msgstr "B<SPLICE_F_GIFT>"
10687
10688 #. type: Plain text
10689 #: build/C/man2/splice.2:127
10690 msgid "Unused for B<splice>(); see B<vmsplice>(2)."
10691 msgstr "B<splice>()  では使用しない。 B<vmsplice>(2)  参照。"
10692
10693 #. type: Plain text
10694 #: build/C/man2/splice.2:136
10695 msgid ""
10696 "Upon successful completion, B<splice>()  returns the number of bytes spliced "
10697 "to or from the pipe.  A return value of 0 means that there was no data to "
10698 "transfer, and it would not make sense to block, because there are no writers "
10699 "connected to the write end of the pipe referred to by I<fd_in>."
10700 msgstr ""
10701 "成功して完了すると、 B<splice>()  はパイプから出し入れしたバイト数を返す。 返"
10702 "り値 0 はデータの転送が行わなかったことを示す。 この場合、処理を停止 (block) "
10703 "しても無意味である。 なぜなら、 I<fd_in> が参照するパイプの書き込み側に接続さ"
10704 "れている者がいないからである。"
10705
10706 #. type: Plain text
10707 #: build/C/man2/splice.2:142
10708 msgid ""
10709 "On error, B<splice>()  returns -1 and I<errno> is set to indicate the error."
10710 msgstr ""
10711 "エラーの場合、 B<splice>()  は -1 を返し、 I<errno> にエラーを示す値を設定す"
10712 "る。"
10713
10714 #. type: Plain text
10715 #: build/C/man2/splice.2:147
10716 msgid ""
10717 "One or both file descriptors are not valid, or do not have proper read-write "
10718 "mode."
10719 msgstr ""
10720 "ファイルディスクリプタの一方または両方が有効ではない、 もしくは適切な read-"
10721 "write モードではない。"
10722
10723 #.  The append-mode error is given since 2.6.27; in earlier kernels,
10724 #.  splice() in append mode was broken
10725 #. type: Plain text
10726 #: build/C/man2/splice.2:155
10727 msgid ""
10728 "Target file system doesn't support splicing; target file is opened in append "
10729 "mode; neither of the descriptors refers to a pipe; or offset given for "
10730 "nonseekable device."
10731 msgstr ""
10732 "対象のファイルシステムが splice に対応していない、 または対象のファイルが追記"
10733 "モードでオープンされている、 またはディスクリプタのどちらもパイプを参照してい"
10734 "ない、 または seek できないデバイスに対してオフセットが指定された。"
10735
10736 #. type: Plain text
10737 #: build/C/man2/splice.2:158 build/C/man2/tee.2:114
10738 #: build/C/man2/vmsplice.2:138
10739 msgid "Out of memory."
10740 msgstr "メモリ不足。"
10741
10742 #. type: TP
10743 #: build/C/man2/splice.2:158
10744 #, no-wrap
10745 msgid "B<ESPIPE>"
10746 msgstr "B<ESPIPE>"
10747
10748 #. type: Plain text
10749 #: build/C/man2/splice.2:165
10750 msgid ""
10751 "Either I<off_in> or I<off_out> was not NULL, but the corresponding file "
10752 "descriptor refers to a pipe."
10753 msgstr ""
10754 "I<off_in> か I<off_out> のいずれかが NULL ではないが、対応するファイルディス"
10755 "クリプタが パイプを参照している。"
10756
10757 #. type: Plain text
10758 #: build/C/man2/splice.2:170
10759 msgid ""
10760 "The B<splice>()  system call first appeared in Linux 2.6.17; library support "
10761 "was added to glibc in version 2.5."
10762 msgstr ""
10763 "B<splice>() システムコールは Linux 2.6.17 で初めて登場した。\n"
10764 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
10765
10766 #. type: Plain text
10767 #: build/C/man2/splice.2:182
10768 msgid ""
10769 "The three system calls B<splice>(), B<vmsplice>(2), and B<tee>(2), provide "
10770 "user-space programs with full control over an arbitrary kernel buffer, "
10771 "implemented within the kernel using the same type of buffer that is used for "
10772 "a pipe.  In overview, these system calls perform the following tasks:"
10773 msgstr ""
10774 "3 つのシステムコール (B<splice>(), B<vmsplice>(2), B<tee>(2))  を使うと、ユー"
10775 "ザ空間プログラムは任意のカーネルバッファに対する 完全な制御ができる。カーネル"
10776 "バッファは、パイプに使用されているのと 同種のバッファを使ってカーネル内に実装"
10777 "されている。 大まかにいうと、これらのシステムコールは以下の仕事を行う:"
10778
10779 #. type: TP
10780 #: build/C/man2/splice.2:182
10781 #, no-wrap
10782 msgid "B<splice>()"
10783 msgstr "B<splice>()"
10784
10785 #. type: Plain text
10786 #: build/C/man2/splice.2:186
10787 msgid ""
10788 "moves data from the buffer to an arbitrary file descriptor, or vice versa, "
10789 "or from one buffer to another."
10790 msgstr ""
10791 "バッファから任意のファイルディスクリプタや、その逆方向、 もしくはあるバッファ"
10792 "から別のバッファへの、データ移動を行う。"
10793
10794 #. type: TP
10795 #: build/C/man2/splice.2:186
10796 #, no-wrap
10797 msgid "B<tee>(2)"
10798 msgstr "B<tee>(2)"
10799
10800 #. type: Plain text
10801 #: build/C/man2/splice.2:189
10802 msgid "\"copies\" the data from one buffer to another."
10803 msgstr "あるバッファから別のバッファへのデータ「コピー」を行う。"
10804
10805 #. type: TP
10806 #: build/C/man2/splice.2:189
10807 #, no-wrap
10808 msgid "B<vmsplice>(2)"
10809 msgstr "B<vmsplice>(2)"
10810
10811 #. type: Plain text
10812 #: build/C/man2/splice.2:192
10813 msgid "\"copies\" data from user space into the buffer."
10814 msgstr "ユーザ空間からバッファへのデータ「コピー」を行う。"
10815
10816 #.  Linus: Now, imagine using the above in a media server, for example.
10817 #.  Let's say that a year or two has passed, so that the video drivers
10818 #.  have been updated to be able to do the splice thing, and what can
10819 #.  you do? You can:
10820 #.  - splice from the (mpeg or whatever - let's just assume that the video
10821 #.    input is either digital or does the encoding on its own - like they
10822 #.    pretty much all do) video input into a pipe (remember: no copies - the
10823 #.    video input will just DMA directly into memory, and splice will just
10824 #.    set up the pages in the pipe buffer)
10825 #.  - tee that pipe to split it up
10826 #.  - splice one end to a file (ie "save the compressed stream to disk")
10827 #.  - splice the other end to a real-time video decoder window for your
10828 #.    real-time viewing pleasure.
10829 #.  Linus: Now, the advantage of splice()/tee() is that you can
10830 #.  do zero-copy movement of data, and unlike sendfile() you can
10831 #.  do it on _arbitrary_ data (and, as shown by "tee()", it's more
10832 #.  than just sending the data to somebody else: you can duplicate
10833 #.  the data and choose to forward it to two or more different
10834 #.  users - for things like logging etc.).
10835 #. type: Plain text
10836 #: build/C/man2/splice.2:223
10837 msgid ""
10838 "Though we talk of copying, actual copies are generally avoided.  The kernel "
10839 "does this by implementing a pipe buffer as a set of reference-counted "
10840 "pointers to pages of kernel memory.  The kernel creates \"copies\" of pages "
10841 "in a buffer by creating new pointers (for the output buffer) referring to "
10842 "the pages, and increasing the reference counts for the pages: only pointers "
10843 "are copied, not the pages of the buffer."
10844 msgstr ""
10845 "ここではコピーの話をしているが、実際のコピーは一般的に回避される。 カーネル"
10846 "は、パイプ・バッファをカーネルメモリのページへのポインタ集合として 実装し、"
10847 "ページへの参照回数を管理することで、これを実現している。 カーネルは、対象とな"
10848 "るページを参照する (出力バッファ用の) ポインタを 新規に作成することでバッファ"
10849 "内のページの「コピー」を作成し、 そのページの参照回数を増やす。つまり、ポイン"
10850 "タだけがコピーされ、 バッファのページはコピーされない。"
10851
10852 #. type: Plain text
10853 #: build/C/man2/splice.2:226
10854 msgid "See B<tee>(2)."
10855 msgstr "B<tee>(2)  参照。"
10856
10857 #. type: Plain text
10858 #: build/C/man2/splice.2:230
10859 msgid "B<sendfile>(2), B<tee>(2), B<vmsplice>(2)"
10860 msgstr "B<sendfile>(2), B<tee>(2), B<vmsplice>(2)"
10861
10862 #. type: TH
10863 #: build/C/man2/tee.2:26
10864 #, no-wrap
10865 msgid "TEE"
10866 msgstr "TEE"
10867
10868 #. type: Plain text
10869 #: build/C/man2/tee.2:29
10870 msgid "tee - duplicating pipe content"
10871 msgstr "tee - パイプの中身を複製する"
10872
10873 #. type: Plain text
10874 #: build/C/man2/tee.2:36
10875 #, no-wrap
10876 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"
10877 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"
10878
10879 #.  Example programs http://brick.kernel.dk/snaps
10880 #.  add a "tee(in, out1, out2)" system call that duplicates the pages
10881 #.  (again, incrementing their reference count, not copying the data) from
10882 #.  one pipe to two other pipes.
10883 #. type: Plain text
10884 #: build/C/man2/tee.2:56
10885 msgid ""
10886 "B<tee>()  duplicates up to I<len> bytes of data from the pipe referred to by "
10887 "the file descriptor I<fd_in> to the pipe referred to by the file descriptor "
10888 "I<fd_out>.  It does not consume the data that is duplicated from I<fd_in>; "
10889 "therefore, that data can be copied by a subsequent B<splice>(2)."
10890 msgstr ""
10891 "B<tee>()  は、ファイルディスクリプタ I<fd_in> が参照するパイプからファイル"
10892 "ディスクリプタ I<fd_out> が参照するパイプへ最大 I<len> バイトのデータを複製す"
10893 "る。 この操作では、複製されるデータは I<fd_in> からは消費されない。したがっ"
10894 "て、これらのデータをこの後の B<splice>(2)  でコピーすることができる。"
10895
10896 #. type: Plain text
10897 #: build/C/man2/tee.2:62
10898 msgid ""
10899 "I<flags> is a series of modifier flags, which share the name space with "
10900 "B<splice>(2)  and B<vmsplice>(2):"
10901 msgstr ""
10902 "I<flags> は一連の修飾フラグであり、 B<splice>(2)  や B<vmsplice>(2)  と共通の"
10903 "名前である。"
10904
10905 #. type: Plain text
10906 #: build/C/man2/tee.2:68
10907 msgid "Currently has no effect for B<tee>(); see B<splice>(2)."
10908 msgstr "現在のところ B<tee>()  では何の効果もない。 B<splice>(2)  参照。"
10909
10910 #.  Not used for vmsplice
10911 #.  May be in the future -- therefore EAGAIN
10912 #. type: Plain text
10913 #: build/C/man2/tee.2:73 build/C/man2/vmsplice.2:91
10914 msgid "Do not block on I/O; see B<splice>(2)  for further details."
10915 msgstr "入出力で停止 (block) しない。詳細は B<splice>(2)  参照。"
10916
10917 #. type: Plain text
10918 #: build/C/man2/tee.2:79
10919 msgid ""
10920 "Currently has no effect for B<tee>(), but may be implemented in the future; "
10921 "see B<splice>(2)."
10922 msgstr ""
10923 "現在のところ B<tee>()  では何の効果もないが、将来的には実装される可能性があ"
10924 "る。 B<splice>(2)  参照。"
10925
10926 #. type: Plain text
10927 #: build/C/man2/tee.2:85
10928 msgid "Unused for B<tee>(); see B<vmsplice>(2)."
10929 msgstr "B<tee>()  では未使用。 B<vmsplice>(2)  参照。"
10930
10931 #. type: Plain text
10932 #: build/C/man2/tee.2:94
10933 msgid ""
10934 "Upon successful completion, B<tee>()  returns the number of bytes that were "
10935 "duplicated between the input and output.  A return value of 0 means that "
10936 "there was no data to transfer, and it would not make sense to block, because "
10937 "there are no writers connected to the write end of the pipe referred to by "
10938 "I<fd_in>."
10939 msgstr ""
10940 "成功して完了すると、 B<tee>()  は入出力間で複製されたバイト数を返す。 返り値 "
10941 "0 はデータの転送が行われなかったことを示す。 この場合、処理を停止 (block) し"
10942 "ても無意味である。 なぜなら、 I<fd_in> が参照するパイプの書き込み側に接続され"
10943 "ている者がいないからである。"
10944
10945 #. type: Plain text
10946 #: build/C/man2/tee.2:100
10947 msgid ""
10948 "On error, B<tee>()  returns -1 and I<errno> is set to indicate the error."
10949 msgstr ""
10950 "エラーの場合、 B<tee>()  は -1 を返し、 I<errno> にエラーを示す値を設定する。"
10951
10952 #. type: Plain text
10953 #: build/C/man2/tee.2:111
10954 msgid ""
10955 "I<fd_in> or I<fd_out> does not refer to a pipe; or I<fd_in> and I<fd_out> "
10956 "refer to the same pipe."
10957 msgstr ""
10958 "I<fd_in> と I<fd_out> のどちらかがパイプを参照していない。もしくは I<fd_in> "
10959 "と I<fd_out> が同じパイプを参照している。"
10960
10961 #. type: Plain text
10962 #: build/C/man2/tee.2:119
10963 msgid ""
10964 "The B<tee>()  system call first appeared in Linux 2.6.17; library support "
10965 "was added to glibc in version 2.5."
10966 msgstr ""
10967 "B<tee>() システムコールは Linux 2.6.17 で初めて登場した。\n"
10968 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
10969
10970 #. type: Plain text
10971 #: build/C/man2/tee.2:130
10972 msgid ""
10973 "Conceptually, B<tee>()  copies the data between the two pipes.  In reality "
10974 "no real data copying takes place though: under the covers, B<tee>()  assigns "
10975 "data in the output by merely grabbing a reference to the input."
10976 msgstr ""
10977 "概念としては、 B<tee>()  は二つのパイプ間でデータのコピーを行う。 しかし、実"
10978 "際には実データのコピーは行われない。 内部では、 B<tee>()  は入力側に対する参"
10979 "照だけを作成することで出力側にデータを 追加する。"
10980
10981 #. type: Plain text
10982 #: build/C/man2/tee.2:136
10983 msgid ""
10984 "The following example implements a basic B<tee>(1)  program using the B<tee>"
10985 "()  system call."
10986 msgstr ""
10987 "以下の例は、 B<tee>()  システムコールを使って、 基本的な B<tee>(1)  プログラ"
10988 "ムを実装したものである。"
10989
10990 #. type: Plain text
10991 #: build/C/man2/tee.2:145
10992 #, no-wrap
10993 msgid ""
10994 "#define _GNU_SOURCE\n"
10995 "#include E<lt>fcntl.hE<gt>\n"
10996 "#include E<lt>stdio.hE<gt>\n"
10997 "#include E<lt>stdlib.hE<gt>\n"
10998 "#include E<lt>unistd.hE<gt>\n"
10999 "#include E<lt>errno.hE<gt>\n"
11000 "#include E<lt>limits.hE<gt>\n"
11001 msgstr ""
11002 "#define _GNU_SOURCE\n"
11003 "#include E<lt>fcntl.hE<gt>\n"
11004 "#include E<lt>stdio.hE<gt>\n"
11005 "#include E<lt>stdlib.hE<gt>\n"
11006 "#include E<lt>unistd.hE<gt>\n"
11007 "#include E<lt>errno.hE<gt>\n"
11008 "#include E<lt>limits.hE<gt>\n"
11009
11010 #. type: Plain text
11011 #: build/C/man2/tee.2:151
11012 #, no-wrap
11013 msgid ""
11014 "int\n"
11015 "main(int argc, char *argv[])\n"
11016 "{\n"
11017 "    int fd;\n"
11018 "    int len, slen;\n"
11019 msgstr ""
11020 "int\n"
11021 "main(int argc, char *argv[])\n"
11022 "{\n"
11023 "    int fd;\n"
11024 "    int len, slen;\n"
11025
11026 #. type: Plain text
11027 #: build/C/man2/tee.2:156
11028 #, no-wrap
11029 msgid ""
11030 "    if (argc != 2) {\n"
11031 "        fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
11032 "        exit(EXIT_FAILURE);\n"
11033 "    }\n"
11034 msgstr ""
11035 "    if (argc != 2) {\n"
11036 "        fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
11037 "        exit(EXIT_FAILURE);\n"
11038 "    }\n"
11039
11040 #. type: Plain text
11041 #: build/C/man2/tee.2:162
11042 #, no-wrap
11043 msgid ""
11044 "    fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);\n"
11045 "    if (fd == -1) {\n"
11046 "        perror(\"open\");\n"
11047 "        exit(EXIT_FAILURE);\n"
11048 "    }\n"
11049 msgstr ""
11050 "    fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);\n"
11051 "    if (fd == -1) {\n"
11052 "        perror(\"open\");\n"
11053 "        exit(EXIT_FAILURE);\n"
11054 "    }\n"
11055
11056 #. type: Plain text
11057 #: build/C/man2/tee.2:169
11058 #, no-wrap
11059 msgid ""
11060 "    do {\n"
11061 "        /*\n"
11062 "         * tee stdin to stdout.\n"
11063 "         */\n"
11064 "        len = tee(STDIN_FILENO, STDOUT_FILENO,\n"
11065 "                  INT_MAX, SPLICE_F_NONBLOCK);\n"
11066 msgstr ""
11067 "    do {\n"
11068 "        /*\n"
11069 "         * tee stdin to stdout.\n"
11070 "         */\n"
11071 "        len = tee(STDIN_FILENO, STDOUT_FILENO,\n"
11072 "                  INT_MAX, SPLICE_F_NONBLOCK);\n"
11073
11074 #. type: Plain text
11075 #: build/C/man2/tee.2:178
11076 #, no-wrap
11077 msgid ""
11078 "        if (len E<lt> 0) {\n"
11079 "            if (errno == EAGAIN)\n"
11080 "                continue;\n"
11081 "            perror(\"tee\");\n"
11082 "            exit(EXIT_FAILURE);\n"
11083 "        } else\n"
11084 "            if (len == 0)\n"
11085 "                break;\n"
11086 msgstr ""
11087 "        if (len E<lt> 0) {\n"
11088 "            if (errno == EAGAIN)\n"
11089 "                continue;\n"
11090 "            perror(\"tee\");\n"
11091 "            exit(EXIT_FAILURE);\n"
11092 "        } else\n"
11093 "            if (len == 0)\n"
11094 "                break;\n"
11095
11096 #. type: Plain text
11097 #: build/C/man2/tee.2:192
11098 #, no-wrap
11099 msgid ""
11100 "        /*\n"
11101 "         * Consume stdin by splicing it to a file.\n"
11102 "         */\n"
11103 "        while (len E<gt> 0) {\n"
11104 "            slen = splice(STDIN_FILENO, NULL, fd, NULL,\n"
11105 "                          len, SPLICE_F_MOVE);\n"
11106 "            if (slen E<lt> 0) {\n"
11107 "                perror(\"splice\");\n"
11108 "                break;\n"
11109 "            }\n"
11110 "            len -= slen;\n"
11111 "        }\n"
11112 "    } while (1);\n"
11113 msgstr ""
11114 "        /*\n"
11115 "         * Consume stdin by splicing it to a file.\n"
11116 "         */\n"
11117 "        while (len E<gt> 0) {\n"
11118 "            slen = splice(STDIN_FILENO, NULL, fd, NULL,\n"
11119 "                          len, SPLICE_F_MOVE);\n"
11120 "            if (slen E<lt> 0) {\n"
11121 "                perror(\"splice\");\n"
11122 "                break;\n"
11123 "            }\n"
11124 "            len -= slen;\n"
11125 "        }\n"
11126 "    } while (1);\n"
11127
11128 #. type: Plain text
11129 #: build/C/man2/tee.2:196
11130 #, no-wrap
11131 msgid ""
11132 "    close(fd);\n"
11133 "    exit(EXIT_SUCCESS);\n"
11134 "}\n"
11135 msgstr ""
11136 "    close(fd);\n"
11137 "    exit(EXIT_SUCCESS);\n"
11138 "}\n"
11139
11140 #. type: Plain text
11141 #: build/C/man2/tee.2:200
11142 msgid "B<splice>(2), B<vmsplice>(2)"
11143 msgstr "B<splice>(2), B<vmsplice>(2)"
11144
11145 #. type: TH
11146 #: build/C/man2/vm86.2:26
11147 #, no-wrap
11148 msgid "VM86"
11149 msgstr "VM86"
11150
11151 #. type: TH
11152 #: build/C/man2/vm86.2:26
11153 #, no-wrap
11154 msgid "2009-02-20"
11155 msgstr "2009-02-20"
11156
11157 #. type: Plain text
11158 #: build/C/man2/vm86.2:29
11159 msgid "vm86old, vm86 - enter virtual 8086 mode"
11160 msgstr "vm86old, vm86 - 仮想 8086 モードへ移行する"
11161
11162 #. type: Plain text
11163 #: build/C/man2/vm86.2:31
11164 msgid "B<#include E<lt>sys/vm86.hE<gt>>"
11165 msgstr "B<#include E<lt>sys/vm86.hE<gt>>"
11166
11167 #. type: Plain text
11168 #: build/C/man2/vm86.2:33
11169 msgid "B<int vm86old(struct vm86_struct *>I<info>B<);>"
11170 msgstr "B<int vm86old(struct vm86_struct *>I<info>B<);>"
11171
11172 #. type: Plain text
11173 #: build/C/man2/vm86.2:35
11174 msgid "B<int vm86(unsigned long >I<fn>B<, struct vm86plus_struct *>I<v86>B<);>"
11175 msgstr ""
11176 "B<int vm86(unsigned long >I<fn>B<, struct vm86plus_struct *>I<v86>B<);>"
11177
11178 #. type: Plain text
11179 #: build/C/man2/vm86.2:48
11180 msgid ""
11181 "The system call B<vm86>()  was introduced in Linux 0.97p2.  In Linux 2.1.15 "
11182 "and 2.0.28 it was renamed to B<vm86old>(), and a new B<vm86>()  was "
11183 "introduced.  The definition of I<struct vm86_struct> was changed in 1.1.8 "
11184 "and 1.1.9."
11185 msgstr ""
11186 "B<vm86>()  システムコールは Linux 0.97p2 で導入された。 これは Linux 2.1.15 "
11187 "と 2.0.28 で B<vm86old>()  に名前が変更され、 新しい B<vm86>()  が導入され"
11188 "た。 I<struct vm86_struct> の定義は 1.1.8 と 1.1.9 で変更された。"
11189
11190 #. type: Plain text
11191 #: build/C/man2/vm86.2:52
11192 msgid ""
11193 "These calls cause the process to enter VM86 mode (virtual-8086 in Intel "
11194 "literature), and are used by B<dosemu>."
11195 msgstr ""
11196 "これらのコールによってプロセスは VM86 モード (Intel の文書では仮想 8086 モー"
11197 "ド) へと移行する。 これらのコールは B<dosemu> で使用される。"
11198
11199 #. type: Plain text
11200 #: build/C/man2/vm86.2:54
11201 msgid "VM86 mode is an emulation of real mode within a protected mode task."
11202 msgstr ""
11203 "VM86 モードはプロテクトモードタスクにおける リアルモードのエミュレーションで"
11204 "ある。"
11205
11206 #. type: Plain text
11207 #: build/C/man2/vm86.2:64
11208 msgid ""
11209 "This return value is specific to i386 and indicates a problem with getting "
11210 "user-space data."
11211 msgstr ""
11212 "この返り値は i386 固有のものであり、 ユーザー空間のデータを取得する際に問題が"
11213 "あったことを示す。"
11214
11215 #. type: Plain text
11216 #: build/C/man2/vm86.2:68
11217 msgid ""
11218 "This return value indicates the call is not implemented on the present "
11219 "architecture."
11220 msgstr ""
11221 "この返り値は、このコールが現在のアーキテクチャで実装されていないことを示す。"
11222
11223 #. type: Plain text
11224 #: build/C/man2/vm86.2:73
11225 msgid ""
11226 "Saved kernel stack exists.  (This is a kernel sanity check; the saved stack "
11227 "should exist only within vm86 mode itself.)"
11228 msgstr ""
11229 "保存されたカーネルスタックが既に存在している。(これはカーネルが通常の 状態で"
11230 "あるかをチェックしている。保存されたスタックは vm86 モードで しか存在しな"
11231 "い。)"
11232
11233 #. type: Plain text
11234 #: build/C/man2/vm86.2:76
11235 msgid ""
11236 "This call is specific to Linux on 32-bit Intel processors, and should not be "
11237 "used in programs intended to be portable."
11238 msgstr ""
11239 "この関数は 32 ビット Intel プロセッサ上の Linux 特有の関数であり、 移植を意図"
11240 "したプログラムでは使用すべきでない。"
11241
11242 #. type: TH
11243 #: build/C/man2/vmsplice.2:26
11244 #, no-wrap
11245 msgid "VMSPLICE"
11246 msgstr "VMSPLICE"
11247
11248 #. type: Plain text
11249 #: build/C/man2/vmsplice.2:29
11250 msgid "vmsplice - splice user pages into a pipe"
11251 msgstr "vmsplice - ユーザ・ページをパイプに継ぎ合わせる"
11252
11253 #. type: Plain text
11254 #: build/C/man2/vmsplice.2:34
11255 #, no-wrap
11256 msgid ""
11257 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
11258 "B<#include E<lt>fcntl.hE<gt>>\n"
11259 "B<#include E<lt>sys/uio.hE<gt>>\n"
11260 msgstr ""
11261 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
11262 "B<#include E<lt>fcntl.hE<gt>>\n"
11263 "B<#include E<lt>sys/uio.hE<gt>>\n"
11264
11265 #. type: Plain text
11266 #: build/C/man2/vmsplice.2:37
11267 #, no-wrap
11268 msgid ""
11269 "B<ssize_t vmsplice(int >I<fd>B<, const struct iovec *>I<iov>B<,>\n"
11270 "B<                 unsigned long >I<nr_segs>B<, unsigned int >I<flags>B<);>\n"
11271 msgstr ""
11272 "B<ssize_t vmsplice(int >I<fd>B<, const struct iovec *>I<iov>B<,>\n"
11273 "B<                 unsigned long >I<nr_segs>B<, unsigned int >I<flags>B<);>\n"
11274
11275 #.  Linus: vmsplice() system call to basically do a "write to
11276 #.  the buffer", but using the reference counting and VM traversal
11277 #.  to actually fill the buffer. This means that the user needs to
11278 #.  be careful not to reuse the user-space buffer it spliced into
11279 #.  the kernel-space one (contrast this to "write()", which copies
11280 #.  the actual data, and you can thus reuse the buffer immediately
11281 #.  after a successful write), but that is often easy to do.
11282 #. type: Plain text
11283 #: build/C/man2/vmsplice.2:57
11284 msgid ""
11285 "The B<vmsplice>()  system call maps I<nr_segs> ranges of user memory "
11286 "described by I<iov> into a pipe.  The file descriptor I<fd> must refer to a "
11287 "pipe."
11288 msgstr ""
11289 "B<vmsplice>()  システムコールは、 I<iov> で指定されたユーザ・メモリの "
11290 "I<nr_segs> の範囲をパイプにマッピングする。 I<fd> はパイプを参照していなけれ"
11291 "ばならない。"
11292
11293 #. type: Plain text
11294 #: build/C/man2/vmsplice.2:64
11295 msgid ""
11296 "The pointer I<iov> points to an array of I<iovec> structures as defined in "
11297 "I<E<lt>sys/uio.hE<gt>>:"
11298 msgstr ""
11299 "ポインタ I<iov> は I<iovec> 構造体の配列を指す。 I<iovec> 構造体は "
11300 "I<E<lt>sys/uio.hE<gt>> で以下のように定義されている:"
11301
11302 #. type: Plain text
11303 #: build/C/man2/vmsplice.2:71
11304 #, no-wrap
11305 msgid ""
11306 "struct iovec {\n"
11307 "    void  *iov_base;            /* Starting address */\n"
11308 "    size_t iov_len;             /* Number of bytes */\n"
11309 "};\n"
11310 msgstr ""
11311 "struct iovec {\n"
11312 "    void  *iov_base;            /* 開始アドレス */\n"
11313 "    size_t iov_len;             /* バイト数 */\n"
11314 "};\n"
11315
11316 #. type: Plain text
11317 #: build/C/man2/vmsplice.2:84
11318 msgid "Unused for B<vmsplice>(); see B<splice>(2)."
11319 msgstr "B<vmsplice>()  では未使用。 B<splice>(2)  参照。"
11320
11321 #. type: Plain text
11322 #: build/C/man2/vmsplice.2:97
11323 msgid ""
11324 "Currently has no effect for B<vmsplice>(), but may be implemented in the "
11325 "future; see B<splice>(2)."
11326 msgstr ""
11327 "現在のところ B<vmsplice>()  では何の効果もないが、将来的には実装される可能性"
11328 "がある。 B<splice>(2)  参照。"
11329
11330 #.  FIXME Explain the following line in a little more detail:
11331 #.  .... if we expect to later SPLICE_F_MOVE to the cache.
11332 #. type: Plain text
11333 #: build/C/man2/vmsplice.2:113
11334 msgid ""
11335 "The user pages are a gift to the kernel.  The application may not modify "
11336 "this memory ever, or page cache and on-disk data may differ.  Gifting pages "
11337 "to the kernel means that a subsequent B<splice>(2)  B<SPLICE_F_MOVE> can "
11338 "successfully move the pages; if this flag is not specified, then a "
11339 "subsequent B<splice>(2)  B<SPLICE_F_MOVE> must copy the pages.  Data must "
11340 "also be properly page aligned, both in memory and length."
11341 msgstr ""
11342 "ユーザ・ページがカーネルへ渡すもの (gift) であることを示す。 アプリケーション"
11343 "はこのメモリを絶対に変更してはならない。 さもなければ、ページキャッシュとディ"
11344 "スク上のデータは 一致しなくなるだろう。 ページをカーネルに渡すと、この次の "
11345 "B<splice>(2)  B<SPLICE_F_MOVE> でそのページの移動を行うことができる。 このフ"
11346 "ラグが指定されなかった場合、この次の B<splice>(2)  B<SPLICE_F_MOVE> でその"
11347 "ページのコピーを行わなければならない。 データはメモリ上でページ境界にあってい"
11348 "なければならず、 長さもページ境界の倍数でなければならない。"
11349
11350 #. type: Plain text
11351 #: build/C/man2/vmsplice.2:122
11352 msgid ""
11353 "Upon successful completion, B<vmsplice>()  returns the number of bytes "
11354 "transferred to the pipe.  On error, B<vmsplice>()  returns -1 and I<errno> "
11355 "is set to indicate the error."
11356 msgstr ""
11357 "成功して完了すると、 B<vmsplice>()  はパイプに転送したバイト数を返す。 エラー"
11358 "の場合、 B<vmplice>()  は -1 を返し、 I<errno> をエラーを示す値に設定する。"
11359
11360 #. type: Plain text
11361 #: build/C/man2/vmsplice.2:127
11362 msgid "I<fd> either not valid, or doesn't refer to a pipe."
11363 msgstr "I<fd> が有効でない、もしくはパイプを参照していない。"
11364
11365 #. type: Plain text
11366 #: build/C/man2/vmsplice.2:135
11367 msgid ""
11368 "I<nr_segs> is 0 or greater than B<IOV_MAX>; or memory not aligned if "
11369 "B<SPLICE_F_GIFT> set."
11370 msgstr ""
11371 "I<nr_segs> が 0 もしくは B<IOV_MAX> よりも大きい。または B<SPLICE_F_GIFT> が"
11372 "設定されたがメモリがページ境界にあっていない。"
11373
11374 #. type: Plain text
11375 #: build/C/man2/vmsplice.2:143
11376 msgid ""
11377 "The B<vmsplice>()  system call first appeared in Linux 2.6.17; library "
11378 "support was added to glibc in version 2.5."
11379 msgstr ""
11380 "B<vmsplice>() システムコールは Linux 2.6.17 で初めて登場した。\n"
11381 "ライブラリによるサポートは glibc バージョン 2.5 で追加された。"
11382
11383 #. type: Plain text
11384 #: build/C/man2/vmsplice.2:154
11385 msgid ""
11386 "B<vmsplice>()  follows the other vectorized read/write type functions when "
11387 "it comes to limitations on number of segments being passed in.  This limit "
11388 "is B<IOV_MAX> as defined in I<E<lt>limits.hE<gt>>.  At the time of this "
11389 "writing, that limit is 1024."
11390 msgstr ""
11391 "指定されたセグメント数が上限に達した場合、 B<vmsplice>()  は他のベクトル形式"
11392 "の read/write を行う関数と同じ動作をする。 上限は B<IOV_MAX> であり、 "
11393 "I<E<lt>limits.hE<gt>> で定義されている。 このドキュメントを書いた時点での値"
11394 "は 1024 である。"
11395
11396 #. type: Plain text
11397 #: build/C/man2/vmsplice.2:157
11398 msgid "B<splice>(2), B<tee>(2)"
11399 msgstr "B<splice>(2), B<tee>(2)"
11400
11401 #, fuzzy
11402 #~| msgid "The I<subcmd> value is one of the following:"
11403 #~ msgid "The I<flags> argument takes one of the following values:"
11404 #~ msgstr "I<subcmd> の値は以下のいずれかである"
11405
11406 #~ msgid ""
11407 #~ "Depending on which operation was executed, the returned value for a "
11408 #~ "successful call can have differing meanings."
11409 #~ msgstr "どの操作が実行されたかによって、 成功時の返り値の意味が変わる。"
11410
11411 #~ msgid ""
11412 #~ "Returns 0 if the process was woken by a B<FUTEX_WAKE> call.  In case of "
11413 #~ "timeout, the operation fails with the error B<ETIMEDOUT>.  If the futex "
11414 #~ "was not equal to the expected value, the operation fails with the error "
11415 #~ "B<EWOULDBLOCK>.  Signals (see B<signal>(7))  or other spurious wakeups "
11416 #~ "cause B<FUTEX_WAIT> to fail with the error B<EINTR>."
11417 #~ msgstr ""
11418 #~ "プロセスが B<FUTEX_WAKE> の呼び出しで wake すると 0 を返す。 タイムアウト"
11419 #~ "の場合、操作はエラー B<ETIMEOUT> で失敗する。 futex が指定された値と等しく"
11420 #~ "ない場合、 エラー B<EWOULDBLOCK> で失敗する。 シグナルを受信するか "
11421 #~ "(B<signal>(7)  参照) 他の偽の wake があった場合には、エラー B<EINTR> で失"
11422 #~ "敗する。"
11423
11424 #~ msgid "An operation was not defined or error in page alignment."
11425 #~ msgstr ""
11426 #~ "操作が定義されていない。またはページ・アラインメントでエラーが発生した。"
11427
11428 #, fuzzy
11429 #~| msgid ""
11430 #~| "Indicates that this process is to be traced by its parent.  Any signal "
11431 #~| "(except B<SIGKILL>)  delivered to this process will cause it to stop and "
11432 #~| "its parent to be notified via B<wait>(2).  Also, all subsequent calls to "
11433 #~| "B<execve>(2)  by this process will cause a B<SIGTRAP> to be sent to it, "
11434 #~| "giving the parent a chance to gain control before the new program begins "
11435 #~| "execution.  A process probably shouldn't make this request if its parent "
11436 #~| "isn't expecting to trace it.  (I<pid>, I<addr>, and I<data> are ignored.)"
11437 #~ msgid ""
11438 #~ "Indicate that this process is to be traced by its parent.  Any signal "
11439 #~ "(except B<SIGKILL>)  delivered to this process will cause it to stop and "
11440 #~ "its parent to be notified via B<waitpid>(2).  In addition, all subsequent "
11441 #~ "calls to B<execve>(2)  by the traced process will cause a B<SIGTRAP> to "
11442 #~ "be sent to it, giving the parent a chance to gain control before the new "
11443 #~ "program begins execution.  A process probably shouldn't make this request "
11444 #~ "if its parent isn't expecting to trace it.  (I<pid>, I<addr>, and I<data> "
11445 #~ "are ignored.)"
11446 #~ msgstr ""
11447 #~ "このプロセスが親プロセスによってトレースされることを表す。 このプロセスに "
11448 #~ "(B<SIGKILL> 以外の) シグナルが配送されると、 プロセスは停止し、親プロセス"
11449 #~ "に B<wait>(2)  を通じて通知される。 また、これ以降はこのプロセスが "
11450 #~ "B<execve>(2)  を呼び出す度に B<SIGTRAP> が送信されるようになる。 これに"
11451 #~ "よって、親プロセスは 新しいプログラムが実行を開始する前に制御することがで"
11452 #~ "きる。 親プロセスが自プロセスをトレースするつもりがない場合には、 おそらく"
11453 #~ "このプロセスは本要求を行うべきではないだろう。 (I<pid>, I<addr>, I<data> "
11454 #~ "は無視される。)"
11455
11456 #~ msgid ""
11457 #~ "Stop the child at the next B<execve>(2)  call with I<SIGTRAP | "
11458 #~ "PTRACE_EVENT_EXEC\\ E<lt>E<lt>\\ 8>."
11459 #~ msgstr ""
11460 #~ "次の B<execve>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_EXEC\\ E<lt>E<lt>"
11461 #~ "\\ 8> で子プロセスの動作を停止させる。"
11462
11463 #~ msgid ""
11464 #~ "Stop the child at the completion of the next B<vfork>(2)  call with "
11465 #~ "I<SIGTRAP | PTRACE_EVENT_VFORK_DONE\\ E<lt>E<lt>\\ 8>."
11466 #~ msgstr ""
11467 #~ "次の B<vfork>(2)  呼び出し時に I<SIGTRAP | PTRACE_EVENT_VFORK_DONE\\ "
11468 #~ "E<lt>E<lt>\\ 8> で子プロセスの動作を停止させる。"
11469
11470 #~ msgid ""
11471 #~ "Attaches to the process specified in I<pid>, making it a traced \"child\" "
11472 #~ "of the calling process; the behavior of the child is as if it had done a "
11473 #~ "B<PTRACE_TRACEME>.  The calling process actually becomes the parent of "
11474 #~ "the child process for most purposes (e.g., it will receive notification "
11475 #~ "of child events and appears in B<ps>(1)  output as the child's parent), "
11476 #~ "but a B<getppid>(2)  by the child will still return the PID of the "
11477 #~ "original parent.  The child is sent a B<SIGSTOP>, but will not "
11478 #~ "necessarily have stopped by the completion of this call; use B<wait>(2)  "
11479 #~ "to wait for the child to stop.  (I<addr> and I<data> are ignored.)"
11480 #~ msgstr ""
11481 #~ "I<pid> で指定されたプロセスに接続 (attach) し、それを呼び出し元のプロセス"
11482 #~ "の 子プロセスとしてトレースできるようにする。子プロセスは "
11483 #~ "B<PTRACE_TRACEME> したかのように振舞う。呼び出し元のプロセスはそのほとんど"
11484 #~ "の目的において、 その子プロセスの実際の親になる (例えば、子プロセスのイベ"
11485 #~ "ントの 通知を受けとったり、 B<ps>(1)  で親として表示されたりする)。しか"
11486 #~ "し、子プロセスで B<getppid>(2)  を実行した場合には元の親プロセスの PID が"
11487 #~ "返される。 子プロセスには B<SIGSTOP> が送られるが、この呼び出しが完了する"
11488 #~ "までに 必ずしも停止するとは限らない。子プロセスの停止を待つには B<wait>"
11489 #~ "(2)  を使用すること。(I<addr> と I<data> は無視される。)"
11490
11491 #~ msgid ""
11492 #~ "Tracing causes a few subtle differences in the semantics of traced "
11493 #~ "processes.  For example, if a process is attached to with "
11494 #~ "B<PTRACE_ATTACH>, its original parent can no longer receive notification "
11495 #~ "via B<wait>(2)  when it stops, and there is no way for the new parent to "
11496 #~ "effectively simulate this notification."
11497 #~ msgstr ""
11498 #~ "トレースすることによってトレースされるプロセスの動作に些細な違いが 起こる"
11499 #~ "ことがある。例えば、プロセスが B<PTRACE_ATTACH> によって接続された場合に"
11500 #~ "は、そのプロセスが停止した時でも本来の親は B<wait>(2)  を使って通知を受け"
11501 #~ "ることができず、新しい親が効率よく この通知を真似る方法もない。"
11502
11503 #~ msgid ""
11504 #~ "When the parent receives an event with B<PTRACE_EVENT_*> set, the child "
11505 #~ "is not in the normal signal delivery path.  This means the parent cannot "
11506 #~ "do B<ptrace>(PTRACE_CONT)  with a signal or B<ptrace>(PTRACE_KILL).  "
11507 #~ "B<kill>(2)  with a B<SIGKILL> signal can be used instead to kill the "
11508 #~ "child process after receiving one of these messages."
11509 #~ msgstr ""
11510 #~ "親プロセスが B<PTRACE_EVENT_*> がセットされたイベントを受信した場合、 子プ"
11511 #~ "ロセスは通常通りのシグナル配送が行われる状態にない。 つまり、親プロセス"
11512 #~ "が、 シグナルにより B<ptrace>(PTRACE_CONT)  を行ったり、 B<ptrace>"
11513 #~ "(PTRACE_KILL)  を行ったりできないということである。 こららのメッセージの受"
11514 #~ "信後は、子プロセスを終了 (kill) するのに、 シグナル B<SIGKILL> を指定して "
11515 #~ "B<kill>(2)  を行う方法を代わりに使用できる。"
11516
11517 #~ msgid ""
11518 #~ "The SunOS man page describes B<ptrace>()  as \"unique and arcane\", which "
11519 #~ "it is.  The proc-based debugging interface present in Solaris 2 "
11520 #~ "implements a superset of B<ptrace>()  functionality in a more powerful "
11521 #~ "and uniform way."
11522 #~ msgstr ""
11523 #~ "SunOS のマニュアル・ページには B<ptrace>()  は「独特で不可解」と記述されて"
11524 #~ "おり、まさしくそうである。 Solaris 2 では proc ベースの デバッグのインター"
11525 #~ "フェースとして B<ptrace>()  の上位互換関数が実装され、より強力で一貫性のあ"
11526 #~ "るものとなっている。"
11527
11528 #~ msgid ""
11529 #~ "The second argument I<special> is the block special device these quota "
11530 #~ "apply to.  It must be mounted."
11531 #~ msgstr ""
11532 #~ "二番目の引き数 I<special> は quota を適用するデバイスのブロック・スペシャ"
11533 #~ "ル・ファイルである。 そのデバイスはマウントされていなくてはならない。"
11534
11535 #~ msgid ""
11536 #~ "The third argument I<id> is the user or group ID these quota apply to "
11537 #~ "(when relevant)."
11538 #~ msgstr ""
11539 #~ "三番目の引き数 I<id> には、(必要な場合に) quota を適用するユーザーもしくは"
11540 #~ "グループの ID を指定する。"
11541
11542 #~ msgid ""
11543 #~ "The fourth argument I<addr> is the address of a data structure, depending "
11544 #~ "on the command."
11545 #~ msgstr ""
11546 #~ "四番目の引き数 I<addr> には、コマンドごとに異ったデータ構造体のアドレスを"
11547 #~ "指定する。"
11548
11549 #~ msgid ""
11550 #~ "Enable quota.  The I<addr> argument is the pathname of the file "
11551 #~ "containing the quota for the file system."
11552 #~ msgstr ""
11553 #~ "quota を有効にする。 I<addr> 引き数には、そのファイル・システムの quota が"
11554 #~ "記録されているファイルの パス名を指定する。"
11555
11556 #~ msgid "Disable quota."
11557 #~ msgstr "quota を無効にする。"
11558
11559 #~ msgid "Set limits and current usage; I<addr> is as before."
11560 #~ msgstr "制限値と現在の使用量を設定する: I<addr> は同上。"
11561
11562 #~ msgid "Set limits; I<addr> is as before."
11563 #~ msgstr "制限値を設定する; I<addr> は同上。"
11564
11565 #~ msgid "Set usage."
11566 #~ msgstr "使用量を設定する。"
11567
11568 #~ msgid "Sync disk copy of a file system's quota."
11569 #~ msgstr "ファイル・システムの quota ファイルをディスクと同期させる。"
11570
11571 #~ msgid "Get collected stats."
11572 #~ msgstr "収集された統計を取得する。"
11573
11574 #~ msgid ""
11575 #~ "On success, B<quotactl>()  returns 0.  On error, -1 is returned, and "
11576 #~ "I<errno> is set appropriately."
11577 #~ msgstr ""
11578 #~ "B<quotactl>()  は、成功時には 0 を返す。エラー時は、-1 を返すとともに、 "
11579 #~ "I<errno> が適切な値に設定される。"
11580
11581 #~ msgid "B<Q_QUOTAON> was asked, but quotas were enabled already."
11582 #~ msgstr "B<Q_QUOTAON> の要求がなされたが、quota(s) は既に有効になっている。"
11583
11584 #~ msgid "Bad I<addr> value."
11585 #~ msgstr "I<addr> の値に誤りがある。"
11586
11587 #~ msgid ""
11588 #~ "I<type> is not a known quota type.  Or, I<special> could not be found."
11589 #~ msgstr ""
11590 #~ "I<type> が既知の quota の形式ではない。もしくは、 I<special> デバイスが見"
11591 #~ "付からなかった。"
11592
11593 #~ msgid "Cannot read or write the quota file."
11594 #~ msgstr "quota ファイルへの読み書きが出来ない。"
11595
11596 #~ msgid "Too many open files: cannot open quota file."
11597 #~ msgstr "ファイルをオープンしすぎている: quota ファイルをオープン出来ない。"
11598
11599 #~ msgid "I<special> cannot be found in the mount table."
11600 #~ msgstr "I<special> がマウント・テーブル内に見当たらない。"
11601
11602 #~ msgid "The kernel was compiled without quota support."
11603 #~ msgstr "quota を使用可にしてカーネルをコンパイルしていない。"
11604
11605 #~ msgid ""
11606 #~ "The process was not root (for the file system), and B<Q_GETQUOTA> was "
11607 #~ "asked for another I<id> than that of the process itself, or anything "
11608 #~ "other than B<Q_GETSTATS> or B<Q_SYNC> was asked."
11609 #~ msgstr ""
11610 #~ "プロセスが (そのファイル・システムの) root のものではなく、 かつプロセス自"
11611 #~ "身のものとは異なる I<id> に対して B<Q_GETQUOTA> 要求を行なった。 もしく"
11612 #~ "は、 B<Q_GETSTATS>, B<Q_SYNC> 以外の要求がなされた。"
11613
11614 #~ msgid ""
11615 #~ "B<Q_GETQUOTA> or B<Q_SETQUOTA> or B<Q_SETUSE> or B<Q_SETQLIM> was asked "
11616 #~ "for a file system that didn't have quota enabled."
11617 #~ msgstr ""
11618 #~ "quota が有効になっていないファイル・システムに対して B<Q_GETQUOTA>, "
11619 #~ "B<Q_SETQUOTA>, B<Q_SETUSE>, B<Q_SETQLIM> のいずれかの要求がなされた。"