xref: /openbmc/linux/arch/ia64/include/asm/exception.h (revision 3213486f)
1 /*
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License version 2 as
4  * published by the Free Software Foundation.
5  *
6  * This program is distributed in the hope that it will be useful,
7  * but WITHOUT ANY WARRANTY; without even the implied warranty of
8  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9  * GNU General Public License for more details.
10  *
11  * You should have received a copy of the GNU General Public License
12  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
13  */
14 #ifndef __ASM_EXCEPTION_H
15 #define __ASM_EXCEPTION_H
16 
17 struct pt_regs;
18 struct exception_table_entry;
19 
20 extern void ia64_handle_exception(struct pt_regs *regs,
21 				  const struct exception_table_entry *e);
22 
23 #define ia64_done_with_exception(regs)					  \
24 ({									  \
25 	int __ex_ret = 0;						  \
26 	const struct exception_table_entry *e;				  \
27 	e = search_exception_tables((regs)->cr_iip + ia64_psr(regs)->ri); \
28 	if (e) {							  \
29 		ia64_handle_exception(regs, e);				  \
30 		__ex_ret = 1;						  \
31 	}								  \
32 	__ex_ret;							  \
33 })
34 
35 #endif	/* __ASM_EXCEPTION_H */
36