#ifndef _LINUX_BUG_H
#define _LINUX_BUG_H
#include <asm/bug.h>
#include <linux/compiler.h>
#include <linux/build_bug.h>
enum bug_trap_type { … };
struct pt_regs;
#ifdef __CHECKER__
#define MAYBE_BUILD_BUG_ON …
#else
#define MAYBE_BUILD_BUG_ON(cond) …
#endif
#ifdef CONFIG_GENERIC_BUG
#include <asm-generic/bug.h>
static inline int is_warning_bug(const struct bug_entry *bug)
{ … }
void bug_get_file_line(struct bug_entry *bug, const char **file,
unsigned int *line);
struct bug_entry *find_bug(unsigned long bugaddr);
enum bug_trap_type report_bug(unsigned long bug_addr, struct pt_regs *regs);
int is_valid_bugaddr(unsigned long addr);
void generic_bug_clear_once(void);
#else
static inline void *find_bug(unsigned long bugaddr)
{
return NULL;
}
static inline enum bug_trap_type report_bug(unsigned long bug_addr,
struct pt_regs *regs)
{
return BUG_TRAP_TYPE_BUG;
}
struct bug_entry;
static inline void bug_get_file_line(struct bug_entry *bug, const char **file,
unsigned int *line)
{
*file = NULL;
*line = 0;
}
static inline void generic_bug_clear_once(void) {}
#endif
static inline __must_check bool check_data_corruption(bool v) { … }
#define CHECK_DATA_CORRUPTION(condition, fmt, ...) …
#endif