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