Adds warn_on() and warn_on_once()
[akaros.git] / kern / include / assert.h
index 2dcb6d7..95c5990 100644 (file)
@@ -5,17 +5,15 @@
 
 void ( _warn)(const char* NTS, int, const char* NTS, ...);
 void ( _panic)(const char* NTS, int, const char* NTS, ...)
-    __attribute__((noreturn));
+       __attribute__((noreturn));
 
 #define warn(...) _warn(__FILE__, __LINE__, __VA_ARGS__)
 #define warn_once(...) run_once_racy(warn(__VA_ARGS__))
+#define warn_on(x) do { if (x) warn(#x);} while (0)
+#define warn_on_once(x) do { if (x) warn_once(#x);} while (0)
 #define panic(...) _panic(__FILE__, __LINE__, __VA_ARGS__)
 #define exhausted(...) _panic(__FILE__, __LINE__, __VA_ARGS__)
 
-
-#define check(x)               \
-       do { if (!(x)) warn("warning failed: %s", #x); } while (0)
-
 #define assert(x)              \
        do { if (!(x)) panic("assertion failed: %s", #x); } while (0)
 
@@ -25,7 +23,7 @@ void ( _panic)(const char* NTS, int, const char* NTS, ...)
 #ifdef CONFIG_DEVELOPMENT_ASSERTIONS
 #define dassert(x) assert(x)
 #else
-#define dassert(x)
+#define dassert(x) ((void) (x))  // 'Use' value, stop compile warnings
 #endif /* DEVELOPMENT_ASSERTIONS */
 
 #endif /* !ROS_INC_ASSERT_H */