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 <[email protected]>
@@ -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 \
{ \