2 .\" This file and its contents are supplied under the terms of the
3 .\" Common Development and Distribution License ("CDDL"), version 1.0.
4 .\" You may only use this file in accordance with the terms of version
7 .\" A full copy of the text of the CDDL should have accompanied this
8 .\" source. A copy of the CDDL is also available via the Internet at
9 .\" http://www.illumos.org/license/CDDL.
12 .\" Copyright 2015 Joyent, Inc.
15 .Dt PMAPPING_ITER 3PROC
19 .Nm Pmapping_iter_resolved ,
21 .Nm Pobject_iter_resolved
22 .Nd iterate over process mappings and objects
29 .Fa "struct ps_prochandle *P"
30 .Fa "proc_map_f *func"
34 .Fo Pmapping_iter_resolved
35 .Fa "struct ps_prochandle *P"
36 .Fa "proc_map_f *func"
41 .Fa "struct ps_prochandle *P"
42 .Fa "proc_map_f *func"
46 .Fo Pobject_iter_resolved
47 .Fa "struct ps_prochandle *P"
48 .Fa "proc_map_f *func"
55 .Fn Pmapping_iter_resolved
56 functions iterate over the memory mappings in the process represented by
59 For each memory mapping, the callback function
61 will be invoked and it will be passed the
66 structure defined from
68 and a name of the mapping.
69 The way that the name is obtained varies based on whether one calls
72 .Fn Pmapping_iter_resolved .
73 In both cases, the dynamic linker is consulted to determine the file
74 name for the mapping, if it's known.
75 If the name is unknown, for example an anonymous mapping, then the
77 pointer is passed in for the name.
79 .Fn Pmapping_iter_resolved
80 function the system tries to resolve it to a complete file system path.
81 If that fails, it falls back to the information from the dynamic linker,
84 in the case of not being able to find any name.
85 For more information on the
93 controls whether or not iteration continues.
98 then iteration continues.
101 returns non-zero then iteration will halt and the value will be
102 returned to the caller.
105 indicates internal failure, it is recommended that the callback function not
108 to indicate an error itself.
109 This allows the caller to distinguish between failure of the callback function
110 versus failure of the
113 .Fn Pmapping_iter_resolved
119 .Fn Pobject_iter_resolved
120 functions are similar to the
123 .Fn Pmapping_iter_resolved
125 Except, rather than iterating over every mapping, they iterate over the objects
126 that the process has loaded by the dynamic linker.
127 For example, an anonymous mapping will show up when iterating mappings, but will
128 not show up when iterating objects.
129 Further, while most dynamic shared objects have multiple mappings for the text
130 and data sections, there will only be a single object that is iterated over.
132 The distinction between the
135 .Fn Pobject_iter_resolved
136 functions is identical to the difference in name resolution between the
139 .Fn Pmapping_iter_resolved
142 Upon successful completion, the
144 .Fn Pmapping_iter_resolved
147 .Fn Pobject_iter_resolved
150 Otherwise, if there was an internal error then
153 Otherwise, if the callback function
155 returns non-zero, then its return value will be returned instead.
156 .Sh INTERFACE STABILITY