xref: /illumos-gate/usr/src/cmd/dtrace/test/tst/common/nfs/tst.call3.d (revision 73b80b821da76082173547dd650e417f6916eb8b)
1*e1adf50cSahl /*
2*e1adf50cSahl  * CDDL HEADER START
3*e1adf50cSahl  *
4*e1adf50cSahl  * The contents of this file are subject to the terms of the
5*e1adf50cSahl  * Common Development and Distribution License (the "License").
6*e1adf50cSahl  * You may not use this file except in compliance with the License.
7*e1adf50cSahl  *
8*e1adf50cSahl  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*e1adf50cSahl  * or http://www.opensolaris.org/os/licensing.
10*e1adf50cSahl  * See the License for the specific language governing permissions
11*e1adf50cSahl  * and limitations under the License.
12*e1adf50cSahl  *
13*e1adf50cSahl  * When distributing Covered Code, include this CDDL HEADER in each
14*e1adf50cSahl  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*e1adf50cSahl  * If applicable, add the following below this CDDL HEADER, with the
16*e1adf50cSahl  * fields enclosed by brackets "[]" replaced with your own identifying
17*e1adf50cSahl  * information: Portions Copyright [yyyy] [name of copyright owner]
18*e1adf50cSahl  *
19*e1adf50cSahl  * CDDL HEADER END
20*e1adf50cSahl  */
21*e1adf50cSahl 
22*e1adf50cSahl /*
23*e1adf50cSahl  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
24*e1adf50cSahl  * Use is subject to license terms.
25*e1adf50cSahl  */
26*e1adf50cSahl 
27*e1adf50cSahl /*
28*e1adf50cSahl  * ASSERTION: Make sure nfsv3 provider probes are firing, and that the
29*e1adf50cSahl  * arguments are properly visible.
30*e1adf50cSahl  *
31*e1adf50cSahl  * SECTION: nfs3 provider
32*e1adf50cSahl  */
33*e1adf50cSahl 
34*e1adf50cSahl #pragma D option destructive
35*e1adf50cSahl #pragma D option quiet
36*e1adf50cSahl 
37*e1adf50cSahl pid$1:a.out:waiting:entry
38*e1adf50cSahl {
39*e1adf50cSahl 	this->value = (int *)alloca(sizeof (int));
40*e1adf50cSahl 	*this->value = 1;
41*e1adf50cSahl 	copyout(this->value, arg0, sizeof (int));
42*e1adf50cSahl }
43*e1adf50cSahl 
44*e1adf50cSahl nfsv3:::op-getattr-start
45*e1adf50cSahl {
46*e1adf50cSahl 	printf("ci_local: %s\n", args[0]->ci_local);
47*e1adf50cSahl 	printf("ci_remote: %s\n", args[0]->ci_remote);
48*e1adf50cSahl 	printf("ci_protocol: %s\n", args[0]->ci_protocol);
49*e1adf50cSahl 
50*e1adf50cSahl 	printf("noi_xid: %d\n", args[1]->noi_xid);
51*e1adf50cSahl 	printf("noi_cred->cr_uid: %d\n", args[1]->noi_cred->cr_uid);
52*e1adf50cSahl 	printf("noi_curpath: %s\n", args[1]->noi_curpath);
53*e1adf50cSahl 
54*e1adf50cSahl 	printf("fh3_flags: %d\n", args[2]->object.fh3_flags);
55*e1adf50cSahl }
56*e1adf50cSahl 
57*e1adf50cSahl nfsv3:::op-getattr-done
58*e1adf50cSahl {
59*e1adf50cSahl 	printf("ci_local: %s\n", args[0]->ci_local);
60*e1adf50cSahl 	printf("ci_remote: %s\n", args[0]->ci_remote);
61*e1adf50cSahl 	printf("ci_protocol: %s\n", args[0]->ci_protocol);
62*e1adf50cSahl 
63*e1adf50cSahl 	printf("noi_xid: %d\n", args[1]->noi_xid);
64*e1adf50cSahl 	printf("noi_cred->cr_uid: %d\n", args[1]->noi_cred->cr_uid);
65*e1adf50cSahl 	printf("noi_curpath: %s\n", args[1]->noi_curpath);
66*e1adf50cSahl 
67*e1adf50cSahl 	printf("status: %d\n", args[2]->status);
68*e1adf50cSahl }
69*e1adf50cSahl 
70*e1adf50cSahl nfsv3:::*-done
71*e1adf50cSahl /seen[probename] == 0/
72*e1adf50cSahl {
73*e1adf50cSahl 	++numberseen;
74*e1adf50cSahl 	seen[probename] = 1;
75*e1adf50cSahl 	printf("%d ops seen, latest op is %s\n", numberseen, probename);
76*e1adf50cSahl }
77*e1adf50cSahl 
78*e1adf50cSahl nfsv3:::*-done
79*e1adf50cSahl /numberseen == 22/
80*e1adf50cSahl {
81*e1adf50cSahl 	exit(0);
82*e1adf50cSahl }
83*e1adf50cSahl 
84*e1adf50cSahl tick-1s
85*e1adf50cSahl /tick++ == 10/
86*e1adf50cSahl {
87*e1adf50cSahl 	printf("%d nfsv3 ops seen; should be 22\n", numberseen);
88*e1adf50cSahl 	exit(1);
89*e1adf50cSahl }
90