mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
828 B
40 lines
828 B
/* SPDX-License-Identifier: GPL-2.0-only */ |
|
|
|
#ifndef _ASM_RISCV_UPROBES_H |
|
#define _ASM_RISCV_UPROBES_H |
|
|
|
#include <asm/probes.h> |
|
#include <asm/patch.h> |
|
#include <asm/bug.h> |
|
|
|
#define MAX_UINSN_BYTES 8 |
|
|
|
#ifdef CONFIG_RISCV_ISA_C |
|
#define UPROBE_SWBP_INSN __BUG_INSN_16 |
|
#define UPROBE_SWBP_INSN_SIZE 2 |
|
#else |
|
#define UPROBE_SWBP_INSN __BUG_INSN_32 |
|
#define UPROBE_SWBP_INSN_SIZE 4 |
|
#endif |
|
#define UPROBE_XOL_SLOT_BYTES MAX_UINSN_BYTES |
|
|
|
typedef u32 uprobe_opcode_t; |
|
|
|
struct arch_uprobe_task { |
|
unsigned long saved_cause; |
|
}; |
|
|
|
struct arch_uprobe { |
|
union { |
|
u8 insn[MAX_UINSN_BYTES]; |
|
u8 ixol[MAX_UINSN_BYTES]; |
|
}; |
|
struct arch_probe_insn api; |
|
unsigned long insn_size; |
|
bool simulate; |
|
}; |
|
|
|
bool uprobe_breakpoint_handler(struct pt_regs *regs); |
|
bool uprobe_single_step_handler(struct pt_regs *regs); |
|
|
|
#endif /* _ASM_RISCV_UPROBES_H */
|
|
|