tst.subr.d revision 14c0b03165f67fc77b52e53701ea2a4a41976948
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard/*
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * CDDL HEADER START
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard *
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * The contents of this file are subject to the terms of the
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * Common Development and Distribution License (the "License").
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * You may not use this file except in compliance with the License.
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard *
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * or http://www.opensolaris.org/os/licensing.
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * See the License for the specific language governing permissions
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * and limitations under the License.
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard *
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * When distributing Covered Code, include this CDDL HEADER in each
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * If applicable, add the following below this CDDL HEADER, with the
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * fields enclosed by brackets "[]" replaced with your own identifying
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * information: Portions Copyright [yyyy] [name of copyright owner]
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard *
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * CDDL HEADER END
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard */
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard
24fe0b3bf671e123467ce1df0b67cadd3614c8e4jmcp/*
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard * Use is subject to license terms.
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard */
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard#include <sys/dtrace.h>
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard#define INTFUNC(x) \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard BEGIN \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard /*DSTYLED*/ \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard { \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard subr++; \
8696d418011068e5cedf3a229f7a6613e7798e92ky @[(long)x] = sum(1); \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard /*DSTYLED*/ \
8696d418011068e5cedf3a229f7a6613e7798e92ky }
8696d418011068e5cedf3a229f7a6613e7798e92ky
8696d418011068e5cedf3a229f7a6613e7798e92ky#define STRFUNC(x) \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard BEGIN \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard /*DSTYLED*/ \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard { \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard subr++; \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard @str[x] = sum(1); \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard /*DSTYLED*/ \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard }
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard
24fe0b3bf671e123467ce1df0b67cadd3614c8e4jmcp#define VOIDFUNC(x) \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard BEGIN \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard /*DSTYLED*/ \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard { \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard subr++; \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard /*DSTYLED*/ \
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard }
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willard
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willardINTFUNC(rand())
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willardINTFUNC(mutex_owned(&`cpu_lock))
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willardINTFUNC(mutex_owner(&`cpu_lock))
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willardINTFUNC(mutex_type_adaptive(&`cpu_lock))
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willardINTFUNC(mutex_type_spin(&`cpu_lock))
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willardINTFUNC(rw_read_held(&`vfssw_lock))
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willardINTFUNC(rw_write_held(&`vfssw_lock))
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willardINTFUNC(rw_iswriter(&`vfssw_lock))
8696d418011068e5cedf3a229f7a6613e7798e92kyINTFUNC(copyin(NULL, 1))
8696d418011068e5cedf3a229f7a6613e7798e92kySTRFUNC(copyinstr(NULL, 1))
8696d418011068e5cedf3a229f7a6613e7798e92kyINTFUNC(speculation())
8696d418011068e5cedf3a229f7a6613e7798e92kyINTFUNC(progenyof($pid))
8696d418011068e5cedf3a229f7a6613e7798e92kyINTFUNC(strlen("fooey"))
8696d418011068e5cedf3a229f7a6613e7798e92kyVOIDFUNC(copyout)
8696d418011068e5cedf3a229f7a6613e7798e92kyVOIDFUNC(copyoutstr)
8696d418011068e5cedf3a229f7a6613e7798e92kyINTFUNC(alloca(10))
8696d418011068e5cedf3a229f7a6613e7798e92kyVOIDFUNC(bcopy)
8696d418011068e5cedf3a229f7a6613e7798e92kyVOIDFUNC(copyinto)
8696d418011068e5cedf3a229f7a6613e7798e92kyINTFUNC(msgdsize(NULL))
8696d418011068e5cedf3a229f7a6613e7798e92kyINTFUNC(msgsize(NULL))
8696d418011068e5cedf3a229f7a6613e7798e92kyINTFUNC(getmajor(0))
8696d418011068e5cedf3a229f7a6613e7798e92kyINTFUNC(getminor(0))
8696d418011068e5cedf3a229f7a6613e7798e92kySTRFUNC(ddi_pathname(NULL, 0))
8696d418011068e5cedf3a229f7a6613e7798e92kySTRFUNC(strjoin("foo", "bar"))
8696d418011068e5cedf3a229f7a6613e7798e92kySTRFUNC(lltostr(12373))
8696d418011068e5cedf3a229f7a6613e7798e92kySTRFUNC(basename("/var/crash/systemtap"))
8696d418011068e5cedf3a229f7a6613e7798e92kySTRFUNC(dirname("/var/crash/systemtap"))
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willardSTRFUNC(cleanpath("/var/crash/systemtap"))
4a6822d07d6d3f9ffe6907ef5f10d11dcadd75c6willardSTRFUNC(strchr("The SystemTap, The.", 't'))
STRFUNC(strrchr("The SystemTap, The.", 't'))
STRFUNC(strstr("The SystemTap, The.", "The"))
STRFUNC(strtok("The SystemTap, The.", "T"))
STRFUNC(substr("The SystemTap, The.", 0))
INTFUNC(index("The SystemTap, The.", "The"))
INTFUNC(rindex("The SystemTap, The.", "The"))
INTFUNC(htons(0x1234))
INTFUNC(htonl(0x12345678))
INTFUNC(htonll(0x1234567890abcdefL))
INTFUNC(ntohs(0x1234))
INTFUNC(ntohl(0x12345678))
INTFUNC(ntohll(0x1234567890abcdefL))
STRFUNC(inet_ntoa((ipaddr_t *)alloca(sizeof (ipaddr_t))))
STRFUNC(inet_ntoa6((in6_addr_t *)alloca(sizeof (in6_addr_t))))
STRFUNC(inet_ntop(AF_INET, (void *)alloca(sizeof (ipaddr_t))))
STRFUNC(toupper("foo"))
STRFUNC(tolower("BAR"))
BEGIN
/subr == DIF_SUBR_MAX + 1/
{
exit(0);
}
BEGIN
{
printf("found %d subroutines, expected %d\n", subr, DIF_SUBR_MAX + 1);
exit(1);
}