diff options
Diffstat (limited to 'include/linux/bug.h')
-rw-r--r-- | include/linux/bug.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/include/linux/bug.h b/include/linux/bug.h new file mode 100644 index 00000000..d276b551 --- /dev/null +++ b/include/linux/bug.h @@ -0,0 +1,38 @@ +#ifndef _LINUX_BUG_H +#define _LINUX_BUG_H + +#include <asm/bug.h> + +enum bug_trap_type { + BUG_TRAP_TYPE_NONE = 0, + BUG_TRAP_TYPE_WARN = 1, + BUG_TRAP_TYPE_BUG = 2, +}; + +struct pt_regs; + +#ifdef CONFIG_GENERIC_BUG +#include <asm-generic/bug.h> + +static inline int is_warning_bug(const struct bug_entry *bug) +{ + return bug->flags & BUGFLAG_WARNING; +} + +const struct bug_entry *find_bug(unsigned long bugaddr); + +enum bug_trap_type report_bug(unsigned long bug_addr, struct pt_regs *regs); + +/* These are defined by the architecture */ +int is_valid_bugaddr(unsigned long addr); + +#else /* !CONFIG_GENERIC_BUG */ + +static inline enum bug_trap_type report_bug(unsigned long bug_addr, + struct pt_regs *regs) +{ + return BUG_TRAP_TYPE_BUG; +} + +#endif /* CONFIG_GENERIC_BUG */ +#endif /* _LINUX_BUG_H */ |