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  * Copyright 2017 Nexenta Systems, Inc.  All rights reserved.
  25  */
  26 
  27 #include <sys/sdt_impl.h>
  28 
  29 static dtrace_pattr_t vtrace_attr = {
  30 { DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_ISA },
  31 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  32 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  33 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  34 { DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_ISA },
  35 };
  36 
  37 static dtrace_pattr_t info_attr = {
  38 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  39 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  40 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  41 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  42 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  43 };
  44 
 
  81 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  82 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  83 };
  84 
  85 static dtrace_pattr_t xpv_attr = {
  86 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_PLATFORM },
  87 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  88 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  89 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
  90 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
  91 };
  92 
  93 static dtrace_pattr_t iscsi_attr = {
  94 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  95 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  96 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  97 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  98 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  99 };
 100 
 101 static dtrace_pattr_t smb_attr = {
 102 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
 103 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
 104 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
 105 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
 106 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
 107 };
 108 
 109 sdt_provider_t sdt_providers[] = {
 110         { "vtrace", "__vtrace_", &vtrace_attr },
 111         { "sysinfo", "__cpu_sysinfo_", &info_attr, DTRACE_PRIV_USER },
 112         { "vminfo", "__cpu_vminfo_", &info_attr, DTRACE_PRIV_USER },
 113         { "fpuinfo", "__fpuinfo_", &fpu_attr },
 114         { "sched", "__sched_", &stab_attr, DTRACE_PRIV_USER },
 115         { "proc", "__proc_", &stab_attr, DTRACE_PRIV_USER },
 116         { "io", "__io_", &stab_attr },
 117         { "ip", "__ip_", &stab_attr },
 118         { "tcp", "__tcp_", &stab_attr },
 119         { "udp", "__udp_", &stab_attr },
 120         { "mib", "__mib_", &stab_attr },
 121         { "fsinfo", "__fsinfo_", &fsinfo_attr },
 122         { "iscsi", "__iscsi_", &iscsi_attr },
 123         { "nfsv3", "__nfsv3_", &stab_attr },
 124         { "nfsv4", "__nfsv4_", &stab_attr },
 125         { "smb", "__smb_", &smb_attr },
 126         { "smb2", "__smb2_", &smb_attr },
 127         { "xpv", "__xpv_", &xpv_attr },
 128         { "fc", "__fc_", &fc_attr },
 129         { "srp", "__srp_", &fc_attr },
 130         { "sysevent", "__sysevent_", &stab_attr },
 131         { "sdt", NULL, &sdt_attr },
 132         { NULL }
 133 };
 134 
 135 sdt_argdesc_t sdt_args[] = {
 136         { "sched", "wakeup", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 137         { "sched", "wakeup", 1, 0, "kthread_t *", "psinfo_t *" },
 138         { "sched", "dequeue", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 139         { "sched", "dequeue", 1, 0, "kthread_t *", "psinfo_t *" },
 140         { "sched", "dequeue", 2, 1, "disp_t *", "cpuinfo_t *" },
 141         { "sched", "enqueue", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 142         { "sched", "enqueue", 1, 0, "kthread_t *", "psinfo_t *" },
 143         { "sched", "enqueue", 2, 1, "disp_t *", "cpuinfo_t *" },
 144         { "sched", "enqueue", 3, 2, "int" },
 
 250             "iscsiinfo_t *" },
 251         { "iscsi", "xfer-start", 0, 0, "idm_conn_t *", "conninfo_t *" },
 252         { "iscsi", "xfer-start", 1, 0, "idm_conn_t *", "iscsiinfo_t *" },
 253         { "iscsi", "xfer-start", 2, 1, "uintptr_t", "xferinfo_t *" },
 254         { "iscsi", "xfer-start", 3, 2, "uint32_t"},
 255         { "iscsi", "xfer-start", 4, 3, "uintptr_t"},
 256         { "iscsi", "xfer-start", 5, 4, "uint32_t"},
 257         { "iscsi", "xfer-start", 6, 5, "uint32_t"},
 258         { "iscsi", "xfer-start", 7, 6, "uint32_t"},
 259         { "iscsi", "xfer-start", 8, 7, "int"},
 260         { "iscsi", "xfer-done", 0, 0, "idm_conn_t *", "conninfo_t *" },
 261         { "iscsi", "xfer-done", 1, 0, "idm_conn_t *", "iscsiinfo_t *" },
 262         { "iscsi", "xfer-done", 2, 1, "uintptr_t", "xferinfo_t *" },
 263         { "iscsi", "xfer-done", 3, 2, "uint32_t"},
 264         { "iscsi", "xfer-done", 4, 3, "uintptr_t"},
 265         { "iscsi", "xfer-done", 5, 4, "uint32_t"},
 266         { "iscsi", "xfer-done", 6, 5, "uint32_t"},
 267         { "iscsi", "xfer-done", 7, 6, "uint32_t"},
 268         { "iscsi", "xfer-done", 8, 7, "int"},
 269 
 270         { "nfsv3", "op-getattr-start", 0, 0, "struct svc_req *",
 271             "conninfo_t *" },
 272         { "nfsv3", "op-getattr-start", 1, 1, "nfsv3oparg_t *",
 273             "nfsv3opinfo_t *" },
 274         { "nfsv3", "op-getattr-start", 2, 3, "GETATTR3args *" },
 275         { "nfsv3", "op-getattr-done", 0, 0, "struct svc_req *",
 276             "conninfo_t *" },
 277         { "nfsv3", "op-getattr-done", 1, 1, "nfsv3oparg_t *",
 278             "nfsv3opinfo_t *" },
 279         { "nfsv3", "op-getattr-done", 2, 3, "GETATTR3res *" },
 280         { "nfsv3", "op-setattr-start", 0, 0, "struct svc_req *",
 281             "conninfo_t *" },
 282         { "nfsv3", "op-setattr-start", 1, 1, "nfsv3oparg_t *",
 283             "nfsv3opinfo_t *" },
 284         { "nfsv3", "op-setattr-start", 2, 3, "SETATTR3args *" },
 285         { "nfsv3", "op-setattr-done", 0, 0, "struct svc_req *",
 286             "conninfo_t *" },
 287         { "nfsv3", "op-setattr-done", 1, 1, "nfsv3oparg_t *",
 288             "nfsv3opinfo_t *" },
 289         { "nfsv3", "op-setattr-done", 2, 3, "SETATTR3res *" },
 290         { "nfsv3", "op-lookup-start", 0, 0, "struct svc_req *",
 291             "conninfo_t *" },
 292         { "nfsv3", "op-lookup-start", 1, 1, "nfsv3oparg_t *",
 293             "nfsv3opinfo_t *" },
 294         { "nfsv3", "op-lookup-start", 2, 3, "LOOKUP3args *" },
 295         { "nfsv3", "op-lookup-done", 0, 0, "struct svc_req *",
 296             "conninfo_t *" },
 297         { "nfsv3", "op-lookup-done", 1, 1, "nfsv3oparg_t *",
 298             "nfsv3opinfo_t *" },
 299         { "nfsv3", "op-lookup-done", 2, 3, "LOOKUP3res *" },
 300         { "nfsv3", "op-access-start", 0, 0, "struct svc_req *",
 301             "conninfo_t *" },
 302         { "nfsv3", "op-access-start", 1, 1, "nfsv3oparg_t *",
 303             "nfsv3opinfo_t *" },
 304         { "nfsv3", "op-access-start", 2, 3, "ACCESS3args *" },
 305         { "nfsv3", "op-access-done", 0, 0, "struct svc_req *",
 306             "conninfo_t *" },
 307         { "nfsv3", "op-access-done", 1, 1, "nfsv3oparg_t *",
 308             "nfsv3opinfo_t *" },
 309         { "nfsv3", "op-access-done", 2, 3, "ACCESS3res *" },
 310         { "nfsv3", "op-commit-start", 0, 0, "struct svc_req *",
 311             "conninfo_t *" },
 312         { "nfsv3", "op-commit-start", 1, 1, "nfsv3oparg_t *",
 313             "nfsv3opinfo_t *" },
 314         { "nfsv3", "op-commit-start", 2, 3, "COMMIT3args *" },
 315         { "nfsv3", "op-commit-done", 0, 0, "struct svc_req *",
 316             "conninfo_t *" },
 317         { "nfsv3", "op-commit-done", 1, 1, "nfsv3oparg_t *",
 318             "nfsv3opinfo_t *" },
 319         { "nfsv3", "op-commit-done", 2, 3, "COMMIT3res *" },
 320         { "nfsv3", "op-create-start", 0, 0, "struct svc_req *",
 321             "conninfo_t *" },
 322         { "nfsv3", "op-create-start", 1, 1, "nfsv3oparg_t *",
 323             "nfsv3opinfo_t *" },
 324         { "nfsv3", "op-create-start", 2, 3, "CREATE3args *" },
 325         { "nfsv3", "op-create-done", 0, 0, "struct svc_req *",
 326             "conninfo_t *" },
 327         { "nfsv3", "op-create-done", 1, 1, "nfsv3oparg_t *",
 328             "nfsv3opinfo_t *" },
 329         { "nfsv3", "op-create-done", 2, 3, "CREATE3res *" },
 330         { "nfsv3", "op-fsinfo-start", 0, 0, "struct svc_req *",
 331             "conninfo_t *" },
 332         { "nfsv3", "op-fsinfo-start", 1, 1, "nfsv3oparg_t *",
 333             "nfsv3opinfo_t *" },
 334         { "nfsv3", "op-fsinfo-start", 2, 3, "FSINFO3args *" },
 335         { "nfsv3", "op-fsinfo-done", 0, 0, "struct svc_req *",
 336             "conninfo_t *" },
 337         { "nfsv3", "op-fsinfo-done", 1, 1, "nfsv3oparg_t *",
 338             "nfsv3opinfo_t *" },
 339         { "nfsv3", "op-fsinfo-done", 2, 3, "FSINFO3res *" },
 340         { "nfsv3", "op-fsstat-start", 0, 0, "struct svc_req *",
 341             "conninfo_t *" },
 342         { "nfsv3", "op-fsstat-start", 1, 1, "nfsv3oparg_t *",
 343             "nfsv3opinfo_t *" },
 344         { "nfsv3", "op-fsstat-start", 2, 3, "FSSTAT3args *" },
 345         { "nfsv3", "op-fsstat-done", 0, 0, "struct svc_req *",
 346             "conninfo_t *" },
 347         { "nfsv3", "op-fsstat-done", 1, 1, "nfsv3oparg_t *",
 348             "nfsv3opinfo_t *" },
 349         { "nfsv3", "op-fsstat-done", 2, 3, "FSSTAT3res *" },
 350         { "nfsv3", "op-link-start", 0, 0, "struct svc_req *",
 351             "conninfo_t *" },
 352         { "nfsv3", "op-link-start", 1, 1, "nfsv3oparg_t *",
 353             "nfsv3opinfo_t *" },
 354         { "nfsv3", "op-link-start", 2, 3, "LINK3args *" },
 355         { "nfsv3", "op-link-done", 0, 0, "struct svc_req *",
 356             "conninfo_t *" },
 357         { "nfsv3", "op-link-done", 1, 1, "nfsv3oparg_t *",
 358             "nfsv3opinfo_t *" },
 359         { "nfsv3", "op-link-done", 2, 3, "LINK3res *" },
 360         { "nfsv3", "op-mkdir-start", 0, 0, "struct svc_req *",
 361             "conninfo_t *" },
 362         { "nfsv3", "op-mkdir-start", 1, 1, "nfsv3oparg_t *",
 363             "nfsv3opinfo_t *" },
 364         { "nfsv3", "op-mkdir-start", 2, 3, "MKDIR3args *" },
 365         { "nfsv3", "op-mkdir-done", 0, 0, "struct svc_req *",
 366             "conninfo_t *" },
 367         { "nfsv3", "op-mkdir-done", 1, 1, "nfsv3oparg_t *",
 368             "nfsv3opinfo_t *" },
 369         { "nfsv3", "op-mkdir-done", 2, 3, "MKDIR3res *" },
 370         { "nfsv3", "op-mknod-start", 0, 0, "struct svc_req *",
 371             "conninfo_t *" },
 372         { "nfsv3", "op-mknod-start", 1, 1, "nfsv3oparg_t *",
 373             "nfsv3opinfo_t *" },
 374         { "nfsv3", "op-mknod-start", 2, 3, "MKNOD3args *" },
 375         { "nfsv3", "op-mknod-done", 0, 0, "struct svc_req *",
 376             "conninfo_t *" },
 377         { "nfsv3", "op-mknod-done", 1, 1, "nfsv3oparg_t *",
 378             "nfsv3opinfo_t *" },
 379         { "nfsv3", "op-mknod-done", 2, 3, "MKNOD3res *" },
 380         { "nfsv3", "op-null-start", 0, 0, "struct svc_req *",
 381             "conninfo_t *" },
 382         { "nfsv3", "op-null-start", 1, 1, "nfsv3oparg_t *",
 383             "nfsv3opinfo_t *" },
 384         { "nfsv3", "op-null-done", 0, 0, "struct svc_req *",
 385             "conninfo_t *" },
 386         { "nfsv3", "op-null-done", 1, 1, "nfsv3oparg_t *",
 387             "nfsv3opinfo_t *" },
 388         { "nfsv3", "op-pathconf-start", 0, 0, "struct svc_req *",
 389             "conninfo_t *" },
 390         { "nfsv3", "op-pathconf-start", 1, 1, "nfsv3oparg_t *",
 391             "nfsv3opinfo_t *" },
 392         { "nfsv3", "op-pathconf-start", 2, 3, "PATHCONF3args *" },
 393         { "nfsv3", "op-pathconf-done", 0, 0, "struct svc_req *",
 394             "conninfo_t *" },
 395         { "nfsv3", "op-pathconf-done", 1, 1, "nfsv3oparg_t *",
 396             "nfsv3opinfo_t *" },
 397         { "nfsv3", "op-pathconf-done", 2, 3, "PATHCONF3res *" },
 398         { "nfsv3", "op-read-start", 0, 0, "struct svc_req *",
 399             "conninfo_t *" },
 400         { "nfsv3", "op-read-start", 1, 1, "nfsv3oparg_t *",
 401             "nfsv3opinfo_t *" },
 402         { "nfsv3", "op-read-start", 2, 3, "READ3args *" },
 403         { "nfsv3", "op-read-done", 0, 0, "struct svc_req *",
 404             "conninfo_t *" },
 405         { "nfsv3", "op-read-done", 1, 1, "nfsv3oparg_t *",
 406             "nfsv3opinfo_t *" },
 407         { "nfsv3", "op-read-done", 2, 3, "READ3res *" },
 408         { "nfsv3", "op-readdir-start", 0, 0, "struct svc_req *",
 409             "conninfo_t *" },
 410         { "nfsv3", "op-readdir-start", 1, 1, "nfsv3oparg_t *",
 411             "nfsv3opinfo_t *" },
 412         { "nfsv3", "op-readdir-start", 2, 3, "READDIR3args *" },
 413         { "nfsv3", "op-readdir-done", 0, 0, "struct svc_req *",
 414             "conninfo_t *" },
 415         { "nfsv3", "op-readdir-done", 1, 1, "nfsv3oparg_t *",
 416             "nfsv3opinfo_t *" },
 417         { "nfsv3", "op-readdir-done", 2, 3, "READDIR3res *" },
 418         { "nfsv3", "op-readdirplus-start", 0, 0, "struct svc_req *",
 419             "conninfo_t *" },
 420         { "nfsv3", "op-readdirplus-start", 1, 1, "nfsv3oparg_t *",
 421             "nfsv3opinfo_t *" },
 422         { "nfsv3", "op-readdirplus-start", 2, 3, "READDIRPLUS3args *" },
 423         { "nfsv3", "op-readdirplus-done", 0, 0, "struct svc_req *",
 424             "conninfo_t *" },
 425         { "nfsv3", "op-readdirplus-done", 1, 1, "nfsv3oparg_t *",
 426             "nfsv3opinfo_t *" },
 427         { "nfsv3", "op-readdirplus-done", 2, 3, "READDIRPLUS3res *" },
 428         { "nfsv3", "op-readlink-start", 0, 0, "struct svc_req *",
 429             "conninfo_t *" },
 430         { "nfsv3", "op-readlink-start", 1, 1, "nfsv3oparg_t *",
 431             "nfsv3opinfo_t *" },
 432         { "nfsv3", "op-readlink-start", 2, 3, "READLINK3args *" },
 433         { "nfsv3", "op-readlink-done", 0, 0, "struct svc_req *",
 434             "conninfo_t *" },
 435         { "nfsv3", "op-readlink-done", 1, 1, "nfsv3oparg_t *",
 436             "nfsv3opinfo_t *" },
 437         { "nfsv3", "op-readlink-done", 2, 3, "READLINK3res *" },
 438         { "nfsv3", "op-remove-start", 0, 0, "struct svc_req *",
 439             "conninfo_t *" },
 440         { "nfsv3", "op-remove-start", 1, 1, "nfsv3oparg_t *",
 441             "nfsv3opinfo_t *" },
 442         { "nfsv3", "op-remove-start", 2, 3, "REMOVE3args *" },
 443         { "nfsv3", "op-remove-done", 0, 0, "struct svc_req *",
 444             "conninfo_t *" },
 445         { "nfsv3", "op-remove-done", 1, 1, "nfsv3oparg_t *",
 446             "nfsv3opinfo_t *" },
 447         { "nfsv3", "op-remove-done", 2, 3, "REMOVE3res *" },
 448         { "nfsv3", "op-rename-start", 0, 0, "struct svc_req *",
 449             "conninfo_t *" },
 450         { "nfsv3", "op-rename-start", 1, 1, "nfsv3oparg_t *",
 451             "nfsv3opinfo_t *" },
 452         { "nfsv3", "op-rename-start", 2, 3, "RENAME3args *" },
 453         { "nfsv3", "op-rename-done", 0, 0, "struct svc_req *",
 454             "conninfo_t *" },
 455         { "nfsv3", "op-rename-done", 1, 1, "nfsv3oparg_t *",
 456             "nfsv3opinfo_t *" },
 457         { "nfsv3", "op-rename-done", 2, 3, "RENAME3res *" },
 458         { "nfsv3", "op-rmdir-start", 0, 0, "struct svc_req *",
 459             "conninfo_t *" },
 460         { "nfsv3", "op-rmdir-start", 1, 1, "nfsv3oparg_t *",
 461             "nfsv3opinfo_t *" },
 462         { "nfsv3", "op-rmdir-start", 2, 3, "RMDIR3args *" },
 463         { "nfsv3", "op-rmdir-done", 0, 0, "struct svc_req *",
 464             "conninfo_t *" },
 465         { "nfsv3", "op-rmdir-done", 1, 1, "nfsv3oparg_t *",
 466             "nfsv3opinfo_t *" },
 467         { "nfsv3", "op-rmdir-done", 2, 3, "RMDIR3res *" },
 468         { "nfsv3", "op-setattr-start", 0, 0, "struct svc_req *",
 469             "conninfo_t *" },
 470         { "nfsv3", "op-setattr-start", 1, 1, "nfsv3oparg_t *",
 471             "nfsv3opinfo_t *" },
 472         { "nfsv3", "op-setattr-start", 2, 3, "SETATTR3args *" },
 473         { "nfsv3", "op-setattr-done", 0, 0, "struct svc_req *",
 474             "conninfo_t *" },
 475         { "nfsv3", "op-setattr-done", 1, 1, "nfsv3oparg_t *",
 476             "nfsv3opinfo_t *" },
 477         { "nfsv3", "op-setattr-done", 2, 3, "SETATTR3res *" },
 478         { "nfsv3", "op-symlink-start", 0, 0, "struct svc_req *",
 479             "conninfo_t *" },
 480         { "nfsv3", "op-symlink-start", 1, 1, "nfsv3oparg_t *",
 481             "nfsv3opinfo_t *" },
 482         { "nfsv3", "op-symlink-start", 2, 3, "SYMLINK3args *" },
 483         { "nfsv3", "op-symlink-done", 0, 0, "struct svc_req *",
 484             "conninfo_t *" },
 485         { "nfsv3", "op-symlink-done", 1, 1, "nfsv3oparg_t *",
 486             "nfsv3opinfo_t *" },
 487         { "nfsv3", "op-symlink-done", 2, 3, "SYMLINK3res *" },
 488         { "nfsv3", "op-write-start", 0, 0, "struct svc_req *",
 489             "conninfo_t *" },
 490         { "nfsv3", "op-write-start", 1, 1, "nfsv3oparg_t *",
 491             "nfsv3opinfo_t *" },
 492         { "nfsv3", "op-write-start", 2, 3, "WRITE3args *" },
 493         { "nfsv3", "op-write-done", 0, 0, "struct svc_req *",
 494             "conninfo_t *" },
 495         { "nfsv3", "op-write-done", 1, 1, "nfsv3oparg_t *",
 496             "nfsv3opinfo_t *" },
 497         { "nfsv3", "op-write-done", 2, 3, "WRITE3res *" },
 498 
 499         { "nfsv4", "null-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 500         { "nfsv4", "null-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 501         { "nfsv4", "compound-start", 0, 0, "struct compound_state *",
 502             "conninfo_t *" },
 503         { "nfsv4", "compound-start", 1, 0, "struct compound_state *",
 504             "nfsv4opinfo_t *" },
 505         { "nfsv4", "compound-start", 2, 1, "COMPOUND4args *" },
 506         { "nfsv4", "compound-done", 0, 0, "struct compound_state *",
 507             "conninfo_t *" },
 508         { "nfsv4", "compound-done", 1, 0, "struct compound_state *",
 509             "nfsv4opinfo_t *" },
 510         { "nfsv4", "compound-done", 2, 1, "COMPOUND4res *" },
 511         { "nfsv4", "op-access-start", 0, 0, "struct compound_state *",
 512             "conninfo_t *"},
 513         { "nfsv4", "op-access-start", 1, 0, "struct compound_state *",
 514             "nfsv4opinfo_t *" },
 515         { "nfsv4", "op-access-start", 2, 1, "ACCESS4args *" },
 516         { "nfsv4", "op-access-done", 0, 0, "struct compound_state *",
 517             "conninfo_t *" },
 518         { "nfsv4", "op-access-done", 1, 0, "struct compound_state *",
 519             "nfsv4opinfo_t *" },
 520         { "nfsv4", "op-access-done", 2, 1, "ACCESS4res *" },
 521         { "nfsv4", "op-close-start", 0, 0, "struct compound_state *",
 522             "conninfo_t *" },
 523         { "nfsv4", "op-close-start", 1, 0, "struct compound_state *",
 524             "nfsv4opinfo_t *" },
 525         { "nfsv4", "op-close-start", 2, 1, "CLOSE4args *" },
 526         { "nfsv4", "op-close-done", 0, 0, "struct compound_state *",
 527             "conninfo_t *" },
 528         { "nfsv4", "op-close-done", 1, 0, "struct compound_state *",
 529             "nfsv4opinfo_t *" },
 530         { "nfsv4", "op-close-done", 2, 1, "CLOSE4res *" },
 531         { "nfsv4", "op-commit-start", 0, 0, "struct compound_state *",
 532             "conninfo_t *" },
 533         { "nfsv4", "op-commit-start", 1, 0, "struct compound_state *",
 534             "nfsv4opinfo_t *" },
 535         { "nfsv4", "op-commit-start", 2, 1, "COMMIT4args *" },
 536         { "nfsv4", "op-commit-done", 0, 0, "struct compound_state *",
 537             "conninfo_t *" },
 538         { "nfsv4", "op-commit-done", 1, 0, "struct compound_state *",
 539             "nfsv4opinfo_t *" },
 540         { "nfsv4", "op-commit-done", 2, 1, "COMMIT4res *" },
 541         { "nfsv4", "op-create-start", 0, 0, "struct compound_state *",
 542             "conninfo_t *" },
 543         { "nfsv4", "op-create-start", 1, 0, "struct compound_state *",
 544             "nfsv4opinfo_t *" },
 545         { "nfsv4", "op-create-start", 2, 1, "CREATE4args *" },
 546         { "nfsv4", "op-create-done", 0, 0, "struct compound_state *",
 547             "conninfo_t *" },
 548         { "nfsv4", "op-create-done", 1, 0, "struct compound_state *",
 549             "nfsv4opinfo_t *" },
 550         { "nfsv4", "op-create-done", 2, 1, "CREATE4res *" },
 551         { "nfsv4", "op-delegpurge-start", 0, 0, "struct compound_state *",
 552             "conninfo_t *" },
 553         { "nfsv4", "op-delegpurge-start", 1, 0, "struct compound_state *",
 554             "nfsv4opinfo_t *" },
 555         { "nfsv4", "op-delegpurge-start", 2, 1, "DELEGPURGE4args *" },
 556         { "nfsv4", "op-delegpurge-done", 0, 0, "struct compound_state *",
 557             "conninfo_t *" },
 558         { "nfsv4", "op-delegpurge-done", 1, 0, "struct compound_state *",
 559             "nfsv4opinfo_t *" },
 560         { "nfsv4", "op-delegpurge-done", 2, 1, "DELEGPURGE4res *" },
 561         { "nfsv4", "op-delegreturn-start", 0, 0, "struct compound_state *",
 562             "conninfo_t *" },
 563         { "nfsv4", "op-delegreturn-start", 1, 0, "struct compound_state *",
 564             "nfsv4opinfo_t *" },
 565         { "nfsv4", "op-delegreturn-start", 2, 1, "DELEGRETURN4args *" },
 566         { "nfsv4", "op-delegreturn-done", 0, 0, "struct compound_state *",
 567             "conninfo_t *" },
 568         { "nfsv4", "op-delegreturn-done", 1, 0, "struct compound_state *",
 569             "nfsv4opinfo_t *" },
 570         { "nfsv4", "op-delegreturn-done", 2, 1, "DELEGRETURN4res *" },
 571         { "nfsv4", "op-getattr-start", 0, 0, "struct compound_state *",
 572             "conninfo_t *" },
 573         { "nfsv4", "op-getattr-start", 1, 0, "struct compound_state *",
 574             "nfsv4opinfo_t *" },
 575         { "nfsv4", "op-getattr-start", 2, 1, "GETATTR4args *" },
 576         { "nfsv4", "op-getattr-done", 0, 0, "struct compound_state *",
 577             "conninfo_t *" },
 578         { "nfsv4", "op-getattr-done", 1, 0, "struct compound_state *",
 579             "nfsv4opinfo_t *" },
 580         { "nfsv4", "op-getattr-done", 2, 1, "GETATTR4res *" },
 581         { "nfsv4", "op-getfh-start", 0, 0, "struct compound_state *",
 582             "conninfo_t *" },
 583         { "nfsv4", "op-getfh-start", 1, 0, "struct compound_state *",
 584             "nfsv4opinfo_t *" },
 585         { "nfsv4", "op-getfh-done", 0, 0, "struct compound_state *",
 586             "conninfo_t *" },
 587         { "nfsv4", "op-getfh-done", 1, 0, "struct compound_state *",
 588             "nfsv4opinfo_t *" },
 589         { "nfsv4", "op-getfh-done", 2, 1, "GETFH4res *" },
 590         { "nfsv4", "op-link-start", 0, 0, "struct compound_state *",
 591             "conninfo_t *" },
 592         { "nfsv4", "op-link-start", 1, 0, "struct compound_state *",
 593             "nfsv4opinfo_t *" },
 594         { "nfsv4", "op-link-start", 2, 1, "LINK4args *" },
 595         { "nfsv4", "op-link-done", 0, 0, "struct compound_state *",
 596             "conninfo_t *" },
 597         { "nfsv4", "op-link-done", 1, 0, "struct compound_state *",
 598             "nfsv4opinfo_t *" },
 599         { "nfsv4", "op-link-done", 2, 1, "LINK4res *" },
 600         { "nfsv4", "op-lock-start", 0, 0, "struct compound_state *",
 601             "conninfo_t *" },
 602         { "nfsv4", "op-lock-start", 1, 0, "struct compound_state *",
 603             "nfsv4opinfo_t *" },
 604         { "nfsv4", "op-lock-start", 2, 1, "LOCK4args *" },
 605         { "nfsv4", "op-lock-done", 0, 0, "struct compound_state *",
 606             "conninfo_t *" },
 607         { "nfsv4", "op-lock-done", 1, 0, "struct compound_state *",
 608             "nfsv4opinfo_t *" },
 609         { "nfsv4", "op-lock-done", 2, 1, "LOCK4res *" },
 610         { "nfsv4", "op-lockt-start", 0, 0, "struct compound_state *",
 611             "conninfo_t *" },
 612         { "nfsv4", "op-lockt-start", 1, 0, "struct compound_state *",
 613             "nfsv4opinfo_t *" },
 614         { "nfsv4", "op-lockt-start", 2, 1, "LOCKT4args *" },
 615         { "nfsv4", "op-lockt-done", 0, 0, "struct compound_state *",
 616             "conninfo_t *" },
 617         { "nfsv4", "op-lockt-done", 1, 0, "struct compound_state *",
 618             "nfsv4opinfo_t *" },
 619         { "nfsv4", "op-lockt-done", 2, 1, "LOCKT4res *" },
 620         { "nfsv4", "op-locku-start", 0, 0, "struct compound_state *",
 621             "conninfo_t *" },
 622         { "nfsv4", "op-locku-start", 1, 0, "struct compound_state *",
 623             "nfsv4opinfo_t *" },
 624         { "nfsv4", "op-locku-start", 2, 1, "LOCKU4args *" },
 625         { "nfsv4", "op-locku-done", 0, 0, "struct compound_state *",
 626             "conninfo_t *" },
 627         { "nfsv4", "op-locku-done", 1, 0, "struct compound_state *",
 628             "nfsv4opinfo_t *" },
 629         { "nfsv4", "op-locku-done", 2, 1, "LOCKU4res *" },
 630         { "nfsv4", "op-lookup-start", 0, 0, "struct compound_state *",
 631             "conninfo_t *" },
 632         { "nfsv4", "op-lookup-start", 1, 0, "struct compound_state *",
 633             "nfsv4opinfo_t *" },
 634         { "nfsv4", "op-lookup-start", 2, 1, "LOOKUP4args *" },
 635         { "nfsv4", "op-lookup-done", 0, 0, "struct compound_state *",
 636             "conninfo_t *" },
 637         { "nfsv4", "op-lookup-done", 1, 0, "struct compound_state *",
 638             "nfsv4opinfo_t *" },
 639         { "nfsv4", "op-lookup-done", 2, 1, "LOOKUP4res *" },
 640         { "nfsv4", "op-lookupp-start", 0, 0, "struct compound_state *",
 641             "conninfo_t *" },
 642         { "nfsv4", "op-lookupp-start", 1, 0, "struct compound_state *",
 643             "nfsv4opinfo_t *" },
 644         { "nfsv4", "op-lookupp-done", 0, 0, "struct compound_state *",
 645             "conninfo_t *" },
 646         { "nfsv4", "op-lookupp-done", 1, 0, "struct compound_state *",
 647             "nfsv4opinfo_t *" },
 648         { "nfsv4", "op-lookupp-done", 2, 1, "LOOKUPP4res *" },
 649         { "nfsv4", "op-nverify-start", 0, 0, "struct compound_state *",
 650             "conninfo_t *" },
 651         { "nfsv4", "op-nverify-start", 1, 0, "struct compound_state *",
 652             "nfsv4opinfo_t *" },
 653         { "nfsv4", "op-nverify-start", 2, 1, "NVERIFY4args *" },
 654         { "nfsv4", "op-nverify-done", 0, 0, "struct compound_state *",
 655             "conninfo_t *" },
 656         { "nfsv4", "op-nverify-done", 1, 0, "struct compound_state *",
 657             "nfsv4opinfo_t *" },
 658         { "nfsv4", "op-nverify-done", 2, 1, "NVERIFY4res *" },
 659         { "nfsv4", "op-open-start", 0, 0, "struct compound_state *",
 660             "conninfo_t *" },
 661         { "nfsv4", "op-open-start", 1, 0, "struct compound_state *",
 662             "nfsv4opinfo_t *" },
 663         { "nfsv4", "op-open-start", 2, 1, "OPEN4args *" },
 664         { "nfsv4", "op-open-done", 0, 0, "struct compound_state *",
 665             "conninfo_t *" },
 666         { "nfsv4", "op-open-done", 1, 0, "struct compound_state *",
 667             "nfsv4opinfo_t *" },
 668         { "nfsv4", "op-open-done", 2, 1, "OPEN4res *" },
 669         { "nfsv4", "op-open-confirm-start", 0, 0, "struct compound_state *",
 670             "conninfo_t *" },
 671         { "nfsv4", "op-open-confirm-start", 1, 0, "struct compound_state *",
 672             "nfsv4opinfo_t *" },
 673         { "nfsv4", "op-open-confirm-start", 2, 1, "OPEN_CONFIRM4args *" },
 674         { "nfsv4", "op-open-confirm-done", 0, 0, "struct compound_state *",
 675             "conninfo_t *" },
 676         { "nfsv4", "op-open-confirm-done", 1, 0, "struct compound_state *",
 677             "nfsv4opinfo_t *" },
 678         { "nfsv4", "op-open-confirm-done", 2, 1, "OPEN_CONFIRM4res *" },
 679         { "nfsv4", "op-open-downgrade-start", 0, 0, "struct compound_state *",
 680             "conninfo_t *" },
 681         { "nfsv4", "op-open-downgrade-start", 1, 0, "struct compound_state *",
 682             "nfsv4opinfo_t *" },
 683         { "nfsv4", "op-open-downgrade-start", 2, 1, "OPEN_DOWNGRADE4args *" },
 684         { "nfsv4", "op-open-downgrade-done", 0, 0, "struct compound_state *",
 685             "conninfo_t *" },
 686         { "nfsv4", "op-open-downgrade-done", 1, 0, "struct compound_state *",
 687             "nfsv4opinfo_t *" },
 688         { "nfsv4", "op-open-downgrade-done", 2, 1, "OPEN_DOWNGRADE4res *" },
 689         { "nfsv4", "op-openattr-start", 0, 0, "struct compound_state *",
 690             "conninfo_t *" },
 691         { "nfsv4", "op-openattr-start", 1, 0, "struct compound_state *",
 692             "nfsv4opinfo_t *" },
 693         { "nfsv4", "op-openattr-start", 2, 1, "OPENATTR4args *" },
 694         { "nfsv4", "op-openattr-done", 0, 0, "struct compound_state *",
 695             "conninfo_t *" },
 696         { "nfsv4", "op-openattr-done", 1, 0, "struct compound_state *",
 697             "nfsv4opinfo_t *" },
 698         { "nfsv4", "op-openattr-done", 2, 1, "OPENATTR4res *" },
 699         { "nfsv4", "op-putfh-start", 0, 0, "struct compound_state *",
 700             "conninfo_t *" },
 701         { "nfsv4", "op-putfh-start", 1, 0, "struct compound_state *",
 702             "nfsv4opinfo_t *" },
 703         { "nfsv4", "op-putfh-start", 2, 1, "PUTFH4args *" },
 704         { "nfsv4", "op-putfh-done", 0, 0, "struct compound_state *",
 705             "conninfo_t *" },
 706         { "nfsv4", "op-putfh-done", 1, 0, "struct compound_state *",
 707             "nfsv4opinfo_t *" },
 708         { "nfsv4", "op-putfh-done", 2, 1, "PUTFH4res *" },
 709         { "nfsv4", "op-putpubfh-start", 0, 0, "struct compound_state *",
 710             "conninfo_t *" },
 711         { "nfsv4", "op-putpubfh-start", 1, 0, "struct compound_state *",
 712             "nfsv4opinfo_t *" },
 713         { "nfsv4", "op-putpubfh-done", 0, 0, "struct compound_state *",
 714             "conninfo_t *" },
 715         { "nfsv4", "op-putpubfh-done", 1, 0, "struct compound_state *",
 716             "nfsv4opinfo_t *" },
 717         { "nfsv4", "op-putpubfh-done", 2, 1, "PUTPUBFH4res *" },
 718         { "nfsv4", "op-putrootfh-start", 0, 0, "struct compound_state *",
 719             "conninfo_t *" },
 720         { "nfsv4", "op-putrootfh-start", 1, 0, "struct compound_state *",
 721             "nfsv4opinfo_t *" },
 722         { "nfsv4", "op-putrootfh-done", 0, 0, "struct compound_state *",
 723             "conninfo_t *" },
 724         { "nfsv4", "op-putrootfh-done", 1, 0, "struct compound_state *",
 725             "nfsv4opinfo_t *" },
 726         { "nfsv4", "op-putrootfh-done", 2, 1, "PUTROOTFH4res *" },
 727         { "nfsv4", "op-read-start", 0, 0, "struct compound_state *",
 728             "conninfo_t *" },
 729         { "nfsv4", "op-read-start", 1, 0, "struct compound_state *",
 730             "nfsv4opinfo_t *" },
 731         { "nfsv4", "op-read-start", 2, 1, "READ4args *" },
 732         { "nfsv4", "op-read-done", 0, 0, "struct compound_state *",
 733             "conninfo_t *" },
 734         { "nfsv4", "op-read-done", 1, 0, "struct compound_state *",
 735             "nfsv4opinfo_t *" },
 736         { "nfsv4", "op-read-done", 2, 1, "READ4res *" },
 737         { "nfsv4", "op-readdir-start", 0, 0, "struct compound_state *",
 738             "conninfo_t *" },
 739         { "nfsv4", "op-readdir-start", 1, 0, "struct compound_state *",
 740             "nfsv4opinfo_t *" },
 741         { "nfsv4", "op-readdir-start", 2, 1, "READDIR4args *" },
 742         { "nfsv4", "op-readdir-done", 0, 0, "struct compound_state *",
 743             "conninfo_t *" },
 744         { "nfsv4", "op-readdir-done", 1, 0, "struct compound_state *",
 745             "nfsv4opinfo_t *" },
 746         { "nfsv4", "op-readdir-done", 2, 1, "READDIR4res *" },
 747         { "nfsv4", "op-readlink-start", 0, 0, "struct compound_state *",
 748             "conninfo_t *" },
 749         { "nfsv4", "op-readlink-start", 1, 0, "struct compound_state *",
 750             "nfsv4opinfo_t *" },
 751         { "nfsv4", "op-readlink-done", 0, 0, "struct compound_state *",
 752             "conninfo_t *" },
 753         { "nfsv4", "op-readlink-done", 1, 0, "struct compound_state *",
 754             "nfsv4opinfo_t *" },
 755         { "nfsv4", "op-readlink-done", 2, 1, "READLINK4res *" },
 756         { "nfsv4", "op-release-lockowner-start", 0, 0,
 757             "struct compound_state *", "conninfo_t *" },
 758         { "nfsv4", "op-release-lockowner-start", 1, 0,
 759             "struct compound_state *", "nfsv4opinfo_t *" },
 760         { "nfsv4", "op-release-lockowner-start", 2, 1,
 761             "RELEASE_LOCKOWNER4args *" },
 762         { "nfsv4", "op-release-lockowner-done", 0, 0,
 763             "struct compound_state *", "conninfo_t *" },
 764         { "nfsv4", "op-release-lockowner-done", 1, 0,
 765             "struct compound_state *", "nfsv4opinfo_t *" },
 766         { "nfsv4", "op-release-lockowner-done", 2, 1,
 767             "RELEASE_LOCKOWNER4res *" },
 768         { "nfsv4", "op-remove-start", 0, 0, "struct compound_state *",
 769             "conninfo_t *" },
 770         { "nfsv4", "op-remove-start", 1, 0, "struct compound_state *",
 771             "nfsv4opinfo_t *" },
 772         { "nfsv4", "op-remove-start", 2, 1, "REMOVE4args *" },
 773         { "nfsv4", "op-remove-done", 0, 0, "struct compound_state *",
 774             "conninfo_t *" },
 775         { "nfsv4", "op-remove-done", 1, 0, "struct compound_state *",
 776             "nfsv4opinfo_t *" },
 777         { "nfsv4", "op-remove-done", 2, 1, "REMOVE4res *" },
 778         { "nfsv4", "op-rename-start", 0, 0, "struct compound_state *",
 779             "conninfo_t *" },
 780         { "nfsv4", "op-rename-start", 1, 0, "struct compound_state *",
 781             "nfsv4opinfo_t *" },
 782         { "nfsv4", "op-rename-start", 2, 1, "RENAME4args *" },
 783         { "nfsv4", "op-rename-done", 0, 0, "struct compound_state *",
 784             "conninfo_t *" },
 785         { "nfsv4", "op-rename-done", 1, 0, "struct compound_state *",
 786             "nfsv4opinfo_t *" },
 787         { "nfsv4", "op-rename-done", 2, 1, "RENAME4res *" },
 788         { "nfsv4", "op-renew-start", 0, 0, "struct compound_state *",
 789             "conninfo_t *" },
 790         { "nfsv4", "op-renew-start", 1, 0, "struct compound_state *",
 791             "nfsv4opinfo_t *" },
 792         { "nfsv4", "op-renew-start", 2, 1, "RENEW4args *" },
 793         { "nfsv4", "op-renew-done", 0, 0, "struct compound_state *",
 794             "conninfo_t *" },
 795         { "nfsv4", "op-renew-done", 1, 0, "struct compound_state *",
 796             "nfsv4opinfo_t *" },
 797         { "nfsv4", "op-renew-done", 2, 1, "RENEW4res *" },
 798         { "nfsv4", "op-restorefh-start", 0, 0, "struct compound_state *",
 799             "conninfo_t *" },
 800         { "nfsv4", "op-restorefh-start", 1, 0, "struct compound_state *",
 801             "nfsv4opinfo_t *" },
 802         { "nfsv4", "op-restorefh-done", 0, 0, "struct compound_state *",
 803             "conninfo_t *" },
 804         { "nfsv4", "op-restorefh-done", 1, 0, "struct compound_state *",
 805             "nfsv4opinfo_t *" },
 806         { "nfsv4", "op-restorefh-done", 2, 1, "RESTOREFH4res *" },
 807         { "nfsv4", "op-savefh-start", 0, 0, "struct compound_state *",
 808             "conninfo_t *" },
 809         { "nfsv4", "op-savefh-start", 1, 0, "struct compound_state *",
 810             "nfsv4opinfo_t *" },
 811         { "nfsv4", "op-savefh-done", 0, 0, "struct compound_state *",
 812             "conninfo_t *" },
 813         { "nfsv4", "op-savefh-done", 1, 0, "struct compound_state *",
 814             "nfsv4opinfo_t *" },
 815         { "nfsv4", "op-savefh-done", 2, 1, "SAVEFH4res *" },
 816         { "nfsv4", "op-secinfo-start", 0, 0, "struct compound_state *",
 817             "conninfo_t *" },
 818         { "nfsv4", "op-secinfo-start", 1, 0, "struct compound_state *",
 819             "nfsv4opinfo_t *" },
 820         { "nfsv4", "op-secinfo-start", 2, 1, "SECINFO4args *" },
 821         { "nfsv4", "op-secinfo-done", 0, 0, "struct compound_state *",
 822             "conninfo_t *" },
 823         { "nfsv4", "op-secinfo-done", 1, 0, "struct compound_state *",
 824             "nfsv4opinfo_t *" },
 825         { "nfsv4", "op-secinfo-done", 2, 1, "SECINFO4res *" },
 826         { "nfsv4", "op-setattr-start", 0, 0, "struct compound_state *",
 827             "conninfo_t *" },
 828         { "nfsv4", "op-setattr-start", 1, 0, "struct compound_state *",
 829             "nfsv4opinfo_t *" },
 830         { "nfsv4", "op-setattr-start", 2, 1, "SETATTR4args *" },
 831         { "nfsv4", "op-setattr-done", 0, 0, "struct compound_state *",
 832             "conninfo_t *" },
 833         { "nfsv4", "op-setattr-done", 1, 0, "struct compound_state *",
 834             "nfsv4opinfo_t *" },
 835         { "nfsv4", "op-setattr-done", 2, 1, "SETATTR4res *" },
 836         { "nfsv4", "op-setclientid-start", 0, 0, "struct compound_state *",
 837             "conninfo_t *" },
 838         { "nfsv4", "op-setclientid-start", 1, 0, "struct compound_state *",
 839             "nfsv4opinfo_t *" },
 840         { "nfsv4", "op-setclientid-start", 2, 1, "SETCLIENTID4args *" },
 841         { "nfsv4", "op-setclientid-done", 0, 0, "struct compound_state *",
 842             "conninfo_t *" },
 843         { "nfsv4", "op-setclientid-done", 1, 0, "struct compound_state *",
 844             "nfsv4opinfo_t *" },
 845         { "nfsv4", "op-setclientid-done", 2, 1, "SETCLIENTID4res *" },
 846         { "nfsv4", "op-setclientid-confirm-start", 0, 0,
 847             "struct compound_state *", "conninfo_t *" },
 848         { "nfsv4", "op-setclientid-confirm-start", 1, 0,
 849             "struct compound_state *", "nfsv4opinfo_t *" },
 850         { "nfsv4", "op-setclientid-confirm-start", 2, 1,
 851             "SETCLIENTID_CONFIRM4args *" },
 852         { "nfsv4", "op-setclientid-confirm-done", 0, 0,
 853             "struct compound_state *", "conninfo_t *" },
 854         { "nfsv4", "op-setclientid-confirm-done", 1, 0,
 855             "struct compound_state *", "nfsv4opinfo_t *" },
 856         { "nfsv4", "op-setclientid-confirm-done", 2, 1,
 857             "SETCLIENTID_CONFIRM4res *" },
 858         { "nfsv4", "op-verify-start", 0, 0, "struct compound_state *",
 859             "conninfo_t *" },
 860         { "nfsv4", "op-verify-start", 1, 0, "struct compound_state *",
 861             "nfsv4opinfo_t *" },
 862         { "nfsv4", "op-verify-start", 2, 1, "VERIFY4args *" },
 863         { "nfsv4", "op-verify-done", 0, 0, "struct compound_state *",
 864             "conninfo_t *" },
 865         { "nfsv4", "op-verify-done", 1, 0, "struct compound_state *",
 866             "nfsv4opinfo_t *" },
 867         { "nfsv4", "op-verify-done", 2, 1, "VERIFY4res *" },
 868         { "nfsv4", "op-write-start", 0, 0, "struct compound_state *",
 869             "conninfo_t *" },
 870         { "nfsv4", "op-write-start", 1, 0, "struct compound_state *",
 871             "nfsv4opinfo_t *" },
 872         { "nfsv4", "op-write-start", 2, 1, "WRITE4args *" },
 873         { "nfsv4", "op-write-done", 0, 0, "struct compound_state *",
 874             "conninfo_t *" },
 875         { "nfsv4", "op-write-done", 1, 0, "struct compound_state *",
 876             "nfsv4opinfo_t *" },
 877         { "nfsv4", "op-write-done", 2, 1, "WRITE4res *" },
 878         { "nfsv4", "cb-recall-start", 0, 0, "rfs4_client_t *",
 879             "conninfo_t *" },
 880         { "nfsv4", "cb-recall-start", 1, 1, "rfs4_deleg_state_t *",
 881             "nfsv4cbinfo_t *" },
 882         { "nfsv4", "cb-recall-start", 2, 2, "CB_RECALL4args *" },
 883         { "nfsv4", "cb-recall-done", 0, 0, "rfs4_client_t *",
 884             "conninfo_t *" },
 885         { "nfsv4", "cb-recall-done", 1, 1, "rfs4_deleg_state_t *",
 886             "nfsv4cbinfo_t *" },
 887         { "nfsv4", "cb-recall-done", 2, 2, "CB_RECALL4res *" },
 888 
 889         /* Tables like this get really ugly when line-wrapped. */
 890         /* BEGIN CSTYLED */
 891         { "smb", "op-Close-start", 0, 0, "smb_request_t *", "conninfo_t *" },
 892         { "smb", "op-Close-start", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 893         { "smb", "op-Close-done", 0, 0, "smb_request_t *", "conninfo_t *" },
 894         { "smb", "op-Close-done", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 895 
 896         { "smb", "op-CloseAndTreeDisconnect-start", 0, 0, "smb_request_t *", "conninfo_t *" },
 897         { "smb", "op-CloseAndTreeDisconnect-start", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 898         { "smb", "op-CloseAndTreeDisconnect-done", 0, 0, "smb_request_t *", "conninfo_t *" },
 899         { "smb", "op-CloseAndTreeDisconnect-done", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 900 
 901         { "smb", "op-Transaction-start", 0, 0, "smb_request_t *", "conninfo_t *" },
 902         { "smb", "op-Transaction-start", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 903         { "smb", "op-Transaction-done", 0, 0, "smb_request_t *", "conninfo_t *" },
 904         { "smb", "op-Transaction-done", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 905 
 906         { "smb", "op-TransactionSecondary-start", 0, 0, "smb_request_t *", "conninfo_t *" },
 907         { "smb", "op-TransactionSecondary-start", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 908         { "smb", "op-TransactionSecondary-done", 0, 0, "smb_request_t *", "conninfo_t *" },
 909         { "smb", "op-TransactionSecondary-done", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 910 
 
 | 
 
 
   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  * Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
  25  */
  26 
  27 #include <sys/sdt_impl.h>
  28 
  29 static dtrace_pattr_t vtrace_attr = {
  30 { DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_ISA },
  31 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  32 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  33 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  34 { DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_ISA },
  35 };
  36 
  37 static dtrace_pattr_t info_attr = {
  38 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  39 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  40 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  41 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  42 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  43 };
  44 
 
  81 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  82 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  83 };
  84 
  85 static dtrace_pattr_t xpv_attr = {
  86 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_PLATFORM },
  87 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  88 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  89 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
  90 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
  91 };
  92 
  93 static dtrace_pattr_t iscsi_attr = {
  94 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  95 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  96 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
  97 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
  98 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
  99 };
 100 
 101 static dtrace_pattr_t nfs_attr = {
 102 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
 103 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
 104 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
 105 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
 106 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
 107 };
 108 
 109 static dtrace_pattr_t smb_attr = {
 110 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
 111 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
 112 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
 113 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
 114 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
 115 };
 116 
 117 sdt_provider_t sdt_providers[] = {
 118         { "vtrace", "__vtrace_", &vtrace_attr },
 119         { "sysinfo", "__cpu_sysinfo_", &info_attr, DTRACE_PRIV_USER },
 120         { "vminfo", "__cpu_vminfo_", &info_attr, DTRACE_PRIV_USER },
 121         { "fpuinfo", "__fpuinfo_", &fpu_attr },
 122         { "sched", "__sched_", &stab_attr, DTRACE_PRIV_USER },
 123         { "proc", "__proc_", &stab_attr, DTRACE_PRIV_USER },
 124         { "io", "__io_", &stab_attr },
 125         { "ip", "__ip_", &stab_attr },
 126         { "tcp", "__tcp_", &stab_attr },
 127         { "udp", "__udp_", &stab_attr },
 128         { "mib", "__mib_", &stab_attr },
 129         { "fsinfo", "__fsinfo_", &fsinfo_attr },
 130         { "iscsi", "__iscsi_", &iscsi_attr },
 131         { "nfsv3", "__nfsv3_", &nfs_attr },
 132         { "nfsv4", "__nfsv4_", &nfs_attr },
 133         { "smb", "__smb_", &smb_attr },
 134         { "smb2", "__smb2_", &smb_attr },
 135         { "xpv", "__xpv_", &xpv_attr },
 136         { "fc", "__fc_", &fc_attr },
 137         { "srp", "__srp_", &fc_attr },
 138         { "sysevent", "__sysevent_", &stab_attr },
 139         { "sdt", NULL, &sdt_attr },
 140         { NULL }
 141 };
 142 
 143 sdt_argdesc_t sdt_args[] = {
 144         { "sched", "wakeup", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 145         { "sched", "wakeup", 1, 0, "kthread_t *", "psinfo_t *" },
 146         { "sched", "dequeue", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 147         { "sched", "dequeue", 1, 0, "kthread_t *", "psinfo_t *" },
 148         { "sched", "dequeue", 2, 1, "disp_t *", "cpuinfo_t *" },
 149         { "sched", "enqueue", 0, 0, "kthread_t *", "lwpsinfo_t *" },
 150         { "sched", "enqueue", 1, 0, "kthread_t *", "psinfo_t *" },
 151         { "sched", "enqueue", 2, 1, "disp_t *", "cpuinfo_t *" },
 152         { "sched", "enqueue", 3, 2, "int" },
 
 258             "iscsiinfo_t *" },
 259         { "iscsi", "xfer-start", 0, 0, "idm_conn_t *", "conninfo_t *" },
 260         { "iscsi", "xfer-start", 1, 0, "idm_conn_t *", "iscsiinfo_t *" },
 261         { "iscsi", "xfer-start", 2, 1, "uintptr_t", "xferinfo_t *" },
 262         { "iscsi", "xfer-start", 3, 2, "uint32_t"},
 263         { "iscsi", "xfer-start", 4, 3, "uintptr_t"},
 264         { "iscsi", "xfer-start", 5, 4, "uint32_t"},
 265         { "iscsi", "xfer-start", 6, 5, "uint32_t"},
 266         { "iscsi", "xfer-start", 7, 6, "uint32_t"},
 267         { "iscsi", "xfer-start", 8, 7, "int"},
 268         { "iscsi", "xfer-done", 0, 0, "idm_conn_t *", "conninfo_t *" },
 269         { "iscsi", "xfer-done", 1, 0, "idm_conn_t *", "iscsiinfo_t *" },
 270         { "iscsi", "xfer-done", 2, 1, "uintptr_t", "xferinfo_t *" },
 271         { "iscsi", "xfer-done", 3, 2, "uint32_t"},
 272         { "iscsi", "xfer-done", 4, 3, "uintptr_t"},
 273         { "iscsi", "xfer-done", 5, 4, "uint32_t"},
 274         { "iscsi", "xfer-done", 6, 5, "uint32_t"},
 275         { "iscsi", "xfer-done", 7, 6, "uint32_t"},
 276         { "iscsi", "xfer-done", 8, 7, "int"},
 277 
 278         /* Tables like this get really ugly when line-wrapped. */
 279         /* BEGIN CSTYLED */
 280         { "nfsv3", "op-getattr-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 281         { "nfsv3", "op-getattr-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 282         { "nfsv3", "op-getattr-start", 2, 4, "GETATTR3args *" },
 283 
 284         { "nfsv3", "op-getattr-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 285         { "nfsv3", "op-getattr-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 286         { "nfsv3", "op-getattr-done", 2, 4, "GETATTR3res *" },
 287 
 288         { "nfsv3", "op-setattr-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 289         { "nfsv3", "op-setattr-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 290         { "nfsv3", "op-setattr-start", 2, 4, "SETATTR3args *" },
 291 
 292         { "nfsv3", "op-setattr-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 293         { "nfsv3", "op-setattr-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 294         { "nfsv3", "op-setattr-done", 2, 4, "SETATTR3res *" },
 295 
 296         { "nfsv3", "op-lookup-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 297         { "nfsv3", "op-lookup-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 298         { "nfsv3", "op-lookup-start", 2, 4, "LOOKUP3args *" },
 299 
 300         { "nfsv3", "op-lookup-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 301         { "nfsv3", "op-lookup-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 302         { "nfsv3", "op-lookup-done", 2, 4, "LOOKUP3res *" },
 303 
 304         { "nfsv3", "op-access-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 305         { "nfsv3", "op-access-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 306         { "nfsv3", "op-access-start", 2, 4, "ACCESS3args *" },
 307 
 308         { "nfsv3", "op-access-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 309         { "nfsv3", "op-access-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 310         { "nfsv3", "op-access-done", 2, 4, "ACCESS3res *" },
 311 
 312         { "nfsv3", "op-commit-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 313         { "nfsv3", "op-commit-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 314         { "nfsv3", "op-commit-start", 2, 4, "COMMIT3args *" },
 315 
 316         { "nfsv3", "op-commit-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 317         { "nfsv3", "op-commit-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 318         { "nfsv3", "op-commit-done", 2, 4, "COMMIT3res *" },
 319 
 320         { "nfsv3", "op-create-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 321         { "nfsv3", "op-create-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 322         { "nfsv3", "op-create-start", 2, 4, "CREATE3args *" },
 323 
 324         { "nfsv3", "op-create-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 325         { "nfsv3", "op-create-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 326         { "nfsv3", "op-create-done", 2, 4, "CREATE3res *" },
 327 
 328         { "nfsv3", "op-fsinfo-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 329         { "nfsv3", "op-fsinfo-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 330         { "nfsv3", "op-fsinfo-start", 2, 4, "FSINFO3args *" },
 331 
 332         { "nfsv3", "op-fsinfo-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 333         { "nfsv3", "op-fsinfo-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 334         { "nfsv3", "op-fsinfo-done", 2, 4, "FSINFO3res *" },
 335 
 336         { "nfsv3", "op-fsstat-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 337         { "nfsv3", "op-fsstat-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 338         { "nfsv3", "op-fsstat-start", 2, 4, "FSSTAT3args *" },
 339 
 340         { "nfsv3", "op-fsstat-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 341         { "nfsv3", "op-fsstat-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 342         { "nfsv3", "op-fsstat-done", 2, 4, "FSSTAT3res *" },
 343 
 344         { "nfsv3", "op-link-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 345         { "nfsv3", "op-link-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 346         { "nfsv3", "op-link-start", 2, 4, "LINK3args *" },
 347 
 348         { "nfsv3", "op-link-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 349         { "nfsv3", "op-link-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 350         { "nfsv3", "op-link-done", 2, 4, "LINK3res *" },
 351 
 352         { "nfsv3", "op-mkdir-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 353         { "nfsv3", "op-mkdir-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 354         { "nfsv3", "op-mkdir-start", 2, 4, "MKDIR3args *" },
 355 
 356         { "nfsv3", "op-mkdir-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 357         { "nfsv3", "op-mkdir-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 358         { "nfsv3", "op-mkdir-done", 2, 4, "MKDIR3res *" },
 359 
 360         { "nfsv3", "op-mknod-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 361         { "nfsv3", "op-mknod-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 362         { "nfsv3", "op-mknod-start", 2, 4, "MKNOD3args *" },
 363 
 364         { "nfsv3", "op-mknod-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 365         { "nfsv3", "op-mknod-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 366         { "nfsv3", "op-mknod-done", 2, 4, "MKNOD3res *" },
 367 
 368         { "nfsv3", "op-null-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 369         { "nfsv3", "op-null-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 370 
 371         { "nfsv3", "op-null-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 372         { "nfsv3", "op-null-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 373 
 374         { "nfsv3", "op-pathconf-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 375         { "nfsv3", "op-pathconf-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 376         { "nfsv3", "op-pathconf-start", 2, 4, "PATHCONF3args *" },
 377 
 378         { "nfsv3", "op-pathconf-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 379         { "nfsv3", "op-pathconf-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 380         { "nfsv3", "op-pathconf-done", 2, 4, "PATHCONF3res *" },
 381 
 382         { "nfsv3", "op-read-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 383         { "nfsv3", "op-read-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 384         { "nfsv3", "op-read-start", 2, 4, "READ3args *" },
 385 
 386         { "nfsv3", "op-read-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 387         { "nfsv3", "op-read-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 388         { "nfsv3", "op-read-done", 2, 4, "READ3res *" },
 389 
 390         { "nfsv3", "op-readdir-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 391         { "nfsv3", "op-readdir-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 392         { "nfsv3", "op-readdir-start", 2, 4, "READDIR3args *" },
 393 
 394         { "nfsv3", "op-readdir-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 395         { "nfsv3", "op-readdir-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 396         { "nfsv3", "op-readdir-done", 2, 4, "READDIR3res *" },
 397 
 398         { "nfsv3", "op-readdirplus-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 399         { "nfsv3", "op-readdirplus-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 400         { "nfsv3", "op-readdirplus-start", 2, 4, "READDIRPLUS3args *" },
 401 
 402         { "nfsv3", "op-readdirplus-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 403         { "nfsv3", "op-readdirplus-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 404         { "nfsv3", "op-readdirplus-done", 2, 4, "READDIRPLUS3res *" },
 405 
 406         { "nfsv3", "op-readlink-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 407         { "nfsv3", "op-readlink-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 408         { "nfsv3", "op-readlink-start", 2, 4, "READLINK3args *" },
 409 
 410         { "nfsv3", "op-readlink-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 411         { "nfsv3", "op-readlink-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 412         { "nfsv3", "op-readlink-done", 2, 4, "READLINK3res *" },
 413 
 414         { "nfsv3", "op-remove-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 415         { "nfsv3", "op-remove-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 416         { "nfsv3", "op-remove-start", 2, 4, "REMOVE3args *" },
 417 
 418         { "nfsv3", "op-remove-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 419         { "nfsv3", "op-remove-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 420         { "nfsv3", "op-remove-done", 2, 4, "REMOVE3res *" },
 421 
 422         { "nfsv3", "op-rename-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 423         { "nfsv3", "op-rename-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 424         { "nfsv3", "op-rename-start", 2, 4, "RENAME3args *" },
 425 
 426         { "nfsv3", "op-rename-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 427         { "nfsv3", "op-rename-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 428         { "nfsv3", "op-rename-done", 2, 4, "RENAME3res *" },
 429 
 430         { "nfsv3", "op-rmdir-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 431         { "nfsv3", "op-rmdir-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 432         { "nfsv3", "op-rmdir-start", 2, 4, "RMDIR3args *" },
 433 
 434         { "nfsv3", "op-rmdir-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 435         { "nfsv3", "op-rmdir-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 436         { "nfsv3", "op-rmdir-done", 2, 4, "RMDIR3res *" },
 437 
 438         { "nfsv3", "op-symlink-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 439         { "nfsv3", "op-symlink-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 440         { "nfsv3", "op-symlink-start", 2, 4, "SYMLINK3args *" },
 441 
 442         { "nfsv3", "op-symlink-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 443         { "nfsv3", "op-symlink-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 444         { "nfsv3", "op-symlink-done", 2, 4, "SYMLINK3res *" },
 445 
 446         { "nfsv3", "op-write-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 447         { "nfsv3", "op-write-start", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 448         { "nfsv3", "op-write-start", 2, 4, "WRITE3args *" },
 449 
 450         { "nfsv3", "op-write-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 451         { "nfsv3", "op-write-done", 1, 1, "nfsv3oparg_t *", "nfsv3opinfo_t *" },
 452         { "nfsv3", "op-write-done", 2, 4, "WRITE3res *" },
 453 
 454         { "nfsv4", "null-start", 0, 0, "struct svc_req *", "conninfo_t *" },
 455         { "nfsv4", "null-done", 0, 0, "struct svc_req *", "conninfo_t *" },
 456 
 457         { "nfsv4", "compound-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 458         { "nfsv4", "compound-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 459         { "nfsv4", "compound-start", 2, 1, "COMPOUND4args *" },
 460 
 461         { "nfsv4", "compound-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 462         { "nfsv4", "compound-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 463         { "nfsv4", "compound-done", 2, 1, "COMPOUND4res *" },
 464 
 465         { "nfsv4", "op-access-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 466         { "nfsv4", "op-access-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 467         { "nfsv4", "op-access-start", 2, 1, "ACCESS4args *" },
 468 
 469         { "nfsv4", "op-access-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 470         { "nfsv4", "op-access-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 471         { "nfsv4", "op-access-done", 2, 1, "ACCESS4res *" },
 472 
 473         { "nfsv4", "op-close-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 474         { "nfsv4", "op-close-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 475         { "nfsv4", "op-close-start", 2, 1, "CLOSE4args *" },
 476 
 477         { "nfsv4", "op-close-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 478         { "nfsv4", "op-close-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 479         { "nfsv4", "op-close-done", 2, 1, "CLOSE4res *" },
 480 
 481         { "nfsv4", "op-commit-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 482         { "nfsv4", "op-commit-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 483         { "nfsv4", "op-commit-start", 2, 1, "COMMIT4args *" },
 484 
 485         { "nfsv4", "op-commit-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 486         { "nfsv4", "op-commit-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 487         { "nfsv4", "op-commit-done", 2, 1, "COMMIT4res *" },
 488 
 489         { "nfsv4", "op-create-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 490         { "nfsv4", "op-create-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 491         { "nfsv4", "op-create-start", 2, 1, "CREATE4args *" },
 492 
 493         { "nfsv4", "op-create-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 494         { "nfsv4", "op-create-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 495         { "nfsv4", "op-create-done", 2, 1, "CREATE4res *" },
 496 
 497         { "nfsv4", "op-delegpurge-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 498         { "nfsv4", "op-delegpurge-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 499         { "nfsv4", "op-delegpurge-start", 2, 1, "DELEGPURGE4args *" },
 500 
 501         { "nfsv4", "op-delegpurge-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 502         { "nfsv4", "op-delegpurge-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 503         { "nfsv4", "op-delegpurge-done", 2, 1, "DELEGPURGE4res *" },
 504 
 505         { "nfsv4", "op-delegreturn-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 506         { "nfsv4", "op-delegreturn-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 507         { "nfsv4", "op-delegreturn-start", 2, 1, "DELEGRETURN4args *" },
 508 
 509         { "nfsv4", "op-delegreturn-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 510         { "nfsv4", "op-delegreturn-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 511         { "nfsv4", "op-delegreturn-done", 2, 1, "DELEGRETURN4res *" },
 512 
 513         { "nfsv4", "op-getattr-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 514         { "nfsv4", "op-getattr-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 515         { "nfsv4", "op-getattr-start", 2, 1, "GETATTR4args *" },
 516 
 517         { "nfsv4", "op-getattr-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 518         { "nfsv4", "op-getattr-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 519         { "nfsv4", "op-getattr-done", 2, 1, "GETATTR4res *" },
 520 
 521         { "nfsv4", "op-getfh-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 522         { "nfsv4", "op-getfh-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 523 
 524         { "nfsv4", "op-getfh-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 525         { "nfsv4", "op-getfh-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 526         { "nfsv4", "op-getfh-done", 2, 1, "GETFH4res *" },
 527 
 528         { "nfsv4", "op-link-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 529         { "nfsv4", "op-link-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 530         { "nfsv4", "op-link-start", 2, 1, "LINK4args *" },
 531 
 532         { "nfsv4", "op-link-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 533         { "nfsv4", "op-link-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 534         { "nfsv4", "op-link-done", 2, 1, "LINK4res *" },
 535 
 536         { "nfsv4", "op-lock-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 537         { "nfsv4", "op-lock-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 538         { "nfsv4", "op-lock-start", 2, 1, "LOCK4args *" },
 539 
 540         { "nfsv4", "op-lock-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 541         { "nfsv4", "op-lock-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 542         { "nfsv4", "op-lock-done", 2, 1, "LOCK4res *" },
 543 
 544         { "nfsv4", "op-lockt-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 545         { "nfsv4", "op-lockt-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 546         { "nfsv4", "op-lockt-start", 2, 1, "LOCKT4args *" },
 547 
 548         { "nfsv4", "op-lockt-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 549         { "nfsv4", "op-lockt-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 550         { "nfsv4", "op-lockt-done", 2, 1, "LOCKT4res *" },
 551 
 552         { "nfsv4", "op-locku-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 553         { "nfsv4", "op-locku-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 554         { "nfsv4", "op-locku-start", 2, 1, "LOCKU4args *" },
 555 
 556         { "nfsv4", "op-locku-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 557         { "nfsv4", "op-locku-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 558         { "nfsv4", "op-locku-done", 2, 1, "LOCKU4res *" },
 559 
 560         { "nfsv4", "op-lookup-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 561         { "nfsv4", "op-lookup-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 562         { "nfsv4", "op-lookup-start", 2, 1, "LOOKUP4args *" },
 563 
 564         { "nfsv4", "op-lookup-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 565         { "nfsv4", "op-lookup-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 566         { "nfsv4", "op-lookup-done", 2, 1, "LOOKUP4res *" },
 567 
 568         { "nfsv4", "op-lookupp-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 569         { "nfsv4", "op-lookupp-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 570 
 571         { "nfsv4", "op-lookupp-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 572         { "nfsv4", "op-lookupp-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 573         { "nfsv4", "op-lookupp-done", 2, 1, "LOOKUPP4res *" },
 574 
 575         { "nfsv4", "op-nverify-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 576         { "nfsv4", "op-nverify-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 577         { "nfsv4", "op-nverify-start", 2, 1, "NVERIFY4args *" },
 578 
 579         { "nfsv4", "op-nverify-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 580         { "nfsv4", "op-nverify-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 581         { "nfsv4", "op-nverify-done", 2, 1, "NVERIFY4res *" },
 582 
 583         { "nfsv4", "op-open-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 584         { "nfsv4", "op-open-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 585         { "nfsv4", "op-open-start", 2, 1, "OPEN4args *" },
 586 
 587         { "nfsv4", "op-open-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 588         { "nfsv4", "op-open-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 589         { "nfsv4", "op-open-done", 2, 1, "OPEN4res *" },
 590 
 591         { "nfsv4", "op-open-confirm-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 592         { "nfsv4", "op-open-confirm-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 593         { "nfsv4", "op-open-confirm-start", 2, 1, "OPEN_CONFIRM4args *" },
 594 
 595         { "nfsv4", "op-open-confirm-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 596         { "nfsv4", "op-open-confirm-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 597         { "nfsv4", "op-open-confirm-done", 2, 1, "OPEN_CONFIRM4res *" },
 598 
 599         { "nfsv4", "op-open-downgrade-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 600         { "nfsv4", "op-open-downgrade-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 601         { "nfsv4", "op-open-downgrade-start", 2, 1, "OPEN_DOWNGRADE4args *" },
 602 
 603         { "nfsv4", "op-open-downgrade-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 604         { "nfsv4", "op-open-downgrade-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 605         { "nfsv4", "op-open-downgrade-done", 2, 1, "OPEN_DOWNGRADE4res *" },
 606 
 607         { "nfsv4", "op-openattr-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 608         { "nfsv4", "op-openattr-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 609         { "nfsv4", "op-openattr-start", 2, 1, "OPENATTR4args *" },
 610 
 611         { "nfsv4", "op-openattr-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 612         { "nfsv4", "op-openattr-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 613         { "nfsv4", "op-openattr-done", 2, 1, "OPENATTR4res *" },
 614 
 615         { "nfsv4", "op-putfh-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 616         { "nfsv4", "op-putfh-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 617         { "nfsv4", "op-putfh-start", 2, 1, "PUTFH4args *" },
 618 
 619         { "nfsv4", "op-putfh-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 620         { "nfsv4", "op-putfh-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 621         { "nfsv4", "op-putfh-done", 2, 1, "PUTFH4res *" },
 622 
 623         { "nfsv4", "op-putpubfh-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 624         { "nfsv4", "op-putpubfh-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 625 
 626         { "nfsv4", "op-putpubfh-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 627         { "nfsv4", "op-putpubfh-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 628         { "nfsv4", "op-putpubfh-done", 2, 1, "PUTPUBFH4res *" },
 629 
 630         { "nfsv4", "op-putrootfh-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 631         { "nfsv4", "op-putrootfh-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 632 
 633         { "nfsv4", "op-putrootfh-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 634         { "nfsv4", "op-putrootfh-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 635         { "nfsv4", "op-putrootfh-done", 2, 1, "PUTROOTFH4res *" },
 636 
 637         { "nfsv4", "op-read-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 638         { "nfsv4", "op-read-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 639         { "nfsv4", "op-read-start", 2, 1, "READ4args *" },
 640 
 641         { "nfsv4", "op-read-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 642         { "nfsv4", "op-read-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 643         { "nfsv4", "op-read-done", 2, 1, "READ4res *" },
 644 
 645         { "nfsv4", "op-readdir-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 646         { "nfsv4", "op-readdir-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 647         { "nfsv4", "op-readdir-start", 2, 1, "READDIR4args *" },
 648 
 649         { "nfsv4", "op-readdir-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 650         { "nfsv4", "op-readdir-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 651         { "nfsv4", "op-readdir-done", 2, 1, "READDIR4res *" },
 652 
 653         { "nfsv4", "op-readlink-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 654         { "nfsv4", "op-readlink-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 655 
 656         { "nfsv4", "op-readlink-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 657         { "nfsv4", "op-readlink-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 658         { "nfsv4", "op-readlink-done", 2, 1, "READLINK4res *" },
 659 
 660         { "nfsv4", "op-release-lockowner-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 661         { "nfsv4", "op-release-lockowner-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 662         { "nfsv4", "op-release-lockowner-start", 2, 1, "RELEASE_LOCKOWNER4args *" },
 663 
 664         { "nfsv4", "op-release-lockowner-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 665         { "nfsv4", "op-release-lockowner-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 666         { "nfsv4", "op-release-lockowner-done", 2, 1, "RELEASE_LOCKOWNER4res *" },
 667 
 668         { "nfsv4", "op-remove-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 669         { "nfsv4", "op-remove-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 670         { "nfsv4", "op-remove-start", 2, 1, "REMOVE4args *" },
 671 
 672         { "nfsv4", "op-remove-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 673         { "nfsv4", "op-remove-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 674         { "nfsv4", "op-remove-done", 2, 1, "REMOVE4res *" },
 675 
 676         { "nfsv4", "op-rename-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 677         { "nfsv4", "op-rename-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 678         { "nfsv4", "op-rename-start", 2, 1, "RENAME4args *" },
 679 
 680         { "nfsv4", "op-rename-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 681         { "nfsv4", "op-rename-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 682         { "nfsv4", "op-rename-done", 2, 1, "RENAME4res *" },
 683 
 684         { "nfsv4", "op-renew-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 685         { "nfsv4", "op-renew-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 686         { "nfsv4", "op-renew-start", 2, 1, "RENEW4args *" },
 687 
 688         { "nfsv4", "op-renew-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 689         { "nfsv4", "op-renew-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 690         { "nfsv4", "op-renew-done", 2, 1, "RENEW4res *" },
 691 
 692         { "nfsv4", "op-restorefh-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 693         { "nfsv4", "op-restorefh-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 694 
 695         { "nfsv4", "op-restorefh-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 696         { "nfsv4", "op-restorefh-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 697         { "nfsv4", "op-restorefh-done", 2, 1, "RESTOREFH4res *" },
 698 
 699         { "nfsv4", "op-savefh-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 700         { "nfsv4", "op-savefh-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 701 
 702         { "nfsv4", "op-savefh-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 703         { "nfsv4", "op-savefh-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 704         { "nfsv4", "op-savefh-done", 2, 1, "SAVEFH4res *" },
 705 
 706         { "nfsv4", "op-secinfo-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 707         { "nfsv4", "op-secinfo-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 708         { "nfsv4", "op-secinfo-start", 2, 1, "SECINFO4args *" },
 709 
 710         { "nfsv4", "op-secinfo-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 711         { "nfsv4", "op-secinfo-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 712         { "nfsv4", "op-secinfo-done", 2, 1, "SECINFO4res *" },
 713 
 714         { "nfsv4", "op-setattr-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 715         { "nfsv4", "op-setattr-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 716         { "nfsv4", "op-setattr-start", 2, 1, "SETATTR4args *" },
 717 
 718         { "nfsv4", "op-setattr-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 719         { "nfsv4", "op-setattr-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 720         { "nfsv4", "op-setattr-done", 2, 1, "SETATTR4res *" },
 721 
 722         { "nfsv4", "op-setclientid-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 723         { "nfsv4", "op-setclientid-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 724         { "nfsv4", "op-setclientid-start", 2, 1, "SETCLIENTID4args *" },
 725 
 726         { "nfsv4", "op-setclientid-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 727         { "nfsv4", "op-setclientid-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 728         { "nfsv4", "op-setclientid-done", 2, 1, "SETCLIENTID4res *" },
 729 
 730         { "nfsv4", "op-setclientid-confirm-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 731         { "nfsv4", "op-setclientid-confirm-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 732         { "nfsv4", "op-setclientid-confirm-start", 2, 1, "SETCLIENTID_CONFIRM4args *" },
 733 
 734         { "nfsv4", "op-setclientid-confirm-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 735         { "nfsv4", "op-setclientid-confirm-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 736         { "nfsv4", "op-setclientid-confirm-done", 2, 1, "SETCLIENTID_CONFIRM4res *" },
 737 
 738         { "nfsv4", "op-verify-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 739         { "nfsv4", "op-verify-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 740         { "nfsv4", "op-verify-start", 2, 1, "VERIFY4args *" },
 741 
 742         { "nfsv4", "op-verify-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 743         { "nfsv4", "op-verify-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 744         { "nfsv4", "op-verify-done", 2, 1, "VERIFY4res *" },
 745 
 746         { "nfsv4", "op-write-start", 0, 0, "struct compound_state *", "conninfo_t *" },
 747         { "nfsv4", "op-write-start", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 748         { "nfsv4", "op-write-start", 2, 1, "WRITE4args *" },
 749 
 750         { "nfsv4", "op-write-done", 0, 0, "struct compound_state *", "conninfo_t *" },
 751         { "nfsv4", "op-write-done", 1, 0, "struct compound_state *", "nfsv4opinfo_t *" },
 752         { "nfsv4", "op-write-done", 2, 1, "WRITE4res *" },
 753 
 754         { "nfsv4", "cb-recall-start", 0, 0, "rfs4_client_t *", "conninfo_t *" },
 755         { "nfsv4", "cb-recall-start", 1, 1, "rfs4_deleg_state_t *", "nfsv4cbinfo_t *" },
 756         { "nfsv4", "cb-recall-start", 2, 2, "CB_RECALL4args *" },
 757 
 758         { "nfsv4", "cb-recall-done", 0, 0, "rfs4_client_t *", "conninfo_t *" },
 759         { "nfsv4", "cb-recall-done", 1, 1, "rfs4_deleg_state_t *", "nfsv4cbinfo_t *" },
 760         { "nfsv4", "cb-recall-done", 2, 2, "CB_RECALL4res *" },
 761 
 762         { "smb", "op-Close-start", 0, 0, "smb_request_t *", "conninfo_t *" },
 763         { "smb", "op-Close-start", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 764         { "smb", "op-Close-done", 0, 0, "smb_request_t *", "conninfo_t *" },
 765         { "smb", "op-Close-done", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 766 
 767         { "smb", "op-CloseAndTreeDisconnect-start", 0, 0, "smb_request_t *", "conninfo_t *" },
 768         { "smb", "op-CloseAndTreeDisconnect-start", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 769         { "smb", "op-CloseAndTreeDisconnect-done", 0, 0, "smb_request_t *", "conninfo_t *" },
 770         { "smb", "op-CloseAndTreeDisconnect-done", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 771 
 772         { "smb", "op-Transaction-start", 0, 0, "smb_request_t *", "conninfo_t *" },
 773         { "smb", "op-Transaction-start", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 774         { "smb", "op-Transaction-done", 0, 0, "smb_request_t *", "conninfo_t *" },
 775         { "smb", "op-Transaction-done", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 776 
 777         { "smb", "op-TransactionSecondary-start", 0, 0, "smb_request_t *", "conninfo_t *" },
 778         { "smb", "op-TransactionSecondary-start", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 779         { "smb", "op-TransactionSecondary-done", 0, 0, "smb_request_t *", "conninfo_t *" },
 780         { "smb", "op-TransactionSecondary-done", 1, 0, "smb_request_t *", "smbopinfo_t *" },
 781 
 
 |