Print this page
Code review comments from jeffpc
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/man/man3lib/libproc.3lib
+++ new/usr/src/man/man3lib/libproc.3lib
1 1 .\"
2 2 .\" This file and its contents are supplied under the terms of the
3 3 .\" Common Development and Distribution License ("CDDL"), version 1.0.
↓ open down ↓ |
3 lines elided |
↑ open up ↑ |
4 4 .\" You may only use this file in accordance with the terms of version
5 5 .\" 1.0 of the CDDL.
6 6 .\"
7 7 .\" A full copy of the text of the CDDL should have accompanied this
8 8 .\" source. A copy of the CDDL is also available via the Internet at
9 9 .\" http://www.illumos.org/license/CDDL.
10 10 .\"
11 11 .\"
12 12 .\" Copyright 2015 Joyent, Inc.
13 13 .\"
14 -.Dd May 08, 2016
14 +.Dd June 06, 2016
15 15 .Dt LIBPROC 3LIB
16 16 .Os
17 17 .Sh NAME
18 18 .Nm libproc
19 19 .Nd process control library
20 20 .Sh SYNOPSIS
21 21 .Lb libproc
22 22 .In libproc.h
23 23 .Sh DESCRIPTION
24 24 The
25 25 .Nm
26 26 library provides consumers a general series of interfaces to inspect
27 27 and control both live processes and core files. It is intended for
28 28 introspection tools such as debuggers by providing a high-level
29 29 interface to the /proc file system
30 30 .Pf ( Xr proc 4 ) .
31 31 .Pp
32 32 The
33 33 .Nm
34 34 library provides interfaces that focus on:
35 35 .Bl -bullet -offset indent
36 36 .It
37 37 Creating and attaching to live process, core files, and arbitrary ELF
38 38 objects.
39 39 .It
40 40 Interrogating the state of a process or core file.
41 41 .It
42 42 Manipulating the current state of a process or thread.
43 43 .It
44 44 Interrogating the state of threads of a process or core file.
45 45 .It
46 46 Running system calls in the context of another process.
47 47 .It
48 48 Various utilities for iterating process and core file file descriptors,
49 49 mappings, symbols, and more.
50 50 .It
51 51 Various utilities to support debugging tools.
52 52 .El
53 53 .Ss Live Processes
54 54 The
55 55 .Nm
56 56 library can be used to manipulate running processes and to create new
57 57 ones. To manipulate an existing process first
58 58 .Em grab
59 59 it with the
60 60 .Em Pgrab
61 61 function. A process is generally stopped as a side effect of grabbing
62 62 it. Callers must exercise caution, as if they do not use the library
63 63 correctly, or they terminate unexpectedly, a process may remain
64 64 stopped.
65 65 .Pp
66 66 Unprivileged users may only grab their own processes. Users with the
67 67 privilege
68 68 .Sy PRIV_PROC_OWNER
69 69 may manipulate processes that they do not own; however, additional
70 70 restrictions as described in
71 71 .Xr privileges 5
72 72 apply.
73 73 .Pp
74 74 In addition, the
75 75 .Fn Pcreate
76 76 and
77 77 .Fn Pxcreate
78 78 functions may be used to create processes which are always controlled by
79 79 the library.
80 80 .Ss Core Files
81 81 The
82 82 .Nm
83 83 library has the ability to open and interpret core files produced by
84 84 processes on the system. Process core dump generation is controlled by
85 85 the
86 86 .Xr coreadm 1M
87 87 command. In addition, the library has the ability to understand and
88 88 interpret core dumps generated by Linux kernel and can provide a subset
89 89 of its functionality on such core files, provided the original binary is
90 90 also present.
91 91 .Pp
92 92 Not all functions in the
93 93 .Nm
94 94 library are valid for core files. In general, none of the commands
95 95 which manipulate the current state of a process or thread or that try
96 96 to force system calls on a victim process will work. Furthermore
97 97 several of the information and iteration interfaces are limited based
98 98 on the data that is available in the core file. For example, if the
99 99 core file is of a process that omits the frame pointer, the ability to
100 100 iterate the stack will be limited.
101 101 .Pp
102 102 Use the
103 103 .Fn Pgrab_core
104 104 or
105 105 .Fn Pfgrab_core
106 106 function to open a core file. Use the
107 107 .Fn Pgrab_file
108 108 function to open an ELF object file.
109 109 This is useful for obtaining information stored in ELF headers and
110 110 sections.
111 111 .Ss Debug Information
112 112 Many of the operations in the library rely on debug information being
113 113 present in a process and its associated libraries. The library
114 114 leverages symbol table information, CTF data
115 115 .Pf ( Xr CTF 4 )
116 116 sections, and frame unwinding information based on the use of an ABI
117 117 defined frame pointer, eg.
118 118 .Sy %ebp
119 119 and
120 120 .Sy %rbp
121 121 on x86 systems.
122 122 .Pp
123 123 Some software providers strip programs of this information or build
124 124 their executables such that the information will not be present in a
125 125 core dump. To deal with this fact, the library is able to consume
126 126 information that is not present in the core file or the running
127 127 process. It can both consume it from the underlying executable and it
128 128 also supports finding it from related ELF objects that are linked to
129 129 it via the
130 130 .Sy .gnu_debuglink
131 131 and the
132 132 .Sy .note.gnu.build-id
133 133 ELF sections.
134 134 .Ss Iteration Interfaces
135 135 The
136 136 .Nm
137 137 library provides the ability to iterate over the following aspects of a
138 138 process or core file:
139 139 .Bl -bullet -offset indent
140 140 .It
141 141 Active threads
142 142 .It
143 143 Active and zombie threads
144 144 .It
145 145 All non-system processes
146 146 .It
147 147 All process mappings
148 148 .It
149 149 All objects in a process
150 150 .It
151 151 The environment
152 152 .It
153 153 The symbol table
154 154 .It
155 155 Stack frames
156 156 .It
157 157 File Descriptors
158 158 .El
159 159 .Ss System Call Injection
160 160 The
161 161 .Nm
162 162 library allows the caller to force system calls to be executed in the
163 163 context of the running process. This can be used both as a tool for
164 164 introspection, allowing one to get information outside its current
165 165 context as well as performing modifications to a process.
166 166 .Pp
167 167 These functions run in the context of the calling process. This is
168 168 often an easier way of getting non-exported information about a
169 169 process from the system. For example, the
170 170 .Xr pfiles 1
171 171 command uses this interface to get more detailed information about a
172 172 process's open file descriptors, which it would not have access to
173 173 otherwise.
174 174 .Sh INTERFACES
175 175 The shared object
176 176 .Sy libproc.so.1
177 177 provides the public interfaces defined below. See
178 178 .Xr Intro 3
179 179 for additional information on shared object interfaces. Functions are
180 180 organized into categories that describe their purpose. Individual
181 181 functions are documented in their own manual pages.
182 182 .Ss Creation, Grabbing, and Releasing
183 183 The following routines are related to creating library handles,
184 184 grabbing cores, processes, and threads, and releasing those resources.
185 185 .Bl -column -offset indent ".Sy Pmapping_iter_resolved" ".Sy Psymbol_iter_by_addr"
186 186 .It Sy Lfree Ta Sy Lgrab
187 187 .It Sy Lgrab_error Ta Sy Pcreate
188 188 .It Sy Pcreate_agent Ta Sy Pcreate_callback
189 189 .It Sy Pcreate_error Ta Sy Pdestroy_agent
190 190 .It Sy Pfgrab_core Ta Sy Pfree
191 191 .It Sy Pgrab Ta Sy Pgrab_core
192 192 .It Sy Pgrab_error Ta Sy Pgrab_file
193 193 .It Sy Pgrab_ops Ta Sy Prelease
194 194 .It Sy Preopen Ta Sy Pxcreate
195 195 .El
196 196 .Ss Process interrogation and manipulation
197 197 The following routines obtain information about a process and allow
198 198 manipulation of the process itself.
199 199 .Bl -column -offset indent ".Sy Pmapping_iter_resolved" ".Sy Psymbol_iter_by_addr"
200 200 .It Sy Paddr_to_ctf Ta Sy Paddr_to_loadobj
201 201 .It Sy Paddr_to_map Ta Sy Paddr_to_text_map
202 202 .It Sy Pasfd Ta Sy Pclearfault
203 203 .It Sy Pclearsig Ta Sy Pcontent
204 204 .It Sy Pcred Ta Sy Pctlfd
205 205 .It Sy Pdelbkpt Ta Sy Pdelwapt
206 206 .It Sy Pdstop Ta Sy Pexecname
207 207 .It Sy Pfault Ta Sy Pfgcore
208 208 .It Sy Pgcore Ta Sy Pgetareg
209 209 .It Sy Pgetauxval Ta Sy Pgetauxvec
210 210 .It Sy Pgetenv Ta Sy Pisprocdir
211 211 .It Sy Pissyscall_prev Ta Sy Plmid
212 212 .It Sy Plmid_to_loadobj Ta Sy Plmid_to_map
213 213 .It Sy Plookup_by_addr Ta Sy Plookup_by_name
214 214 .It Sy Plwp_alt_stack Ta Sy Plwp_getfpregs
215 215 .It Sy Plwp_getpsinfo Ta Sy Plwp_getregs
216 216 .It Sy Plwp_getspymaster Ta Sy Plwp_main_stack
217 217 .It Sy Plwp_setfpregs Ta Sy Plwp_setregs
218 218 .It Sy Plwp_stack Ta Sy Pname_to_ctf
219 219 .It Sy Pname_to_loadobj Ta Sy Pname_to_map
220 220 .It Sy Pobjname Ta Sy Pobjname_resolved
221 221 .It Sy Pplatform Ta Sy Ppltdest
222 222 .It Sy Ppriv Ta Sy Ppsinfo
223 223 .It Sy Pputareg Ta Sy Prd_agent
224 224 .It Sy Pread Ta Sy Pread_string
225 225 .It Sy Preset_maps Ta Sy Psetbkpt
226 226 .It Sy Psecflags Ta Sy Psetcred
227 227 .It Sy Psetfault Ta Sy Psetflags
228 228 .It Sy Psetpriv Ta Sy Psetrun
229 229 .It Sy Psetsignal Ta Sy Psetsysentry
230 230 .It Sy Psetsysexit Ta Sy Psetwapt
231 231 .It Sy Psetzoneid Ta Sy Psignal
232 232 .It Sy Pstate Ta Sy Pstatus
233 233 .It Sy Pstop Ta Sy Pstopstatus
234 234 .It Sy Psync Ta Sy Psysentry
235 235 .It Sy Psysexit Ta Sy Puname
236 236 .It Sy Punsetflags Ta Sy Pupdate_maps
237 237 .It Sy Pupdate_syms Ta Sy Pwait
238 238 .It Sy Pwrite Ta Sy Pxecbkpt
239 239 .It Sy Pxecwapt Ta Sy Pxlookup_by_addr
240 240 .It Sy Pxlookup_by_addr_resolved Ta Sy Pxlookup_by_name
241 241 .It Sy Pzonename Ta Sy Pzonepath
242 242 .It Sy Pzoneroot Ta
243 243 .El
244 244 .Ss Thread interrogation and manipulation
245 245 The following routines obtain information about a thread and allow
246 246 manipulation of the thread itself.
247 247 .Bl -column -offset indent ".Sy Pmapping_iter_resolved" ".Sy Psymbol_iter_by_addr"
248 248 .It Sy Lalt_stack Ta Sy Lclearfault
249 249 .It Sy Lclearsig Ta Sy Lctlfd
250 250 .It Sy Ldstop Ta Sy Lgetareg
251 251 .It Sy Lmain_stack Ta Sy Lprochandle
252 252 .It Sy Lpsinfo Ta Sy Lputareg
253 253 .It Sy Lsetrun Ta Sy Lstack
254 254 .It Sy Lstate Ta Sy Lstatus
255 255 .It Sy Lstop Ta Sy Lsync
256 256 .It Sy Lwait Ta Sy Lxecbkpt
257 257 .It Sy Lxecwapt Ta ""
258 258 .El
259 259 .Ss System Call Injection
260 260 The following routines are used to inject specific system calls and have
261 261 them run in the context of a process.
262 262 .Bl -column -offset indent ".Sy Pmapping_iter_resolved" ".Sy Psymbol_iter_by_addr"
263 263 .It Sy pr_access Ta Sy pr_close
264 264 .It Sy pr_creat Ta Sy pr_door_info
265 265 .It Sy pr_exit Ta Sy pr_fcntl
266 266 .It Sy pr_fstat Ta Sy pr_fstat64
267 267 .It Sy pr_fstatvfs Ta Sy pr_getitimer
268 268 .It Sy pr_getpeername Ta Sy pr_getpeerucred
269 269 .It Sy pr_getprojid Ta Sy pr_getrctl
270 270 .It Sy pr_getrlimit Ta Sy pr_getrlimit64
271 271 .It Sy pr_getsockname Ta Sy pr_getsockopt
272 272 .It Sy pr_gettaskid Ta Sy pr_getzoneid
273 273 .It Sy pr_ioctl Ta Sy pr_link
274 274 .It Sy pr_llseek Ta Sy pr_lseek
275 275 .It Sy pr_lstat Ta Sy pr_lstat64
276 276 .It Sy pr_memcntl Ta Sy pr_meminfo
277 277 .It Sy pr_mmap Ta Sy pr_munmap
278 278 .It Sy pr_open Ta Sy pr_processor_bind
279 279 .It Sy pr_rename Ta Sy pr_setitimer
280 280 .It Sy pr_setrctl Ta Sy pr_setrlimit
281 281 .It Sy pr_setrlimit64 Ta Sy pr_settaskid
282 282 .It Sy pr_sigaction Ta Sy pr_stat
283 283 .It Sy pr_stat64 Ta Sy pr_statvfs
284 284 .It Sy pr_unlink Ta Sy pr_waitid
285 285 .El
286 286 .Ss Iteration routines
287 287 These routines are used to iterate over the contents of a process.
288 288 .Bl -column -offset indent ".Sy Pmapping_iter_resolved" ".Sy Psymbol_iter_by_addr"
289 289 .It Sy Penv_iter Ta Sy Plwp_iter
290 290 .It Sy Plwp_iter_all Ta Sy Pmapping_iter
291 291 .It Sy Pmapping_iter_resolved Ta Sy Pobject_iter
292 292 .It Sy Pobject_iter_resolved Ta Sy Pstack_iter
293 293 .It Sy Psymbol_iter Ta Sy Psymbol_iter_by_addr
294 294 .It Sy Psymbol_iter_by_lmid Ta Sy Psymbol_iter_by_name
295 295 .It Sy Pxsymbol_iter Ta Sy Pfdinfo_iter
296 296 .El
297 297 .Ss Utility routines
298 298 The following routines are utilities that are useful to consumers of the
299 299 library.
300 300 .Bl -column -offset indent ".Sy Pmapping_iter_resolved" ".Sy Psymbol_iter_by_addr"
301 301 .It Sy Perror_printf Ta Sy proc_arg_grab
302 302 .It Sy proc_arg_psinfo Ta Sy proc_arg_xgrab
303 303 .It Sy proc_arg_xpsinfo Ta Sy proc_content2str
304 304 .It Sy proc_finistdio Ta Sy proc_fltname
305 305 .It Sy proc_fltset2str Ta Sy proc_flushstdio
306 306 .It Sy proc_get_auxv Ta Sy proc_get_cred
307 307 .It Sy proc_get_priv Ta Sy proc_get_psinfo
308 308 .It Sy proc_get_status Ta Sy proc_initstdio
309 309 .It Sy proc_lwp_in_set Ta Sy proc_lwp_range_valid
310 310 .It Sy proc_signame Ta Sy proc_sigset2str
311 311 .It Sy proc_str2content Ta Sy proc_str2flt
312 312 .It Sy proc_str2fltset Ta Sy proc_str2sig
313 313 .It Sy proc_str2sigset Ta Sy proc_str2sys
314 314 .It Sy proc_str2sysset Ta Sy proc_sysname
315 315 .It Sy proc_sysset2str Ta Sy proc_unctrl_psinfo
316 316 .It Sy proc_walk Ta ""
317 317 .El
318 318 .Ss x86 Specific Routines
319 319 The following routines are specific to the x86, 32-bit and 64-bit,
320 320 versions of the
321 321 .Nm
322 322 library.
323 323 .Bl -column -offset indent ".Sy Pmapping_iter_resolved" ".Sy Psymbol_iter_by_addr"
324 324 .It Sy Pldt Ta Sy proc_get_ldt
325 325 .El
326 326 .Ss SPARC specific Routines
327 327 The following functions are specific to the SPARC, 32-bit and 64-bit,
328 328 versions of the
329 329 .Nm
330 330 library.
331 331 .Bl -column -offset indent ".Sy Pmapping_iter_resolved" ".Sy Psymbol_iter_by_addr"
332 332 .It Sy Plwp_getgwindows Ta Sy Plwp_getxregs
333 333 .It Sy Plwp_setxregs Ta Sy ""
334 334 .El
335 335 .Pp
336 336 The following functions are specific to the 64-bit SPARC version of the
337 337 .Nm
338 338 library.
339 339 .Bl -column -offset indent ".Sy Pmapping_iter_resolved" ".Sy Psymbol_iter_by_addr"
340 340 .It Sy Plwp_getasrs Ta Sy Plwp_setasrs
341 341 .El
342 342 .Sh PROCESS STATES
343 343 Every process handle that exists in
344 344 .Nm
345 345 has a state. In some cases, such as for core files, these states are
346 346 static. In other cases, such as handles that correspond to a
347 347 running process or a created process, these states are dynamic and
348 348 change based on actions taken in the library. The state can be obtained
349 349 with the
350 350 .Xr Pstate 3PROC
351 351 function.
352 352 .Pp
353 353 The various states are:
354 354 .Bl -tag -width Dv -offset indent
355 355 .It Dv PS_RUN
356 356 An actively running process. This may be a process that was obtained
357 357 by creating it with functions such as
358 358 .Xr Pcreate 3PROC
359 359 or by grabbing an existing process such as
360 360 .Xr Pgrab 3PROC .
361 361 .It Dv PS_STOP
362 362 An active process that is no longer executing. A process may stop for
363 363 many reasons such as an explicit stop request (through
364 364 .Xr pstop 1
365 365 for example) or if a tracing event is hit.
366 366 .Pp
367 367 The reason a process is stopped may be obtained through the thread's
368 368 .Sy lwpstatus_t
369 369 structure read directly from /proc or obtained through the
370 370 .Xr Lstatus 3PROC
371 371 function.
372 372 .It Dv PS_LOST
373 373 Control over the process has been lost. This may happen when the
374 374 process executes a new image requiring a different set of privileges.
375 375 To resume control call
376 376 .Xr Preopen 3PROC . For more information on losing control of a process,
377 377 see
378 378 .Xr proc 4 .
379 379 .It DV PS_UNDEAD
380 380 A zombie process. It has terminated, but it has not been cleaned up
381 381 yet by its parent. For more on the conditions of becoming a zombie,
382 382 see
383 383 .Xr exec 2 .
384 384 .It DV_PS_DEAD
385 385 Processes in this state are always core files. See the earlier section
386 386 .Sx Core Files
387 387 for more information on working with core files.
388 388 .It Dv PS_IDLE
389 389 A process that has never been run. This is always the case for handles
390 390 that refer to files as the files cannot be executed. Those process
391 391 handles are obtained through calling
392 392 .Xr Pgrab_file 3PROC .
393 393 .El
394 394 .Pp
395 395 Many functions relating to tracing processes, for example
396 396 .Xr Psignal 3PROC ,
397 397 .Xr Psetsignal 3PROC ,
398 398 .Xr Psetfault 3PROC ,
399 399 .Xr Psetentry 3PROC ,
400 400 and others, mention that they only act upon
401 401 .Em Active Processes .
402 402 This specifically refers to processes whose state are in
403 403 .Dv PS_RUN
404 404 and
405 405 .Dv PS_STOP .
406 406 Process handles in the other states have no notion of settable tracing
407 407 flags, though core files
408 408 .Pf ( type Dv PS_DEAD ) ,
409 409 =======
410 410 may have a read-only snapshot of their tracing settings available.
411 411 .Sh TYPES
412 412 The
413 413 .Nm
414 414 library uses many types that come from the /proc file system
415 415 .Pf ( Xr proc 4 )
416 416 and the ELF format
417 417 .Pf ( Xr elf 3ELF ) .
418 418 However, it also defines the following types:
419 419 .Pp
420 420 .Sy struct ps_prochandle
421 421 .Pp
422 422 The
423 423 .Sy struct ps_prochandle
424 424 is an opaque handle to the library and the core element of control for a
425 425 process. Consumers obtain pointers to a handle through the use of the
426 426 .Fn Pcreate ,
427 427 .Fn Pgrab ,
428 428 and related functions. When a caller is done with a handle, then it
429 429 should call one of the
430 430 .Fn Pfree
431 431 and
432 432 .Fn Prelease
433 433 functions to relinquish the handle, release associated resources, and
434 434 potentially set the process to run again.
435 435 .Pp
436 436 .Sy struct ps_lwphandle
437 437 .Pp
438 438 The
439 439 .Sy struct ps_lwphandle
440 440 is analogous to the
441 441 .Sy struct ps_prochandle ,
442 442 but it represents the control of an individual thread, rather than a
443 443 process. Consumers obtain pointers to a handle through the
444 444 .Fn Lgrab
445 445 function and relinquish it with the
446 446 .Fn Lfree
447 447 function.
448 448 .Pp
449 449 .Sy core_content_t
450 450 .Pp
451 451 The
452 452 .Sy core_content_t
453 453 is a value which describes the various content types of core files.
454 454 These are used in functions such as
455 455 .Xr Pcontent 3PROC
456 456 and
457 457 .Xr Pgcore 3PROC
458 458 to describe and control the types of content that get included. Various
459 459 content types may be included together through a bitwise-inclusive-OR.
460 460 The default system core contents are controlled with the
461 461 .Xr coreadm 1M
462 462 tool. The following table lists the current set of core contents in the
463 463 system, though the set may increase over time. The string after the
464 464 macro is the human readable string that corresponds with the constant
465 465 and is used by
466 466 .Xr coreadm 1M ,
467 467 .Xr proc_content2str 3PROC ,
468 468 and
469 469 .Xr proc_str2content 3PROC .
470 470 .Bl -tag -offset indent -width indent
471 471 .It Dv CC_CONTENT_STACK ("stack")
472 472 The contents include the process stack. Note, this only covers the main
473 473 thread's stack. The stack of other threads is covered by
474 474 .Dv CC_CONTENT_ANON .
475 475 .It Dv CC_CONTENT_HEAP ("heap")
476 476 The contents include the process heap.
477 477 .It Dv CC_CONTENT_SHFILE ("shfile")
478 478 The contents include shared mappings that are backed by files (e.g.
479 479 mapped through
480 480 .Xr mmap 2
481 481 with the
482 482 .Dv MAP_SHARED
483 483 flag).
484 484 .It Dv CC_CONTENT_SHANNON ("shannon")
485 485 The contents include shared mappings that are backed by anonymous memory
486 486 (e.g. mapped through
487 487 .Xr mmap 2
488 488 with the
489 489 .Dv MAP_SHARED
490 490 and
491 491 .Dv MAP_ANON
492 492 flags).
493 493 .It Dv CC_CONTENT_RODATA ("rodata")
494 494 The contents include private read-only file mappings, such as shared
495 495 library text.
496 496 .It Dv CC_CONTENT_ANON ("anon")
497 497 The contents include private anonymous mappings. This includes the
498 498 stacks of threads which are not the main thread.
499 499 .It Dv CC_CONTENT_SHM ("shm")
500 500 The contents include system V shared memory.
501 501 .It Dv CC_CONTENT_ISM ("ism")
502 502 The contents include ISM (intimate shared memory) mappings.
503 503 .It Dv CC_CONTENT_DISM ("dism")
504 504 The contents include DISM (dynamic shared memory) mappings.
505 505 .It Dv CC_CONTENT_CTF ("ctf")
506 506 The contents include
507 507 .Xr ctf 4
508 508 (Compact C Type Format) information. Note, not all objects in the
509 509 process may have CTF information available.
510 510 .It Dv CC_CONTENT_SYMTAB ("symtab")
511 511 The contents include the symbol table. Note, not all objects in the
512 512 process may have a symbol table available.
513 513 .It Dv CC_CONTENT_ALL ("all")
514 514 This value indicates that all of the above content values are present.
515 515 Note that additional values may be added in the future, in which case
516 516 the value of the symbol will be updated to include them. Comparisons
517 517 with
518 518 .Dv CC_CONTENT_ALL
519 519 should validate all the expected bits are set by an expression such as
520 520 .Li (c & CC_CONTENT_ALL) == CC_CONTENT_ALL .
521 521 .It Dv CC_CONTENT_NONE ("none")
522 522 This value indicates that there is no content present.
523 523 .It Dv CC_CONTENT_DEFAULT ("default")
524 524 The content includes the following set of default values:
525 525 .Dv CC_CONTENT_STACK ,
526 526 .Dv CC_CONTENT_HEAP ,
527 527 .Dv CC_CONTENT_ISM ,
528 528 .Dv CC_CONTENT_DISM ,
529 529 .Dv CC_CONTENT_SHM ,
530 530 .Dv CC_CONTENT_SHANON ,
531 531 .Dv CC_CONTENT_TEXT ,
532 532 .Dv CC_CONTENT_DATA ,
533 533 .Dv CC_CONTENT_RODATA ,
534 534 .Dv CC_CONTENT_ANON ,
535 535 .Dv CC_CONTENT_CTF ,
536 536 and
537 537 .Dv CC_CONTENT_SYMTAB.
538 538 Note that the default may change. Comparisons with CC_CONTENT_DEFAULT
539 539 should validate that all of the expected bits are set with an expression
540 540 such as
541 541 .Li (c\ &\ CC_CONTENT_DEFAULT)\ ==\ CC_CONTENT_DEFAULT.
542 542 .It Dv CC_CONTENT_INVALID
543 543 This indicates that the contents are invalid.
544 544 .El
545 545 .Pp
546 546 .Sy prfdinfo_t
547 547 .Pp
548 548 The
549 549 .Sy prfdinfo_t
550 550 structure is used with the
551 551 .Fn Pfdinfo_iter
552 552 function which describes information about a file descriptor. The
553 553 structure is defined as follows:
554 554 .Bd -literal
555 555 typedef struct prfdinfo {
556 556 int pr_fd;
557 557 mode_t pr_mode;
558 558 uid_t pr_uid;
559 559 gid_t pr_gid;
560 560 major_t pr_major; /* think stat.st_dev */
561 561 minor_t pr_minor;
562 562 major_t pr_rmajor; /* think stat.st_rdev */
563 563 minor_t pr_rminor;
564 564 ino64_t pr_ino;
565 565 off64_t pr_offset;
566 566 off64_t pr_size;
567 567 int pr_fileflags; /* fcntl(F_GETXFL), etc */
568 568 int pr_fdflags; /* fcntl(F_GETFD), etc. */
569 569 char pr_path[MAXPATHLEN];
570 570 } prfdinfo_t;
571 571 .Ed
572 572 .Pp
573 573 The structure has similar information to that found in the
574 574 .Sy stat
575 575 structure that's used as part of the stat family of system calls,
576 576 defined in
577 577 .Xr stat 2 .
578 578 The member
579 579 .Sy pr_fd
580 580 contains the number of the file descriptor of the file. The members
581 581 .Sy pr_mode ,
582 582 .Sy pr_uid ,
583 583 .Sy pr_gid ,
584 584 .Sy pr_ino ,
585 585 and
586 586 .Sy pr_size
587 587 are the same as the members
588 588 .Sy st_mode ,
589 589 .Sy st_uid ,
590 590 .Sy st_gid ,
591 591 .Sy st_ino ,
592 592 and
593 593 .Sy st_size
594 594 in the
595 595 .Sy stat
596 596 structure.
597 597 .Pp
598 598 The
599 599 .Sy pr_major
600 600 and
601 601 .Sy pr_minor
602 602 members contain the major and minor numbers of the device containing the
603 603 directory for this file. This is similar to the
604 604 .Sy st_dev
605 605 member of the
606 606 .Sy stat
607 607 structure, except that it is broken out into its major and minor components.
608 608 The
609 609 .Sy pr_rmajor
610 610 and
611 611 .Sy pr_rminor
612 612 members are similar in spirit to
613 613 .Sy pr_major
614 614 and
615 615 .Sy pr_minor ;
616 616 however, they are equivalent to the
617 617 .Sy st_rdev
618 618 member of the
619 619 .Sy stat
620 620 structure and thus have meaning for special character and block files.
621 621 .Pp
622 622 The
623 623 .Sy pr_offset
624 624 member contains the current seek offset of the file descriptor. The
625 625 .Sy pr_fileflags
626 626 and
627 627 .Sy pr_fdflags
628 628 members contain the flags that would have been returned by a call to
629 629 .Xr fcntl 2
630 630 with the arguments
631 631 .Dv F_GETXFL
632 632 and
633 633 .Dv F_GETFD
634 634 respectively.
635 635 .Pp
636 636 .Sy prsyminfo_t
637 637 .Pp
638 638 The
639 639 .Sy prsyminfo_t
640 640 structure is used with the various symbol look up functions
641 641 .Fn Pxlookup_by_name ,
642 642 .Fn Pxlookup_by_addr ,
643 643 and
644 644 .Fn Pxlookup_by_addr_resolved
645 645 which describes additional information about a symbol.
646 646 The structure is defined as follows:
647 647 .Bd -literal
648 648 typedef struct prsyminfo {
649 649 const char *prs_object; /* object name */
650 650 const char *prs_name; /* symbol name */
651 651 Lmid_t prs_lmid; /* link map id */
652 652 uint_t prs_id; /* symbol id */
653 653 uint_t prs_table; /* symbol table id */
654 654 } prsyminfo_t;
655 655 .Ed
656 656 .Pp
657 657 The member
658 658 .Sy prs_object
659 659 points to a string that contains the name of the object file, if known,
660 660 that the symbol comes from. The member
661 661 .Sy prs_name
662 662 points to the name of the symbol, if known. This may be unknown due to a
663 663 stripped binary that contains no symbol table. The member
664 664 .Sy prs_lmid
665 665 indicates the link map identifier that the symbol was found on. For more
666 666 information on link map identifiers refer to the
667 667 .Em Linker and Libraries Guide
668 668 and
669 669 .Xr dlopen 3C .
670 670 .Pp
671 671 The members
672 672 .Sy prs_id
673 673 and
674 674 .Sy prs_table
675 675 can be used to determine both the symbol table that the entry came from
676 676 and which entry in the table it corresponds to. If the value of
677 677 .Sy prs_table
678 678 is
679 679 .Dv PR_SYMTAB
680 680 then it came from the ELF standard symbol table. However, if it is instead
681 681 .Dv PR_DYNSYM ,
682 682 then that indicates that it comes from the process's dynamic section.
683 683 .Pp
684 684 .Sy proc_lwp_f
685 685 .Pp
686 686 The
687 687 .Sy proc_lwp_f
688 688 is a function pointer type that is used with the
689 689 .Fn Plwp_iter
690 690 function. It is defined as
691 691 .Sy typedef
692 692 .Ft int
693 693 .Fo proc_lwp_f
694 694 .Fa "void *"
695 695 .Fa "const lwpstatus_t *"
696 696 .Fc .
697 697 The first argument is a pointer to an argument that the user specifies,
698 698 while the second has the thread's status information and is defined in
699 699 .Xr proc 4 .
700 700 For additional information on using this type, see
701 701 .Xr Plwp_iter 3PROC .
702 702 .Pp
703 703 .Sy proc_lwp_all_f
704 704 .Pp
705 705 The
706 706 .Sy proc_lwp_all_f
707 707 is a function pointer type that is used with the
708 708 .Fn Plwp_iter_all
709 709 function. It is defined as
710 710 .Sy typedef
711 711 .Ft int
712 712 .Fo proc_lwp_all_f
713 713 .Fa "void *"
714 714 .Fa "const lwpstatus_t *"
715 715 .Fa "const lwpsinfo_t *"
716 716 .Fc .
717 717 The first argument is a pointer to an argument that the user specifies.
718 718 The second and third arguments contain the thread's status and
719 719 thread-specific
720 720 .Xr ps 1
721 721 information respectively. Both structures are defined in
722 722 .Xr proc 4 .
723 723 For additional information on using this type, see
724 724 .Xr Plwp_iter_all 3PROC .
725 725 .Pp
726 726 .Sy proc_walk_f
727 727 .Pp
728 728 The
729 729 .Sy proc_walk_f
730 730 is a function pointer type that is used with the
731 731 .Fn proc_walk
732 732 function. It is defined as
733 733 .Sy typedef
734 734 .Ft int
735 735 .Fo proc_walk_f
736 736 .Fa "psinfo_t *"
737 737 .Fa "lwpsinfo_t *"
738 738 .Fa "void *"
739 739 .Fc .
740 740 The first argument contains the process
741 741 .Xr ps 1
742 742 information and the second argument contains the representative thread's
743 743 .Xr ps 1
744 744 information. Both structures are defined in
745 745 .Xr proc 4 .
746 746 The final argument is a pointer to an argument that the user specifies.
747 747 For more information on using this, see
748 748 .Xr proc_walk 3PROC .
749 749 .Pp
750 750 .Sy proc_map_f
751 751 .Pp
752 752 The
753 753 .Sy proc_map_f
754 754 is a function pointer type that is used with the
755 755 .Fn Pmapping_iter ,
756 756 .Fn Pmapping_iter_resolved ,
757 757 .Fn Pobject_iter ,
758 758 and
759 759 .Fn Pobject_iter_resolved
760 760 functions. It is defined as
761 761 .Sy typedef
762 762 .Ft int
763 763 .Fo proc_map_f
764 764 .Fa "void *"
765 765 .Fa "const prmap_t *"
766 766 .Fa "const char *"
767 767 .Fc .
768 768 The first argument is a pointer to an argument that the user specifies.
769 769 The second argument is describes the mapping information and is defined
770 770 in
771 771 .Xr proc 4 .
772 772 The final argument contains the name of the mapping or object file in
773 773 question. For additional information on using this type, see
774 774 .Xr Pmapping_iter 3PROC .
775 775 .Pp
776 776 .Sy proc_env_f
777 777 .Pp
778 778 The
779 779 .Sy proc_env_f
780 780 is a function pointer type that is used with the
781 781 .Fn Penv_iter
782 782 function. It is defined as
783 783 .Sy typedef
784 784 .Ft int
785 785 .Fo proc_env_f
786 786 .Fa "void *"
787 787 .Fa "struct ps_prochandle *"
788 788 .Fa "uintptr_t"
789 789 .Fa "const char *"
790 790 .Fc .
791 791 The first argument is a pointer to an argument that the user specifies.
792 792 The second argument is a pointer to the
793 793 .Sy struct ps_prochandle
794 794 that the callback was passed to. The third argument is the address of
795 795 the environment variable in the process. The fourth argument is the
796 796 environment variable. Values in the environment follow the convention of
797 797 the form
798 798 .Em variable=value .
799 799 For more information on environment variables see
800 800 .Xr exec 2
801 801 and
802 802 .Xr environ 5 .
803 803 For additional information on using this type, see
804 804 .Xr Penv_iter 3PROC .
805 805 .Pp
806 806 .Sy proc_sym_f
807 807 .Pp
808 808 The
809 809 .Sy proc_sym_f
810 810 is a function pointer type that is used with the
811 811 .Fn Psmbol_iter ,
812 812 .Fn Psymbol_iter_by_addr ,
813 813 .Fn Psymbol_iter_by_name ,
814 814 and
815 815 .Fn Psymbol_iter_by_lmid
816 816 functions. It is defined as
817 817 .Sy typedef
818 818 .Ft int
819 819 .Fo proc_sym_f
820 820 .Fa "void *"
821 821 .Fa "const GElf_Sym *"
822 822 .Fa "const char *"
823 823 .Fc .
824 824 The first argument is a pointer to an argument that the user supplies.
825 825 The second argument is a pointer to the ELF symbol information in a
826 826 32-bit and 64-bit neutral form. See
827 827 .Xr elf 3ELF
828 828 and
829 829 .Xr gelf 3ELF
830 830 for more information on it. The final argument points to a character
831 831 string that has the name of the symbol. For additional information on
832 832 using this type, see
833 833 .Xr Psymbol_iter 3PROC ,
834 834 .Xr Psymbol_iter_by_addr 3PROC ,
835 835 .Xr Psymbol_iter_by_name 3PROC ,
836 836 and
837 837 .Xr Psymbol_iter_by_lmid 3PROC .
838 838 .Pp
839 839 .Sy proc_xsym_f
840 840 .Pp
841 841 The
842 842 .Sy proc_xsym_f
843 843 is a function pointer type that is used with the
844 844 .Fn Pxsymbol_iter
845 845 function. It is defined as
846 846 .Sy typedef
847 847 .Ft int
848 848 .Fo proc_xsym_f
849 849 .Fa "void *"
850 850 .Fa "const GElf_Sym *"
851 851 .Fa "const char *"
852 852 .Fa "const prsyminfo_t *"
853 853 .Fc .
854 854 The first three arguments are identical to those of
855 855 .Sy proc_sym_f .
856 856 The final argument contains additional information about the symbol
857 857 itself. The members of the
858 858 .Sy prsyminfo_t
859 859 are defined earlier in this section. For additional information on using
860 860 this type, see
861 861 .Xr Pxsymbol_iter 3PROC .
862 862 .Pp
863 863 .Sy proc_stack_f
864 864 .Pp
865 865 The
866 866 .Sy proc_stack_f
867 867 is a function pointer type that is used with the
868 868 .Fn Pstack_iter
869 869 function. It is defined as
870 870 .Sy typedef
871 871 .Ft int
872 872 .Fo proc_stack_f
873 873 .Fa "void *"
874 874 .Fa "prgregset_t"
875 875 .Fa "uint_t"
876 876 .Fa "const long *"
877 877 .Fc .
878 878 The first argument is a pointer to an argument that the user specifies.
879 879 The second argument's contents are platform specific. The registers that
880 880 contain stack information, usually the stack pointer and frame pointer,
881 881 will be filled in to point to an entry. The
882 882 .Sy prgregset_t
883 883 is defined in
884 884 .Xr proc 4 .
885 885 .Pp
886 886 The third argument contains the number of arguments to the current stack
887 887 frame and the fourth argument contains an array of addresses that
888 888 correspond to the arguments to that stack function. The value of the
889 889 third argument dictates the number of entries in the fourth argument.
890 890 For additional information on using this type, see
891 891 .Xr Pstack_iter 3PROC .
892 892 .Pp
893 893 .Sy proc_fdinfo_f
894 894 .Pp
895 895 The
896 896 .Sy proc_fdinfo_f
897 897 is a function pointer type that is used with the
898 898 .Fn Pfdinfo_iter
899 899 function. It is defined as
900 900 .Sy typedef
901 901 .Ft int
902 902 .Fo proc_fdinfo_f
903 903 .Fa "void *"
904 904 .Fa "prfdinfo_t *"
905 905 .Fc .
906 906 The first argument is a pointer to an argument that the user specifies.
907 907 The second argument contains information about an open file descriptor.
908 908 The members of the
909 909 .Sy prfdinfo_t
910 910 are defined earlier in this section. For additional information on using
911 911 this type, see
912 912 .Xr Pfdinfo_iter 3PROC .
913 913 .Sh PROGRAMMING NOTES
914 914 When working with live processes, whether from the
915 915 .Xr Pgrab
916 916 or
917 917 .Xr Pcreate
918 918 family of functions, there are some additional considerations.
919 919 Importantly, if a process calls any of the
920 920 .Xr exec 2
921 921 suite of functions, much of the state information that is obtained,
922 922 particularly that about mappings in the process will be invalid. Callers
923 923 must ensure that they call
924 924 .Xr Preset_maps 3PROC
925 925 when they hold a process handle across an exec. In addition, users of
926 926 the library should familiarize themselves with the
927 927 .Sy PROGRAMMING NOTES
928 928 section of the
929 929 .Xr proc 4
930 930 manual page, which discusses issues of privileges and security.
931 931 .Sh DEBUGGING
932 932 The library provides a means for obtaining additional debugging
933 933 information. The output itself is not part of the
934 934 .Nm
935 935 library's stable interface. Setting the environment variable
936 936 .Ev LIBPROC_DEBUG
937 937 to some value will print information to standard error. For example,
938 938 .Ev LIBPROC_DEUBG Ns = Ns Em please .
939 939 .Sh LOCKING
940 940 Most functions operate on a handle to a process in the form of a
941 941 .Vt "struct ps_prochandle *" .
942 942 Unless otherwise indicated, the library does not provide any
943 943 synchronization for different routines that are operating on the
944 944 .Sy same
945 945 .Nm
946 946 library handle. It is up to the caller to ensure that only a single
947 947 thread is using a handle at any given time. Multiple threads may call
948 948 .Nm
949 949 library routines at the same time as long as each thread is using a
950 950 different handle.
951 951 .Pp
952 952 Each individual function notes its
953 953 .Sy MT-Level
954 954 section. The MT-Level of a routine that matches the above description
955 955 will refer to this manual page. If it does not, then it refers to the
956 956 standard attributes in
957 957 .Xr attributes 5 .
958 958 .Sh INTERFACE STABILITY
959 959 .Sy Uncommitted
960 960 .Pp
961 961 While the library is considered an uncommitted interface, and is still
962 962 evolving, changes that break compatibility have been uncommon and this
963 963 trend is expected to continue. It is documented to allow consumers,
964 964 whether part of illumos or outside of it, to understand the libarary and
965 965 make use of it with the understanding that changes may occur which break
966 966 both source and binary compatibility.
967 967 .Sh SEE ALSO
968 968 .Xr gcore 1 ,
969 969 .Xr mdb 1 ,
970 970 .Xr proc 1 ,
971 971 .Xr ps 1 ,
972 972 .Xr coreadm 1M ,
973 973 .Xr exec 2 ,
974 974 .Xr fcntl 2 ,
975 975 .Xr stat 2 ,
976 976 .Xr Intro 3 ,
977 977 .Xr dlopen 3C ,
978 978 .Xr elf 3ELF ,
979 979 .Xr ctf 4 ,
980 980 .Xr proc 4 ,
981 981 .Xr attributes 5 ,
982 982 .Xr environ 5 ,
983 983 .Xr privileges 5
984 984 .Pp
985 985 .Rs
986 986 .%T Linkers and Libraries Guide
987 987 .Re
988 988 .Pp
989 989 .Xr Lfree 3PROC ,
990 990 .Xr Lgrab 3PROC ,
991 991 .Xr Lgrab_error 3PROC ,
992 992 .Xr Pcreate 3PROC ,
993 993 .Xr Pcreate_agent 3PROC ,
994 994 .Xr Pcreate_callback 3PROC ,
995 995 .Xr Pcreate_error 3PROC ,
996 996 .Xr Pdestroy_agent 3PROC ,
997 997 .Xr Pfgrab_core 3PROC ,
998 998 .Xr Pfree 3PROC ,
999 999 .Xr Pgrab 3PROC ,
1000 1000 .Xr Pgrab_core 3PROC ,
1001 1001 .Xr Pgrab_error 3PROC ,
1002 1002 .Xr Pgrab_file 3PROC ,
1003 1003 .Xr Pgrab_ops 3PROC ,
1004 1004 .Xr Prelease 3PROC ,
1005 1005 .Xr Preopen 3PROC ,
1006 1006 .Xr Pxcreate 3PROC
1007 1007 .Pp
1008 1008 .Xr Paddr_to_ctf 3PROC ,
1009 1009 .Xr Paddr_to_loadobj 3PROC ,
1010 1010 .Xr Paddr_to_map 3PROC ,
1011 1011 .Xr Paddr_to_text_map 3PROC ,
1012 1012 .Xr Pasfd 3PROC ,
1013 1013 .Xr Pclearfault 3PROC ,
1014 1014 .Xr Pclearsig 3PROC ,
1015 1015 .Xr Pcontent 3PROC ,
1016 1016 .Xr Pcred 3PROC ,
1017 1017 .Xr Pctlfd 3PROC ,
1018 1018 .Xr Pdelbkpt 3PROC ,
1019 1019 .Xr Pdelwapt 3PROC ,
1020 1020 .Xr Pdstop 3PROC ,
1021 1021 .Xr Pexecname 3PROC ,
1022 1022 .Xr Pfault 3PROC ,
1023 1023 .Xr Pfgcore 3PROC ,
1024 1024 .Xr Pgcore 3PROC ,
1025 1025 .Xr Pgetareg 3PROC ,
1026 1026 .Xr Pgetauxval 3PROC ,
1027 1027 .Xr Pgetauxvec 3PROC ,
1028 1028 .Xr Pgetenv 3PROC ,
1029 1029 .Xr Pisprocdir 3PROC ,
1030 1030 .Xr Pissyscall_prev 3PROC ,
1031 1031 .Xr Plmid 3PROC ,
1032 1032 .Xr Plmid_to_loadobj 3PROC ,
1033 1033 .Xr Plmid_to_map 3PROC ,
1034 1034 .Xr Plookup_by_addr 3PROC ,
1035 1035 .Xr Plookup_by_name 3PROC ,
1036 1036 .Xr Plwp_alt_stack 3PROC ,
1037 1037 .Xr Plwp_getfpregs 3PROC ,
1038 1038 .Xr Plwp_getpsinfo 3PROC ,
1039 1039 .Xr Plwp_getregs 3PROC ,
1040 1040 .Xr Plwp_getspymaster 3PROC ,
1041 1041 .Xr Plwp_main_stack 3PROC ,
1042 1042 .Xr Plwp_setfpregs 3PROC ,
1043 1043 .Xr Plwp_setregs 3PROC ,
1044 1044 .Xr Plwp_stack 3PROC ,
1045 1045 .Xr Pname_to_ctf 3PROC ,
1046 1046 .Xr Pname_to_loadobj 3PROC ,
1047 1047 .Xr Pname_to_map 3PROC ,
1048 1048 .Xr Pobjname 3PROC ,
1049 1049 .Xr Pobjname_resolved 3PROC ,
1050 1050 .Xr Pplatform 3PROC ,
1051 1051 .Xr Ppltdest 3PROC ,
1052 1052 .Xr Ppriv 3PROC ,
1053 1053 .Xr Ppsinfo 3PROC ,
1054 1054 .Xr Pputareg 3PROC ,
1055 1055 .Xr Prd_agent 3PROC ,
1056 1056 .Xr Pread 3PROC ,
1057 1057 .Xr Pread_string 3PROC ,
1058 1058 .Xr Preset_maps 3PROC ,
1059 1059 .Xr Psecflags 3PROC ,
1060 1060 .Xr Psetbkpt 3PROC ,
1061 1061 .Xr Psetcred 3PROC ,
1062 1062 .Xr Psetfault 3PROC ,
1063 1063 .Xr Psetflags 3PROC ,
1064 1064 .Xr Psetpriv 3PROC ,
1065 1065 .Xr Psetrun 3PROC ,
1066 1066 .Xr Psetsignal 3PROC ,
1067 1067 .Xr Psetsysentry 3PROC ,
1068 1068 .Xr Psetsysexit 3PROC ,
1069 1069 .Xr Psetwapt 3PROC ,
1070 1070 .Xr Psetzoneid 3PROC ,
1071 1071 .Xr Psignal 3PROC ,
1072 1072 .Xr Pstate 3PROC ,
1073 1073 .Xr Pstatus 3PROC ,
1074 1074 .Xr Pstop 3PROC ,
1075 1075 .Xr Pstopstatus 3PROC ,
1076 1076 .Xr Psync 3PROC ,
1077 1077 .Xr Psysentry 3PROC ,
1078 1078 .Xr Psysexit 3PROC ,
1079 1079 .Xr Puname 3PROC ,
1080 1080 .Xr Punsetflags 3PROC ,
1081 1081 .Xr Pupdate_maps 3PROC ,
1082 1082 .Xr Pupdate_syms 3PROC ,
1083 1083 .Xr Pwait 3PROC ,
1084 1084 .Xr Pwrite 3PROC ,
1085 1085 .Xr Pxecbkpt 3PROC ,
1086 1086 .Xr Pxecwapt 3PROC ,
1087 1087 .Xr Pxlookup_by_addr 3PROC ,
1088 1088 .Xr Pxlookup_by_addr_resolved 3PROC ,
1089 1089 .Xr Pxlookup_by_name 3PROC ,
1090 1090 .Xr Pzonename 3PROC ,
1091 1091 .Xr Pzonepath 3PROC ,
1092 1092 .Xr Pzoneroot 3PROC
1093 1093 .Pp
1094 1094 .Xr Lalt_stack 3PROC ,
1095 1095 .Xr Lclearfault 3PROC ,
1096 1096 .Xr Lclearsig 3PROC ,
1097 1097 .Xr Lctlfd 3PROC ,
1098 1098 .Xr Ldstop 3PROC ,
1099 1099 .Xr Lgetareg 3PROC ,
1100 1100 .Xr Lmain_stack 3PROC ,
1101 1101 .Xr Lprochandle 3PROC ,
1102 1102 .Xr Lpsinfo 3PROC ,
1103 1103 .Xr Lputareg 3PROC ,
1104 1104 .Xr Lsetrun 3PROC ,
1105 1105 .Xr Lstack 3PROC ,
1106 1106 .Xr Lstate 3PROC ,
1107 1107 .Xr Lstatus 3PROC ,
1108 1108 .Xr Lstop 3PROC ,
1109 1109 .Xr Lsync 3PROC ,
1110 1110 .Xr Lwait 3PROC ,
1111 1111 .Xr Lxecbkpt 3PROC ,
1112 1112 .Xr Lxecwapt 3PROC
1113 1113 .Pp
1114 1114 .Xr pr_access 3PROC ,
1115 1115 .Xr pr_close 3PROC ,
1116 1116 .Xr pr_creat 3PROC ,
1117 1117 .Xr pr_door_info 3PROC ,
1118 1118 .Xr pr_exit 3PROC ,
1119 1119 .Xr pr_fcntl 3PROC ,
1120 1120 .Xr pr_fstat 3PROC ,
1121 1121 .Xr pr_fstat64 3PROC ,
1122 1122 .Xr pr_fstatvfs 3PROC ,
1123 1123 .Xr pr_getitimer 3PROC ,
1124 1124 .Xr pr_getpeername 3PROC ,
1125 1125 .Xr pr_getpeerucred 3PROC ,
1126 1126 .Xr pr_getprojid 3PROC ,
1127 1127 .Xr pr_getrctl 3PROC ,
1128 1128 .Xr pr_getrlimit 3PROC ,
1129 1129 .Xr pr_getrlimit64 3PROC ,
1130 1130 .Xr pr_getsockname 3PROC ,
1131 1131 .Xr pr_getsockopt 3PROC ,
1132 1132 .Xr pr_gettaskid 3PROC ,
1133 1133 .Xr pr_getzoneid 3PROC ,
1134 1134 .Xr pr_ioctl 3PROC ,
1135 1135 .Xr pr_link 3PROC ,
1136 1136 .Xr pr_llseek 3PROC ,
1137 1137 .Xr pr_lseek 3PROC ,
1138 1138 .Xr pr_lstat 3PROC ,
1139 1139 .Xr pr_lstat64 3PROC ,
1140 1140 .Xr pr_memcntl 3PROC ,
1141 1141 .Xr pr_meminfo 3PROC ,
1142 1142 .Xr pr_mmap 3PROC ,
1143 1143 .Xr pr_munmap 3PROC ,
1144 1144 .Xr pr_open 3PROC ,
1145 1145 .Xr pr_processor_bind 3PROC ,
1146 1146 .Xr pr_rename 3PROC ,
1147 1147 .Xr pr_setitimer 3PROC ,
1148 1148 .Xr pr_setrctl 3PROC ,
1149 1149 .Xr pr_setrlimit 3PROC ,
1150 1150 .Xr pr_setrlimit64 3PROC ,
1151 1151 .Xr pr_settaskid 3PROC ,
1152 1152 .Xr pr_sigaction 3PROC ,
1153 1153 .Xr pr_stat 3PROC ,
1154 1154 .Xr pr_stat64 3PROC ,
1155 1155 .Xr pr_statvfs 3PROC ,
1156 1156 .Xr pr_unlink 3PROC ,
1157 1157 .Xr pr_waitid 3PROC ,
1158 1158 .Pp
1159 1159 .Xr Penv_iter 3PROC ,
1160 1160 .Xr Plwp_iter 3PROC ,
1161 1161 .Xr Plwp_iter_all 3PROC ,
1162 1162 .Xr Pmapping_iter 3PROC ,
1163 1163 .Xr Pmapping_iter_resolved 3PROC ,
1164 1164 .Xr Pobject_iter 3PROC ,
1165 1165 .Xr Pobject_iter_resolved 3PROC ,
1166 1166 .Xr Pstack_iter 3PROC ,
1167 1167 .Xr Psymbol_iter 3PROC ,
1168 1168 .Xr Psymbol_iter_by_addr 3PROC ,
1169 1169 .Xr Psymbol_iter_by_lmid 3PROC ,
1170 1170 .Xr Psymbol_iter_by_name 3PROC ,
1171 1171 .Xr Pxsymbol_iter 3PROC ,
1172 1172 .Xr Pfdinfo_iter 3PROC
1173 1173 .Pp
1174 1174 .Xr Perror_printf 3PROC ,
1175 1175 .Xr proc_arg_grab 3PROC ,
1176 1176 .Xr proc_arg_psinfo 3PROC ,
1177 1177 .Xr proc_arg_xgrab 3PROC ,
1178 1178 .Xr proc_arg_xpsinfo 3PROC ,
1179 1179 .Xr proc_content2str 3PROC ,
1180 1180 .Xr proc_finistdio 3PROC ,
1181 1181 .Xr proc_fltname 3PROC ,
1182 1182 .Xr proc_fltset2str 3PROC ,
1183 1183 .Xr proc_flushstdio 3PROC ,
1184 1184 .Xr proc_get_auxv 3PROC ,
1185 1185 .Xr proc_get_cred 3PROC ,
1186 1186 .Xr proc_get_priv 3PROC ,
1187 1187 .Xr proc_get_psinfo 3PROC ,
1188 1188 .Xr proc_get_status 3PROC ,
1189 1189 .Xr proc_initstdio 3PROC ,
1190 1190 .Xr proc_lwp_in_set 3PROC ,
1191 1191 .Xr proc_lwp_range_valid 3PROC ,
1192 1192 .Xr proc_signame 3PROC ,
1193 1193 .Xr proc_sigset2str 3PROC ,
1194 1194 .Xr proc_str2content 3PROC ,
1195 1195 .Xr proc_str2flt 3PROC ,
1196 1196 .Xr proc_str2fltset 3PROC ,
1197 1197 .Xr proc_str2sig 3PROC ,
1198 1198 .Xr proc_str2sigset 3PROC ,
1199 1199 .Xr proc_str2sys 3PROC ,
1200 1200 .Xr proc_str2sysset 3PROC ,
1201 1201 .Xr proc_sysname 3PROC ,
1202 1202 .Xr proc_sysset2str 3PROC ,
1203 1203 .Xr proc_unctrl_psinfo 3PROC ,
1204 1204 .Xr proc_walk 3PROC
1205 1205 .Pp
1206 1206 .Xr Pldt 3PROC ,
1207 1207 .Xr proc_get_ldt 3PROC ,
1208 1208 .Pp
1209 1209 .Xr Plwp_getgwindows 3PROC ,
1210 1210 .Xr Plwp_getxregs 3PROC ,
1211 1211 .Xr Plwp_setxregs 3PROC ,
1212 1212 .Pp
1213 1213 .Xr Plwp_getasrs 3PROC ,
1214 1214 .Xr Plwp_setasrs 3PROC
↓ open down ↓ |
1190 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX