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