cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

traps.h (1293B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _ASM_X86_TRAPS_H
      3#define _ASM_X86_TRAPS_H
      4
      5#include <linux/context_tracking_state.h>
      6#include <linux/kprobes.h>
      7
      8#include <asm/debugreg.h>
      9#include <asm/idtentry.h>
     10#include <asm/siginfo.h>			/* TRAP_TRACE, ... */
     11#include <asm/trap_pf.h>
     12
     13#ifdef CONFIG_X86_64
     14asmlinkage __visible notrace struct pt_regs *sync_regs(struct pt_regs *eregs);
     15asmlinkage __visible notrace
     16struct pt_regs *fixup_bad_iret(struct pt_regs *bad_regs);
     17void __init trap_init(void);
     18asmlinkage __visible noinstr struct pt_regs *vc_switch_off_ist(struct pt_regs *eregs);
     19#endif
     20
     21extern bool ibt_selftest(void);
     22
     23#ifdef CONFIG_X86_F00F_BUG
     24/* For handling the FOOF bug */
     25void handle_invalid_op(struct pt_regs *regs);
     26#endif
     27
     28static inline int get_si_code(unsigned long condition)
     29{
     30	if (condition & DR_STEP)
     31		return TRAP_TRACE;
     32	else if (condition & (DR_TRAP0|DR_TRAP1|DR_TRAP2|DR_TRAP3))
     33		return TRAP_HWBKPT;
     34	else
     35		return TRAP_BRKPT;
     36}
     37
     38extern int panic_on_unrecovered_nmi;
     39
     40void math_emulate(struct math_emu_info *);
     41
     42bool fault_in_kernel_space(unsigned long address);
     43
     44#ifdef CONFIG_VMAP_STACK
     45void __noreturn handle_stack_overflow(struct pt_regs *regs,
     46				      unsigned long fault_address,
     47				      struct stack_info *info);
     48#endif
     49
     50#endif /* _ASM_X86_TRAPS_H */