Page MenuHomeFreeBSD

D21784.id62520.diff
No OneTemporary

D21784.id62520.diff

Index: sys/sys/mbuf.h
===================================================================
--- sys/sys/mbuf.h
+++ sys/sys/mbuf.h
@@ -1043,12 +1043,9 @@
static __inline void
m_align(struct mbuf *m, int len)
{
-#ifdef INVARIANTS
- const char *msg = "%s: not a virgin mbuf";
-#endif
int adjust;
- KASSERT(m->m_data == M_START(m), (msg, __func__));
+ KASSERT(m->m_data == M_START(m), ("%s: not a virgin mbuf", __func__));
adjust = M_SIZE(m) - len;
m->m_data += adjust &~ (sizeof(long)-1);
Index: sys/sys/systm.h
===================================================================
--- sys/sys/systm.h
+++ sys/sys/systm.h
@@ -98,15 +98,26 @@
#endif
#endif
-#ifdef INVARIANTS /* The option is always available */
-#define KASSERT(exp,msg) do { \
+#ifdef INVARIANTS
+#define _KASSERT_ESC(...) __VA_ARGS__
+#define _CAR_(first, ...) first
+#define _CAR(args) _CAR_(args)
+#define _CDR_(first, ...) , ##__VA_ARGS__
+#define _CDR(args) _CDR_(args)
+
+#define _KASSERT(fmt, ...) \
+ kassert_panic("%s: " fmt, __VA_ARGS__)
+
+#define KASSERT(exp, msg) do { \
if (__predict_false(!(exp))) \
- kassert_panic msg; \
+ _KASSERT(_CAR(_KASSERT_ESC msg), __func__ \
+ _CDR(_KASSERT_ESC msg)); \
} while (0)
#define VNASSERT(exp, vp, msg) do { \
if (__predict_false(!(exp))) { \
vn_printf(vp, "VNASSERT failed\n"); \
- kassert_panic msg; \
+ _KASSERT(_CAR(_KASSERT_ESC msg), __func__ \
+ _CDR(_KASSERT_ESC msg)); \
} \
} while (0)
#else

File Metadata

Mime Type
text/plain
Expires
Mon, Aug 31, 9:32 PM (8 h, 37 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37713501
Default Alt Text
D21784.id62520.diff (1 KB)

Event Timeline