Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Jun 2025 15:12:29 GMT
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 1025a1c090df - main - exterr: convert SET_ERRORX() to pseudo-variadic EXTERROR()
Message-ID:  <202506161512.55GFCTkg057542@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by kib:

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

commit 1025a1c090dfcaa13bb25d1d1e2e2fa7009d63ca
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2025-06-14 13:53:33 +0000
Commit:     Konstantin Belousov <kib@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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202506161512.55GFCTkg057542>