1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #ifndef _ASM_ARC_BUG_H 7*4882a593Smuzhiyun #define _ASM_ARC_BUG_H 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #ifndef __ASSEMBLY__ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #include <asm/ptrace.h> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun struct task_struct; 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun void show_regs(struct pt_regs *regs); 16*4882a593Smuzhiyun void show_stacktrace(struct task_struct *tsk, struct pt_regs *regs, 17*4882a593Smuzhiyun const char *loglvl); 18*4882a593Smuzhiyun void show_kernel_fault_diag(const char *str, struct pt_regs *regs, 19*4882a593Smuzhiyun unsigned long address); 20*4882a593Smuzhiyun void die(const char *str, struct pt_regs *regs, unsigned long address); 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun #define BUG() do { \ 23*4882a593Smuzhiyun pr_warn("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); \ 24*4882a593Smuzhiyun barrier_before_unreachable(); \ 25*4882a593Smuzhiyun __builtin_trap(); \ 26*4882a593Smuzhiyun } while (0) 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun #define HAVE_ARCH_BUG 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #include <asm-generic/bug.h> 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun #endif /* !__ASSEMBLY__ */ 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun #endif 35