1*10791SJonathan.Haslam@Sun.COM#
2*10791SJonathan.Haslam@Sun.COM# CDDL HEADER START
3*10791SJonathan.Haslam@Sun.COM#
4*10791SJonathan.Haslam@Sun.COM# The contents of this file are subject to the terms of the
5*10791SJonathan.Haslam@Sun.COM# Common Development and Distribution License (the "License").
6*10791SJonathan.Haslam@Sun.COM# You may not use this file except in compliance with the License.
7*10791SJonathan.Haslam@Sun.COM#
8*10791SJonathan.Haslam@Sun.COM# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*10791SJonathan.Haslam@Sun.COM# or http://www.opensolaris.org/os/licensing.
10*10791SJonathan.Haslam@Sun.COM# See the License for the specific language governing permissions
11*10791SJonathan.Haslam@Sun.COM# and limitations under the License.
12*10791SJonathan.Haslam@Sun.COM#
13*10791SJonathan.Haslam@Sun.COM# When distributing Covered Code, include this CDDL HEADER in each
14*10791SJonathan.Haslam@Sun.COM# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*10791SJonathan.Haslam@Sun.COM# If applicable, add the following below this CDDL HEADER, with the
16*10791SJonathan.Haslam@Sun.COM# fields enclosed by brackets "[]" replaced with your own identifying
17*10791SJonathan.Haslam@Sun.COM# information: Portions Copyright [yyyy] [name of copyright owner]
18*10791SJonathan.Haslam@Sun.COM#
19*10791SJonathan.Haslam@Sun.COM# CDDL HEADER END
20*10791SJonathan.Haslam@Sun.COM#
21*10791SJonathan.Haslam@Sun.COM
22*10791SJonathan.Haslam@Sun.COM#
23*10791SJonathan.Haslam@Sun.COM# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24*10791SJonathan.Haslam@Sun.COM# Use is subject to license terms.
25*10791SJonathan.Haslam@Sun.COM#
26*10791SJonathan.Haslam@Sun.COM
27*10791SJonathan.Haslam@Sun.COMif [ $# != 1 ]; then
28*10791SJonathan.Haslam@Sun.COM	echo expected one argument: '<'dtrace-path'>'
29*10791SJonathan.Haslam@Sun.COM	exit 2
30*10791SJonathan.Haslam@Sun.COMfi
31*10791SJonathan.Haslam@Sun.COM
32*10791SJonathan.Haslam@Sun.COMdtrace=$1
33*10791SJonathan.Haslam@Sun.COMDIR=/var/tmp/dtest.$$
34*10791SJonathan.Haslam@Sun.COM
35*10791SJonathan.Haslam@Sun.COMmkdir $DIR
36*10791SJonathan.Haslam@Sun.COMcd $DIR
37*10791SJonathan.Haslam@Sun.COM
38*10791SJonathan.Haslam@Sun.COMcat > test.c <<EOF
39*10791SJonathan.Haslam@Sun.COMvoid
40*10791SJonathan.Haslam@Sun.COMthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydog(void)
41*10791SJonathan.Haslam@Sun.COM{
42*10791SJonathan.Haslam@Sun.COM	while (1)
43*10791SJonathan.Haslam@Sun.COM		;
44*10791SJonathan.Haslam@Sun.COM}
45*10791SJonathan.Haslam@Sun.COM
46*10791SJonathan.Haslam@Sun.COMint
47*10791SJonathan.Haslam@Sun.COMmain(int argc, char *argv[])
48*10791SJonathan.Haslam@Sun.COM{
49*10791SJonathan.Haslam@Sun.COM	thequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydog();
50*10791SJonathan.Haslam@Sun.COM}
51*10791SJonathan.Haslam@Sun.COMEOF
52*10791SJonathan.Haslam@Sun.COM
53*10791SJonathan.Haslam@Sun.COMcc -o test test.c
54*10791SJonathan.Haslam@Sun.COMif [ $? -ne 0 ]; then
55*10791SJonathan.Haslam@Sun.COM	print -u2 "failed to compile test.c"
56*10791SJonathan.Haslam@Sun.COM	exit 1
57*10791SJonathan.Haslam@Sun.COMfi
58*10791SJonathan.Haslam@Sun.COM
59*10791SJonathan.Haslam@Sun.COMscript()
60*10791SJonathan.Haslam@Sun.COM{
61*10791SJonathan.Haslam@Sun.COM	$dtrace -c ./test -qs /dev/stdin <<EOF
62*10791SJonathan.Haslam@Sun.COM	profile:::profile-1001hz
63*10791SJonathan.Haslam@Sun.COM	/pid == \$target/
64*10791SJonathan.Haslam@Sun.COM	{
65*10791SJonathan.Haslam@Sun.COM		@[arg1] = count();
66*10791SJonathan.Haslam@Sun.COM	}
67*10791SJonathan.Haslam@Sun.COM
68*10791SJonathan.Haslam@Sun.COM	tick-1s
69*10791SJonathan.Haslam@Sun.COM	/n++ > 10/
70*10791SJonathan.Haslam@Sun.COM	{
71*10791SJonathan.Haslam@Sun.COM		printa("%A %@d\n", @);
72*10791SJonathan.Haslam@Sun.COM		exit(0);
73*10791SJonathan.Haslam@Sun.COM	}
74*10791SJonathan.Haslam@Sun.COMEOF
75*10791SJonathan.Haslam@Sun.COM}
76*10791SJonathan.Haslam@Sun.COM
77*10791SJonathan.Haslam@Sun.COMscript
78*10791SJonathan.Haslam@Sun.COMstatus=$?
79*10791SJonathan.Haslam@Sun.COM
80*10791SJonathan.Haslam@Sun.COMcd /
81*10791SJonathan.Haslam@Sun.COM/usr/bin/rm -rf $DIR
82*10791SJonathan.Haslam@Sun.COM
83*10791SJonathan.Haslam@Sun.COMexit $status
84