+ do { \
+ if (unlikely(!(cond))) { \
+ __assert_fail(msg, __FILE__, __LINE__); \
+ } \
+ } while(0)
+
+#define assert_msg_p(cond, prefix, msg) \
+ do { \
+ if (unlikely(!(cond))) { \
+ __assert_fail(prefix ":" msg, __FILE__, __LINE__); \
+ } \
+ } while(0)
+
+#define must_success(statement) \
+ do { \
+ int err = (statement); \
+ if (err) fail(#statement " failed"); \
+ } while(0)