| @@ -68,26 +68,27 @@ | | | @@ -68,26 +68,27 @@ |
68 | } | | 68 | } |
69 | | | 69 | |
70 | #define DTRACE_PROBE5(prov, name, arg1, arg2, arg3, arg4, arg5) { \ | | 70 | #define DTRACE_PROBE5(prov, name, arg1, arg2, arg3, arg4, arg5) { \ |
71 | extern void __dtrace_##prov##___##name(unsigned long, \ | | 71 | extern void __dtrace_##prov##___##name(unsigned long, \ |
72 | unsigned long, unsigned long, unsigned long, unsigned long);\ | | 72 | unsigned long, unsigned long, unsigned long, unsigned long);\ |
73 | __dtrace_##prov##___##name((unsigned long)arg1, \ | | 73 | __dtrace_##prov##___##name((unsigned long)arg1, \ |
74 | (unsigned long)arg2, (unsigned long)arg3, \ | | 74 | (unsigned long)arg2, (unsigned long)arg3, \ |
75 | (unsigned long)arg4, (unsigned long)arg5); \ | | 75 | (unsigned long)arg4, (unsigned long)arg5); \ |
76 | } | | 76 | } |
77 | | | 77 | |
78 | #else /* _KERNEL */ | | 78 | #else /* _KERNEL */ |
79 | | | 79 | |
80 | #include <sys/cdefs.h> | | 80 | #include <sys/cdefs.h> |
| | | 81 | #include <sys/queue.h> |
81 | | | 82 | |
82 | #ifdef _KERNEL_OPT | | 83 | #ifdef _KERNEL_OPT |
83 | #include "opt_dtrace.h" | | 84 | #include "opt_dtrace.h" |
84 | #endif | | 85 | #endif |
85 | | | 86 | |
86 | #ifndef KDTRACE_HOOKS | | 87 | #ifndef KDTRACE_HOOKS |
87 | | | 88 | |
88 | #define SDT_PROVIDER_DEFINE(prov) | | 89 | #define SDT_PROVIDER_DEFINE(prov) |
89 | #define SDT_PROVIDER_DECLARE(prov) | | 90 | #define SDT_PROVIDER_DECLARE(prov) |
90 | #define SDT_PROBE_DEFINE(prov, mod, func, name) | | 91 | #define SDT_PROBE_DEFINE(prov, mod, func, name) |
91 | #define SDT_PROBE_DECLARE(prov, mod, func, name) | | 92 | #define SDT_PROBE_DECLARE(prov, mod, func, name) |
92 | #define SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4) \ | | 93 | #define SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4) \ |
93 | __nothing | | 94 | __nothing |
| @@ -160,28 +161,28 @@ | | | @@ -160,28 +161,28 @@ |
160 | struct sdt_probe sdt_##prov##_##mod##_##func##_##name[1] = { \ | | 161 | struct sdt_probe sdt_##prov##_##mod##_##func##_##name[1] = { \ |
161 | { sizeof(struct sdt_probe), sdt_provider_##prov, \ | | 162 | { sizeof(struct sdt_probe), sdt_provider_##prov, \ |
162 | { NULL, NULL }, { NULL, NULL }, #mod, #func, #name, 0, 0, \ | | 163 | { NULL, NULL }, { NULL, NULL }, #mod, #func, #name, 0, 0, \ |
163 | NULL } \ | | 164 | NULL } \ |
164 | }; \ | | 165 | }; \ |
165 | __link_set_add_data(sdt_probes_set, sdt_##prov##_##mod##_##func##_##name); | | 166 | __link_set_add_data(sdt_probes_set, sdt_##prov##_##mod##_##func##_##name); |
166 | | | 167 | |
167 | #define SDT_PROBE_DECLARE(prov, mod, func, name) \ | | 168 | #define SDT_PROBE_DECLARE(prov, mod, func, name) \ |
168 | extern struct sdt_probe sdt_##prov##_##mod##_##func##_##name[1] | | 169 | extern struct sdt_probe sdt_##prov##_##mod##_##func##_##name[1] |
169 | | | 170 | |
170 | #define SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4) do { \ | | 171 | #define SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4) do { \ |
171 | if (sdt_##prov##_##mod##_##func##_##name->id) \ | | 172 | if (sdt_##prov##_##mod##_##func##_##name->id) \ |
172 | (*sdt_probe_func)(sdt_##prov##_##mod##_##func##_##name->id, \ | | 173 | (*sdt_probe_func)(sdt_##prov##_##mod##_##func##_##name->id, \ |
173 | (uintptr_t) arg0, (uintptr_t) arg1, (uintptr_t) arg2, \ | | 174 | (uintptr_t) (arg0), (uintptr_t) (arg1), (uintptr_t) (arg2), \ |
174 | (uintptr_t) arg3, (uintptr_t) arg4); \ | | 175 | (uintptr_t) (arg3), (uintptr_t) (arg4)); \ |
175 | } while (0) | | 176 | } while (0) |
176 | | | 177 | |
177 | #define SDT_PROBE_ARGTYPE(prov, mod, func, name, num, type, xtype) \ | | 178 | #define SDT_PROBE_ARGTYPE(prov, mod, func, name, num, type, xtype) \ |
178 | static struct sdt_argtype sdta_##prov##_##mod##_##func##_##name##num[1] \ | | 179 | static struct sdt_argtype sdta_##prov##_##mod##_##func##_##name##num[1] \ |
179 | = { { num, type, xtype, { NULL, NULL }, \ | | 180 | = { { num, type, xtype, { NULL, NULL }, \ |
180 | sdt_##prov##_##mod##_##func##_##name } \ | | 181 | sdt_##prov##_##mod##_##func##_##name } \ |
181 | }; \ | | 182 | }; \ |
182 | __link_set_add_data(sdt_argtypes_set, sdta_##prov##_##mod##_##func##_##name##num); | | 183 | __link_set_add_data(sdt_argtypes_set, sdta_##prov##_##mod##_##func##_##name##num); |
183 | | | 184 | |
184 | #define SDT_PROBE_DEFINE0(prov, mod, func, name) \ | | 185 | #define SDT_PROBE_DEFINE0(prov, mod, func, name) \ |
185 | SDT_PROBE_DEFINE(prov, mod, func, name) | | 186 | SDT_PROBE_DEFINE(prov, mod, func, name) |
186 | | | 187 | |
187 | #define SDT_PROBE_DEFINE1(prov, mod, func, name, arg0) \ | | 188 | #define SDT_PROBE_DEFINE1(prov, mod, func, name, arg0) \ |