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 */