The branch main has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=1025a1c090dfcaa13bb25d1d1e2e2fa7009d63ca

commit 1025a1c090dfcaa13bb25d1d1e2e2fa7009d63ca
Author:     Konstantin Belousov <k...@freebsd.org>
AuthorDate: 2025-06-14 13:53:33 +0000
Commit:     Konstantin Belousov <k...@freebsd.org>
CommitDate: 2025-06-16 15:11:58 +0000

    exterr: convert SET_ERRORX() to pseudo-variadic EXTERROR()
    
    Stealed from the CTR() macro in sys/ktr.h.
    
    Suggested by:   jhb
    Reviewed by:    markj
    Sponsored by:   The FreeBSD Foundation
    Differential revision:  https://reviews.freebsd.org/D50845
---
 sys/sys/exterrvar.h | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/sys/sys/exterrvar.h b/sys/sys/exterrvar.h
index d3c2c7c92d06..15557c614f88 100644
--- a/sys/sys/exterrvar.h
+++ b/sys/sys/exterrvar.h
@@ -36,11 +36,17 @@
 #define        SET_ERROR_MSG(mmsg)     NULL
 #endif
 
-#define        SET_ERROR2(eerror, mmsg, pp1, pp2)                              
\
+#define        _SET_ERROR2(eerror, mmsg, pp1, pp2)                             
\
        exterr_set(eerror, EXTERR_CATEGORY, SET_ERROR_MSG(mmsg),        \
            (uintptr_t)(pp1), (uintptr_t)(pp2), __LINE__)
-#define        SET_ERROR0(eerror, mmsg)        SET_ERROR2(eerror, mmsg, 0, 0)
-#define        SET_ERROR1(eerror, mmsg, pp1)   SET_ERROR2(eerror, mmsg, pp1, 0)
+#define        _SET_ERROR0(eerror, mmsg)       _SET_ERROR2(eerror, mmsg, 0, 0)
+#define        _SET_ERROR1(eerror, mmsg, pp1)  _SET_ERROR2(eerror, mmsg, pp1, 
0)
+
+#define        _EXTERROR_MACRO(eerror, mmsg, _1, _2, NAME, ...)                
\
+       NAME
+#define        EXTERROR(...)                                                   
\
+       _EXTERROR_MACRO(__VA_ARGS__, _SET_ERROR2, _SET_ERROR1,          \
+           _SET_ERROR0)(__VA_ARGS__)
 
 int exterr_set(int eerror, int category, const char *mmsg, uintptr_t pp1,
     uintptr_t pp2, int line);

Reply via email to