Home | History | Annotate | Download | only in sys
      1     0    stevel /*
      2     0    stevel  * CDDL HEADER START
      3     0    stevel  *
      4     0    stevel  * The contents of this file are subject to the terms of the
      5  3490  eschrock  * Common Development and Distribution License (the "License").
      6  3490  eschrock  * You may not use this file except in compliance with the License.
      7     0    stevel  *
      8     0    stevel  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
      9     0    stevel  * or http://www.opensolaris.org/os/licensing.
     10     0    stevel  * See the License for the specific language governing permissions
     11     0    stevel  * and limitations under the License.
     12     0    stevel  *
     13     0    stevel  * When distributing Covered Code, include this CDDL HEADER in each
     14     0    stevel  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     15     0    stevel  * If applicable, add the following below this CDDL HEADER, with the
     16     0    stevel  * fields enclosed by brackets "[]" replaced with your own identifying
     17     0    stevel  * information: Portions Copyright [yyyy] [name of copyright owner]
     18     0    stevel  *
     19     0    stevel  * CDDL HEADER END
     20     0    stevel  */
     21     0    stevel /*
     22  9578       Sam  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
     23     0    stevel  * Use is subject to license terms.
     24     0    stevel  */
     25     0    stevel 
     26     0    stevel #ifndef _SYS_SDT_H
     27     0    stevel #define	_SYS_SDT_H
     28     0    stevel 
     29     0    stevel #ifdef	__cplusplus
     30     0    stevel extern "C" {
     31     0    stevel #endif
     32     0    stevel 
     33     0    stevel #ifndef _KERNEL
     34     0    stevel 
     35     0    stevel #define	DTRACE_PROBE(provider, name) {					\
     36     0    stevel 	extern void __dtrace_##provider##___##name(void);		\
     37     0    stevel 	__dtrace_##provider##___##name();				\
     38     0    stevel }
     39     0    stevel 
     40     0    stevel #define	DTRACE_PROBE1(provider, name, arg1) {				\
     41     0    stevel 	extern void __dtrace_##provider##___##name(unsigned long);	\
     42     0    stevel 	__dtrace_##provider##___##name((unsigned long)arg1);		\
     43     0    stevel }
     44     0    stevel 
     45     0    stevel #define	DTRACE_PROBE2(provider, name, arg1, arg2) {			\
     46     0    stevel 	extern void __dtrace_##provider##___##name(unsigned long,	\
     47     0    stevel 	    unsigned long);						\
     48     0    stevel 	__dtrace_##provider##___##name((unsigned long)arg1,		\
     49     0    stevel 	    (unsigned long)arg2);					\
     50     0    stevel }
     51     0    stevel 
     52     0    stevel #define	DTRACE_PROBE3(provider, name, arg1, arg2, arg3) {		\
     53     0    stevel 	extern void __dtrace_##provider##___##name(unsigned long,	\
     54     0    stevel 	    unsigned long, unsigned long);				\
     55     0    stevel 	__dtrace_##provider##___##name((unsigned long)arg1,		\
     56     0    stevel 	    (unsigned long)arg2, (unsigned long)arg3);			\
     57     0    stevel }
     58     0    stevel 
     59     0    stevel #define	DTRACE_PROBE4(provider, name, arg1, arg2, arg3, arg4) {		\
     60     0    stevel 	extern void __dtrace_##provider##___##name(unsigned long,	\
     61     0    stevel 	    unsigned long, unsigned long, unsigned long);		\
     62     0    stevel 	__dtrace_##provider##___##name((unsigned long)arg1,		\
     63     0    stevel 	    (unsigned long)arg2, (unsigned long)arg3,			\
     64     0    stevel 	    (unsigned long)arg4);					\
     65     0    stevel }
     66     0    stevel 
     67     0    stevel #define	DTRACE_PROBE5(provider, name, arg1, arg2, arg3, arg4, arg5) {	\
     68     0    stevel 	extern void __dtrace_##provider##___##name(unsigned long,	\
     69     0    stevel 	    unsigned long, unsigned long, unsigned long, unsigned long);\
     70     0    stevel 	__dtrace_##provider##___##name((unsigned long)arg1,		\
     71     0    stevel 	    (unsigned long)arg2, (unsigned long)arg3,			\
     72     0    stevel 	    (unsigned long)arg4, (unsigned long)arg5);			\
     73     0    stevel }
     74     0    stevel 
     75     0    stevel #else /* _KERNEL */
     76     0    stevel 
     77     0    stevel #define	DTRACE_PROBE(name)	{					\
     78     0    stevel 	extern void __dtrace_probe_##name(void);			\
     79     0    stevel 	__dtrace_probe_##name();					\
     80     0    stevel }
     81     0    stevel 
     82     0    stevel #define	DTRACE_PROBE1(name, type1, arg1) {				\
     83     0    stevel 	extern void __dtrace_probe_##name(uintptr_t);			\
     84     0    stevel 	__dtrace_probe_##name((uintptr_t)(arg1));			\
     85     0    stevel }
     86     0    stevel 
     87     0    stevel #define	DTRACE_PROBE2(name, type1, arg1, type2, arg2) {			\
     88     0    stevel 	extern void __dtrace_probe_##name(uintptr_t, uintptr_t);	\
     89     0    stevel 	__dtrace_probe_##name((uintptr_t)(arg1), (uintptr_t)(arg2));	\
     90     0    stevel }
     91     0    stevel 
     92     0    stevel #define	DTRACE_PROBE3(name, type1, arg1, type2, arg2, type3, arg3) {	\
     93     0    stevel 	extern void __dtrace_probe_##name(uintptr_t, uintptr_t, uintptr_t); \
     94     0    stevel 	__dtrace_probe_##name((uintptr_t)(arg1), (uintptr_t)(arg2),	\
     95     0    stevel 	    (uintptr_t)(arg3));						\
     96     0    stevel }
     97     0    stevel 
     98     0    stevel #define	DTRACE_PROBE4(name, type1, arg1, type2, arg2, 			\
     99     0    stevel     type3, arg3, type4, arg4) {						\
    100     0    stevel 	extern void __dtrace_probe_##name(uintptr_t, uintptr_t,		\
    101     0    stevel 	    uintptr_t, uintptr_t);					\
    102     0    stevel 	__dtrace_probe_##name((uintptr_t)(arg1), (uintptr_t)(arg2),	\
    103     0    stevel 	    (uintptr_t)(arg3), (uintptr_t)(arg4));			\
    104     0    stevel }
    105     0    stevel 
    106  6878   brendan #define	DTRACE_PROBE5(name, type1, arg1, type2, arg2, 			\
    107  6878   brendan     type3, arg3, type4, arg4, type5, arg5) {				\
    108  6878   brendan 	extern void __dtrace_probe_##name(uintptr_t, uintptr_t,		\
    109  6878   brendan 	    uintptr_t, uintptr_t, uintptr_t);				\
    110  6878   brendan 	__dtrace_probe_##name((uintptr_t)(arg1), (uintptr_t)(arg2),	\
    111  6878   brendan 	    (uintptr_t)(arg3), (uintptr_t)(arg4), (uintptr_t)(arg5));	\
    112  6878   brendan }
    113  6878   brendan 
    114  6878   brendan #define	DTRACE_PROBE6(name, type1, arg1, type2, arg2, 			\
    115  6878   brendan     type3, arg3, type4, arg4, type5, arg5, type6, arg6) {		\
    116  6878   brendan 	extern void __dtrace_probe_##name(uintptr_t, uintptr_t,		\
    117  6878   brendan 	    uintptr_t, uintptr_t, uintptr_t, uintptr_t);		\
    118  6878   brendan 	__dtrace_probe_##name((uintptr_t)(arg1), (uintptr_t)(arg2),	\
    119  6878   brendan 	    (uintptr_t)(arg3), (uintptr_t)(arg4), (uintptr_t)(arg5),	\
    120  6878   brendan 	    (uintptr_t)(arg6));						\
    121  6878   brendan }
    122  6878   brendan 
    123  6878   brendan #define	DTRACE_PROBE7(name, type1, arg1, type2, arg2, type3, arg3,	\
    124  6878   brendan     type4, arg4, type5, arg5, type6, arg6, type7, arg7) {		\
    125  6878   brendan 	extern void __dtrace_probe_##name(uintptr_t, uintptr_t,		\
    126  6878   brendan 	    uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);	\
    127  6878   brendan 	__dtrace_probe_##name((uintptr_t)(arg1), (uintptr_t)(arg2),	\
    128  6878   brendan 	    (uintptr_t)(arg3), (uintptr_t)(arg4), (uintptr_t)(arg5),	\
    129  6878   brendan 	    (uintptr_t)(arg6), (uintptr_t)(arg7));			\
    130  6878   brendan }
    131  6878   brendan 
    132  9721     Priya #define	DTRACE_PROBE8(name, type1, arg1, type2, arg2, type3, arg3,	\
    133  9721     Priya     type4, arg4, type5, arg5, type6, arg6, type7, arg7, type8, arg8) {	\
    134  9721     Priya 	extern void __dtrace_probe_##name(uintptr_t, uintptr_t,		\
    135  9721     Priya 	    uintptr_t, uintptr_t, uintptr_t, uintptr_t,			\
    136  9721     Priya 	    uintptr_t, uintptr_t);					\
    137  9721     Priya 	__dtrace_probe_##name((uintptr_t)(arg1), (uintptr_t)(arg2),	\
    138  9721     Priya 	    (uintptr_t)(arg3), (uintptr_t)(arg4), (uintptr_t)(arg5),	\
    139  9721     Priya 	    (uintptr_t)(arg6), (uintptr_t)(arg7), (uintptr_t)(arg8));	\
    140  9721     Priya }
    141  9721     Priya 
    142     0    stevel #define	DTRACE_SCHED(name)						\
    143     0    stevel 	DTRACE_PROBE(__sched_##name);
    144     0    stevel 
    145     0    stevel #define	DTRACE_SCHED1(name, type1, arg1)				\
    146     0    stevel 	DTRACE_PROBE1(__sched_##name, type1, arg1);
    147     0    stevel 
    148     0    stevel #define	DTRACE_SCHED2(name, type1, arg1, type2, arg2)			\
    149     0    stevel 	DTRACE_PROBE2(__sched_##name, type1, arg1, type2, arg2);
    150     0    stevel 
    151     0    stevel #define	DTRACE_SCHED3(name, type1, arg1, type2, arg2, type3, arg3)	\
    152     0    stevel 	DTRACE_PROBE3(__sched_##name, type1, arg1, type2, arg2, type3, arg3);
    153     0    stevel 
    154     0    stevel #define	DTRACE_SCHED4(name, type1, arg1, type2, arg2, 			\
    155     0    stevel     type3, arg3, type4, arg4)						\
    156     0    stevel 	DTRACE_PROBE4(__sched_##name, type1, arg1, type2, arg2, 	\
    157     0    stevel 	    type3, arg3, type4, arg4);
    158     0    stevel 
    159     0    stevel #define	DTRACE_PROC(name)						\
    160     0    stevel 	DTRACE_PROBE(__proc_##name);
    161     0    stevel 
    162     0    stevel #define	DTRACE_PROC1(name, type1, arg1)					\
    163     0    stevel 	DTRACE_PROBE1(__proc_##name, type1, arg1);
    164     0    stevel 
    165     0    stevel #define	DTRACE_PROC2(name, type1, arg1, type2, arg2)			\
    166     0    stevel 	DTRACE_PROBE2(__proc_##name, type1, arg1, type2, arg2);
    167     0    stevel 
    168     0    stevel #define	DTRACE_PROC3(name, type1, arg1, type2, arg2, type3, arg3)	\
    169     0    stevel 	DTRACE_PROBE3(__proc_##name, type1, arg1, type2, arg2, type3, arg3);
    170     0    stevel 
    171     0    stevel #define	DTRACE_PROC4(name, type1, arg1, type2, arg2, 			\
    172     0    stevel     type3, arg3, type4, arg4)						\
    173     0    stevel 	DTRACE_PROBE4(__proc_##name, type1, arg1, type2, arg2, 		\
    174     0    stevel 	    type3, arg3, type4, arg4);
    175     0    stevel 
    176     0    stevel #define	DTRACE_IO(name)							\
    177     0    stevel 	DTRACE_PROBE(__io_##name);
    178     0    stevel 
    179     0    stevel #define	DTRACE_IO1(name, type1, arg1)					\
    180     0    stevel 	DTRACE_PROBE1(__io_##name, type1, arg1);
    181     0    stevel 
    182     0    stevel #define	DTRACE_IO2(name, type1, arg1, type2, arg2)			\
    183     0    stevel 	DTRACE_PROBE2(__io_##name, type1, arg1, type2, arg2);
    184     0    stevel 
    185     0    stevel #define	DTRACE_IO3(name, type1, arg1, type2, arg2, type3, arg3)	\
    186     0    stevel 	DTRACE_PROBE3(__io_##name, type1, arg1, type2, arg2, type3, arg3);
    187     0    stevel 
    188     0    stevel #define	DTRACE_IO4(name, type1, arg1, type2, arg2, 			\
    189     0    stevel     type3, arg3, type4, arg4)						\
    190     0    stevel 	DTRACE_PROBE4(__io_##name, type1, arg1, type2, arg2, 		\
    191     0    stevel 	    type3, arg3, type4, arg4);
    192  9721     Priya 
    193  9721     Priya #define	DTRACE_ISCSI_2(name, type1, arg1, type2, arg2)			\
    194  9721     Priya 	DTRACE_PROBE2(__iscsi_##name, type1, arg1, type2, arg2);
    195  9721     Priya 
    196  9721     Priya #define	DTRACE_ISCSI_3(name, type1, arg1, type2, arg2, type3, arg3)	\
    197  9721     Priya 	DTRACE_PROBE3(__iscsi_##name, type1, arg1, type2, arg2, type3, arg3);
    198  9721     Priya 
    199  9721     Priya #define	DTRACE_ISCSI_4(name, type1, arg1, type2, arg2,			\
    200  9721     Priya     type3, arg3, type4, arg4)						\
    201  9721     Priya 	DTRACE_PROBE4(__iscsi_##name, type1, arg1, type2, arg2,		\
    202  9721     Priya 	    type3, arg3, type4, arg4);
    203  9721     Priya 
    204  9721     Priya #define	DTRACE_ISCSI_5(name, type1, arg1, type2, arg2,			\
    205  9721     Priya     type3, arg3, type4, arg4, type5, arg5)				\
    206  9721     Priya 	DTRACE_PROBE5(__iscsi_##name, type1, arg1, type2, arg2,		\
    207  9721     Priya 	    type3, arg3, type4, arg4, type5, arg5);
    208  9721     Priya 
    209  9721     Priya #define	DTRACE_ISCSI_6(name, type1, arg1, type2, arg2,			\
    210  9721     Priya     type3, arg3, type4, arg4, type5, arg5, type6, arg6)			\
    211  9721     Priya 	DTRACE_PROBE6(__iscsi_##name, type1, arg1, type2, arg2,		\
    212  9721     Priya 	    type3, arg3, type4, arg4, type5, arg5, type6, arg6);
    213  9721     Priya 
    214  9721     Priya #define	DTRACE_ISCSI_7(name, type1, arg1, type2, arg2,			\
    215  9721     Priya     type3, arg3, type4, arg4, type5, arg5, type6, arg6, type7, arg7)	\
    216  9721     Priya 	DTRACE_PROBE7(__iscsi_##name, type1, arg1, type2, arg2,		\
    217  9721     Priya 	    type3, arg3, type4, arg4, type5, arg5, type6, arg6,		\
    218  9721     Priya 	    type7, arg7);
    219  9721     Priya 
    220  9721     Priya #define	DTRACE_ISCSI_8(name, type1, arg1, type2, arg2,			\
    221  9721     Priya     type3, arg3, type4, arg4, type5, arg5, type6, arg6,			\
    222  9721     Priya     type7, arg7, type8, arg8)						\
    223  9721     Priya 	DTRACE_PROBE8(__iscsi_##name, type1, arg1, type2, arg2,		\
    224  9721     Priya 	    type3, arg3, type4, arg4, type5, arg5, type6, arg6,		\
    225  9721     Priya 	    type7, arg7, type8, arg8);
    226     0    stevel 
    227  5982       ahl #define	DTRACE_NFSV3_3(name, type1, arg1, type2, arg2, 			\
    228  5982       ahl     type3, arg3)							\
    229  5982       ahl 	DTRACE_PROBE3(__nfsv3_##name, type1, arg1, type2, arg2,		\
    230  5982       ahl 	    type3, arg3);
    231  5982       ahl #define	DTRACE_NFSV3_4(name, type1, arg1, type2, arg2, 			\
    232  5982       ahl     type3, arg3, type4, arg4)						\
    233  5982       ahl 	DTRACE_PROBE4(__nfsv3_##name, type1, arg1, type2, arg2,		\
    234  5982       ahl 	    type3, arg3, type4, arg4);
    235  5982       ahl 
    236  5647      samf #define	DTRACE_NFSV4_1(name, type1, arg1) \
    237  5647      samf 	DTRACE_PROBE1(__nfsv4_##name, type1, arg1);
    238  5647      samf 
    239  5647      samf #define	DTRACE_NFSV4_2(name, type1, arg1, type2, arg2) \
    240  5647      samf 	DTRACE_PROBE2(__nfsv4_##name, type1, arg1, type2, arg2);
    241  5647      samf 
    242  5647      samf #define	DTRACE_NFSV4_3(name, type1, arg1, type2, arg2, type3, arg3) \
    243  5647      samf 	DTRACE_PROBE3(__nfsv4_##name, type1, arg1, type2, arg2, type3, arg3);
    244  5647      samf 
    245  6139  jb150015 #define	DTRACE_SMB_1(name, type1, arg1) \
    246  6139  jb150015 	DTRACE_PROBE1(__smb_##name, type1, arg1);
    247  6139  jb150015 
    248  6139  jb150015 #define	DTRACE_SMB_2(name, type1, arg1, type2, arg2) \
    249  6139  jb150015 	DTRACE_PROBE2(__smb_##name, type1, arg1, type2, arg2);
    250  6139  jb150015 
    251  6878   brendan #define	DTRACE_IP(name)						\
    252  6878   brendan 	DTRACE_PROBE(__ip_##name);
    253  6878   brendan 
    254  6878   brendan #define	DTRACE_IP1(name, type1, arg1)					\
    255  6878   brendan 	DTRACE_PROBE1(__ip_##name, type1, arg1);
    256  6878   brendan 
    257  6878   brendan #define	DTRACE_IP2(name, type1, arg1, type2, arg2)			\
    258  6878   brendan 	DTRACE_PROBE2(__ip_##name, type1, arg1, type2, arg2);
    259  6878   brendan 
    260  6878   brendan #define	DTRACE_IP3(name, type1, arg1, type2, arg2, type3, arg3)	\
    261  6878   brendan 	DTRACE_PROBE3(__ip_##name, type1, arg1, type2, arg2, type3, arg3);
    262  6878   brendan 
    263  6878   brendan #define	DTRACE_IP4(name, type1, arg1, type2, arg2, 			\
    264  6878   brendan     type3, arg3, type4, arg4)						\
    265  6878   brendan 	DTRACE_PROBE4(__ip_##name, type1, arg1, type2, arg2, 		\
    266  6878   brendan 	    type3, arg3, type4, arg4);
    267  6878   brendan 
    268  6878   brendan #define	DTRACE_IP5(name, type1, arg1, type2, arg2, 			\
    269  6878   brendan     type3, arg3, type4, arg4, type5, arg5)				\
    270  6878   brendan 	DTRACE_PROBE5(__ip_##name, type1, arg1, type2, arg2, 		\
    271  6878   brendan 	    type3, arg3, type4, arg4, type5, arg5);
    272  6878   brendan 
    273  6878   brendan #define	DTRACE_IP6(name, type1, arg1, type2, arg2, 			\
    274  6878   brendan     type3, arg3, type4, arg4, type5, arg5, type6, arg6)			\
    275  6878   brendan 	DTRACE_PROBE6(__ip_##name, type1, arg1, type2, arg2, 		\
    276  6878   brendan 	    type3, arg3, type4, arg4, type5, arg5, type6, arg6);
    277  6878   brendan 
    278  6878   brendan #define	DTRACE_IP7(name, type1, arg1, type2, arg2, type3, arg3,		\
    279  6878   brendan     type4, arg4, type5, arg5, type6, arg6, type7, arg7)			\
    280  6878   brendan 	DTRACE_PROBE7(__ip_##name, type1, arg1, type2, arg2, 		\
    281  6878   brendan 	    type3, arg3, type4, arg4, type5, arg5, type6, arg6,		\
    282  6878   brendan 	    type7, arg7);
    283  6878   brendan 
    284  3490  eschrock #define	DTRACE_SYSEVENT2(name, type1, arg1, type2, arg2)		\
    285  3490  eschrock 	DTRACE_PROBE2(__sysevent_##name, type1, arg1, type2, arg2);
    286  3490  eschrock 
    287  5084   johnlev #define	DTRACE_XPV(name)						\
    288  5084   johnlev 	DTRACE_PROBE(__xpv_##name);
    289  5084   johnlev 
    290  5084   johnlev #define	DTRACE_XPV1(name, type1, arg1)					\
    291  5084   johnlev 	DTRACE_PROBE1(__xpv_##name, type1, arg1);
    292  5084   johnlev 
    293  5084   johnlev #define	DTRACE_XPV2(name, type1, arg1, type2, arg2)			\
    294  5084   johnlev 	DTRACE_PROBE2(__xpv_##name, type1, arg1, type2, arg2);
    295  5084   johnlev 
    296  5084   johnlev #define	DTRACE_XPV3(name, type1, arg1, type2, arg2, type3, arg3)	\
    297  5084   johnlev 	DTRACE_PROBE3(__xpv_##name, type1, arg1, type2, arg2, type3, arg3);
    298  5084   johnlev 
    299  5084   johnlev #define	DTRACE_XPV4(name, type1, arg1, type2, arg2, type3, arg3,	\
    300  5084   johnlev 	    type4, arg4)						\
    301  5084   johnlev 	DTRACE_PROBE4(__xpv_##name, type1, arg1, type2, arg2, 		\
    302  5084   johnlev 	    type3, arg3, type4, arg4);
    303  5084   johnlev 
    304  9578       Sam #define	DTRACE_FC_1(name, type1, arg1) \
    305  9578       Sam 	DTRACE_PROBE1(__fc_##name, type1, arg1);
    306  9578       Sam 
    307  9578       Sam #define	DTRACE_FC_2(name, type1, arg1, type2, arg2) \
    308  9578       Sam 	DTRACE_PROBE2(__fc_##name, type1, arg1, type2, arg2);
    309  9578       Sam 
    310  9578       Sam #define	DTRACE_FC_3(name, type1, arg1, type2, arg2, type3, arg3) \
    311  9578       Sam 	DTRACE_PROBE3(__fc_##name, type1, arg1, type2, arg2, type3, arg3);
    312  9578       Sam 
    313  9578       Sam #define	DTRACE_FC_4(name, type1, arg1, type2, arg2, type3, arg3, type4, arg4) \
    314  9578       Sam 	DTRACE_PROBE4(__fc_##name, type1, arg1, type2, arg2, type3, arg3, \
    315  9578       Sam 	    type4, arg4);
    316  9578       Sam 
    317  9578       Sam #define	DTRACE_FC_5(name, type1, arg1, type2, arg2, type3, arg3, 	\
    318  9578       Sam 	    type4, arg4, type5, arg5)					\
    319  9578       Sam 	DTRACE_PROBE5(__fc_##name, type1, arg1, type2, arg2, type3, arg3, \
    320  9578       Sam 	    type4, arg4, type5, arg5);
    321  9578       Sam 
    322  9829   Charles #define	DTRACE_SRP_1(name, type1, arg1)					\
    323  9829   Charles 	DTRACE_PROBE1(__srp_##name, type1, arg1);
    324  9578       Sam 
    325  9829   Charles #define	DTRACE_SRP_2(name, type1, arg1, type2, arg2)			\
    326  9829   Charles 	DTRACE_PROBE2(__srp_##name, type1, arg1, type2, arg2);
    327  9829   Charles 
    328  9829   Charles #define	DTRACE_SRP_3(name, type1, arg1, type2, arg2, type3, arg3)	\
    329  9829   Charles 	DTRACE_PROBE3(__srp_##name, type1, arg1, type2, arg2, type3, arg3);
    330  9829   Charles 
    331  9829   Charles #define	DTRACE_SRP_4(name, type1, arg1, type2, arg2, type3, arg3,	\
    332  9829   Charles 	    type4, arg4)						\
    333  9829   Charles 	DTRACE_PROBE4(__srp_##name, type1, arg1, type2, arg2, 		\
    334  9829   Charles 	    type3, arg3, type4, arg4);
    335  9829   Charles 
    336  9829   Charles #define	DTRACE_SRP_5(name, type1, arg1, type2, arg2, type3, arg3,	\
    337  9829   Charles 	    type4, arg4, type5, arg5)					\
    338  9829   Charles 	DTRACE_PROBE5(__srp_##name, type1, arg1, type2, arg2, 		\
    339  9829   Charles 	    type3, arg3, type4, arg4, type5, arg5);
    340  9829   Charles 
    341  9829   Charles #define	DTRACE_SRP_6(name, type1, arg1, type2, arg2, type3, arg3,	\
    342  9829   Charles 	    type4, arg4, type5, arg5, type6, arg6)			\
    343  9829   Charles 	DTRACE_PROBE6(__srp_##name, type1, arg1, type2, arg2, 		\
    344  9829   Charles 	    type3, arg3, type4, arg4, type5, arg5, type6, arg6);
    345  9829   Charles 
    346  9829   Charles #define	DTRACE_SRP_7(name, type1, arg1, type2, arg2, type3, arg3,	\
    347  9829   Charles 	    type4, arg4, type5, arg5, type6, arg6, type7, arg7)		\
    348  9829   Charles 	DTRACE_PROBE7(__srp_##name, type1, arg1, type2, arg2, 		\
    349  9829   Charles 	    type3, arg3, type4, arg4, type5, arg5, type6, arg6, type7, arg7);
    350  9578       Sam 
    351  9881   Charles #define	DTRACE_SRP_8(name, type1, arg1, type2, arg2, type3, arg3,	\
    352  9881   Charles 	    type4, arg4, type5, arg5, type6, arg6, type7, arg7, type8, arg8) \
    353  9881   Charles 	DTRACE_PROBE8(__srp_##name, type1, arg1, type2, arg2, 		\
    354  9881   Charles 	    type3, arg3, type4, arg4, type5, arg5, type6, arg6,		\
    355  9881   Charles 	    type7, arg7, type8, arg8);
    356  9881   Charles 
    357     0    stevel #endif /* _KERNEL */
    358     0    stevel 
    359     0    stevel extern const char *sdt_prefix;
    360     0    stevel 
    361     0    stevel typedef struct sdt_probedesc {
    362     0    stevel 	char			*sdpd_name;	/* name of this probe */
    363     0    stevel 	unsigned long		sdpd_offset;	/* offset of call in text */
    364     0    stevel 	struct sdt_probedesc	*sdpd_next;	/* next static probe */
    365     0    stevel } sdt_probedesc_t;
    366     0    stevel 
    367     0    stevel #ifdef	__cplusplus
    368     0    stevel }
    369     0    stevel #endif
    370     0    stevel 
    371     0    stevel #endif	/* _SYS_SDT_H */
    372