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 (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
  23  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  24  */
  25 
  26 #include <sys/sdt_impl.h>
  27 
  28 static dtrace_pattr_t vtrace_attr = {
  29 { DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_ISA },
  30 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  31 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  32 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  33 { DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_ISA },
  34 };
  35 
  36 static dtrace_pattr_t info_attr = {
  37 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  38 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  39 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  40 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  41 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  42 };
  43 
  44 static dtrace_pattr_t fc_attr = {
  45 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  46 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  47 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  48 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  49 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  50 };
  51 
  52 static dtrace_pattr_t fpu_attr = {
  53 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  54 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  55 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  56 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_CPU },
  57 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  58 };
  59 
  60 static dtrace_pattr_t fsinfo_attr = {
  61 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  62 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  63 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  64 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  65 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  66 };
  67 
  68 static dtrace_pattr_t stab_attr = {
  69 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  70 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  71 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  72 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  73 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  74 };
  75 
  76 static dtrace_pattr_t sdt_attr = {
  77 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  78 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  79 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  80 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  81 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  82 };
  83 
  84 static dtrace_pattr_t xpv_attr = {
  85 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_PLATFORM },
  86 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  87 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  88 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
  89 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
  90 };
  91 
  92 static dtrace_pattr_t iscsi_attr = {
  93 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  94 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  95 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  96 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  97 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  98 };
  99 
 100 sdt_provider_t sdt_providers[] = {
 101         { "vtrace", "__vtrace_", &vtrace_attr },
 102         { "sysinfo", "__cpu_sysinfo_", &info_attr, DTRACE_PRIV_USER },
 103         { "vminfo", "__cpu_vminfo_", &info_attr, DTRACE_PRIV_USER },
 104         { "fpuinfo", "__fpuinfo_", &fpu_attr },
 105         { "sched", "__sched_", &stab_attr, DTRACE_PRIV_USER },
 106         { "proc", "__proc_", &stab_attr, DTRACE_PRIV_USER },
 107         { "io", "__io_", &stab_attr },
 108         { "ip", "__ip_", &stab_attr },
 109         { "tcp", "__tcp_", &stab_attr },
 110         { "udp", "__udp_", &stab_attr },
 111         { "mib", "__mib_", &stab_attr },
 112         { "fsinfo", "__fsinfo_", &fsinfo_attr },
 113         { "iscsi", "__iscsi_", &iscsi_attr },
 114         { "nfsv3", "__nfsv3_", &stab_attr },
 115         { "nfsv4", "__nfsv4_", &stab_attr },
 116         { "xpv", "__xpv_", &xpv_attr },
 117         { "fc", "__fc_", &fc_attr },
 118         { "srp", "__srp_", &fc_attr },
 119         { "sysevent", "__sysevent_", &stab_attr },
 120         { "sdt", NULL, &sdt_attr },
 121         { NULL }
 122 };
 123 
 124 sdt_argdesc_t sdt_args[] = {
 125         { "sched", "wakeup", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 126         { "sched", "wakeup", 1, 0, "kthread_t *", "psinfo_t *" },
 127         { "sched", "dequeue", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 128         { "sched", "dequeue", 1, 0, "kthread_t *", "psinfo_t *" },
 129         { "sched", "dequeue", 2, 1, "disp_t *", "cpuinfo_t *" },
 130         { "sched", "enqueue", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 131         { "sched", "enqueue", 1, 0, "kthread_t *", "psinfo_t *" },
 132         { "sched", "enqueue", 2, 1, "disp_t *", "cpuinfo_t *" },
 133         { "sched", "enqueue", 3, 2, "int" },
 134         { "sched", "off-cpu", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 135         { "sched", "off-cpu", 1, 0, "kthread_t *", "psinfo_t *" },
 136         { "sched", "tick", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 137         { "sched", "tick", 1, 0, "kthread_t *", "psinfo_t *" },
 138         { "sched", "change-pri", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 139         { "sched", "change-pri", 1, 0, "kthread_t *", "psinfo_t *" },
 140         { "sched", "change-pri", 2, 1, "pri_t" },
 141         { "sched", "schedctl-nopreempt", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 142         { "sched", "schedctl-nopreempt", 1, 0, "kthread_t *", "psinfo_t *" },
 143         { "sched", "schedctl-nopreempt", 2, 1, "int" },
 144         { "sched", "schedctl-preempt", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 145         { "sched", "schedctl-preempt", 1, 0, "kthread_t *", "psinfo_t *" },
 146         { "sched", "schedctl-yield", 0, 0, "int" },
 147         { "sched", "surrender", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 148         { "sched", "surrender", 1, 0, "kthread_t *", "psinfo_t *" },
 149         { "sched", "cpucaps-sleep", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 150         { "sched", "cpucaps-sleep", 1, 0, "kthread_t *", "psinfo_t *" },
 151         { "sched", "cpucaps-wakeup", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 152         { "sched", "cpucaps-wakeup", 1, 0, "kthread_t *", "psinfo_t *" },
 153 
 154         { "proc", "create", 0, 0, "proc_t *", "psinfo_t *" },
 155         { "proc", "exec", 0, 0, "string" },
 156         { "proc", "exec-failure", 0, 0, "int" },
 157         { "proc", "exit", 0, 0, "int" },
 158         { "proc", "fault", 0, 0, "int" },
 159         { "proc", "fault", 1, 1, "siginfo_t *" },
 160         { "proc", "lwp-create", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 161         { "proc", "lwp-create", 1, 0, "kthread_t *", "psinfo_t *" },
 162         { "proc", "signal-clear", 0, 0, "int" },
 163         { "proc", "signal-clear", 1, 1, "siginfo_t *" },
 164         { "proc", "signal-discard", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 165         { "proc", "signal-discard", 1, 1, "proc_t *", "psinfo_t *" },
 166         { "proc", "signal-discard", 2, 2, "int" },
 167         { "proc", "signal-handle", 0, 0, "int" },
 168         { "proc", "signal-handle", 1, 1, "siginfo_t *" },
 169         { "proc", "signal-handle", 2, 2, "void (*)(void)" },
 170         { "proc", "signal-send", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 171         { "proc", "signal-send", 1, 0, "kthread_t *", "psinfo_t *" },
 172         { "proc", "signal-send", 2, 1, "int" },
 173 
 174         { "io", "start", 0, 0, "buf_t *", "bufinfo_t *" },
 175         { "io", "start", 1, 0, "buf_t *", "devinfo_t *" },
 176         { "io", "start", 2, 0, "buf_t *", "fileinfo_t *" },
 177         { "io", "done", 0, 0, "buf_t *", "bufinfo_t *" },
 178         { "io", "done", 1, 0, "buf_t *", "devinfo_t *" },
 179         { "io", "done", 2, 0, "buf_t *", "fileinfo_t *" },
 180         { "io", "wait-start", 0, 0, "buf_t *", "bufinfo_t *" },
 181         { "io", "wait-start", 1, 0, "buf_t *", "devinfo_t *" },
 182         { "io", "wait-start", 2, 0, "buf_t *", "fileinfo_t *" },
 183         { "io", "wait-done", 0, 0, "buf_t *", "bufinfo_t *" },
 184         { "io", "wait-done", 1, 0, "buf_t *", "devinfo_t *" },
 185         { "io", "wait-done", 2, 0, "buf_t *", "fileinfo_t *" },
 186 
 187         { "mib", NULL, 0, 0, "int" },
 188 
 189         { "fsinfo", NULL, 0, 0, "vnode_t *", "fileinfo_t *" },
 190         { "fsinfo", NULL, 1, 1, "int", "int" },
 191 
 192         { "iscsi", "async-send", 0, 0, "idm_conn_t *", "conninfo_t *" },
 193         { "iscsi", "async-send", 1, 1, "iscsi_async_evt_hdr_t *",
 194             "iscsiinfo_t *" },
 195         { "iscsi", "login-command", 0, 0, "idm_conn_t *", "conninfo_t *" },
 196         { "iscsi", "login-command", 1, 1, "iscsi_login_hdr_t *",
 197             "iscsiinfo_t *" },
 198         { "iscsi", "login-response", 0, 0, "idm_conn_t *", "conninfo_t *" },
 199         { "iscsi", "login-response", 1, 1, "iscsi_login_rsp_hdr_t *",
 200             "iscsiinfo_t *" },
 201         { "iscsi", "logout-command", 0, 0, "idm_conn_t *", "conninfo_t *" },
 202         { "iscsi", "logout-command", 1, 1, "iscsi_logout_hdr_t *",
 203             "iscsiinfo_t *" },
 204         { "iscsi", "logout-response", 0, 0, "idm_conn_t *", "conninfo_t *" },
 205         { "iscsi", "logout-response", 1, 1, "iscsi_logout_rsp_hdr_t *",
 206             "iscsiinfo_t *" },
 207         { "iscsi", "data-request", 0, 0, "idm_conn_t *", "conninfo_t *" },
 208         { "iscsi", "data-request", 1, 1, "iscsi_rtt_hdr_t *",
 209             "iscsiinfo_t *" },
 210         { "iscsi", "data-send", 0, 0, "idm_conn_t *", "conninfo_t *" },
 211         { "iscsi", "data-send", 1, 1, "iscsi_data_rsp_hdr_t *",
 212             "iscsiinfo_t *" },
 213         { "iscsi", "data-receive", 0, 0, "idm_conn_t *", "conninfo_t *" },
 214         { "iscsi", "data-receive", 1, 1, "iscsi_data_hdr_t *",
 215             "iscsiinfo_t *" },
 216         { "iscsi", "nop-send", 0, 0, "idm_conn_t *", "conninfo_t *" },
 217         { "iscsi", "nop-send", 1, 1, "iscsi_nop_in_hdr_t *", "iscsiinfo_t *" },
 218         { "iscsi", "nop-receive", 0, 0, "idm_conn_t *", "conninfo_t *" },
 219         { "iscsi", "nop-receive", 1, 1, "iscsi_nop_out_hdr_t *",
 220             "iscsiinfo_t *" },
 221         { "iscsi", "scsi-command", 0, 0, "idm_conn_t *", "conninfo_t *" },
 222         { "iscsi", "scsi-command", 1, 1, "iscsi_scsi_cmd_hdr_t *",
 223             "iscsiinfo_t *" },
 224         { "iscsi", "scsi-command", 2, 2, "scsi_task_t *", "scsicmd_t *" },
 225         { "iscsi", "scsi-response", 0, 0, "idm_conn_t *", "conninfo_t *" },
 226         { "iscsi", "scsi-response", 1, 1, "iscsi_scsi_rsp_hdr_t *",
 227             "iscsiinfo_t *" },
 228         { "iscsi", "task-command", 0, 0, "idm_conn_t *", "conninfo_t *" },
 229         { "iscsi", "task-command", 1, 1, "iscsi_scsi_task_mgt_hdr_t *",
 230             "iscsiinfo_t *" },
 231         { "iscsi", "task-response", 0, 0, "idm_conn_t *", "conninfo_t *" },
 232         { "iscsi", "task-response", 1, 1, "iscsi_scsi_task_mgt_rsp_hdr_t *",
 233             "iscsiinfo_t *" },
 234         { "iscsi", "text-command", 0, 0, "idm_conn_t *", "conninfo_t *" },
 235         { "iscsi", "text-command", 1, 1, "iscsi_text_hdr_t *",
 236             "iscsiinfo_t *" },
 237         { "iscsi", "text-response", 0, 0, "idm_conn_t *", "conninfo_t *" },
 238         { "iscsi", "text-response", 1, 1, "iscsi_text_rsp_hdr_t *",
 239             "iscsiinfo_t *" },
 240         { "iscsi", "xfer-start", 0, 0, "idm_conn_t *", "conninfo_t *" },
 241         { "iscsi", "xfer-start", 1, 0, "idm_conn_t *", "iscsiinfo_t *" },
 242         { "iscsi", "xfer-start", 2, 1, "uintptr_t", "xferinfo_t *" },
 243         { "iscsi", "xfer-start", 3, 2, "uint32_t"},
 244         { "iscsi", "xfer-start", 4, 3, "uintptr_t"},
 245         { "iscsi", "xfer-start", 5, 4, "uint32_t"},
 246         { "iscsi", "xfer-start", 6, 5, "uint32_t"},
 247         { "iscsi", "xfer-start", 7, 6, "uint32_t"},
 248         { "iscsi", "xfer-start", 8, 7, "int"},
 249         { "iscsi", "xfer-done", 0, 0, "idm_conn_t *", "conninfo_t *" },
 250         { "iscsi", "xfer-done", 1, 0, "idm_conn_t *", "iscsiinfo_t *" },
 251         { "iscsi", "xfer-done", 2, 1, "uintptr_t", "xferinfo_t *" },
 252         { "iscsi", "xfer-done", 3, 2, "uint32_t"},
 253         { "iscsi", "xfer-done", 4, 3, "uintptr_t"},
 254         { "iscsi", "xfer-done", 5, 4, "uint32_t"},
 255         { "iscsi", "xfer-done", 6, 5, "uint32_t"},
 256         { "iscsi", "xfer-done", 7, 6, "uint32_t"},
 257         { "iscsi", "xfer-done", 8, 7, "int"},
 258 
 259         { "nfsv3", "op-getattr-start", 0, 0, "struct svc_req *",
 260             "conninfo_t *" },
 261         { "nfsv3", "op-getattr-start", 1, 1, "nfsv3oparg_t *",
 262             "nfsv3opinfo_t *" },
 263         { "nfsv3", "op-getattr-start", 2, 3, "GETATTR3args *" },
 264         { "nfsv3", "op-getattr-done", 0, 0, "struct svc_req *",
 265             "conninfo_t *" },
 266         { "nfsv3", "op-getattr-done", 1, 1, "nfsv3oparg_t *",
 267             "nfsv3opinfo_t *" },
 268         { "nfsv3", "op-getattr-done", 2, 3, "GETATTR3res *" },
 269         { "nfsv3", "op-setattr-start", 0, 0, "struct svc_req *",
 270             "conninfo_t *" },
 271         { "nfsv3", "op-setattr-start", 1, 1, "nfsv3oparg_t *",
 272             "nfsv3opinfo_t *" },
 273         { "nfsv3", "op-setattr-start", 2, 3, "SETATTR3args *" },
 274         { "nfsv3", "op-setattr-done", 0, 0, "struct svc_req *",
 275             "conninfo_t *" },
 276         { "nfsv3", "op-setattr-done", 1, 1, "nfsv3oparg_t *",
 277             "nfsv3opinfo_t *" },
 278         { "nfsv3", "op-setattr-done", 2, 3, "SETATTR3res *" },
 279         { "nfsv3", "op-lookup-start", 0, 0, "struct svc_req *",
 280             "conninfo_t *" },
 281         { "nfsv3", "op-lookup-start", 1, 1, "nfsv3oparg_t *",
 282             "nfsv3opinfo_t *" },
 283         { "nfsv3", "op-lookup-start", 2, 3, "LOOKUP3args *" },
 284         { "nfsv3", "op-lookup-done", 0, 0, "struct svc_req *",
 285             "conninfo_t *" },
 286         { "nfsv3", "op-lookup-done", 1, 1, "nfsv3oparg_t *",
 287             "nfsv3opinfo_t *" },
 288         { "nfsv3", "op-lookup-done", 2, 3, "LOOKUP3res *" },
 289         { "nfsv3", "op-access-start", 0, 0, "struct svc_req *",
 290             "conninfo_t *" },
 291         { "nfsv3", "op-access-start", 1, 1, "nfsv3oparg_t *",
 292             "nfsv3opinfo_t *" },
 293         { "nfsv3", "op-access-start", 2, 3, "ACCESS3args *" },
 294         { "nfsv3", "op-access-done", 0, 0, "struct svc_req *",
 295             "conninfo_t *" },
 296         { "nfsv3", "op-access-done", 1, 1, "nfsv3oparg_t *",
 297             "nfsv3opinfo_t *" },
 298         { "nfsv3", "op-access-done", 2, 3, "ACCESS3res *" },
 299         { "nfsv3", "op-commit-start", 0, 0, "struct svc_req *",
 300             "conninfo_t *" },
 301         { "nfsv3", "op-commit-start", 1, 1, "nfsv3oparg_t *",
 302             "nfsv3opinfo_t *" },
 303         { "nfsv3", "op-commit-start", 2, 3, "COMMIT3args *" },
 304         { "nfsv3", "op-commit-done", 0, 0, "struct svc_req *",
 305             "conninfo_t *" },
 306         { "nfsv3", "op-commit-done", 1, 1, "nfsv3oparg_t *",
 307             "nfsv3opinfo_t *" },
 308         { "nfsv3", "op-commit-done", 2, 3, "COMMIT3res *" },
 309         { "nfsv3", "op-create-start", 0, 0, "struct svc_req *",
 310             "conninfo_t *" },
 311         { "nfsv3", "op-create-start", 1, 1, "nfsv3oparg_t *",
 312             "nfsv3opinfo_t *" },
 313         { "nfsv3", "op-create-start", 2, 3, "CREATE3args *" },
 314         { "nfsv3", "op-create-done", 0, 0, "struct svc_req *",
 315             "conninfo_t *" },
 316         { "nfsv3", "op-create-done", 1, 1, "nfsv3oparg_t *",
 317             "nfsv3opinfo_t *" },
 318         { "nfsv3", "op-create-done", 2, 3, "CREATE3res *" },
 319         { "nfsv3", "op-fsinfo-start", 0, 0, "struct svc_req *",
 320             "conninfo_t *" },
 321         { "nfsv3", "op-fsinfo-start", 1, 1, "nfsv3oparg_t *",
 322             "nfsv3opinfo_t *" },
 323         { "nfsv3", "op-fsinfo-start", 2, 3, "FSINFO3args *" },
 324         { "nfsv3", "op-fsinfo-done", 0, 0, "struct svc_req *",
 325             "conninfo_t *" },
 326         { "nfsv3", "op-fsinfo-done", 1, 1, "nfsv3oparg_t *",
 327             "nfsv3opinfo_t *" },
 328         { "nfsv3", "op-fsinfo-done", 2, 3, "FSINFO3res *" },
 329         { "nfsv3", "op-fsstat-start", 0, 0, "struct svc_req *",
 330             "conninfo_t *" },
 331         { "nfsv3", "op-fsstat-start", 1, 1, "nfsv3oparg_t *",
 332             "nfsv3opinfo_t *" },
 333         { "nfsv3", "op-fsstat-start", 2, 3, "FSSTAT3args *" },
 334         { "nfsv3", "op-fsstat-done", 0, 0, "struct svc_req *",
 335             "conninfo_t *" },
 336         { "nfsv3", "op-fsstat-done", 1, 1, "nfsv3oparg_t *",
 337             "nfsv3opinfo_t *" },
 338         { "nfsv3", "op-fsstat-done", 2, 3, "FSSTAT3res *" },
 339         { "nfsv3", "op-link-start", 0, 0, "struct svc_req *",
 340             "conninfo_t *" },
 341         { "nfsv3", "op-link-start", 1, 1, "nfsv3oparg_t *",
 342             "nfsv3opinfo_t *" },
 343         { "nfsv3", "op-link-start", 2, 3, "LINK3args *" },
 344         { "nfsv3", "op-link-done", 0, 0, "struct svc_req *",
 345             "conninfo_t *" },
 346         { "nfsv3", "op-link-done", 1, 1, "nfsv3oparg_t *",
 347             "nfsv3opinfo_t *" },
 348         { "nfsv3", "op-link-done", 2, 3, "LINK3res *" },
 349         { "nfsv3", "op-mkdir-start", 0, 0, "struct svc_req *",
 350             "conninfo_t *" },
 351         { "nfsv3", "op-mkdir-start", 1, 1, "nfsv3oparg_t *",
 352             "nfsv3opinfo_t *" },
 353         { "nfsv3", "op-mkdir-start", 2, 3, "MKDIR3args *" },
 354         { "nfsv3", "op-mkdir-done", 0, 0, "struct svc_req *",
 355             "conninfo_t *" },
 356         { "nfsv3", "op-mkdir-done", 1, 1, "nfsv3oparg_t *",
 357             "nfsv3opinfo_t *" },
 358         { "nfsv3", "op-mkdir-done", 2, 3, "MKDIR3res *" },
 359         { "nfsv3", "op-mknod-start", 0, 0, "struct svc_req *",
 360             "conninfo_t *" },
 361         { "nfsv3", "op-mknod-start", 1, 1, "nfsv3oparg_t *",
 362             "nfsv3opinfo_t *" },
 363         { "nfsv3", "op-mknod-start", 2, 3, "MKNOD3args *" },
 364         { "nfsv3", "op-mknod-done", 0, 0, "struct svc_req *",
 365             "conninfo_t *" },
 366         { "nfsv3", "op-mknod-done", 1, 1, "nfsv3oparg_t *",
 367             "nfsv3opinfo_t *" },
 368         { "nfsv3", "op-mknod-done", 2, 3, "MKNOD3res *" },
 369         { "nfsv3", "op-null-start", 0, 0, "struct svc_req *",
 370             "conninfo_t *" },
 371         { "nfsv3", "op-null-start", 1, 1, "nfsv3oparg_t *",
 372             "nfsv3opinfo_t *" },
 373         { "nfsv3", "op-null-done", 0, 0, "struct svc_req *",
 374             "conninfo_t *" },
 375         { "nfsv3", "op-null-done", 1, 1, "nfsv3oparg_t *",
 376             "nfsv3opinfo_t *" },
 377         { "nfsv3", "op-pathconf-start", 0, 0, "struct svc_req *",
 378             "conninfo_t *" },
 379         { "nfsv3", "op-pathconf-start", 1, 1, "nfsv3oparg_t *",
 380             "nfsv3opinfo_t *" },
 381         { "nfsv3", "op-pathconf-start", 2, 3, "PATHCONF3args *" },
 382         { "nfsv3", "op-pathconf-done", 0, 0, "struct svc_req *",
 383             "conninfo_t *" },
 384         { "nfsv3", "op-pathconf-done", 1, 1, "nfsv3oparg_t *",
 385             "nfsv3opinfo_t *" },
 386         { "nfsv3", "op-pathconf-done", 2, 3, "PATHCONF3res *" },
 387         { "nfsv3", "op-read-start", 0, 0, "struct svc_req *",
 388             "conninfo_t *" },
 389         { "nfsv3", "op-read-start", 1, 1, "nfsv3oparg_t *",
 390             "nfsv3opinfo_t *" },
 391         { "nfsv3", "op-read-start", 2, 3, "READ3args *" },
 392         { "nfsv3", "op-read-done", 0, 0, "struct svc_req *",
 393             "conninfo_t *" },
 394         { "nfsv3", "op-read-done", 1, 1, "nfsv3oparg_t *",
 395             "nfsv3opinfo_t *" },
 396         { "nfsv3", "op-read-done", 2, 3, "READ3res *" },
 397         { "nfsv3", "op-readdir-start", 0, 0, "struct svc_req *",
 398             "conninfo_t *" },
 399         { "nfsv3", "op-readdir-start", 1, 1, "nfsv3oparg_t *",
 400             "nfsv3opinfo_t *" },
 401         { "nfsv3", "op-readdir-start", 2, 3, "READDIR3args *" },
 402         { "nfsv3", "op-readdir-done", 0, 0, "struct svc_req *",
 403             "conninfo_t *" },
 404         { "nfsv3", "op-readdir-done", 1, 1, "nfsv3oparg_t *",
 405             "nfsv3opinfo_t *" },
 406         { "nfsv3", "op-readdir-done", 2, 3, "READDIR3res *" },
 407         { "nfsv3", "op-readdirplus-start", 0, 0, "struct svc_req *",
 408             "conninfo_t *" },
 409         { "nfsv3", "op-readdirplus-start", 1, 1, "nfsv3oparg_t *",
 410             "nfsv3opinfo_t *" },
 411         { "nfsv3", "op-readdirplus-start", 2, 3, "READDIRPLUS3args *" },
 412         { "nfsv3", "op-readdirplus-done", 0, 0, "struct svc_req *",
 413             "conninfo_t *" },
 414         { "nfsv3", "op-readdirplus-done", 1, 1, "nfsv3oparg_t *",
 415             "nfsv3opinfo_t *" },
 416         { "nfsv3", "op-readdirplus-done", 2, 3, "READDIRPLUS3res *" },
 417         { "nfsv3", "op-readlink-start", 0, 0, "struct svc_req *",
 418             "conninfo_t *" },
 419         { "nfsv3", "op-readlink-start", 1, 1, "nfsv3oparg_t *",
 420             "nfsv3opinfo_t *" },
 421         { "nfsv3", "op-readlink-start", 2, 3, "READLINK3args *" },
 422         { "nfsv3", "op-readlink-done", 0, 0, "struct svc_req *",
 423             "conninfo_t *" },
 424         { "nfsv3", "op-readlink-done", 1, 1, "nfsv3oparg_t *",
 425             "nfsv3opinfo_t *" },
 426         { "nfsv3", "op-readlink-done", 2, 3, "READLINK3res *" },
 427         { "nfsv3", "op-remove-start", 0, 0, "struct svc_req *",
 428             "conninfo_t *" },
 429         { "nfsv3", "op-remove-start", 1, 1, "nfsv3oparg_t *",
 430             "nfsv3opinfo_t *" },
 431         { "nfsv3", "op-remove-start", 2, 3, "REMOVE3args *" },
 432         { "nfsv3", "op-remove-done", 0, 0, "struct svc_req *",
 433             "conninfo_t *" },
 434         { "nfsv3", "op-remove-done", 1, 1, "nfsv3oparg_t *",
 435             "nfsv3opinfo_t *" },
 436         { "nfsv3", "op-remove-done", 2, 3, "REMOVE3res *" },
 437         { "nfsv3", "op-rename-start", 0, 0, "struct svc_req *",
 438             "conninfo_t *" },
 439         { "nfsv3", "op-rename-start", 1, 1, "nfsv3oparg_t *",
 440             "nfsv3opinfo_t *" },
 441         { "nfsv3", "op-rename-start", 2, 3, "RENAME3args *" },
 442         { "nfsv3", "op-rename-done", 0, 0, "struct svc_req *",
 443             "conninfo_t *" },
 444         { "nfsv3", "op-rename-done", 1, 1, "nfsv3oparg_t *",
 445             "nfsv3opinfo_t *" },
 446         { "nfsv3", "op-rename-done", 2, 3, "RENAME3res *" },
 447         { "nfsv3", "op-rmdir-start", 0, 0, "struct svc_req *",
 448             "conninfo_t *" },
 449         { "nfsv3", "op-rmdir-start", 1, 1, "nfsv3oparg_t *",
 450             "nfsv3opinfo_t *" },
 451         { "nfsv3", "op-rmdir-start", 2, 3, "RMDIR3args *" },
 452         { "nfsv3", "op-rmdir-done", 0, 0, "struct svc_req *",
 453             "conninfo_t *" },
 454         { "nfsv3", "op-rmdir-done", 1, 1, "nfsv3oparg_t *",
 455             "nfsv3opinfo_t *" },
 456         { "nfsv3", "op-rmdir-done", 2, 3, "RMDIR3res *" },
 457         { "nfsv3", "op-setattr-start", 0, 0, "struct svc_req *",
 458             "conninfo_t *" },
 459         { "nfsv3", "op-setattr-start", 1, 1, "nfsv3oparg_t *",
 460             "nfsv3opinfo_t *" },
 461         { "nfsv3", "op-setattr-start", 2, 3, "SETATTR3args *" },
 462         { "nfsv3", "op-setattr-done", 0, 0, "struct svc_req *",
 463             "conninfo_t *" },
 464         { "nfsv3", "op-setattr-done", 1, 1, "nfsv3oparg_t *",
 465             "nfsv3opinfo_t *" },
 466         { "nfsv3", "op-setattr-done", 2, 3, "SETATTR3res *" },
 467         { "nfsv3", "op-symlink-start", 0, 0, "struct svc_req *",
 468             "conninfo_t *" },
 469         { "nfsv3", "op-symlink-start", 1, 1, "nfsv3oparg_t *",
 470             "nfsv3opinfo_t *" },
 471         { "nfsv3", "op-symlink-start", 2, 3, "SYMLINK3args *" },
 472         { "nfsv3", "op-symlink-done", 0, 0, "struct svc_req *",
 473             "conninfo_t *" },
 474         { "nfsv3", "op-symlink-done", 1, 1, "nfsv3oparg_t *",
 475             "nfsv3opinfo_t *" },
 476         { "nfsv3", "op-symlink-done", 2, 3, "SYMLINK3res *" },
 477         { "nfsv3", "op-write-start", 0, 0, "struct svc_req *",
 478             "conninfo_t *" },
 479         { "nfsv3", "op-write-start", 1, 1, "nfsv3oparg_t *",
 480             "nfsv3opinfo_t *" },
 481         { "nfsv3", "op-write-start", 2, 3, "WRITE3args *" },
 482         { "nfsv3", "op-write-done", 0, 0, "struct svc_req *",
 483             "conninfo_t *" },
 484         { "nfsv3", "op-write-done", 1, 1, "nfsv3oparg_t *",
 485             "nfsv3opinfo_t *" },
 486         { "nfsv3", "op-write-done", 2, 3, "WRITE3res *" },
 487 
 488         { "nfsv4", "null-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 489         { "nfsv4", "null-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 490         { "nfsv4", "compound-start", 0, 0, "struct compound_state *",
 491             "conninfo_t *" },
 492         { "nfsv4", "compound-start", 1, 0, "struct compound_state *",
 493             "nfsv4opinfo_t *" },
 494         { "nfsv4", "compound-start", 2, 1, "COMPOUND4args *" },
 495         { "nfsv4", "compound-done", 0, 0, "struct compound_state *",
 496             "conninfo_t *" },
 497         { "nfsv4", "compound-done", 1, 0, "struct compound_state *",
 498             "nfsv4opinfo_t *" },
 499         { "nfsv4", "compound-done", 2, 1, "COMPOUND4res *" },
 500         { "nfsv4", "op-access-start", 0, 0, "struct compound_state *",
 501             "conninfo_t *"},
 502         { "nfsv4", "op-access-start", 1, 0, "struct compound_state *",
 503             "nfsv4opinfo_t *" },
 504         { "nfsv4", "op-access-start", 2, 1, "ACCESS4args *" },
 505         { "nfsv4", "op-access-done", 0, 0, "struct compound_state *",
 506             "conninfo_t *" },
 507         { "nfsv4", "op-access-done", 1, 0, "struct compound_state *",
 508             "nfsv4opinfo_t *" },
 509         { "nfsv4", "op-access-done", 2, 1, "ACCESS4res *" },
 510         { "nfsv4", "op-close-start", 0, 0, "struct compound_state *",
 511             "conninfo_t *" },
 512         { "nfsv4", "op-close-start", 1, 0, "struct compound_state *",
 513             "nfsv4opinfo_t *" },
 514         { "nfsv4", "op-close-start", 2, 1, "CLOSE4args *" },
 515         { "nfsv4", "op-close-done", 0, 0, "struct compound_state *",
 516             "conninfo_t *" },
 517         { "nfsv4", "op-close-done", 1, 0, "struct compound_state *",
 518             "nfsv4opinfo_t *" },
 519         { "nfsv4", "op-close-done", 2, 1, "CLOSE4res *" },
 520         { "nfsv4", "op-commit-start", 0, 0, "struct compound_state *",
 521             "conninfo_t *" },
 522         { "nfsv4", "op-commit-start", 1, 0, "struct compound_state *",
 523             "nfsv4opinfo_t *" },
 524         { "nfsv4", "op-commit-start", 2, 1, "COMMIT4args *" },
 525         { "nfsv4", "op-commit-done", 0, 0, "struct compound_state *",
 526             "conninfo_t *" },
 527         { "nfsv4", "op-commit-done", 1, 0, "struct compound_state *",
 528             "nfsv4opinfo_t *" },
 529         { "nfsv4", "op-commit-done", 2, 1, "COMMIT4res *" },
 530         { "nfsv4", "op-create-start", 0, 0, "struct compound_state *",
 531             "conninfo_t *" },
 532         { "nfsv4", "op-create-start", 1, 0, "struct compound_state *",
 533             "nfsv4opinfo_t *" },
 534         { "nfsv4", "op-create-start", 2, 1, "CREATE4args *" },
 535         { "nfsv4", "op-create-done", 0, 0, "struct compound_state *",
 536             "conninfo_t *" },
 537         { "nfsv4", "op-create-done", 1, 0, "struct compound_state *",
 538             "nfsv4opinfo_t *" },
 539         { "nfsv4", "op-create-done", 2, 1, "CREATE4res *" },
 540         { "nfsv4", "op-delegpurge-start", 0, 0, "struct compound_state *",
 541             "conninfo_t *" },
 542         { "nfsv4", "op-delegpurge-start", 1, 0, "struct compound_state *",
 543             "nfsv4opinfo_t *" },
 544         { "nfsv4", "op-delegpurge-start", 2, 1, "DELEGPURGE4args *" },
 545         { "nfsv4", "op-delegpurge-done", 0, 0, "struct compound_state *",
 546             "conninfo_t *" },
 547         { "nfsv4", "op-delegpurge-done", 1, 0, "struct compound_state *",
 548             "nfsv4opinfo_t *" },
 549         { "nfsv4", "op-delegpurge-done", 2, 1, "DELEGPURGE4res *" },
 550         { "nfsv4", "op-delegreturn-start", 0, 0, "struct compound_state *",
 551             "conninfo_t *" },
 552         { "nfsv4", "op-delegreturn-start", 1, 0, "struct compound_state *",
 553             "nfsv4opinfo_t *" },
 554         { "nfsv4", "op-delegreturn-start", 2, 1, "DELEGRETURN4args *" },
 555         { "nfsv4", "op-delegreturn-done", 0, 0, "struct compound_state *",
 556             "conninfo_t *" },
 557         { "nfsv4", "op-delegreturn-done", 1, 0, "struct compound_state *",
 558             "nfsv4opinfo_t *" },
 559         { "nfsv4", "op-delegreturn-done", 2, 1, "DELEGRETURN4res *" },
 560         { "nfsv4", "op-getattr-start", 0, 0, "struct compound_state *",
 561             "conninfo_t *" },
 562         { "nfsv4", "op-getattr-start", 1, 0, "struct compound_state *",
 563             "nfsv4opinfo_t *" },
 564         { "nfsv4", "op-getattr-start", 2, 1, "GETATTR4args *" },
 565         { "nfsv4", "op-getattr-done", 0, 0, "struct compound_state *",
 566             "conninfo_t *" },
 567         { "nfsv4", "op-getattr-done", 1, 0, "struct compound_state *",
 568             "nfsv4opinfo_t *" },
 569         { "nfsv4", "op-getattr-done", 2, 1, "GETATTR4res *" },
 570         { "nfsv4", "op-getfh-start", 0, 0, "struct compound_state *",
 571             "conninfo_t *" },
 572         { "nfsv4", "op-getfh-start", 1, 0, "struct compound_state *",
 573             "nfsv4opinfo_t *" },
 574         { "nfsv4", "op-getfh-done", 0, 0, "struct compound_state *",
 575             "conninfo_t *" },
 576         { "nfsv4", "op-getfh-done", 1, 0, "struct compound_state *",
 577             "nfsv4opinfo_t *" },
 578         { "nfsv4", "op-getfh-done", 2, 1, "GETFH4res *" },
 579         { "nfsv4", "op-link-start", 0, 0, "struct compound_state *",
 580             "conninfo_t *" },
 581         { "nfsv4", "op-link-start", 1, 0, "struct compound_state *",
 582             "nfsv4opinfo_t *" },
 583         { "nfsv4", "op-link-start", 2, 1, "LINK4args *" },
 584         { "nfsv4", "op-link-done", 0, 0, "struct compound_state *",
 585             "conninfo_t *" },
 586         { "nfsv4", "op-link-done", 1, 0, "struct compound_state *",
 587             "nfsv4opinfo_t *" },
 588         { "nfsv4", "op-link-done", 2, 1, "LINK4res *" },
 589         { "nfsv4", "op-lock-start", 0, 0, "struct compound_state *",
 590             "conninfo_t *" },
 591         { "nfsv4", "op-lock-start", 1, 0, "struct compound_state *",
 592             "nfsv4opinfo_t *" },
 593         { "nfsv4", "op-lock-start", 2, 1, "LOCK4args *" },
 594         { "nfsv4", "op-lock-done", 0, 0, "struct compound_state *",
 595             "conninfo_t *" },
 596         { "nfsv4", "op-lock-done", 1, 0, "struct compound_state *",
 597             "nfsv4opinfo_t *" },
 598         { "nfsv4", "op-lock-done", 2, 1, "LOCK4res *" },
 599         { "nfsv4", "op-lockt-start", 0, 0, "struct compound_state *",
 600             "conninfo_t *" },
 601         { "nfsv4", "op-lockt-start", 1, 0, "struct compound_state *",
 602             "nfsv4opinfo_t *" },
 603         { "nfsv4", "op-lockt-start", 2, 1, "LOCKT4args *" },
 604         { "nfsv4", "op-lockt-done", 0, 0, "struct compound_state *",
 605             "conninfo_t *" },
 606         { "nfsv4", "op-lockt-done", 1, 0, "struct compound_state *",
 607             "nfsv4opinfo_t *" },
 608         { "nfsv4", "op-lockt-done", 2, 1, "LOCKT4res *" },
 609         { "nfsv4", "op-locku-start", 0, 0, "struct compound_state *",
 610             "conninfo_t *" },
 611         { "nfsv4", "op-locku-start", 1, 0, "struct compound_state *",
 612             "nfsv4opinfo_t *" },
 613         { "nfsv4", "op-locku-start", 2, 1, "LOCKU4args *" },
 614         { "nfsv4", "op-locku-done", 0, 0, "struct compound_state *",
 615             "conninfo_t *" },
 616         { "nfsv4", "op-locku-done", 1, 0, "struct compound_state *",
 617             "nfsv4opinfo_t *" },
 618         { "nfsv4", "op-locku-done", 2, 1, "LOCKU4res *" },
 619         { "nfsv4", "op-lookup-start", 0, 0, "struct compound_state *",
 620             "conninfo_t *" },
 621         { "nfsv4", "op-lookup-start", 1, 0, "struct compound_state *",
 622             "nfsv4opinfo_t *" },
 623         { "nfsv4", "op-lookup-start", 2, 1, "LOOKUP4args *" },
 624         { "nfsv4", "op-lookup-done", 0, 0, "struct compound_state *",
 625             "conninfo_t *" },
 626         { "nfsv4", "op-lookup-done", 1, 0, "struct compound_state *",
 627             "nfsv4opinfo_t *" },
 628         { "nfsv4", "op-lookup-done", 2, 1, "LOOKUP4res *" },
 629         { "nfsv4", "op-lookupp-start", 0, 0, "struct compound_state *",
 630             "conninfo_t *" },
 631         { "nfsv4", "op-lookupp-start", 1, 0, "struct compound_state *",
 632             "nfsv4opinfo_t *" },
 633         { "nfsv4", "op-lookupp-done", 0, 0, "struct compound_state *",
 634             "conninfo_t *" },
 635         { "nfsv4", "op-lookupp-done", 1, 0, "struct compound_state *",
 636             "nfsv4opinfo_t *" },
 637         { "nfsv4", "op-lookupp-done", 2, 1, "LOOKUPP4res *" },
 638         { "nfsv4", "op-nverify-start", 0, 0, "struct compound_state *",
 639             "conninfo_t *" },
 640         { "nfsv4", "op-nverify-start", 1, 0, "struct compound_state *",
 641             "nfsv4opinfo_t *" },
 642         { "nfsv4", "op-nverify-start", 2, 1, "NVERIFY4args *" },
 643         { "nfsv4", "op-nverify-done", 0, 0, "struct compound_state *",
 644             "conninfo_t *" },
 645         { "nfsv4", "op-nverify-done", 1, 0, "struct compound_state *",
 646             "nfsv4opinfo_t *" },
 647         { "nfsv4", "op-nverify-done", 2, 1, "NVERIFY4res *" },
 648         { "nfsv4", "op-open-start", 0, 0, "struct compound_state *",
 649             "conninfo_t *" },
 650         { "nfsv4", "op-open-start", 1, 0, "struct compound_state *",
 651             "nfsv4opinfo_t *" },
 652         { "nfsv4", "op-open-start", 2, 1, "OPEN4args *" },
 653         { "nfsv4", "op-open-done", 0, 0, "struct compound_state *",
 654             "conninfo_t *" },
 655         { "nfsv4", "op-open-done", 1, 0, "struct compound_state *",
 656             "nfsv4opinfo_t *" },
 657         { "nfsv4", "op-open-done", 2, 1, "OPEN4res *" },
 658         { "nfsv4", "op-open-confirm-start", 0, 0, "struct compound_state *",
 659             "conninfo_t *" },
 660         { "nfsv4", "op-open-confirm-start", 1, 0, "struct compound_state *",
 661             "nfsv4opinfo_t *" },
 662         { "nfsv4", "op-open-confirm-start", 2, 1, "OPEN_CONFIRM4args *" },
 663         { "nfsv4", "op-open-confirm-done", 0, 0, "struct compound_state *",
 664             "conninfo_t *" },
 665         { "nfsv4", "op-open-confirm-done", 1, 0, "struct compound_state *",
 666             "nfsv4opinfo_t *" },
 667         { "nfsv4", "op-open-confirm-done", 2, 1, "OPEN_CONFIRM4res *" },
 668         { "nfsv4", "op-open-downgrade-start", 0, 0, "struct compound_state *",
 669             "conninfo_t *" },
 670         { "nfsv4", "op-open-downgrade-start", 1, 0, "struct compound_state *",
 671             "nfsv4opinfo_t *" },
 672         { "nfsv4", "op-open-downgrade-start", 2, 1, "OPEN_DOWNGRADE4args *" },
 673         { "nfsv4", "op-open-downgrade-done", 0, 0, "struct compound_state *",
 674             "conninfo_t *" },
 675         { "nfsv4", "op-open-downgrade-done", 1, 0, "struct compound_state *",
 676             "nfsv4opinfo_t *" },
 677         { "nfsv4", "op-open-downgrade-done", 2, 1, "OPEN_DOWNGRADE4res *" },
 678         { "nfsv4", "op-openattr-start", 0, 0, "struct compound_state *",
 679             "conninfo_t *" },
 680         { "nfsv4", "op-openattr-start", 1, 0, "struct compound_state *",
 681             "nfsv4opinfo_t *" },
 682         { "nfsv4", "op-openattr-start", 2, 1, "OPENATTR4args *" },
 683         { "nfsv4", "op-openattr-done", 0, 0, "struct compound_state *",
 684             "conninfo_t *" },
 685         { "nfsv4", "op-openattr-done", 1, 0, "struct compound_state *",
 686             "nfsv4opinfo_t *" },
 687         { "nfsv4", "op-openattr-done", 2, 1, "OPENATTR4res *" },
 688         { "nfsv4", "op-putfh-start", 0, 0, "struct compound_state *",
 689             "conninfo_t *" },
 690         { "nfsv4", "op-putfh-start", 1, 0, "struct compound_state *",
 691             "nfsv4opinfo_t *" },
 692         { "nfsv4", "op-putfh-start", 2, 1, "PUTFH4args *" },
 693         { "nfsv4", "op-putfh-done", 0, 0, "struct compound_state *",
 694             "conninfo_t *" },
 695         { "nfsv4", "op-putfh-done", 1, 0, "struct compound_state *",
 696             "nfsv4opinfo_t *" },
 697         { "nfsv4", "op-putfh-done", 2, 1, "PUTFH4res *" },
 698         { "nfsv4", "op-putpubfh-start", 0, 0, "struct compound_state *",
 699             "conninfo_t *" },
 700         { "nfsv4", "op-putpubfh-start", 1, 0, "struct compound_state *",
 701             "nfsv4opinfo_t *" },
 702         { "nfsv4", "op-putpubfh-done", 0, 0, "struct compound_state *",
 703             "conninfo_t *" },
 704         { "nfsv4", "op-putpubfh-done", 1, 0, "struct compound_state *",
 705             "nfsv4opinfo_t *" },
 706         { "nfsv4", "op-putpubfh-done", 2, 1, "PUTPUBFH4res *" },
 707         { "nfsv4", "op-putrootfh-start", 0, 0, "struct compound_state *",
 708             "conninfo_t *" },
 709         { "nfsv4", "op-putrootfh-start", 1, 0, "struct compound_state *",
 710             "nfsv4opinfo_t *" },
 711         { "nfsv4", "op-putrootfh-done", 0, 0, "struct compound_state *",
 712             "conninfo_t *" },
 713         { "nfsv4", "op-putrootfh-done", 1, 0, "struct compound_state *",
 714             "nfsv4opinfo_t *" },
 715         { "nfsv4", "op-putrootfh-done", 2, 1, "PUTROOTFH4res *" },
 716         { "nfsv4", "op-read-start", 0, 0, "struct compound_state *",
 717             "conninfo_t *" },
 718         { "nfsv4", "op-read-start", 1, 0, "struct compound_state *",
 719             "nfsv4opinfo_t *" },
 720         { "nfsv4", "op-read-start", 2, 1, "READ4args *" },
 721         { "nfsv4", "op-read-done", 0, 0, "struct compound_state *",
 722             "conninfo_t *" },
 723         { "nfsv4", "op-read-done", 1, 0, "struct compound_state *",
 724             "nfsv4opinfo_t *" },
 725         { "nfsv4", "op-read-done", 2, 1, "READ4res *" },
 726         { "nfsv4", "op-readdir-start", 0, 0, "struct compound_state *",
 727             "conninfo_t *" },
 728         { "nfsv4", "op-readdir-start", 1, 0, "struct compound_state *",
 729             "nfsv4opinfo_t *" },
 730         { "nfsv4", "op-readdir-start", 2, 1, "READDIR4args *" },
 731         { "nfsv4", "op-readdir-done", 0, 0, "struct compound_state *",
 732             "conninfo_t *" },
 733         { "nfsv4", "op-readdir-done", 1, 0, "struct compound_state *",
 734             "nfsv4opinfo_t *" },
 735         { "nfsv4", "op-readdir-done", 2, 1, "READDIR4res *" },
 736         { "nfsv4", "op-readlink-start", 0, 0, "struct compound_state *",
 737             "conninfo_t *" },
 738         { "nfsv4", "op-readlink-start", 1, 0, "struct compound_state *",
 739             "nfsv4opinfo_t *" },
 740         { "nfsv4", "op-readlink-done", 0, 0, "struct compound_state *",
 741             "conninfo_t *" },
 742         { "nfsv4", "op-readlink-done", 1, 0, "struct compound_state *",
 743             "nfsv4opinfo_t *" },
 744         { "nfsv4", "op-readlink-done", 2, 1, "READLINK4res *" },
 745         { "nfsv4", "op-release-lockowner-start", 0, 0,
 746             "struct compound_state *", "conninfo_t *" },
 747         { "nfsv4", "op-release-lockowner-start", 1, 0,
 748             "struct compound_state *", "nfsv4opinfo_t *" },
 749         { "nfsv4", "op-release-lockowner-start", 2, 1,
 750             "RELEASE_LOCKOWNER4args *" },
 751         { "nfsv4", "op-release-lockowner-done", 0, 0,
 752             "struct compound_state *", "conninfo_t *" },
 753         { "nfsv4", "op-release-lockowner-done", 1, 0,
 754             "struct compound_state *", "nfsv4opinfo_t *" },
 755         { "nfsv4", "op-release-lockowner-done", 2, 1,
 756             "RELEASE_LOCKOWNER4res *" },
 757         { "nfsv4", "op-remove-start", 0, 0, "struct compound_state *",
 758             "conninfo_t *" },
 759         { "nfsv4", "op-remove-start", 1, 0, "struct compound_state *",
 760             "nfsv4opinfo_t *" },
 761         { "nfsv4", "op-remove-start", 2, 1, "REMOVE4args *" },
 762         { "nfsv4", "op-remove-done", 0, 0, "struct compound_state *",
 763             "conninfo_t *" },
 764         { "nfsv4", "op-remove-done", 1, 0, "struct compound_state *",
 765             "nfsv4opinfo_t *" },
 766         { "nfsv4", "op-remove-done", 2, 1, "REMOVE4res *" },
 767         { "nfsv4", "op-rename-start", 0, 0, "struct compound_state *",
 768             "conninfo_t *" },
 769         { "nfsv4", "op-rename-start", 1, 0, "struct compound_state *",
 770             "nfsv4opinfo_t *" },
 771         { "nfsv4", "op-rename-start", 2, 1, "RENAME4args *" },
 772         { "nfsv4", "op-rename-done", 0, 0, "struct compound_state *",
 773             "conninfo_t *" },
 774         { "nfsv4", "op-rename-done", 1, 0, "struct compound_state *",
 775             "nfsv4opinfo_t *" },
 776         { "nfsv4", "op-rename-done", 2, 1, "RENAME4res *" },
 777         { "nfsv4", "op-renew-start", 0, 0, "struct compound_state *",
 778             "conninfo_t *" },
 779         { "nfsv4", "op-renew-start", 1, 0, "struct compound_state *",
 780             "nfsv4opinfo_t *" },
 781         { "nfsv4", "op-renew-start", 2, 1, "RENEW4args *" },
 782         { "nfsv4", "op-renew-done", 0, 0, "struct compound_state *",
 783             "conninfo_t *" },
 784         { "nfsv4", "op-renew-done", 1, 0, "struct compound_state *",
 785             "nfsv4opinfo_t *" },
 786         { "nfsv4", "op-renew-done", 2, 1, "RENEW4res *" },
 787         { "nfsv4", "op-restorefh-start", 0, 0, "struct compound_state *",
 788             "conninfo_t *" },
 789         { "nfsv4", "op-restorefh-start", 1, 0, "struct compound_state *",
 790             "nfsv4opinfo_t *" },
 791         { "nfsv4", "op-restorefh-done", 0, 0, "struct compound_state *",
 792             "conninfo_t *" },
 793         { "nfsv4", "op-restorefh-done", 1, 0, "struct compound_state *",
 794             "nfsv4opinfo_t *" },
 795         { "nfsv4", "op-restorefh-done", 2, 1, "RESTOREFH4res *" },
 796         { "nfsv4", "op-savefh-start", 0, 0, "struct compound_state *",
 797             "conninfo_t *" },
 798         { "nfsv4", "op-savefh-start", 1, 0, "struct compound_state *",
 799             "nfsv4opinfo_t *" },
 800         { "nfsv4", "op-savefh-done", 0, 0, "struct compound_state *",
 801             "conninfo_t *" },
 802         { "nfsv4", "op-savefh-done", 1, 0, "struct compound_state *",
 803             "nfsv4opinfo_t *" },
 804         { "nfsv4", "op-savefh-done", 2, 1, "SAVEFH4res *" },
 805         { "nfsv4", "op-secinfo-start", 0, 0, "struct compound_state *",
 806             "conninfo_t *" },
 807         { "nfsv4", "op-secinfo-start", 1, 0, "struct compound_state *",
 808             "nfsv4opinfo_t *" },
 809         { "nfsv4", "op-secinfo-start", 2, 1, "SECINFO4args *" },
 810         { "nfsv4", "op-secinfo-done", 0, 0, "struct compound_state *",
 811             "conninfo_t *" },
 812         { "nfsv4", "op-secinfo-done", 1, 0, "struct compound_state *",
 813             "nfsv4opinfo_t *" },
 814         { "nfsv4", "op-secinfo-done", 2, 1, "SECINFO4res *" },
 815         { "nfsv4", "op-setattr-start", 0, 0, "struct compound_state *",
 816             "conninfo_t *" },
 817         { "nfsv4", "op-setattr-start", 1, 0, "struct compound_state *",
 818             "nfsv4opinfo_t *" },
 819         { "nfsv4", "op-setattr-start", 2, 1, "SETATTR4args *" },
 820         { "nfsv4", "op-setattr-done", 0, 0, "struct compound_state *",
 821             "conninfo_t *" },
 822         { "nfsv4", "op-setattr-done", 1, 0, "struct compound_state *",
 823             "nfsv4opinfo_t *" },
 824         { "nfsv4", "op-setattr-done", 2, 1, "SETATTR4res *" },
 825         { "nfsv4", "op-setclientid-start", 0, 0, "struct compound_state *",
 826             "conninfo_t *" },
 827         { "nfsv4", "op-setclientid-start", 1, 0, "struct compound_state *",
 828             "nfsv4opinfo_t *" },
 829         { "nfsv4", "op-setclientid-start", 2, 1, "SETCLIENTID4args *" },
 830         { "nfsv4", "op-setclientid-done", 0, 0, "struct compound_state *",
 831             "conninfo_t *" },
 832         { "nfsv4", "op-setclientid-done", 1, 0, "struct compound_state *",
 833             "nfsv4opinfo_t *" },
 834         { "nfsv4", "op-setclientid-done", 2, 1, "SETCLIENTID4res *" },
 835         { "nfsv4", "op-setclientid-confirm-start", 0, 0,
 836             "struct compound_state *", "conninfo_t *" },
 837         { "nfsv4", "op-setclientid-confirm-start", 1, 0,
 838             "struct compound_state *", "nfsv4opinfo_t *" },
 839         { "nfsv4", "op-setclientid-confirm-start", 2, 1,
 840             "SETCLIENTID_CONFIRM4args *" },
 841         { "nfsv4", "op-setclientid-confirm-done", 0, 0,
 842             "struct compound_state *", "conninfo_t *" },
 843         { "nfsv4", "op-setclientid-confirm-done", 1, 0,
 844             "struct compound_state *", "nfsv4opinfo_t *" },
 845         { "nfsv4", "op-setclientid-confirm-done", 2, 1,
 846             "SETCLIENTID_CONFIRM4res *" },
 847         { "nfsv4", "op-verify-start", 0, 0, "struct compound_state *",
 848             "conninfo_t *" },
 849         { "nfsv4", "op-verify-start", 1, 0, "struct compound_state *",
 850             "nfsv4opinfo_t *" },
 851         { "nfsv4", "op-verify-start", 2, 1, "VERIFY4args *" },
 852         { "nfsv4", "op-verify-done", 0, 0, "struct compound_state *",
 853             "conninfo_t *" },
 854         { "nfsv4", "op-verify-done", 1, 0, "struct compound_state *",
 855             "nfsv4opinfo_t *" },
 856         { "nfsv4", "op-verify-done", 2, 1, "VERIFY4res *" },
 857         { "nfsv4", "op-write-start", 0, 0, "struct compound_state *",
 858             "conninfo_t *" },
 859         { "nfsv4", "op-write-start", 1, 0, "struct compound_state *",
 860             "nfsv4opinfo_t *" },
 861         { "nfsv4", "op-write-start", 2, 1, "WRITE4args *" },
 862         { "nfsv4", "op-write-done", 0, 0, "struct compound_state *",
 863             "conninfo_t *" },
 864         { "nfsv4", "op-write-done", 1, 0, "struct compound_state *",
 865             "nfsv4opinfo_t *" },
 866         { "nfsv4", "op-write-done", 2, 1, "WRITE4res *" },
 867         { "nfsv4", "cb-recall-start", 0, 0, "rfs4_client_t *",
 868             "conninfo_t *" },
 869         { "nfsv4", "cb-recall-start", 1, 1, "rfs4_deleg_state_t *",
 870             "nfsv4cbinfo_t *" },
 871         { "nfsv4", "cb-recall-start", 2, 2, "CB_RECALL4args *" },
 872         { "nfsv4", "cb-recall-done", 0, 0, "rfs4_client_t *",
 873             "conninfo_t *" },
 874         { "nfsv4", "cb-recall-done", 1, 1, "rfs4_deleg_state_t *",
 875             "nfsv4cbinfo_t *" },
 876         { "nfsv4", "cb-recall-done", 2, 2, "CB_RECALL4res *" },
 877 
 878         { "ip", "send", 0, 0, "mblk_t *", "pktinfo_t *" },
 879         { "ip", "send", 1, 1, "conn_t *", "csinfo_t *" },
 880         { "ip", "send", 2, 2, "void_ip_t *", "ipinfo_t *" },
 881         { "ip", "send", 3, 3, "__dtrace_ipsr_ill_t *", "ifinfo_t *" },
 882         { "ip", "send", 4, 4, "ipha_t *", "ipv4info_t *" },
 883         { "ip", "send", 5, 5, "ip6_t *", "ipv6info_t *" },
 884         { "ip", "send", 6, 6, "int" }, /* used by __dtrace_ipsr_ill_t */
 885         { "ip", "receive", 0, 0, "mblk_t *", "pktinfo_t *" },
 886         { "ip", "receive", 1, 1, "conn_t *", "csinfo_t *" },
 887         { "ip", "receive", 2, 2, "void_ip_t *", "ipinfo_t *" },
 888         { "ip", "receive", 3, 3, "__dtrace_ipsr_ill_t *", "ifinfo_t *" },
 889         { "ip", "receive", 4, 4, "ipha_t *", "ipv4info_t *" },
 890         { "ip", "receive", 5, 5, "ip6_t *", "ipv6info_t *" },
 891         { "ip", "receive", 6, 6, "int" }, /* used by __dtrace_ipsr_ill_t */
 892 
 893         { "tcp", "connect-established", 0, 0, "mblk_t *", "pktinfo_t *" },
 894         { "tcp", "connect-established", 1, 1, "ip_xmit_attr_t *",
 895             "csinfo_t *" },
 896         { "tcp", "connect-established", 2, 2, "void_ip_t *", "ipinfo_t *" },
 897         { "tcp", "connect-established", 3, 3, "tcp_t *", "tcpsinfo_t *" },
 898         { "tcp", "connect-established", 4, 4, "tcph_t *", "tcpinfo_t *" },
 899         { "tcp", "connect-refused", 0, 0, "mblk_t *", "pktinfo_t *" },
 900         { "tcp", "connect-refused", 1, 1, "ip_xmit_attr_t *", "csinfo_t *" },
 901         { "tcp", "connect-refused", 2, 2, "void_ip_t *", "ipinfo_t *" },
 902         { "tcp", "connect-refused", 3, 3, "tcp_t *", "tcpsinfo_t *" },
 903         { "tcp", "connect-refused", 4, 4, "tcph_t *", "tcpinfo_t *" },
 904         { "tcp", "connect-request", 0, 0, "mblk_t *", "pktinfo_t *" },
 905         { "tcp", "connect-request", 1, 1, "ip_xmit_attr_t *", "csinfo_t *" },
 906         { "tcp", "connect-request", 2, 2, "void_ip_t *", "ipinfo_t *" },
 907         { "tcp", "connect-request", 3, 3, "tcp_t *", "tcpsinfo_t *" },
 908         { "tcp", "connect-request", 4, 4, "tcph_t *", "tcpinfo_t *" },
 909         { "tcp", "accept-established", 0, 0, "mblk_t *", "pktinfo_t *" },
 910         { "tcp", "accept-established", 1, 1, "ip_xmit_attr_t *", "csinfo_t *" },
 911         { "tcp", "accept-established", 2, 2, "void_ip_t *", "ipinfo_t *" },
 912         { "tcp", "accept-established", 3, 3, "tcp_t *", "tcpsinfo_t *" },
 913         { "tcp", "accept-established", 4, 4, "tcph_t *", "tcpinfo_t *" },
 914         { "tcp", "accept-refused", 0, 0, "mblk_t *", "pktinfo_t *" },
 915         { "tcp", "accept-refused", 1, 1, "ip_xmit_attr_t *", "csinfo_t *" },
 916         { "tcp", "accept-refused", 2, 2, "void_ip_t *", "ipinfo_t *" },
 917         { "tcp", "accept-refused", 3, 3, "tcp_t *", "tcpsinfo_t *" },
 918         { "tcp", "accept-refused", 4, 4, "tcph_t *", "tcpinfo_t *" },
 919         { "tcp", "state-change", 0, 0, "void", "void" },
 920         { "tcp", "state-change", 1, 1, "ip_xmit_attr_t *", "csinfo_t *" },
 921         { "tcp", "state-change", 2, 2, "void", "void" },
 922         { "tcp", "state-change", 3, 3, "tcp_t *", "tcpsinfo_t *" },
 923         { "tcp", "state-change", 4, 4, "void", "void" },
 924         { "tcp", "state-change", 5, 5, "int32_t", "tcplsinfo_t *" },
 925         { "tcp", "send", 0, 0, "mblk_t *", "pktinfo_t *" },
 926         { "tcp", "send", 1, 1, "ip_xmit_attr_t *", "csinfo_t *" },
 927         { "tcp", "send", 2, 2, "__dtrace_tcp_void_ip_t *", "ipinfo_t *" },
 928         { "tcp", "send", 3, 3, "tcp_t *", "tcpsinfo_t *" },
 929         { "tcp", "send", 4, 4, "__dtrace_tcp_tcph_t *", "tcpinfo_t *" },
 930         { "tcp", "receive", 0, 0, "mblk_t *", "pktinfo_t *" },
 931         { "tcp", "receive", 1, 1, "ip_xmit_attr_t *", "csinfo_t *" },
 932         { "tcp", "receive", 2, 2, "__dtrace_tcp_void_ip_t *", "ipinfo_t *" },
 933         { "tcp", "receive", 3, 3, "tcp_t *", "tcpsinfo_t *" },
 934         { "tcp", "receive", 4, 4, "__dtrace_tcp_tcph_t *", "tcpinfo_t *" },
 935 
 936         { "udp", "send", 0, 0, "mblk_t *", "pktinfo_t *" },
 937         { "udp", "send", 1, 1, "ip_xmit_attr_t *", "csinfo_t *" },
 938         { "udp", "send", 2, 2, "void_ip_t *", "ipinfo_t *" },
 939         { "udp", "send", 3, 3, "udp_t *", "udpsinfo_t *" },
 940         { "udp", "send", 4, 4, "udpha_t *", "udpinfo_t *" },
 941         { "udp", "receive", 0, 0, "mblk_t *", "pktinfo_t *" },
 942         { "udp", "receive", 1, 1, "ip_xmit_attr_t *", "csinfo_t *" },
 943         { "udp", "receive", 2, 2, "void_ip_t *", "ipinfo_t *" },
 944         { "udp", "receive", 3, 3, "udp_t *", "udpsinfo_t *" },
 945         { "udp", "receive", 4, 4, "udpha_t *", "udpinfo_t *" },
 946 
 947         { "sysevent", "post", 0, 0, "evch_bind_t *", "syseventchaninfo_t *" },
 948         { "sysevent", "post", 1, 1, "sysevent_impl_t *", "syseventinfo_t *" },
 949 
 950         { "xpv", "add-to-physmap-end", 0, 0, "int" },
 951         { "xpv", "add-to-physmap-start", 0, 0, "domid_t" },
 952         { "xpv", "add-to-physmap-start", 1, 1, "uint_t" },
 953         { "xpv", "add-to-physmap-start", 2, 2, "ulong_t" },
 954         { "xpv", "add-to-physmap-start", 3, 3, "ulong_t" },
 955         { "xpv", "decrease-reservation-end", 0, 0, "int" },
 956         { "xpv", "decrease-reservation-start", 0, 0, "domid_t" },
 957         { "xpv", "decrease-reservation-start", 1, 1, "ulong_t" },
 958         { "xpv", "decrease-reservation-start", 2, 2, "uint_t" },
 959         { "xpv", "decrease-reservation-start", 3, 3, "ulong_t *" },
 960         { "xpv", "dom-create-start", 0, 0, "xen_domctl_t *" },
 961         { "xpv", "dom-destroy-start", 0, 0, "domid_t" },
 962         { "xpv", "dom-pause-start", 0, 0, "domid_t" },
 963         { "xpv", "dom-unpause-start", 0, 0, "domid_t" },
 964         { "xpv", "dom-create-end", 0, 0, "int" },
 965         { "xpv", "dom-destroy-end", 0, 0, "int" },
 966         { "xpv", "dom-pause-end", 0, 0, "int" },
 967         { "xpv", "dom-unpause-end", 0, 0, "int" },
 968         { "xpv", "evtchn-op-end", 0, 0, "int" },
 969         { "xpv", "evtchn-op-start", 0, 0, "int" },
 970         { "xpv", "evtchn-op-start", 1, 1, "void *" },
 971         { "xpv", "increase-reservation-end", 0, 0, "int" },
 972         { "xpv", "increase-reservation-start", 0, 0, "domid_t" },
 973         { "xpv", "increase-reservation-start", 1, 1, "ulong_t" },
 974         { "xpv", "increase-reservation-start", 2, 2, "uint_t" },
 975         { "xpv", "increase-reservation-start", 3, 3, "ulong_t *" },
 976         { "xpv", "mmap-end", 0, 0, "int" },
 977         { "xpv", "mmap-entry", 0, 0, "ulong_t" },
 978         { "xpv", "mmap-entry", 1, 1, "ulong_t" },
 979         { "xpv", "mmap-entry", 2, 2, "ulong_t" },
 980         { "xpv", "mmap-start", 0, 0, "domid_t" },
 981         { "xpv", "mmap-start", 1, 1, "int" },
 982         { "xpv", "mmap-start", 2, 2, "privcmd_mmap_entry_t *" },
 983         { "xpv", "mmapbatch-end", 0, 0, "int" },
 984         { "xpv", "mmapbatch-end", 1, 1, "struct seg *" },
 985         { "xpv", "mmapbatch-end", 2, 2, "caddr_t" },
 986         { "xpv", "mmapbatch-start", 0, 0, "domid_t" },
 987         { "xpv", "mmapbatch-start", 1, 1, "int" },
 988         { "xpv", "mmapbatch-start", 2, 2, "caddr_t" },
 989         { "xpv", "mmu-ext-op-end", 0, 0, "int" },
 990         { "xpv", "mmu-ext-op-start", 0, 0, "int" },
 991         { "xpv", "mmu-ext-op-start", 1, 1, "struct mmuext_op *" },
 992         { "xpv", "mmu-update-start", 0, 0, "int" },
 993         { "xpv", "mmu-update-start", 1, 1, "int" },
 994         { "xpv", "mmu-update-start", 2, 2, "mmu_update_t *" },
 995         { "xpv", "mmu-update-end", 0, 0, "int" },
 996         { "xpv", "populate-physmap-end", 0, 0, "int" },
 997         { "xpv", "populate-physmap-start", 0, 0, "domid_t" },
 998         { "xpv", "populate-physmap-start", 1, 1, "ulong_t" },
 999         { "xpv", "populate-physmap-start", 2, 2, "ulong_t *" },
1000         { "xpv", "set-memory-map-end", 0, 0, "int" },
1001         { "xpv", "set-memory-map-start", 0, 0, "domid_t" },
1002         { "xpv", "set-memory-map-start", 1, 1, "int" },
1003         { "xpv", "set-memory-map-start", 2, 2, "struct xen_memory_map *" },
1004         { "xpv", "setvcpucontext-end", 0, 0, "int" },
1005         { "xpv", "setvcpucontext-start", 0, 0, "domid_t" },
1006         { "xpv", "setvcpucontext-start", 1, 1, "vcpu_guest_context_t *" },
1007 
1008         { "srp", "service-up", 0, 0, "srpt_session_t *", "conninfo_t *" },
1009         { "srp", "service-up", 1, 0, "srpt_session_t *", "srp_portinfo_t *" },
1010         { "srp", "service-down", 0, 0, "srpt_session_t *", "conninfo_t *" },
1011         { "srp", "service-down", 1, 0, "srpt_session_t *",
1012             "srp_portinfo_t *" },
1013         { "srp", "login-command", 0, 0, "srpt_session_t *", "conninfo_t *" },
1014         { "srp", "login-command", 1, 0, "srpt_session_t *",
1015             "srp_portinfo_t *" },
1016         { "srp", "login-command", 2, 1, "srp_login_req_t *",
1017             "srp_logininfo_t *" },
1018         { "srp", "login-response", 0, 0, "srpt_session_t *", "conninfo_t *" },
1019         { "srp", "login-response", 1, 0, "srpt_session_t *",
1020             "srp_portinfo_t *" },
1021         { "srp", "login-response", 2, 1, "srp_login_rsp_t *",
1022             "srp_logininfo_t *" },
1023         { "srp", "login-response", 3, 2, "srp_login_rej_t *" },
1024         { "srp", "logout-command", 0, 0, "srpt_channel_t *", "conninfo_t *" },
1025         { "srp", "logout-command", 1, 0, "srpt_channel_t *",
1026             "srp_portinfo_t *" },
1027         { "srp", "task-command", 0, 0, "srpt_channel_t *", "conninfo_t *" },
1028         { "srp", "task-command", 1, 0, "srpt_channel_t *",
1029             "srp_portinfo_t *" },
1030         { "srp", "task-command", 2, 1, "srp_cmd_req_t *", "srp_taskinfo_t *" },
1031         { "srp", "task-response", 0, 0, "srpt_channel_t *", "conninfo_t *" },
1032         { "srp", "task-response", 1, 0, "srpt_channel_t *",
1033             "srp_portinfo_t *" },
1034         { "srp", "task-response", 2, 1, "srp_rsp_t *", "srp_taskinfo_t *" },
1035         { "srp", "task-response", 3, 2, "scsi_task_t *" },
1036         { "srp", "task-response", 4, 3, "int8_t" },
1037         { "srp", "scsi-command", 0, 0, "srpt_channel_t *", "conninfo_t *" },
1038         { "srp", "scsi-command", 1, 0, "srpt_channel_t *",
1039             "srp_portinfo_t *" },
1040         { "srp", "scsi-command", 2, 1, "scsi_task_t *", "scsicmd_t *" },
1041         { "srp", "scsi-command", 3, 2, "srp_cmd_req_t *", "srp_taskinfo_t *" },
1042         { "srp", "scsi-response", 0, 0, "srpt_channel_t *", "conninfo_t *" },
1043         { "srp", "scsi-response", 1, 0, "srpt_channel_t *",
1044             "srp_portinfo_t *" },
1045         { "srp", "scsi-response", 2, 1, "srp_rsp_t *", "srp_taskinfo_t *" },
1046         { "srp", "scsi-response", 3, 2, "scsi_task_t *" },
1047         { "srp", "scsi-response", 4, 3, "int8_t" },
1048         { "srp", "xfer-start", 0, 0, "srpt_channel_t *", "conninfo_t *" },
1049         { "srp", "xfer-start", 1, 0, "srpt_channel_t *",
1050             "srp_portinfo_t *" },
1051         { "srp", "xfer-start", 2, 1, "ibt_wr_ds_t *", "xferinfo_t *" },
1052         { "srp", "xfer-start", 3, 2, "srpt_iu_t *", "srp_taskinfo_t *" },
1053         { "srp", "xfer-start", 4, 3, "ibt_send_wr_t *"},
1054         { "srp", "xfer-start", 5, 4, "uint32_t" },
1055         { "srp", "xfer-start", 6, 5, "uint32_t" },
1056         { "srp", "xfer-start", 7, 6, "uint32_t" },
1057         { "srp", "xfer-start", 8, 7, "uint32_t" },
1058         { "srp", "xfer-done", 0, 0, "srpt_channel_t *", "conninfo_t *" },
1059         { "srp", "xfer-done", 1, 0, "srpt_channel_t *",
1060             "srp_portinfo_t *" },
1061         { "srp", "xfer-done", 2, 1, "ibt_wr_ds_t *", "xferinfo_t *" },
1062         { "srp", "xfer-done", 3, 2, "srpt_iu_t *", "srp_taskinfo_t *" },
1063         { "srp", "xfer-done", 4, 3, "ibt_send_wr_t *"},
1064         { "srp", "xfer-done", 5, 4, "uint32_t" },
1065         { "srp", "xfer-done", 6, 5, "uint32_t" },
1066         { "srp", "xfer-done", 7, 6, "uint32_t" },
1067         { "srp", "xfer-done", 8, 7, "uint32_t" },
1068 
1069         { "fc", "link-up",   0, 0, "fct_i_local_port_t *", "conninfo_t *" },
1070         { "fc", "link-down", 0, 0, "fct_i_local_port_t *", "conninfo_t *" },
1071         { "fc", "fabric-login-start", 0, 0, "fct_i_local_port_t *",
1072             "conninfo_t *" },
1073         { "fc", "fabric-login-start", 1, 0, "fct_i_local_port_t *",
1074             "fc_port_info_t *" },
1075         { "fc", "fabric-login-end", 0, 0, "fct_i_local_port_t *",
1076             "conninfo_t *" },
1077         { "fc", "fabric-login-end", 1, 0, "fct_i_local_port_t *",
1078             "fc_port_info_t *" },
1079         { "fc", "rport-login-start", 0, 0, "fct_cmd_t *",
1080             "conninfo_t *" },
1081         { "fc", "rport-login-start", 1, 1, "fct_local_port_t *",
1082             "fc_port_info_t *" },
1083         { "fc", "rport-login-start", 2, 2, "fct_i_remote_port_t *",
1084             "fc_port_info_t *" },
1085         { "fc", "rport-login-start", 3, 3, "int", "int" },
1086         { "fc", "rport-login-end", 0, 0, "fct_cmd_t *",
1087             "conninfo_t *" },
1088         { "fc", "rport-login-end", 1, 1, "fct_local_port_t *",
1089             "fc_port_info_t *" },
1090         { "fc", "rport-login-end", 2, 2, "fct_i_remote_port_t *",
1091             "fc_port_info_t *" },
1092         { "fc", "rport-login-end", 3, 3, "int", "int" },
1093         { "fc", "rport-login-end", 4, 4, "int", "int" },
1094         { "fc", "rport-logout-start", 0, 0, "fct_cmd_t *",
1095             "conninfo_t *" },
1096         { "fc", "rport-logout-start", 1, 1, "fct_local_port_t *",
1097             "fc_port_info_t *" },
1098         { "fc", "rport-logout-start", 2, 2, "fct_i_remote_port_t *",
1099             "fc_port_info_t *" },
1100         { "fc", "rport-logout-start", 3, 3, "int", "int" },
1101         { "fc", "rport-logout-end", 0, 0, "fct_cmd_t *",
1102             "conninfo_t *" },
1103         { "fc", "rport-logout-end", 1, 1, "fct_local_port_t *",
1104             "fc_port_info_t *" },
1105         { "fc", "rport-logout-end", 2, 2, "fct_i_remote_port_t *",
1106             "fc_port_info_t *" },
1107         { "fc", "rport-logout-end", 3, 3, "int", "int" },
1108         { "fc", "scsi-command", 0, 0, "fct_cmd_t *",
1109             "conninfo_t *" },
1110         { "fc", "scsi-command", 1, 1, "fct_i_local_port_t *",
1111             "fc_port_info_t *" },
1112         { "fc", "scsi-command", 2, 2, "scsi_task_t *",
1113             "scsicmd_t *" },
1114         { "fc", "scsi-command", 3, 3, "fct_i_remote_port_t *",
1115             "fc_port_info_t *" },
1116         { "fc", "scsi-response", 0, 0, "fct_cmd_t *",
1117             "conninfo_t *" },
1118         { "fc", "scsi-response", 1, 1, "fct_i_local_port_t *",
1119             "fc_port_info_t *" },
1120         { "fc", "scsi-response", 2, 2, "scsi_task_t *",
1121             "scsicmd_t *" },
1122         { "fc", "scsi-response", 3, 3, "fct_i_remote_port_t *",
1123             "fc_port_info_t *" },
1124         { "fc", "xfer-start", 0, 0, "fct_cmd_t *",
1125             "conninfo_t *" },
1126         { "fc", "xfer-start", 1, 1, "fct_i_local_port_t *",
1127             "fc_port_info_t *" },
1128         { "fc", "xfer-start", 2, 2, "scsi_task_t *",
1129             "scsicmd_t *" },
1130         { "fc", "xfer-start", 3, 3, "fct_i_remote_port_t *",
1131             "fc_port_info_t *" },
1132         { "fc", "xfer-start", 4, 4, "stmf_data_buf_t *",
1133             "fc_xferinfo_t *" },
1134         { "fc", "xfer-done", 0, 0, "fct_cmd_t *",
1135             "conninfo_t *" },
1136         { "fc", "xfer-done", 1, 1, "fct_i_local_port_t *",
1137             "fc_port_info_t *" },
1138         { "fc", "xfer-done", 2, 2, "scsi_task_t *",
1139             "scsicmd_t *" },
1140         { "fc", "xfer-done", 3, 3, "fct_i_remote_port_t *",
1141             "fc_port_info_t *" },
1142         { "fc", "xfer-done", 4, 4, "stmf_data_buf_t *",
1143             "fc_xferinfo_t *" },
1144         { "fc", "rscn-receive", 0, 0, "fct_i_local_port_t *",
1145             "conninfo_t *" },
1146         { "fc", "rscn-receive", 1, 1, "int", "int"},
1147         { "fc", "abts-receive", 0, 0, "fct_cmd_t *",
1148             "conninfo_t *" },
1149         { "fc", "abts-receive", 1, 1, "fct_i_local_port_t *",
1150             "fc_port_info_t *" },
1151         { "fc", "abts-receive", 2, 2, "fct_i_remote_port_t *",
1152             "fc_port_info_t *" },
1153 
1154 
1155         { NULL }
1156 };
1157 
1158 /*ARGSUSED*/
1159 int
1160 sdt_mode(void *arg, dtrace_id_t id, void *parg)
1161 {
1162         /*
1163          * We tell DTrace that we're in kernel mode, that the firing needs to
1164          * be dropped for anything that doesn't have necessary privileges, and
1165          * that it needs to be restricted for anything that has restricted
1166          * (i.e., not all-zone) privileges.
1167          */
1168         return (DTRACE_MODE_KERNEL | DTRACE_MODE_NOPRIV_DROP |
1169             DTRACE_MODE_LIMITEDPRIV_RESTRICT);
1170 }
1171 
1172 /*ARGSUSED*/
1173 void
1174 sdt_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc)
1175 {
1176         sdt_probe_t *sdp = parg;
1177         int i;
1178 
1179         desc->dtargd_native[0] = '\0';
1180         desc->dtargd_xlate[0] = '\0';
1181 
1182         for (i = 0; sdt_args[i].sda_provider != NULL; i++) {
1183                 sdt_argdesc_t *a = &sdt_args[i];
1184 
1185                 if (strcmp(sdp->sdp_provider->sdtp_name, a->sda_provider) != 0)
1186                         continue;
1187 
1188                 if (a->sda_name != NULL &&
1189                     strcmp(sdp->sdp_name, a->sda_name) != 0)
1190                         continue;
1191 
1192                 if (desc->dtargd_ndx != a->sda_ndx)
1193                         continue;
1194 
1195                 if (a->sda_native != NULL)
1196                         (void) strcpy(desc->dtargd_native, a->sda_native);
1197 
1198                 if (a->sda_xlate != NULL)
1199                         (void) strcpy(desc->dtargd_xlate, a->sda_xlate);
1200 
1201                 desc->dtargd_mapping = a->sda_mapping;
1202                 return;
1203         }
1204 
1205         desc->dtargd_ndx = DTRACE_ARGNONE;
1206 }