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