8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / man / man3proc / pr_stat.3proc
blobf9095db692744157ac2e6a1b3c9574a2c7a94ff6
1 .\"
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
5 .\" 1.0 of the CDDL.
6 .\"
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.
10 .\"
11 .\"
12 .\" Copyright 2015 Joyent, Inc.
13 .\"
14 .Dd May 11, 2016
15 .Dt PR_STAT 3PROC
16 .Os
17 .Sh NAME
18 .Nm pr_fstat ,
19 .Nm pr_fstat64 ,
20 .Nm pr_lstat ,
21 .Nm pr_lstat64 ,
22 .Nm pr_stat ,
23 .Nm pr_stat64
24 .Nd inject stat system call into victim process
25 .Sh SYNOPSIS
26 .Lb libproc
27 .In libproc.h
28 .Ft int
29 .Fo pr_fstat
30 .Fa "struct ps_prochandle *P"
31 .Fa "int fd"
32 .Fa "struct stat *buf"
33 .Fc
34 .Ft int
35 .Fo pr_fstat64
36 .Fa "struct ps_prochandle *P"
37 .Fa "int fd"
38 .Fa "struct stat64 *buf"
39 .Fc
40 .Ft int
41 .Fo pr_lstat
42 .Fa "struct ps_prochandle *P"
43 .Fa "const char *path"
44 .Fa "struct stat *buf"
45 .Fc
46 .Ft int
47 .Fo pr_lstat64
48 .Fa "struct ps_prochandle *P"
49 .Fa "const char *path"
50 .Fa "struct stat64 *buf"
51 .Fc
52 .Ft int
53 .Fo pr_stat
54 .Fa "struct ps_prochandle *P"
55 .Fa "const char *path"
56 .Fa "struct stat *buf"
57 .Fc
58 .Ft int
59 .Fo pr_stat64
60 .Fa "struct ps_prochandle *P"
61 .Fa "const char *path"
62 .Fa "struct stat64 *buf"
63 .Fc
64 .Sh DESCRIPTION
65 The
66 .Fn pr_stat ,
67 .Fn pr_lstat ,
68 and
69 .Fn pr_fast
70 functions inject the
71 .Xr stat 2 ,
72 .Xr lstat 2 ,
73 and
74 .Xr fstat 2
75 system calls respectively into the target process
76 .Fa P
77 by means of the agent LWP.
78 If the process handle
79 .Fa P
80 is the value
81 .Dv NULL
82 then this will be equivalent to calling
83 .Xr stat 2 ,
84 .Xr lstat 2 ,
86 .Xr fstat 2
87 on the currently running process.
88 .Pp
89 The arguments
90 .Fa path ,
91 and
92 .Fa buf
93 to the
94 .Fn pr_stat
95 function have the same meaning as in
96 .Xr stat 2 .
97 See
98 .Xr stat 2
99 for the full description and purpose of the
100 .Sy stat
101 system call and its arguments.
103 The arguments
104 .Fa fd ,
106 .Fa buf
107 to the
108 .Fn pr_fstat
109 function have the same meaning as in
110 .Xr fstat 2 ,
112 .Xr fstat 2
113 for the full description and purpose of the
114 .Sy fstat
115 system call and its arguments.
117 The arguments
118 .Fa path ,
120 .Fa buf
121 to the
122 .Fn pr_lstat
123 function have the same meaning as in
124 .Xr lstat 2 ,
126 .Xr lstat 2
127 for the full description and purpose of the
128 .Sy lstat
129 system call and its arguments.
132 .Fn pr_stat ,
133 .Fn pr_lstat ,
135 .Fn pr_fstat
136 functions only work on active processes.
137 Process handles that correspond to core files, zombie processes, or ELF objects
138 do not support system call injection.
141 .Fn pr_stat64 ,
142 .Fn pr_fstat64 ,
144 .Fn pr_lstat64
145 functions are equivalent to
146 .Fn pr_stat ,
147 .Fn pr_fstat ,
149 .Fn pr_lstat
150 respectively; however, rather than having the stat information be subject to the
151 data model of the target process, they always provide 64-bit stat information.
153 .Xr lf64 5
154 for more information.
155 .Sh RETURN VALUES
156 Upon successful completion, the
157 .Fn pr_stat
158 function's return value is that described in
159 .Xr stat 2 .
160 Otherwise,
161 .Sy -1
162 is returned and
163 .Sy errno
164 is set to
165 .Er ENOSYS
166 to indicate that the system call could not be injected.
167 .Sh ERRORS
168 For the full list of errors see the
169 .Sy ERRORS
170 section in
171 .Xr stat 2 .
174 .Fn pr_stat
175 function will fail if:
176 .Bl -tag -width Er
177 .It Er ENOSYS
178 An error occurred while trying to invoke the agent LWP and inject a
179 system call in the process handle
180 .Fa P
181 or the process handle
182 .Fa P
183 does not support system call injection.
185 .Sh INTERFACE STABILITY
186 .Sy Uncommitted
187 .Sh MT-LEVEL
189 .Sy LOCKING
191 .Xr libproc 3LIB .
192 .Sh SEE ALSO
193 .Xr stat 2 ,
194 .Xr libproc 3LIB ,
195 .Xr proc 4 ,
196 .Xr lf64 5