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