e1adf50c175098121bb2d0ddc73adb34d502328eahl/*
e1adf50c175098121bb2d0ddc73adb34d502328eahl * CDDL HEADER START
e1adf50c175098121bb2d0ddc73adb34d502328eahl *
e1adf50c175098121bb2d0ddc73adb34d502328eahl * The contents of this file are subject to the terms of the
e1adf50c175098121bb2d0ddc73adb34d502328eahl * Common Development and Distribution License (the "License").
e1adf50c175098121bb2d0ddc73adb34d502328eahl * You may not use this file except in compliance with the License.
e1adf50c175098121bb2d0ddc73adb34d502328eahl *
e1adf50c175098121bb2d0ddc73adb34d502328eahl * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
e1adf50c175098121bb2d0ddc73adb34d502328eahl * or http://www.opensolaris.org/os/licensing.
e1adf50c175098121bb2d0ddc73adb34d502328eahl * See the License for the specific language governing permissions
e1adf50c175098121bb2d0ddc73adb34d502328eahl * and limitations under the License.
e1adf50c175098121bb2d0ddc73adb34d502328eahl *
e1adf50c175098121bb2d0ddc73adb34d502328eahl * When distributing Covered Code, include this CDDL HEADER in each
e1adf50c175098121bb2d0ddc73adb34d502328eahl * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
e1adf50c175098121bb2d0ddc73adb34d502328eahl * If applicable, add the following below this CDDL HEADER, with the
e1adf50c175098121bb2d0ddc73adb34d502328eahl * fields enclosed by brackets "[]" replaced with your own identifying
e1adf50c175098121bb2d0ddc73adb34d502328eahl * information: Portions Copyright [yyyy] [name of copyright owner]
e1adf50c175098121bb2d0ddc73adb34d502328eahl *
e1adf50c175098121bb2d0ddc73adb34d502328eahl * CDDL HEADER END
e1adf50c175098121bb2d0ddc73adb34d502328eahl */
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahl/*
e1adf50c175098121bb2d0ddc73adb34d502328eahl * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
e1adf50c175098121bb2d0ddc73adb34d502328eahl * Use is subject to license terms.
e1adf50c175098121bb2d0ddc73adb34d502328eahl */
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahl#pragma ident "%Z%%M% %I% %E% SMI"
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahl/*
e1adf50c175098121bb2d0ddc73adb34d502328eahl * ASSERTION: Make sure nfsv3 provider probes are firing, and that the
e1adf50c175098121bb2d0ddc73adb34d502328eahl * arguments are properly visible.
e1adf50c175098121bb2d0ddc73adb34d502328eahl *
e1adf50c175098121bb2d0ddc73adb34d502328eahl * SECTION: nfs3 provider
e1adf50c175098121bb2d0ddc73adb34d502328eahl */
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahl#pragma D option destructive
e1adf50c175098121bb2d0ddc73adb34d502328eahl#pragma D option quiet
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahlpid$1:a.out:waiting:entry
e1adf50c175098121bb2d0ddc73adb34d502328eahl{
e1adf50c175098121bb2d0ddc73adb34d502328eahl this->value = (int *)alloca(sizeof (int));
e1adf50c175098121bb2d0ddc73adb34d502328eahl *this->value = 1;
e1adf50c175098121bb2d0ddc73adb34d502328eahl copyout(this->value, arg0, sizeof (int));
e1adf50c175098121bb2d0ddc73adb34d502328eahl}
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahlnfsv3:::op-getattr-start
e1adf50c175098121bb2d0ddc73adb34d502328eahl{
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("ci_local: %s\n", args[0]->ci_local);
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("ci_remote: %s\n", args[0]->ci_remote);
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("ci_protocol: %s\n", args[0]->ci_protocol);
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("noi_xid: %d\n", args[1]->noi_xid);
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("noi_cred->cr_uid: %d\n", args[1]->noi_cred->cr_uid);
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("noi_curpath: %s\n", args[1]->noi_curpath);
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("fh3_flags: %d\n", args[2]->object.fh3_flags);
e1adf50c175098121bb2d0ddc73adb34d502328eahl}
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahlnfsv3:::op-getattr-done
e1adf50c175098121bb2d0ddc73adb34d502328eahl{
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("ci_local: %s\n", args[0]->ci_local);
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("ci_remote: %s\n", args[0]->ci_remote);
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("ci_protocol: %s\n", args[0]->ci_protocol);
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("noi_xid: %d\n", args[1]->noi_xid);
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("noi_cred->cr_uid: %d\n", args[1]->noi_cred->cr_uid);
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("noi_curpath: %s\n", args[1]->noi_curpath);
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("status: %d\n", args[2]->status);
e1adf50c175098121bb2d0ddc73adb34d502328eahl}
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahlnfsv3:::*-done
e1adf50c175098121bb2d0ddc73adb34d502328eahl/seen[probename] == 0/
e1adf50c175098121bb2d0ddc73adb34d502328eahl{
e1adf50c175098121bb2d0ddc73adb34d502328eahl ++numberseen;
e1adf50c175098121bb2d0ddc73adb34d502328eahl seen[probename] = 1;
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("%d ops seen, latest op is %s\n", numberseen, probename);
e1adf50c175098121bb2d0ddc73adb34d502328eahl}
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahlnfsv3:::*-done
e1adf50c175098121bb2d0ddc73adb34d502328eahl/numberseen == 22/
e1adf50c175098121bb2d0ddc73adb34d502328eahl{
e1adf50c175098121bb2d0ddc73adb34d502328eahl exit(0);
e1adf50c175098121bb2d0ddc73adb34d502328eahl}
e1adf50c175098121bb2d0ddc73adb34d502328eahl
e1adf50c175098121bb2d0ddc73adb34d502328eahltick-1s
e1adf50c175098121bb2d0ddc73adb34d502328eahl/tick++ == 10/
e1adf50c175098121bb2d0ddc73adb34d502328eahl{
e1adf50c175098121bb2d0ddc73adb34d502328eahl printf("%d nfsv3 ops seen; should be 22\n", numberseen);
e1adf50c175098121bb2d0ddc73adb34d502328eahl exit(1);
e1adf50c175098121bb2d0ddc73adb34d502328eahl}