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

uprobes.h (828B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2
      3#ifndef _ASM_RISCV_UPROBES_H
      4#define _ASM_RISCV_UPROBES_H
      5
      6#include <asm/probes.h>
      7#include <asm/patch.h>
      8#include <asm/bug.h>
      9
     10#define MAX_UINSN_BYTES		8
     11
     12#ifdef CONFIG_RISCV_ISA_C
     13#define UPROBE_SWBP_INSN	__BUG_INSN_16
     14#define UPROBE_SWBP_INSN_SIZE	2
     15#else
     16#define UPROBE_SWBP_INSN	__BUG_INSN_32
     17#define UPROBE_SWBP_INSN_SIZE	4
     18#endif
     19#define UPROBE_XOL_SLOT_BYTES	MAX_UINSN_BYTES
     20
     21typedef u32 uprobe_opcode_t;
     22
     23struct arch_uprobe_task {
     24	unsigned long   saved_cause;
     25};
     26
     27struct arch_uprobe {
     28	union {
     29		u8 insn[MAX_UINSN_BYTES];
     30		u8 ixol[MAX_UINSN_BYTES];
     31	};
     32	struct arch_probe_insn api;
     33	unsigned long insn_size;
     34	bool simulate;
     35};
     36
     37bool uprobe_breakpoint_handler(struct pt_regs *regs);
     38bool uprobe_single_step_handler(struct pt_regs *regs);
     39
     40#endif /* _ASM_RISCV_UPROBES_H */