xref: /onnv-gate/usr/src/uts/common/dtrace/sdt_subr.c (revision 5647:738702b10756)
10Sstevel@tonic-gate /*
20Sstevel@tonic-gate  * CDDL HEADER START
30Sstevel@tonic-gate  *
40Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
51738Sbmc  * Common Development and Distribution License (the "License").
61738Sbmc  * You may not use this file except in compliance with the License.
70Sstevel@tonic-gate  *
80Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
90Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
100Sstevel@tonic-gate  * See the License for the specific language governing permissions
110Sstevel@tonic-gate  * and limitations under the License.
120Sstevel@tonic-gate  *
130Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
140Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
150Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
160Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
170Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
180Sstevel@tonic-gate  *
190Sstevel@tonic-gate  * CDDL HEADER END
200Sstevel@tonic-gate  */
210Sstevel@tonic-gate /*
223490Seschrock  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
230Sstevel@tonic-gate  * Use is subject to license terms.
240Sstevel@tonic-gate  */
250Sstevel@tonic-gate 
260Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
270Sstevel@tonic-gate 
280Sstevel@tonic-gate #include <sys/sdt_impl.h>
290Sstevel@tonic-gate 
300Sstevel@tonic-gate static dtrace_pattr_t vtrace_attr = {
310Sstevel@tonic-gate { DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_ISA },
320Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
330Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
340Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
350Sstevel@tonic-gate { DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_ISA },
360Sstevel@tonic-gate };
370Sstevel@tonic-gate 
380Sstevel@tonic-gate static dtrace_pattr_t info_attr = {
390Sstevel@tonic-gate { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
400Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
410Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
420Sstevel@tonic-gate { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
430Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
440Sstevel@tonic-gate };
450Sstevel@tonic-gate 
460Sstevel@tonic-gate static dtrace_pattr_t fpu_attr = {
470Sstevel@tonic-gate { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
480Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
490Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
500Sstevel@tonic-gate { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_CPU },
510Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
520Sstevel@tonic-gate };
530Sstevel@tonic-gate 
541738Sbmc static dtrace_pattr_t fsinfo_attr = {
551738Sbmc { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
561738Sbmc { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
571738Sbmc { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
581738Sbmc { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
591738Sbmc { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
601738Sbmc };
611738Sbmc 
62*5647Ssamf static dtrace_pattr_t nfsv4_attr = {
63*5647Ssamf { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
64*5647Ssamf { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
65*5647Ssamf { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
66*5647Ssamf { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
67*5647Ssamf { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
68*5647Ssamf };
69*5647Ssamf 
700Sstevel@tonic-gate static dtrace_pattr_t stab_attr = {
710Sstevel@tonic-gate { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
720Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
730Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
740Sstevel@tonic-gate { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
750Sstevel@tonic-gate { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
760Sstevel@tonic-gate };
770Sstevel@tonic-gate 
780Sstevel@tonic-gate static dtrace_pattr_t sdt_attr = {
790Sstevel@tonic-gate { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
800Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
810Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
820Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
830Sstevel@tonic-gate { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
840Sstevel@tonic-gate };
850Sstevel@tonic-gate 
865084Sjohnlev static dtrace_pattr_t xpv_attr = {
875084Sjohnlev { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_PLATFORM },
885084Sjohnlev { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
895084Sjohnlev { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
905084Sjohnlev { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
915084Sjohnlev { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
925084Sjohnlev };
935084Sjohnlev 
940Sstevel@tonic-gate sdt_provider_t sdt_providers[] = {
950Sstevel@tonic-gate 	{ "vtrace", "__vtrace_", &vtrace_attr, 0 },
960Sstevel@tonic-gate 	{ "sysinfo", "__cpu_sysinfo_", &info_attr, 0 },
970Sstevel@tonic-gate 	{ "vminfo", "__cpu_vminfo_", &info_attr, 0 },
980Sstevel@tonic-gate 	{ "fpuinfo", "__fpuinfo_", &fpu_attr, 0 },
990Sstevel@tonic-gate 	{ "sched", "__sched_", &stab_attr, 0 },
1000Sstevel@tonic-gate 	{ "proc", "__proc_", &stab_attr, 0 },
1010Sstevel@tonic-gate 	{ "io", "__io_", &stab_attr, 0 },
1020Sstevel@tonic-gate 	{ "mib", "__mib_", &stab_attr, 0 },
1031738Sbmc 	{ "fsinfo", "__fsinfo_", &fsinfo_attr, 0 },
104*5647Ssamf 	{ "nfsv4", "__nfsv4_", &nfsv4_attr, 0 },
1055084Sjohnlev 	{ "xpv", "__xpv_", &xpv_attr, 0 },
1063490Seschrock 	{ "sysevent", "__sysevent_", &stab_attr, 0 },
1070Sstevel@tonic-gate 	{ "sdt", NULL, &sdt_attr, 0 },
1080Sstevel@tonic-gate 	{ NULL }
1090Sstevel@tonic-gate };
1100Sstevel@tonic-gate 
1110Sstevel@tonic-gate sdt_argdesc_t sdt_args[] = {
1120Sstevel@tonic-gate 	{ "sched", "wakeup", 0, 0, "kthread_t *", "lwpsinfo_t *" },
1130Sstevel@tonic-gate 	{ "sched", "wakeup", 1, 0, "kthread_t *", "psinfo_t *" },
1140Sstevel@tonic-gate 	{ "sched", "dequeue", 0, 0, "kthread_t *", "lwpsinfo_t *" },
1150Sstevel@tonic-gate 	{ "sched", "dequeue", 1, 0, "kthread_t *", "psinfo_t *" },
1160Sstevel@tonic-gate 	{ "sched", "dequeue", 2, 1, "disp_t *", "cpuinfo_t *" },
1170Sstevel@tonic-gate 	{ "sched", "enqueue", 0, 0, "kthread_t *", "lwpsinfo_t *" },
1180Sstevel@tonic-gate 	{ "sched", "enqueue", 1, 0, "kthread_t *", "psinfo_t *" },
1190Sstevel@tonic-gate 	{ "sched", "enqueue", 2, 1, "disp_t *", "cpuinfo_t *" },
1200Sstevel@tonic-gate 	{ "sched", "enqueue", 3, 2, "int" },
1210Sstevel@tonic-gate 	{ "sched", "off-cpu", 0, 0, "kthread_t *", "lwpsinfo_t *" },
1220Sstevel@tonic-gate 	{ "sched", "off-cpu", 1, 0, "kthread_t *", "psinfo_t *" },
1230Sstevel@tonic-gate 	{ "sched", "tick", 0, 0, "kthread_t *", "lwpsinfo_t *" },
1240Sstevel@tonic-gate 	{ "sched", "tick", 1, 0, "kthread_t *", "psinfo_t *" },
1250Sstevel@tonic-gate 	{ "sched", "change-pri", 0, 0, "kthread_t *", "lwpsinfo_t *" },
1260Sstevel@tonic-gate 	{ "sched", "change-pri", 1, 0, "kthread_t *", "psinfo_t *" },
1270Sstevel@tonic-gate 	{ "sched", "change-pri", 2, 1, "pri_t" },
1280Sstevel@tonic-gate 	{ "sched", "schedctl-nopreempt", 0, 0, "kthread_t *", "lwpsinfo_t *" },
1290Sstevel@tonic-gate 	{ "sched", "schedctl-nopreempt", 1, 0, "kthread_t *", "psinfo_t *" },
1300Sstevel@tonic-gate 	{ "sched", "schedctl-nopreempt", 2, 1, "int" },
1310Sstevel@tonic-gate 	{ "sched", "schedctl-preempt", 0, 0, "kthread_t *", "lwpsinfo_t *" },
1320Sstevel@tonic-gate 	{ "sched", "schedctl-preempt", 1, 0, "kthread_t *", "psinfo_t *" },
133191Sahl 	{ "sched", "schedctl-yield", 0, 0, "int" },
134191Sahl 	{ "sched", "surrender", 0, 0, "kthread_t *", "lwpsinfo_t *" },
135191Sahl 	{ "sched", "surrender", 1, 0, "kthread_t *", "psinfo_t *" },
1363792Sakolb 	{ "sched", "cpucaps-sleep", 0, 0, "kthread_t *", "lwpsinfo_t *" },
1373792Sakolb 	{ "sched", "cpucaps-sleep", 1, 0, "kthread_t *", "psinfo_t *" },
1383792Sakolb 	{ "sched", "cpucaps-wakeup", 0, 0, "kthread_t *", "lwpsinfo_t *" },
1393792Sakolb 	{ "sched", "cpucaps-wakeup", 1, 0, "kthread_t *", "psinfo_t *" },
140*5647Ssamf 
1410Sstevel@tonic-gate 	{ "proc", "create", 0, 0, "proc_t *", "psinfo_t *" },
1420Sstevel@tonic-gate 	{ "proc", "exec", 0, 0, "string" },
1430Sstevel@tonic-gate 	{ "proc", "exec-failure", 0, 0, "int" },
1440Sstevel@tonic-gate 	{ "proc", "exit", 0, 0, "int" },
1450Sstevel@tonic-gate 	{ "proc", "fault", 0, 0, "int" },
1460Sstevel@tonic-gate 	{ "proc", "fault", 1, 1, "siginfo_t *" },
1470Sstevel@tonic-gate 	{ "proc", "lwp-create", 0, 0, "kthread_t *", "lwpsinfo_t *" },
1480Sstevel@tonic-gate 	{ "proc", "lwp-create", 1, 0, "kthread_t *", "psinfo_t *" },
1490Sstevel@tonic-gate 	{ "proc", "signal-clear", 0, 0, "int" },
1500Sstevel@tonic-gate 	{ "proc", "signal-clear", 1, 1, "siginfo_t *" },
1510Sstevel@tonic-gate 	{ "proc", "signal-discard", 0, 0, "kthread_t *", "lwpsinfo_t *" },
1520Sstevel@tonic-gate 	{ "proc", "signal-discard", 1, 1, "proc_t *", "psinfo_t *" },
1530Sstevel@tonic-gate 	{ "proc", "signal-discard", 2, 2, "int" },
1540Sstevel@tonic-gate 	{ "proc", "signal-handle", 0, 0, "int" },
1550Sstevel@tonic-gate 	{ "proc", "signal-handle", 1, 1, "siginfo_t *" },
1560Sstevel@tonic-gate 	{ "proc", "signal-handle", 2, 2, "void (*)(void)" },
1570Sstevel@tonic-gate 	{ "proc", "signal-send", 0, 0, "kthread_t *", "lwpsinfo_t *" },
1580Sstevel@tonic-gate 	{ "proc", "signal-send", 1, 0, "kthread_t *", "psinfo_t *" },
1590Sstevel@tonic-gate 	{ "proc", "signal-send", 2, 1, "int" },
160*5647Ssamf 
1610Sstevel@tonic-gate 	{ "io", "start", 0, 0, "buf_t *", "bufinfo_t *" },
1620Sstevel@tonic-gate 	{ "io", "start", 1, 0, "buf_t *", "devinfo_t *" },
1630Sstevel@tonic-gate 	{ "io", "start", 2, 0, "buf_t *", "fileinfo_t *" },
1640Sstevel@tonic-gate 	{ "io", "done", 0, 0, "buf_t *", "bufinfo_t *" },
1650Sstevel@tonic-gate 	{ "io", "done", 1, 0, "buf_t *", "devinfo_t *" },
1660Sstevel@tonic-gate 	{ "io", "done", 2, 0, "buf_t *", "fileinfo_t *" },
1670Sstevel@tonic-gate 	{ "io", "wait-start", 0, 0, "buf_t *", "bufinfo_t *" },
1680Sstevel@tonic-gate 	{ "io", "wait-start", 1, 0, "buf_t *", "devinfo_t *" },
1690Sstevel@tonic-gate 	{ "io", "wait-start", 2, 0, "buf_t *", "fileinfo_t *" },
1700Sstevel@tonic-gate 	{ "io", "wait-done", 0, 0, "buf_t *", "bufinfo_t *" },
1710Sstevel@tonic-gate 	{ "io", "wait-done", 1, 0, "buf_t *", "devinfo_t *" },
1720Sstevel@tonic-gate 	{ "io", "wait-done", 2, 0, "buf_t *", "fileinfo_t *" },
173*5647Ssamf 
1740Sstevel@tonic-gate 	{ "mib", NULL, 0, 0, "int" },
175*5647Ssamf 
1761738Sbmc 	{ "fsinfo", NULL, 0, 0, "vnode_t *", "fileinfo_t *" },
1771738Sbmc 	{ "fsinfo", NULL, 1, 1, "int", "int" },
178*5647Ssamf 
179*5647Ssamf 	{ "nfsv4", "null-start", 0, 0, "struct svc_req *", "conninfo_t *" },
180*5647Ssamf 	{ "nfsv4", "null-done", 0, 0, "struct svc_req *", "conninfo_t *" },
181*5647Ssamf 	{ "nfsv4", "compound-start", 0, 0, "struct compound_state *",
182*5647Ssamf 	    "conninfo_t *" },
183*5647Ssamf 	{ "nfsv4", "compound-start", 1, 0, "struct compound_state *",
184*5647Ssamf 	    "nfsv4opinfo_t *" },
185*5647Ssamf 	{ "nfsv4", "compound-start", 2, 1, "COMPOUND4args *" },
186*5647Ssamf 	{ "nfsv4", "compound-done", 0, 0, "struct compound_state *",
187*5647Ssamf 	    "conninfo_t *" },
188*5647Ssamf 	{ "nfsv4", "compound-done", 1, 0, "struct compound_state *",
189*5647Ssamf 	    "nfsv4opinfo_t *" },
190*5647Ssamf 	{ "nfsv4", "compound-done", 2, 1, "COMPOUND4res *" },
191*5647Ssamf 	{ "nfsv4", "op-access-start", 0, 0, "struct compound_state *",
192*5647Ssamf 	    "conninfo_t *"},
193*5647Ssamf 	{ "nfsv4", "op-access-start", 1, 0, "struct compound_state *",
194*5647Ssamf 	    "nfsv4opinfo_t *" },
195*5647Ssamf 	{ "nfsv4", "op-access-start", 2, 1, "ACCESS4args *" },
196*5647Ssamf 	{ "nfsv4", "op-access-done", 0, 0, "struct compound_state *",
197*5647Ssamf 	    "conninfo_t *" },
198*5647Ssamf 	{ "nfsv4", "op-access-done", 1, 0, "struct compound_state *",
199*5647Ssamf 	    "nfsv4opinfo_t *" },
200*5647Ssamf 	{ "nfsv4", "op-access-done", 2, 1, "ACCESS4res *" },
201*5647Ssamf 	{ "nfsv4", "op-close-start", 0, 0, "struct compound_state *",
202*5647Ssamf 	    "conninfo_t *" },
203*5647Ssamf 	{ "nfsv4", "op-close-start", 1, 0, "struct compound_state *",
204*5647Ssamf 	    "nfsv4opinfo_t *" },
205*5647Ssamf 	{ "nfsv4", "op-close-start", 2, 1, "CLOSE4args *" },
206*5647Ssamf 	{ "nfsv4", "op-close-done", 0, 0, "struct compound_state *",
207*5647Ssamf 	    "conninfo_t *" },
208*5647Ssamf 	{ "nfsv4", "op-close-done", 1, 0, "struct compound_state *",
209*5647Ssamf 	    "nfsv4opinfo_t *" },
210*5647Ssamf 	{ "nfsv4", "op-close-done", 2, 1, "CLOSE4res *" },
211*5647Ssamf 	{ "nfsv4", "op-commit-start", 0, 0, "struct compound_state *",
212*5647Ssamf 	    "conninfo_t *" },
213*5647Ssamf 	{ "nfsv4", "op-commit-start", 1, 0, "struct compound_state *",
214*5647Ssamf 	    "nfsv4opinfo_t *" },
215*5647Ssamf 	{ "nfsv4", "op-commit-start", 2, 1, "COMMIT4args *" },
216*5647Ssamf 	{ "nfsv4", "op-commit-done", 0, 0, "struct compound_state *",
217*5647Ssamf 	    "conninfo_t *" },
218*5647Ssamf 	{ "nfsv4", "op-commit-done", 1, 0, "struct compound_state *",
219*5647Ssamf 	    "nfsv4opinfo_t *" },
220*5647Ssamf 	{ "nfsv4", "op-commit-done", 2, 1, "COMMIT4res *" },
221*5647Ssamf 	{ "nfsv4", "op-create-start", 0, 0, "struct compound_state *",
222*5647Ssamf 	    "conninfo_t *" },
223*5647Ssamf 	{ "nfsv4", "op-create-start", 1, 0, "struct compound_state *",
224*5647Ssamf 	    "nfsv4opinfo_t *" },
225*5647Ssamf 	{ "nfsv4", "op-create-start", 2, 1, "CREATE4args *" },
226*5647Ssamf 	{ "nfsv4", "op-create-done", 0, 0, "struct compound_state *",
227*5647Ssamf 	    "conninfo_t *" },
228*5647Ssamf 	{ "nfsv4", "op-create-done", 1, 0, "struct compound_state *",
229*5647Ssamf 	    "nfsv4opinfo_t *" },
230*5647Ssamf 	{ "nfsv4", "op-create-done", 2, 1, "CREATE4res *" },
231*5647Ssamf 	{ "nfsv4", "op-delegpurge-start", 0, 0, "struct compound_state *",
232*5647Ssamf 	    "conninfo_t *" },
233*5647Ssamf 	{ "nfsv4", "op-delegpurge-start", 1, 0, "struct compound_state *",
234*5647Ssamf 	    "nfsv4opinfo_t *" },
235*5647Ssamf 	{ "nfsv4", "op-delegpurge-start", 2, 1, "DELEGPURGE4args *" },
236*5647Ssamf 	{ "nfsv4", "op-delegpurge-done", 0, 0, "struct compound_state *",
237*5647Ssamf 	    "conninfo_t *" },
238*5647Ssamf 	{ "nfsv4", "op-delegpurge-done", 1, 0, "struct compound_state *",
239*5647Ssamf 	    "nfsv4opinfo_t *" },
240*5647Ssamf 	{ "nfsv4", "op-delegpurge-done", 2, 1, "DELEGPURGE4res *" },
241*5647Ssamf 	{ "nfsv4", "op-delegreturn-start", 0, 0, "struct compound_state *",
242*5647Ssamf 	    "conninfo_t *" },
243*5647Ssamf 	{ "nfsv4", "op-delegreturn-start", 1, 0, "struct compound_state *",
244*5647Ssamf 	    "nfsv4opinfo_t *" },
245*5647Ssamf 	{ "nfsv4", "op-delegreturn-start", 2, 1, "DELEGRETURN4args *" },
246*5647Ssamf 	{ "nfsv4", "op-delegreturn-done", 0, 0, "struct compound_state *",
247*5647Ssamf 	    "conninfo_t *" },
248*5647Ssamf 	{ "nfsv4", "op-delegreturn-done", 1, 0, "struct compound_state *",
249*5647Ssamf 	    "nfsv4opinfo_t *" },
250*5647Ssamf 	{ "nfsv4", "op-delegreturn-done", 2, 1, "DELEGRETURN4res *" },
251*5647Ssamf 	{ "nfsv4", "op-getattr-start", 0, 0, "struct compound_state *",
252*5647Ssamf 	    "conninfo_t *" },
253*5647Ssamf 	{ "nfsv4", "op-getattr-start", 1, 0, "struct compound_state *",
254*5647Ssamf 	    "nfsv4opinfo_t *" },
255*5647Ssamf 	{ "nfsv4", "op-getattr-start", 2, 1, "GETATTR4args *" },
256*5647Ssamf 	{ "nfsv4", "op-getattr-done", 0, 0, "struct compound_state *",
257*5647Ssamf 	    "conninfo_t *" },
258*5647Ssamf 	{ "nfsv4", "op-getattr-done", 1, 0, "struct compound_state *",
259*5647Ssamf 	    "nfsv4opinfo_t *" },
260*5647Ssamf 	{ "nfsv4", "op-getattr-done", 2, 1, "GETATTR4res *" },
261*5647Ssamf 	{ "nfsv4", "op-getfh-start", 0, 0, "struct compound_state *",
262*5647Ssamf 	    "conninfo_t *" },
263*5647Ssamf 	{ "nfsv4", "op-getfh-start", 1, 0, "struct compound_state *",
264*5647Ssamf 	    "nfsv4opinfo_t *" },
265*5647Ssamf 	{ "nfsv4", "op-getfh-done", 0, 0, "struct compound_state *",
266*5647Ssamf 	    "conninfo_t *" },
267*5647Ssamf 	{ "nfsv4", "op-getfh-done", 1, 0, "struct compound_state *",
268*5647Ssamf 	    "nfsv4opinfo_t *" },
269*5647Ssamf 	{ "nfsv4", "op-getfh-done", 2, 1, "GETFH4res *" },
270*5647Ssamf 	{ "nfsv4", "op-link-start", 0, 0, "struct compound_state *",
271*5647Ssamf 	    "conninfo_t *" },
272*5647Ssamf 	{ "nfsv4", "op-link-start", 1, 0, "struct compound_state *",
273*5647Ssamf 	    "nfsv4opinfo_t *" },
274*5647Ssamf 	{ "nfsv4", "op-link-start", 2, 1, "LINK4args *" },
275*5647Ssamf 	{ "nfsv4", "op-link-done", 0, 0, "struct compound_state *",
276*5647Ssamf 	    "conninfo_t *" },
277*5647Ssamf 	{ "nfsv4", "op-link-done", 1, 0, "struct compound_state *",
278*5647Ssamf 	    "nfsv4opinfo_t *" },
279*5647Ssamf 	{ "nfsv4", "op-link-done", 2, 1, "LINK4res *" },
280*5647Ssamf 	{ "nfsv4", "op-lock-start", 0, 0, "struct compound_state *",
281*5647Ssamf 	    "conninfo_t *" },
282*5647Ssamf 	{ "nfsv4", "op-lock-start", 1, 0, "struct compound_state *",
283*5647Ssamf 	    "nfsv4opinfo_t *" },
284*5647Ssamf 	{ "nfsv4", "op-lock-start", 2, 1, "LOCK4args *" },
285*5647Ssamf 	{ "nfsv4", "op-lock-done", 0, 0, "struct compound_state *",
286*5647Ssamf 	    "conninfo_t *" },
287*5647Ssamf 	{ "nfsv4", "op-lock-done", 1, 0, "struct compound_state *",
288*5647Ssamf 	    "nfsv4opinfo_t *" },
289*5647Ssamf 	{ "nfsv4", "op-lock-done", 2, 1, "LOCK4res *" },
290*5647Ssamf 	{ "nfsv4", "op-lockt-start", 0, 0, "struct compound_state *",
291*5647Ssamf 	    "conninfo_t *" },
292*5647Ssamf 	{ "nfsv4", "op-lockt-start", 1, 0, "struct compound_state *",
293*5647Ssamf 	    "nfsv4opinfo_t *" },
294*5647Ssamf 	{ "nfsv4", "op-lockt-start", 2, 1, "LOCKT4args *" },
295*5647Ssamf 	{ "nfsv4", "op-lockt-done", 0, 0, "struct compound_state *",
296*5647Ssamf 	    "conninfo_t *" },
297*5647Ssamf 	{ "nfsv4", "op-lockt-done", 1, 0, "struct compound_state *",
298*5647Ssamf 	    "nfsv4opinfo_t *" },
299*5647Ssamf 	{ "nfsv4", "op-lockt-done", 2, 1, "LOCKT4res *" },
300*5647Ssamf 	{ "nfsv4", "op-locku-start", 0, 0, "struct compound_state *",
301*5647Ssamf 	    "conninfo_t *" },
302*5647Ssamf 	{ "nfsv4", "op-locku-start", 1, 0, "struct compound_state *",
303*5647Ssamf 	    "nfsv4opinfo_t *" },
304*5647Ssamf 	{ "nfsv4", "op-locku-start", 2, 1, "LOCKU4args *" },
305*5647Ssamf 	{ "nfsv4", "op-locku-done", 0, 0, "struct compound_state *",
306*5647Ssamf 	    "conninfo_t *" },
307*5647Ssamf 	{ "nfsv4", "op-locku-done", 1, 0, "struct compound_state *",
308*5647Ssamf 	    "nfsv4opinfo_t *" },
309*5647Ssamf 	{ "nfsv4", "op-locku-done", 2, 1, "LOCKU4res *" },
310*5647Ssamf 	{ "nfsv4", "op-lookup-start", 0, 0, "struct compound_state *",
311*5647Ssamf 	    "conninfo_t *" },
312*5647Ssamf 	{ "nfsv4", "op-lookup-start", 1, 0, "struct compound_state *",
313*5647Ssamf 	    "nfsv4opinfo_t *" },
314*5647Ssamf 	{ "nfsv4", "op-lookup-start", 2, 1, "LOOKUP4args *" },
315*5647Ssamf 	{ "nfsv4", "op-lookup-done", 0, 0, "struct compound_state *",
316*5647Ssamf 	    "conninfo_t *" },
317*5647Ssamf 	{ "nfsv4", "op-lookup-done", 1, 0, "struct compound_state *",
318*5647Ssamf 	    "nfsv4opinfo_t *" },
319*5647Ssamf 	{ "nfsv4", "op-lookup-done", 2, 1, "LOOKUP4res *" },
320*5647Ssamf 	{ "nfsv4", "op-lookupp-start", 0, 0, "struct compound_state *",
321*5647Ssamf 	    "conninfo_t *" },
322*5647Ssamf 	{ "nfsv4", "op-lookupp-start", 1, 0, "struct compound_state *",
323*5647Ssamf 	    "nfsv4opinfo_t *" },
324*5647Ssamf 	{ "nfsv4", "op-lookupp-done", 0, 0, "struct compound_state *",
325*5647Ssamf 	    "conninfo_t *" },
326*5647Ssamf 	{ "nfsv4", "op-lookupp-done", 1, 0, "struct compound_state *",
327*5647Ssamf 	    "nfsv4opinfo_t *" },
328*5647Ssamf 	{ "nfsv4", "op-lookupp-done", 2, 1, "LOOKUPP4res *" },
329*5647Ssamf 	{ "nfsv4", "op-nverify-start", 0, 0, "struct compound_state *",
330*5647Ssamf 	    "conninfo_t *" },
331*5647Ssamf 	{ "nfsv4", "op-nverify-start", 1, 0, "struct compound_state *",
332*5647Ssamf 	    "nfsv4opinfo_t *" },
333*5647Ssamf 	{ "nfsv4", "op-nverify-start", 2, 1, "NVERIFY4args *" },
334*5647Ssamf 	{ "nfsv4", "op-nverify-done", 0, 0, "struct compound_state *",
335*5647Ssamf 	    "conninfo_t *" },
336*5647Ssamf 	{ "nfsv4", "op-nverify-done", 1, 0, "struct compound_state *",
337*5647Ssamf 	    "nfsv4opinfo_t *" },
338*5647Ssamf 	{ "nfsv4", "op-nverify-done", 2, 1, "NVERIFY4res *" },
339*5647Ssamf 	{ "nfsv4", "op-open-start", 0, 0, "struct compound_state *",
340*5647Ssamf 	    "conninfo_t *" },
341*5647Ssamf 	{ "nfsv4", "op-open-start", 1, 0, "struct compound_state *",
342*5647Ssamf 	    "nfsv4opinfo_t *" },
343*5647Ssamf 	{ "nfsv4", "op-open-start", 2, 1, "OPEN4args *" },
344*5647Ssamf 	{ "nfsv4", "op-open-done", 0, 0, "struct compound_state *",
345*5647Ssamf 	    "conninfo_t *" },
346*5647Ssamf 	{ "nfsv4", "op-open-done", 1, 0, "struct compound_state *",
347*5647Ssamf 	    "nfsv4opinfo_t *" },
348*5647Ssamf 	{ "nfsv4", "op-open-done", 2, 1, "OPEN4res *" },
349*5647Ssamf 	{ "nfsv4", "op-open-confirm-start", 0, 0, "struct compound_state *",
350*5647Ssamf 	    "conninfo_t *" },
351*5647Ssamf 	{ "nfsv4", "op-open-confirm-start", 1, 0, "struct compound_state *",
352*5647Ssamf 	    "nfsv4opinfo_t *" },
353*5647Ssamf 	{ "nfsv4", "op-open-confirm-start", 2, 1, "OPEN_CONFIRM4args *" },
354*5647Ssamf 	{ "nfsv4", "op-open-confirm-done", 0, 0, "struct compound_state *",
355*5647Ssamf 	    "conninfo_t *" },
356*5647Ssamf 	{ "nfsv4", "op-open-confirm-done", 1, 0, "struct compound_state *",
357*5647Ssamf 	    "nfsv4opinfo_t *" },
358*5647Ssamf 	{ "nfsv4", "op-open-confirm-done", 2, 1, "OPEN_CONFIRM4res *" },
359*5647Ssamf 	{ "nfsv4", "op-open-downgrade-start", 0, 0, "struct compound_state *",
360*5647Ssamf 	    "conninfo_t *" },
361*5647Ssamf 	{ "nfsv4", "op-open-downgrade-start", 1, 0, "struct compound_state *",
362*5647Ssamf 	    "nfsv4opinfo_t *" },
363*5647Ssamf 	{ "nfsv4", "op-open-downgrade-start", 2, 1, "OPEN_DOWNGRADE4args *" },
364*5647Ssamf 	{ "nfsv4", "op-open-downgrade-done", 0, 0, "struct compound_state *",
365*5647Ssamf 	    "conninfo_t *" },
366*5647Ssamf 	{ "nfsv4", "op-open-downgrade-done", 1, 0, "struct compound_state *",
367*5647Ssamf 	    "nfsv4opinfo_t *" },
368*5647Ssamf 	{ "nfsv4", "op-open-downgrade-done", 2, 1, "OPEN_DOWNGRADE4res *" },
369*5647Ssamf 	{ "nfsv4", "op-openattr-start", 0, 0, "struct compound_state *",
370*5647Ssamf 	    "conninfo_t *" },
371*5647Ssamf 	{ "nfsv4", "op-openattr-start", 1, 0, "struct compound_state *",
372*5647Ssamf 	    "nfsv4opinfo_t *" },
373*5647Ssamf 	{ "nfsv4", "op-openattr-start", 2, 1, "OPENATTR4args *" },
374*5647Ssamf 	{ "nfsv4", "op-openattr-done", 0, 0, "struct compound_state *",
375*5647Ssamf 	    "conninfo_t *" },
376*5647Ssamf 	{ "nfsv4", "op-openattr-done", 1, 0, "struct compound_state *",
377*5647Ssamf 	    "nfsv4opinfo_t *" },
378*5647Ssamf 	{ "nfsv4", "op-openattr-done", 2, 1, "OPENATTR4res *" },
379*5647Ssamf 	{ "nfsv4", "op-putfh-start", 0, 0, "struct compound_state *",
380*5647Ssamf 	    "conninfo_t *" },
381*5647Ssamf 	{ "nfsv4", "op-putfh-start", 1, 0, "struct compound_state *",
382*5647Ssamf 	    "nfsv4opinfo_t *" },
383*5647Ssamf 	{ "nfsv4", "op-putfh-start", 2, 1, "PUTFH4args *" },
384*5647Ssamf 	{ "nfsv4", "op-putfh-done", 0, 0, "struct compound_state *",
385*5647Ssamf 	    "conninfo_t *" },
386*5647Ssamf 	{ "nfsv4", "op-putfh-done", 1, 0, "struct compound_state *",
387*5647Ssamf 	    "nfsv4opinfo_t *" },
388*5647Ssamf 	{ "nfsv4", "op-putfh-done", 2, 1, "PUTFH4res *" },
389*5647Ssamf 	{ "nfsv4", "op-putpubfh-start", 0, 0, "struct compound_state *",
390*5647Ssamf 	    "conninfo_t *" },
391*5647Ssamf 	{ "nfsv4", "op-putpubfh-start", 1, 0, "struct compound_state *",
392*5647Ssamf 	    "nfsv4opinfo_t *" },
393*5647Ssamf 	{ "nfsv4", "op-putpubfh-done", 0, 0, "struct compound_state *",
394*5647Ssamf 	    "conninfo_t *" },
395*5647Ssamf 	{ "nfsv4", "op-putpubfh-done", 1, 0, "struct compound_state *",
396*5647Ssamf 	    "nfsv4opinfo_t *" },
397*5647Ssamf 	{ "nfsv4", "op-putpubfh-done", 2, 1, "PUTPUBFH4res *" },
398*5647Ssamf 	{ "nfsv4", "op-putrootfh-start", 0, 0, "struct compound_state *",
399*5647Ssamf 	    "conninfo_t *" },
400*5647Ssamf 	{ "nfsv4", "op-putrootfh-start", 1, 0, "struct compound_state *",
401*5647Ssamf 	    "nfsv4opinfo_t *" },
402*5647Ssamf 	{ "nfsv4", "op-putrootfh-done", 0, 0, "struct compound_state *",
403*5647Ssamf 	    "conninfo_t *" },
404*5647Ssamf 	{ "nfsv4", "op-putrootfh-done", 1, 0, "struct compound_state *",
405*5647Ssamf 	    "nfsv4opinfo_t *" },
406*5647Ssamf 	{ "nfsv4", "op-putrootfh-done", 2, 1, "PUTROOTFH4res *" },
407*5647Ssamf 	{ "nfsv4", "op-read-start", 0, 0, "struct compound_state *",
408*5647Ssamf 	    "conninfo_t *" },
409*5647Ssamf 	{ "nfsv4", "op-read-start", 1, 0, "struct compound_state *",
410*5647Ssamf 	    "nfsv4opinfo_t *" },
411*5647Ssamf 	{ "nfsv4", "op-read-start", 2, 1, "READ4args *" },
412*5647Ssamf 	{ "nfsv4", "op-read-done", 0, 0, "struct compound_state *",
413*5647Ssamf 	    "conninfo_t *" },
414*5647Ssamf 	{ "nfsv4", "op-read-done", 1, 0, "struct compound_state *",
415*5647Ssamf 	    "nfsv4opinfo_t *" },
416*5647Ssamf 	{ "nfsv4", "op-read-done", 2, 1, "READ4res *" },
417*5647Ssamf 	{ "nfsv4", "op-readdir-start", 0, 0, "struct compound_state *",
418*5647Ssamf 	    "conninfo_t *" },
419*5647Ssamf 	{ "nfsv4", "op-readdir-start", 1, 0, "struct compound_state *",
420*5647Ssamf 	    "nfsv4opinfo_t *" },
421*5647Ssamf 	{ "nfsv4", "op-readdir-start", 2, 1, "READDIR4args *" },
422*5647Ssamf 	{ "nfsv4", "op-readdir-done", 0, 0, "struct compound_state *",
423*5647Ssamf 	    "conninfo_t *" },
424*5647Ssamf 	{ "nfsv4", "op-readdir-done", 1, 0, "struct compound_state *",
425*5647Ssamf 	    "nfsv4opinfo_t *" },
426*5647Ssamf 	{ "nfsv4", "op-readdir-done", 2, 1, "READDIR4res *" },
427*5647Ssamf 	{ "nfsv4", "op-readlink-start", 0, 0, "struct compound_state *",
428*5647Ssamf 	    "conninfo_t *" },
429*5647Ssamf 	{ "nfsv4", "op-readlink-start", 1, 0, "struct compound_state *",
430*5647Ssamf 	    "nfsv4opinfo_t *" },
431*5647Ssamf 	{ "nfsv4", "op-readlink-done", 0, 0, "struct compound_state *",
432*5647Ssamf 	    "conninfo_t *" },
433*5647Ssamf 	{ "nfsv4", "op-readlink-done", 1, 0, "struct compound_state *",
434*5647Ssamf 	    "nfsv4opinfo_t *" },
435*5647Ssamf 	{ "nfsv4", "op-readlink-done", 2, 1, "READLINK4res *" },
436*5647Ssamf 	{ "nfsv4", "op-release-lockowner-start", 0, 0,
437*5647Ssamf 	    "struct compound_state *", "conninfo_t *" },
438*5647Ssamf 	{ "nfsv4", "op-release-lockowner-start", 1, 0,
439*5647Ssamf 	    "struct compound_state *", "nfsv4opinfo_t *" },
440*5647Ssamf 	{ "nfsv4", "op-release-lockowner-start", 2, 1,
441*5647Ssamf 	    "RELEASE_LOCKOWNER4args *" },
442*5647Ssamf 	{ "nfsv4", "op-release-lockowner-done", 0, 0,
443*5647Ssamf 	    "struct compound_state *", "conninfo_t *" },
444*5647Ssamf 	{ "nfsv4", "op-release-lockowner-done", 1, 0,
445*5647Ssamf 	    "struct compound_state *", "nfsv4opinfo_t *" },
446*5647Ssamf 	{ "nfsv4", "op-release-lockowner-done", 2, 1,
447*5647Ssamf 	    "RELEASE_LOCKOWNER4res *" },
448*5647Ssamf 	{ "nfsv4", "op-remove-start", 0, 0, "struct compound_state *",
449*5647Ssamf 	    "conninfo_t *" },
450*5647Ssamf 	{ "nfsv4", "op-remove-start", 1, 0, "struct compound_state *",
451*5647Ssamf 	    "nfsv4opinfo_t *" },
452*5647Ssamf 	{ "nfsv4", "op-remove-start", 2, 1, "REMOVE4args *" },
453*5647Ssamf 	{ "nfsv4", "op-remove-done", 0, 0, "struct compound_state *",
454*5647Ssamf 	    "conninfo_t *" },
455*5647Ssamf 	{ "nfsv4", "op-remove-done", 1, 0, "struct compound_state *",
456*5647Ssamf 	    "nfsv4opinfo_t *" },
457*5647Ssamf 	{ "nfsv4", "op-remove-done", 2, 1, "REMOVE4res *" },
458*5647Ssamf 	{ "nfsv4", "op-rename-start", 0, 0, "struct compound_state *",
459*5647Ssamf 	    "conninfo_t *" },
460*5647Ssamf 	{ "nfsv4", "op-rename-start", 1, 0, "struct compound_state *",
461*5647Ssamf 	    "nfsv4opinfo_t *" },
462*5647Ssamf 	{ "nfsv4", "op-rename-start", 2, 1, "RENAME4args *" },
463*5647Ssamf 	{ "nfsv4", "op-rename-done", 0, 0, "struct compound_state *",
464*5647Ssamf 	    "conninfo_t *" },
465*5647Ssamf 	{ "nfsv4", "op-rename-done", 1, 0, "struct compound_state *",
466*5647Ssamf 	    "nfsv4opinfo_t *" },
467*5647Ssamf 	{ "nfsv4", "op-rename-done", 2, 1, "RENAME4res *" },
468*5647Ssamf 	{ "nfsv4", "op-renew-start", 0, 0, "struct compound_state *",
469*5647Ssamf 	    "conninfo_t *" },
470*5647Ssamf 	{ "nfsv4", "op-renew-start", 1, 0, "struct compound_state *",
471*5647Ssamf 	    "nfsv4opinfo_t *" },
472*5647Ssamf 	{ "nfsv4", "op-renew-start", 2, 1, "RENEW4args *" },
473*5647Ssamf 	{ "nfsv4", "op-renew-done", 0, 0, "struct compound_state *",
474*5647Ssamf 	    "conninfo_t *" },
475*5647Ssamf 	{ "nfsv4", "op-renew-done", 1, 0, "struct compound_state *",
476*5647Ssamf 	    "nfsv4opinfo_t *" },
477*5647Ssamf 	{ "nfsv4", "op-renew-done", 2, 1, "RENEW4res *" },
478*5647Ssamf 	{ "nfsv4", "op-restorefh-start", 0, 0, "struct compound_state *",
479*5647Ssamf 	    "conninfo_t *" },
480*5647Ssamf 	{ "nfsv4", "op-restorefh-start", 1, 0, "struct compound_state *",
481*5647Ssamf 	    "nfsv4opinfo_t *" },
482*5647Ssamf 	{ "nfsv4", "op-restorefh-done", 0, 0, "struct compound_state *",
483*5647Ssamf 	    "conninfo_t *" },
484*5647Ssamf 	{ "nfsv4", "op-restorefh-done", 1, 0, "struct compound_state *",
485*5647Ssamf 	    "nfsv4opinfo_t *" },
486*5647Ssamf 	{ "nfsv4", "op-restorefh-done", 2, 1, "RESTOREFH4res *" },
487*5647Ssamf 	{ "nfsv4", "op-savefh-start", 0, 0, "struct compound_state *",
488*5647Ssamf 	    "conninfo_t *" },
489*5647Ssamf 	{ "nfsv4", "op-savefh-start", 1, 0, "struct compound_state *",
490*5647Ssamf 	    "nfsv4opinfo_t *" },
491*5647Ssamf 	{ "nfsv4", "op-savefh-done", 0, 0, "struct compound_state *",
492*5647Ssamf 	    "conninfo_t *" },
493*5647Ssamf 	{ "nfsv4", "op-savefh-done", 1, 0, "struct compound_state *",
494*5647Ssamf 	    "nfsv4opinfo_t *" },
495*5647Ssamf 	{ "nfsv4", "op-savefh-done", 2, 1, "SAVEFH4res *" },
496*5647Ssamf 	{ "nfsv4", "op-secinfo-start", 0, 0, "struct compound_state *",
497*5647Ssamf 	    "conninfo_t *" },
498*5647Ssamf 	{ "nfsv4", "op-secinfo-start", 1, 0, "struct compound_state *",
499*5647Ssamf 	    "nfsv4opinfo_t *" },
500*5647Ssamf 	{ "nfsv4", "op-secinfo-start", 2, 1, "SECINFO4args *" },
501*5647Ssamf 	{ "nfsv4", "op-secinfo-done", 0, 0, "struct compound_state *",
502*5647Ssamf 	    "conninfo_t *" },
503*5647Ssamf 	{ "nfsv4", "op-secinfo-done", 1, 0, "struct compound_state *",
504*5647Ssamf 	    "nfsv4opinfo_t *" },
505*5647Ssamf 	{ "nfsv4", "op-secinfo-done", 2, 1, "SECINFO4res *" },
506*5647Ssamf 	{ "nfsv4", "op-setattr-start", 0, 0, "struct compound_state *",
507*5647Ssamf 	    "conninfo_t *" },
508*5647Ssamf 	{ "nfsv4", "op-setattr-start", 1, 0, "struct compound_state *",
509*5647Ssamf 	    "nfsv4opinfo_t *" },
510*5647Ssamf 	{ "nfsv4", "op-setattr-start", 2, 1, "SETATTR4args *" },
511*5647Ssamf 	{ "nfsv4", "op-setattr-done", 0, 0, "struct compound_state *",
512*5647Ssamf 	    "conninfo_t *" },
513*5647Ssamf 	{ "nfsv4", "op-setattr-done", 1, 0, "struct compound_state *",
514*5647Ssamf 	    "nfsv4opinfo_t *" },
515*5647Ssamf 	{ "nfsv4", "op-setattr-done", 2, 1, "SETATTR4res *" },
516*5647Ssamf 	{ "nfsv4", "op-setclientid-start", 0, 0, "struct compound_state *",
517*5647Ssamf 	    "conninfo_t *" },
518*5647Ssamf 	{ "nfsv4", "op-setclientid-start", 1, 0, "struct compound_state *",
519*5647Ssamf 	    "nfsv4opinfo_t *" },
520*5647Ssamf 	{ "nfsv4", "op-setclientid-start", 2, 1, "SETCLIENTID4args *" },
521*5647Ssamf 	{ "nfsv4", "op-setclientid-done", 0, 0, "struct compound_state *",
522*5647Ssamf 	    "conninfo_t *" },
523*5647Ssamf 	{ "nfsv4", "op-setclientid-done", 1, 0, "struct compound_state *",
524*5647Ssamf 	    "nfsv4opinfo_t *" },
525*5647Ssamf 	{ "nfsv4", "op-setclientid-done", 2, 1, "SETCLIENTID4res *" },
526*5647Ssamf 	{ "nfsv4", "op-setclientid-confirm-start", 0, 0,
527*5647Ssamf 	    "struct compound_state *", "conninfo_t *" },
528*5647Ssamf 	{ "nfsv4", "op-setclientid-confirm-start", 1, 0,
529*5647Ssamf 	    "struct compound_state *", "nfsv4opinfo_t *" },
530*5647Ssamf 	{ "nfsv4", "op-setclientid-confirm-start", 2, 1,
531*5647Ssamf 	    "SETCLIENTID_CONFIRM4args *" },
532*5647Ssamf 	{ "nfsv4", "op-setclientid-confirm-done", 0, 0,
533*5647Ssamf 	    "struct compound_state *", "conninfo_t *" },
534*5647Ssamf 	{ "nfsv4", "op-setclientid-confirm-done", 1, 0,
535*5647Ssamf 	    "struct compound_state *", "nfsv4opinfo_t *" },
536*5647Ssamf 	{ "nfsv4", "op-setclientid-confirm-done", 2, 1,
537*5647Ssamf 	    "SETCLIENTID_CONFIRM4res *" },
538*5647Ssamf 	{ "nfsv4", "op-verify-start", 0, 0, "struct compound_state *",
539*5647Ssamf 	    "conninfo_t *" },
540*5647Ssamf 	{ "nfsv4", "op-verify-start", 1, 0, "struct compound_state *",
541*5647Ssamf 	    "nfsv4opinfo_t *" },
542*5647Ssamf 	{ "nfsv4", "op-verify-start", 2, 1, "VERIFY4args *" },
543*5647Ssamf 	{ "nfsv4", "op-verify-done", 0, 0, "struct compound_state *",
544*5647Ssamf 	    "conninfo_t *" },
545*5647Ssamf 	{ "nfsv4", "op-verify-done", 1, 0, "struct compound_state *",
546*5647Ssamf 	    "nfsv4opinfo_t *" },
547*5647Ssamf 	{ "nfsv4", "op-verify-done", 2, 1, "VERIFY4res *" },
548*5647Ssamf 	{ "nfsv4", "op-write-start", 0, 0, "struct compound_state *",
549*5647Ssamf 	    "conninfo_t *" },
550*5647Ssamf 	{ "nfsv4", "op-write-start", 1, 0, "struct compound_state *",
551*5647Ssamf 	    "nfsv4opinfo_t *" },
552*5647Ssamf 	{ "nfsv4", "op-write-start", 2, 1, "WRITE4args *" },
553*5647Ssamf 	{ "nfsv4", "op-write-done", 0, 0, "struct compound_state *",
554*5647Ssamf 	    "conninfo_t *" },
555*5647Ssamf 	{ "nfsv4", "op-write-done", 1, 0, "struct compound_state *",
556*5647Ssamf 	    "nfsv4opinfo_t *" },
557*5647Ssamf 	{ "nfsv4", "op-write-done", 2, 1, "WRITE4res *" },
558*5647Ssamf 	{ "nfsv4", "cb-recall-start", 0, 0, "rfs4_client_t *",
559*5647Ssamf 	    "conninfo_t *" },
560*5647Ssamf 	{ "nfsv4", "cb-recall-start", 1, 1, "rfs4_deleg_state_t *",
561*5647Ssamf 	    "nfsv4cbinfo_t *" },
562*5647Ssamf 	{ "nfsv4", "cb-recall-start", 2, 2, "CB_RECALL4args *" },
563*5647Ssamf 	{ "nfsv4", "cb-recall-done", 0, 0, "rfs4_client_t *",
564*5647Ssamf 	    "conninfo_t *" },
565*5647Ssamf 	{ "nfsv4", "cb-recall-done", 1, 1, "rfs4_deleg_state_t *",
566*5647Ssamf 	    "nfsv4cbinfo_t *" },
567*5647Ssamf 	{ "nfsv4", "cb-recall-done", 2, 2, "CB_RECALL4res *" },
568*5647Ssamf 
5693490Seschrock 	{ "sysevent", "post", 0, 0, "evch_bind_t *", "syseventchaninfo_t *" },
5703490Seschrock 	{ "sysevent", "post", 1, 1, "sysevent_impl_t *", "syseventinfo_t *" },
571*5647Ssamf 
5725084Sjohnlev 	{ "xpv", "add-to-physmap-end", 0, 0, "int" },
5735084Sjohnlev 	{ "xpv", "add-to-physmap-start", 0, 0, "domid_t" },
5745084Sjohnlev 	{ "xpv", "add-to-physmap-start", 1, 1, "uint_t" },
5755084Sjohnlev 	{ "xpv", "add-to-physmap-start", 2, 2, "ulong_t" },
5765084Sjohnlev 	{ "xpv", "add-to-physmap-start", 3, 3, "ulong_t" },
5775084Sjohnlev 	{ "xpv", "decrease-reservation-end", 0, 0, "int" },
5785084Sjohnlev 	{ "xpv", "decrease-reservation-start", 0, 0, "domid_t" },
5795084Sjohnlev 	{ "xpv", "decrease-reservation-start", 1, 1, "ulong_t" },
5805084Sjohnlev 	{ "xpv", "decrease-reservation-start", 2, 2, "uint_t" },
5815084Sjohnlev 	{ "xpv", "decrease-reservation-start", 3, 3, "ulong_t *" },
5825084Sjohnlev 	{ "xpv", "dom-create-start", 0, 0, "xen_domctl_t *" },
5835084Sjohnlev 	{ "xpv", "dom-destroy-start", 0, 0, "domid_t" },
5845084Sjohnlev 	{ "xpv", "dom-pause-start", 0, 0, "domid_t" },
5855084Sjohnlev 	{ "xpv", "dom-unpause-start", 0, 0, "domid_t" },
5865084Sjohnlev 	{ "xpv", "dom-create-end", 0, 0, "int" },
5875084Sjohnlev 	{ "xpv", "dom-destroy-end", 0, 0, "int" },
5885084Sjohnlev 	{ "xpv", "dom-pause-end", 0, 0, "int" },
5895084Sjohnlev 	{ "xpv", "dom-unpause-end", 0, 0, "int" },
5905084Sjohnlev 	{ "xpv", "evtchn-op-end", 0, 0, "int" },
5915084Sjohnlev 	{ "xpv", "evtchn-op-start", 0, 0, "int" },
5925084Sjohnlev 	{ "xpv", "evtchn-op-start", 1, 1, "void *" },
5935084Sjohnlev 	{ "xpv", "increase-reservation-end", 0, 0, "int" },
5945084Sjohnlev 	{ "xpv", "increase-reservation-start", 0, 0, "domid_t" },
5955084Sjohnlev 	{ "xpv", "increase-reservation-start", 1, 1, "ulong_t" },
5965084Sjohnlev 	{ "xpv", "increase-reservation-start", 2, 2, "uint_t" },
5975084Sjohnlev 	{ "xpv", "increase-reservation-start", 3, 3, "ulong_t *" },
5985084Sjohnlev 	{ "xpv", "mmap-end", 0, 0, "int" },
5995084Sjohnlev 	{ "xpv", "mmap-entry", 0, 0, "ulong_t" },
6005084Sjohnlev 	{ "xpv", "mmap-entry", 1, 1, "ulong_t" },
6015084Sjohnlev 	{ "xpv", "mmap-entry", 2, 2, "ulong_t" },
6025084Sjohnlev 	{ "xpv", "mmap-start", 0, 0, "domid_t" },
6035084Sjohnlev 	{ "xpv", "mmap-start", 1, 1, "int" },
6045084Sjohnlev 	{ "xpv", "mmap-start", 2, 2, "privcmd_mmap_entry_t *" },
6055084Sjohnlev 	{ "xpv", "mmapbatch-end", 0, 0, "int" },
6065084Sjohnlev 	{ "xpv", "mmapbatch-end", 1, 1, "struct seg *" },
6075084Sjohnlev 	{ "xpv", "mmapbatch-end", 2, 2, "caddr_t" },
6085084Sjohnlev 	{ "xpv", "mmapbatch-start", 0, 0, "domid_t" },
6095084Sjohnlev 	{ "xpv", "mmapbatch-start", 1, 1, "int" },
6105084Sjohnlev 	{ "xpv", "mmapbatch-start", 2, 2, "caddr_t" },
6115084Sjohnlev 	{ "xpv", "mmu-ext-op-end", 0, 0, "int" },
6125084Sjohnlev 	{ "xpv", "mmu-ext-op-start", 0, 0, "int" },
6135084Sjohnlev 	{ "xpv", "mmu-ext-op-start", 1, 1, "struct mmuext_op *" },
6145084Sjohnlev 	{ "xpv", "mmu-update-start", 0, 0, "int" },
6155084Sjohnlev 	{ "xpv", "mmu-update-start", 1, 1, "int" },
6165084Sjohnlev 	{ "xpv", "mmu-update-start", 2, 2, "mmu_update_t *" },
6175084Sjohnlev 	{ "xpv", "mmu-update-end", 0, 0, "int" },
6185084Sjohnlev 	{ "xpv", "populate-physmap-end", 0, 0, "int" },
6195084Sjohnlev 	{ "xpv", "populate-physmap-start", 0, 0, "domid_t" },
6205084Sjohnlev 	{ "xpv", "populate-physmap-start", 1, 1, "ulong_t" },
6215084Sjohnlev 	{ "xpv", "populate-physmap-start", 2, 2, "ulong_t *" },
6225084Sjohnlev 	{ "xpv", "set-memory-map-end", 0, 0, "int" },
6235084Sjohnlev 	{ "xpv", "set-memory-map-start", 0, 0, "domid_t" },
6245084Sjohnlev 	{ "xpv", "set-memory-map-start", 1, 1, "int" },
6255084Sjohnlev 	{ "xpv", "set-memory-map-start", 2, 2, "struct xen_memory_map *" },
6265084Sjohnlev 	{ "xpv", "setvcpucontext-end", 0, 0, "int" },
6275084Sjohnlev 	{ "xpv", "setvcpucontext-start", 0, 0, "domid_t" },
6285084Sjohnlev 	{ "xpv", "setvcpucontext-start", 1, 1, "vcpu_guest_context_t *" },
6290Sstevel@tonic-gate 	{ NULL }
6300Sstevel@tonic-gate };
6310Sstevel@tonic-gate 
6320Sstevel@tonic-gate /*ARGSUSED*/
6330Sstevel@tonic-gate void
6340Sstevel@tonic-gate sdt_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc)
6350Sstevel@tonic-gate {
6360Sstevel@tonic-gate 	sdt_probe_t *sdp = parg;
6370Sstevel@tonic-gate 	int i;
6380Sstevel@tonic-gate 
6390Sstevel@tonic-gate 	desc->dtargd_native[0] = '\0';
6400Sstevel@tonic-gate 	desc->dtargd_xlate[0] = '\0';
6410Sstevel@tonic-gate 
6420Sstevel@tonic-gate 	for (i = 0; sdt_args[i].sda_provider != NULL; i++) {
6430Sstevel@tonic-gate 		sdt_argdesc_t *a = &sdt_args[i];
6440Sstevel@tonic-gate 
6450Sstevel@tonic-gate 		if (strcmp(sdp->sdp_provider->sdtp_name, a->sda_provider) != 0)
6460Sstevel@tonic-gate 			continue;
6470Sstevel@tonic-gate 
6480Sstevel@tonic-gate 		if (a->sda_name != NULL &&
6490Sstevel@tonic-gate 		    strcmp(sdp->sdp_name, a->sda_name) != 0)
6500Sstevel@tonic-gate 			continue;
6510Sstevel@tonic-gate 
6520Sstevel@tonic-gate 		if (desc->dtargd_ndx != a->sda_ndx)
6530Sstevel@tonic-gate 			continue;
6540Sstevel@tonic-gate 
6550Sstevel@tonic-gate 		if (a->sda_native != NULL)
6560Sstevel@tonic-gate 			(void) strcpy(desc->dtargd_native, a->sda_native);
6570Sstevel@tonic-gate 
6580Sstevel@tonic-gate 		if (a->sda_xlate != NULL)
6590Sstevel@tonic-gate 			(void) strcpy(desc->dtargd_xlate, a->sda_xlate);
6600Sstevel@tonic-gate 
6610Sstevel@tonic-gate 		desc->dtargd_mapping = a->sda_mapping;
6620Sstevel@tonic-gate 		return;
6630Sstevel@tonic-gate 	}
6640Sstevel@tonic-gate 
6650Sstevel@tonic-gate 	desc->dtargd_ndx = DTRACE_ARGNONE;
6660Sstevel@tonic-gate }
667