bcachefs-tools/include/linux/bug.h

56 lines
1.5 KiB
C
Raw Normal View History

2017-01-08 12:13:18 +03:00
#ifndef __TOOLS_LINUX_BUG_H
#define __TOOLS_LINUX_BUG_H
#include <assert.h>
#include <linux/compiler.h>
#define BUILD_BUG_ON_NOT_POWER_OF_2(n) \
BUILD_BUG_ON((n) == 0 || (((n) & ((n) - 1)) != 0))
#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
#define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); }))
2019-03-08 22:41:43 +03:00
#define BUILD_BUG_ON(cond) ((void)sizeof(char[1 - 2*!!(cond)]))
2017-01-08 12:13:18 +03:00
#define BUG() do { assert(0); unreachable(); } while (0)
#define BUG_ON(cond) assert(!(cond))
2019-03-08 22:41:43 +03:00
#define WARN(cond, fmt, ...) \
({ \
int __ret_warn_on = unlikely(!!(cond)); \
if (__ret_warn_on) \
fprintf(stderr, "WARNING at " __FILE__ ":%d: " fmt "\n",\
__LINE__, ##__VA_ARGS__); \
__ret_warn_on; \
})
2017-01-08 12:13:18 +03:00
2019-03-08 22:41:43 +03:00
#define WARN_ON(cond) ({ \
int __ret_warn_on = unlikely(!!(cond)); \
if (__ret_warn_on) \
2019-03-08 22:41:43 +03:00
fprintf(stderr, "WARNING at " __FILE__ ":%d\n", __LINE__);\
__ret_warn_on; \
})
#define WARN_ONCE(cond, fmt, ...) \
({ \
static bool __warned; \
int __ret_warn_on = unlikely(!!(cond)); \
if (__ret_warn_on && !__warned) { \
__warned = true; \
fprintf(stderr, "WARNING at " __FILE__ ":%d: " fmt "\n",\
__LINE__, ##__VA_ARGS__); \
} \
__ret_warn_on; \
})
#define WARN_ON_ONCE(cond) ({ \
static bool __warned; \
int __ret_warn_on = unlikely(!!(cond)); \
if (__ret_warn_on && !__warned) { \
__warned = true; \
fprintf(stderr, "WARNING at " __FILE__ ":%d\n", __LINE__);\
} \
__ret_warn_on; \
2017-01-08 12:13:18 +03:00
})
#endif /* __TOOLS_LINUX_BUG_H */