]> git.saurik.com Git - apple/xnu.git/blame - osfmk/mach/machine/sdt.h
xnu-6153.11.26.tar.gz
[apple/xnu.git] / osfmk / mach / machine / sdt.h
CommitLineData
2d21ac55 1/*
0a7de745 2 * Copyright (c) 2007-2019 Apple Inc. All rights reserved.
2d21ac55
A
3 */
4/*
5 * CDDL HEADER START
6 *
7 * The contents of this file are subject to the terms of the
8 * Common Development and Distribution License, Version 1.0 only
9 * (the "License"). You may not use this file except in compliance
10 * with the License.
11 *
12 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13 * or http://www.opensolaris.org/os/licensing.
14 * See the License for the specific language governing permissions
15 * and limitations under the License.
16 *
17 * When distributing Covered Code, include this CDDL HEADER in each
18 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19 * If applicable, add the following below this CDDL HEADER, with the
20 * fields enclosed by brackets "[]" replaced with your own identifying
21 * information: Portions Copyright [yyyy] [name of copyright owner]
22 *
23 * CDDL HEADER END
24 */
25/*
26 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
27 * Use is subject to license terms.
28 */
29
30#ifndef _MACH_MACHINE_SYS_SDT_H
0a7de745 31#define _MACH_MACHINE_SYS_SDT_H
2d21ac55
A
32
33#include <mach/machine/sdt_isa.h>
34
b0d623f7
A
35#ifdef KERNEL
36
37#if CONFIG_DTRACE
38
2d21ac55
A
39/*
40 * The following macros are used to create static probes. The argument types
41 * should be no greater than uintptr_t in size each. The behavior of larger
42 * types is undefined.
43 */
44
0a7de745
A
45#define DTRACE_PROBE(provider, name) { \
46 DTRACE_CALL0ARGS(provider, name) \
2d21ac55
A
47}
48
0a7de745
A
49#define DTRACE_PROBE1(provider, name, arg0) { \
50 uintptr_t __dtrace_args[ARG1_EXTENT] __attribute__ ((aligned (16))); \
cb323159 51 __dtrace_args[0] = (uintptr_t)(arg0); \
0a7de745 52 DTRACE_CALL1ARG(provider, name) \
2d21ac55
A
53}
54
0a7de745
A
55#define DTRACE_PROBE2(provider, name, arg0, arg1) { \
56 uintptr_t __dtrace_args[ARGS2_EXTENT] __attribute__ ((aligned (16))); \
cb323159
A
57 __dtrace_args[0] = (uintptr_t)(arg0); \
58 __dtrace_args[1] = (uintptr_t)(arg1); \
0a7de745 59 DTRACE_CALL2ARGS(provider, name) \
2d21ac55
A
60}
61
0a7de745
A
62#define DTRACE_PROBE3(provider, name, arg0, arg1, arg2) { \
63 uintptr_t __dtrace_args[ARGS3_EXTENT] __attribute__ ((aligned (16))); \
cb323159
A
64 __dtrace_args[0] = (uintptr_t)(arg0); \
65 __dtrace_args[1] = (uintptr_t)(arg1); \
66 __dtrace_args[2] = (uintptr_t)(arg2); \
0a7de745 67 DTRACE_CALL3ARGS(provider, name) \
2d21ac55
A
68}
69
0a7de745
A
70#define DTRACE_PROBE4(provider, name, arg0, arg1, arg2, arg3) { \
71 uintptr_t __dtrace_args[ARGS4_EXTENT] __attribute__ ((aligned (16))); \
cb323159
A
72 __dtrace_args[0] = (uintptr_t)(arg0); \
73 __dtrace_args[1] = (uintptr_t)(arg1); \
74 __dtrace_args[2] = (uintptr_t)(arg2); \
75 __dtrace_args[3] = (uintptr_t)(arg3); \
0a7de745 76 DTRACE_CALL4ARGS(provider, name) \
2d21ac55
A
77}
78
0a7de745
A
79#define DTRACE_PROBE5(provider, name, arg0, arg1, arg2, arg3, arg4) { \
80 uintptr_t __dtrace_args[ARGS5_EXTENT] __attribute__ ((aligned (16))); \
cb323159
A
81 __dtrace_args[0] = (uintptr_t)(arg0); \
82 __dtrace_args[1] = (uintptr_t)(arg1); \
83 __dtrace_args[2] = (uintptr_t)(arg2); \
84 __dtrace_args[3] = (uintptr_t)(arg3); \
85 __dtrace_args[4] = (uintptr_t)(arg4); \
0a7de745 86 DTRACE_CALL5ARGS(provider, name) \
2d21ac55
A
87}
88
0a7de745
A
89#define DTRACE_PROBE6(provider, name, arg0, arg1, arg2, arg3, arg4, arg5) { \
90 uintptr_t __dtrace_args[ARGS6_EXTENT] __attribute__ ((aligned (16))); \
cb323159
A
91 __dtrace_args[0] = (uintptr_t)(arg0); \
92 __dtrace_args[1] = (uintptr_t)(arg1); \
93 __dtrace_args[2] = (uintptr_t)(arg2); \
94 __dtrace_args[3] = (uintptr_t)(arg3); \
95 __dtrace_args[4] = (uintptr_t)(arg4); \
96 __dtrace_args[5] = (uintptr_t)(arg5); \
0a7de745 97 DTRACE_CALL6ARGS(provider, name) \
2d21ac55
A
98}
99
0a7de745
A
100#define DTRACE_PROBE7(provider, name, arg0, arg1, arg2, arg3, arg4, arg5, arg6) { \
101 uintptr_t __dtrace_args[ARGS7_EXTENT] __attribute__ ((aligned (16))); \
cb323159
A
102 __dtrace_args[0] = (uintptr_t)(arg0); \
103 __dtrace_args[1] = (uintptr_t)(arg1); \
104 __dtrace_args[2] = (uintptr_t)(arg2); \
105 __dtrace_args[3] = (uintptr_t)(arg3); \
106 __dtrace_args[4] = (uintptr_t)(arg4); \
107 __dtrace_args[5] = (uintptr_t)(arg5); \
108 __dtrace_args[6] = (uintptr_t)(arg6); \
0a7de745 109 DTRACE_CALL7ARGS(provider, name) \
2d21ac55
A
110}
111
0a7de745
A
112#define DTRACE_PROBE8(provider, name, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) { \
113 uintptr_t __dtrace_args[ARGS8_EXTENT] __attribute__ ((aligned (16))); \
cb323159
A
114 __dtrace_args[0] = (uintptr_t)(arg0); \
115 __dtrace_args[1] = (uintptr_t)(arg1); \
116 __dtrace_args[2] = (uintptr_t)(arg2); \
117 __dtrace_args[3] = (uintptr_t)(arg3); \
118 __dtrace_args[4] = (uintptr_t)(arg4); \
119 __dtrace_args[5] = (uintptr_t)(arg5); \
120 __dtrace_args[6] = (uintptr_t)(arg6); \
121 __dtrace_args[7] = (uintptr_t)(arg7); \
0a7de745 122 DTRACE_CALL8ARGS(provider, name) \
2d21ac55
A
123}
124
0a7de745
A
125#define DTRACE_PROBE9(provider, name, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) { \
126 uintptr_t __dtrace_args[ARGS9_EXTENT] __attribute__ ((aligned (16))); \
cb323159
A
127 __dtrace_args[0] = (uintptr_t)(arg0); \
128 __dtrace_args[1] = (uintptr_t)(arg1); \
129 __dtrace_args[2] = (uintptr_t)(arg2); \
130 __dtrace_args[3] = (uintptr_t)(arg3); \
131 __dtrace_args[4] = (uintptr_t)(arg4); \
132 __dtrace_args[5] = (uintptr_t)(arg5); \
133 __dtrace_args[6] = (uintptr_t)(arg6); \
134 __dtrace_args[7] = (uintptr_t)(arg7); \
135 __dtrace_args[8] = (uintptr_t)(arg8); \
0a7de745 136 DTRACE_CALL9ARGS(provider, name) \
2d21ac55
A
137}
138
0a7de745
A
139#define DTRACE_PROBE10(provider, name, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) { \
140 uintptr_t __dtrace_args[ARGS10_EXTENT] __attribute__ ((aligned (16))); \
cb323159
A
141 __dtrace_args[0] = (uintptr_t)(arg0); \
142 __dtrace_args[1] = (uintptr_t)(arg1); \
143 __dtrace_args[2] = (uintptr_t)(arg2); \
144 __dtrace_args[3] = (uintptr_t)(arg3); \
145 __dtrace_args[4] = (uintptr_t)(arg4); \
146 __dtrace_args[5] = (uintptr_t)(arg5); \
147 __dtrace_args[6] = (uintptr_t)(arg6); \
148 __dtrace_args[7] = (uintptr_t)(arg7); \
149 __dtrace_args[8] = (uintptr_t)(arg8); \
150 __dtrace_args[9] = (uintptr_t)(arg9); \
0a7de745 151 DTRACE_CALL10ARGS(provider, name) \
2d21ac55
A
152}
153
39037602
A
154#else
155#define DTRACE_PROBE(provider, name) do {} while(0)
156#define DTRACE_PROBE1(provider, name, arg0) do {} while(0)
157#define DTRACE_PROBE2(provider, name, arg0, arg1) do {} while(0)
158#define DTRACE_PROBE3(provider, name, arg0, arg1, arg2) do {} while(0)
159#define DTRACE_PROBE4(provider, name, arg0, arg1, arg2, arg3) do {} while(0)
160#define DTRACE_PROBE5(provider, name, arg0, arg1, arg2, arg3, arg4) do {} while(0)
161#define DTRACE_PROBE6(provider, name, arg0, arg1, arg2, arg3, arg4, arg5) do {} while(0)
162#define DTRACE_PROBE7(provider, name, arg0, arg1, arg2, arg3, arg4, arg5, arg6) do {} while(0)
163#define DTRACE_PROBE8(provider, name, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) do {} while(0)
164#define DTRACE_PROBE9(provider, name, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) do {} while(0)
165#define DTRACE_PROBE10(provider, name, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) do {} while(0)
2d21ac55 166
39037602 167#endif /* CONFIG_DTRACE */
2d21ac55 168
0a7de745 169#define DTRACE_SCHED(name) \
2d21ac55
A
170 DTRACE_PROBE(__sched_, name);
171
0a7de745 172#define DTRACE_SCHED1(name, type1, arg1) \
2d21ac55
A
173 DTRACE_PROBE1(__sched_, name, arg1);
174
0a7de745 175#define DTRACE_SCHED2(name, type1, arg1, type2, arg2) \
2d21ac55
A
176 DTRACE_PROBE2(__sched_, name, arg1, arg2);
177
0a7de745 178#define DTRACE_SCHED3(name, type1, arg1, type2, arg2, type3, arg3) \
2d21ac55
A
179 DTRACE_PROBE3(__sched_, name, arg1, arg2, arg3);
180
0a7de745
A
181#define DTRACE_SCHED4(name, type1, arg1, type2, arg2, \
182 type3, arg3, type4, arg4) \
2d21ac55
A
183 DTRACE_PROBE4(__sched_, name, arg1, arg2, arg3, arg4);
184
0a7de745 185#define DTRACE_PROC(name) \
2d21ac55
A
186 DTRACE_PROBE(__proc_, name);
187
0a7de745 188#define DTRACE_PROC1(name, type1, arg1) \
2d21ac55
A
189 DTRACE_PROBE1(__proc_, name, arg1);
190
0a7de745 191#define DTRACE_PROC2(name, type1, arg1, type2, arg2) \
2d21ac55
A
192 DTRACE_PROBE2(__proc_, name, arg1, arg2);
193
0a7de745 194#define DTRACE_PROC3(name, type1, arg1, type2, arg2, type3, arg3) \
2d21ac55
A
195 DTRACE_PROBE3(__proc_, name, arg1, arg2, arg3);
196
0a7de745
A
197#define DTRACE_PROC4(name, type1, arg1, type2, arg2, \
198 type3, arg3, type4, arg4) \
2d21ac55
A
199 DTRACE_PROBE4(__proc_, name, arg1, arg2, arg3, arg4);
200
0a7de745 201#define DTRACE_IO(name) \
2d21ac55
A
202 DTRACE_PROBE(__io_, name);
203
0a7de745 204#define DTRACE_IO1(name, type1, arg1) \
2d21ac55
A
205 DTRACE_PROBE1(__io_, name, arg1);
206
0a7de745 207#define DTRACE_IO2(name, type1, arg1, type2, arg2) \
39236c6e 208 DTRACE_PROBE2(__io_, name, arg1, arg2);
2d21ac55 209
0a7de745 210#define DTRACE_IO3(name, type1, arg1, type2, arg2, type3, arg3) \
2d21ac55
A
211 DTRACE_PROBE3(__io_, name, arg1, arg2, arg3);
212
0a7de745
A
213#define DTRACE_IO4(name, type1, arg1, type2, arg2, \
214 type3, arg3, type4, arg4) \
2d21ac55
A
215 DTRACE_PROBE4(__io_, name, arg1, arg2, arg3, arg4);
216
0a7de745
A
217#define DTRACE_INT5(name, type1, arg1, type2, arg2, \
218 type3, arg3, type4, arg4, type5, arg5) \
2d21ac55
A
219 DTRACE_PROBE5(__sdt_, name, arg1, arg2, arg3, arg4, arg5);
220
0a7de745 221#define DTRACE_MEMORYSTATUS2(name, type1, arg1, type2, arg2) \
39037602
A
222 DTRACE_PROBE2(__sdt_, name, arg1, arg2);
223
0a7de745 224#define DTRACE_MEMORYSTATUS3(name, type1, arg1, type2, arg2, type3, arg3) \
39037602
A
225 DTRACE_PROBE3(__sdt_, name, arg1, arg2, arg3);
226
cb323159
A
227#define DTRACE_MEMORYSTATUS4(name, type1, arg1, type2, arg2, type3, arg3, type4, arg4) \
228 DTRACE_PROBE4(__sdt_, name, arg1, arg2, arg3, arg4);
229
0a7de745
A
230#define DTRACE_MEMORYSTATUS6(name, type1, arg1, type2, arg2, \
231 type3, arg3, type4, arg4, type5, arg5, type6, arg6) \
39037602
A
232 DTRACE_PROBE6(__vminfo_, name, arg1, arg2, arg3, arg4, arg5, arg6)
233
0a7de745 234#define DTRACE_TMR3(name, type1, arg1, type2, arg2, type3, arg3) \
2d21ac55
A
235 DTRACE_PROBE3(__sdt_, name, arg1, arg2, arg3);
236
0a7de745 237#define DTRACE_TMR4(name, type1, arg1, arg2, arg3, arg4) \
4b17d6b6
A
238 DTRACE_PROBE4(__sdt_, name, arg1, arg2, arg3, arg4);
239
0a7de745 240#define DTRACE_TMR5(name, type1, arg1, type2, arg2, type3, arg3, arg4, arg5) \
4b17d6b6
A
241 DTRACE_PROBE5(__sdt_, name, arg1, arg2, arg3, arg4, arg5);
242
0a7de745 243#define DTRACE_TMR6(name, type1, arg1, type2, arg2, type3, arg3, arg4, arg5, arg6) \
4b17d6b6
A
244 DTRACE_PROBE6(__sdt_, name, arg1, arg2, arg3, arg4, arg5, arg6);
245
0a7de745 246#define DTRACE_TMR7(name, type1, arg1, type2, arg2, type3, arg3, arg4, arg5, arg6, arg7) \
39236c6e
A
247 DTRACE_PROBE7(__sdt_, name, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
248
0a7de745 249#define DTRACE_PHYSLAT3(name, type1, arg1, type2, arg2, type3, arg3) \
3e170ce0
A
250 DTRACE_PROBE3(__sdt_, name, arg1, arg2, arg3);
251
0a7de745
A
252#define DTRACE_PHYSLAT4(name, type1, arg1, type2, arg2, type3, arg3, type4, arg4) \
253 DTRACE_PROBE4(__sdt_, name, arg1, arg2, arg3, arg4);
254
255#define DTRACE_PHYSLAT5(name, type1, arg1, type2, arg2, type3, arg3, type4, arg4, type5, arg5) \
256 DTRACE_PROBE5(__sdt_, name, arg1, arg2, arg3, arg4, arg5);
257
258#define DTRACE_VM(name) \
2d21ac55
A
259 DTRACE_PROBE(__vminfo_, name)
260
0a7de745 261#define DTRACE_VM1(name, type1, arg1) \
2d21ac55
A
262 DTRACE_PROBE1(__vminfo_, name, arg1)
263
0a7de745 264#define DTRACE_VM2(name, type1, arg1, type2, arg2) \
2d21ac55
A
265 DTRACE_PROBE2(__vminfo_, name, arg1, arg2)
266
0a7de745 267#define DTRACE_VM3(name, type1, arg1, type2, arg2, type3, arg3) \
2d21ac55
A
268 DTRACE_PROBE3(__vminfo_, name, arg1, arg2, arg3)
269
0a7de745
A
270#define DTRACE_VM4(name, type1, arg1, type2, arg2, \
271 type3, arg3, type4, arg4) \
2d21ac55
A
272 DTRACE_PROBE4(__vminfo_, name, arg1, arg2, arg3, arg4)
273
0a7de745
A
274#define DTRACE_VM5(name, type1, arg1, type2, arg2, \
275 type3, arg3, type4, arg4, type5, arg5) \
3e170ce0
A
276 DTRACE_PROBE5(__vminfo_, name, arg1, arg2, arg3, arg4, arg5)
277
0a7de745
A
278#define DTRACE_VM6(name, type1, arg1, type2, arg2, \
279 type3, arg3, type4, arg4, type5, arg5, type6, arg6) \
39037602
A
280 DTRACE_PROBE6(__vminfo_, name, arg1, arg2, arg3, arg4, arg5, arg6)
281
cb323159
A
282#define DTRACE_VM7(name, type1, arg1, type2, arg2, \
283 type3, arg3, type4, arg4, type5, arg5, type6, arg6, type7, arg7) \
284 DTRACE_PROBE7(__vminfo_, name, arg1, arg2, arg3, arg4, arg5, arg6, arg7)
285
0a7de745 286#define DTRACE_IP(name) \
6d2010ae
A
287 DTRACE_PROBE(__ip_, name)
288
0a7de745 289#define DTRACE_IP1(name, type1, arg1) \
6d2010ae
A
290 DTRACE_PROBE1(__ip_, name, arg1)
291
0a7de745 292#define DTRACE_IP2(name, type1, arg1, type2, arg2) \
6d2010ae
A
293 DTRACE_PROBE2(__ip_, name, arg1, arg2)
294
0a7de745 295#define DTRACE_IP3(name, type1, arg1, type2, arg2, type3, arg3) \
6d2010ae
A
296 DTRACE_PROBE3(__ip_, name, arg1, arg2, arg3)
297
0a7de745
A
298#define DTRACE_IP4(name, type1, arg1, type2, arg2, \
299 type3, arg3, type4, arg4) \
6d2010ae
A
300 DTRACE_PROBE4(__ip_, name, arg1, arg2, arg3, arg4)
301
0a7de745
A
302#define DTRACE_IP5(name, typ1, arg1, type2, arg2, type3, arg3, \
303 type4, arg4, type5, arg5) \
6d2010ae
A
304 DTRACE_PROBE5(__ip_, name, arg1, arg2, arg3, arg4, arg5)
305
0a7de745
A
306#define DTRACE_IP6(name, type1, arg1, type2, arg2, type3, arg3, \
307 type4, arg4, type5, arg5, type6, arg6) \
6d2010ae
A
308 DTRACE_PROBE6(__ip_, name, arg1, arg2, arg3, arg4, arg5, arg6)
309
0a7de745
A
310#define DTRACE_IP7(name, type1, arg1, type2, arg2, type3, arg3, \
311 type4, arg4, type5, arg5, type6, arg6, type7, arg7) \
6d2010ae
A
312 DTRACE_PROBE7(__ip_, name, arg1, arg2, arg3, arg4, arg5, arg6, arg7)
313
cb323159
A
314#define DTRACE_ROUTE(name) \
315 DTRACE_PROBE(__route_, name)
316
317#define DTRACE_ROUTE1(name, type1, arg1) \
318 DTRACE_PROBE1(__route_, name, arg1)
319
320#define DTRACE_ROUTE2(name, type1, arg1, type2, arg2) \
321 DTRACE_PROBE2(__route_, name, arg1, arg2)
322
323#define DTRACE_ROUTE3(name, type1, arg1, type2, arg2, type3, arg3) \
324 DTRACE_PROBE3(__route_, name, arg1, arg2, arg3)
325
326#define DTRACE_ROUTE4(name, type1, arg1, type2, arg2, \
327 type3, arg3, type4, arg4) \
328 DTRACE_PROBE4(__route_, name, arg1, arg2, arg3, arg4)
329
330#define DTRACE_ROUTE5(name, typ1, arg1, type2, arg2, type3, arg3, \
331 type4, arg4, type5, arg5) \
332 DTRACE_PROBE5(__route_, name, arg1, arg2, arg3, arg4, arg5)
333
334#define DTRACE_ROUTE6(name, type1, arg1, type2, arg2, type3, arg3, \
335 type4, arg4, type5, arg5, type6, arg6) \
336 DTRACE_PROBE6(__route_, name, arg1, arg2, arg3, arg4, arg5, arg6)
337
338#define DTRACE_ROUTE7(name, type1, arg1, type2, arg2, type3, arg3, \
339 type4, arg4, type5, arg5, type6, arg6, type7, arg7) \
340 DTRACE_PROBE7(__route_, name, arg1, arg2, arg3, arg4, arg5, arg6, arg7)
341
6d2010ae 342#define DTRACE_TCP(name) \
0a7de745 343 DTRACE_PROBE(__tcp_, name)
6d2010ae
A
344
345#define DTRACE_TCP1(name, type1, arg1) \
0a7de745 346 DTRACE_PROBE1(__tcp_, name, arg1)
6d2010ae
A
347
348#define DTRACE_TCP2(name, type1, arg1, type2, arg2) \
0a7de745 349 DTRACE_PROBE2(__tcp_, name, arg1, arg2)
6d2010ae
A
350
351#define DTRACE_TCP3(name, type1, arg1, type2, arg2, type3, arg3) \
0a7de745 352 DTRACE_PROBE3(__tcp_, name, arg1, arg2, arg3)
6d2010ae
A
353
354#define DTRACE_TCP4(name, type1, arg1, type2, arg2, \
0a7de745
A
355 type3, arg3, type4, arg4) \
356 DTRACE_PROBE4(__tcp_, name, arg1, arg2, arg3, arg4)
6d2010ae
A
357
358#define DTRACE_TCP5(name, typ1, arg1, type2, arg2, type3, arg3, \
0a7de745
A
359 type4, arg4, type5, arg5) \
360 DTRACE_PROBE5(__tcp_, name, arg1, arg2, arg3, arg4, arg5)
6d2010ae 361
0a7de745 362#define DTRACE_MPTCP(name) \
39236c6e
A
363 DTRACE_PROBE(__mptcp_, name)
364
0a7de745 365#define DTRACE_MPTCP1(name, type1, arg1) \
39236c6e
A
366 DTRACE_PROBE1(__mptcp_, name, arg1)
367
0a7de745 368#define DTRACE_MPTCP2(name, type1, arg1, type2, arg2) \
39236c6e
A
369 DTRACE_PROBE2(__mptcp_, name, arg1, arg2)
370
0a7de745 371#define DTRACE_MPTCP3(name, type1, arg1, type2, arg2, type3, arg3) \
39236c6e
A
372 DTRACE_PROBE3(__mptcp_, name, arg1, arg2, arg3)
373
0a7de745
A
374#define DTRACE_MPTCP4(name, type1, arg1, type2, arg2, \
375 type3, arg3, type4, arg4) \
39236c6e
A
376 DTRACE_PROBE4(__mptcp_, name, arg1, arg2, arg3, arg4)
377
0a7de745
A
378#define DTRACE_MPTCP5(name, typ1, arg1, type2, arg2, type3, arg3, \
379 type4, arg4, type5, arg5) \
39236c6e
A
380 DTRACE_PROBE5(__mptcp_, name, arg1, arg2, arg3, arg4, arg5)
381
0a7de745
A
382#define DTRACE_MPTCP6(name, typ1, arg1, type2, arg2, type3, arg3, \
383 type4, arg4, type5, arg5, type6, arg6) \
39236c6e
A
384 DTRACE_PROBE6(__mptcp_, name, arg1, arg2, arg3, arg4, arg5, arg6)
385
0a7de745
A
386#define DTRACE_MPTCP7(name, typ1, arg1, type2, arg2, type3, arg3, \
387 type4, arg4, type5, arg5, type6, arg6, \
388 type7, arg7) \
389 DTRACE_PROBE7(__mptcp_, name, arg1, arg2, arg3, arg4, arg5, \
390 arg6, arg7)
39236c6e 391
0a7de745 392#define DTRACE_FSINFO(name, type, vp) \
39236c6e
A
393 DTRACE_PROBE1(__fsinfo_, name, vp)
394
0a7de745 395#define DTRACE_FSINFO_IO(name, type1, vp, type2, size) \
39236c6e
A
396 DTRACE_PROBE2(__fsinfo_, name, vp, size)
397
0a7de745 398#define DTRACE_BOOST(name) \
39236c6e
A
399 DTRACE_PROBE(__boost_, name);
400
0a7de745 401#define DTRACE_BOOST1(name, type1, arg1) \
39236c6e
A
402 DTRACE_PROBE1(__boost_, name, arg1);
403
0a7de745 404#define DTRACE_BOOST2(name, type1, arg1, type2, arg2) \
39236c6e
A
405 DTRACE_PROBE2(__boost_, name, arg1, arg2);
406
0a7de745 407#define DTRACE_BOOST3(name, type1, arg1, type2, arg2, type3, arg3) \
39236c6e
A
408 DTRACE_PROBE3(__boost_, name, arg1, arg2, arg3);
409
0a7de745
A
410#define DTRACE_BOOST4(name, type1, arg1, type2, arg2, \
411 type3, arg3, type4, arg4) \
39236c6e
A
412 DTRACE_PROBE4(__boost_, name, arg1, arg2, arg3, arg4);
413
0a7de745
A
414#define DTRACE_BOOST5(name, type1, arg1, type2, arg2, \
415 type3, arg3, type4, arg4, type5, arg5) \
39236c6e
A
416 DTRACE_PROBE5(__boost_, name, arg1, arg2, arg3, arg4, arg5);
417
0a7de745
A
418#define DTRACE_BOOST6(name, type1, arg1, type2, arg2, \
419 type3, arg3, type4, arg4, type5, arg5, type6, arg6) \
39236c6e
A
420 DTRACE_PROBE6(__boost_, name, arg1, arg2, arg3, arg4, arg5, arg6);
421
cb323159
A
422#if KASAN
423#define DTRACE_KASAN(name) \
424 DTRACE_PROBE(__kasan_, name);
425
426#define DTRACE_KASAN1(name, type1, arg1) \
427 DTRACE_PROBE1(__kasan_, name, arg1);
428
429#define DTRACE_KASAN2(name, type1, arg1, type2, arg2) \
430 DTRACE_PROBE2(__kasan_, name, arg1, arg2);
431
432#define DTRACE_KASAN3(name, type1, arg1, type2, arg2, type3, arg3) \
433 DTRACE_PROBE3(__kasan_, name, arg1, arg2, arg3);
434
435#define DTRACE_KASAN4(name, type1, arg1, type2, arg2, \
436 type3, arg3, type4, arg4) \
437 DTRACE_PROBE4(__kasan_, name, arg1, arg2, arg3, arg4);
438
439#define DTRACE_KASAN5(name, type1, arg1, type2, arg2, \
440 type3, arg3, type4, arg4, type5, arg5) \
441 DTRACE_PROBE5(__kasan_, name, arg1, arg2, arg3, arg4, arg5);
442#endif /* KASAN */
443
39037602
A
444#if PRIVATE
445#endif /* PRIVATE */
2d21ac55
A
446
447#endif /* KERNEL */
448
0a7de745 449#endif /* _MACH_MACHINE_SYS_SDT_H */