Print this page
*** NO COMMENTS ***
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/uts/common/sys/sdt.h
+++ new/usr/src/uts/common/sys/sdt.h
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License (the "License").
6 6 * You may not use this file except in compliance with the License.
7 7 *
8 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 * or http://www.opensolaris.org/os/licensing.
10 10 * See the License for the specific language governing permissions
11 11 * and limitations under the License.
12 12 *
13 13 * When distributing Covered Code, include this CDDL HEADER in each
14 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 * If applicable, add the following below this CDDL HEADER, with the
16 16 * fields enclosed by brackets "[]" replaced with your own identifying
17 17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 18 *
19 19 * CDDL HEADER END
20 20 */
21 21 /*
22 22 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
23 23 * Use is subject to license terms.
24 24 */
25 25
26 26 #ifndef _SYS_SDT_H
27 27 #define _SYS_SDT_H
28 28
29 29 #pragma ident "%Z%%M% %I% %E% SMI"
30 30
31 31 #ifdef __cplusplus
32 32 extern "C" {
33 33 #endif
34 34
35 35 #ifndef _KERNEL
36 36
37 37 #define DTRACE_PROBE(provider, name) { \
38 38 extern void __dtrace_##provider##___##name(void); \
39 39 __dtrace_##provider##___##name(); \
40 40 }
41 41
42 42 #define DTRACE_PROBE1(provider, name, arg1) { \
43 43 extern void __dtrace_##provider##___##name(unsigned long); \
44 44 __dtrace_##provider##___##name((unsigned long)arg1); \
45 45 }
46 46
47 47 #define DTRACE_PROBE2(provider, name, arg1, arg2) { \
48 48 extern void __dtrace_##provider##___##name(unsigned long, \
49 49 unsigned long); \
50 50 __dtrace_##provider##___##name((unsigned long)arg1, \
51 51 (unsigned long)arg2); \
52 52 }
53 53
54 54 #define DTRACE_PROBE3(provider, name, arg1, arg2, arg3) { \
55 55 extern void __dtrace_##provider##___##name(unsigned long, \
56 56 unsigned long, unsigned long); \
57 57 __dtrace_##provider##___##name((unsigned long)arg1, \
58 58 (unsigned long)arg2, (unsigned long)arg3); \
59 59 }
60 60
61 61 #define DTRACE_PROBE4(provider, name, arg1, arg2, arg3, arg4) { \
62 62 extern void __dtrace_##provider##___##name(unsigned long, \
63 63 unsigned long, unsigned long, unsigned long); \
64 64 __dtrace_##provider##___##name((unsigned long)arg1, \
65 65 (unsigned long)arg2, (unsigned long)arg3, \
66 66 (unsigned long)arg4); \
67 67 }
68 68
69 69 #define DTRACE_PROBE5(provider, name, arg1, arg2, arg3, arg4, arg5) { \
70 70 extern void __dtrace_##provider##___##name(unsigned long, \
71 71 unsigned long, unsigned long, unsigned long, unsigned long);\
72 72 __dtrace_##provider##___##name((unsigned long)arg1, \
73 73 (unsigned long)arg2, (unsigned long)arg3, \
74 74 (unsigned long)arg4, (unsigned long)arg5); \
75 75 }
76 76
77 77 #else /* _KERNEL */
78 78
79 79 #define DTRACE_PROBE(name) { \
80 80 extern void __dtrace_probe_##name(void); \
81 81 __dtrace_probe_##name(); \
82 82 }
83 83
84 84 #define DTRACE_PROBE1(name, type1, arg1) { \
85 85 extern void __dtrace_probe_##name(uintptr_t); \
86 86 __dtrace_probe_##name((uintptr_t)(arg1)); \
87 87 }
88 88
89 89 #define DTRACE_PROBE2(name, type1, arg1, type2, arg2) { \
90 90 extern void __dtrace_probe_##name(uintptr_t, uintptr_t); \
91 91 __dtrace_probe_##name((uintptr_t)(arg1), (uintptr_t)(arg2)); \
92 92 }
93 93
94 94 #define DTRACE_PROBE3(name, type1, arg1, type2, arg2, type3, arg3) { \
95 95 extern void __dtrace_probe_##name(uintptr_t, uintptr_t, uintptr_t); \
96 96 __dtrace_probe_##name((uintptr_t)(arg1), (uintptr_t)(arg2), \
97 97 (uintptr_t)(arg3)); \
98 98 }
99 99
100 100 #define DTRACE_PROBE4(name, type1, arg1, type2, arg2, \
101 101 type3, arg3, type4, arg4) { \
102 102 extern void __dtrace_probe_##name(uintptr_t, uintptr_t, \
103 103 uintptr_t, uintptr_t); \
104 104 __dtrace_probe_##name((uintptr_t)(arg1), (uintptr_t)(arg2), \
105 105 (uintptr_t)(arg3), (uintptr_t)(arg4)); \
106 106 }
107 107
108 108 #define DTRACE_PROBE5(name, type1, arg1, type2, arg2, \
109 109 type3, arg3, type4, arg4, type5, arg5) { \
110 110 extern void __dtrace_probe_##name(uintptr_t, uintptr_t, \
111 111 uintptr_t, uintptr_t, uintptr_t); \
112 112 __dtrace_probe_##name((uintptr_t)(arg1), (uintptr_t)(arg2), \
113 113 (uintptr_t)(arg3), (uintptr_t)(arg4), (uintptr_t)(arg5)); \
114 114 }
115 115
116 116 #define DTRACE_PROBE6(name, type1, arg1, type2, arg2, \
117 117 type3, arg3, type4, arg4, type5, arg5, type6, arg6) { \
118 118 extern void __dtrace_probe_##name(uintptr_t, uintptr_t, \
119 119 uintptr_t, uintptr_t, uintptr_t, uintptr_t); \
120 120 __dtrace_probe_##name((uintptr_t)(arg1), (uintptr_t)(arg2), \
121 121 (uintptr_t)(arg3), (uintptr_t)(arg4), (uintptr_t)(arg5), \
122 122 (uintptr_t)(arg6)); \
123 123 }
124 124
125 125 #define DTRACE_PROBE7(name, type1, arg1, type2, arg2, type3, arg3, \
126 126 type4, arg4, type5, arg5, type6, arg6, type7, arg7) { \
127 127 extern void __dtrace_probe_##name(uintptr_t, uintptr_t, \
128 128 uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); \
129 129 __dtrace_probe_##name((uintptr_t)(arg1), (uintptr_t)(arg2), \
130 130 (uintptr_t)(arg3), (uintptr_t)(arg4), (uintptr_t)(arg5), \
131 131 (uintptr_t)(arg6), (uintptr_t)(arg7)); \
132 132 }
133 133
134 134 #define DTRACE_SCHED(name) \
135 135 DTRACE_PROBE(__sched_##name);
136 136
137 137 #define DTRACE_SCHED1(name, type1, arg1) \
138 138 DTRACE_PROBE1(__sched_##name, type1, arg1);
139 139
140 140 #define DTRACE_SCHED2(name, type1, arg1, type2, arg2) \
141 141 DTRACE_PROBE2(__sched_##name, type1, arg1, type2, arg2);
142 142
143 143 #define DTRACE_SCHED3(name, type1, arg1, type2, arg2, type3, arg3) \
144 144 DTRACE_PROBE3(__sched_##name, type1, arg1, type2, arg2, type3, arg3);
145 145
146 146 #define DTRACE_SCHED4(name, type1, arg1, type2, arg2, \
147 147 type3, arg3, type4, arg4) \
148 148 DTRACE_PROBE4(__sched_##name, type1, arg1, type2, arg2, \
149 149 type3, arg3, type4, arg4);
150 150
151 151 #define DTRACE_PROC(name) \
152 152 DTRACE_PROBE(__proc_##name);
153 153
154 154 #define DTRACE_PROC1(name, type1, arg1) \
155 155 DTRACE_PROBE1(__proc_##name, type1, arg1);
156 156
157 157 #define DTRACE_PROC2(name, type1, arg1, type2, arg2) \
158 158 DTRACE_PROBE2(__proc_##name, type1, arg1, type2, arg2);
159 159
160 160 #define DTRACE_PROC3(name, type1, arg1, type2, arg2, type3, arg3) \
161 161 DTRACE_PROBE3(__proc_##name, type1, arg1, type2, arg2, type3, arg3);
162 162
163 163 #define DTRACE_PROC4(name, type1, arg1, type2, arg2, \
164 164 type3, arg3, type4, arg4) \
165 165 DTRACE_PROBE4(__proc_##name, type1, arg1, type2, arg2, \
166 166 type3, arg3, type4, arg4);
167 167
168 168 #define DTRACE_IO(name) \
169 169 DTRACE_PROBE(__io_##name);
170 170
171 171 #define DTRACE_IO1(name, type1, arg1) \
172 172 DTRACE_PROBE1(__io_##name, type1, arg1);
173 173
174 174 #define DTRACE_IO2(name, type1, arg1, type2, arg2) \
175 175 DTRACE_PROBE2(__io_##name, type1, arg1, type2, arg2);
176 176
177 177 #define DTRACE_IO3(name, type1, arg1, type2, arg2, type3, arg3) \
178 178 DTRACE_PROBE3(__io_##name, type1, arg1, type2, arg2, type3, arg3);
179 179
180 180 #define DTRACE_IO4(name, type1, arg1, type2, arg2, \
181 181 type3, arg3, type4, arg4) \
182 182 DTRACE_PROBE4(__io_##name, type1, arg1, type2, arg2, \
183 183 type3, arg3, type4, arg4);
184 184
185 185 #define DTRACE_NFSV3_3(name, type1, arg1, type2, arg2, \
186 186 type3, arg3) \
187 187 DTRACE_PROBE3(__nfsv3_##name, type1, arg1, type2, arg2, \
188 188 type3, arg3);
189 189 #define DTRACE_NFSV3_4(name, type1, arg1, type2, arg2, \
190 190 type3, arg3, type4, arg4) \
191 191 DTRACE_PROBE4(__nfsv3_##name, type1, arg1, type2, arg2, \
192 192 type3, arg3, type4, arg4);
193 193
194 194 #define DTRACE_NFSV4_1(name, type1, arg1) \
195 195 DTRACE_PROBE1(__nfsv4_##name, type1, arg1);
196 196
197 197 #define DTRACE_NFSV4_2(name, type1, arg1, type2, arg2) \
198 198 DTRACE_PROBE2(__nfsv4_##name, type1, arg1, type2, arg2);
199 199
200 200 #define DTRACE_NFSV4_3(name, type1, arg1, type2, arg2, type3, arg3) \
201 201 DTRACE_PROBE3(__nfsv4_##name, type1, arg1, type2, arg2, type3, arg3);
202 202
203 203 #define DTRACE_SMB_1(name, type1, arg1) \
204 204 DTRACE_PROBE1(__smb_##name, type1, arg1);
205 205
206 206 #define DTRACE_SMB_2(name, type1, arg1, type2, arg2) \
207 207 DTRACE_PROBE2(__smb_##name, type1, arg1, type2, arg2);
208 208
209 209 #define DTRACE_IP(name) \
210 210 DTRACE_PROBE(__ip_##name);
211 211
212 212 #define DTRACE_IP1(name, type1, arg1) \
213 213 DTRACE_PROBE1(__ip_##name, type1, arg1);
214 214
215 215 #define DTRACE_IP2(name, type1, arg1, type2, arg2) \
216 216 DTRACE_PROBE2(__ip_##name, type1, arg1, type2, arg2);
217 217
218 218 #define DTRACE_IP3(name, type1, arg1, type2, arg2, type3, arg3) \
219 219 DTRACE_PROBE3(__ip_##name, type1, arg1, type2, arg2, type3, arg3);
220 220
221 221 #define DTRACE_IP4(name, type1, arg1, type2, arg2, \
222 222 type3, arg3, type4, arg4) \
223 223 DTRACE_PROBE4(__ip_##name, type1, arg1, type2, arg2, \
224 224 type3, arg3, type4, arg4);
225 225
226 226 #define DTRACE_IP5(name, type1, arg1, type2, arg2, \
227 227 type3, arg3, type4, arg4, type5, arg5) \
228 228 DTRACE_PROBE5(__ip_##name, type1, arg1, type2, arg2, \
229 229 type3, arg3, type4, arg4, type5, arg5);
230 230
231 231 #define DTRACE_IP6(name, type1, arg1, type2, arg2, \
|
↓ open down ↓ |
231 lines elided |
↑ open up ↑ |
232 232 type3, arg3, type4, arg4, type5, arg5, type6, arg6) \
233 233 DTRACE_PROBE6(__ip_##name, type1, arg1, type2, arg2, \
234 234 type3, arg3, type4, arg4, type5, arg5, type6, arg6);
235 235
236 236 #define DTRACE_IP7(name, type1, arg1, type2, arg2, type3, arg3, \
237 237 type4, arg4, type5, arg5, type6, arg6, type7, arg7) \
238 238 DTRACE_PROBE7(__ip_##name, type1, arg1, type2, arg2, \
239 239 type3, arg3, type4, arg4, type5, arg5, type6, arg6, \
240 240 type7, arg7);
241 241
242 +#define DTRACE_TCP(name) \
243 + DTRACE_PROBE(__tcp_##name);
244 +
245 +#define DTRACE_TCP1(name, type1, arg1) \
246 + DTRACE_PROBE1(__tcp_##name, type1, arg1);
247 +
248 +#define DTRACE_TCP2(name, type1, arg1, type2, arg2) \
249 + DTRACE_PROBE2(__tcp_##name, type1, arg1, type2, arg2);
250 +
251 +#define DTRACE_TCP3(name, type1, arg1, type2, arg2, type3, arg3) \
252 + DTRACE_PROBE3(__tcp_##name, type1, arg1, type2, arg2, type3, arg3);
253 +
254 +#define DTRACE_TCP4(name, type1, arg1, type2, arg2, \
255 + type3, arg3, type4, arg4) \
256 + DTRACE_PROBE4(__tcp_##name, type1, arg1, type2, arg2, \
257 + type3, arg3, type4, arg4);
258 +
259 +#define DTRACE_TCP5(name, type1, arg1, type2, arg2, \
260 + type3, arg3, type4, arg4, type5, arg5) \
261 + DTRACE_PROBE5(__tcp_##name, type1, arg1, type2, arg2, \
262 + type3, arg3, type4, arg4, type5, arg5);
263 +
264 +#define DTRACE_TCPF(name) \
265 + DTRACE_PROBE(__tcpf_##name);
266 +
267 +#define DTRACE_TCPF1(name, type1, arg1) \
268 + DTRACE_PROBE1(__tcpf_##name, type1, arg1);
269 +
270 +#define DTRACE_TCPF2(name, type1, arg1, type2, arg2) \
271 + DTRACE_PROBE2(__tcpf_##name, type1, arg1, type2, arg2);
272 +
273 +#define DTRACE_TCPF3(name, type1, arg1, type2, arg2, type3, arg3) \
274 + DTRACE_PROBE3(__tcpf_##name, type1, arg1, type2, arg2, type3, arg3);
275 +
276 +#define DTRACE_TCPF4(name, type1, arg1, type2, arg2, \
277 + type3, arg3, type4, arg4) \
278 + DTRACE_PROBE4(__tcpf_##name, type1, arg1, type2, arg2, \
279 + type3, arg3, type4, arg4);
280 +
281 +#define DTRACE_TCPF5(name, type1, arg1, type2, arg2, \
282 + type3, arg3, type4, arg4, type5, arg5) \
283 + DTRACE_PROBE5(__tcpf_##name, type1, arg1, type2, arg2, \
284 + type3, arg3, type4, arg4, type5, arg5);
285 +
242 286 #define DTRACE_SYSEVENT2(name, type1, arg1, type2, arg2) \
243 287 DTRACE_PROBE2(__sysevent_##name, type1, arg1, type2, arg2);
244 288
245 289 #define DTRACE_XPV(name) \
246 290 DTRACE_PROBE(__xpv_##name);
247 291
248 292 #define DTRACE_XPV1(name, type1, arg1) \
249 293 DTRACE_PROBE1(__xpv_##name, type1, arg1);
250 294
251 295 #define DTRACE_XPV2(name, type1, arg1, type2, arg2) \
252 296 DTRACE_PROBE2(__xpv_##name, type1, arg1, type2, arg2);
253 297
254 298 #define DTRACE_XPV3(name, type1, arg1, type2, arg2, type3, arg3) \
255 299 DTRACE_PROBE3(__xpv_##name, type1, arg1, type2, arg2, type3, arg3);
256 300
257 301 #define DTRACE_XPV4(name, type1, arg1, type2, arg2, type3, arg3, \
258 302 type4, arg4) \
259 303 DTRACE_PROBE4(__xpv_##name, type1, arg1, type2, arg2, \
260 304 type3, arg3, type4, arg4);
261 305
262 306 #endif /* _KERNEL */
263 307
264 308 extern const char *sdt_prefix;
265 309
266 310 typedef struct sdt_probedesc {
267 311 char *sdpd_name; /* name of this probe */
268 312 unsigned long sdpd_offset; /* offset of call in text */
269 313 struct sdt_probedesc *sdpd_next; /* next static probe */
270 314 } sdt_probedesc_t;
271 315
272 316 #ifdef __cplusplus
273 317 }
274 318 #endif
275 319
276 320 #endif /* _SYS_SDT_H */
|
↓ open down ↓ |
25 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX