xref: /openbmc/linux/arch/arc/include/asm/bug.h (revision 173a3efd3edb2ef6ef07471397c5f542a360e9c1)
13be80aaeSVineet Gupta /*
23be80aaeSVineet Gupta  * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
33be80aaeSVineet Gupta  *
43be80aaeSVineet Gupta  * This program is free software; you can redistribute it and/or modify
53be80aaeSVineet Gupta  * it under the terms of the GNU General Public License version 2 as
63be80aaeSVineet Gupta  * published by the Free Software Foundation.
73be80aaeSVineet Gupta  */
83be80aaeSVineet Gupta 
93be80aaeSVineet Gupta #ifndef _ASM_ARC_BUG_H
103be80aaeSVineet Gupta #define _ASM_ARC_BUG_H
113be80aaeSVineet Gupta 
123be80aaeSVineet Gupta #ifndef __ASSEMBLY__
133be80aaeSVineet Gupta 
143be80aaeSVineet Gupta #include <asm/ptrace.h>
153be80aaeSVineet Gupta 
163be80aaeSVineet Gupta struct task_struct;
173be80aaeSVineet Gupta 
183be80aaeSVineet Gupta void show_regs(struct pt_regs *regs);
193be80aaeSVineet Gupta void show_stacktrace(struct task_struct *tsk, struct pt_regs *regs);
203be80aaeSVineet Gupta void show_kernel_fault_diag(const char *str, struct pt_regs *regs,
2138a9ff6dSVineet Gupta 			    unsigned long address);
2238a9ff6dSVineet Gupta void die(const char *str, struct pt_regs *regs, unsigned long address);
233be80aaeSVineet Gupta 
243be80aaeSVineet Gupta #define BUG()	do {								\
253872d052SVineet Gupta 	pr_warn("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); \
26*173a3efdSArnd Bergmann 	barrier_before_unreachable();						\
27*173a3efdSArnd Bergmann 	__builtin_trap();							\
283be80aaeSVineet Gupta } while (0)
293be80aaeSVineet Gupta 
303be80aaeSVineet Gupta #define HAVE_ARCH_BUG
313be80aaeSVineet Gupta 
323be80aaeSVineet Gupta #include <asm-generic/bug.h>
333be80aaeSVineet Gupta 
343be80aaeSVineet Gupta #endif	/* !__ASSEMBLY__ */
353be80aaeSVineet Gupta 
363be80aaeSVineet Gupta #endif
37