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