19512fe85Sahl#!/bin/ksh -p 29512fe85Sahl# 39512fe85Sahl# CDDL HEADER START 49512fe85Sahl# 59512fe85Sahl# The contents of this file are subject to the terms of the 69512fe85Sahl# Common Development and Distribution License (the "License"). 79512fe85Sahl# You may not use this file except in compliance with the License. 89512fe85Sahl# 99512fe85Sahl# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 109512fe85Sahl# or http://www.opensolaris.org/os/licensing. 119512fe85Sahl# See the License for the specific language governing permissions 129512fe85Sahl# and limitations under the License. 139512fe85Sahl# 149512fe85Sahl# When distributing Covered Code, include this CDDL HEADER in each 159512fe85Sahl# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 169512fe85Sahl# If applicable, add the following below this CDDL HEADER, with the 179512fe85Sahl# fields enclosed by brackets "[]" replaced with your own identifying 189512fe85Sahl# information: Portions Copyright [yyyy] [name of copyright owner] 199512fe85Sahl# 209512fe85Sahl# CDDL HEADER END 219512fe85Sahl# 229512fe85Sahl 239512fe85Sahl# 249512fe85Sahl# Copyright 2006 Sun Microsystems, Inc. All rights reserved. 259512fe85Sahl# Use is subject to license terms. 269512fe85Sahl# 279512fe85Sahl#ident "%Z%%M% %I% %E% SMI" 289512fe85Sahl 299512fe85Sahlscript() { 30*23b5c241Stomee $dtrace -c 'cat shajirosan' -qs /dev/stdin <<EOF 319512fe85Sahl syscall::open*:entry 329512fe85Sahl /pid == \$target/ 339512fe85Sahl { 349512fe85Sahl self->p = arg0; 359512fe85Sahl } 369512fe85Sahl 379512fe85Sahl syscall::open*:return 389512fe85Sahl /self->p && copyinstr(self->p) == "shajirosan"/ 399512fe85Sahl { 409512fe85Sahl self->err = 1; 419512fe85Sahl self->p = 0; 429512fe85Sahl } 439512fe85Sahl 449512fe85Sahl syscall::open*:return 459512fe85Sahl /self->err && (int)arg0 == -1 && (int)arg1 == -1/ 469512fe85Sahl { 479512fe85Sahl exit(0); 489512fe85Sahl } 499512fe85Sahl 509512fe85Sahl syscall::open*:return 519512fe85Sahl /self->err/ 529512fe85Sahl { 539512fe85Sahl printf("a failed open(2) returned %d\n", (int)arg0); 549512fe85Sahl exit(1); 559512fe85Sahl } 569512fe85Sahl 579512fe85Sahl syscall::open*:return 589512fe85Sahl /self->p/ 599512fe85Sahl { 609512fe85Sahl self->p = 0; 619512fe85Sahl } 629512fe85SahlEOF 639512fe85Sahl} 649512fe85Sahl 65*23b5c241Stomeeif [ $# != 1 ]; then 66*23b5c241Stomee echo expected one argument: '<'dtrace-path'>' 67*23b5c241Stomee exit 2 68*23b5c241Stomeefi 69*23b5c241Stomee 70*23b5c241Stomeedtrace=$1 71*23b5c241Stomee 729512fe85Sahlscript 739512fe85Sahlstatus=$? 749512fe85Sahl 759512fe85Sahlexit $status 76