1178476Sjb/* 2178476Sjb * CDDL HEADER START 3178476Sjb * 4178476Sjb * The contents of this file are subject to the terms of the 5178476Sjb * Common Development and Distribution License (the "License"). 6178476Sjb * You may not use this file except in compliance with the License. 7178476Sjb * 8178476Sjb * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9178476Sjb * or http://www.opensolaris.org/os/licensing. 10178476Sjb * See the License for the specific language governing permissions 11178476Sjb * and limitations under the License. 12178476Sjb * 13178476Sjb * When distributing Covered Code, include this CDDL HEADER in each 14178476Sjb * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15178476Sjb * If applicable, add the following below this CDDL HEADER, with the 16178476Sjb * fields enclosed by brackets "[]" replaced with your own identifying 17178476Sjb * information: Portions Copyright [yyyy] [name of copyright owner] 18178476Sjb * 19178476Sjb * CDDL HEADER END 20178476Sjb */ 21178476Sjb 22178476Sjb/* 23178476Sjb * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 24178476Sjb * Use is subject to license terms. 25178476Sjb */ 26178476Sjb 27178476Sjb#pragma ident "%Z%%M% %I% %E% SMI" 28178476Sjb 29178476Sjbtypedef void f(char *); 30178476Sjb 31178476Sjbstatic void 32178476Sjbf_a(char *a) 33178476Sjb{ 34178476Sjb} 35178476Sjb 36178476Sjbstatic void 37178476Sjbf_b(char *a) 38178476Sjb{ 39178476Sjb} 40178476Sjb 41178476Sjbstatic void 42178476Sjbf_c(char *a) 43178476Sjb{ 44178476Sjb} 45178476Sjb 46178476Sjbstatic void 47178476Sjbf_d(char *a) 48178476Sjb{ 49178476Sjb} 50178476Sjb 51178476Sjbstatic void 52178476Sjbf_e(char *a) 53178476Sjb{ 54178476Sjb} 55178476Sjb 56178476Sjbstatic void 57178476SjbfN(f func, char *a, int i) 58178476Sjb{ 59178476Sjb func(a); 60178476Sjb} 61178476Sjb 62178476Sjbstatic void 63178476SjbfN2(f func, char *a, int i) 64178476Sjb{ 65178476Sjb func(a); 66178476Sjb} 67178476Sjb 68178476Sjbint 69178476Sjbmain() 70178476Sjb{ 71178476Sjb /* 72178476Sjb * Avoid length of 1, 2, 4, or 8 bytes so DTrace will treat the data as 73178476Sjb * a byte array. 74178476Sjb */ 75178476Sjb char a[] = {(char)-7, (char)201, (char)0, (char)0, (char)28, (char)1}; 76178476Sjb char b[] = {(char)84, (char)69, (char)0, (char)0, (char)28, (char)0}; 77178476Sjb char c[] = {(char)84, (char)69, (char)0, (char)0, (char)28, (char)1}; 78178476Sjb char d[] = {(char)-7, (char)201, (char)0, (char)0, (char)29, (char)0}; 79178476Sjb char e[] = {(char)84, (char)69, (char)0, (char)0, (char)28, (char)0}; 80178476Sjb 81178476Sjb fN(f_a, a, 1); 82178476Sjb fN(f_b, b, 0); 83178476Sjb fN(f_d, d, 102); 84178476Sjb fN2(f_e, e, -2); 85178476Sjb fN(f_c, c, 0); 86178476Sjb fN(f_a, a, -1); 87178476Sjb fN(f_d, d, 101); 88178476Sjb fN(f_e, e, -2); 89178476Sjb fN(f_e, e, 2); 90178476Sjb fN2(f_e, e, 2); 91178476Sjb 92178476Sjb return (0); 93178476Sjb} 94