xref: /kernel/linux/linux-6.6/arch/ia64/include/asm/exception.h
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-6.6/arch/ia64/include/asm/
162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci#ifndef __ASM_EXCEPTION_H
362306a36Sopenharmony_ci#define __ASM_EXCEPTION_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_cistruct pt_regs;
662306a36Sopenharmony_cistruct exception_table_entry;
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciextern void ia64_handle_exception(struct pt_regs *regs,
962306a36Sopenharmony_ci				  const struct exception_table_entry *e);
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#define ia64_done_with_exception(regs)					  \
1262306a36Sopenharmony_ci({									  \
1362306a36Sopenharmony_ci	int __ex_ret = 0;						  \
1462306a36Sopenharmony_ci	const struct exception_table_entry *e;				  \
1562306a36Sopenharmony_ci	e = search_exception_tables((regs)->cr_iip + ia64_psr(regs)->ri); \
1662306a36Sopenharmony_ci	if (e) {							  \
1762306a36Sopenharmony_ci		ia64_handle_exception(regs, e);				  \
1862306a36Sopenharmony_ci		__ex_ret = 1;						  \
1962306a36Sopenharmony_ci	}								  \
2062306a36Sopenharmony_ci	__ex_ret;							  \
2162306a36Sopenharmony_ci})
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#endif	/* __ASM_EXCEPTION_H */
24

Indexes created Thu Nov 07 10:32:03 CST 2024