]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blame - arch/riscv/include/asm/uprobes.h
Merge tag 'block-5.14-2021-08-27' of git://git.kernel.dk/linux-block
[mirror_ubuntu-jammy-kernel.git] / arch / riscv / include / asm / uprobes.h
CommitLineData
74784081
GR
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 */