1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Port on Texas Instruments TMS320C6x architecture 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2004, 2009, 2011 Texas Instruments Incorporated 6*4882a593Smuzhiyun * Author: Aurelien Jacquiot (aurelien.jacquiot@jaluna.com) 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun #ifndef _ASM_C6X_TRAPS_H 9*4882a593Smuzhiyun #define _ASM_C6X_TRAPS_H 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #define EXCEPT_TYPE_NXF 31 /* NMI */ 12*4882a593Smuzhiyun #define EXCEPT_TYPE_EXC 30 /* external exception */ 13*4882a593Smuzhiyun #define EXCEPT_TYPE_IXF 1 /* internal exception */ 14*4882a593Smuzhiyun #define EXCEPT_TYPE_SXF 0 /* software exception */ 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun #define EXCEPT_CAUSE_LBX (1 << 7) /* loop buffer exception */ 17*4882a593Smuzhiyun #define EXCEPT_CAUSE_PRX (1 << 6) /* privilege exception */ 18*4882a593Smuzhiyun #define EXCEPT_CAUSE_RAX (1 << 5) /* resource access exception */ 19*4882a593Smuzhiyun #define EXCEPT_CAUSE_RCX (1 << 4) /* resource conflict exception */ 20*4882a593Smuzhiyun #define EXCEPT_CAUSE_OPX (1 << 3) /* opcode exception */ 21*4882a593Smuzhiyun #define EXCEPT_CAUSE_EPX (1 << 2) /* execute packet exception */ 22*4882a593Smuzhiyun #define EXCEPT_CAUSE_FPX (1 << 1) /* fetch packet exception */ 23*4882a593Smuzhiyun #define EXCEPT_CAUSE_IFX (1 << 0) /* instruction fetch exception */ 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun struct exception_info { 26*4882a593Smuzhiyun char *kernel_str; 27*4882a593Smuzhiyun int signo; 28*4882a593Smuzhiyun int code; 29*4882a593Smuzhiyun }; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun extern int (*c6x_nmi_handler)(struct pt_regs *regs); 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun #endif /* _ASM_C6X_TRAPS_H */ 34