]> git.saurik.com Git - apple/xnu.git/blob - bsd/dev/dtrace/sdt_subr.c
xnu-2050.24.15.tar.gz
[apple/xnu.git] / bsd / dev / dtrace / sdt_subr.c
1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 /* #pragma ident "@(#)sdt_subr.c 1.13 08/06/13 SMI" */
27
28 #include <sys/sdt_impl.h>
29
30 static dtrace_pattr_t vtrace_attr = {
31 { DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_ISA },
32 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
33 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
34 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
35 { DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_ISA },
36 };
37
38 static dtrace_pattr_t info_attr = {
39 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
40 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
41 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
42 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
43 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
44 };
45
46 static dtrace_pattr_t fpu_attr = {
47 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
48 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
49 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
50 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_CPU },
51 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
52 };
53
54 static dtrace_pattr_t fsinfo_attr = {
55 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
56 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
57 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
58 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
59 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
60 };
61
62 static dtrace_pattr_t stab_attr = {
63 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
64 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
65 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
66 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
67 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
68 };
69
70 static dtrace_pattr_t sdt_attr = {
71 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
72 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
73 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
74 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
75 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
76 };
77
78 static dtrace_pattr_t xpv_attr = {
79 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_PLATFORM },
80 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
81 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
82 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
83 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
84 };
85
86 sdt_provider_t sdt_providers[] = {
87 { "vtrace", "__vtrace____", &vtrace_attr, 0 },
88 { "sysinfo", "__cpu_sysinfo____", &info_attr, 0 },
89 { "vminfo", "__vminfo____", &info_attr, 0 },
90 { "fpuinfo", "__fpuinfo____", &fpu_attr, 0 },
91 { "sched", "__sched____", &stab_attr, 0 },
92 { "proc", "__proc____", &stab_attr, 0 },
93 { "io", "__io____", &stab_attr, 0 },
94 { "ip", "__ip____", &stab_attr, 0 },
95 { "tcp", "__tcp____", &stab_attr, 0 },
96 { "mib", "__mib____", &stab_attr, 0 },
97 { "fsinfo", "__fsinfo____", &fsinfo_attr, 0 },
98 { "nfsv3", "__nfsv3____", &stab_attr, 0 },
99 { "nfsv4", "__nfsv4____", &stab_attr, 0 },
100 { "xpv", "__xpv____", &xpv_attr, 0 },
101 { "sysevent", "__sysevent____", &stab_attr, 0 },
102 { "sdt", "__sdt____", &sdt_attr, 0 },
103 #if !defined(__APPLE__)
104 { NULL }
105 #else
106 { NULL, NULL, NULL, 0 }
107 #endif /* __APPLE__ */
108 };
109
110 /* Warning: Need xnu cognate for disp_t. */
111 sdt_argdesc_t sdt_args[] = {
112 { "sched", "wakeup", 0, 0, "struct thread *", "lwpsinfo_t *" },
113 { "sched", "wakeup", 1, 1, "struct proc *", "psinfo_t *" },
114 { "sched", "dequeue", 0, 0, "struct thread *", "lwpsinfo_t *" },
115 { "sched", "dequeue", 1, 0, "struct proc *", "psinfo_t *" },
116 { "sched", "dequeue", 2, 1, "disp_t *", "cpuinfo_t *" },
117 { "sched", "enqueue", 0, 0, "struct thread *", "lwpsinfo_t *" },
118 { "sched", "enqueue", 1, 0, "struct proc *", "psinfo_t *" },
119 { "sched", "enqueue", 2, 1, "disp_t *", "cpuinfo_t *" },
120 { "sched", "enqueue", 3, 2, "int", NULL },
121 /* sched:::sleep has no arguments */
122 /* sched:::on-cpu has no arguments */
123 { "sched", "off-cpu", 0, 0, "struct thread *", "lwpsinfo_t *" },
124 { "sched", "off-cpu", 1, 1, "struct proc *", "psinfo_t *" },
125 { "sched", "tick", 0, 0, "struct thread *", "lwpsinfo_t *" },
126 { "sched", "tick", 1, 0, "struct proc *", "psinfo_t *" },
127 { "sched", "change-pri", 0, 0, "struct thread *", "lwpsinfo_t *" },
128 { "sched", "change-pri", 1, 0, "struct proc *", "psinfo_t *" },
129 { "sched", "change-pri", 2, 1, "pri_t", NULL },
130 { "sched", "schedctl-nopreempt", 0, 0, "struct thread *", "lwpsinfo_t *" },
131 { "sched", "schedctl-nopreempt", 1, 0, "struct proc *", "psinfo_t *" },
132 { "sched", "schedctl-nopreempt", 2, 1, "int", NULL },
133 { "sched", "schedctl-preempt", 0, 0, "struct thread *", "lwpsinfo_t *" },
134 { "sched", "schedctl-preempt", 1, 0, "struct proc *", "psinfo_t *" },
135 { "sched", "schedctl-yield", 0, 0, "int", NULL },
136 { "sched", "surrender", 0, 0, "struct thread *", "lwpsinfo_t *" },
137 { "sched", "surrender", 1, 0, "struct proc *", "psinfo_t *" },
138 { "sched", "surrender", 1, 0, "kthread_t *", "psinfo_t *" },
139 { "sched", "cpucaps-sleep", 0, 0, "kthread_t *", "lwpsinfo_t *" },
140 { "sched", "cpucaps-sleep", 1, 0, "kthread_t *", "psinfo_t *" },
141 { "sched", "cpucaps-wakeup", 0, 0, "kthread_t *", "lwpsinfo_t *" },
142 { "sched", "cpucaps-wakeup", 1, 0, "kthread_t *", "psinfo_t *" },
143
144 { "proc", "create", 0, 0, "struct proc *", "psinfo_t *" },
145 { "proc", "exec", 0, 0, "string", NULL },
146 { "proc", "exec-failure", 0, 0, "int", NULL },
147 /* proc:::exec-success has no arguments */
148 { "proc", "exit", 0, 0, "int", NULL },
149 { "proc", "fault", 0, 0, "int", NULL },
150 { "proc", "fault", 1, 1, "siginfo_t *", NULL },
151 { "proc", "lwp-create", 0, 0, "struct thread *", "lwpsinfo_t *" },
152 { "proc", "lwp-create", 1, 0, "struct thread *", "psinfo_t *" },
153 /* proc:::lwp-start has no arguments */
154 /* proc:::lwp-exit has no arguments */
155 { "proc", "signal-clear", 0, 0, "int", NULL },
156 { "proc", "signal-clear", 1, 1, "siginfo_t *", NULL },
157 { "proc", "signal-discard", 0, 0, "struct thread *", "lwpsinfo_t *" },
158 { "proc", "signal-discard", 1, 1, "struct proc *", "psinfo_t *" },
159 { "proc", "signal-discard", 2, 2, "int", NULL },
160 { "proc", "signal-handle", 0, 0, "int", NULL },
161 { "proc", "signal-handle", 1, 1, "siginfo_t *", NULL },
162 { "proc", "signal-handle", 2, 2, "void (*)(void)", NULL },
163 { "proc", "signal-send", 0, 0, "struct thread *", "lwpsinfo_t *" },
164 { "proc", "signal-send", 1, 1, "struct proc *", "psinfo_t *" },
165 { "proc", "signal-send", 2, 2, "int", NULL },
166 /* proc:::start has no arguments */
167
168 { "io", "start", 0, 0, "struct buf *", "bufinfo_t *" },
169 { "io", "start", 1, 0, "struct buf *", "devinfo_t *" },
170 { "io", "start", 2, 0, "struct buf *", "fileinfo_t *" },
171 { "io", "done", 0, 0, "struct buf *", "bufinfo_t *" },
172 { "io", "done", 1, 0, "struct buf *", "devinfo_t *" },
173 { "io", "done", 2, 0, "struct buf *", "fileinfo_t *" },
174 { "io", "wait-start", 0, 0, "struct buf *", "bufinfo_t *" },
175 { "io", "wait-start", 1, 0, "struct buf *", "devinfo_t *" },
176 { "io", "wait-start", 2, 0, "struct buf *", "fileinfo_t *" },
177 { "io", "wait-done", 0, 0, "struct buf *", "bufinfo_t *" },
178 { "io", "wait-done", 1, 0, "struct buf *", "devinfo_t *" },
179 { "io", "wait-done", 2, 0, "struct buf *", "fileinfo_t *" },
180 #if defined(__APPLE__)
181 { "io", "journal-start", 0, 0, "struct buf *", "bufinfo_t *" },
182 { "io", "journal-start", 1, 0, "struct buf *", "devinfo_t *" },
183 { "io", "journal-start", 2, 0, "struct buf *", "fileinfo_t *" },
184 { "io", "journal-done", 0, 0, "struct buf *", "bufinfo_t *" },
185 { "io", "journal-done", 1, 0, "struct buf *", "devinfo_t *" },
186 { "io", "journal-done", 2, 0, "struct buf *", "fileinfo_t *" },
187 #endif /* __APPLE__ */
188
189 { "mib", NULL, 0, 0, "int", NULL },
190 { "fsinfo", NULL, 0, 0, "struct vnode *", "fileinfo_t *" },
191 { "fsinfo", NULL, 1, 1, "int", "int" },
192
193 { "nfsv3", "op-getattr-start", 0, 0, "struct svc_req *",
194 "conninfo_t *" },
195 { "nfsv3", "op-getattr-start", 1, 1, "nfsv3oparg_t *",
196 "nfsv3opinfo_t *" },
197 { "nfsv3", "op-getattr-start", 2, 3, "GETATTR3args *", NULL },
198 { "nfsv3", "op-getattr-done", 0, 0, "struct svc_req *",
199 "conninfo_t *" },
200 { "nfsv3", "op-getattr-done", 1, 1, "nfsv3oparg_t *",
201 "nfsv3opinfo_t *" },
202 { "nfsv3", "op-getattr-done", 2, 3, "GETATTR3res *", NULL },
203 { "nfsv3", "op-setattr-start", 0, 0, "struct svc_req *",
204 "conninfo_t *" },
205 { "nfsv3", "op-setattr-start", 1, 1, "nfsv3oparg_t *",
206 "nfsv3opinfo_t *" },
207 { "nfsv3", "op-setattr-start", 2, 3, "SETATTR3args *", NULL },
208 { "nfsv3", "op-setattr-done", 0, 0, "struct svc_req *",
209 "conninfo_t *" },
210 { "nfsv3", "op-setattr-done", 1, 1, "nfsv3oparg_t *",
211 "nfsv3opinfo_t *" },
212 { "nfsv3", "op-setattr-done", 2, 3, "SETATTR3res *", NULL },
213 { "nfsv3", "op-lookup-start", 0, 0, "struct svc_req *",
214 "conninfo_t *" },
215 { "nfsv3", "op-lookup-start", 1, 1, "nfsv3oparg_t *",
216 "nfsv3opinfo_t *" },
217 { "nfsv3", "op-lookup-start", 2, 3, "LOOKUP3args *", NULL },
218 { "nfsv3", "op-lookup-done", 0, 0, "struct svc_req *",
219 "conninfo_t *" },
220 { "nfsv3", "op-lookup-done", 1, 1, "nfsv3oparg_t *",
221 "nfsv3opinfo_t *" },
222 { "nfsv3", "op-lookup-done", 2, 3, "LOOKUP3res *", NULL },
223 { "nfsv3", "op-access-start", 0, 0, "struct svc_req *",
224 "conninfo_t *" },
225 { "nfsv3", "op-access-start", 1, 1, "nfsv3oparg_t *",
226 "nfsv3opinfo_t *" },
227 { "nfsv3", "op-access-start", 2, 3, "ACCESS3args *", NULL },
228 { "nfsv3", "op-access-done", 0, 0, "struct svc_req *",
229 "conninfo_t *" },
230 { "nfsv3", "op-access-done", 1, 1, "nfsv3oparg_t *",
231 "nfsv3opinfo_t *" },
232 { "nfsv3", "op-access-done", 2, 3, "ACCESS3res *", NULL },
233 { "nfsv3", "op-commit-start", 0, 0, "struct svc_req *",
234 "conninfo_t *" },
235 { "nfsv3", "op-commit-start", 1, 1, "nfsv3oparg_t *",
236 "nfsv3opinfo_t *" },
237 { "nfsv3", "op-commit-start", 2, 3, "COMMIT3args *", NULL },
238 { "nfsv3", "op-commit-done", 0, 0, "struct svc_req *",
239 "conninfo_t *" },
240 { "nfsv3", "op-commit-done", 1, 1, "nfsv3oparg_t *",
241 "nfsv3opinfo_t *" },
242 { "nfsv3", "op-commit-done", 2, 3, "COMMIT3res *", NULL },
243 { "nfsv3", "op-create-start", 0, 0, "struct svc_req *",
244 "conninfo_t *" },
245 { "nfsv3", "op-create-start", 1, 1, "nfsv3oparg_t *",
246 "nfsv3opinfo_t *" },
247 { "nfsv3", "op-create-start", 2, 3, "CREATE3args *", NULL },
248 { "nfsv3", "op-create-done", 0, 0, "struct svc_req *",
249 "conninfo_t *" },
250 { "nfsv3", "op-create-done", 1, 1, "nfsv3oparg_t *",
251 "nfsv3opinfo_t *" },
252 { "nfsv3", "op-create-done", 2, 3, "CREATE3res *", NULL },
253 { "nfsv3", "op-fsinfo-start", 0, 0, "struct svc_req *",
254 "conninfo_t *" },
255 { "nfsv3", "op-fsinfo-start", 1, 1, "nfsv3oparg_t *",
256 "nfsv3opinfo_t *" },
257 { "nfsv3", "op-fsinfo-start", 2, 3, "FSINFO3args *", NULL },
258 { "nfsv3", "op-fsinfo-done", 0, 0, "struct svc_req *",
259 "conninfo_t *" },
260 { "nfsv3", "op-fsinfo-done", 1, 1, "nfsv3oparg_t *",
261 "nfsv3opinfo_t *" },
262 { "nfsv3", "op-fsinfo-done", 2, 3, "FSINFO3res *", NULL },
263 { "nfsv3", "op-fsstat-start", 0, 0, "struct svc_req *",
264 "conninfo_t *" },
265 { "nfsv3", "op-fsstat-start", 1, 1, "nfsv3oparg_t *",
266 "nfsv3opinfo_t *" },
267 { "nfsv3", "op-fsstat-start", 2, 3, "FSSTAT3args *", NULL },
268 { "nfsv3", "op-fsstat-done", 0, 0, "struct svc_req *",
269 "conninfo_t *" },
270 { "nfsv3", "op-fsstat-done", 1, 1, "nfsv3oparg_t *",
271 "nfsv3opinfo_t *" },
272 { "nfsv3", "op-fsstat-done", 2, 3, "FSSTAT3res *", NULL },
273 { "nfsv3", "op-link-start", 0, 0, "struct svc_req *",
274 "conninfo_t *" },
275 { "nfsv3", "op-link-start", 1, 1, "nfsv3oparg_t *",
276 "nfsv3opinfo_t *" },
277 { "nfsv3", "op-link-start", 2, 3, "LINK3args *", NULL },
278 { "nfsv3", "op-link-done", 0, 0, "struct svc_req *",
279 "conninfo_t *" },
280 { "nfsv3", "op-link-done", 1, 1, "nfsv3oparg_t *",
281 "nfsv3opinfo_t *" },
282 { "nfsv3", "op-link-done", 2, 3, "LINK3res *", NULL },
283 { "nfsv3", "op-mkdir-start", 0, 0, "struct svc_req *",
284 "conninfo_t *" },
285 { "nfsv3", "op-mkdir-start", 1, 1, "nfsv3oparg_t *",
286 "nfsv3opinfo_t *" },
287 { "nfsv3", "op-mkdir-start", 2, 3, "MKDIR3args *", NULL },
288 { "nfsv3", "op-mkdir-done", 0, 0, "struct svc_req *",
289 "conninfo_t *" },
290 { "nfsv3", "op-mkdir-done", 1, 1, "nfsv3oparg_t *",
291 "nfsv3opinfo_t *" },
292 { "nfsv3", "op-mkdir-done", 2, 3, "MKDIR3res *", NULL },
293 { "nfsv3", "op-mknod-start", 0, 0, "struct svc_req *",
294 "conninfo_t *" },
295 { "nfsv3", "op-mknod-start", 1, 1, "nfsv3oparg_t *",
296 "nfsv3opinfo_t *" },
297 { "nfsv3", "op-mknod-start", 2, 3, "MKNOD3args *", NULL },
298 { "nfsv3", "op-mknod-done", 0, 0, "struct svc_req *",
299 "conninfo_t *" },
300 { "nfsv3", "op-mknod-done", 1, 1, "nfsv3oparg_t *",
301 "nfsv3opinfo_t *" },
302 { "nfsv3", "op-mknod-done", 2, 3, "MKNOD3res *", NULL },
303 { "nfsv3", "op-null-start", 0, 0, "struct svc_req *",
304 "conninfo_t *" },
305 { "nfsv3", "op-null-start", 1, 1, "nfsv3oparg_t *",
306 "nfsv3opinfo_t *" },
307 { "nfsv3", "op-null-done", 0, 0, "struct svc_req *",
308 "conninfo_t *" },
309 { "nfsv3", "op-null-done", 1, 1, "nfsv3oparg_t *",
310 "nfsv3opinfo_t *" },
311 { "nfsv3", "op-pathconf-start", 0, 0, "struct svc_req *",
312 "conninfo_t *" },
313 { "nfsv3", "op-pathconf-start", 1, 1, "nfsv3oparg_t *",
314 "nfsv3opinfo_t *" },
315 { "nfsv3", "op-pathconf-start", 2, 3, "PATHCONF3args *", NULL },
316 { "nfsv3", "op-pathconf-done", 0, 0, "struct svc_req *",
317 "conninfo_t *" },
318 { "nfsv3", "op-pathconf-done", 1, 1, "nfsv3oparg_t *",
319 "nfsv3opinfo_t *" },
320 { "nfsv3", "op-pathconf-done", 2, 3, "PATHCONF3res *", NULL },
321 { "nfsv3", "op-read-start", 0, 0, "struct svc_req *",
322 "conninfo_t *" },
323 { "nfsv3", "op-read-start", 1, 1, "nfsv3oparg_t *",
324 "nfsv3opinfo_t *" },
325 { "nfsv3", "op-read-start", 2, 3, "READ3args *", NULL },
326 { "nfsv3", "op-read-done", 0, 0, "struct svc_req *",
327 "conninfo_t *" },
328 { "nfsv3", "op-read-done", 1, 1, "nfsv3oparg_t *",
329 "nfsv3opinfo_t *" },
330 { "nfsv3", "op-read-done", 2, 3, "READ3res *", NULL },
331 { "nfsv3", "op-readdir-start", 0, 0, "struct svc_req *",
332 "conninfo_t *" },
333 { "nfsv3", "op-readdir-start", 1, 1, "nfsv3oparg_t *",
334 "nfsv3opinfo_t *" },
335 { "nfsv3", "op-readdir-start", 2, 3, "READDIR3args *", NULL },
336 { "nfsv3", "op-readdir-done", 0, 0, "struct svc_req *",
337 "conninfo_t *" },
338 { "nfsv3", "op-readdir-done", 1, 1, "nfsv3oparg_t *",
339 "nfsv3opinfo_t *" },
340 { "nfsv3", "op-readdir-done", 2, 3, "READDIR3res *", NULL },
341 { "nfsv3", "op-readdirplus-start", 0, 0, "struct svc_req *",
342 "conninfo_t *" },
343 { "nfsv3", "op-readdirplus-start", 1, 1, "nfsv3oparg_t *",
344 "nfsv3opinfo_t *" },
345 { "nfsv3", "op-readdirplus-start", 2, 3, "READDIRPLUS3args *", NULL },
346 { "nfsv3", "op-readdirplus-done", 0, 0, "struct svc_req *",
347 "conninfo_t *" },
348 { "nfsv3", "op-readdirplus-done", 1, 1, "nfsv3oparg_t *",
349 "nfsv3opinfo_t *" },
350 { "nfsv3", "op-readdirplus-done", 2, 3, "READDIRPLUS3res *", NULL },
351 { "nfsv3", "op-readlink-start", 0, 0, "struct svc_req *",
352 "conninfo_t *" },
353 { "nfsv3", "op-readlink-start", 1, 1, "nfsv3oparg_t *",
354 "nfsv3opinfo_t *" },
355 { "nfsv3", "op-readlink-start", 2, 3, "READLINK3args *", NULL },
356 { "nfsv3", "op-readlink-done", 0, 0, "struct svc_req *",
357 "conninfo_t *" },
358 { "nfsv3", "op-readlink-done", 1, 1, "nfsv3oparg_t *",
359 "nfsv3opinfo_t *" },
360 { "nfsv3", "op-readlink-done", 2, 3, "READLINK3res *", NULL },
361 { "nfsv3", "op-remove-start", 0, 0, "struct svc_req *",
362 "conninfo_t *" },
363 { "nfsv3", "op-remove-start", 1, 1, "nfsv3oparg_t *",
364 "nfsv3opinfo_t *" },
365 { "nfsv3", "op-remove-start", 2, 3, "REMOVE3args *", NULL },
366 { "nfsv3", "op-remove-done", 0, 0, "struct svc_req *",
367 "conninfo_t *" },
368 { "nfsv3", "op-remove-done", 1, 1, "nfsv3oparg_t *",
369 "nfsv3opinfo_t *" },
370 { "nfsv3", "op-remove-done", 2, 3, "REMOVE3res *", NULL },
371 { "nfsv3", "op-rename-start", 0, 0, "struct svc_req *",
372 "conninfo_t *" },
373 { "nfsv3", "op-rename-start", 1, 1, "nfsv3oparg_t *",
374 "nfsv3opinfo_t *" },
375 { "nfsv3", "op-rename-start", 2, 3, "RENAME3args *", NULL },
376 { "nfsv3", "op-rename-done", 0, 0, "struct svc_req *",
377 "conninfo_t *" },
378 { "nfsv3", "op-rename-done", 1, 1, "nfsv3oparg_t *",
379 "nfsv3opinfo_t *" },
380 { "nfsv3", "op-rename-done", 2, 3, "RENAME3res *", NULL },
381 { "nfsv3", "op-rmdir-start", 0, 0, "struct svc_req *",
382 "conninfo_t *" },
383 { "nfsv3", "op-rmdir-start", 1, 1, "nfsv3oparg_t *",
384 "nfsv3opinfo_t *" },
385 { "nfsv3", "op-rmdir-start", 2, 3, "RMDIR3args *", NULL },
386 { "nfsv3", "op-rmdir-done", 0, 0, "struct svc_req *",
387 "conninfo_t *" },
388 { "nfsv3", "op-rmdir-done", 1, 1, "nfsv3oparg_t *",
389 "nfsv3opinfo_t *" },
390 { "nfsv3", "op-rmdir-done", 2, 3, "RMDIR3res *", NULL },
391 { "nfsv3", "op-setattr-start", 0, 0, "struct svc_req *",
392 "conninfo_t *" },
393 { "nfsv3", "op-setattr-start", 1, 1, "nfsv3oparg_t *",
394 "nfsv3opinfo_t *" },
395 { "nfsv3", "op-setattr-start", 2, 3, "SETATTR3args *", NULL },
396 { "nfsv3", "op-setattr-done", 0, 0, "struct svc_req *",
397 "conninfo_t *" },
398 { "nfsv3", "op-setattr-done", 1, 1, "nfsv3oparg_t *",
399 "nfsv3opinfo_t *" },
400 { "nfsv3", "op-setattr-done", 2, 3, "SETATTR3res *", NULL },
401 { "nfsv3", "op-symlink-start", 0, 0, "struct svc_req *",
402 "conninfo_t *" },
403 { "nfsv3", "op-symlink-start", 1, 1, "nfsv3oparg_t *",
404 "nfsv3opinfo_t *" },
405 { "nfsv3", "op-symlink-start", 2, 3, "SYMLINK3args *", NULL },
406 { "nfsv3", "op-symlink-done", 0, 0, "struct svc_req *",
407 "conninfo_t *" },
408 { "nfsv3", "op-symlink-done", 1, 1, "nfsv3oparg_t *",
409 "nfsv3opinfo_t *" },
410 { "nfsv3", "op-symlink-done", 2, 3, "SYMLINK3res *", NULL },
411 { "nfsv3", "op-write-start", 0, 0, "struct svc_req *",
412 "conninfo_t *" },
413 { "nfsv3", "op-write-start", 1, 1, "nfsv3oparg_t *",
414 "nfsv3opinfo_t *" },
415 { "nfsv3", "op-write-start", 2, 3, "WRITE3args *", NULL },
416 { "nfsv3", "op-write-done", 0, 0, "struct svc_req *",
417 "conninfo_t *" },
418 { "nfsv3", "op-write-done", 1, 1, "nfsv3oparg_t *",
419 "nfsv3opinfo_t *" },
420 { "nfsv3", "op-write-done", 2, 3, "WRITE3res *", NULL },
421
422 { "nfsv4", "null-start", 0, 0, "struct svc_req *", "conninfo_t *" },
423 { "nfsv4", "null-done", 0, 0, "struct svc_req *", "conninfo_t *" },
424 { "nfsv4", "compound-start", 0, 0, "struct compound_state *",
425 "conninfo_t *" },
426 { "nfsv4", "compound-start", 1, 0, "struct compound_state *",
427 "nfsv4opinfo_t *" },
428 { "nfsv4", "compound-start", 2, 1, "COMPOUND4args *", NULL },
429 { "nfsv4", "compound-done", 0, 0, "struct compound_state *",
430 "conninfo_t *" },
431 { "nfsv4", "compound-done", 1, 0, "struct compound_state *",
432 "nfsv4opinfo_t *" },
433 { "nfsv4", "compound-done", 2, 1, "COMPOUND4res *", NULL },
434 { "nfsv4", "op-access-start", 0, 0, "struct compound_state *",
435 "conninfo_t *"},
436 { "nfsv4", "op-access-start", 1, 0, "struct compound_state *",
437 "nfsv4opinfo_t *" },
438 { "nfsv4", "op-access-start", 2, 1, "ACCESS4args *", NULL },
439 { "nfsv4", "op-access-done", 0, 0, "struct compound_state *",
440 "conninfo_t *" },
441 { "nfsv4", "op-access-done", 1, 0, "struct compound_state *",
442 "nfsv4opinfo_t *" },
443 { "nfsv4", "op-access-done", 2, 1, "ACCESS4res *", NULL },
444 { "nfsv4", "op-close-start", 0, 0, "struct compound_state *",
445 "conninfo_t *" },
446 { "nfsv4", "op-close-start", 1, 0, "struct compound_state *",
447 "nfsv4opinfo_t *" },
448 { "nfsv4", "op-close-start", 2, 1, "CLOSE4args *", NULL },
449 { "nfsv4", "op-close-done", 0, 0, "struct compound_state *",
450 "conninfo_t *" },
451 { "nfsv4", "op-close-done", 1, 0, "struct compound_state *",
452 "nfsv4opinfo_t *" },
453 { "nfsv4", "op-close-done", 2, 1, "CLOSE4res *", NULL },
454 { "nfsv4", "op-commit-start", 0, 0, "struct compound_state *",
455 "conninfo_t *" },
456 { "nfsv4", "op-commit-start", 1, 0, "struct compound_state *",
457 "nfsv4opinfo_t *" },
458 { "nfsv4", "op-commit-start", 2, 1, "COMMIT4args *", NULL },
459 { "nfsv4", "op-commit-done", 0, 0, "struct compound_state *",
460 "conninfo_t *" },
461 { "nfsv4", "op-commit-done", 1, 0, "struct compound_state *",
462 "nfsv4opinfo_t *" },
463 { "nfsv4", "op-commit-done", 2, 1, "COMMIT4res *", NULL },
464 { "nfsv4", "op-create-start", 0, 0, "struct compound_state *",
465 "conninfo_t *" },
466 { "nfsv4", "op-create-start", 1, 0, "struct compound_state *",
467 "nfsv4opinfo_t *" },
468 { "nfsv4", "op-create-start", 2, 1, "CREATE4args *", NULL },
469 { "nfsv4", "op-create-done", 0, 0, "struct compound_state *",
470 "conninfo_t *" },
471 { "nfsv4", "op-create-done", 1, 0, "struct compound_state *",
472 "nfsv4opinfo_t *" },
473 { "nfsv4", "op-create-done", 2, 1, "CREATE4res *", NULL },
474 { "nfsv4", "op-delegpurge-start", 0, 0, "struct compound_state *",
475 "conninfo_t *" },
476 { "nfsv4", "op-delegpurge-start", 1, 0, "struct compound_state *",
477 "nfsv4opinfo_t *" },
478 { "nfsv4", "op-delegpurge-start", 2, 1, "DELEGPURGE4args *", NULL },
479 { "nfsv4", "op-delegpurge-done", 0, 0, "struct compound_state *",
480 "conninfo_t *" },
481 { "nfsv4", "op-delegpurge-done", 1, 0, "struct compound_state *",
482 "nfsv4opinfo_t *" },
483 { "nfsv4", "op-delegpurge-done", 2, 1, "DELEGPURGE4res *", NULL },
484 { "nfsv4", "op-delegreturn-start", 0, 0, "struct compound_state *",
485 "conninfo_t *" },
486 { "nfsv4", "op-delegreturn-start", 1, 0, "struct compound_state *",
487 "nfsv4opinfo_t *" },
488 { "nfsv4", "op-delegreturn-start", 2, 1, "DELEGRETURN4args *", NULL },
489 { "nfsv4", "op-delegreturn-done", 0, 0, "struct compound_state *",
490 "conninfo_t *" },
491 { "nfsv4", "op-delegreturn-done", 1, 0, "struct compound_state *",
492 "nfsv4opinfo_t *" },
493 { "nfsv4", "op-delegreturn-done", 2, 1, "DELEGRETURN4res *", NULL },
494 { "nfsv4", "op-getattr-start", 0, 0, "struct compound_state *",
495 "conninfo_t *" },
496 { "nfsv4", "op-getattr-start", 1, 0, "struct compound_state *",
497 "nfsv4opinfo_t *" },
498 { "nfsv4", "op-getattr-start", 2, 1, "GETATTR4args *", NULL },
499 { "nfsv4", "op-getattr-done", 0, 0, "struct compound_state *",
500 "conninfo_t *" },
501 { "nfsv4", "op-getattr-done", 1, 0, "struct compound_state *",
502 "nfsv4opinfo_t *" },
503 { "nfsv4", "op-getattr-done", 2, 1, "GETATTR4res *", NULL },
504 { "nfsv4", "op-getfh-start", 0, 0, "struct compound_state *",
505 "conninfo_t *" },
506 { "nfsv4", "op-getfh-start", 1, 0, "struct compound_state *",
507 "nfsv4opinfo_t *" },
508 { "nfsv4", "op-getfh-done", 0, 0, "struct compound_state *",
509 "conninfo_t *" },
510 { "nfsv4", "op-getfh-done", 1, 0, "struct compound_state *",
511 "nfsv4opinfo_t *" },
512 { "nfsv4", "op-getfh-done", 2, 1, "GETFH4res *", NULL },
513 { "nfsv4", "op-link-start", 0, 0, "struct compound_state *",
514 "conninfo_t *" },
515 { "nfsv4", "op-link-start", 1, 0, "struct compound_state *",
516 "nfsv4opinfo_t *" },
517 { "nfsv4", "op-link-start", 2, 1, "LINK4args *", NULL },
518 { "nfsv4", "op-link-done", 0, 0, "struct compound_state *",
519 "conninfo_t *" },
520 { "nfsv4", "op-link-done", 1, 0, "struct compound_state *",
521 "nfsv4opinfo_t *" },
522 { "nfsv4", "op-link-done", 2, 1, "LINK4res *", NULL },
523 { "nfsv4", "op-lock-start", 0, 0, "struct compound_state *",
524 "conninfo_t *" },
525 { "nfsv4", "op-lock-start", 1, 0, "struct compound_state *",
526 "nfsv4opinfo_t *" },
527 { "nfsv4", "op-lock-start", 2, 1, "LOCK4args *", NULL },
528 { "nfsv4", "op-lock-done", 0, 0, "struct compound_state *",
529 "conninfo_t *" },
530 { "nfsv4", "op-lock-done", 1, 0, "struct compound_state *",
531 "nfsv4opinfo_t *" },
532 { "nfsv4", "op-lock-done", 2, 1, "LOCK4res *", NULL },
533 { "nfsv4", "op-lockt-start", 0, 0, "struct compound_state *",
534 "conninfo_t *" },
535 { "nfsv4", "op-lockt-start", 1, 0, "struct compound_state *",
536 "nfsv4opinfo_t *" },
537 { "nfsv4", "op-lockt-start", 2, 1, "LOCKT4args *", NULL },
538 { "nfsv4", "op-lockt-done", 0, 0, "struct compound_state *",
539 "conninfo_t *" },
540 { "nfsv4", "op-lockt-done", 1, 0, "struct compound_state *",
541 "nfsv4opinfo_t *" },
542 { "nfsv4", "op-lockt-done", 2, 1, "LOCKT4res *", NULL },
543 { "nfsv4", "op-locku-start", 0, 0, "struct compound_state *",
544 "conninfo_t *" },
545 { "nfsv4", "op-locku-start", 1, 0, "struct compound_state *",
546 "nfsv4opinfo_t *" },
547 { "nfsv4", "op-locku-start", 2, 1, "LOCKU4args *", NULL },
548 { "nfsv4", "op-locku-done", 0, 0, "struct compound_state *",
549 "conninfo_t *" },
550 { "nfsv4", "op-locku-done", 1, 0, "struct compound_state *",
551 "nfsv4opinfo_t *" },
552 { "nfsv4", "op-locku-done", 2, 1, "LOCKU4res *", NULL },
553 { "nfsv4", "op-lookup-start", 0, 0, "struct compound_state *",
554 "conninfo_t *" },
555 { "nfsv4", "op-lookup-start", 1, 0, "struct compound_state *",
556 "nfsv4opinfo_t *" },
557 { "nfsv4", "op-lookup-start", 2, 1, "LOOKUP4args *", NULL },
558 { "nfsv4", "op-lookup-done", 0, 0, "struct compound_state *",
559 "conninfo_t *" },
560 { "nfsv4", "op-lookup-done", 1, 0, "struct compound_state *",
561 "nfsv4opinfo_t *" },
562 { "nfsv4", "op-lookup-done", 2, 1, "LOOKUP4res *", NULL },
563 { "nfsv4", "op-lookupp-start", 0, 0, "struct compound_state *",
564 "conninfo_t *" },
565 { "nfsv4", "op-lookupp-start", 1, 0, "struct compound_state *",
566 "nfsv4opinfo_t *" },
567 { "nfsv4", "op-lookupp-done", 0, 0, "struct compound_state *",
568 "conninfo_t *" },
569 { "nfsv4", "op-lookupp-done", 1, 0, "struct compound_state *",
570 "nfsv4opinfo_t *" },
571 { "nfsv4", "op-lookupp-done", 2, 1, "LOOKUPP4res *", NULL },
572 { "nfsv4", "op-nverify-start", 0, 0, "struct compound_state *",
573 "conninfo_t *" },
574 { "nfsv4", "op-nverify-start", 1, 0, "struct compound_state *",
575 "nfsv4opinfo_t *" },
576 { "nfsv4", "op-nverify-start", 2, 1, "NVERIFY4args *", NULL },
577 { "nfsv4", "op-nverify-done", 0, 0, "struct compound_state *",
578 "conninfo_t *" },
579 { "nfsv4", "op-nverify-done", 1, 0, "struct compound_state *",
580 "nfsv4opinfo_t *" },
581 { "nfsv4", "op-nverify-done", 2, 1, "NVERIFY4res *", NULL },
582 { "nfsv4", "op-open-start", 0, 0, "struct compound_state *",
583 "conninfo_t *" },
584 { "nfsv4", "op-open-start", 1, 0, "struct compound_state *",
585 "nfsv4opinfo_t *" },
586 { "nfsv4", "op-open-start", 2, 1, "OPEN4args *", NULL },
587 { "nfsv4", "op-open-done", 0, 0, "struct compound_state *",
588 "conninfo_t *" },
589 { "nfsv4", "op-open-done", 1, 0, "struct compound_state *",
590 "nfsv4opinfo_t *" },
591 { "nfsv4", "op-open-done", 2, 1, "OPEN4res *", NULL },
592 { "nfsv4", "op-open-confirm-start", 0, 0, "struct compound_state *",
593 "conninfo_t *" },
594 { "nfsv4", "op-open-confirm-start", 1, 0, "struct compound_state *",
595 "nfsv4opinfo_t *" },
596 { "nfsv4", "op-open-confirm-start", 2, 1, "OPEN_CONFIRM4args *", NULL },
597 { "nfsv4", "op-open-confirm-done", 0, 0, "struct compound_state *",
598 "conninfo_t *" },
599 { "nfsv4", "op-open-confirm-done", 1, 0, "struct compound_state *",
600 "nfsv4opinfo_t *" },
601 { "nfsv4", "op-open-confirm-done", 2, 1, "OPEN_CONFIRM4res *", NULL },
602 { "nfsv4", "op-open-downgrade-start", 0, 0, "struct compound_state *",
603 "conninfo_t *" },
604 { "nfsv4", "op-open-downgrade-start", 1, 0, "struct compound_state *",
605 "nfsv4opinfo_t *" },
606 { "nfsv4", "op-open-downgrade-start", 2, 1, "OPEN_DOWNGRADE4args *", NULL },
607 { "nfsv4", "op-open-downgrade-done", 0, 0, "struct compound_state *",
608 "conninfo_t *" },
609 { "nfsv4", "op-open-downgrade-done", 1, 0, "struct compound_state *",
610 "nfsv4opinfo_t *" },
611 { "nfsv4", "op-open-downgrade-done", 2, 1, "OPEN_DOWNGRADE4res *", NULL },
612 { "nfsv4", "op-openattr-start", 0, 0, "struct compound_state *",
613 "conninfo_t *" },
614 { "nfsv4", "op-openattr-start", 1, 0, "struct compound_state *",
615 "nfsv4opinfo_t *" },
616 { "nfsv4", "op-openattr-start", 2, 1, "OPENATTR4args *", NULL },
617 { "nfsv4", "op-openattr-done", 0, 0, "struct compound_state *",
618 "conninfo_t *" },
619 { "nfsv4", "op-openattr-done", 1, 0, "struct compound_state *",
620 "nfsv4opinfo_t *" },
621 { "nfsv4", "op-openattr-done", 2, 1, "OPENATTR4res *", NULL },
622 { "nfsv4", "op-putfh-start", 0, 0, "struct compound_state *",
623 "conninfo_t *" },
624 { "nfsv4", "op-putfh-start", 1, 0, "struct compound_state *",
625 "nfsv4opinfo_t *" },
626 { "nfsv4", "op-putfh-start", 2, 1, "PUTFH4args *", NULL },
627 { "nfsv4", "op-putfh-done", 0, 0, "struct compound_state *",
628 "conninfo_t *" },
629 { "nfsv4", "op-putfh-done", 1, 0, "struct compound_state *",
630 "nfsv4opinfo_t *" },
631 { "nfsv4", "op-putfh-done", 2, 1, "PUTFH4res *", NULL },
632 { "nfsv4", "op-putpubfh-start", 0, 0, "struct compound_state *",
633 "conninfo_t *" },
634 { "nfsv4", "op-putpubfh-start", 1, 0, "struct compound_state *",
635 "nfsv4opinfo_t *" },
636 { "nfsv4", "op-putpubfh-done", 0, 0, "struct compound_state *",
637 "conninfo_t *" },
638 { "nfsv4", "op-putpubfh-done", 1, 0, "struct compound_state *",
639 "nfsv4opinfo_t *" },
640 { "nfsv4", "op-putpubfh-done", 2, 1, "PUTPUBFH4res *", NULL },
641 { "nfsv4", "op-putrootfh-start", 0, 0, "struct compound_state *",
642 "conninfo_t *" },
643 { "nfsv4", "op-putrootfh-start", 1, 0, "struct compound_state *",
644 "nfsv4opinfo_t *" },
645 { "nfsv4", "op-putrootfh-done", 0, 0, "struct compound_state *",
646 "conninfo_t *" },
647 { "nfsv4", "op-putrootfh-done", 1, 0, "struct compound_state *",
648 "nfsv4opinfo_t *" },
649 { "nfsv4", "op-putrootfh-done", 2, 1, "PUTROOTFH4res *", NULL },
650 { "nfsv4", "op-read-start", 0, 0, "struct compound_state *",
651 "conninfo_t *" },
652 { "nfsv4", "op-read-start", 1, 0, "struct compound_state *",
653 "nfsv4opinfo_t *" },
654 { "nfsv4", "op-read-start", 2, 1, "READ4args *", NULL },
655 { "nfsv4", "op-read-done", 0, 0, "struct compound_state *",
656 "conninfo_t *" },
657 { "nfsv4", "op-read-done", 1, 0, "struct compound_state *",
658 "nfsv4opinfo_t *" },
659 { "nfsv4", "op-read-done", 2, 1, "READ4res *", NULL },
660 { "nfsv4", "op-readdir-start", 0, 0, "struct compound_state *",
661 "conninfo_t *" },
662 { "nfsv4", "op-readdir-start", 1, 0, "struct compound_state *",
663 "nfsv4opinfo_t *" },
664 { "nfsv4", "op-readdir-start", 2, 1, "READDIR4args *", NULL },
665 { "nfsv4", "op-readdir-done", 0, 0, "struct compound_state *",
666 "conninfo_t *" },
667 { "nfsv4", "op-readdir-done", 1, 0, "struct compound_state *",
668 "nfsv4opinfo_t *" },
669 { "nfsv4", "op-readdir-done", 2, 1, "READDIR4res *", NULL },
670 { "nfsv4", "op-readlink-start", 0, 0, "struct compound_state *",
671 "conninfo_t *" },
672 { "nfsv4", "op-readlink-start", 1, 0, "struct compound_state *",
673 "nfsv4opinfo_t *" },
674 { "nfsv4", "op-readlink-done", 0, 0, "struct compound_state *",
675 "conninfo_t *" },
676 { "nfsv4", "op-readlink-done", 1, 0, "struct compound_state *",
677 "nfsv4opinfo_t *" },
678 { "nfsv4", "op-readlink-done", 2, 1, "READLINK4res *", NULL },
679 { "nfsv4", "op-release-lockowner-start", 0, 0,
680 "struct compound_state *", "conninfo_t *" },
681 { "nfsv4", "op-release-lockowner-start", 1, 0,
682 "struct compound_state *", "nfsv4opinfo_t *" },
683 { "nfsv4", "op-release-lockowner-start", 2, 1,
684 "RELEASE_LOCKOWNER4args *", NULL },
685 { "nfsv4", "op-release-lockowner-done", 0, 0,
686 "struct compound_state *", "conninfo_t *" },
687 { "nfsv4", "op-release-lockowner-done", 1, 0,
688 "struct compound_state *", "nfsv4opinfo_t *" },
689 { "nfsv4", "op-release-lockowner-done", 2, 1,
690 "RELEASE_LOCKOWNER4res *", NULL },
691 { "nfsv4", "op-remove-start", 0, 0, "struct compound_state *",
692 "conninfo_t *" },
693 { "nfsv4", "op-remove-start", 1, 0, "struct compound_state *",
694 "nfsv4opinfo_t *" },
695 { "nfsv4", "op-remove-start", 2, 1, "REMOVE4args *", NULL },
696 { "nfsv4", "op-remove-done", 0, 0, "struct compound_state *",
697 "conninfo_t *" },
698 { "nfsv4", "op-remove-done", 1, 0, "struct compound_state *",
699 "nfsv4opinfo_t *" },
700 { "nfsv4", "op-remove-done", 2, 1, "REMOVE4res *", NULL },
701 { "nfsv4", "op-rename-start", 0, 0, "struct compound_state *",
702 "conninfo_t *" },
703 { "nfsv4", "op-rename-start", 1, 0, "struct compound_state *",
704 "nfsv4opinfo_t *" },
705 { "nfsv4", "op-rename-start", 2, 1, "RENAME4args *", NULL },
706 { "nfsv4", "op-rename-done", 0, 0, "struct compound_state *",
707 "conninfo_t *" },
708 { "nfsv4", "op-rename-done", 1, 0, "struct compound_state *",
709 "nfsv4opinfo_t *" },
710 { "nfsv4", "op-rename-done", 2, 1, "RENAME4res *", NULL },
711 { "nfsv4", "op-renew-start", 0, 0, "struct compound_state *",
712 "conninfo_t *" },
713 { "nfsv4", "op-renew-start", 1, 0, "struct compound_state *",
714 "nfsv4opinfo_t *" },
715 { "nfsv4", "op-renew-start", 2, 1, "RENEW4args *", NULL },
716 { "nfsv4", "op-renew-done", 0, 0, "struct compound_state *",
717 "conninfo_t *" },
718 { "nfsv4", "op-renew-done", 1, 0, "struct compound_state *",
719 "nfsv4opinfo_t *" },
720 { "nfsv4", "op-renew-done", 2, 1, "RENEW4res *", NULL },
721 { "nfsv4", "op-restorefh-start", 0, 0, "struct compound_state *",
722 "conninfo_t *" },
723 { "nfsv4", "op-restorefh-start", 1, 0, "struct compound_state *",
724 "nfsv4opinfo_t *" },
725 { "nfsv4", "op-restorefh-done", 0, 0, "struct compound_state *",
726 "conninfo_t *" },
727 { "nfsv4", "op-restorefh-done", 1, 0, "struct compound_state *",
728 "nfsv4opinfo_t *" },
729 { "nfsv4", "op-restorefh-done", 2, 1, "RESTOREFH4res *", NULL },
730 { "nfsv4", "op-savefh-start", 0, 0, "struct compound_state *",
731 "conninfo_t *" },
732 { "nfsv4", "op-savefh-start", 1, 0, "struct compound_state *",
733 "nfsv4opinfo_t *" },
734 { "nfsv4", "op-savefh-done", 0, 0, "struct compound_state *",
735 "conninfo_t *" },
736 { "nfsv4", "op-savefh-done", 1, 0, "struct compound_state *",
737 "nfsv4opinfo_t *" },
738 { "nfsv4", "op-savefh-done", 2, 1, "SAVEFH4res *", NULL },
739 { "nfsv4", "op-secinfo-start", 0, 0, "struct compound_state *",
740 "conninfo_t *" },
741 { "nfsv4", "op-secinfo-start", 1, 0, "struct compound_state *",
742 "nfsv4opinfo_t *" },
743 { "nfsv4", "op-secinfo-start", 2, 1, "SECINFO4args *", NULL },
744 { "nfsv4", "op-secinfo-done", 0, 0, "struct compound_state *",
745 "conninfo_t *" },
746 { "nfsv4", "op-secinfo-done", 1, 0, "struct compound_state *",
747 "nfsv4opinfo_t *" },
748 { "nfsv4", "op-secinfo-done", 2, 1, "SECINFO4res *", NULL },
749 { "nfsv4", "op-setattr-start", 0, 0, "struct compound_state *",
750 "conninfo_t *" },
751 { "nfsv4", "op-setattr-start", 1, 0, "struct compound_state *",
752 "nfsv4opinfo_t *" },
753 { "nfsv4", "op-setattr-start", 2, 1, "SETATTR4args *", NULL },
754 { "nfsv4", "op-setattr-done", 0, 0, "struct compound_state *",
755 "conninfo_t *" },
756 { "nfsv4", "op-setattr-done", 1, 0, "struct compound_state *",
757 "nfsv4opinfo_t *" },
758 { "nfsv4", "op-setattr-done", 2, 1, "SETATTR4res *", NULL },
759 { "nfsv4", "op-setclientid-start", 0, 0, "struct compound_state *",
760 "conninfo_t *" },
761 { "nfsv4", "op-setclientid-start", 1, 0, "struct compound_state *",
762 "nfsv4opinfo_t *" },
763 { "nfsv4", "op-setclientid-start", 2, 1, "SETCLIENTID4args *", NULL },
764 { "nfsv4", "op-setclientid-done", 0, 0, "struct compound_state *",
765 "conninfo_t *" },
766 { "nfsv4", "op-setclientid-done", 1, 0, "struct compound_state *",
767 "nfsv4opinfo_t *" },
768 { "nfsv4", "op-setclientid-done", 2, 1, "SETCLIENTID4res *", NULL },
769 { "nfsv4", "op-setclientid-confirm-start", 0, 0,
770 "struct compound_state *", "conninfo_t *" },
771 { "nfsv4", "op-setclientid-confirm-start", 1, 0,
772 "struct compound_state *", "nfsv4opinfo_t *" },
773 { "nfsv4", "op-setclientid-confirm-start", 2, 1,
774 "SETCLIENTID_CONFIRM4args *", NULL },
775 { "nfsv4", "op-setclientid-confirm-done", 0, 0,
776 "struct compound_state *", "conninfo_t *" },
777 { "nfsv4", "op-setclientid-confirm-done", 1, 0,
778 "struct compound_state *", "nfsv4opinfo_t *" },
779 { "nfsv4", "op-setclientid-confirm-done", 2, 1,
780 "SETCLIENTID_CONFIRM4res *", NULL },
781 { "nfsv4", "op-verify-start", 0, 0, "struct compound_state *",
782 "conninfo_t *" },
783 { "nfsv4", "op-verify-start", 1, 0, "struct compound_state *",
784 "nfsv4opinfo_t *" },
785 { "nfsv4", "op-verify-start", 2, 1, "VERIFY4args *", NULL },
786 { "nfsv4", "op-verify-done", 0, 0, "struct compound_state *",
787 "conninfo_t *" },
788 { "nfsv4", "op-verify-done", 1, 0, "struct compound_state *",
789 "nfsv4opinfo_t *" },
790 { "nfsv4", "op-verify-done", 2, 1, "VERIFY4res *", NULL },
791 { "nfsv4", "op-write-start", 0, 0, "struct compound_state *",
792 "conninfo_t *" },
793 { "nfsv4", "op-write-start", 1, 0, "struct compound_state *",
794 "nfsv4opinfo_t *" },
795 { "nfsv4", "op-write-start", 2, 1, "WRITE4args *", NULL },
796 { "nfsv4", "op-write-done", 0, 0, "struct compound_state *",
797 "conninfo_t *" },
798 { "nfsv4", "op-write-done", 1, 0, "struct compound_state *",
799 "nfsv4opinfo_t *" },
800 { "nfsv4", "op-write-done", 2, 1, "WRITE4res *", NULL },
801 { "nfsv4", "cb-recall-start", 0, 0, "rfs4_client_t *",
802 "conninfo_t *" },
803 { "nfsv4", "cb-recall-start", 1, 1, "rfs4_deleg_state_t *",
804 "nfsv4cbinfo_t *" },
805 { "nfsv4", "cb-recall-start", 2, 2, "CB_RECALL4args *", NULL },
806 { "nfsv4", "cb-recall-done", 0, 0, "rfs4_client_t *",
807 "conninfo_t *" },
808 { "nfsv4", "cb-recall-done", 1, 1, "rfs4_deleg_state_t *",
809 "nfsv4cbinfo_t *" },
810 { "nfsv4", "cb-recall-done", 2, 2, "CB_RECALL4res *", NULL },
811
812 { "ip", "send", 0, 0, "struct mbuf *", "pktinfo_t *" },
813 { "ip", "send", 1, 1, "struct inpcb *", "csinfo_t *" },
814 { "ip", "send", 2, 2, "void_ip_t *", "ipinfo_t *" },
815 { "ip", "send", 3, 3, "struct ifnet *", "ifinfo_t *" },
816 { "ip", "send", 4, 4, "struct ip *", "ipv4info_t *" },
817 { "ip", "send", 5, 5, "struct ip6_hdr *", "ipv6info_t *" },
818 { "ip", "receive", 0, 0, "struct mbuf *", "pktinfo_t *" },
819 { "ip", "receive", 1, 1, "struct inpcb *", "csinfo_t *" },
820 { "ip", "receive", 2, 2, "void_ip_t *", "ipinfo_t *" },
821 { "ip", "receive", 3, 3, "struct ifnet *", "ifinfo_t *" },
822 { "ip", "receive", 4, 4, "struct ip *", "ipv4info_t *" },
823 { "ip", "receive", 5, 5, "struct ip6_hdr *", "ipv6info_t *" },
824
825 { "tcp", "connect-established", 0, 0, "struct mbuf *", "pktinfo_t *" },
826 { "tcp", "connect-established", 1, 1, "struct inpcb *", "csinfo_t *" },
827 { "tcp", "connect-established", 2, 2, "void_ip_t *", "ipinfo_t *" },
828 { "tcp", "connect-established", 3, 3, "struct tcpcb *", "tcpsinfo_t *" },
829 { "tcp", "connect-established", 4, 4, "struct tcphdr *", "tcpinfo_t *" },
830 { "tcp", "connect-refused", 0, 0, "struct mbuf *", "pktinfo_t *" },
831 { "tcp", "connect-refused", 1, 1, "struct inpcb *", "csinfo_t *" },
832 { "tcp", "connect-refused", 2, 2, "void_ip_t *", "ipinfo_t *" },
833 { "tcp", "connect-refused", 3, 3, "struct tcpcb *", "tcpsinfo_t *" },
834 { "tcp", "connect-refused", 4, 4, "struct tcphdr *", "tcpinfo_t *" },
835 { "tcp", "connect-request", 0, 0, "struct mbuf *", "pktinfo_t *" },
836 { "tcp", "connect-request", 1, 1, "struct inpcb *", "csinfo_t *" },
837 { "tcp", "connect-request", 2, 2, "void_ip_t *", "ipinfo_t *" },
838 { "tcp", "connect-request", 3, 3, "struct tcpcb *", "tcpsinfo_t *" },
839 { "tcp", "connect-request", 4, 4, "struct tcphdr *", "tcpinfo_t *" },
840 { "tcp", "accept-established", 0, 0, "struct mbuf *", "pktinfo_t *" },
841 { "tcp", "accept-established", 1, 1, "struct inpcb *", "csinfo_t *" },
842 { "tcp", "accept-established", 2, 2, "void_ip_t *", "ipinfo_t *" },
843 { "tcp", "accept-established", 3, 3, "struct tcpcb *", "tcpsinfo_t *" },
844 { "tcp", "accept-established", 4, 4, "struct tcphdr *", "tcpinfo_t *" },
845 { "tcp", "accept-refused", 0, 0, "struct mbuf *", "pktinfo_t *" },
846 { "tcp", "accept-refused", 1, 1, "struct inpcb *", "csinfo_t *" },
847 { "tcp", "accept-refused", 2, 2, "void_ip_t *", "ipinfo_t *" },
848 { "tcp", "accept-refused", 3, 3, "struct tcpcb *", "tcpsinfo_t *" },
849 { "tcp", "accept-refused", 4, 4, "struct tcphdr *", "tcpinfo_t *" },
850 { "tcp", "state-change", 0, 0, "void", "void" },
851 { "tcp", "state-change", 1, 1, "struct inpcb *", "csinfo_t *" },
852 { "tcp", "state-change", 2, 2, "struct tcpcb *", "tcpsinfo_t *" },
853 { "tcp", "state-change", 3, 3, "int32_t", "tcpnsinfo_t *" },
854 { "tcp", "send", 0, 0, "struct mbuf *", "pktinfo_t *" },
855 { "tcp", "send", 1, 1, "struct inpcb *", "csinfo_t *" },
856 { "tcp", "send", 2, 2, "void_ip_t *", "ipinfo_t *" },
857 { "tcp", "send", 3, 3, "struct tcpcb *", "tcpsinfo_t *" },
858 { "tcp", "send", 4, 4, "struct tcphdr *", "tcpinfo_t *" },
859 { "tcp", "receive", 0, 0, "struct mbuf *", "pktinfo_t *" },
860 { "tcp", "receive", 1, 1, "struct inpcb *", "csinfo_t *" },
861 { "tcp", "receive", 2, 2, "void_ip_t *", "ipinfo_t *" },
862 { "tcp", "receive", 3, 3, "struct tcpcb *", "tcpsinfo_t *" },
863 { "tcp", "receive", 4, 4, "struct tcphdr *", "tcpinfo_t *" },
864 { "tcp", "cc", 0, 0, "struct mbuf *", "pktinfo_t *"},
865 { "tcp", "cc", 1, 1, "struct inpcb *", "csinfo_t *"},
866 { "tcp", "cc", 2, 2, "struct tcpcb *", "tcpsinfo_t *"},
867 { "tcp", "cc", 3, 3, "struct tcphdr *", "tcpinfo_t *"},
868 { "tcp", "cc", 4, 4, "int32_t", "tcpccevent_t *"},
869 { "tcp", "iaj", 0, 0, "struct tcpcb *", "tcpsinfo_t *"},
870 { "tcp", "iaj", 1, 1, "uint32_t", NULL},
871 { "tcp", "iaj", 2, 2, "uint32_t", NULL},
872 { "sysevent", "post", 0, 0, "evch_bind_t *", "syseventchaninfo_t *" },
873 { "sysevent", "post", 1, 1, "sysevent_impl_t *", "syseventinfo_t *" },
874
875 { "xpv", "add-to-physmap-end", 0, 0, "int", NULL },
876 { "xpv", "add-to-physmap-start", 0, 0, "domid_t", NULL },
877 { "xpv", "add-to-physmap-start", 1, 1, "uint_t", NULL },
878 { "xpv", "add-to-physmap-start", 2, 2, "ulong_t", NULL },
879 { "xpv", "add-to-physmap-start", 3, 3, "ulong_t", NULL },
880 { "xpv", "decrease-reservation-end", 0, 0, "int", NULL },
881 { "xpv", "decrease-reservation-start", 0, 0, "domid_t", NULL },
882 { "xpv", "decrease-reservation-start", 1, 1, "ulong_t", NULL },
883 { "xpv", "decrease-reservation-start", 2, 2, "uint_t", NULL },
884 { "xpv", "decrease-reservation-start", 3, 3, "ulong_t *", NULL },
885 { "xpv", "dom-create-start", 0, 0, "xen_domctl_t *", NULL },
886 { "xpv", "dom-destroy-start", 0, 0, "domid_t", NULL },
887 { "xpv", "dom-pause-start", 0, 0, "domid_t", NULL },
888 { "xpv", "dom-unpause-start", 0, 0, "domid_t", NULL },
889 { "xpv", "dom-create-end", 0, 0, "int", NULL },
890 { "xpv", "dom-destroy-end", 0, 0, "int", NULL },
891 { "xpv", "dom-pause-end", 0, 0, "int", NULL },
892 { "xpv", "dom-unpause-end", 0, 0, "int", NULL },
893 { "xpv", "evtchn-op-end", 0, 0, "int", NULL },
894 { "xpv", "evtchn-op-start", 0, 0, "int", NULL },
895 { "xpv", "evtchn-op-start", 1, 1, "void *", NULL },
896 { "xpv", "increase-reservation-end", 0, 0, "int", NULL },
897 { "xpv", "increase-reservation-start", 0, 0, "domid_t", NULL },
898 { "xpv", "increase-reservation-start", 1, 1, "ulong_t", NULL },
899 { "xpv", "increase-reservation-start", 2, 2, "uint_t", NULL },
900 { "xpv", "increase-reservation-start", 3, 3, "ulong_t *", NULL },
901 { "xpv", "mmap-end", 0, 0, "int", NULL },
902 { "xpv", "mmap-entry", 0, 0, "ulong_t", NULL },
903 { "xpv", "mmap-entry", 1, 1, "ulong_t", NULL },
904 { "xpv", "mmap-entry", 2, 2, "ulong_t", NULL },
905 { "xpv", "mmap-start", 0, 0, "domid_t", NULL },
906 { "xpv", "mmap-start", 1, 1, "int", NULL },
907 { "xpv", "mmap-start", 2, 2, "privcmd_mmap_entry_t *", NULL },
908 { "xpv", "mmapbatch-end", 0, 0, "int", NULL },
909 { "xpv", "mmapbatch-end", 1, 1, "struct seg *", NULL },
910 { "xpv", "mmapbatch-end", 2, 2, "caddr_t", NULL },
911 { "xpv", "mmapbatch-start", 0, 0, "domid_t", NULL },
912 { "xpv", "mmapbatch-start", 1, 1, "int", NULL },
913 { "xpv", "mmapbatch-start", 2, 2, "caddr_t", NULL },
914 { "xpv", "mmu-ext-op-end", 0, 0, "int", NULL },
915 { "xpv", "mmu-ext-op-start", 0, 0, "int", NULL },
916 { "xpv", "mmu-ext-op-start", 1, 1, "struct mmuext_op *" , NULL},
917 { "xpv", "mmu-update-start", 0, 0, "int", NULL },
918 { "xpv", "mmu-update-start", 1, 1, "int", NULL },
919 { "xpv", "mmu-update-start", 2, 2, "mmu_update_t *", NULL },
920 { "xpv", "mmu-update-end", 0, 0, "int", NULL },
921 { "xpv", "populate-physmap-end", 0, 0, "int" , NULL},
922 { "xpv", "populate-physmap-start", 0, 0, "domid_t" , NULL},
923 { "xpv", "populate-physmap-start", 1, 1, "ulong_t" , NULL},
924 { "xpv", "populate-physmap-start", 2, 2, "ulong_t *" , NULL},
925 { "xpv", "set-memory-map-end", 0, 0, "int" , NULL},
926 { "xpv", "set-memory-map-start", 0, 0, "domid_t" , NULL},
927 { "xpv", "set-memory-map-start", 1, 1, "int", NULL },
928 { "xpv", "set-memory-map-start", 2, 2, "struct xen_memory_map *", NULL },
929 { "xpv", "setvcpucontext-end", 0, 0, "int", NULL },
930 { "xpv", "setvcpucontext-start", 0, 0, "domid_t", NULL },
931 { "xpv", "setvcpucontext-start", 1, 1, "vcpu_guest_context_t *", NULL },
932 #if !defined(__APPLE__)
933 { NULL }
934 #else
935 { NULL, NULL, 0, 0, NULL, NULL }
936 #endif /* __APPLE__ */
937 };
938
939 /*ARGSUSED*/
940 void
941 sdt_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc)
942 {
943 #pragma unused(arg, id)
944 sdt_probe_t *sdp = parg;
945 int i;
946
947 desc->dtargd_native[0] = '\0';
948 desc->dtargd_xlate[0] = '\0';
949
950 for (i = 0; sdt_args[i].sda_provider != NULL; i++) {
951 sdt_argdesc_t *a = &sdt_args[i];
952
953 #if !defined(__APPLE__)
954 if (strcmp(sdp->sdp_provider->sdtp_name, a->sda_provider) != 0)
955 continue;
956
957 if (a->sda_name != NULL &&
958 strcmp(sdp->sdp_name, a->sda_name) != 0)
959 continue;
960
961 if (desc->dtargd_ndx != a->sda_ndx)
962 continue;
963
964 if (a->sda_native != NULL)
965 (void) strcpy(desc->dtargd_native, a->sda_native);
966
967 if (a->sda_xlate != NULL)
968 (void) strcpy(desc->dtargd_xlate, a->sda_xlate);
969 #else
970 if (strncmp(sdp->sdp_provider->sdtp_name, a->sda_provider, strlen(a->sda_provider) + 1) != 0)
971 continue;
972
973 if (a->sda_name != NULL &&
974 strncmp(sdp->sdp_name, a->sda_name, strlen(a->sda_name) + 1) != 0)
975 continue;
976
977 if (desc->dtargd_ndx != a->sda_ndx)
978 continue;
979
980 if (a->sda_native != NULL)
981 (void) strlcpy(desc->dtargd_native, a->sda_native, DTRACE_ARGTYPELEN);
982
983 if (a->sda_xlate != NULL)
984 (void) strlcpy(desc->dtargd_xlate, a->sda_xlate, DTRACE_ARGTYPELEN);
985 #endif /* __APPLE__ */
986
987 desc->dtargd_mapping = a->sda_mapping;
988 return;
989 }
990
991 desc->dtargd_ndx = DTRACE_ARGNONE;
992 }