forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.1 KiB
46 lines
1.1 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#ifndef _TOOLS_ASM_BUG_H |
|
#define _TOOLS_ASM_BUG_H |
|
|
|
#include <linux/compiler.h> |
|
#include <stdio.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 */
|
|
|