initial commit
[freebsd-arm:freebsd-arm.git] / cddl / contrib / opensolaris / uts / common / 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   "%Z%%M% %I%     %E% 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", "__cpu_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         { "mib", "__mib_", &stab_attr, 0 },
95         { "fsinfo", "__fsinfo_", &fsinfo_attr, 0 },
96         { "nfsv3", "__nfsv3_", &stab_attr, 0 },
97         { "nfsv4", "__nfsv4_", &stab_attr, 0 },
98         { "xpv", "__xpv_", &xpv_attr, 0 },
99         { "sysevent", "__sysevent_", &stab_attr, 0 },
100         { "sdt", NULL, &sdt_attr, 0 },
101         { NULL }
102 };
103
104 sdt_argdesc_t sdt_args[] = {
105         { "sched", "wakeup", 0, 0, "kthread_t *", "lwpsinfo_t *" },
106         { "sched", "wakeup", 1, 0, "kthread_t *", "psinfo_t *" },
107         { "sched", "dequeue", 0, 0, "kthread_t *", "lwpsinfo_t *" },
108         { "sched", "dequeue", 1, 0, "kthread_t *", "psinfo_t *" },
109         { "sched", "dequeue", 2, 1, "disp_t *", "cpuinfo_t *" },
110         { "sched", "enqueue", 0, 0, "kthread_t *", "lwpsinfo_t *" },
111         { "sched", "enqueue", 1, 0, "kthread_t *", "psinfo_t *" },
112         { "sched", "enqueue", 2, 1, "disp_t *", "cpuinfo_t *" },
113         { "sched", "enqueue", 3, 2, "int" },
114         { "sched", "off-cpu", 0, 0, "kthread_t *", "lwpsinfo_t *" },
115         { "sched", "off-cpu", 1, 0, "kthread_t *", "psinfo_t *" },
116         { "sched", "tick", 0, 0, "kthread_t *", "lwpsinfo_t *" },
117         { "sched", "tick", 1, 0, "kthread_t *", "psinfo_t *" },
118         { "sched", "change-pri", 0, 0, "kthread_t *", "lwpsinfo_t *" },
119         { "sched", "change-pri", 1, 0, "kthread_t *", "psinfo_t *" },
120         { "sched", "change-pri", 2, 1, "pri_t" },
121         { "sched", "schedctl-nopreempt", 0, 0, "kthread_t *", "lwpsinfo_t *" },
122         { "sched", "schedctl-nopreempt", 1, 0, "kthread_t *", "psinfo_t *" },
123         { "sched", "schedctl-nopreempt", 2, 1, "int" },
124         { "sched", "schedctl-preempt", 0, 0, "kthread_t *", "lwpsinfo_t *" },
125         { "sched", "schedctl-preempt", 1, 0, "kthread_t *", "psinfo_t *" },
126         { "sched", "schedctl-yield", 0, 0, "int" },
127         { "sched", "surrender", 0, 0, "kthread_t *", "lwpsinfo_t *" },
128         { "sched", "surrender", 1, 0, "kthread_t *", "psinfo_t *" },
129         { "sched", "cpucaps-sleep", 0, 0, "kthread_t *", "lwpsinfo_t *" },
130         { "sched", "cpucaps-sleep", 1, 0, "kthread_t *", "psinfo_t *" },
131         { "sched", "cpucaps-wakeup", 0, 0, "kthread_t *", "lwpsinfo_t *" },
132         { "sched", "cpucaps-wakeup", 1, 0, "kthread_t *", "psinfo_t *" },
133
134         { "proc", "create", 0, 0, "proc_t *", "psinfo_t *" },
135         { "proc", "exec", 0, 0, "string" },
136         { "proc", "exec-failure", 0, 0, "int" },
137         { "proc", "exit", 0, 0, "int" },
138         { "proc", "fault", 0, 0, "int" },
139         { "proc", "fault", 1, 1, "siginfo_t *" },
140         { "proc", "lwp-create", 0, 0, "kthread_t *", "lwpsinfo_t *" },
141         { "proc", "lwp-create", 1, 0, "kthread_t *", "psinfo_t *" },
142         { "proc", "signal-clear", 0, 0, "int" },
143         { "proc", "signal-clear", 1, 1, "siginfo_t *" },
144         { "proc", "signal-discard", 0, 0, "kthread_t *", "lwpsinfo_t *" },
145         { "proc", "signal-discard", 1, 1, "proc_t *", "psinfo_t *" },
146         { "proc", "signal-discard", 2, 2, "int" },
147         { "proc", "signal-handle", 0, 0, "int" },
148         { "proc", "signal-handle", 1, 1, "siginfo_t *" },
149         { "proc", "signal-handle", 2, 2, "void (*)(void)" },
150         { "proc", "signal-send", 0, 0, "kthread_t *", "lwpsinfo_t *" },
151         { "proc", "signal-send", 1, 0, "kthread_t *", "psinfo_t *" },
152         { "proc", "signal-send", 2, 1, "int" },
153
154         { "io", "start", 0, 0, "buf_t *", "bufinfo_t *" },
155         { "io", "start", 1, 0, "buf_t *", "devinfo_t *" },
156         { "io", "start", 2, 0, "buf_t *", "fileinfo_t *" },
157         { "io", "done", 0, 0, "buf_t *", "bufinfo_t *" },
158         { "io", "done", 1, 0, "buf_t *", "devinfo_t *" },
159         { "io", "done", 2, 0, "buf_t *", "fileinfo_t *" },
160         { "io", "wait-start", 0, 0, "buf_t *", "bufinfo_t *" },
161         { "io", "wait-start", 1, 0, "buf_t *", "devinfo_t *" },
162         { "io", "wait-start", 2, 0, "buf_t *", "fileinfo_t *" },
163         { "io", "wait-done", 0, 0, "buf_t *", "bufinfo_t *" },
164         { "io", "wait-done", 1, 0, "buf_t *", "devinfo_t *" },
165         { "io", "wait-done", 2, 0, "buf_t *", "fileinfo_t *" },
166
167         { "mib", NULL, 0, 0, "int" },
168
169         { "fsinfo", NULL, 0, 0, "vnode_t *", "fileinfo_t *" },
170         { "fsinfo", NULL, 1, 1, "int", "int" },
171
172         { "nfsv3", "op-getattr-start", 0, 0, "struct svc_req *",
173             "conninfo_t *" },
174         { "nfsv3", "op-getattr-start", 1, 1, "nfsv3oparg_t *",
175             "nfsv3opinfo_t *" },
176         { "nfsv3", "op-getattr-start", 2, 3, "GETATTR3args *" },
177         { "nfsv3", "op-getattr-done", 0, 0, "struct svc_req *",
178             "conninfo_t *" },
179         { "nfsv3", "op-getattr-done", 1, 1, "nfsv3oparg_t *",
180             "nfsv3opinfo_t *" },
181         { "nfsv3", "op-getattr-done", 2, 3, "GETATTR3res *" },
182         { "nfsv3", "op-setattr-start", 0, 0, "struct svc_req *",
183             "conninfo_t *" },
184         { "nfsv3", "op-setattr-start", 1, 1, "nfsv3oparg_t *",
185             "nfsv3opinfo_t *" },
186         { "nfsv3", "op-setattr-start", 2, 3, "SETATTR3args *" },
187         { "nfsv3", "op-setattr-done", 0, 0, "struct svc_req *",
188             "conninfo_t *" },
189         { "nfsv3", "op-setattr-done", 1, 1, "nfsv3oparg_t *",
190             "nfsv3opinfo_t *" },
191         { "nfsv3", "op-setattr-done", 2, 3, "SETATTR3res *" },
192         { "nfsv3", "op-lookup-start", 0, 0, "struct svc_req *",
193             "conninfo_t *" },
194         { "nfsv3", "op-lookup-start", 1, 1, "nfsv3oparg_t *",
195             "nfsv3opinfo_t *" },
196         { "nfsv3", "op-lookup-start", 2, 3, "LOOKUP3args *" },
197         { "nfsv3", "op-lookup-done", 0, 0, "struct svc_req *",
198             "conninfo_t *" },
199         { "nfsv3", "op-lookup-done", 1, 1, "nfsv3oparg_t *",
200             "nfsv3opinfo_t *" },
201         { "nfsv3", "op-lookup-done", 2, 3, "LOOKUP3res *" },
202         { "nfsv3", "op-access-start", 0, 0, "struct svc_req *",
203             "conninfo_t *" },
204         { "nfsv3", "op-access-start", 1, 1, "nfsv3oparg_t *",
205             "nfsv3opinfo_t *" },
206         { "nfsv3", "op-access-start", 2, 3, "ACCESS3args *" },
207         { "nfsv3", "op-access-done", 0, 0, "struct svc_req *",
208             "conninfo_t *" },
209         { "nfsv3", "op-access-done", 1, 1, "nfsv3oparg_t *",
210             "nfsv3opinfo_t *" },
211         { "nfsv3", "op-access-done", 2, 3, "ACCESS3res *" },
212         { "nfsv3", "op-commit-start", 0, 0, "struct svc_req *",
213             "conninfo_t *" },
214         { "nfsv3", "op-commit-start", 1, 1, "nfsv3oparg_t *",
215             "nfsv3opinfo_t *" },
216         { "nfsv3", "op-commit-start", 2, 3, "COMMIT3args *" },
217         { "nfsv3", "op-commit-done", 0, 0, "struct svc_req *",
218             "conninfo_t *" },
219         { "nfsv3", "op-commit-done", 1, 1, "nfsv3oparg_t *",
220             "nfsv3opinfo_t *" },
221         { "nfsv3", "op-commit-done", 2, 3, "COMMIT3res *" },
222         { "nfsv3", "op-create-start", 0, 0, "struct svc_req *",
223             "conninfo_t *" },
224         { "nfsv3", "op-create-start", 1, 1, "nfsv3oparg_t *",
225             "nfsv3opinfo_t *" },
226         { "nfsv3", "op-create-start", 2, 3, "CREATE3args *" },
227         { "nfsv3", "op-create-done", 0, 0, "struct svc_req *",
228             "conninfo_t *" },
229         { "nfsv3", "op-create-done", 1, 1, "nfsv3oparg_t *",
230             "nfsv3opinfo_t *" },
231         { "nfsv3", "op-create-done", 2, 3, "CREATE3res *" },
232         { "nfsv3", "op-fsinfo-start", 0, 0, "struct svc_req *",
233             "conninfo_t *" },
234         { "nfsv3", "op-fsinfo-start", 1, 1, "nfsv3oparg_t *",
235             "nfsv3opinfo_t *" },
236         { "nfsv3", "op-fsinfo-start", 2, 3, "FSINFO3args *" },
237         { "nfsv3", "op-fsinfo-done", 0, 0, "struct svc_req *",
238             "conninfo_t *" },
239         { "nfsv3", "op-fsinfo-done", 1, 1, "nfsv3oparg_t *",
240             "nfsv3opinfo_t *" },
241         { "nfsv3", "op-fsinfo-done", 2, 3, "FSINFO3res *" },
242         { "nfsv3", "op-fsstat-start", 0, 0, "struct svc_req *",
243             "conninfo_t *" },
244         { "nfsv3", "op-fsstat-start", 1, 1, "nfsv3oparg_t *",
245             "nfsv3opinfo_t *" },
246         { "nfsv3", "op-fsstat-start", 2, 3, "FSSTAT3args *" },
247         { "nfsv3", "op-fsstat-done", 0, 0, "struct svc_req *",
248             "conninfo_t *" },
249         { "nfsv3", "op-fsstat-done", 1, 1, "nfsv3oparg_t *",
250             "nfsv3opinfo_t *" },
251         { "nfsv3", "op-fsstat-done", 2, 3, "FSSTAT3res *" },
252         { "nfsv3", "op-link-start", 0, 0, "struct svc_req *",
253             "conninfo_t *" },
254         { "nfsv3", "op-link-start", 1, 1, "nfsv3oparg_t *",
255             "nfsv3opinfo_t *" },
256         { "nfsv3", "op-link-start", 2, 3, "LINK3args *" },
257         { "nfsv3", "op-link-done", 0, 0, "struct svc_req *",
258             "conninfo_t *" },
259         { "nfsv3", "op-link-done", 1, 1, "nfsv3oparg_t *",
260             "nfsv3opinfo_t *" },
261         { "nfsv3", "op-link-done", 2, 3, "LINK3res *" },
262         { "nfsv3", "op-mkdir-start", 0, 0, "struct svc_req *",
263             "conninfo_t *" },
264         { "nfsv3", "op-mkdir-start", 1, 1, "nfsv3oparg_t *",
265             "nfsv3opinfo_t *" },
266         { "nfsv3", "op-mkdir-start", 2, 3, "MKDIR3args *" },
267         { "nfsv3", "op-mkdir-done", 0, 0, "struct svc_req *",
268             "conninfo_t *" },
269         { "nfsv3", "op-mkdir-done", 1, 1, "nfsv3oparg_t *",
270             "nfsv3opinfo_t *" },
271         { "nfsv3", "op-mkdir-done", 2, 3, "MKDIR3res *" },
272         { "nfsv3", "op-mknod-start", 0, 0, "struct svc_req *",
273             "conninfo_t *" },
274         { "nfsv3", "op-mknod-start", 1, 1, "nfsv3oparg_t *",
275             "nfsv3opinfo_t *" },
276         { "nfsv3", "op-mknod-start", 2, 3, "MKNOD3args *" },
277         { "nfsv3", "op-mknod-done", 0, 0, "struct svc_req *",
278             "conninfo_t *" },
279         { "nfsv3", "op-mknod-done", 1, 1, "nfsv3oparg_t *",
280             "nfsv3opinfo_t *" },
281         { "nfsv3", "op-mknod-done", 2, 3, "MKNOD3res *" },
282         { "nfsv3", "op-null-start", 0, 0, "struct svc_req *",
283             "conninfo_t *" },
284         { "nfsv3", "op-null-start", 1, 1, "nfsv3oparg_t *",
285             "nfsv3opinfo_t *" },
286         { "nfsv3", "op-null-done", 0, 0, "struct svc_req *",
287             "conninfo_t *" },
288         { "nfsv3", "op-null-done", 1, 1, "nfsv3oparg_t *",
289             "nfsv3opinfo_t *" },
290         { "nfsv3", "op-pathconf-start", 0, 0, "struct svc_req *",
291             "conninfo_t *" },
292         { "nfsv3", "op-pathconf-start", 1, 1, "nfsv3oparg_t *",
293             "nfsv3opinfo_t *" },
294         { "nfsv3", "op-pathconf-start", 2, 3, "PATHCONF3args *" },
295         { "nfsv3", "op-pathconf-done", 0, 0, "struct svc_req *",
296             "conninfo_t *" },
297         { "nfsv3", "op-pathconf-done", 1, 1, "nfsv3oparg_t *",
298             "nfsv3opinfo_t *" },
299         { "nfsv3", "op-pathconf-done", 2, 3, "PATHCONF3res *" },
300         { "nfsv3", "op-read-start", 0, 0, "struct svc_req *",
301             "conninfo_t *" },
302         { "nfsv3", "op-read-start", 1, 1, "nfsv3oparg_t *",
303             "nfsv3opinfo_t *" },
304         { "nfsv3", "op-read-start", 2, 3, "READ3args *" },
305         { "nfsv3", "op-read-done", 0, 0, "struct svc_req *",
306             "conninfo_t *" },
307         { "nfsv3", "op-read-done", 1, 1, "nfsv3oparg_t *",
308             "nfsv3opinfo_t *" },
309         { "nfsv3", "op-read-done", 2, 3, "READ3res *" },
310         { "nfsv3", "op-readdir-start", 0, 0, "struct svc_req *",
311             "conninfo_t *" },
312         { "nfsv3", "op-readdir-start", 1, 1, "nfsv3oparg_t *",
313             "nfsv3opinfo_t *" },
314         { "nfsv3", "op-readdir-start", 2, 3, "READDIR3args *" },
315         { "nfsv3", "op-readdir-done", 0, 0, "struct svc_req *",
316             "conninfo_t *" },
317         { "nfsv3", "op-readdir-done", 1, 1, "nfsv3oparg_t *",
318             "nfsv3opinfo_t *" },
319         { "nfsv3", "op-readdir-done", 2, 3, "READDIR3res *" },
320         { "nfsv3", "op-readdirplus-start", 0, 0, "struct svc_req *",
321             "conninfo_t *" },
322         { "nfsv3", "op-readdirplus-start", 1, 1, "nfsv3oparg_t *",
323             "nfsv3opinfo_t *" },
324         { "nfsv3", "op-readdirplus-start", 2, 3, "READDIRPLUS3args *" },
325         { "nfsv3", "op-readdirplus-done", 0, 0, "struct svc_req *",
326             "conninfo_t *" },
327         { "nfsv3", "op-readdirplus-done", 1, 1, "nfsv3oparg_t *",
328             "nfsv3opinfo_t *" },
329         { "nfsv3", "op-readdirplus-done", 2, 3, "READDIRPLUS3res *" },
330         { "nfsv3", "op-readlink-start", 0, 0, "struct svc_req *",
331             "conninfo_t *" },
332         { "nfsv3", "op-readlink-start", 1, 1, "nfsv3oparg_t *",
333             "nfsv3opinfo_t *" },
334         { "nfsv3", "op-readlink-start", 2, 3, "READLINK3args *" },
335         { "nfsv3", "op-readlink-done", 0, 0, "struct svc_req *",
336             "conninfo_t *" },
337         { "nfsv3", "op-readlink-done", 1, 1, "nfsv3oparg_t *",
338             "nfsv3opinfo_t *" },
339         { "nfsv3", "op-readlink-done", 2, 3, "READLINK3res *" },
340         { "nfsv3", "op-remove-start", 0, 0, "struct svc_req *",
341             "conninfo_t *" },
342         { "nfsv3", "op-remove-start", 1, 1, "nfsv3oparg_t *",
343             "nfsv3opinfo_t *" },
344         { "nfsv3", "op-remove-start", 2, 3, "REMOVE3args *" },
345         { "nfsv3", "op-remove-done", 0, 0, "struct svc_req *",
346             "conninfo_t *" },
347         { "nfsv3", "op-remove-done", 1, 1, "nfsv3oparg_t *",
348             "nfsv3opinfo_t *" },
349         { "nfsv3", "op-remove-done", 2, 3, "REMOVE3res *" },
350         { "nfsv3", "op-rename-start", 0, 0, "struct svc_req *",
351             "conninfo_t *" },
352         { "nfsv3", "op-rename-start", 1, 1, "nfsv3oparg_t *",
353             "nfsv3opinfo_t *" },
354         { "nfsv3", "op-rename-start", 2, 3, "RENAME3args *" },
355         { "nfsv3", "op-rename-done", 0, 0, "struct svc_req *",
356             "conninfo_t *" },
357         { "nfsv3", "op-rename-done", 1, 1, "nfsv3oparg_t *",
358             "nfsv3opinfo_t *" },
359         { "nfsv3", "op-rename-done", 2, 3, "RENAME3res *" },
360         { "nfsv3", "op-rmdir-start", 0, 0, "struct svc_req *",
361             "conninfo_t *" },
362         { "nfsv3", "op-rmdir-start", 1, 1, "nfsv3oparg_t *",
363             "nfsv3opinfo_t *" },
364         { "nfsv3", "op-rmdir-start", 2, 3, "RMDIR3args *" },
365         { "nfsv3", "op-rmdir-done", 0, 0, "struct svc_req *",
366             "conninfo_t *" },
367         { "nfsv3", "op-rmdir-done", 1, 1, "nfsv3oparg_t *",
368             "nfsv3opinfo_t *" },
369         { "nfsv3", "op-rmdir-done", 2, 3, "RMDIR3res *" },
370         { "nfsv3", "op-setattr-start", 0, 0, "struct svc_req *",
371             "conninfo_t *" },
372         { "nfsv3", "op-setattr-start", 1, 1, "nfsv3oparg_t *",
373             "nfsv3opinfo_t *" },
374         { "nfsv3", "op-setattr-start", 2, 3, "SETATTR3args *" },
375         { "nfsv3", "op-setattr-done", 0, 0, "struct svc_req *",
376             "conninfo_t *" },
377         { "nfsv3", "op-setattr-done", 1, 1, "nfsv3oparg_t *",
378             "nfsv3opinfo_t *" },
379         { "nfsv3", "op-setattr-done", 2, 3, "SETATTR3res *" },
380         { "nfsv3", "op-symlink-start", 0, 0, "struct svc_req *",
381             "conninfo_t *" },
382         { "nfsv3", "op-symlink-start", 1, 1, "nfsv3oparg_t *",
383             "nfsv3opinfo_t *" },
384         { "nfsv3", "op-symlink-start", 2, 3, "SYMLINK3args *" },
385         { "nfsv3", "op-symlink-done", 0, 0, "struct svc_req *",
386             "conninfo_t *" },
387         { "nfsv3", "op-symlink-done", 1, 1, "nfsv3oparg_t *",
388             "nfsv3opinfo_t *" },
389         { "nfsv3", "op-symlink-done", 2, 3, "SYMLINK3res *" },
390         { "nfsv3", "op-write-start", 0, 0, "struct svc_req *",
391             "conninfo_t *" },
392         { "nfsv3", "op-write-start", 1, 1, "nfsv3oparg_t *",
393             "nfsv3opinfo_t *" },
394         { "nfsv3", "op-write-start", 2, 3, "WRITE3args *" },
395         { "nfsv3", "op-write-done", 0, 0, "struct svc_req *",
396             "conninfo_t *" },
397         { "nfsv3", "op-write-done", 1, 1, "nfsv3oparg_t *",
398             "nfsv3opinfo_t *" },
399         { "nfsv3", "op-write-done", 2, 3, "WRITE3res *" },
400
401         { "nfsv4", "null-start", 0, 0, "struct svc_req *", "conninfo_t *" },
402         { "nfsv4", "null-done", 0, 0, "struct svc_req *", "conninfo_t *" },
403         { "nfsv4", "compound-start", 0, 0, "struct compound_state *",
404             "conninfo_t *" },
405         { "nfsv4", "compound-start", 1, 0, "struct compound_state *",
406             "nfsv4opinfo_t *" },
407         { "nfsv4", "compound-start", 2, 1, "COMPOUND4args *" },
408         { "nfsv4", "compound-done", 0, 0, "struct compound_state *",
409             "conninfo_t *" },
410         { "nfsv4", "compound-done", 1, 0, "struct compound_state *",
411             "nfsv4opinfo_t *" },
412         { "nfsv4", "compound-done", 2, 1, "COMPOUND4res *" },
413         { "nfsv4", "op-access-start", 0, 0, "struct compound_state *",
414             "conninfo_t *"},
415         { "nfsv4", "op-access-start", 1, 0, "struct compound_state *",
416             "nfsv4opinfo_t *" },
417         { "nfsv4", "op-access-start", 2, 1, "ACCESS4args *" },
418         { "nfsv4", "op-access-done", 0, 0, "struct compound_state *",
419             "conninfo_t *" },
420         { "nfsv4", "op-access-done", 1, 0, "struct compound_state *",
421             "nfsv4opinfo_t *" },
422         { "nfsv4", "op-access-done", 2, 1, "ACCESS4res *" },
423         { "nfsv4", "op-close-start", 0, 0, "struct compound_state *",
424             "conninfo_t *" },
425         { "nfsv4", "op-close-start", 1, 0, "struct compound_state *",
426             "nfsv4opinfo_t *" },
427         { "nfsv4", "op-close-start", 2, 1, "CLOSE4args *" },
428         { "nfsv4", "op-close-done", 0, 0, "struct compound_state *",
429             "conninfo_t *" },
430         { "nfsv4", "op-close-done", 1, 0, "struct compound_state *",
431             "nfsv4opinfo_t *" },
432         { "nfsv4", "op-close-done", 2, 1, "CLOSE4res *" },
433         { "nfsv4", "op-commit-start", 0, 0, "struct compound_state *",
434             "conninfo_t *" },
435         { "nfsv4", "op-commit-start", 1, 0, "struct compound_state *",
436             "nfsv4opinfo_t *" },
437         { "nfsv4", "op-commit-start", 2, 1, "COMMIT4args *" },
438         { "nfsv4", "op-commit-done", 0, 0, "struct compound_state *",
439             "conninfo_t *" },
440         { "nfsv4", "op-commit-done", 1, 0, "struct compound_state *",
441             "nfsv4opinfo_t *" },
442         { "nfsv4", "op-commit-done", 2, 1, "COMMIT4res *" },
443         { "nfsv4", "op-create-start", 0, 0, "struct compound_state *",
444             "conninfo_t *" },
445         { "nfsv4", "op-create-start", 1, 0, "struct compound_state *",
446             "nfsv4opinfo_t *" },
447         { "nfsv4", "op-create-start", 2, 1, "CREATE4args *" },
448         { "nfsv4", "op-create-done", 0, 0, "struct compound_state *",
449             "conninfo_t *" },
450         { "nfsv4", "op-create-done", 1, 0, "struct compound_state *",
451             "nfsv4opinfo_t *" },
452         { "nfsv4", "op-create-done", 2, 1, "CREATE4res *" },
453         { "nfsv4", "op-delegpurge-start", 0, 0, "struct compound_state *",
454             "conninfo_t *" },
455         { "nfsv4", "op-delegpurge-start", 1, 0, "struct compound_state *",
456             "nfsv4opinfo_t *" },
457         { "nfsv4", "op-delegpurge-start", 2, 1, "DELEGPURGE4args *" },
458         { "nfsv4", "op-delegpurge-done", 0, 0, "struct compound_state *",
459             "conninfo_t *" },
460         { "nfsv4", "op-delegpurge-done", 1, 0, "struct compound_state *",
461             "nfsv4opinfo_t *" },
462         { "nfsv4", "op-delegpurge-done", 2, 1, "DELEGPURGE4res *" },
463         { "nfsv4", "op-delegreturn-start", 0, 0, "struct compound_state *",
464             "conninfo_t *" },
465         { "nfsv4", "op-delegreturn-start", 1, 0, "struct compound_state *",
466             "nfsv4opinfo_t *" },
467         { "nfsv4", "op-delegreturn-start", 2, 1, "DELEGRETURN4args *" },
468         { "nfsv4", "op-delegreturn-done", 0, 0, "struct compound_state *",
469             "conninfo_t *" },
470         { "nfsv4", "op-delegreturn-done", 1, 0, "struct compound_state *",
471             "nfsv4opinfo_t *" },
472         { "nfsv4", "op-delegreturn-done", 2, 1, "DELEGRETURN4res *" },
473         { "nfsv4", "op-getattr-start", 0, 0, "struct compound_state *",
474             "conninfo_t *" },
475         { "nfsv4", "op-getattr-start", 1, 0, "struct compound_state *",
476             "nfsv4opinfo_t *" },
477         { "nfsv4", "op-getattr-start", 2, 1, "GETATTR4args *" },
478         { "nfsv4", "op-getattr-done", 0, 0, "struct compound_state *",
479             "conninfo_t *" },
480         { "nfsv4", "op-getattr-done", 1, 0, "struct compound_state *",
481             "nfsv4opinfo_t *" },
482         { "nfsv4", "op-getattr-done", 2, 1, "GETATTR4res *" },
483         { "nfsv4", "op-getfh-start", 0, 0, "struct compound_state *",
484             "conninfo_t *" },
485         { "nfsv4", "op-getfh-start", 1, 0, "struct compound_state *",
486             "nfsv4opinfo_t *" },
487         { "nfsv4", "op-getfh-done", 0, 0, "struct compound_state *",
488             "conninfo_t *" },
489         { "nfsv4", "op-getfh-done", 1, 0, "struct compound_state *",
490             "nfsv4opinfo_t *" },
491         { "nfsv4", "op-getfh-done", 2, 1, "GETFH4res *" },
492         { "nfsv4", "op-link-start", 0, 0, "struct compound_state *",
493             "conninfo_t *" },
494         { "nfsv4", "op-link-start", 1, 0, "struct compound_state *",
495             "nfsv4opinfo_t *" },
496         { "nfsv4", "op-link-start", 2, 1, "LINK4args *" },
497         { "nfsv4", "op-link-done", 0, 0, "struct compound_state *",
498             "conninfo_t *" },
499         { "nfsv4", "op-link-done", 1, 0, "struct compound_state *",
500             "nfsv4opinfo_t *" },
501         { "nfsv4", "op-link-done", 2, 1, "LINK4res *" },
502         { "nfsv4", "op-lock-start", 0, 0, "struct compound_state *",
503             "conninfo_t *" },
504         { "nfsv4", "op-lock-start", 1, 0, "struct compound_state *",
505             "nfsv4opinfo_t *" },
506         { "nfsv4", "op-lock-start", 2, 1, "LOCK4args *" },
507         { "nfsv4", "op-lock-done", 0, 0, "struct compound_state *",
508             "conninfo_t *" },
509         { "nfsv4", "op-lock-done", 1, 0, "struct compound_state *",
510             "nfsv4opinfo_t *" },
511         { "nfsv4", "op-lock-done", 2, 1, "LOCK4res *" },
512         { "nfsv4", "op-lockt-start", 0, 0, "struct compound_state *",
513             "conninfo_t *" },
514         { "nfsv4", "op-lockt-start", 1, 0, "struct compound_state *",
515             "nfsv4opinfo_t *" },
516         { "nfsv4", "op-lockt-start", 2, 1, "LOCKT4args *" },
517         { "nfsv4", "op-lockt-done", 0, 0, "struct compound_state *",
518             "conninfo_t *" },
519         { "nfsv4", "op-lockt-done", 1, 0, "struct compound_state *",
520             "nfsv4opinfo_t *" },
521         { "nfsv4", "op-lockt-done", 2, 1, "LOCKT4res *" },
522         { "nfsv4", "op-locku-start", 0, 0, "struct compound_state *",
523             "conninfo_t *" },
524         { "nfsv4", "op-locku-start", 1, 0, "struct compound_state *",
525             "nfsv4opinfo_t *" },
526         { "nfsv4", "op-locku-start", 2, 1, "LOCKU4args *" },
527         { "nfsv4", "op-locku-done", 0, 0, "struct compound_state *",
528             "conninfo_t *" },
529         { "nfsv4", "op-locku-done", 1, 0, "struct compound_state *",
530             "nfsv4opinfo_t *" },
531         { "nfsv4", "op-locku-done", 2, 1, "LOCKU4res *" },
532         { "nfsv4", "op-lookup-start", 0, 0, "struct compound_state *",
533             "conninfo_t *" },
534         { "nfsv4", "op-lookup-start", 1, 0, "struct compound_state *",
535             "nfsv4opinfo_t *" },
536         { "nfsv4", "op-lookup-start", 2, 1, "LOOKUP4args *" },
537         { "nfsv4", "op-lookup-done", 0, 0, "struct compound_state *",
538             "conninfo_t *" },
539         { "nfsv4", "op-lookup-done", 1, 0, "struct compound_state *",
540             "nfsv4opinfo_t *" },
541         { "nfsv4", "op-lookup-done", 2, 1, "LOOKUP4res *" },
542         { "nfsv4", "op-lookupp-start", 0, 0, "struct compound_state *",
543             "conninfo_t *" },
544         { "nfsv4", "op-lookupp-start", 1, 0, "struct compound_state *",
545             "nfsv4opinfo_t *" },
546         { "nfsv4", "op-lookupp-done", 0, 0, "struct compound_state *",
547             "conninfo_t *" },
548         { "nfsv4", "op-lookupp-done", 1, 0, "struct compound_state *",
549             "nfsv4opinfo_t *" },
550         { "nfsv4", "op-lookupp-done", 2, 1, "LOOKUPP4res *" },
551         { "nfsv4", "op-nverify-start", 0, 0, "struct compound_state *",
552             "conninfo_t *" },
553         { "nfsv4", "op-nverify-start", 1, 0, "struct compound_state *",
554             "nfsv4opinfo_t *" },
555         { "nfsv4", "op-nverify-start", 2, 1, "NVERIFY4args *" },
556         { "nfsv4", "op-nverify-done", 0, 0, "struct compound_state *",
557             "conninfo_t *" },
558         { "nfsv4", "op-nverify-done", 1, 0, "struct compound_state *",
559             "nfsv4opinfo_t *" },
560         { "nfsv4", "op-nverify-done", 2, 1, "NVERIFY4res *" },
561         { "nfsv4", "op-open-start", 0, 0, "struct compound_state *",
562             "conninfo_t *" },
563         { "nfsv4", "op-open-start", 1, 0, "struct compound_state *",
564             "nfsv4opinfo_t *" },
565         { "nfsv4", "op-open-start", 2, 1, "OPEN4args *" },
566         { "nfsv4", "op-open-done", 0, 0, "struct compound_state *",
567             "conninfo_t *" },
568         { "nfsv4", "op-open-done", 1, 0, "struct compound_state *",
569             "nfsv4opinfo_t *" },
570         { "nfsv4", "op-open-done", 2, 1, "OPEN4res *" },
571         { "nfsv4", "op-open-confirm-start", 0, 0, "struct compound_state *",
572             "conninfo_t *" },
573         { "nfsv4", "op-open-confirm-start", 1, 0, "struct compound_state *",
574             "nfsv4opinfo_t *" },
575         { "nfsv4", "op-open-confirm-start", 2, 1, "OPEN_CONFIRM4args *" },
576         { "nfsv4", "op-open-confirm-done", 0, 0, "struct compound_state *",
577             "conninfo_t *" },
578         { "nfsv4", "op-open-confirm-done", 1, 0, "struct compound_state *",
579             "nfsv4opinfo_t *" },
580         { "nfsv4", "op-open-confirm-done", 2, 1, "OPEN_CONFIRM4res *" },
581         { "nfsv4", "op-open-downgrade-start", 0, 0, "struct compound_state *",
582             "conninfo_t *" },
583         { "nfsv4", "op-open-downgrade-start", 1, 0, "struct compound_state *",
584             "nfsv4opinfo_t *" },
585         { "nfsv4", "op-open-downgrade-start", 2, 1, "OPEN_DOWNGRADE4args *" },
586         { "nfsv4", "op-open-downgrade-done", 0, 0, "struct compound_state *",
587             "conninfo_t *" },
588         { "nfsv4", "op-open-downgrade-done", 1, 0, "struct compound_state *",
589             "nfsv4opinfo_t *" },
590         { "nfsv4", "op-open-downgrade-done", 2, 1, "OPEN_DOWNGRADE4res *" },
591         { "nfsv4", "op-openattr-start", 0, 0, "struct compound_state *",
592             "conninfo_t *" },
593         { "nfsv4", "op-openattr-start", 1, 0, "struct compound_state *",
594             "nfsv4opinfo_t *" },
595         { "nfsv4", "op-openattr-start", 2, 1, "OPENATTR4args *" },
596         { "nfsv4", "op-openattr-done", 0, 0, "struct compound_state *",
597             "conninfo_t *" },
598         { "nfsv4", "op-openattr-done", 1, 0, "struct compound_state *",
599             "nfsv4opinfo_t *" },
600         { "nfsv4", "op-openattr-done", 2, 1, "OPENATTR4res *" },
601         { "nfsv4", "op-putfh-start", 0, 0, "struct compound_state *",
602             "conninfo_t *" },
603         { "nfsv4", "op-putfh-start", 1, 0, "struct compound_state *",
604             "nfsv4opinfo_t *" },
605         { "nfsv4", "op-putfh-start", 2, 1, "PUTFH4args *" },
606         { "nfsv4", "op-putfh-done", 0, 0, "struct compound_state *",
607             "conninfo_t *" },
608         { "nfsv4", "op-putfh-done", 1, 0, "struct compound_state *",
609             "nfsv4opinfo_t *" },
610         { "nfsv4", "op-putfh-done", 2, 1, "PUTFH4res *" },
611         { "nfsv4", "op-putpubfh-start", 0, 0, "struct compound_state *",
612             "conninfo_t *" },
613         { "nfsv4", "op-putpubfh-start", 1, 0, "struct compound_state *",
614             "nfsv4opinfo_t *" },
615         { "nfsv4", "op-putpubfh-done", 0, 0, "struct compound_state *",
616             "conninfo_t *" },
617         { "nfsv4", "op-putpubfh-done", 1, 0, "struct compound_state *",
618             "nfsv4opinfo_t *" },
619         { "nfsv4", "op-putpubfh-done", 2, 1, "PUTPUBFH4res *" },
620         { "nfsv4", "op-putrootfh-start", 0, 0, "struct compound_state *",
621             "conninfo_t *" },
622         { "nfsv4", "op-putrootfh-start", 1, 0, "struct compound_state *",
623             "nfsv4opinfo_t *" },
624         { "nfsv4", "op-putrootfh-done", 0, 0, "struct compound_state *",
625             "conninfo_t *" },
626         { "nfsv4", "op-putrootfh-done", 1, 0, "struct compound_state *",
627             "nfsv4opinfo_t *" },
628         { "nfsv4", "op-putrootfh-done", 2, 1, "PUTROOTFH4res *" },
629         { "nfsv4", "op-read-start", 0, 0, "struct compound_state *",
630             "conninfo_t *" },
631         { "nfsv4", "op-read-start", 1, 0, "struct compound_state *",
632             "nfsv4opinfo_t *" },
633         { "nfsv4", "op-read-start", 2, 1, "READ4args *" },
634         { "nfsv4", "op-read-done", 0, 0, "struct compound_state *",
635             "conninfo_t *" },
636         { "nfsv4", "op-read-done", 1, 0, "struct compound_state *",
637             "nfsv4opinfo_t *" },
638         { "nfsv4", "op-read-done", 2, 1, "READ4res *" },
639         { "nfsv4", "op-readdir-start", 0, 0, "struct compound_state *",
640             "conninfo_t *" },
641         { "nfsv4", "op-readdir-start", 1, 0, "struct compound_state *",
642             "nfsv4opinfo_t *" },
643         { "nfsv4", "op-readdir-start", 2, 1, "READDIR4args *" },
644         { "nfsv4", "op-readdir-done", 0, 0, "struct compound_state *",
645             "conninfo_t *" },
646         { "nfsv4", "op-readdir-done", 1, 0, "struct compound_state *",
647             "nfsv4opinfo_t *" },
648         { "nfsv4", "op-readdir-done", 2, 1, "READDIR4res *" },
649         { "nfsv4", "op-readlink-start", 0, 0, "struct compound_state *",
650             "conninfo_t *" },
651         { "nfsv4", "op-readlink-start", 1, 0, "struct compound_state *",
652             "nfsv4opinfo_t *" },
653         { "nfsv4", "op-readlink-done", 0, 0, "struct compound_state *",
654             "conninfo_t *" },
655         { "nfsv4", "op-readlink-done", 1, 0, "struct compound_state *",
656             "nfsv4opinfo_t *" },
657         { "nfsv4", "op-readlink-done", 2, 1, "READLINK4res *" },
658         { "nfsv4", "op-release-lockowner-start", 0, 0,
659             "struct compound_state *", "conninfo_t *" },
660         { "nfsv4", "op-release-lockowner-start", 1, 0,
661             "struct compound_state *", "nfsv4opinfo_t *" },
662         { "nfsv4", "op-release-lockowner-start", 2, 1,
663             "RELEASE_LOCKOWNER4args *" },
664         { "nfsv4", "op-release-lockowner-done", 0, 0,
665             "struct compound_state *", "conninfo_t *" },
666         { "nfsv4", "op-release-lockowner-done", 1, 0,
667             "struct compound_state *", "nfsv4opinfo_t *" },
668         { "nfsv4", "op-release-lockowner-done", 2, 1,
669             "RELEASE_LOCKOWNER4res *" },
670         { "nfsv4", "op-remove-start", 0, 0, "struct compound_state *",
671             "conninfo_t *" },
672         { "nfsv4", "op-remove-start", 1, 0, "struct compound_state *",
673             "nfsv4opinfo_t *" },
674         { "nfsv4", "op-remove-start", 2, 1, "REMOVE4args *" },
675         { "nfsv4", "op-remove-done", 0, 0, "struct compound_state *",
676             "conninfo_t *" },
677         { "nfsv4", "op-remove-done", 1, 0, "struct compound_state *",
678             "nfsv4opinfo_t *" },
679         { "nfsv4", "op-remove-done", 2, 1, "REMOVE4res *" },
680         { "nfsv4", "op-rename-start", 0, 0, "struct compound_state *",
681             "conninfo_t *" },
682         { "nfsv4", "op-rename-start", 1, 0, "struct compound_state *",
683             "nfsv4opinfo_t *" },
684         { "nfsv4", "op-rename-start", 2, 1, "RENAME4args *" },
685         { "nfsv4", "op-rename-done", 0, 0, "struct compound_state *",
686             "conninfo_t *" },
687         { "nfsv4", "op-rename-done", 1, 0, "struct compound_state *",
688             "nfsv4opinfo_t *" },
689         { "nfsv4", "op-rename-done", 2, 1, "RENAME4res *" },
690         { "nfsv4", "op-renew-start", 0, 0, "struct compound_state *",
691             "conninfo_t *" },
692         { "nfsv4", "op-renew-start", 1, 0, "struct compound_state *",
693             "nfsv4opinfo_t *" },
694         { "nfsv4", "op-renew-start", 2, 1, "RENEW4args *" },
695         { "nfsv4", "op-renew-done", 0, 0, "struct compound_state *",
696             "conninfo_t *" },
697         { "nfsv4", "op-renew-done", 1, 0, "struct compound_state *",
698             "nfsv4opinfo_t *" },
699         { "nfsv4", "op-renew-done", 2, 1, "RENEW4res *" },
700         { "nfsv4", "op-restorefh-start", 0, 0, "struct compound_state *",
701             "conninfo_t *" },
702         { "nfsv4", "op-restorefh-start", 1, 0, "struct compound_state *",
703             "nfsv4opinfo_t *" },
704         { "nfsv4", "op-restorefh-done", 0, 0, "struct compound_state *",
705             "conninfo_t *" },
706         { "nfsv4", "op-restorefh-done", 1, 0, "struct compound_state *",
707             "nfsv4opinfo_t *" },
708         { "nfsv4", "op-restorefh-done", 2, 1, "RESTOREFH4res *" },
709         { "nfsv4", "op-savefh-start", 0, 0, "struct compound_state *",
710             "conninfo_t *" },
711         { "nfsv4", "op-savefh-start", 1, 0, "struct compound_state *",
712             "nfsv4opinfo_t *" },
713         { "nfsv4", "op-savefh-done", 0, 0, "struct compound_state *",
714             "conninfo_t *" },
715         { "nfsv4", "op-savefh-done", 1, 0, "struct compound_state *",
716             "nfsv4opinfo_t *" },
717         { "nfsv4", "op-savefh-done", 2, 1, "SAVEFH4res *" },
718         { "nfsv4", "op-secinfo-start", 0, 0, "struct compound_state *",
719             "conninfo_t *" },
720         { "nfsv4", "op-secinfo-start", 1, 0, "struct compound_state *",
721             "nfsv4opinfo_t *" },
722         { "nfsv4", "op-secinfo-start", 2, 1, "SECINFO4args *" },
723         { "nfsv4", "op-secinfo-done", 0, 0, "struct compound_state *",
724             "conninfo_t *" },
725         { "nfsv4", "op-secinfo-done", 1, 0, "struct compound_state *",
726             "nfsv4opinfo_t *" },
727         { "nfsv4", "op-secinfo-done", 2, 1, "SECINFO4res *" },
728         { "nfsv4", "op-setattr-start", 0, 0, "struct compound_state *",
729             "conninfo_t *" },
730         { "nfsv4", "op-setattr-start", 1, 0, "struct compound_state *",
731             "nfsv4opinfo_t *" },
732         { "nfsv4", "op-setattr-start", 2, 1, "SETATTR4args *" },
733         { "nfsv4", "op-setattr-done", 0, 0, "struct compound_state *",
734             "conninfo_t *" },
735         { "nfsv4", "op-setattr-done", 1, 0, "struct compound_state *",
736             "nfsv4opinfo_t *" },
737         { "nfsv4", "op-setattr-done", 2, 1, "SETATTR4res *" },
738         { "nfsv4", "op-setclientid-start", 0, 0, "struct compound_state *",
739             "conninfo_t *" },
740         { "nfsv4", "op-setclientid-start", 1, 0, "struct compound_state *",
741             "nfsv4opinfo_t *" },
742         { "nfsv4", "op-setclientid-start", 2, 1, "SETCLIENTID4args *" },
743         { "nfsv4", "op-setclientid-done", 0, 0, "struct compound_state *",
744             "conninfo_t *" },
745         { "nfsv4", "op-setclientid-done", 1, 0, "struct compound_state *",
746             "nfsv4opinfo_t *" },
747         { "nfsv4", "op-setclientid-done", 2, 1, "SETCLIENTID4res *" },
748         { "nfsv4", "op-setclientid-confirm-start", 0, 0,
749             "struct compound_state *", "conninfo_t *" },
750         { "nfsv4", "op-setclientid-confirm-start", 1, 0,
751             "struct compound_state *", "nfsv4opinfo_t *" },
752         { "nfsv4", "op-setclientid-confirm-start", 2, 1,
753             "SETCLIENTID_CONFIRM4args *" },
754         { "nfsv4", "op-setclientid-confirm-done", 0, 0,
755             "struct compound_state *", "conninfo_t *" },
756         { "nfsv4", "op-setclientid-confirm-done", 1, 0,
757             "struct compound_state *", "nfsv4opinfo_t *" },
758         { "nfsv4", "op-setclientid-confirm-done", 2, 1,
759             "SETCLIENTID_CONFIRM4res *" },
760         { "nfsv4", "op-verify-start", 0, 0, "struct compound_state *",
761             "conninfo_t *" },
762         { "nfsv4", "op-verify-start", 1, 0, "struct compound_state *",
763             "nfsv4opinfo_t *" },
764         { "nfsv4", "op-verify-start", 2, 1, "VERIFY4args *" },
765         { "nfsv4", "op-verify-done", 0, 0, "struct compound_state *",
766             "conninfo_t *" },
767         { "nfsv4", "op-verify-done", 1, 0, "struct compound_state *",
768             "nfsv4opinfo_t *" },
769         { "nfsv4", "op-verify-done", 2, 1, "VERIFY4res *" },
770         { "nfsv4", "op-write-start", 0, 0, "struct compound_state *",
771             "conninfo_t *" },
772         { "nfsv4", "op-write-start", 1, 0, "struct compound_state *",
773             "nfsv4opinfo_t *" },
774         { "nfsv4", "op-write-start", 2, 1, "WRITE4args *" },
775         { "nfsv4", "op-write-done", 0, 0, "struct compound_state *",
776             "conninfo_t *" },
777         { "nfsv4", "op-write-done", 1, 0, "struct compound_state *",
778             "nfsv4opinfo_t *" },
779         { "nfsv4", "op-write-done", 2, 1, "WRITE4res *" },
780         { "nfsv4", "cb-recall-start", 0, 0, "rfs4_client_t *",
781             "conninfo_t *" },
782         { "nfsv4", "cb-recall-start", 1, 1, "rfs4_deleg_state_t *",
783             "nfsv4cbinfo_t *" },
784         { "nfsv4", "cb-recall-start", 2, 2, "CB_RECALL4args *" },
785         { "nfsv4", "cb-recall-done", 0, 0, "rfs4_client_t *",
786             "conninfo_t *" },
787         { "nfsv4", "cb-recall-done", 1, 1, "rfs4_deleg_state_t *",
788             "nfsv4cbinfo_t *" },
789         { "nfsv4", "cb-recall-done", 2, 2, "CB_RECALL4res *" },
790
791         { "sysevent", "post", 0, 0, "evch_bind_t *", "syseventchaninfo_t *" },
792         { "sysevent", "post", 1, 1, "sysevent_impl_t *", "syseventinfo_t *" },
793
794         { "xpv", "add-to-physmap-end", 0, 0, "int" },
795         { "xpv", "add-to-physmap-start", 0, 0, "domid_t" },
796         { "xpv", "add-to-physmap-start", 1, 1, "uint_t" },
797         { "xpv", "add-to-physmap-start", 2, 2, "ulong_t" },
798         { "xpv", "add-to-physmap-start", 3, 3, "ulong_t" },
799         { "xpv", "decrease-reservation-end", 0, 0, "int" },
800         { "xpv", "decrease-reservation-start", 0, 0, "domid_t" },
801         { "xpv", "decrease-reservation-start", 1, 1, "ulong_t" },
802         { "xpv", "decrease-reservation-start", 2, 2, "uint_t" },
803         { "xpv", "decrease-reservation-start", 3, 3, "ulong_t *" },
804         { "xpv", "dom-create-start", 0, 0, "xen_domctl_t *" },
805         { "xpv", "dom-destroy-start", 0, 0, "domid_t" },
806         { "xpv", "dom-pause-start", 0, 0, "domid_t" },
807         { "xpv", "dom-unpause-start", 0, 0, "domid_t" },
808         { "xpv", "dom-create-end", 0, 0, "int" },
809         { "xpv", "dom-destroy-end", 0, 0, "int" },
810         { "xpv", "dom-pause-end", 0, 0, "int" },
811         { "xpv", "dom-unpause-end", 0, 0, "int" },
812         { "xpv", "evtchn-op-end", 0, 0, "int" },
813         { "xpv", "evtchn-op-start", 0, 0, "int" },
814         { "xpv", "evtchn-op-start", 1, 1, "void *" },
815         { "xpv", "increase-reservation-end", 0, 0, "int" },
816         { "xpv", "increase-reservation-start", 0, 0, "domid_t" },
817         { "xpv", "increase-reservation-start", 1, 1, "ulong_t" },
818         { "xpv", "increase-reservation-start", 2, 2, "uint_t" },
819         { "xpv", "increase-reservation-start", 3, 3, "ulong_t *" },
820         { "xpv", "mmap-end", 0, 0, "int" },
821         { "xpv", "mmap-entry", 0, 0, "ulong_t" },
822         { "xpv", "mmap-entry", 1, 1, "ulong_t" },
823         { "xpv", "mmap-entry", 2, 2, "ulong_t" },
824         { "xpv", "mmap-start", 0, 0, "domid_t" },
825         { "xpv", "mmap-start", 1, 1, "int" },
826         { "xpv", "mmap-start", 2, 2, "privcmd_mmap_entry_t *" },
827         { "xpv", "mmapbatch-end", 0, 0, "int" },
828         { "xpv", "mmapbatch-end", 1, 1, "struct seg *" },
829         { "xpv", "mmapbatch-end", 2, 2, "caddr_t" },
830         { "xpv", "mmapbatch-start", 0, 0, "domid_t" },
831         { "xpv", "mmapbatch-start", 1, 1, "int" },
832         { "xpv", "mmapbatch-start", 2, 2, "caddr_t" },
833         { "xpv", "mmu-ext-op-end", 0, 0, "int" },
834         { "xpv", "mmu-ext-op-start", 0, 0, "int" },
835         { "xpv", "mmu-ext-op-start", 1, 1, "struct mmuext_op *" },
836         { "xpv", "mmu-update-start", 0, 0, "int" },
837         { "xpv", "mmu-update-start", 1, 1, "int" },
838         { "xpv", "mmu-update-start", 2, 2, "mmu_update_t *" },
839         { "xpv", "mmu-update-end", 0, 0, "int" },
840         { "xpv", "populate-physmap-end", 0, 0, "int" },
841         { "xpv", "populate-physmap-start", 0, 0, "domid_t" },
842         { "xpv", "populate-physmap-start", 1, 1, "ulong_t" },
843         { "xpv", "populate-physmap-start", 2, 2, "ulong_t *" },
844         { "xpv", "set-memory-map-end", 0, 0, "int" },
845         { "xpv", "set-memory-map-start", 0, 0, "domid_t" },
846         { "xpv", "set-memory-map-start", 1, 1, "int" },
847         { "xpv", "set-memory-map-start", 2, 2, "struct xen_memory_map *" },
848         { "xpv", "setvcpucontext-end", 0, 0, "int" },
849         { "xpv", "setvcpucontext-start", 0, 0, "domid_t" },
850         { "xpv", "setvcpucontext-start", 1, 1, "vcpu_guest_context_t *" },
851         { NULL }
852 };
853
854 /*ARGSUSED*/
855 void
856 sdt_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc)
857 {
858         sdt_probe_t *sdp = parg;
859         int i;
860
861         desc->dtargd_native[0] = '\0';
862         desc->dtargd_xlate[0] = '\0';
863
864         for (i = 0; sdt_args[i].sda_provider != NULL; i++) {
865                 sdt_argdesc_t *a = &sdt_args[i];
866
867                 if (strcmp(sdp->sdp_provider->sdtp_name, a->sda_provider) != 0)
868                         continue;
869
870                 if (a->sda_name != NULL &&
871                     strcmp(sdp->sdp_name, a->sda_name) != 0)
872                         continue;
873
874                 if (desc->dtargd_ndx != a->sda_ndx)
875                         continue;
876
877                 if (a->sda_native != NULL)
878                         (void) strcpy(desc->dtargd_native, a->sda_native);
879
880                 if (a->sda_xlate != NULL)
881                         (void) strcpy(desc->dtargd_xlate, a->sda_xlate);
882
883                 desc->dtargd_mapping = a->sda_mapping;
884                 return;
885         }
886
887         desc->dtargd_ndx = DTRACE_ARGNONE;
888 }