18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci#ifndef __ASM_CSKY_PROBES_H
48c2ecf20Sopenharmony_ci#define __ASM_CSKY_PROBES_H
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_citypedef u32 probe_opcode_t;
78c2ecf20Sopenharmony_citypedef void (probes_handler_t) (u32 opcode, long addr, struct pt_regs *);
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci/* architecture specific copy of original instruction */
108c2ecf20Sopenharmony_cistruct arch_probe_insn {
118c2ecf20Sopenharmony_ci	probe_opcode_t *insn;
128c2ecf20Sopenharmony_ci	probes_handler_t *handler;
138c2ecf20Sopenharmony_ci	/* restore address after simulation */
148c2ecf20Sopenharmony_ci	unsigned long restore;
158c2ecf20Sopenharmony_ci};
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci#ifdef CONFIG_KPROBES
188c2ecf20Sopenharmony_citypedef u32 kprobe_opcode_t;
198c2ecf20Sopenharmony_cistruct arch_specific_insn {
208c2ecf20Sopenharmony_ci	struct arch_probe_insn api;
218c2ecf20Sopenharmony_ci};
228c2ecf20Sopenharmony_ci#endif
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci#endif /* __ASM_CSKY_PROBES_H */
25