45 lines · 1.1 KB · C
RawDownload
/* SPDX-License-Identifier: GPL-2.0 */#ifndef _TOOLS_ASM_BUG_H#define _TOOLS_ASM_BUG_H #include <linux/compiler.h> #define __WARN_printf(arg...)	do { fprintf(stderr, arg); } while (0) #define WARN(condition, format...) ({		\	int __ret_warn_on = !!(condition);	\	if (unlikely(__ret_warn_on))		\		__WARN_printf(format);		\	unlikely(__ret_warn_on);		\}) #define WARN_ON(condition) ({					\	int __ret_warn_on = !!(condition);			\	if (unlikely(__ret_warn_on))				\		__WARN_printf("assertion failed at %s:%d\n",	\				__FILE__, __LINE__);		\	unlikely(__ret_warn_on);				\}) #define WARN_ON_ONCE(condition) ({			\	static int __warned;				\	int __ret_warn_once = !!(condition);		\							\	if (unlikely(__ret_warn_once && !__warned)) {	\		__warned = true;			\		WARN_ON(1);				\	}						\	unlikely(__ret_warn_once);			\}) #define WARN_ONCE(condition, format...)	({	\	static int __warned;			\	int __ret_warn_once = !!(condition);	\						\	if (unlikely(__ret_warn_once))		\		if (WARN(!__warned, format)) 	\			__warned = 1;		\	unlikely(__ret_warn_once);		\}) #endif /* _TOOLS_ASM_BUG_H */