1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /* SPDX-License-Identifier: GPL-2.0 */
- #ifndef _ASM_X86_TRAPS_H
- #define _ASM_X86_TRAPS_H
- #include <linux/context_tracking_state.h>
- #include <linux/kprobes.h>
- #include <asm/debugreg.h>
- #include <asm/idtentry.h>
- #include <asm/siginfo.h> /* TRAP_TRACE, ... */
- #include <asm/trap_pf.h>
- #ifdef CONFIG_X86_64
- asmlinkage __visible notrace struct pt_regs *sync_regs(struct pt_regs *eregs);
- asmlinkage __visible notrace
- struct pt_regs *fixup_bad_iret(struct pt_regs *bad_regs);
- void __init trap_init(void);
- asmlinkage __visible noinstr struct pt_regs *vc_switch_off_ist(struct pt_regs *eregs);
- #endif
- extern bool ibt_selftest(void);
- #ifdef CONFIG_X86_F00F_BUG
- /* For handling the FOOF bug */
- void handle_invalid_op(struct pt_regs *regs);
- #endif
- static inline int get_si_code(unsigned long condition)
- {
- if (condition & DR_STEP)
- return TRAP_TRACE;
- else if (condition & (DR_TRAP0|DR_TRAP1|DR_TRAP2|DR_TRAP3))
- return TRAP_HWBKPT;
- else
- return TRAP_BRKPT;
- }
- extern int panic_on_unrecovered_nmi;
- void math_emulate(struct math_emu_info *);
- bool fault_in_kernel_space(unsigned long address);
- #ifdef CONFIG_VMAP_STACK
- void __noreturn handle_stack_overflow(struct pt_regs *regs,
- unsigned long fault_address,
- struct stack_info *info);
- #endif
- #endif /* _ASM_X86_TRAPS_H */
|