Module Name: src Committed By: riastradh Date: Sat Jun 29 03:01:29 UTC 2024
Modified Files: src/sys/sys: sdt.h Log Message: sys/sdt.h: Make SDT_PROBE* work as expressions. This way, they can be used inside other expressions with the comma operator, such as in the SET_ERROR macro. In preparation for PR kern/58378. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/sys/sdt.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/sys/sdt.h diff -u src/sys/sys/sdt.h:1.22 src/sys/sys/sdt.h:1.23 --- src/sys/sys/sdt.h:1.22 Sun Apr 30 08:46:33 2023 +++ src/sys/sys/sdt.h Sat Jun 29 03:01:29 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: sdt.h,v 1.22 2023/04/30 08:46:33 riastradh Exp $ */ +/* $NetBSD: sdt.h,v 1.23 2024/06/29 03:01:29 riastradh Exp $ */ /*- * Copyright 2006-2008 John Birrell <j...@freebsd.org> @@ -226,13 +226,12 @@ #define SDT_PROBE_DECLARE(prov, mod, func, name) \ extern struct sdt_probe sdt_##prov##_##mod##_##func##_##name[1] -#define SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4) do \ -{ \ - if (__predict_false(sdt_##prov##_##mod##_##func##_##name->id)) \ - (*sdt_probe_func)(sdt_##prov##_##mod##_##func##_##name->id, \ - (uintptr_t)(arg0), (uintptr_t)(arg1), (uintptr_t)(arg2), \ - (uintptr_t)(arg3), (uintptr_t)(arg4)); \ -} while (0) +#define SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4) \ + (__predict_false(sdt_##prov##_##mod##_##func##_##name->id) \ + ? (*sdt_probe_func)(sdt_##prov##_##mod##_##func##_##name->id, \ + (uintptr_t)(arg0), (uintptr_t)(arg1), (uintptr_t)(arg2), \ + (uintptr_t)(arg3), (uintptr_t)(arg4)) \ + : 0) #define SDT_PROBE_ARGTYPE(prov, mod, func, name, num, type, xtype) \ static struct sdt_argtype sdta_##prov##_##mod##_##func##_##name##num[1]\ @@ -372,31 +371,29 @@ #define SDT_PROBE5(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4) \ SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4) /* XXX: void * function casts */ -#define SDT_PROBE6(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4, \ - arg5) do \ -{ \ - if (__predict_false(sdt_##prov##_##mod##_##func##_##name->id)) \ - __FPTRCAST(void (*)(uint32_t, uintptr_t, uintptr_t, \ - uintptr_t, uintptr_t, uintptr_t, uintptr_t), \ - sdt_probe_func)( \ +#define SDT_PROBE6(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4, arg5) \ + (__predict_false(sdt_##prov##_##mod##_##func##_##name->id) \ + ? __FPTRCAST(void (*)(uint32_t, uintptr_t, uintptr_t, \ + uintptr_t, uintptr_t, uintptr_t, uintptr_t), \ + sdt_probe_func)( \ sdt_##prov##_##mod##_##func##_##name->id, \ (uintptr_t)(arg0), (uintptr_t)(arg1), \ (uintptr_t)(arg2), (uintptr_t)(arg3), \ - (uintptr_t)(arg4), (uintptr_t)(arg5)); \ -} while (0) + (uintptr_t)(arg4), (uintptr_t)(arg5)) \ + : 0) #define SDT_PROBE7(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4, arg5, \ - arg6) do \ -{ \ - if (__predict_false(sdt_##prov##_##mod##_##func##_##name->id)) \ - __FPTRCAST(void (*)(uint32_t, uintptr_t, uintptr_t, \ - uintptr_t, uintptr_t, uintptr_t, uintptr_t, \ - uintptr_t), sdt_probe_func)( \ + arg6) \ + (__predict_false(sdt_##prov##_##mod##_##func##_##name->id) \ + ? __FPTRCAST(void (*)(uint32_t, uintptr_t, uintptr_t, \ + uintptr_t, uintptr_t, uintptr_t, uintptr_t, \ + uintptr_t), \ + sdt_probe_func)( \ sdt_##prov##_##mod##_##func##_##name->id, \ (uintptr_t)(arg0), (uintptr_t)(arg1), \ (uintptr_t)(arg2), (uintptr_t)(arg3), \ (uintptr_t)(arg4), (uintptr_t)(arg5), \ - (uintptr_t)(arg6)); \ -} while (0) + (uintptr_t)(arg6)) \ + : 0) #define DTRACE_PROBE_IMPL_START(name, arg0, arg1, arg2, arg3, arg4) do \ { \