1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * arch/arm64/include/asm/probes.h
4 *
5 * Copyright (C) 2013 Linaro Limited
6 */
7#ifndef _ARM_PROBES_H
8#define _ARM_PROBES_H
9
10#include <asm/insn.h>
11
12typedef u32 probe_opcode_t;
13typedef void (probes_handler_t) (u32 opcode, long addr, struct pt_regs *);
14
15/* architecture specific copy of original instruction */
16struct arch_probe_insn {
17	probe_opcode_t *insn;
18	pstate_check_t *pstate_cc;
19	probes_handler_t *handler;
20	/* restore address after step xol */
21	unsigned long restore;
22};
23#ifdef CONFIG_KPROBES
24typedef u32 kprobe_opcode_t;
25struct arch_specific_insn {
26	struct arch_probe_insn api;
27};
28#endif
29
30#endif
31